December 2011
1 post
4 tags
Sentry
或许你不太会喜欢异常,特别是那些发生后继而沉默在应用日志里那些,你不知道从何开始,因为它们看起来并非那么平易近人,但是用户吵着他的数据有问题,你只得硬着头皮在多个服务器的日志里,翻箱倒柜,试着从堆栈里发现些什么,但是毫无线索,因为你发现这根本是一桩无头命案,没有足够的上下文,不知道哪个才是这个用户的某个操作引起的异常,请求链接更无从谈起,好吧,再去nginx日志里看看吧…… 但幸运的是,你不是孤独的,Disqus也面临着同样的问题,因此而开发了Sentry,它是一款精致的Django应用,目的在于帮助开发人员从散落在多个不同服务器上毫无头绪的日志文件里发掘活跃的异常,继而找到潜在的臭虫,当然这个是概述,像其他监控工具一样,sentry也是分为客户端和服务端,客户端分布在你的每个应用服务器上,在异常发生时django会通知它,继而客户端再把详细的异常信息以及相关的用...
Dec 27th
3 notes
March 2011
4 posts
1 tag
Release it中稳定模式的一些理解
     这些模式就像设计模式一样,在我们的系统中不是看你使用了多少模式,或者说是否严格的遵守了这些模式,模式能解决的是大部分通用的情景,但是在实际应用时也要看上下文。      Why bother this? 我们系统不是孤立存在,他依赖着很多服务(一个完全不依赖任何资源、服务的系统,几乎是不存在的,当然你可以举出反例,但我觉得这个系统的存在也没有太多意义),很多时候他和这些服务工作的很好但是如果你对他们没有任何防范的话,某天他会让你尝到苦头。      在Release it! 一书中举出一些模式以防止某些经常发生的问题再次发生(本书作者提到自己所解决过的线上故障都是新问题,是因为他从不让同一个错误重复发生),的确是经验之谈,这里说下个人的理解。      使用超时     ...
Mar 25th
3 tags
Nerd指导手册
闲着没事翻译这篇文章(每天翻译一些):The Nerd Handbook - http://www.randsinrepose.com/archives/2007/11/11/the_nerd_handbook.html      Nerd需要项目因为他们不断创造新事物。亘古不变。你注意到他们在晚餐闲聊时间歇性的停顿了吗?那是你所面对的nerd的脑袋正忙于他的项目。          但是这个项目不大可能是nerd的日常工作,因为在他的眼里,工作就是“待在办公室,完成某件事”。我们接下来会花些篇幅来探索下这种表面上注意力不集中的结果,但是现在,这个项目是你的这位nerd正在开发的一件头等大事,虽然我并不知道这是怎样的事,但是你应当知道。    ...
Mar 12th
3 notes
“The best way to complain is to make things.”
– James Murphy
Mar 8th
人咬狗
     我个人是比较喜欢抱怨的,对许多事情不满,有悖于James Murphy说的The best way to complain is to make things.但是我毅然决然stop from making things,而且最近又有人建议我“顺其自然”,那我就随性牢骚一下。     看公司每天的纷纷扰扰的邮件总是让人有种世界和平、奥特曼可以退休的感觉,这很好,但我这个人天生有着阴暗心理,唯恐天下不乱,太平和使我不大习惯,但是某天有封邮件使我愕然,这是一封对于公司业务复杂使得代码存在着bug的提议,当然,具体详情我就不透漏了,这里我也罗嗦一下关于业务需求的问题。    ...
Mar 7th
November 2010
2 posts
1 tag
轮子
在公司有个奇怪的现象,凡事都自己搞一套,就是造轮子:开发难用又落伍的web框架,制定私有的xml格式传输数据(tag名一眼就能让人看出是个c程序 员设计的及其精简的变量名),自己编制http server(老实说编写者自己都不知道http server到底是个啥概念,甚至都可能没看过http协议,返回xml数据,content-type都没有),编写自己http client类库,etc…如此这般,诸如此类,如有雷同,不是巧合。 当然这其中有些是可以理解的,“历史问题”嘛,但是大家仍然继续使用这些不但降低开发效率,难用,bug丛生的“产品”,原因是什么?有人给出答案,为了 统一,为了节省维护成本,为了安逸,为了不必要的风险,但是亲爱的,你有没有想过,作为一名开发人员,开发效率如此低下,是多么痛苦,你说搞计算机的人,...
Nov 21st
3 tags
免费提供图片上传服务
完全免费,本打算自己写博客用,但不敢独自享受。限制是大小在1M以内,需要google账户,地址:http://minicabinet.appspot.com/,希望你喜欢。
Nov 7th
September 2010
1 post
1 tag
旅行的意义
第36个故事里有个问题,是问,如果 让你选择,你愿意拿读书的学费去环游世界还是继续读书? 对于我现在来说是离职旅行还是继续工作,但是这两个问题似乎都很难抉择(没错,我就这是这么纠结的人):如果不读书,就去环游世界,我不知道旅行对我来说 都意味着什么,我会用心发掘我所见到的一切吗?看见海我想到的是什么?凡高为什么喜欢普罗斯旺这个城市?天晓得,我甚至不知道什么是美,什么是旅行的意 义。可是如果没有旅行,或许你会不快乐,因为我们“不快乐的唯一原因是不知道如何安静的呆在他的房间里”,正如我以前所说的,如果我们每个人抛弃固有的看 法、知识。假装不认识这个世界,就好像你以前从未来过这里,每个事物都是新鲜的,也许你会有些特别感受,你感到好奇,你想了解它,你觉得这一切多么有趣,...
Sep 18th
May 2010
1 post
1 tag
Coding Alone
写代码是我的工作,我也乐在其中,你可以想象一下在某个风轻云淡的炎热夏日,我在面对屏幕在宿舍不停的敲打键盘,间歇时便啜口白开水,然后继续… 一个web应用,从数据库设计,业务逻辑代码,很酷的特性,前端页面和样式一手包办,老实说如果让别人帮我作,我都不放心,我担心他写出东西不符合我的期 望,又难以启齿说他写得不好。这样,我发现一直以来都是一个人在写代码,我可以写出一个别人都喜欢用的应用程序,但是却没有人会在看完你写了一段很酷的代 码而大声称好,也没有人乐意指出我的不足,跟你说这块代码写的有问题。我觉得很沮丧,就像你写的书无人问津。而即使现在在公司里也不例外——团队之间的合 作似乎并不体现在共同参与同一个项目,更多的是一种依赖关系。项目里你负责的部分写好了代码,只要它工作正常,在项目计划好的时间内完成,那就成,没有人...
May 29th
March 2010
1 post
1 tag
A Plan For 2010
(标题山寨的是Paul Graham的A Plan For Spam) 我想,就像故事开始的那样,在娘胎里兀自孤独了许久后你出生的地方,第一次诚惶诚恐睁开眼 睛,每一物都是初次见面,”hello,world!”——你这样想,回到故事的现在,现在就是现在,此时此刻,你还不知道你的未来如何的现在,尝试想像 你从未见过这世界,计划着重新认识每一个已知的以及素未谋面尚待探索的未知的新事物,抱着贾宝玉初试云雨之情,抱着齐天大圣大闹天宫般严谨朴素之情怀,重 新定义你对阳光绿叶的理解,重新审视周围的人与事,重新理解歪心狼为何历经磨难却无法取得真经,而唐僧师徒却一路玩山游水还拿了特等奖,恩,是该让生命变 得 有意义的时候了!——你这样想,但是即便是行乐须及时,我想即使在活了四分之一世纪的现在,有规律的计划一下当下的生活,也并非是亡羊补牢的勾当——你也 ...
Mar 14th
February 2010
1 post
1 tag
真相
这个世界纷纷扰扰,浑浑噩噩,我们的天性需要我们将所有复杂、混沌的事情变成有序、合理、简单的事实,这样你才能够更容易理解,就象电话号码 一样,你试图寻找一些规律才记得住,同样我们也喜欢为任何事情寻找一个理由、原因、解释诸如此类,使得事情在发生后“说的通”。而且还有个重要事实,那就 是许多人不知道自己真正想要的是什么,所以不管你给他什么,他都会欣然接受,这就是为什么许多人活在新闻媒体大话娱乐的轰炸没有思考、没有真相,只有经过 别人扭曲的世界里。大家“像电视里一样衣食住行,像电视里一样追求爱情,像电视里一样成家立业,像电视里一样教育抚养,甚至像电视里一样思考,人们做着电 视里的任何事情。”,“因为你们当中看书的人不到3%,看报纸的不到15%,你们只关心怎样才能从电视里找到解脱,现在,有整整一代人,根本不知道电视外 面是什么。”,这是30年前《电视台风云》中...
Feb 5th
October 2009
1 post
1 tag
美来自选择
最近在看Programic Thinking and Learning,里面有句话是“Beauty emerges from from selection“,美来自选择(而不是美宝莲)。书中说艺术不是来自创造本身而是来自在无尽的选择中作出的选择,音乐家在乐器,旋律,音调音阶,节奏 中其实有几乎无限的各种组合。画家可以在两千四百万种不同的色调中作选择。作家要在5万多个汉字,以及上百万个词语中选择完美的字句。你听什么歌,看什么 书,写什么样的代码,用Ubuntu还是Fedora,体现出的是你对美的看法。再从ipod的包装说起,ipod的包装没有太多废话,只是说它能存多少 首歌和视频,然后配有一个漂亮的图片,简单直接,但优雅。相比起来,Youtube上有段视频是说明如果让Microsoft来设计ipod会是什么样:...
Oct 22nd
1 note
March 2009
1 post
2 tags
如何意淫?
如何意淫? 施能毅和我谈到意淫,我无法体会他所说的意淫为何物,SICP我还没有读,我无法体会把完成SICP的习题当作玩具的感受是什么样子,他说用一个月学会扫雷游戏,而在看完SICP后只消一周时间就打败了FIFA游戏的机器人。 那么到底什么是意淫?我通过搜索引擎去查找什么是意淫(当然,意淫一词在网络上被称为YY), 意淫一词最早源自《红楼梦》第五回:游幻境指迷十二钗 饮仙醴曲演红楼 梦,下面是百度百科的解释: (警幻仙子谓贾宝玉为“古今第一淫人”)“如世之好淫者,不过悦容貌,喜歌舞,调笑无厌,云雨无时,恨不能尽天下之美女供我片时 之趣兴,此皆皮肤淫滥之蠢 物耳。如尔则天分中生成一段痴情,吾辈推之为‘意淫’。‘意淫’二字,惟心会而不可口传,可神通而不可语达。” 是一种超越性爱的感情方式。可谓情爱中的极品,可以算是个大大的褒义词。...
Mar 1st
2 notes
October 2008
4 posts
1 tag
怎样使你对编写程序发生兴趣?
怎样使你对编写程序发生兴趣? 海龙问我,有没有一本书能够使自己对编程感兴趣,我当时说我不知道,好像没有,事实是许多人在学了C/C++之 后,就失去了对编程的兴趣,觉得编程既枯燥又难学,我得承认C/C++语言绝对是一流的程序设计语言,它经历整整三十年依然为广大厂商和程序员采纳,可问 题是是否C/C++是最好的入门语言。C/C++固然是其他C体系语言的基础,比如Java,我也是在学习了C/C++之后学的Java,这时学习难度并 不是很大,至少是在语法方面,可是呢,你知道,许多人在C语言的指针问题上出了问题,它很难学(至少是对初学者来说),所以它绝对是个不折不扣的瓶颈,而 C++的面向对象实在是可怕(与其他面向对像语言相比),一堆需要花许多时间来理解的概念(至少我不明白,我认为这是蹩脚翻译惹的祸,辞不达意),友元、...
Oct 20th
1 tag
Everyone can cook
最近看了迪斯尼出品皮克斯制作的动画电影《料理鼠王》,说的是一只会说一口流利英语的老鼠有着灵敏嗅觉而且对厨艺这方面有着不可思议的天赋,在通过与人类 的交往中展现了自己的天才厨艺,而且深刻地反映了贯穿影片始终的主题:Eeverone can cook. 可是并非人人都能成为优秀的厨师,这就是苏大后庄小吃一条街那些炒菜的师傅以及我们的老爸老妈与汉庭坊里的厨师之间的差别。其实这句话与Martin Flower在《重构》中一句经典的话:”任何一个傻瓜都能写出计算机可以理解的程序”(相当于Everyone can code)如出一辙,但他的后半句是“只有写出人类容易理解的程序才是优秀的程序员。”而这句话与我高中时代的化学老师兼班主任说的话又十分相似:要把你...
Oct 15th
3 tags
Processing...Processing...Processing...
我琢磨Processing已经有些日子了,对于这种小型计算机语言,我总是抱着”Just for fun”的态度来尝试,的确它真的满足了我的猎奇心理,而且很好玩很强大很有创造力。语法很简单,由于是基于Java语言,所以在很多方面,它秉承了 Java特性,对我来说学起来很快,不过这种语言不是给一般的程序员使用,It targets visual designers and artists.许多年前,凡高用颜料和画纸、画笔、调色板创作油画,古代中国人用墨水、宣纸和毛笔创作水墨画,当代有素描画、蜡笔画、炭笔画、水彩画 等,我在高中时代甚至用蓝色圆珠笔和素描纸作画…可是在计算机技术横行的时代,传统的艺术形式显得太保守了点,现在Processing正颠覆这些传 统,可是你不要以为他是Photoshop、Flash、Google ...
Oct 4th
1 note
3 tags
把Gmail邮箱当硬盘使(在Ubuntu上挂载gmailfs)
以前在《Google  Hacks》上了解到GmailFS可以挂载到本地硬盘,今天没事干,在Ubuntu上尝试玩了一把。 前提:1’ 有一个Gmail帐户 2’ Ubuntu操作系统 3’ 可以连上Internet Just do it: 终端上: b@t:~$ sudo apt-get install gmailfs b@t:~$ sudo mkdir /mnt/gmail b@t:~$ sudo mount -t gmailfs none /mnt/gmail/ -o username=toozoofoo,password=mypassword,fsname=Linux 可能终端会出现Ignored option :rw的提示,那没关系。 ...
Oct 1st