页面

2011年11月1日 星期二

软件从业者误区(一)

最近看到一系列争论,包括ICPC/ACM,包括对注释的争吵,于是打算写这么个系列来说下现在传统的软件行业究竟是什么样子的。究竟多少算误区。
首先如果你所从事的行业涉及到极其高深的人工智能,语义网络和对算法要求极高的科研项目,我这里所涉及的内容多数是建立在业界比较广泛的企业级软件和网络应用服务上面。
误区一:算法是软件编码的最高境界
很多人都觉得那些掌握了一流算法的人特牛,那些参加诸类大赛的人都是高手, 但就我看到的企业和软件来说,里面高级算法占有的比例可能不及千分之一,这还不是代码行数,而是从功能上说。在企业级的软件里,不是说算法一点价值都没有,算法能做出很多很有意思的改进,但必须明确的是需求会比任何算法更复杂更难以控制,你可以在一个团队里找出无数个熟悉各种算法的程序员却很难找出能对每个需求都了若指掌的人,因为需求往往错综复杂,相对于算法说的话,他更为庞大,更为怪异,有时不会顺着你的思路走,如果你什么算法都会写,你可能就是一个高级程序员,但如果你什么需求都清楚,你一定前途无量。
误区二:代码是最好的注释
如果你还在试图阅读一个2000行的类,并且说其实这个类并不是那么复杂,我们可以通过阅读代码来了解所有的信息时,那如果你面对上百万行代码的企业级软件呢?很多人过度崇尚代码即注释的Geek精神,我承认如果你能把代码都读明白,注释一点用的没有,问题是,你面对的代码不是出自你一个人的手笔,也不是一个bug都没有,当你发现一个bug的ifelse写饭的时候,如果需求注释写在那边,你只需要一秒钟就知道这个地方写错了,但如果没有注释你可能要画出一整个diagram来看这个地方确实是写反了。注释能加速你阅读的进程,提醒你容易忽略的重点,告诉你那些非英语国家的怪异命名规则究竟是什么意思,请问当你看到一个变量名字叫做fis的时候你会意识到这其实是一个文件输入流吗?你说你可以看类型,没错,但要花时间对不对?别忘记写注释,我见过的优秀的代码他们总是把注释写在最需要的地方,如果你也能这样,那种水平和你不靠注释就能读代码相比,才是真的水平。
暂时先写到这里,有时间我再慢慢添加。

2011年9月27日 星期二

杂记

话说确实很久没更新博客了,也确实有点懒。
最近似乎也没什么特别的,也许是不再年轻后发现很多事情现在看来都是波澜不惊的。
最近一直在忙着搞去以色列的签证,结果昨天去大使馆,发现彻底估算失误,人家大使馆早就准备放假了,才不会等到和我等P民一起放假呢。自然是签证失败,要等下个月底了。
最近人比较懒,新技术上跟进也有限,研究还是集中在grails上,不过似乎2.0M2的版本还有诸多bug,所以还是只看看文档,而且较大的问题是idea当前的版本无法支持2.0M2,像我这种对IDEA如此依赖又懒的人自然不愿意继续。
下个月iPhone5要发布,暂且不管究竟是叫4gs还是叫5,这次的产品我猜想大升级不会有,不过邀请函依旧是Apple范,四个图标就表明了时间地点物件。蛮有创意的。
看看我这种人,写到这里已经想收工了,想到再回来写吧。

2011年4月11日 星期一

取消IOS对App Icon的自动发光(gloss,mask)效果

如何去掉ios给icon添加的效果,找了半天,不知道怎么描述关键字好,所以没搜到结果。
于是只能逐个对比,最终发现需要在info.plist里定义。
如果在开发阶段,只需要修改appname-info.plist,增加一条记录,键入:
UIPrerenderedIcon,设置为boolean,选择为true即可。
注意大小写,另外当键入这个key时,编辑器会自动将其调整为可阅读的一个类似already gloss的key,不用管它。再发布就不会自动去掉那个对icon的发光预处理了。

2011年3月21日 星期一

记在一次运维事故后

今天早上起来,发现邮箱收监控宝到通知,服务出现故障10小时,已经恢复。
发现应该是昨晚10点28分机房出现掉电,导致服务器整个断电。
而在机房恢复通电后,网管没有把相关服务器一一启动。
现在除了10小时内用户无法访问外,最严重的问题是用户会话丢失。
直接导致的问题是所有针对用户的自动化服务全部不可用,需要等用户自动登录后才能恢复。
这就是中国服务行业的现状!
一个机房,没有ups电源,他也敢出来做机房。
一个机房,网管是负责睡觉的,而不是保证服务器24小时不出问题的,他们也敢出来做机房。
网管是没有问题的,因为工资低,这点钱你能要求他做什么?
可是机房呢,一个连基本的灾难控制都没有的地方,就拉根网线就过来做机房了。
我们没办法投诉,因为没这个精力也不想和他们扯什么。
就算是他们的责任,我们的用户自动化也恢复不了。
但我们要思考的是以后如何避免这样的问题。
顺便说下,这个机房是上海张江金科路机房。
6月底考虑更换了。

2011年3月18日 星期五

property instance released cause app crash

UIImage * tempImage = uiImageView.image;
这个语句太普通不过了,uiImageView对象存在,里面的image已经被release。
直觉上来说,这句顶多是tempImage为空,不会有问题。
结果到模拟器里,到这句就crash,疯了……
不过终于想通了,原因就在image是@property (retain)定义的。
retain定义了后,gcc会将其自动转成一个getter方法,里面包含[image retain]操作。
所以就crash了……晕。

2011年3月8日 星期二

这次回南京,听到一个消息,大学一个叫严音的女同学,4年前在北京出门去交电话费,就这样没了,失踪了。
因为和这个同学一起在学生会公事过,后来到工作室后,联系也蛮多的,毕业后06年有过一次联系,咨询了她一个问题,后来就一直都未曾联系,每逢过年还是会群发祝福短信,但殊不知那个号码早已是空号。
这个事情一直缭绕在脑海,有点挥之不去,感觉人生命的脆弱让人唏嘘。
命这个东西我常常说不信,可是,有时当我总会说,如果当初如何,现在就不会那样时,我感觉感叹的不就是命这个东西吗。
大三时,学校组织了一些同学去北京实践,这个同学就是在那次旅程中开始和他男朋友谈的,因为那个男生是北京人,所以她毕业后也就理所当然的去了北京。
如果没有那次旅行,如果没有故宫里那次和她男朋友的抱故宫里的柱子(也不知道当初瞎起什么哄),也许现在就不会有这个悲剧,可是,命该如此,我们没有人能控制。
同事算了一卦,生死未卜,我倒是愿意接受生死未卜,至少还有希望,不是么。
我想写但是,却写不出来,我不信迷信却又担心自己手贱敲下不该出现的字符。
只愿这个同学,无论现在身在何处,能安然也就足矣了。

2011年2月22日 星期二

至少,墙外没有敏感词

虽然访问麻烦了,虽然看博客的人也少多了。
至少我可以看到茉莉花,加上革命也不会变成star。
至少我可以说64,而不会非要改成63.5。
我没打算要革命,也不准备颠覆国家政权。
我只是希望多看到一点,多听到一点,那一点真实的东西。
这个要求不算高,可是你们连VPN都开始屏蔽了。
我们的社会主义列车正在开向平壤。