aleung的学习笔记, aleung的idea

微服务架构的系统中,存在着大量的服务,每个服务开放出接口(作为provider),接口可以被很多其他服务调用(consume)。接口API是服务提供者和服务消费者之间的契约,理论上,只要测试了双方的实现都完全符合API,就可以保证它们能够正常的集成到一起;但在现实场景中,对API难以给出非常精确的定义,覆盖测试完整API的工作量也会非常巨大,再加上随着API的演进,要验证兼容性更是很麻烦。

消费者驱动契约(Consumer Driven Contract)测试试图解决这个问题。它从接口的消费者出发,记录下消费者使用接口的各种场景,以此作为契约,验证接口的提供者是否符合。Pact 就是支持针对 HTTP API 的消费者驱动契约测试的工具。

阅读全文 »

使用 OpenStreetMap (简称为OSM)地图数据的手机应用有好些,OsmAnd 是其中比较优秀的一个。OsmAnd的地图数据每月更新一次,延后了半个月到一个多月。作为一个OSM mapper,期望能够马上看到和用到最近做出的修改,等一个月实在太久了。

阅读全文 »

大家都知道 Oracle JDK 在商业应用场合是需要购买 license 的,往往会选择 OpenJDK 来规避。但是,OpenJDK 的 license 是 GPL,GPL 是一种 “传染性” 的协议,那么 OpenJDK 是否可以在非 GPL 应用中使用呢?

阅读全文 »

一个 Consul 集群由3个 Consul server 和近百个 Consul client 组成。观察发现集群状态不稳定,频繁出现以下现象:

  1. 节点退出集群,又重新加入集群;
  2. 重新选举 leader,有时候原来的 leader 会重新当选。
阅读全文 »

接近一年没有更新过这个blog了,时间过得真快,也是有史以来荒废得最久的时间。

虽然没有写文章,在上半年还是断断续续的花了点时间升级了blog系统。原本用的是Octopress,但Octopress的3.0版本开发基本上处于废弃状态,想换回正宗的Jekyll,Jekyll 3.0的发布也是从2004年底一直等到2005年底,试用过测试版本很多不兼容问题。从去年以来,工作重点切换到node.js平台,于是自己的项目也选择node.js好了,最后选用了Hexo作为blog系统。Hexo还有个优点就是render速度比基于Ruby的Jekyll/Octopress快了起码一个数量级,我这里三百多篇文章,以前启动预览得大概一分钟,现在几秒钟。

阅读全文 »

装了一台黑苹果在公司里用,幸福指数大大提升。

硬件

硬件选型参考tonymacx86的CustoMac Mini),算下来主机不足4000元。要保证安装顺利、功能正常和稳定,最重要的是选择推荐的主板型号,可以找到详细的安装配置教程,各种可能的坑都有人给出解决方案了。安装过程一律依据tonymacx86的guide进行,没有任何问题。SSD和机械硬盘组成fusion drive,在较低的成本上达到不错的性能和容量的兼顾。唯一问题是用了fusion driver之后hibernate就不能用了,因为Clover认不出fusion driver,找不到上面的sleep image。

软件

以下内容均针对 El Capitan。

阅读全文 »

因为训练得少,一直担心跑全程会很辛苦,预计430完成就不错了。

周六寒风冷雨,幸好周日放晴了,早上起床气温12℃,穿了长袖。存包时感觉不冷,就没有套雨衣。今天气温很适宜跑步,既没有冷得发抖,也没有很热。

  • 起跑很保守,慢慢跑,想着按430的话全程也就是6分配速。跑了两三公里自然而然的快起来,渐渐进入6分配速以内。
  • 10km 感觉自己状态还好,一小时内完成了;一直心率都保持在150以下,心中欣喜;下了猎德桥后16km起左膝盖有点不适,受膝痛影响精神也不那么轻松了,后面过两次隧道下坡时小心翼翼。
  • 20km 发现自己居然比2小时少了七八分钟,按照一小时十公里预算,又赚了好些时间。渐渐膝盖感觉也不明显了。
  • 24km 左右吃能量胶,过25km 比预计早了10分钟,没有见到小云和小春天,拿了李莹一根香蕉。25km 补给点吃盐丸,想把粉末倒水杯里,发现很难倒出来,整颗扔水里也融不开,有点狼狈,还浪费了一分钟时间。
  • 28km 起进入滨江路老城区路段,开始跑得不轻松了,这时候我就喜欢一个人孤独的靠着马路中线跑,不管路边加油的观众。左小腿有点发硬的感觉,每个站都淋湿小腿裤子,风干时就很冰冷。
  • 33km 过人民桥,慢慢跑上去,盘算着完赛时间是多少,好像跑回以前最好的412是有可能的。剩下不足10km,感觉能量不是问题,但想想还是再吃一个能量胶,也吃一颗盐丸。
  • 在沿江路跑,看着34km,35km 过去,觉得剩下路程不多了,想如果后面我能维持6分配速,就可以进410,但状态也确实不再轻松,最担心是小腿会抽筋。
  • 后面各跑群的补给点很多,一会就见到一个,过了江湾,一会就到海印。想着去年在这里见到小春天,当时已经抽筋了好久。没见到她们,想她们是不是又错过时间。
  • 数着一公里又一公里,接近广州大桥,终于40km 啦,剩下没多远,就算抽筋怎么也可以熬过去,何况我配速都还能维持在5:45左右。突然听到有人喊艳阳天,看到了李莹和小云,兴奋的举起手跑过去让她们拍照,但想着最后2km 要一鼓作气完成,就没有停留,小春天在后面大喊回来合影。没有跟小云合影真辜负了她这么费心为我准备加油。
  • 从二沙岛过桥进入海心沙,41km,居然海心沙那段路就有一公里,不过都能看到前面的路拐个弯就到了,感觉也不长。最后一段告诉自己没必要加速,根本差不了几秒钟。后面的摄影师真对,一会一个,都没有什么其他姿势可以做了,表情是很轻松的。
  • 最后一个拐弯后,一大堆美女啦啦队热情的喊,从她们手上接过一个气球,跑完最后一段。拿着气球这个点子不错,拍照效果应该好吧。冲线后,一按手表,居然是4:02:02,完全没有想到居然能够 PB 还快了10分钟。官方净成绩是4:01:53.

这次还是首次全马没有上厕所。前十几公里是有一点想尿的,厕所要排队想后面的人少,但跑到后边就没有尿意了,省了一分钟 :)

阅读全文 »

缘起及设计

一切都起源于 flyisland 转的这篇文章:从零开始,给自己设计一台3D打印机,大量的图文细节和制作过程描述吸引了我,门槛似乎也不怎么高,于是产生了做一台的想法。看了 Thingivers 这个网站,更是发现了新的世界,打消了“有3d打印机不知道用来做什么”的疑虑,对喜欢搞制作的人来说3d打印机太有用了。

于是开始网上查找资料,了解相关信息。一开始的想法是做像那篇文章中的 XYZ 结构,大一点的打印体积(开始都是贪心的),看了 RepRap 论坛发现关于 delta 结构的讨论很热门,了解多一些后知道 delta 结构打印机的打印速度快,成本比较低,制作也不复杂,于是锁定了 Kossel 机型,心想先做一个出来练练手,小一点也够用了,以后真玩起来有需要再做大机器。

接下来在寻找国内的资源的时候知道了 K800 打印机,这是国内爱好者 maximscy 在 Kossel Mini 基础上改进的以降低成本为目标的机型,原本 K800 的意思就是人民币800元可以做出来的 Kossel,但实际上基本上也还是要上千元。

K800 应该说对于推动3D打印机在国内普及有不少功劳,淘宝上有不少卖套件的。K800 降低了成本,但是毕竟还是以牺牲一点精度为代价,因此卖家也有不少“升级套餐”,例如将打印制作的元件换成铝合金元件,滑轮换回直线导轨等等。我对成本还不算很敏感,想做出来的机器质素好一点,但看下来发现套件的价格水分又太大了,而且配置不一定跟自己要求一致,于是决定自己采购元件。

阅读全文 »

在软件企业中开发产品/项目,做技术选型时经常会听到的一个说法是:选择开源自由软件,会不会质量不够有保障?还是我们自己做好一些。

自由软件遵循的是完全的市场经济,面对的是残酷的竞争。如果项目做得不好,满足不了需求,就会无人问津而最终被废弃掉,使用者才不心痛已经有多少人力物力已经投入到这个项目中。项目设计太差,代码太烂,同样也吸引不了贡献者,导致原有贡献者的离开或者另起炉灶。对比的看,软件企业中开发的软件项目就如受着国家保护的国企,虽然也面临外部竞争,但在内部怎么也还是自家孩子,再烂也很难让大家承认它的失败,要放弃更加是艰难的决定,往往意味影响好些人的仕途。因此,你会看到很多企业开发的软件项目很烂,因为它们本来应该死掉的,但被强制维持着生命。

从软件开发者的平均水平这个角度来看,自由软件项目也优于企业开发的软件项目。当然,这里谈的自由软件项目是指有一组稳定贡献者有明确蓝图的,这样才能与企业项目相比较,个人练手的项目不算在内。试想一下,在一个软件企业里面,水平足矣为自由软件提交代码的开发者占了多少比例?但是那些尚不能为自由软件项目提交代码的开发者,在企业里面可是天天写代码的,甚至大部分代码是出自他们之手。

泛泛的说,在某个领域,如果可选的自由软件有不少,那么排名前列的项目,质量基本上不需要太过担心。

上面是我对自由软件质量担忧的看法,但这当然不代表就可以随意选择使用自由软件,技术选型中需要评估的东西还有很多。

阅读全文 »

上次提到用 HTML 做的 presentation,是在公司里做的关于持续学习的一个分享。

注意:看绿色导航箭头,是可以向下翻页的。有些背景图片可能需要翻墙才能看到,否则会变成空白。

阅读全文 »