All Stories

诸事不顺

诸事不顺

今天早起送妹子去了火车站,回来休息了一下便出门办事。因为我的驾照快到期了,原本是深圳发的如果要在深圳续期的话非得本人跑去深圳不可,不光是要拍带回执的照片只有深圳的照相馆连得上深圳的相关部门的网络,指定的体检的医院还只有深圳的,所以对我来说成本过于巨大。好在后来网上搜了一下,像我这种情况的人可以直接在上海把驾照转成上海的,只要去指定的地点带上身份证、(临时)居住证和旧驾照,以及几百块钱,当天就可以把拍照和体检等所有手续都办完,顺便续期。因为我的临时居住证早已过期,我今天就打算先去续一下,于是先跑到居委会所在,大门紧闭,一张工作时间贴在门上,只有工作日才开放。怏怏离开,抱着试试看的心理去了镇上的社区服务中心,一问果然还是要居委会开的居住证明。只好下周一请假了!损失真不小啊!

Go语言学习进展

Go语言学习进展

学Go语言已经有一段时间了,其实之前就一直在改Yiili就是用Go语言写的,但毕竟只是在别人已经比较完整的程序上修修补补而已。从周日开始总共花了近3天时间,把公司那个项目的消息转发服务器用Go语言实现了。主要还是不够熟练,很多基本的东西仍然要不停地翻说明文档和在网上查解决方案,所以比较慢,相信熟练起来后这个时间可以大大缩短。这个服务器只是个RESTful API服务器,功能也非常简单,包含了操作数据库和memcached,代码量总共才几百行,真爽快,如果用C++实现肯定不止这么点。

初试QtQuickCompiler

初试QtQuickCompiler

QtQuickCompiler出来有一些日子了,自从istkani在iOS App Store上架后,就没怎么关心过Qt的进展,只是差不多每天例行扫一遍Qt的邮件列表而已。昨天心血来潮想试试QtQuickCompiler到底有多神,首先快速浏览了一下官方文档,发现使用还是很简单的,然后开始照文档的说明一步一步操作。

完成Memcached/Redis支持

完成Memcached/Redis支持

花了好几天时间,终于给Yiili的程序加上了Memcached和Redis的支持。前面也说过,我只是用它们来实现缓存的功能,把一些本来需要查数据库得到的数据缓存起来,比如帖子列表、话题列表、分类列表等,目前看来,效果确实是有一点的,但因为测试环境的帖子太少,还不能看出来以后帖子多起来的时候效果有多少。另外就是Memcached和Redis在效率上的区别也基本看不出来,估计也得是比较大数据量和查询操作才能比较明显得体现出来。

工作近况

工作近况

公司里一个小项目的方案,原本就强烈建议小正太把业务逻辑提出来,单独写个server,不要把应用层代码写到nginx push stream module里去,让人家module只做单纯的协议层数据转发。小正太一直以性能消耗要多一次请求为由想把业务逻辑合到nginx的module里去,我真是无语透了,这是多丑多dirty的设计和实现啊!好在昨天又讨论这个方案时,另一个同事基本上同意我的说法,然后两个人把小正太说得哑口无言。现在公司里的人,上到boss、CTO、Director,下到team leader、PM、普通developer,几乎都对软件工程、架构设计毫无概念,脑子里眼里只有source code。很久以前我就在想,如果有人说公司能做出现在这种产品真不容易,我肯定竭力赞同,在条件这么恶劣的情况下一群水平这么次的员工还是能开发出来每年卖上千万刀的产品,确实很不容易啊!

Nginx上安装Wordpress

Nginx上安装Wordpress

自从知道nginx后,就再也不愿意用Apache了,总觉得Apache配置复杂、体积笨重、运行缓慢,当然这些只是我的无根据臆想。原本用nginx只是用来做静态站,做反向代理,今天zhangh说想要个Wordpress做产品展示页面,于是只好弄一下。顺便感叹一下他的执行力。

《沉睡魔咒》

《沉睡魔咒》

周日去电影院看了《沉睡魔咒》。本来打算周六去的,结果相当不愉快的一次网上订票,先去大众点评网上买了两张团购券,还以为每张可以便宜7元钱,结果到嗨电影网上订票还要再付12元,也就是说每张票才便宜了1元钱,还花了一些时间折腾微信支付什么的,我只能说这两家网站的用户体验做得很烂。而且当时没订票成功,我又看手机上收到了两条短信以为已经订票成功了,其实是大众点评网发来的,于是兴冲冲跑去电影院,然后妹子发脾气了,关在卧室里整整一个下午。叹气。

项目进展

项目进展

Yiili和MiaoCoffee是基于同一个codebase,目前的区别主要在描述性文字等周边部分。现在Yiili和MiaoCoffee都算正式上线了,之后的工作重心就在运营上了。MiaoCoffee的运营我肯定基本上是不管的,那个其实不算我自己的项目,我的主要精力将放在Yiili上,Yiili上我才有绝对的控制力和话语权。总的说来,我也只是因为有Yiili才会顺便花点时间给MiaoCoffee做些技术支持工作。我在人脉方面几乎没有任何基础,所以很难直接拉些人来活跃气氛。于是我想着前期只能自己生产些内容来吸引流量了,而内容生产是件不容易的事,对我来说有两条路可以走,一是找那些还算有交情并且交情还不错的又在某方面的知识掌握得比较多的朋友,请他们偶尔抽空写点两三百字的超短篇,再配张图就算是图文并茂了,二是从国外找内容自己翻译。前者产量极不稳定,后者产量要稳定得多但要占用大量时间。除了通过生产内容吸引流量外,另外我想到的一个也许效果并不怎样的办法是同步SNS,比如微博,微信等等。等项目起步后,就可以开始考虑推出移动app了,这样既能显示专业和认真,又能降低使用门槛和提高用户体验。大体思路就是学v2ex那样通过技术手段来弥补一些资源上的不足。

被第三方库接口变化给坑了

被第三方库接口变化给坑了

Yiili论坛程序是从wetalk改过来的,所以是用了beego这个Web Framework的。前两天Beego从1.2.0升级到1.3.0,有一个用到的接口被删了,用另一个新增的接口替代,于是Yiili就编译不过了。其实据说这个被删掉的接口已经有3,4个版本标记为deprecated了,只是我才接触beego差不多1个月,所以肯定不会知道这回事的,于是即使自己照猫画虎地尝试修改,即使能编译通过了,运行也仍然不正常。Beego的官方论坛上也有人在喊这个问题,一直到第二天,Beego的作者astaxie大概实在受不了人的呱噪,直接把wetalk的不兼容代码给改了。这次事件给我的感觉非常不好,还跑到Go的中文邮件列表去问遇到这种第三方库接口变化引起不兼容的问题该怎么解决。结果有人说,官方的做法是把第三方库在自己的代码库里copy一份,唔,这是我最不喜欢的做法,像svn external,git submodule不都是为了避免这种做法吗!但是go get不支持版本,所以是没办法做到的。还有人提出个我觉得还能接受的办法,在GOPATH里加3个路径,第一个专门放go get取下来的第三方库,里面的东西随时可以删掉,第二个专门放被自己修改过或认为是stable的第三方库,可以保证自己的项目能编译通过的,第三个专门放自己的项目代码。