有屏幕的地方就有烂苹果

如果你还不知道Bad Apple是什么东西,请移步这里
播放的原理很简单,就是不停的打印清屏再打印清屏。任何一个略有编程基础的人都能做到。比较令人头大的是如何把原视频转化为一个易于解析而且又不占地方的文件。
其实,借助FFmpegImageMagick和一点点的编程小技巧就可以轻松完成。

第一步当然是要去下一个视频文件,我已经下好了,叫做BadApple.mkv

在Linux下使用MinGW静态交叉编译带有zlib的libcurl

libcurl是一个跨平台的、易用的、强大的网络库。在大部分Linux发行版中都有编译好的二进制包可供使用,Mac系统更是将其作为了一个核心部件。但是在Windows平台上却需要手工编译,更不必说一些有特殊洁癖的人(比如说我)还特别讨厌多出来几个DLL,非要静态链接不可。本文作为我两个晚上折腾经历的一个小小总结,讲解如何在Linux下使用MinGW编译给Windows使用的libcurl静态库。

记一次坑爹的乱码解决过程

某日,我在网上下载了一些音乐,然后打开,发现了乱码。Linux系统上出现乱码本不是什么好大惊小怪的事,但是,在经过N种方法来回折腾依然无法解决的情况下,我意识到,这大约是我见过的最奇葩的一种乱码了。先上图:
An Example of the Messy Code

网站从Octopress迁移至Hexo

经过我两个小时的折腾,总算是重新把网站弄起来了。Ruby实在是坑爹,各种gem装得目录结构乱七八糟的……(强迫性人格障碍的典型表现)而且速度还慢……
曾尝试用Python和Tornado模板自己写一个静态页面生成器,然后发现我想多了。我果然还是不适合写UI……
一通Google之后,最终决定使用Hexo。它使用node.js(也就是javascript)作为编程语言(这样说恰当么?反正就是这个意思啦),据说速度极快。最重要的是,AUR源里有Hexo打好的包,能用pacman管理就是好。
主题试了一圈下来还是默认的Light看着最舒心。以后千万不能再手贱自己写主题了!!
膜拜一下Hexo的作者tommy351。自己改了一下高亮配色和Widgets,把以前Octopress的Markdown文档做了一点点修改,这样就算上线了吧。

通用存储及分布式文件共享系统的设想

Update: 本计划已无限期暂停,在可预见的未来没有重启计划,如有需要资料的欢迎发邮件索取

众所周知,网盘这东西对大众来说不可或缺,国内的在线存储服务也欣欣向荣。但是,由于各种原因,我们仍感到这些不能完全满足我们的要求。
比如各种限制、各种暂停分享、还有各种必须付钱才能用的VIP服务等。各大公司想挣钱无可非议,毕竟网络存储绝对是烧钱的主,但作为一个搞技术的人,决不能整天写登陆界面,对吧?
动机在新浪微盘数据结构解析中说了,在那之后我又研究了其他的网盘,萌生了这么一个设想。
简要的说,这个系统可以大大方便文件的传播与获取,延长资源的存活时间。

Pascal中鲜为人知的那些技巧

做为一个搞信息学竞赛这么长时间的人,再加上估计很快就要转C++了,我觉得我有必要留下一些关于Pascal语言的资料,于是就有了这篇文章。我只负责解释用法,对基础概念不了解的请自行Google。所有这篇文章里的东西应该都能在Free Pascal自带的文档里找到,我写出来是为了众多不喜欢看英文的同学们,如果你愿意自己去看一下,一定会收益匪浅。

不同进制的表示

平时我们写的常量都是十进制数,但我们有时需要写一个比如十六进制数怎么办呢?我们当然可以手动计算一下,但还有更优雅的方法。

writeln($Ff,#32,&10,#32,%100);

你觉得它会输出什么呢?它输出255 8 4!所以以$开头的是16进制数,&开头的是8进制数,%开头的是二进制数。顺带一提的是,以#开头的数会转变成对应ASCII码的字符,其实它可以和前面的三个符号共同使用,即#$20#%100000都代表了空格。

新浪微盘数据结构解析

注意!这个是微盘而不是威盘
研究这个问题的起因是有一次我需要从微盘上批量下载一堆文件。做为一个会写程序的人,我怎么能亲自做如此ugly的工作呢?这种事情当然要交给电脑做了!为了做到自动获取文件连接,于是就不得不研究这个问题了。