为了选购热水器,做了好多功课。不像软件开发和电脑硬件领域,网上通过搜索引擎很难找到相关的专业一些的技术资料,大量的都是营销的文章,里面的技术相关的信息很混乱甚至是错误的。在看了各种广告、资料后,自己摸索总结了一些关于燃气热水器的恒温控制的原理。
3D modeling language
做好3d打印机,需要制作些什么就自己建模了。大部分的CAD工具都是图形交互式的,也就是靠鼠标把模型”画“出来,但我更喜欢通过建模语言来把模型描述出来。在网上搜寻和试用了一些基于3D建模语言的CAD工具,将我了解的记录一下。
软件项目的标准配置和自动检查更新
Kossel Mini 3D 打印机制作记录 (3)
Kossel Mini 3D打印机制作记录 (2)
Microservice development environment make easy with Docker
正在负责的产品线已经全面转为基于 node.js 技术栈微服务架构,为了提高开发效率,我希望能创建一个标准的、容易创建的开发环境,以改善开发环境之间不一致、可能不完备、创建配置麻烦的现状。
对这个开发环境的要求是 lightweight,reproducible 和 portable。
Pact - 微服务的契约测试
微服务架构的系统中,存在着大量的服务,每个服务开放出接口(作为provider),接口可以被很多其他服务调用(consume)。接口API是服务提供者和服务消费者之间的契约,理论上,只要测试了双方的实现都完全符合API,就可以保证它们能够正常的集成到一起;但在现实场景中,对API难以给出非常精确的定义,覆盖测试完整API的工作量也会非常巨大,再加上随着API的演进,要验证兼容性更是很麻烦。
消费者驱动契约(Consumer Driven Contract)测试试图解决这个问题。它从接口的消费者出发,记录下消费者使用接口的各种场景,以此作为契约,验证接口的提供者是否符合。Pact 就是支持针对 HTTP API 的消费者驱动契约测试的工具。
使用OsmAndMapCreator及时更新OsmAnd地图
使用 OpenStreetMap (简称为OSM)地图数据的手机应用有好些,OsmAnd 是其中比较优秀的一个。OsmAnd的地图数据每月更新一次,延后了半个月到一个多月。作为一个OSM mapper,期望能够马上看到和用到最近做出的修改,等一个月实在太久了。
在非GPL应用中使用OpenJDK的法律问题
大家都知道 Oracle JDK 在商业应用场合是需要购买 license 的,往往会选择 OpenJDK 来规避。但是,OpenJDK 的 license 是 GPL,GPL 是一种 “传染性” 的协议,那么 OpenJDK 是否可以在非 GPL 应用中使用呢?
Consul 集群不稳定的分析
一个 Consul 集群由3个 Consul server 和近百个 Consul client 组成。观察发现集群状态不稳定,频繁出现以下现象:
- 节点退出集群,又重新加入集群;
- 重新选举 leader,有时候原来的 leader 会重新当选。