.svn目录

| Development

今天同事跑来问我为什么没办法checkout一个子目录,发现svn提示说某个目录已有既有的、未有版本的副本(这是一个新的checkout)。

删除重新checkout,问题依旧。

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

嚷一嗓子

| Life

intron 因任满卸任,现水木社区的 FreeBSD 版需要一名版主。哪位去申请一下?

参与评论

一次DNS重大运营事故教训

| Postmortem

长久不做 SA,所以有些事情变得没有以前那么敏感。昨天终于还是出事了,不过幸亏不是商业系统,如果是的话,我觉得绝对够得上是重大事故。记一笔,留个教训。

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

针对桌面系统的一个ULE调度器tunable

| Kernel

在 /etc/sysctl.conf 中加入:

kern.sched.preempt_thresh=224

然后用 /etc/rc.d/sysctl start 或重启系统令其生效。

系统默认的值是 80,表示只有新优先级 < 80 时才允许抢占;224 表示非空闲线程均可以进行抢占。这样做的结果是系统会产生更多的切换,从而改善响应时间(牺牲吞吐量)。对桌面系统来说,这种设置是很有用的。

参与评论

检查是否有多余#include的小工具

| Development

基于 LLVM 的一个 小检查器。如果代码经手人很多,或者经过了大规模的改写,这个工具就很有用了。使用说明 在此

参与评论

作弊条:用git做中心式代码库

| Cheatsheets | #git

在开始创建 git 代码库的时候,应使用 --bare 参数。举例:

git init --bare [repo_path]

或者,如果多人开发的话:

git init --bare --shared [repo_path]

将现有代码库转换为中心式代码库:

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

记一笔,关于 syslogd

| Development

syslogd 的 -8 参数可以让汉字通过。以下摘自 manual page:

1
2
3
4
5
6
     -8      Tells syslogd not to interfere with 8-bit data.  Normally syslogd
             will replace C1 control characters (ISO 8859 and Unicode
             characters) with their "M-x" equivalent.  Note, this option does
             not change the way syslogd alters control characters (see
             iscntrl(3)).  They will always be replaced with their "^x" equiv‐
             alent.

不过这事有点坑人,为啥默认不 -8 呢?出于安全方面的原因吗?差点就开始改代码了……

参与评论

一个奇怪的移位计算结果

| Development

今天 强迫症 朱小瘦同学提到一个非常有意思的问题,一个32bit的无符号整数算术右移32个bit应该得多少?

我们知道算术右移一个bit相当于除2,所以一个32bit无符号整数除以 2322^{32},理论上,应该得0。

然而事实不是这样。测试显示在 x86 系统上,一个32bit无符号整数算术右移32个bit之后得到的是原数。例如下面这个测试程序:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#include <stdio.h>

int
main(void /* int argc, char **argv */)
{
	unsigned int a = 0x5a5a5a5a;

	a >>= 32;

	printf("%x\n", a);

	return 0;
}

不启用任何优化的话,编译出来的程序得到的结果是:

5a5a5a5a

更进一步,我们将上面的测试改写为:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#include <stdio.h>

int
main(void /* int argc, char **argv */)
{
	unsigned int a = 0x5a5a5a5a;
	int i;

	for (i=0; i<33; i++)
		printf("%x\n", a >> i);

	return 0;
}
阅读全文…( 本文约 881 字,阅读大致需要 2 分钟 )

世界IPv6日

| Networking | #IPv6

2011年6月8日是 Internet Society 倡导的世界 IPv6 日,许多著名的互联网公司都将在这一天测试全面开放 IPv6 访问;中国地区的 IPv6 日网站可以在 这里 找到。

WORLD IPV6 DAY is 8 June 2011 - The Future is Forever

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

总算找到时间把邮件系统迁移给做了

| Life

之前用的邮件系统是基于 postfix、Cyrus IMAPd、amavisd-new等软件在2006年搭建的,跑了5年多,作为不折腾会死星人,对这套系统一直有相当多的不满意,举例来说:

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