在Linux下使用MinGW静态交叉编译带有zlib的libcurl
libcurl是一个跨平台的、易用的、强大的网络库。在大部分Linux发行版中都有编译好的二进制包可供使用,Mac系统更是将其作为了一个核心部件。但是在Windows平台上却需要手工编译,更不必说一些有特殊洁癖的人(比如说我)还特别讨厌多出来几个DLL,非要静态链接不可。本文作为我两个晚上折腾经历的一个小小总结,讲解如何在Linux下使用MinGW编译给Windows使用的libcurl静态库。
libcurl是一个跨平台的、易用的、强大的网络库。在大部分Linux发行版中都有编译好的二进制包可供使用,Mac系统更是将其作为了一个核心部件。但是在Windows平台上却需要手工编译,更不必说一些有特殊洁癖的人(比如说我)还特别讨厌多出来几个DLL,非要静态链接不可。本文作为我两个晚上折腾经历的一个小小总结,讲解如何在Linux下使用MinGW编译给Windows使用的libcurl静态库。
某日,我在网上下载了一些音乐,然后打开,发现了乱码。Linux系统上出现乱码本不是什么好大惊小怪的事,但是,在经过N种方法来回折腾依然无法解决的情况下,我意识到,这大约是我见过的最奇葩的一种乱码了。先上图:
经过我两个小时的折腾,总算是重新把网站弄起来了。Ruby实在是坑爹,各种gem装得目录结构乱七八糟的……(强迫性人格障碍的典型表现)而且速度还慢……
曾尝试用Python和Tornado模板自己写一个静态页面生成器,然后发现我想多了。我果然还是不适合写UI……
一通Google之后,最终决定使用Hexo。它使用node.js(也就是javascript)作为编程语言(这样说恰当么?反正就是这个意思啦),据说速度极快。最重要的是,AUR源里有Hexo打好的包,能用pacman管理就是好。
主题试了一圈下来还是默认的Light看着最舒心。以后千万不能再手贱自己写主题了!!
膜拜一下Hexo的作者tommy351。自己改了一下高亮配色和Widgets,把以前Octopress的Markdown文档做了一点点修改,这样就算上线了吧。
Update: 本计划已无限期暂停,在可预见的未来没有重启计划,如有需要资料的欢迎发邮件索取
众所周知,网盘这东西对大众来说不可或缺,国内的在线存储服务也欣欣向荣。但是,由于各种原因,我们仍感到这些不能完全满足我们的要求。
比如各种限制、各种暂停分享、还有各种必须付钱才能用的VIP服务等。各大公司想挣钱无可非议,毕竟网络存储绝对是烧钱的主,但作为一个搞技术的人,决不能整天写登陆界面,对吧?
动机在新浪微盘数据结构解析中说了,在那之后我又研究了其他的网盘,萌生了这么一个设想。
简要的说,这个系统可以大大方便文件的传播与获取,延长资源的存活时间。
做为一个搞信息学竞赛这么长时间的人,再加上估计很快就要转C++了,我觉得我有必要留下一些关于Pascal语言的资料,于是就有了这篇文章。我只负责解释用法,对基础概念不了解的请自行Google。所有这篇文章里的东西应该都能在Free Pascal自带的文档里找到,我写出来是为了众多不喜欢看英文的同学们,如果你愿意自己去看一下,一定会收益匪浅。
平时我们写的常量都是十进制数,但我们有时需要写一个比如十六进制数怎么办呢?我们当然可以手动计算一下,但还有更优雅的方法。
writeln($Ff,#32,&10,#32,%100);
你觉得它会输出什么呢?它输出255 8 4
!所以以$
开头的是16进制数,&
开头的是8进制数,%
开头的是二进制数。顺带一提的是,以#
开头的数会转变成对应ASCII码的字符,其实它可以和前面的三个符号共同使用,即#$20
和#%100000
都代表了空格。
各种加密方法大体可以分成两类,一类是对称加密,另一类是非对称加密。
凯撒密码是对称加密中的一种,他的加密方法是把A变成B,把B变成C,于是解密的时候只要把字母替换回来就行了。也就是说,任何知道加密方法的人就可以解密。
RSA是一种非对称加密算法,他的特点是任何人都可以加密,但只有我可以解密。做个比喻,人人都可以把锁头扣上,但只有拥有钥匙的人可以开锁。这个分发出去的用于加密的东西叫做公钥,也被称作证书。而留在自己身边的“钥匙”就是私钥,是绝对不能被第二个人拿到的。
于是乎,你可以把公钥发给别人,别人把数据用你的公钥加密后传给你,你用私钥解密后阅读。在这个过程中,任何人截取到数据都是无效的,因为它没有你的私钥。
RSA还有一个特点,就是可以用私钥加密,用公钥解密。你会问,公钥人人都能拿到,相当于人人都能解密,那这样加密有什么意义呢?意义在于,它可以作为身份验证。用私钥加密的过程叫签名,而验证签名就是用对应的公钥解密。因为为只有用对应的私钥签名的文件才能用公钥解密,既然它可以用公钥解密,就一定是由对应私钥签署的,而私钥只有你有,于是这份文件就一定是你发布的。网络上的HTTPS就是依靠着个。一般来说,用私钥加密的都是MD5、SHA1 之类的,加密原文太耗系统资源。
对付这种非对称的加密方式,有一种叫做“中间人攻击”的攻击方法,它会使双方之间的通信完全暴露。我就偷懒不写了,大家自己找资料。