0%

Email 是一个伟大的发明。但多数人不知道,网络上的 email, 与其说是邮件,倒不如说是明信片:任何一个参与投递的节点,都可以阅览其中的内容。他们不仅可以搜集信息,还能伪造你的身份,做不法的勾当。想要安全地投递邮件,就要把明信片装进信封里,贴上自己的防伪标签。这样邮件的内容就无法被第三方获知,第三方也不能以你的身份发邮件了。

工具

为了完成加密这件事,咱们需要一整套软件的支持。在 windows 系统上,推荐的工具链是 gpg + thunderbird + enigmail.

  • GPG 是 "GNU Privacy Guard" 的缩写,用于数据和通讯的加密。我们使用 gpg4win 软件包实现 GPG 的功能。
  • Thunderbird 是一款老牌邮件客户端。它的插件 enigmail 帮助我们轻松实现邮件的加密、验证和解密过程。
Read more »

长久以来,人们认为发明需要敏锐的直觉和辛勤的付出,只有少数专家才能从事这项工作。像托马斯·爱迪生这样的天才,是可遇而不可求的。然而,自20世纪40年代始,苏联的根里奇·阿奇舒勒(Genrich Altshuller)等人通过研究大量专利文献,总结出一套称为 TRIZ 的系统性创新方法,显著提升了创新的效率。

依照阿奇舒勒的描述,根据新颖性的水平,创新可以分成 5 个级别。低级别的创新借鉴已有的物体,或者在多个物体中选取一个,而高级别的创新则致力于开发全新的系统。新颖性水平的差别,通常可以用发明家搜寻答案时试错的次数来描述。低级别的创新需要数十次或者上百次的试错;对高级别的创新而言,变量很多,其排列组合更是惊人,试错的次数可能是无限大的。人们迫切需要找到一些方法,降低试错的数目,使发明创新更加高效。

Read more »

There is a tricky problem about JAVA_HOME. When I try to install android studio on my Linux, the installer reports the following message:

1
tools.jar is not in android studio classpath. Please ensure JAVA_HOME points to JDK rather than JRE.

However, JDK has already been installed and I have added the following lines in /etc/profile to export the variables.

1
2
export $JAVA_HOME=/usr/java/jdk1.7.0_79/
export $PATH=$JAVA_HOME/bin:$PATH

Variable JAVA_HOME is pointing to the JDK, but why it is not working on android studio?

Read more »

丹尼尔·卡尼曼是著名的心理和经济学家,曾于2002年获诺贝尔经济学奖。他在著作 《思考,快与慢》 中出了这样一道题:

一辆出租车在夜晚肇事之后逃逸,一位目击证人辨认出肇事车辆是蓝色的。已知这座城市 85% 的出租车是绿色的,15% 是蓝色的。警察经过测试,认为目击者在当时可以正确辨认出这两种颜色的概率是 80%, 辨别错误的概率是 20%. 请问,肇事出租车是蓝色的概率是多少?

如果你已经学过了贝叶斯定理,可以花上 5 分钟的时间尝试解答这个问题。

Read more »

距离5月35日还有一周的时间,政府就开始提醒我们这一天的存在了。与 GitLab 齐名的免费代码仓库 Bitbucket 不幸躺枪,pull 和 push 的通道都被封锁,取而代之的是这样一条消息:

1
fatal: unable to access xxx: Failed connect to bitbucket.org:443; No error

然而一个程序员绝不能以网络不畅为由停止手中的工作,只要为 git 设置 HTTP/HTTPS 代理,就可以化解上面的问题。

Read more »

近些年,网盘和 P2P 的发展让 FTP 这个古董级的文件传输与共享协议逐渐淡出的人们的视野。但是,某些地区无法使用 Dropbox 服务,能用的网盘又不够安全,使用 P2P 也可能遭遇收费与恶意应用的风险。这时,FTP 这个老古董的价值就得以体现。今天,我们来谈一谈如何在 Linux 上部署 FTP 服务器,以及如何使用 FTP 客户端.

Read more »

在以前的文章中,我们讲到了可以利用 SSH 的端口转发特性实现网络代理的功能。但是由于 SSH 通讯特征明显,很容易被防火墙截获和阻断,因此我们需要借助专用的代理服务工具实现稳定的网络连接。shadowsocks 就是在这一应用背景下孕育而生。有服务器(VPS)的童鞋们,可以按照本文的步骤搭建自己专属的 shadowsocks 服务。

Read more »

make是一种自动构建目标文件的工具,最早应用于 C 语言的编译过程,现在也用于 node.js 等工程中。其语法独特而复杂,上手有一定的难度。这篇文章中我会以一个 C++ 工程为例,展示如何编写一个通用的 Makefile 文件。

Makefile 的基本语法是

1
2
TARGETS: DEPENDENCIES
OPERATIONS

每个 Makefile 文件都要指定一个终极目标。make工具会查看这个终极目标的依赖关系,将它分解成多个子目标,然后再自底向上地执行子目标的操作,在完成子目标的基础上实现终极目标。

Read more »

在人工智能中,我们通过效用(utilities)描述智能体在特定状态下采取某种行为的后果。例如,两个智能体A和B对弈,如果经过一系列步骤,A赢了,可以设其行为的效用为1,如果A输了,就设其效用为-1。类似地,我们也可以用效用描述人的感受。例如,一个人喜欢吃冰淇淋,如果通过他的行为,没有得到冰淇淋,就设这个行为的效用是0,如果得到了一个冰淇淋球,就设效用是1,如果得到两个球就设效用是2。一般情况下,我们认为人类是“理性的”,即始终选取效用最大的行为,但事实并非如此。我们来看一个彩票的例子。

Read more »

中文乱码问题

Windows 下的 TeX 开发软件 MiKTeX 并不提供原生的中文支持,所以不能直接使用 MiKTex 编写含有汉字的文档。CTeX 通过向 MikTex 中添加中文格式和字体解决了汉字编排问题。

但有些时候,即使使用 CTeX 编写汉字文档,也会出现乱码并终止编译过程。这个时候就要检查文档的编码格式了。LaTex 源代码可以使用不同的字符编码格式保存。对于简体中文而言,最常见的编码格式有 GBK(GB2312) 和 UTF-8. 只有代码的编码格式和 LaTex 编译器接受的格式一致时,文档才可以正确编译。也就是说,避免出现乱码的方法有两种:

  • 源代码和编译器设定都使用 GBK 编码
  • 源代码和编译器设定都使用 UTF-8 编码
Read more »

有的时候就是会遇到这么奇葩的情况。虽然 git 在版本控制软件中独占鳌头,但学校的老师还是要求使用更加古老的工具,比如在 PhD 圈子中流传很广的 subversion (svn). 我花了几个小时简单学习了 svn, 如果有 git 的基础,掌握 svn 一点儿都不困难。

Read more »

最近一段时间政府加强了对互联网的管控,让不少用 VPN 刷 instagram 的童鞋不开心了。你们的 VPN 估计一时半会儿还连不上,我也不能帮你们上 instagram, 不过我倒是可以让你们在电脑上收 Gmail 刷 Facebook 看 YouTube. 下面隆重推出翻墙神器 VPS!

Read more »

申请、项目、放放松几乎成为了一个学期的全部。

在申请这件事上,我绝对算早早就做好了准备,去年1月一不留神刷出了惊艳的托福成绩,虽没能去美帝交换,但至少为申请铺平了道路。6月的GRE考试更是锦上添花,我想,拿这样的硬件条件去竞争应该没有什么问题了。于是我早早就下定决心,去抢好学校的第一批录取,早拿 offer 早安心。

Read more »

From time to time, my computer is suffered from the problem: network connection is suddenly cut off, and visiting any website will return a page "Chrome Dinosaur", which says unable to connect to the Internet. At the beginning I solved the problem by "Troubleshoot problems" provided by Windows. I observed that each time the diagnose did exactly the same thing:

1
2
3
4
Looking for problems in name resolution
Solving the problem
Reset Wi-Fi adapter
Fixed: Default Gateway Not Available

At the first glance, "default gateway not available" seems to be a problem of router. But our system just reset the Wi-Fi adapter in computer, which indicates that the gateway is the gateway in my computer. Then it is clear that "default gateway not available" is a problem of network configuration.

Just as many computers using LAN and DHCP, I left the network configuration to be automatic, and why configuration error still happens from time to time? It turns out that in some cases windows will turn off the network adapter to save energy, and when the device is down, it is impossible to connect to the Internet.

Solve the problem permanently is fairly easy. Just open Device Manager (in Windows 8 you can use a shortkey Win + x), find your network adapter that brings you to the Internet, right click to look at its properties.

In Power Management panel, uncheck "Allow the computer to turn off this device to save power".

And we are done!

大四,才是真正鉴别一个大学生能力的时候。

从8月以来,我每隔几天就能在朋友圈或者微博上看到重磅的新闻:甲同学成功打入 BAT, 乙同学赴欧洲某地实习交流,丙同学斩获数万元的奖学金,丁同学的论文在 SCI 期刊上发表…… 显然,以后肯定还会有戊同学被斯坦福大学录取,己同学拿到近百万天使投资这种事情。当我每天都生活在一个如此高端的朋友圈的时候,我心中的焦躁和不安也就与日俱增。照现在的架势,未来无非就是:“每个人都成就了一番事业,除了我自己”。

静下心思考一下:我真的不渴望成功,甘心过安稳的生活么?肯定不是的。我投入和精力真的比那些同学们少么?这也不见得。他们的性格和特征相较而言有明显的优势么?或许对于我而言,偏向内向的性格确实带来了一些问题,但这也不应该是主要矛盾。思前想后,我终于找到了我的问题:没有属于自己的,明确的目标。

大学三年半的日子,虽不能说过得浑浑噩噩,但多半也是被别人牵着鼻子走。还记得刚上大一的时候,有人搞建模,有人搞竞赛,专攻一处,最终赚得奖金无数。我呢,不知道是搞建模好,还是搞竞赛好,犹豫了许久,终于错过了时间,还安慰自己说,反正对这个东西也不感兴趣,干脆好好学习。当然最后的结果也是显而易见,一个大学生在没有感受到竞争的残酷之前是很难静心学习的。那时候玩过 DotA, 玩过飞车,玩过文明V,在各种既无营养又无需出行的事物上浪费了太多了时间。现在想想,那些日子过得开心么?未必是开心的,未必是不开心的,甚至记忆都有些模糊了。

Read more »

今天发现了一个很奇特的现象:在项目文件中引用动态链接库(dll)文件时,GCC 类的编译器与 Visual Studio 的做法是不同的。

为了正确链接一个动态链接库文件,GCC 类的编译器需要指定以下参数:

  • 编译器所需的头文件的搜索路径
  • 链接器所需的动态链接库(dll)文件的搜索路径
  • 动态链接库的名字(*.dll)

看上去再正常不过了。但是相比之下,Visual Studio 需要指定的参数有:

  • 编译器所需的头文件的搜索路径(与 GCC 相同)
  • 链接器所需的库(lib)文件的搜索路径
  • 库文件的名字(*.lib)

这里产生了一个问题:我们想要连接 dll 文件,为什么指定的都是 lib 文件呢?

Read more »

昨天是大四学长学姐们领毕业证的日子。

中午时分,看着毕业的学生在校园各处合影,诉说着四年的感受,我就很不是滋味。

这也不能全怪上午的电机太过变态。一个更重要的原因是,作为一个准大四的学生,混到现在,别说有什么一技之长,就连专业都只能靠考前的一两天草草过掉,很难说有什么出息。

屈指算来,这学期真正有价值,值得我去骄傲的事,也只有模式识别的火灾检测大作业了。

Read more »

本人应邀写下了第二篇,应该也是最后一篇关于GRE的文章了,希望能为大家提供帮助。

为什么是第二篇呢?因为之前曾经写过一篇关于备考GRE的文章,大体内容是对备考过程的回忆和一二战的反思,可惜现在拿过来似乎已经过时了。经历了一整年的磨难闯过了这个关口,回过头看看,有不少新的体会,在此简要叙述一番。


这次主要谈谈作文。作文是我一直以来的硬伤,本来去年六一的成绩已经基本够用,但考虑到那个作文成绩实在太难看,于是才有了二战的惨败,以及三战的反击。

总结一下之前考试的教训,作文的问题主要集中在这几个方面:

  • 临场发挥没有思路,不知道写什么
  • 打字太慢,有想法也写不出来
  • 写出来的东西很难看,不符合阅卷人的口味
  • 写一半跑题了

下面讲解如何对症下药逐个击破。

Read more »

本文是我对去年六一考 G 的总结,应一些同学的需要发表出来,希望能让更多的人了解 GRE 考试。方括号中的内容是二战之后增补的。如果大家还有什么问题直接问我即可,欢迎转发和扩散。

Read more »

匆匆地,就这样走过大三第一个学期。大三的这一年,是每个人全力拼搏,为未来换取更多机会的一年。从乡下搬进城里,周遭的环境变化不小,我也一样经历着变革。下面就是这个学期发生的一些点滴,请各位看官笑纳。

Read more »