3G 为什么比 Wi-Fi 费电

前天张擎宇同学告诉我,在有 Wi-Fi 的时候最好使用 Wi-Fi 并关掉 3G 网络,可以省很多电。3G 真的比 Wi-Fi 费电吗?我查阅了文献,发现果真如此。当要传输的数据较少时,电源消耗的差距可以大到 10 倍之多。

蓝线:3G 功耗;绿线:wifi 功耗(来源:TailEnder)
蓝线:3G 功耗;绿线:wifi 功耗;紫线:考虑了 wifi 扫描和建立连接之后的功耗(来源:TailEnder)

原因主要有两方面:

  1. 3G 网络完成数据传输后要保持一段时间的高功率状态;
  2. 3G 网络的发射功率远大于 Wi-Fi 网络。

继续阅读“3G 为什么比 Wi-Fi 费电”

我为什么选择计算机专业

凡是 LUG 的活跃会员,都早晚会被吸引进码农的圈子。

这个谣言的出处及真假暂不考证。到底是 LUG 的氛围把小伙伴们引上了码农这条不归路,还是打定了主意走码农路的才会长期活跃在 LUG,我说不清。

为什么选择计算机专业,事实上是两个命题:

  1. 为什么选择计算机作为未来的职业?
  2. 为什么本科期间选择计算机专业?

我试图用自己的经历来解读这两个命题。少年时代,我曾把科学家作为自己的梦想,高三那会儿想的是做理论计算机研究。在大一升大二的关头,我曾在数学和计算机之间徘徊抉择,还曾考虑过学物理。因为想不清楚,大一下学期的时候我并没有申请转专业。在大二上学期开学一周后,我感觉不能继续混沌下去了,于是提交了转专业申请,从第二周开始,踏上了码农的不归路。

继续阅读“我为什么选择计算机专业”

逃离活动室

逃离微软

2014 年 9 月 17 日上午,微软亚洲研究院 12 楼会议室。老板刚结束了一个月的国际会议回到北京,我在组会上忐忑地汇报一个月来并不令人满意的进展。这之前的几天我的心一直在狂跳,生怕老板看穿我不认真干活的本质。出人意料的是,老板在汇报结束后并没有骂我,而是说我的模型比起一个月前有了很大进步。不过,我们都清楚地认识到我们的工作不可能赶上 9 月 26 日截止的 NSDI 会议了。

9月17日凌晨的微软大厦
9 月 17 日凌晨的微软大厦
8月25日凌晨的微软大厦
8 月 25 日凌晨的微软大厦

继续阅读“逃离活动室”

被忽略的珍宝:IPX 协议

DHCP 的麻烦事

事情要从科大更新网络接入管理设备说起。

Capture

公共上网区域之所以要统一分配 IP 地址,是因为早先各楼各自为政、零散分配的 IP 地址段不够用了。几年前上网的主力是台式机和笔记本,也不可能时时刻刻开机;但现在人人都有智能终端,有可能还不止一台,到哪里就会连上哪里的 Wi-Fi。很多地方早先绰绰有余的 /24 地址段(256 个 IP)在高峰时段出现了分配不到 IP 的情况。而科大的 IP 地址池大小是有限的,集中分配就解决了地址不够的问题。

这本来是件皆大欢喜的事情,但新设备带来了新的问题。采用网络启动的图书馆查询机隔一段时间就卡死了,原因是母系统启动阶段与子系统启动阶段所分配到的 IP 地址不同,而这种不同又是由于 BRAS 网络接入管理设备的 bug。

Capture

继续阅读“被忽略的珍宝:IPX 协议”

释放被文件系统吃掉的 5% 磁盘空间

使用 ext 文件系统存储数据的同学也许发现,200 G 的分区只能用 190 G,2000 GB 的分区只能用 1900 GB。这 5% 磁盘空间到哪里去了?有的同学认为这是 1000 进制与 1024 进制的区别,但事实并非如此。

$ df /mnt/sdb/
Filesystem      1K-blocks       Used Available Use% Mounted on
/dev/sdb       1922860936 1839798972         0 100% /mnt/sdb

上面这块标称 2 T 的磁盘可用空间为 0,看起来是满了。试着创建一个目录,发现没有空间了。

$ mkdir hello
mkdir: cannot create directory `hello': No space left on device

但 sudo mkdir hello 竟然能成功!这是怎么回事呢?答案在 ext 文件系统的 “预留空间” 里。

继续阅读“释放被文件系统吃掉的 5% 磁盘空间”

毕业——谨此祭奠我逝去的青春

看着离校手续单上 “结清网络费” 一栏的 “免办”,我思绪万千。我也许是少有的几个从未开通过 “网络通” 的学生之一。因为在少院机房不需要网络通,后来有了 LUG 服务器也不再需要网络通,现在我坐在寝室里,用无线信号放大器蹭东活的 ustcnet。其实我并不真的在乎每月 20 元的网络费,不开网络通,更多是一种符号、一种象征,它串联起支离破碎的记忆,祭奠着悄然逝去的青春。纯属个人 YY,勿喷。

10 年前:编程从谭浩强开始

刚上初中的时候,听说有计算机竞赛这个玩意。不知道是哪里来的消息,我家长以为计算机竞赛就是玩游戏,当时我也不知道百度一下,就信以为真了。开课一个月之后,孟同学跟我说,计算机竞赛里有很多像奥数题,你应该喜欢。我家长于是向班主任核实,才知道计算机竞赛是编程序,其实我当时对编程序的理解就是修电脑的叔叔在黑框框里输入命令。当我上大学之后教同学做网站的时候,她也把 Windows 命令提示符说成是黑框框,我不禁哑然失笑,其实我们都是从那里走来的。

第一次去上计算机竞赛课的时候,40 个机位的机房里挤了 60 多号人,我连座位都没有;老师在黑板上讲 printf,台下的同学昏昏欲睡。看到同学们人手一本绿皮的《C 程序设计》第二版,封面上印着“发行 700 万册”,我就感觉谭浩强是仅次于比尔盖茨的计算机大神了。听说大牛学长还买了《算法导论》,虽然有点贵,还是“请”了一本回来供着;之所以供着是因为上面没有可以直接抄的 C 代码,没有代码的书能叫计算机专业书吗?

继续阅读“毕业——谨此祭奠我逝去的青春”

解开人人网登录密码的 RSA 加密

世界上有两种密码:一种是防止你的小妹妹偷看你的文件;另一种是防止当局阅读你的文件。
—— Bruce Schneier《应用密码学》

传说中的 “明文密码” 有两种形式:明文传输和明文存储。明文传输的密码不一定明文存储,明文存储的密码也不一定明文传输。去年沸沸扬扬的明文密码事件,就是密码明文存储,网站的数据库一旦被窃取,用户的密码也就随之失窃了。密码明文传输也是非常危险的,网络中的很多位置都可能安装有嗅探装置,明文传输的密码对这些嗅探者来说也就无密可言了。本文关注的是密码传输中的安全问题。

什么是 “明文”?如果密码以 ASCII 字符的形式直接发出去,对任何人来说这都是明文;如果密码用 base64 编码一下(例如 123456 经过 base64 编码就是 MTIzNDU2),对多数人来说这也许是密文,而对任何专业程序员来说就是明文。有些人认为,把“加密”算法弄得复杂些,再用代码混淆工具弄乱,就没人能分析出来了。这样的做法叫做隐藏,而不是安全,属于防止小妹妹偷看文件的级别。真正的安全依赖于公开的、被广泛使用的密码学算法,靠密钥而不是算法本身来保证安全。

可惜,密码学算法和协议并不是随便拼凑起来就安全的。

继续阅读“解开人人网登录密码的 RSA 加密”

Heartbleed 实战:一个影响无数网站的缓冲区溢出漏洞

昨天 OpenSSL 爆出了名为 Heartbleed 的重大安全漏洞(CVE-2014-0160),通过 TLS 的 heartbeat 扩展,可以读取运行 HTTPS 服务的服务器上长达 64 KB 的内存,获取内存中可能存在的敏感信息。由于这个漏洞已经存在两年,Debian stable (wheezy) 和 Ubuntu 12.04 LTS、13.04、13.10 等流行的发行版都受影响,无数部署 TLS(HTTPS)的网站都暴露在此漏洞之下。

什么是 SSL heartbeat

https

继续阅读“Heartbleed 实战:一个影响无数网站的缓冲区溢出漏洞”

Andromeda: Google 的网络虚拟化技术

我是怀着复杂的心情写这篇文章的,因为我们赶到大年三十的 SIGCOMM paper 因为与这个3月5日发表的演讲在架构上过于类似(事实上我们的 paper 里包含很多此演讲中没有提到的技术细节),被评审者认为 “nothing new”,只好撤回。要是 Google 晚两个月再发表他们的网络虚拟化技术多好啊!

这场演讲由 Google 网络技术总监 Amin Vahdat 发表于 Open Networking Summit 2014(视频链接),从概念上介绍了代号为 Andromeda 的 Google 网络虚拟化解决方案。

继续阅读“Andromeda: Google 的网络虚拟化技术”

CSDN 2014 开源技术大会实录

昨天受科大 LUG 之邀参加了 CSDN 主办的 2014 开源技术大会(OSTC),结合会上记的笔记和不靠谱的记忆,与诸位分享,如有错漏之处请回复指出。本文部分图片来自 CSDN 官方的图文直播,演讲者的 slides 我显然没有,据说 CSDN 官方随后几天会发布。

IMG_20140330_081339

早上见到了又高又帅的 Thomas Yao 和 Deepin 的王勇(没拍下来)。

继续阅读“CSDN 2014 开源技术大会实录”