日落北京城

我想象中的北京,差不多一半是火海炼狱,一半是婀娜天堂,满满都是魔幻现实主义气息。

Go语言中的面向对象

最近在思考Go语言中面向对象实现,感觉最初的设计者真是掐准了软件工程的命脉,优雅与实用恰到好处的结合,使得这门语言于平凡处见深刻。

PL Meets AI

编程语言是很善变的,一旦用其编程,它便不再是你头脑中的那个语言。

JCommander:Java外部参数解析利器

最近需要把项目交给别人进行运维,为了不让接手之人涉及太多繁琐细节,我把一些定义在final类中的不可变量抽取出来,把项目变成可外部配置的。用配置文件可以达到这个目的,但由于配置之间有相互依赖关系,比如:

Go实践之并发初体验

golang的一大卖点是并发模型基于CPS(continuation passing style),使用起来比较简单。刚开始我也觉得比较简单,但使用之后发现,你必须很清楚golang的并发机制才能使用自如,在需要同步尤甚,一不小心就会陷入罪恶的渊薮。

Go实践之JSON解析

当我们开发了一个新版本的软件时,通常需要和稳定版进行对比,进行QoS评估。对实时性网络服务而言,比较客观的做法是同时请求相同的服务,然后对比返回结果。

Storm集群的安装与配置

1. Infrastructure

人性化排序

对于大部分产品来说,搜索功能是必不可少的。有搜索的地方,就有排序。对文本信息的排序没有数值排序来的那么直观,对搜索到的信息,通常的展示策略有三种:

借力数据结构

做实时公交查询服务时,最重要的能够实时跟踪每一辆车的时空信息,并结合静态数据,准确刻画出一个城市每一时刻所有公交线路的状态。由于基础数据只有线路,站点这样的信息,做时间预测,位置计算便只能依赖这些信息。比较关键的思路大致如下:

互联网之子:亚伦·斯沃茨的故事

八一八浏览器缓存

今天由于需求变更,修改了部分前端代码,测试没问题之后进行了部署。交付测试时,发现修改的代码不起作用。而且比较奇怪的是一般手机浏览器没有问题,但微信内嵌浏览器内的结果还停留在部署之前的状态。分析后得知应该是缓存机制引起的。这里总结一下关于浏览器缓存的知识。

写博客的意义

Thought in The Mirror.

模式匹配大法好

if, while, for

除了Hello,world之外的任何程序,几乎都离不开控制结构。比如if-then-else, while,for,其实这三种的基础说白了还是加了一层语法塘的goto语句。

Storm实时处理案例(1)

在Storm里面,用水流来比作数据流真是再合适不过了。 raw数据源源不断地流向Spout,
Spout对流入的数据进行检查,如果是符合要求的数据(好比质检合格的水),则从流中截
出一个单位数据。

Tomcat 并发调优

一. Linux系统配置

NLPNote

1.《Python自然语言处理》笔记

Struct Hack

最近在搞CompilerCodeGenerator实验,有一部分需要把Java程序翻译成C程序

冥想5分钟, 沉睡1小时

这是一本心灵读物,有一个很滥俗的名字:《冥想5分钟,等于熟睡一小时》。作者对于人脑,记忆的认识还是比较深刻的,但内容稍显虎头蛇尾。

《Python学习笔记》的笔记

这是对雨痕写的Python学习笔记的学习。