Development

网址缩短服务

| Development

前一段时间帮一个朋友做了一个非常简单的网址缩短服务,已经上线运行了一段时间,这里把当时设计的一些想法分享出来,等有时间我会把代码也发布出来,程序很简单,用 web.py 做的。

阅读全文…( 本文约 866 字,阅读大致需要 2 分钟 )

关系型数据库是为储存关系以及查询优化的

| Development

什么乱七八糟的东西都往数据库里面硬塞,该做的索引不做,不该做的索引一大堆,这再不慢等什么呢,天理难容嘛……

参与评论

Buffer和cache的区别是什么?

| Development | #buffer | #cache

buffer和cache是两个经常被混为一谈的概念。从直观上说,两者都具备改善系统 I/O 吞吐量的能力,但是这两个概念是有区别的,其提高系统I/O吞吐量的原因也不尽相同。

阅读全文…( 本文约 811 字,阅读大致需要 2 分钟 )

基本搞定ibus了

| Development | #ibus | #scim | #输入法

感谢 Henry Hu 的帮助。ibus的一些代码在64位系统上有些问题,另外发现预编译的bytecode也有点小毛病,需要手工删除 /usr/local/share/ibus/ui/gtk/ 中的所有 pyc 和 pyo 文件,看来需要找时间看看到底是什么问题了。ibus拼音的效果要好过scim的智能拼音。

参与评论

你会选择把源代码公开吗?

| Development

最近收到一封邮件邀请我参加一个调查,发现老外对参加代码公开的项目,特别是开源以及自由软件项目的动机总结的很透彻,多少也帮助我更深入地理解了为什么会存在开源和自由软件的分别。

阅读全文…( 本文约 378 字,阅读大致需要 1 分钟 )

源代码有那么重要吗?

| Development

很多人在一个新产品发布的时候,往往会非常关心这个产品是否发布了相应的源代码。然而,对开发者来说,这毫无疑问是一种本末倒置的关注。

源代码能告诉我们的事情是,一件事情是"如何"去做的,而不是"为什么"要那样做。这事就有点像填写报税的表格,那个表格会告诉你在第1行到第20行每行填写什么数字,然后从第几行到第几行的数字相加,减去第几行到第几行的数字之后写到第几行。而当你想要知道为什么要这样做的时候,税表会告诉你"详见税法某某条"或"详见某说明",而提供了源代码的产品就不一样了,因为那些说明,往往要么是一些公司的内部机密文档,要么干脆没有。

阅读全文…( 本文约 682 字,阅读大致需要 2 分钟 )

PlanetPlanet vs Python 2.6

On Python 2.6 we have a new ‘hashlib’ module, which superseded older ‘md5’ ‘sha1’ modules.

Therefore, importing ‘md5’ would give the following warnings:

DeprecationWarning: the md5 module is deprecated; use hashlib instead

This is quite annoying if you run PlanetPlanet in a cron(8) job and receive e-mail reports. In order to solve that, we can do some simple sed(1) replace over PlanetPlanet’s __init__.py:

s/import md5/import hashlib/g

s/md5\.new/hashlib.md5/g

That’s it! And PlanetPlanet will now happily work with Python 2.6.

参与评论

流程不是决定一切的

| Development

版本控制、持续集成测试、自动化回归测试等等,都拦不住不靠谱的开发人员和盲目引入新特性而不关注可用性和可靠性的架构师。某开源项目真是快让我发疯了,明明都已经第十几个小版本了……

参与评论

9.0-CURRENT

| Development

今天 -HEAD 被命名为 FreeBSD 9.0-CURRENT 了(对应的 __FreeBSDversion 是 900000)。从流程上说,这么做的意思是 -HEAD 终于准备解冻进入 slush 状态了(另外,8.0-BETA3应该很快会发布了),基本上之前的一些障碍也都扫清了,目前看来,8.0-RELEASE应该只推后两周左右。。

参与评论

LLVM: 为什么你需要关注这个项目

| Development | #LLVM

LLVM 是 Illinois 大学发起的一个开源项目,它到底是什么呢?从字面上看,它是一个虚机系统,然而这又和之前为大家所熟知的 JVM 以及 .net Runtime 这样的虚机不同,它提供了一套中立的中间代码和编译基础设施,并围绕这些设施提供了一套全新的编译策略(使得优化能够在编译、连接、运行环境执行过程中,以及安装之后以有效的方式进行)和其他一些非常有意思的功能。

为什么这个项目很重要呢?对于普通的开发人员来说,LLVM计划提供了越来越多的可以使用、编译器以外的其他工具。例如代码静态检查工具 LLVM/Clang Static Analyzer,是一个 Clang 的子项目,能够使用同样的 Makefile 生成 HTML 格式的分析报告;而对关注编译技术的开发人员来说,LLVM提供了很多优点:

阅读全文…( 本文约 725 字,阅读大致需要 2 分钟 )