2009年3月31日星期二

运营运维比研发更重要

‘行百里者半九十’,就句话用来比喻产品的研发和运营运维非常恰当。

研发是大家都非常重视的一环,开发量占整个过程的绝大部分,但是,良好的研发只是开了好头,如果忽视看似简单的产品运营和运维,再好的产品也得不到用户的认同。

有效的运营,可以及时收集用户的问题(将问题在萌芽期都处理掉),反馈给研发,推动,督促并监管问题的快速解决;稳定的运维,可以为用户提供持久可靠的服务,为研发优化,修改程序提供数据支持。

如果没有好的运营和运维,那么这样的情况是意料之中的:
  • 出问题了,但是没有数据去查找原因。
  • 问题的反馈总是从客户的抱怨声中传到研发的。
  • 服务器端连两个九的可用性都不能保证。

2009年3月26日星期四

五一长假惹谁了?

广东刚说要放假7天,今天国务院就说全国五一放假3天,禁止擅自调休。公司也赶快发邮件通知来响应国务院,广东的7天假一个字也没有提。

本来想着这次五一出去玩可能不那么挤了,看来是肯定不挤了。

我们还有年假可以休,那些没有年假,连周末休息都是奢望的人们,谁去保障你们的权利?冠冕堂皇的年假制度最终沦为合法剥削劳动者的借口。

休假不是福利,是权利!应该由国家机器来保障。以前五一是有很多弊端,但它至少保障了很多人休假的权利。现在的休假模型当然比五一黄金周好,但却牺牲了弱势劳动者休假的权利。

2009年3月16日星期一

python tips

看别人代码的时候,总是会发现很多好玩儿的用法或者不太注意的库,比较零散,就记录在这儿吧。持续更新......

1、用 ...and ... or ... 来替换 if....else...
old:
if flag:
print 'yes'
else:
print 'no'

new:
print flag and 'yes' or 'no'


2、经常被字符串里面很多的%s搞糊涂?还不快试一下Template
old:
message = '%s is better than %s,and %s is worse than %s.so,%s is better than %s'
print message %('a','b','c','b','a','c')

new:
from string import Template
message = Template( '$a is better than $b,and $c is worse than $b.so,$a is better than $c')
print message.substitute(a='a',b='b',c='c')

2009年3月15日星期日

跳出框框看问题

今天看Bret Taylor写的FriendFeed使用MySQL的一些经验:How FriendFeed uses MySQL to store schema-less data ,很有感触。

FriendFeed遇到过的问题,我也遇到过苦恼过,因为想不到好的方法,最后不了了之。而FriendFeed并没有不了了之:so we decided to look outside of the realm of RDBMS. 就是这种跳出框框的思维,让FriendFeed找到了一个非常适合自己的解决方案。

现在看来,数据库的设计真的是一门艺术,需要创造性的思维。不要让书本上面所谓的金科玉律拴住我们的思维。