Archives
All the articles I've archived.
-
中文文档格式规范
一份中文技术文档的排版规范,涵盖中英文混排时的空格、标点和用词等规则。
-
GitCorp Flow - 安居客 Git 开发流程规范
安居客内部 Git 开发流程规范,详细介绍代码仓库管理、项目分支开发、多人协作、rebase 策略以及 BETA/GA 发布流程。
-
Readme 驱动开发
Readme 驱动开发的中文翻译,提倡在编写代码之前先写 Readme,以此明确项目方向、促进团队协作并产出高质量文档。
-
安居客的网站架构
2012年 Think in LAMP 技术大会的演讲内容整理,介绍安居客网站架构从小到大的演进过程,涵盖搜索、图片系统、开发测试流程、监控工具和异步服务等方面。
-
The Twelve-Factor App
The Twelve-Factor App 的中文翻译,为构建现代 SaaS 应用提供十二条方法论指导,涵盖代码管理、依赖、配置、部署和扩展等方面。
-
用 Python 解重排九宫
用 Python 实现重排九宫(8 Puzzle)求解器,支持 Hamming 和 Manhattan 启发式搜索算法。
-
家庭网络的需求梳理
家庭网络设置的需求梳理,涵盖千兆局域网、互联网接入与翻墙、远程访问、NAS 共享、IPv6 以及网络安全。
-
Mac 实用技巧(三)—— 启动快捷键
Mac OS X 启动快捷键速查:Safe Mode、Single User Mode、Verbose Mode、PRAM 重置等。
-
Mac 实用技巧(二)—— 禁用 Spotlight
How to disable and re-enable Spotlight indexing in Mac OS X Snow Leopard using terminal commands.
-
There Was No One Left to Speak Out
Martin Niemöller's famous poem about the danger of remaining silent in the face of injustice.
-
Mac 实用技巧(一)
macOS 实用技巧合集:禁止生成 .DS_Store、刷新 DNS 缓存、设置主机名、清理打开方式菜单等。
-
Vim 实用技巧(一)
Vim 实用技巧:忽略大小写搜索、智能大小写、语法高亮设置和命令历史窗口。
-
Vim 实用技巧(二)—— 分屏操作
Vim 分屏操作速查:水平和垂直拆分窗口、切换窗口、调整大小等快捷键。
-
安居客 iPhone 应用发布
安居客发布 iPhone 应用,可查看周边房屋价格走势,同时招聘 iPhone 和 Android 开发工程师。
-
安居客的代码大爆炸
用 CodeSwarm 可视化安居客 Subversion 代码库从一个工程师发展到三十多人的演变过程。
-
一段 Applesoft BASIC 代码
一段 Applesoft BASIC 代码示例,在低分辨率图形模式下画出特别的图案,可以在在线模拟器中运行。
-
工程师普遍采用的时区是当地时区 -8
读《苹果往事》有感,书中工程师文化的趣事放到今天依然适用。
-
自建动态域名解析服务
用 PowerDNS 搭建自己的动态域名解析服务,通过简单的 HTTP API 和 Shell 脚本实现域名更新。
-
USB 硬盘的固定设备名和自动休眠
通过 udev rules 为 USB 硬盘设置固定设备名,并用 sdparm 脚本实现空闲时自动休眠。
-
在 VMware ESXi 上开启 SSH 服务
记录在 VMware ESXi 上开启 SSH 服务的操作步骤,方便以后查阅。
-
安居客招聘架构师
安居客招聘软件架构师和系统架构师,介绍公司技术团队和业务发展情况。
-
为 Kernel 2.6.31 编译 MPPE/MPPC 模块
在 Gentoo Linux 上为 Kernel 2.6.31 编译安装 MPPE/MPPC 模块以支持 PPTP VPN。
-
安居客三周年年会上的光影节目
安居客三周年年会上技术部和运营部联合表演的光影节目视频,我觉得是当晚最好的节目。
-
我的 Linux 透明网关
用 Linux 搭建透明网关,通过 Squid 缓存加速 Web 访问,并结合 SSH 隧道和 Privoxy 实现翻墙。
-
好租为什么不被 Google 收录
好租网站上线后发现未被 Google 收录,怀疑 haozu.com 域名之前可能有不良记录。
-
410 房间的 OpenID 讨论
中文网志年会 2006 期间在 410 房间进行的 OpenID 深夜讨论,有人拍了照片记录下来。
-
中文网志年会 2006 的网页"胸牌"
展示中文网志年会 2006 的网页"胸牌"徽章,又要出发了。
-
中文网志年会 2006
参加中文网志年会 2006 的回顾,包括卖菜 2.0 讨论、OpenID 话题和带娃参会的体验。
-
My Firefox 1.5 Configuration
记录当时 Firefox 1.5 的完整配置,包括 19 个扩展、主题和插件列表。
-
一道 Java String 面试题
一道关于 Java String 参数传递的经典面试题,考察值传递与引用传递的区别。
-
CSS 裸奔日
参加 CSS Naked Day 活动,去掉网站所有样式展示纯 HTML 内容。
-
用 Python 脚本实现动态 DNS
用 Python 脚本自动检测 IP 变化并更新 DNS-DIY 域名解析,实现动态 DNS 功能。
-
蹭 WiFi 上网
搬宿舍后宽带未通,利用周围未加密的无线网络上网,并用双网卡笔记本做 NAT 搭建自己的无线局域网。
-
解决 JDK 1.5 中文显示的 fontconfig.properties
解决 Linux 下 JDK 1.5 程序(如 IntelliJ IDEA)中文显示问题的 fontconfig.properties 配置文件。
-
爱因斯坦写汉字
基于一个让爱因斯坦在黑板上写字的网站,做了一个能让他写中文汉字的小玩具。
-
上苍保佑吃完了饭的人民
因 WordPress 文档网站被墙无法访问而感慨,听摇滚乐调整心情。
-
Ubuntu Dapper 安装在 USB 外置硬盘上
在 USB 外置硬盘上安装 Ubuntu Dapper Drake,中文粗体显示不再需要额外打补丁,附 fontconfig 配置。
-
用 RSA 原理破解一个数学问题
通过 RSA 算法原理和 Quadratic Sieve 方法,解决大整数模幂逆运算问题,用于编写软件序列号生成器。
-
让 Google 显示英文界面
介绍如何将 Google 中文版默认界面切换为英文显示,包括使用 ncr 链接和修改 Cookie 两种方法。
-
URL Rewrite Module for ASP.NET 2.0
Building a simple URL rewrite HTTP module for ASP.NET 2.0 on IIS, inspired by Apache's mod_rewrite, with sample configuration.
-
CDMA Dialup Internet on Gentoo Linux
Step-by-step guide to setting up CDMA phone dialup Internet on Gentoo Linux via USB modem, covering kernel configuration, PPP setup, and chat scripts.
-
FlickrFS 果然来了
之前猜想会出现的 FlickrFS 终于发布了,可以像操作本地文件一样管理 Flickr 图片,不过中文支持和下载还有问题。
-
My Firefox 1.0.7 Configuration
A snapshot of my Firefox 1.0.7 configuration on Linux, listing 16 enabled extensions and installed plugins.
-
我在中文网志年会上
中文网志年会现场,有人拍到了我。
-
Chinese Blogger Conference 2005 Slideshow
A Flickr slideshow of photos tagged from the Chinese Blogger Conference 2005.
-
今晚酒店的网络拥堵
中文网志年会期间酒店网络因 Blogger 太多而严重拥堵,用 traceroute 记录了高延迟状况。
-
我参加中文网志 2005 年会
宣布参加中文网志 2005 年会,期待与各路 Blogger 面对面交流。
-
在 PC 上试装 OS X Tiger x86
出于兴趣下载安装了 OS X Tiger x86 版本,在普通 PC 上体验 macOS。
-
我 TMD 就是讨厌博客中国
回应博客中国对抵制标志的指责,表明制作 NO blogchina 标志的立场和原因。
-
为什么我的网站都使用 UTF-8
解释为什么网站使用 UTF-8 编码:支持多语言混合显示,避免本地编码方案下其他语言文字出现乱码。
-
MSN Messenger 的庸俗化
吐槽 MSN Messenger 不断增加无聊的附属功能走向庸俗化,反思自己公司 IM 项目类似的策略。
-
从 USB 硬盘启动 Gentoo Linux
在 USB 硬盘上安装可启动的 Gentoo Linux,通过修改 initrd 和 hotplug 脚本解决 USB 设备初始化和关机问题。
-
Hedgehog 的第一个可聊天版本
经过近一个月的 Jabber 协议封装开发,Hedgehog 即时通讯客户端发布了第一个可以文本聊天的版本。
-
Hedgehog 即时通讯客户端
基于 Jabber 协议、使用 wxWidgets 框架开发的即时通讯客户端 Hedgehog 项目启动,展示了 Windows XP 和 GTK-2 下的早期截图。
-
Fedora Core 2 下的中文
在 VMware 下测试 Fedora Core 2 的中文支持安装,基本按照之前的方法一次成功,仅需微调两个配置文件。
-
以社区开发的形式来做公司项目
受微软在 SourceForge 上发布项目的启发,尝试以开源社区的形式在 SourceForge 上运作公司的即时通讯项目。
-
Hibernation Problem on Computers with 1 GB of RAM
A fix for the Windows XP hibernation failure on laptops with 1 GB or more of RAM, referencing the relevant Microsoft Knowledge Base article and patch.
-
SCIM 0.9.3 在英文 Locale 下失灵
升级到 SCIM 0.9.3 后在 Fedora 英文 Locale 下无法唤出中文输入条,回退到 0.8.2 后恢复正常。
-
十八年了?!
感慨从第一次在 Apple ][ 上写 BASIC 的 Hello World 程序到现在已经过去了十八年。
-
构建短信网关接口平台
基于 J2EE 和 JMS 消息队列构建短信网关接口平台,实现与中国电信和中国移动短信网关的收发、日志记录和应用分发。
-
在 Fedora 的英文界面下使用中文
介绍如何在 Fedora 的英文 Locale(en_US.UTF-8)下安装中文字体和 SCIM 输入法,实现中文显示与输入。
-
Chinese Input and Display Under Fedora's English Locale
A step-by-step guide to installing Chinese fonts and the SCIM input method on Fedora Core 1 under the English locale (en_US.UTF-8), enabling Chinese display and input without switching to a Chinese locale.
-
Spam and Virus Filtering at Scale
Building spam and virus filtering for a large-scale email system using SpamBayes, Anomy Sanitizer, and ClamAV.
-
From Wan Hu to Yang Liwei
Celebrating China's first manned spaceflight — from the legend of Wan Hu's rocket chair in the Ming Dynasty to Yang Liwei orbiting the Earth.
-
SpamBayes: Per-Mailbox Training via Webmail
Adding per-mailbox SpamBayes databases and webmail training buttons to a production email server handling 87,000 messages a day.
-
Boys: 1977 vs. 2002
A side-by-side photo comparison of boys from 1977 and 2002 — twenty-five years apart, same spirit.
-
Brothers: 1977 vs. 2002
A side-by-side photo of my brother and me — 1977 and 2002, twenty-five years later.
-
The Green PDA That Never Dies
A humorous look at a green PDA that never runs out of battery — because it doesn't need one.
-
DNS-DIY: 12,000 Zones and Counting
DNS-DIY, a DNS management system hosting over 12,000 zones with capacity for 100,000 under current hardware.
-
Deploying SpamBayes on 30,000 Mailboxes
Testing SpamBayes on a production email server at OnlineNIC, filtering around 30,000 junk emails per day across 2,500 domains.
-
Two Weeks of Robocoding
Spent two weeks building my first Robocode battle bot — a Java programming game where autonomous tanks fight it out.
-
GPRS over Bluetooth on an iPAQ 3870
Installing Familiar Linux on an iPAQ 3870 and configuring GPRS dial-up over Bluetooth.
-
Fighting Spam with SpamBayes
Setting up SpamBayes as both an Outlook plug-in and a server-side spam filter with procmail, including per-user training.
-
Sharing Internet via Ad-Hoc Wireless
Sharing a single Internet connection between two computers via ad-hoc wireless — failed on Windows 2000 but succeeded on Linux with IP forwarding.
-
PHP Development in Eclipse
A look at the PHP plug-in for Eclipse, featuring code editing, script execution, an internal web server, step-through debugging, and MySQL integration.
-
Running KDE on Cygwin
Installing KDE on Cygwin under Windows — it looks good but runs slowly on a Pentium III with 512 MB of RAM.
-
Pi in a Domain Name
A domain name that squeezes as many digits of pi as the DNS system will allow.
-
My Blog with Chinese Domain Names
Setting up my blog with internationalized domain names (IDN), accessible via Chinese characters in Mozilla and Netscape.
-
Joining the OpenBlog Project
Joining my brother's open source weblog project OpenBlog, built with Perl and Mason — though I would rather write it in PHP.
-
Apple ][ on My iPAQ
Running an Apple ][ emulator on my iPAQ, playing classic games and writing BASIC and 6502 assembly.
-
gVim on Windows 2000
A screenshot of gVim running on Windows 2000 — my favorite text editor, on any platform.
-
Brothers in the Computer Room
Photos of my brother and me in our computer room