2014

用 Python 脚本从「IT 公论」下载 podcast

之前写过从 Teahour.FM 下载 podcast 的博客,最近有空听了其中一部分,觉得质量还不错。 另外,近期又发现了一个新的 podcast,叫「IT 公论」,主题是科技方面的。看了这个 podcast 的介绍页面,感觉应该不错,于是便打算下载下来。 由于上次写的代码里,下载部分的代码是完全可以复用的,所以整个过程还是相当顺利的。这次处理的重点在下载链接(.mp3 文件)的获取上,因为「IT 公论」的音频下载链接并不像 Teahour.FM 那么有规律,因此还需要用正则表达式来获取。…

Read More

Linux 运维之 SSH 安全

每次在自己的 VPS 上,用 Vim 查看 /var/log/auth.log 日志,总能看到一行行登陆失败信息:都是攻击者企图暴力破解密码、尝试末遂的错误信息。 该如何应对这种针对 SSH 服务的攻击呢?总结下我的做法吧。 修改 sshd 配置 说明: Linux…

Read More

Y400 Linux 驱动折腾记

手头的这台 Lenovo IdeaPad Y400 是去年买的,美行,在淘宝上代购的。原因是旧电脑更新换代,原来的那台联想 F41M 实在是太慢了(2G 内存,而且由于主板限制,内存无法扩容)。买之前就决定操作系统要装 Gentoo。 最终的事实证明,买这台电脑是无比糟糕的选择:从买回这台电脑到现在,我至少有一半的时间都在用旧电脑,而新电脑则躺在电脑包里睡大觉,因为根本就没法用。 至于原因嘛,简单地说,是因为 Y400 的 Linux 驱动问题。…

Read More

netstat bug 一枚

这篇博客是为了填上篇的坑。内容是关于 netstat 的 bug(至少我认为是 bug) 及应对方法。 尽量准确地描述这个 bug:在有进程 fork()、导致父子进程都占用同一个端口的情况下,netstat 不显示子进程对该端口的占用。 测试代码及运行方法详见上篇博客,这里不再赘述。直接贴 bug 现象: # netstat…

Read More

HTTP 文件下载的几个特性及实现

上篇博客是对从 Teahour.FM 下载 podcast 的简单记录,其中提到了那个下载程序支持某些「高级」特性:多线程、断点续传、超时重传。其实,这些特性大家也经常会听到,因为很多专业的下载工具都支持。 如何实现这些特性呢?技术上并不复杂。接下来,我就抛砖引玉,写一下自己的认识。如果有写得不对或不准确的地方,请指正。 需要注意的是: 下面的讨论仅适用于 HTTP 协议的文件下载,其它协议不在讨论之列。 下面的讨论重原理轻实现,你可以选择用自己熟悉的编程语言去实现这些特性。我用的是 Python 3(主要用 urllib 和…

Read More

用 Python 脚本从 Teahour.FM 下载 podcast

Teahour.FM 是一个 podcast 节目,主题是 web 开发和程序员成长。在每一期节目里,主持人都会邀请一位程序员来聊一些相关的话题。到目前为止(2014.02.23),已经出了 44 期。在听了前面两期后,觉得这个 podcast 还不错,值得一听。于是就打算写程序把它所有的 podcast 都下载到本地,有时间慢慢听。 代码已经写好,放在 GitHUb 上,项目名称叫…

Read More