Posts

2013

这个世界会好吗

就在今天晚上,在我尝试 curl http://moevpn.com/ 的时候,提示 curl: (56) Recv failure: Connection reset by peer 我就知道,不好的事情发生了

#IPv6#VPN#GFW

吐槽一下Mac

陪伴了我好几年的小黑终于要退役了,虽然对小黑一直有着极大的好感,但是实在是对现在的新款小黑吐槽不能,于是被迫果断投奔了Mac。 关于Mac的优点已经被人说得太多太多,而我又不是果粉,所以再讨论Mac的各种优点已经没什么意思,那就让我来吐槽一下吧! 命令行 首先,常用的一些命令行工具都没有,试想一下,一台连wget都没有的电脑怎么用啊摔! 此外,BSD风格的命令行真的比GNU风格的难用多了。最常用的比如cp命令,有时候敲完cp A B才想起来复制目录需要加-r参数,这时必须得加在cp后面,也就是cp -r A B,而不能像在Linux上一样cp A B -r。 当然,也可以使用homebrew install coreutils来安装GNU风格的命令行工具,但是谁能告诉我怎样才能让ls命令显示中文? 软件包管理器 说到homebrew,算是Mac上比较好用的软件管理器了,但是仍然离Linux的软件包管理器还差得很远。再也不能使用教育网的各种开源镜像,也没有编译好的二进制包可以直接使用,每次都得下载源代码慢慢编译(好在现在的电脑编译速度还算快),而且每次系统更新完,之前装的软件,包括安装的Python库什么的统统都没有了,真是欲哭无泪啊。 尽管很多软件都可以将bundle直接拖入Applications完成安装,卸载也直接删除bundle即可,但是仍然有大量的软件需要点下一步、下一步来完成安装,卸载的时候还得找软件自带的卸载工具才能完成卸载,让人有一种强烈的Windows即视感啊! 想当初用ArchLinux,不管什么软件,安装卸载基本上都是pacman/yaourt一行命令搞定,简单直接。。。 bug一点儿不少 Linux作为桌面系统已经被人吐槽得够多了,于是在使用忍受了好几年桌面Linux之后满心欢喜地用上了Mac。 喵的,是谁说Mac桌面很稳定的?!各种奇奇怪怪的问题我遇到的一点儿不比在Linux上遇到的少。比如在Finder里面拖动一个文件到另外一个目录里面,结果在桌面上留下残影擦都擦不掉。比如每次休眠结束之后网络都会出问题——网卡死活识别不出来(最近更新了10.9好像修复了这个问题,症状进化为无法获取IPv6地址)。 作为Linux用户,遇到系统问题的本能反应是自己动手解决,但是面对Mac这种封闭的OS真的是束手无策,一点儿办法都没有,最后只好祭出用Windows时的修电脑大法——重启一下吧! 关于Mac的吐槽暂时就想到这么多,欢迎各位继续补充~

#Mac

「贵邮」for Android 0.2

全新的「贵邮」for Android发布了! 这一次,你有更加充分的理由使用「贵邮」。 全新设计,清爽体验 全新设计的界面不仅更加清爽养眼,也能让您快速找到所需要的信息。 图文混排、ANSI控制符过滤让您的论坛浏览体验更上一层楼。 最常访问,「贵邮」更懂你 根据您的浏览历史,「贵邮」自动分析出您最常浏览的版面。 毋须手动整理收藏夹,贵邮帮您搞定一切。 站内链接,一键直达 还在用浏览器打开论坛链接?你弱爆了! 拥有「贵邮」,一键直达。 消息推送 亲,有人在帖子里面@了你! 亲,有人回复了你的帖子! 亲,你借的书快到期了! 「贵邮」在第一时间把全世界的消息都告诉你。 图书馆馆藏查询 在偌大的图书馆里找本书可不容易, 当别人还在排队用电脑查询时,你已经手持「贵邮」将要找的书迅速定位。 一键续借 借的书到期了怎么办? 不用担心,「贵邮」帮你搞定续借。 GPA计算 尽管学霸们总是苦于自己的GPA太高而算不出来, 但是自从有了「贵邮」,计算GPA不再难,so easy! 现在开启「贵邮」生活 从Google Play …

#贵邮#Android#北邮

「贵邮」for Android released

「贵邮」for Android终于要来了。 我做梦也没想到会去开发Android应用。当初只是跟 @sutar 开玩笑说要不我来开发「贵邮」的Android版本吧,一不小心,玩笑开大了。 于是乎,大半个月的时间就贡献给了这款App。由于从来没写过Java,更别说做App开发了,所有的东西都得从头开始学,遇到问题就查Google, StackOverflow和github。不得不感慨一下,StackOverflow真是个神奇的网站,我遇到的所有问题在上面几乎都能找到非常完美的答案。 目前已经实现的功能 北邮人论坛 本科生成绩查询&考表查询 图书馆书刊检索&借阅信息查询 校内电话号码查询 北邮邮局邮件查询 北邮人信息布告栏 「贵邮」for Android 官方网站奉上: http://guiyou.ichon.me

#贵邮#Android#北邮

我在北邮的第四年

好久没写博客了,按照惯例,每年应该写点东西记录这一年的,今年的却一拖再拖,直到现在。 其实半年前我就在想,今年的这篇记录,标题应该叫做「我在北邮的第四年」还是「我在北邮的最后一年」,嗯,如你所见,标题是「我在北邮的第四年」,这就意味着还有第五年、第六年...对这里已经有了十分深厚的感情,再待几年又何妨? 考研 一年前的这个时候还在纠结要不要考研,最终还是决定去考研,而且考上了,于是我终于成了CS专业的了。这样的选择是好是坏?我也不知道,虽然有的时候会假设,假如我没有考研,现在又会是怎样的一种状态呢?我会找到什么样的工作呢?又会在哪里生活呢?我一直很羡慕本科毕业直接找工作的同学,你们比我更有勇气,今年的就业形势如此严峻,绝大部分的同学还是找到了工作,你们都很厉害,嗯嗯。 毕业 「毕业」其实是被当作一项「活动」来完成的。毕业季的活动应该始于毕业晚会吧,临别之际最后一次的狂欢,没有以后了。从毕业晚会过后,每天就过着「胡吃海喝」的日子,毕业就是以这样的一种形式被表达着。大家每天吃吃喝喝,开开心心,一点儿也没有临别的伤感。直到离校前的最后一天,压抑已久的各种情绪才被真正释放了出来,一起喝酒,一起唱歌,一起听喝多了的A哥滔滔不绝,然后痛哭流涕。 第二天在北京西站上火车时,眼眶总是不自觉地湿润,我会记得你们这些人的(名字我就不一一列举免得会漏掉)。我们还会再见面的,我们肯定还会再见面的。但是,就算是再见面,也不再是当初的我们了,散了就是散了。 其他 驾照还没考完就要离校了,开学还得继续去考,略蛋疼; 没有能够参加最后一次的毕业旅行,非常遗憾; 又去了一次黄山,每次去黄山都能有不一样的体验; 用了大半个暑假开发某个APP,填了自己挖的大坑; 放了胖哥的鸽子没去实习,非常抱歉; 要当北邮人论坛Linux版版主了,非常激动也很忐忑; 即将去上研究僧并且还要当班长...同上。

#北邮#毕业#考研

考研后记

惊闻本月19号图书馆自习室的座位要让给下一届考研的同学们了,于是赶紧找了个纸箱,将图书馆三层的考研书都搬了回来。看着满满一纸箱的书,心想,考研生活总算是有个了结了吧。 时间回到2013年2月25日,记得那天在论坛得知当天下午可能会出初试成绩,于是在刷了一个下午的成绩查询系统却一直没有结果之后,索性用Python写了个脚本,构建form数据每隔半分钟自动查询一次,然后...然后发现requests包真的挺好用的-_-///。 研招办的老师终于还是在下班前发布了成绩,查到成绩之后反而觉得淡定了许多,除了数学,其他几门课感觉考得都还不错。数学没及格是在情理之中,而专业课120+却是出乎我的意料之外。 初试成绩出来之后的第二天就回北京了,到学校之后,去找了一下老师,老师答曰:安心准备复试。 然后就是「漫长」的等待复试,笔试的题目六选四(在编译原理、计算机体系结构、数据库、软件工程、通信原理、人工智能六门课中选四门)实在是不知道如何复习预习,于是索性放弃,每天刷刷OJ准备机试。 机试被安排在了早上七点半,结果去了考试地点才发现其实真正的开考时间是早上八点钟(被骗了= =)。然而机试比想象中要简单许多,四道题目没有一道涉及到非常复杂的算法,几乎都是堆砌代码就可以完成的题目。用了20分钟做完前两道题之后,不知道怎么想的,跳过了相对比较容易的第三题直接开始做第四题,结果坑爹的第四题题目设置和测试用例有所出入,导致我一直WA,迟迟无法AC,耽误了很长时间,回头再做第三题时时间已经所剩无几了。 带着没有全部AC的遗憾去参加了晚上的笔试,一个小时的时间,拿着2B铅笔在答题卡上胡乱涂了一通,也不知道最后究竟考了几分。 第二天的面试,英语口语巨烂的我被狂虐。。。还好老师没有为难我,于是我就很愉快的谈起了IPv6 VPN,巴拉巴拉说了好久。。。 面试结束之后,当天晚上就接到老师的电话说可以录取了,然后,就没有然后了?!

#考研#北邮

更简单的Opera Mini Server Mirror

上次用golang写了一个Opera Mini代理服务器,写完之后总觉得还是麻烦了点,想来想去,突然恍然大悟,我要的不就是反!向!代!理!嘛...用nginx不就可以了么,哪需要那么麻烦... HTTP代理部分 在Nginx配置文件中添加 server { listen 8080; server_name opera.example.com; location / { proxy_pass http://server4.operamini.com/; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 重启Nginx即可 Socket代理部分 设置iptables就好 iptables -t …

#opera#nginx

Opera Mini Server Mirror with Golang

再一次,由于不想在服务器上安装php,决定自己用Go语言写一个Opera Mini的代理服务器,也算是练手吧~项目地址在https://github.com/chon219/opm-server-golang 编译 & 运行 go build server.go ./server & 设置iptables作为socket代理 iptables -t nat -A PREROUTING -p tcp -m tcp --dport 9003 -j DNAT --to-destination 141.0.11.253:1080 iptables -t nat -A …

#Golang#opera

使用uWSGI+Nginx运行Flask-Twip

几个月前给服务器重新安装了系统,顺便从系统中移除了php,算是彻底告别php了~而之前使用php最多的程序莫过于Twip了,现在移除了php,就只好用Flask-Twip来代替Twip。 有过之前用uWSGI运行Flask应用的经验(本博客就是使用uWSGI运行的Flask程序),配置Flask-Twip也就不算那么困难了,在这里我就简单记录一下搭建的过程吧。 安装Python2.7 服务器上自带的Python版本为2.6,但是Flask-Twip要求Python2.7,所以需要在服务器上安装Python2.7,如果已经有可用的Python2.7则可以无视此步。 为了便于以后的管理,我选择pythonbrew来管理Python版本。 安装pythonbrew curl -kL http://xrl.us/pythonbrewinstall | bash 使用pythonbrew安装Python2.7.3 pythonbrew install 2.7.3 切换到Python2.7.3 pythonbrew use 2.7.3 安装uWSGI 使用pip: pip install uwsgi 安装Flask-Twip Flask-Twip是作为Flask的一个插件来安装的,安装依然只需要使用pip: pip install Flask-Twip 配置Flask-Twip …

#Twitter#twip#Flask#uWsgi

Golang时间格式化

最近用Go语言写程序用到了time包,需要将时间以2012-01-27 22:02:02的格式输出,但是Time对象(准确来说不是对象,而是struct)的Format方法并没有提供默认满足要求的layout string,需要自己来填写。 以前写Python时,对时间的格式化是采用"%Y-%m-%d %H:%M:%S"这样的layout string: datetime.now().strftime("%Y-%m-%d %H:%M:%S") 而Go语言的方式则略显奇葩,采用的是"2006-01-02 15:04:05"这样的layout string: time.Now().Format("2006-01-02 15:04:05") 从源码(http://golang.org/src/pkg/time/format.go [line 59])可以看出,2006代表年份,01代表月份...于是我一直很好奇,2006年1月2日这一天的15点04分05秒到底发生了什么?

#Golang