Jerry's Blog
http://jerrypeng.me/-
半年 Scala 小感——ADT 篇
作为一个 Scala Shop ,我们的主力编程语言自然非它莫属了。入职小半年,我在工作中也用到了不少 Scala,对其了解也逐渐深入,现在是时候聊聊我对这个语言的感觉了。 必须声明的是,我还是个 Scala 菜鸟,对 Scala 的很多特性,尤其是类型系统了解还不够深入,所以这里只谈我了解的部分。这一次我想说的是代数数据类型(Algebraic Data Type)。 …阅读全文
-
再聊监控
去年我曾写过一个 系列文章 介绍在上一家公司搭建的监控系统,那个方案基于 Ganglia 和 Nagios,效果很不错,对我们监控性能状况,及时发现问题起了不小的作用。 不巧的是,在新公司入职不久,我又开始和同事一起研究起监控系统来。作为技术上比较『 追新』的公司,我们也把视线放到了比较新的一些方案上了。目前我们的监控系统已经上线运行了一些时间,效果也很不错。在此对用到的主要子系 …阅读全文 -
Space Apps 黑客马拉松
上个月 11、12 号,我和两个同事一起参加了 NASA 在全球各地组织的 Space Apps 黑客马拉松奥克兰站的活动。虽然最后我们很遗憾地没有拿到任何 奖项,但整个过程还是充满了乐趣,我也学习到了很多,尤其是对待此类活动的心态问题,相信下次会做得更好。 我们选择的项目名叫 River Flow,是一个数据可视化的项目,目标是以一种简单、符合直觉的方式呈现美国 USGC 公开的水质监控数据,供 …阅读全文 -
撸了个玩具级 Lisp 解释器
相信 10 个 Lisper 中有 9 个会写个自己的 Lisp 解释器玩吧,我当然也不能免俗了。去年 12 月初还在国内的时候就开了个坑写了这么个简单的 toylisp,两天时间就弄出来一个具备词法作用域的核心 Lisp,但是没有宏,所以功能有限,只具备核心的几个函数和 special form:[代码片段],[代码片段],[代码片段],[代码片段],[代码片段],[代码片段], [代码片段] …阅读全文 -
异国他乡的新生活
一月七日,我从北京出发来到了奥克兰,开始了异国他乡的新生活。我的目标是留在这里,为自己的小家创造一个好的生活环境。当然,现在一切都还是起步,未来还有太多不确 定性,但我一定要尽自己的全力去尝试一下,哪怕最后失败了,我也不会有遗憾了。 1. Middle Earth 相信很多人都是通过《魔戒》和《霍比特人》这两部电影开始了解新西兰这个国度,当然前些日子很火的《爸爸去哪儿》第二季节目的新西兰站也让人对 …阅读全文 -
苹果令人担忧的软件质量
前年中秋换手机时买了个 iPhone 5,去年八月则入坑买了 rMBP 13,从此我成为了一个苹果用户(果粉肯定算不上)。总的来说,iOS 和 OS X 的使用体验没得说,绝对是我用过的所有系统里最好用的。但总有那么些不大不小的软件问题一直困扰着我,随着 iOS 和 OS X 的不断演进,这些问题似乎越来越多。苹果作为一个一流企业,我认为其软件系统的质量理应更好,如果长此以往不加改进的话,我不禁为 …阅读全文 -
我的 2014
2012,2013 年我都没有写过年终总结,因为我发现 2011 年时展望的那些事情我都没怎么完成……执行力,这是我现在很大的一个软肋,希望 2015 年能跳出自己的『心理舒适区』,逼迫自己做点事情吧。 技术上无甚作为的一年 2014 年,技术上我基本上没什么大的突破。工作上是各种打杂的事情,一会写写核心引 擎,一会做做运维,始终没能扎根在一个点上深入。当然期间还是收获了不少一手的高负载系统调优和 …阅读全文
-
解决恶心的 nf_conntrack: table full 问题
相信有一定 Linux 服务器运维经验的人肯定见过这个问题:[代码片段] 或者 [代码片段] 里大片地输出类似这样的日志: [代码片段] 同时服务器上的各种网络服务耗时大幅上升,各种 timed out,各种丢包,完全无法正常提供服务。 随着我们流量的提升,最近又开始被这个问题虐了。几个月前第一次遇到此问题的时候,我们使用了提高 nf_conntrack table size 的方法解决的 …阅读全文
-
玩玩 core.logic
我第一次接触逻辑编程是在 《七周七语言》中看到的对 Prolog 的介绍。当时一知半解,但感受到了逻辑编程在解决某类问题时的威力。之后开始玩 Clojure,Prolog 也被我放到一边没有深入学习。 最近在公司做一个项目的时候发现要解决的问题似乎很适合逻辑编程(我直接用 Java 也没太费功夫就实现了,但不管咋样,玩玩呗),遂决定拿来练习一下。当然我不再打算学习 Prolog 了,而是直接使用 …阅读全文 -
对后端系统规模上升的一些思考
随着公司业务的增长,我们的服务器数量越来越多,上面运行的各种服务也越来越多;系统的架构也在逐渐复杂化,一个业务往往需要调用后端的多个服务才能完成,服务间有着 复杂的依赖关系。这些给我们的运维带来了很大的麻烦,系统发布、监控、扩容等等都随着服务器和服务数量的上升变得越来越麻烦,遇到故障尤其是整个服务器的硬件故障的时 候,恢复时间也越来越长。如果说当前还能忍受的话,那当规模再增长一倍的时候,运维的复杂 …阅读全文