Bojie Li (李博杰)
2014-02-09
智能手机、路由器等很多嵌入式设备都有“恢复出厂设置”的功能。按照PC机上大家习惯的“备份”做法,似乎需要把出厂时的整个系统备份在只读的 ROM 里。如果是这样,每次恢复出厂设置,ROM 里的内容都要拷贝到 Flash 存储里,浪费大量存储空间,而且恢复出厂设置需要比较长的时间。但事实上,恢复出厂设置只是重启一下就完成了,而且刚恢复的系统里 Flash 存储基本是空的。
(感谢 BW 的评论,Android 系统的恢复出厂设置不是使用差分技术,而是简单清空数据分区,对 /system 分区的修改没有被还原,我弄错了)
2013-11-22
有时要远程访问路由器 Web 控制面板等只能从服务器所在网络访问的网站。在服务器上用 links 显然是不靠谱的。我们可以在本机与服务器间用 ssh 打通隧道,让本地浏览器通过隧道访问受限的网站。
首先用 ssh -D 在本机与服务器间建立 socks5 隧道:(60000 是一个任意的大于 1024、小于 65536 的整数)
1 | ssh -C2qTnN -D 60000 user@remote-host |
然后就是让 Chrome 通过 socks5 隧道访问了。Chrome 插件 ProxySwitchy 由于 Chrome 不再支持 NPAPI 已经不 work,而 ProxySwitchySharp 有时也不 work。网上有些文章说 chrome –proxy-server 就行,事实上在你开着另外一个 Chrome 实例时是不 work 的,因为 Chrome 会自动寻找已经打开的实例。
比较靠谱的办法是,开 Incognito 匿名模式,并使用不存在的 Chrome 用户数据目录,断绝其寻找已打开实例的可能。用完之后,最好把新建的用户数据目录(下例中是 C:\Temp\Chrome)删除。注意,下面的 socks5 不可替换为 http,这是不同的协议。
1 | PS C:\Program Files (x86)\Google\Chrome\Application> .\chrome.exe --proxy-server="socks5://127.0.0.1:60000" -incognito -user-data-dir=C:\Temp\Chrome |
2013-10-11
乌龙指离我们很远吗?非也。前一段时间 LUG 服务器出故障,就错误地发出了 7 万条短信,把学校短信平台的余额用完了,直到网络中心老师给我打电话才发现。
祸起服务监控脚本。
为防止短信轰炸,发出的短信本来都要经过我这里的“风控”,
2013-10-07
用过 Windows Vista/7/8 的同学可能有这样的经历:用 32 位程序(比如 cygwin)修改 C 盘下的某个文件后,再从 Windows 资源管理器里看,竟然是修改前的版本!难道文件系统还对不同的程序有不同的视图?您说对了,自从 Vista 引入了 UAC 和 VirtualStore,不要相信 32 位程序在 C 盘里做的改动。
Windows Vista 引入更强的安全机制后,一些重要的系统目录就不是谁都能修改了。这些目录包括 C 盘根目录,Program Files,Program Files (x86),Windows,注册表的 HKEY_LOCAL_MACHINE 等。但一些老的应用程序仍然假定这些目录是可写的,如果系统 API 简单返回访问拒绝,则这些程序都不能运行了。
因此,Vista 提供了 VirtualStore,对非管理员权限运行的 32 位程序,只要对这些目录有写操作,就会把被修改或添加的文件复制一份到这个用户的 VirtualStore。以这个用户身份运行的 32 位程序看到的这个路径就是 VirtualStore 里的对应文件,原始路径上的文件再怎么修改,它已经全然不知了。
2013-10-03
LUG VPN 的一些用户希望仅对某些特定 IP 使用 VPN,而 OpenVPN 默认是全部走 VPN。也许是我的搜索能力太差,竟然没有 Google 到靠谱的答案。没有耐心的读者可直接看我的解决方案:
1 | $ echo "script-security 2" >>/etc/openvpn/client.conf |
2013-10-01
前些天同学聚餐,有人提了个问题:很多人同时看电视不卡,同时看网上的视频直播为什么就卡呢?电视是广播(跟收音机本质一样),而互联网视频走的是点对点的 IP 网络,多一个人看视频,服务器就要多发一份数据。
互联网视频究竟是怎样送到千家万户的呢?我从通信领域顶级学术会议 SIGCOMM 2013 里窃取了一些科普知识与大家分享。
2013-09-29
这段时间很多公司的面试都在拉开帷幕。前几天我的一位好朋友应聘一家被誉为 “工程师天堂” 的互联网公司,第一轮面试就悲剧了。原因可能是在一道关于树的算法题上耗了一个小时。我觉得凭一道算法题断定一个人的能力过于僵化了。当然,这样的公司可能应聘的人太多,没时间仔细考察每个应聘者。
今晚同学带我去清华玩,顺路逛了清华科技园,也算我进过这家令无数程序猿向往的公司大门了。回来的路上,我就在思考纯算法题面试可能的弊端。在 coolshell 上看到了跟我观点类似的文章《为什么我反对纯算法面试题》《我是怎么招聘程序员的》《再谈“我是怎么招聘程序员的”》,于是鼓足勇气把自己 simple & naive 的观点拿出来与诸君分享。欢迎各种形式的拍砖。
2013-09-15
刚补考完数据库课程。把读书报告贴出来分享一下(顺便求过~)。
《七周七数据库》(Seven Databases in Seven Weeks)出版于2012年,介绍了时下最热门的7种开源数据库,包括关系数据库(PostgreSQL)、key-value数据库(Riak、Redis)、列式数据库(HBase)、面向文档的数据库(MongoDB、CouchDB)、图数据库(Neo4j)。除了PostgreSQL以外,其他6种数据库可以统称为NoSQL,即它们不使用关系模型,也不把SQL作为查询语言。
这本书模仿了《七周七语言》的体例,每种数据库一章,划分为三节,名为第一天、第二天、第三天。不同于数据库的官方文档,本书不是简单介绍每种技术,而是探讨了每种技术的核心基本概念,使读者了解每种数据库的优缺点,在何种需求下应该使用何种数据库。
2013-09-06
注:不了解 mirrors 的朋友,请先看《科大开源软件镜像是怎样炼成的》。
祸起 iSCSI
故事要从2013年6月26日讲起。mirrors 有一个网线直连的磁盘阵列,使用 iscsi 协议,上面有一个XFS文件系统。6月26日下午14时许,stephen 在邮件列表里报告 mirrors 挂了。根据 syslog,6月26日13:58,iscsi 连接超时,导致 sdg 访问失败,大量I/O操作被卡住,导致 nginx 被卡住,mirrors HTTP 无法连接。几分钟后,I/O超时,nginx 恢复正常,但磁盘阵列上的源无法使用了。
2013-09-05
今天光宇说要去年的工作总结,于是就有了这篇文章。LUG 的主要工作分为活动和网络服务两方面。
活动
我们回顾一下这一年来发生的事情(http://lug.ustc.edu.cn/wiki/lug/events)
招新
跟其他社团一起,在开学的第二周,在东活和西活摆摊。偷来的经验是:可以做一些展板和易拉宝,增加出镜率。
招新虽然站着挺辛苦,但跟来自各种院系的同学们聊天挺好玩的,发传单也可以品尝一下经常被拒的滋味。八卦一下,LUG 现任会长的妹子就是那时找到的~