2009年1月12日星期一

当当网=上当

新年的第一篇博客,本来不想写这个比较愤青的标题。只是如鲠在喉,不吐不快。

去年12月30号的时候帮妹妹买了一本书,因为那个大学比较偏僻,不能选择货到付款。谁知道一直到今天,状态还是‘正在配货’。真正让人恼火的不是时间太长,而是当当根本不重视客户的感受,根本就不积极去解决问题。

打电话给当当,只听到当当在把责任推卸给整理库房,承诺马上处理,但一直没有回应;发邮件,一直没有人理。

大家都是人,都会犯错,这个没有问题。但是,不愿面对问题,不敢承担责任,不能兑现承诺,当当,这像是一个能成功的企业做的吗?这样的企业,不值得给他留一点儿面子和退路。

------------------------

如果只是在这里愤青一把,这个博客就没有含量了......从这里面能吸取什么教训呢?我看有以下几点:
  • 要有及时有效的反馈。反馈必须要及时,及时表示对人的尊重,没有人有那么多时间配你玩儿。反馈必须要有效,无效的反馈,比如当当客服统一口径的‘库房问题’,谈不到用户真正关心的问题,这种反馈让人反感。
  • 要有应急预案。今天当当出了这么大的事故,别光看笑话,生闷气,你知道明天类似的事情不会发生在你身上吗?是要事先做好准备,还是到时候手忙脚乱?你自己选择。
  • 敢于承担责任。出了问题了,怎么办?怎么向用户解释?你有很多选择,但是推卸责任到其他人身上,不敢说‘这是我的错,对不起’,绝对不是明智的选择。如果你觉得欺骗用户很高明,那么,我确定肯定以及一定,你下次还会犯同样的错。
看看金山,这几点也没有做好。

2008年12月23日星期二

什么时候该增加MySQL数据库的内存?

除了优化好数据库配置文件外,更换/增加MySQL数据库服务器的硬件,是提高数据库性能最直接有效的方法。

这里先从最便宜的内存入手。(服务器内存和硬盘价格一般是台式机的5倍左右)

最便捷的方法是使用mysqlreport,来持续关注报告里面‘Key’和‘InnoDB Buffer Pool’这两个部分。如果你的my.cnf参数设置正确,但是Read hit一直低于99%,那么就要考虑增加内存了。

那么Read hit是怎么计算出来的呢?为什么要持续关注?在MySQL的命令行下:

mysql> show status like 'key_read%';
+-------------------+------------+
| Variable_name | Value |
+-------------------+------------+
| Key_read_requests | 3041374401 |
| Key_reads | 60959876 |
+-------------------+------------+
2 rows in set (0.02 sec)

key_efficiency(Read hit) = 1 - (Key_reads / Key_read_requests) = 97.995647100207184%

mysql> show status like 'Innodb_buffer_pool_read%';
+-----------------------------------+------------+
| Variable_name | Value |
+-----------------------------------+------------+
| Innodb_buffer_pool_read_ahead_rnd | 1660545 |
| Innodb_buffer_pool_read_ahead_seq | 576767 |
| Innodb_buffer_pool_read_requests | 2080081461 |
| Innodb_buffer_pool_reads | 292415839 |
+-----------------------------------+------------+
4 rows in set (0.02 sec)

key_efficiency(Read hit)= 1 - (Innodb_buffer_pool_reads / Innodb_buffer_pool_read_requests) = 85.942096764834353%

从文档里面找出这几个参数的意义:
  • Key_read_requests:从缓存读键的数据块的请求数。
  • Key_reads:从硬盘读取键的数据块的次数
  • Innodb_buffer_pool_read_ahead_rnd:InnoDB初始化的“随机”read-aheads数。当查询以随机顺序扫描表的一大部分时发生。
  • Innodb_buffer_pool_read_ahead_seq:InnoDB初始化的顺序read-aheads数。当InnoDB执行顺序全表扫描时发生。
  • Innodb_buffer_pool_read_requests:InnoDB已经完成的逻辑读请求数。
  • Innodb_buffer_pool_reads:不能满足InnoDB必须单页读取的缓冲池中的逻辑读数量。
这几个都是时刻在变化的,一两次的查询并不能暴露问题。

2008年12月21日星期日

人人为我,我为人人

开源软件为什么在中国走的这么艰辛?我觉得这个和BT,电驴在中国走下坡路的原因是一样的:可以人人为我,不能我为人人。

国内用到开源代码的软件太多了,可是大家用的都很‘低调’:怕别人知道自己用了开源代码,改了bug怕别人知道,有了bug又埋怨开源的质量。

中国大陆忽视知识产权,不仅仅表现在盗版横行,也表现在软件行业中对开源代码的‘单向’使用和篡改版权。

只有‘人人为我,我为人人’,中国的软件才能真正拥抱开源,才能让世界了解中国软件。这个不仅仅适用于软件,其他的都是这个道理。

2008年12月17日星期三

2007年泛珠三角大学生计算机作品大赛之黄果树瀑布

今天梁老师在论坛上面把一年前去贵州的照片贴了出来,还有一篇很有文采的游记。可以去这里看详情

这里贴几张图吧,不舞文弄墨了。