首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我 hackathon 在做什么 (2)

书接上文:当我 hackathon 在做什么(1)。 前文中提到,的第二个项目是个可视化的项目,名字叫 deneb。deneb 是天鹅座的一等星,也是夏季大三角和北十字两个星群的端点之一。...嗯,deneb - vega - altair,聪明的你一定想到了什么起这样一个名字: ? 为什么是 vega-lite? 在数据可视化这块,自己走了不少弯路。...如果你需要能够对可视化的图表简单的动画,plotly 也能胜任。 一度以为 plotly 是的真命天子,直到有一天敲开了 altair [4] 这个潘多拉魔盒。...在 3 的基础上提供数据校验和足够清晰的出错信息。...这也是为什么在做 ExPolars , 在 Jupyter notebook 里,一切操作都正常,因为那些输出都是简单的 text;而当我想输出 deneb 生成的包含 vega-lite spec

2K10

当我 hackathon 在做什么 (3)

的方法论 清晰可见的目标 喜欢在做一件事情前把目标能够表达清楚,然后脑海里有一个当我成功达到后这东西该长什么样的草图。...每次阶段性做完一些东西,编译,就是写 slides 的时间。在 ex_polars 里用了太多的宏,所以它的编译速度奇慢无比。...的开发工具箱 所谓「工欲善其事,必先利其器」,好的工具是提升效率的保证。 Marp 这两年 slides,基本都是使用 Marp。...其实我们在绘制很多图形,所使用的元素无非 excalidraw 包含的这几种:方形,圆形,线段,以及文字,我们欠缺的,更多的是把脑袋中的思想可视化出来,这跟工具无关。比如我的这个: ?...其实像 excalidraw 这样的好工具反而能解放的大脑,因为不再需要焦虑用什么样的图形才能更好地表达(使用 visio 或者类似工具总有类似焦虑),也不再需要焦虑该为图形配什么样的颜色,因为

65320
您找到你想要的搜索结果了吗?
是的
没有找到

byteTCC框架--关于接口返回问题的讨论

在普通的web项目中,调用接口返回数据,如下,不出错返回一种,出错了,返回另外一种。前端是直接可以拿到返回的信息的。...你这个是用于显示的,但是SpringCloud更倾向于代表一个服务一个接口 比如我这个,一个服务调用了2个服务,其中一个出错了需要给前端一个反馈,但是在这里没法拿到出错的那个服务的错误信息 那这种一般怎么处理呢...这是ByteTCC在rollback过程中也碰到异常了,抛出的是SystemException 说错了,是在commit过程中 HTTP接口一般返回500码就能标识错误了,当然,如果你想在应用层面设置自己的业务异常码...你这种做法不是不可以,只是说:在参与事务处理的controller中这样不可以,不参与事务处理的controller中这样是没问题的。...,那所有事务就都commit再也没有rollback了”这句话,大概理解了,try catch后,发现即使出错了事务也commit了,导致数据变更了 这是spring声明式事务的机制,根据异常来判断是否需要回滚

97630

Spring分布式事务实现概览

但是这种情况下,如果第二个事务提交的时候出错了,第一个事物就无法回滚,因为他已经提交完成了。 链式事务,就是将多个事务,包装在一个链式事务管理器当中,在提交事务的时候,一次提交里面的事务。...在这种情况下,一个服务提供的接口,不可能实现事务,也就是先操作数据,再Commit,如果出错了再Rollback。但是,我们可以借鉴事务的这种处理思路,来自己提供类似事务的方法,这就是TCC模式。...首先是减库存的Try接口,在这里,我们要检查业务数据的状态、检查商品库存够不够,然后资源的预留,也就是在某个字段上设置预留的状态。然后在Confirm接口里,完成库存减1的操作。...这可能听着有点繁琐,感觉可以一次完成的事情,为什么要分成2步,首先这么是为了能够在出错的时候正确的重置库存数据,其次这个预留操作跟Confirm操作是两个请求,中间可能会有其他并发请求。...从理论上说,只要我们在Try接口里面预留资源的逻辑是正确的,那么,即使Confirm的时候出错了也可以通过重试Confirm请求来完成 使用数据库保存事务状态 这其实不是一种模式,只是一种方式。

60230

spring事务如何使用,底层的原理是什么,一篇文章讲明白

事务传播特性是什么?...就是有两个方法A和B方法,两个方法都有事务,A方法如果调用B方法,A方法出错了,A方法的事务回滚了,那么B方法的需要回滚嘛?反之,B方法出错了,他进行了回滚,A方法需要回滚嘛?...所以就有了不同的传播特性,有的业务里面,都需要回滚,有的就不需要,看业务进行设置 7 有7个传播特性 分为两大类 propagation_never : 就是A方法调用B方法 的时候,两个都没有事务...,就是告诉其他事务不归你管,出错了,也不会回滚 7.3 propagation_supported A调用B,B上面写这个传播特性,那么这个时候,如果A有事务,B就加进去,如果A没有事务,那么B也没有...的传播特性是propagation_nested A和B都有事务,当B 出错,A没有,那么A不会回滚,B会回滚 当A出错,B没有出错,A和B都会回滚 就是外面的大环境出错,会影响里面的多有,里面的某一个出错

27020

Genesis框架从入门到精通(11): 图像函数

在上一篇文章中提到过,将略过几个文件并直接跳到 genesis/lib/functions/image.php 文件。建议阅读的同时打开这个文件,这样你就可以看到我正在谈论的函数。...要传的是该尺寸的名称(比如verysmall),而不是使用长乘以宽参数。 num:要返回哪一个的图片。 默认值是0,如果文章未设置特色图像,将返回第一个图片附件。...控制什么都不输出。...这将返回第二个附加图像的缩略图,并设置居左class ="alignleft"。很酷。 注:涉及图片的函数都不如文字那么直观,一图胜千言,请看我在开发环境下的截图。特色图像算作是第一张。...genesis_get_image_sizes() 这将返回具有图片所有尺寸大小的数组。这在构建窗口小部件或设置主题选项非常有用,你可以获取到可用的图像大小并将其与你需要的尺寸进行匹配。

60820

架构取经之路3 - 悟空聊无事务

悟空:福袋没发出来,那为什么订单状态还一直是已支付?你这小儿,可不要瞒! 小黑熊:大圣,我们数据库用的是MongoDB 3.0,不支持事务啊。 悟空:你说的事务什么意思?...优点:前四步的业务逻辑处理任意一步如果出错了,并不会影响数据库的记录 缺点:后三步的保存如果出错了,和最开始的方案一样,存在数据不一致的问题。 那如何进行解决这种问题? 五、如何解决无事务的问题?...分别有什么优点和缺点?怎么优化? 问题3.如果第三步更新库存失败,那又该怎么呢? 问题4.如何退款失败,那又该怎么呢? 围绕上面几个问题,我们展开来论述。...方案1:第二步失败,立即重试几次(第一次3s,第二次间隔8s,第三次间隔20s,为什么间隔时间不一样?...常见方案: 1.退款失败后主动报警通知运维人员或开发人员 2.手动退款(缺点:人工操作,容易出错,比如找订单找错了) 或 3.加入队列,自动退款(缺点:一般退款失败都是代码级别问题或微信侧问题,所以还是需要排查问题原因

47820

SQL事务

事务的好处?...事务的好处在于,当你需要对多个表进行相关性操作,使用BeginTrans()开启事务,然后操作,如果中间哪个表更新出错了,或者数据有问题,你可以用RollBack()方法在取消之前的相关性操作,如果没有错...另外,在这个过程中,所有你改动的内容只对你自己有效,别人不能知道你改了什么,也不能对你正在改的表修改,直到你提交之后,别人才能修改这些表,检索出你修改过的内容。...--打开一个事务 begin tran --定义临时变量 declare @num int = 0; 你的SQL语句 set @num = @num + @@error; --上一条语句出错次数 你的...SQL语句 set @num = @num + @@error; --上一条语句出错次数 if @num 0 begin --回滚事务 rollback tran end else begin

27710

故事|黑熊精 揭秘「补偿事务

悟空:福袋没发出来,那为什么订单状态还一直是已支付?你这小儿,可不要瞒! 小黑熊:大圣,我们数据库用的是 MongoDB 3.0,不支持事务啊。 悟空:你说的事务什么意思?...优点:前四步的业务逻辑处理任意一步如果出错了,并不会影响数据库的记录 缺点:后三步的保存如果出错了,和最开始的方案一样,存在数据不一致的问题。 那如何进行解决这种问题? 五、如何解决无事务的问题?...分别有什么优点和缺点?怎么优化? 问题 3:如果第三步更新库存失败,那又该怎么呢? 问题 4:如何退款失败,那又该怎么呢? 围绕上面几个问题,我们展开来论述。...方案1:第二步失败,立即重试几次(第一次 3s,第二次间隔 8s,第三次间隔 20s,为什么间隔时间不一样?可以留言讨论哦!...常见方案: 1.退款失败后主动报警通知运维人员或开发人员 2.手动退款(缺点:人工操作,容易出错,比如找订单找错了) 3.加入队列,自动退款(缺点:一般退款失败都是代码级别问题或微信侧问题,所以还是需要排查问题原因

43420

Genesis框架从入门到精通(4):框架的内置动作(续)

在这篇文章的中,将继续讲解如何使用自定义的函数、在添加动作使用既有函数的技巧,以及怎样使用Genesis函数。...使用自定义的函数 Genesis的函数是很好用,但是如果当你想在网站上添加其他内容呢?你要自己写一个函数,并使用add_action()把它挂载到某一个钩子上。...可以随便写一个处理标题输出的函数叫child_function_a,只要其他函数没有叫这个名字,它就可以用,但是当我需要调用它的时候,可能记不住这个名字,而且很可能会忘记什么它是干什么用的了。...在这个例子里,设置了一个参数的“默认”值,但是在调用该函数可以用别的值来替换它。如果没有参数,就写成 function generic(){} ,可能大部分时候你都会这么用。...可以这样 add_action( 'genesis_after_post_content', 'child_do_add_to_any' ); /**add the add to any function

62620

tp框架事务处理实例和理解

tp的事务开启是非常简单的, 只需要M()->startTrans();//开启事务,M()可以是M('xxx') $m->rollback();//事务回滚 $m->commit();//提交事务...下面是代码实例; $order_model = M('order');     $order_model ->startTrans();//开启事务    $id = $order_model->add...$id) {         $result['status'] = false;         $result['info'] = '增加订单出错了!'...order_model->rollback();             $result['status'] = false;             $result['info'] = '处理详细信息出错了...下单成功,但是扣款失败,那么就会把下单成功的记录回滚回去,回到了没有下单时候的状态 提交事务,也就是关闭了监视器 当然,事务中断是不会终止程序运行的.它还会继续运行下去,所以得好好判断出错状态和回滚,提交位置

72220

JDBC【事务、元数据、改造JDBC工具类】

注意:当Connection遇到一个未处理的SQLException,系统会非正常退出,事务也会自动回滚,但如果程序捕获到了异常,是需要在catch中显式回滚事务的。...---- savapoint 我们还可以使用savepoint设置中间点。如果在某地方出错了,我们设置中间点,回滚到出错之前即可。 应用场景:现在我们要算一道数学题,算到后面发现算错数了。...B跟A说,已经收到钱了。A回滚事务【rollback】,等B再查看账户的钱,发现钱并没有多。...注:和不可重复读类似,但虚读(幻读)会读到其他事务的插入的数据,导致前后读取不一致 ---- 简单总结:脏读是不可容忍的,不可重复读和虚读在一定的情况下是可以的【统计的肯定就不行】。...对个人理解,策略模式就是我们在使用别人API,可以使用匿名内部类的时候。别人用的就是策略模式。 至于调用者会传递什么对象过来,该对象要实现什么方法。我们可以使用接口来对其规范

74680

十二行代码教你搞定写双表事务处理,数据管理更专业

事务是为了保证所处理数据的完整性,如n个相关表被同时修改,在保存数据,要么全部保存,要么都不保存,这只有用事务来实现。 举例: 入库单增加了一个物料,库存表的相应也应该增加。...而加上事务之后,如果库存表没有保存成功,入库单的数据也会回滚,便不保存。 用try结构来处理事务,比用IF每句判断要简单明快得多,见过许多人写的事务,那个就复杂,看得头晕晕的。...End Transaction &&临时表事务结束 Catch To ex ROLLBACK Sqlrollback(nDatasource) &&出错了,则事务回滚 SQLSetprop...ROLLBACK Sqlrollback(nDatasource) &&出错了,则事务回滚 SQLSetprop(nDatasource,'transactions',1) &&自动事务处理 *Throw...ROLLBACK Sqlrollback(nDatasource) &&出错了,则事务回滚 SQLSetprop(nDatasource,'transactions',1) &&自动事务处理 *Throw

3.3K20

用 Go 构建一个区块链 -- Part 3: 持久化和命令行接口

翻译的系列文章已经放到了 GitHub 上:blockchain-tutorial,后续如有更新都会在 GitHub 上,可能就不在这里同步了。...它的 API 并不多,并且仅关注值的获取和设置。仅此而已。 听起来跟我们的需求完美契合!...而现在,我们希望它的事情有: 打开一个数据库文件 检查文件里面是否已经存储了一个区块链 如果已经存储了一个区块链: 创建一个新的 Blockchain 实例 设置 Blockchain 实例的 tip...有两种类型的事务:只读(read-only)和读写(read-write)。这里,打开的是一个读写事务(db.Update(...)),因为我们可能会向数据库中添加创世块。...main() { bc := NewBlockchain() defer bc.db.Close() cli := CLI{bc} cli.Run() } 注意,无论提供什么命令行参数

43420

Genesis框架从入门到精通(13): 小部件函数

以下是文件中所有函数的列表: genesis_register_widget_area: 注册新的侧边栏 genesis_register_sidebar: genesis_register_default_widget_areas...genesis_sidebar_title 在我们深入研究之前,想先讨论一些名词术语。...小部件放入侧边栏后,你还可以对其进行各种设置。如果窗口小部件无法找到它应该归属的侧边栏位置,则会被归入到非活动窗口小部件。当ID发生变化时会发生这种情况。后面将再次讨论这个问题。...你甚至可以省略ID,但我不推荐这么。如果你的小部件有ID,那么它会呆在它该呆的地方。否则,如果侧边栏的顺序发生变化,那么你的窗口小部件将移动到其他侧边栏或非活动窗口小部件。 ID应为小写且没有空格。...将在下一次涉及layout.php文件讨论这个问题。

1.1K20
领券