《黑客与画家》读书笔记

去年年底那会,花了大概一周多时间,阅读完了《黑客与画家》这本书,收获颇丰。可惜当时确实没多少时间整理出读书笔记,期末考试结束后,回到家中,本想着有时...     阅读全文
WincerChan's avatar
WincerChan 1月 26, 2018

豆瓣电影 Top 250 数据分析

前言前段时间忙于备考,博客有段时间没更新了。其实早就有写这篇博客的想法了,原因嘛——我是比较喜欢看电影的,而且近来也对数据分析颇感兴趣,于是花了一天时间,先是爬取数据,再分析整理,数据可视化。     阅读全文
WincerChan's avatar
WincerChan 1月 21, 2018

再见,2017

关于 2017 年,其实还真的有挺多想说的,也早就有想写一篇博客的想法了,差不多到今天才抽得出时间写。 前几天和朋友聊天时谈到关于今年最有成就感的一件事,我想了一会,应该是搭建了这样一个博客。     阅读全文
WincerChan's avatar
WincerChan 12月 29, 2017

从 GnuPG 的使用谈谈密码学

前言我是一个很注重隐私的人,所以对密码学也就很感兴趣,这学期本着想进一步了解密码学的念头选了一门应用密码学的选修课(其实是为了混学分),虽说也没去过几次,但总想着这门课都快结束了总不能像没上过一样。这次借着 GnuPG(以下简称 GPG) 软件的使用也聊聊目前现代密码学中以密钥性质进行区分的两大加密方式。     阅读全文
WincerChan's avatar
WincerChan 12月 11, 2017

Web 性能优化(一)——使用 localStorage

localStorage 的意义为了针对我的网站提供更好的浏览体验(或者说更接近原生 App 的用户体验),在之前我就已经开启了 Server Worker 技术,针对离线或者网速慢的情况下改善用户体验。但只有少数几个浏览器支持 (Chrome、Firefox、Opera),对目前手机端用户数最多的 QQ 浏览器、UC 浏览器却没有支持,也就是说该方法针对 QQ 浏览器和 UC 浏览器并没有什么实际优化。     阅读全文
WincerChan's avatar
WincerChan 11月 30, 2017

这盛世可如你所愿?

我曾听说住在罗生门的恶鬼,因为害怕人性的残忍而逃走。——《罗生门》 ——谨以此文献给十九大之后的「太平盛世」。     阅读全文
WincerChan's avatar
WincerChan 11月 24, 2017

Poker 机械键盘开箱与简评

一入外设深似海,从此钱财是路人。 初识第一次知道外设这个概念,是在高中的时候,在网上偶然逛到机械键盘贴吧,只是当时忙于准备高考,而外设又价格不菲,于是念头便搁置了。 后来上了大学,买了笔记本,敲着笔记本自带的键盘「 shit 」一般的手感,才想到我应该买一把机械键盘了。于是就在网上找,看到一个段子说: 年轻人千万别碰哪些东西? 毒品 游戏显卡 Hi-Fi 耳机 固态硬盘 机械键盘 Steam Origin Uplay . . .     阅读全文
WincerChan's avatar
WincerChan 11月 02, 2017

构建一言 API 踩坑记录

前言最初是在手机上一个叫「一言」的 App 接触到 Hitokoto,一见倾心啊。之前我看书时遇到写的不错的句子就喜欢摘录下来,在有自己的博客之后,本想是单独写一篇博文来存放,后来分析了 NexT 的布局后,就想到在侧栏底部可以加上一个单独的模块。 最开始,是使用别人的 API,后来觉得不太好,有诸多限制,而我又没有主机,于是就自己用 Javascript 写了一个本地的脚本。后来发现这样也不太好,因为本地的脚本每次加载势必要加载存放 Hitokoto 的 JSON 文件一次,当记录越来越多时,会消耗不必要的资源。毕竟每次只需要加载一条。     阅读全文
WincerChan's avatar
WincerChan 10月 30, 2017

Linux 与 Windows 10 用 GRUB 引导教程

前言去年暑假的时候,写了一篇如何装 Linux 和 Windows 10 双系统的文章发在了简书上,我写这篇文章的原因是当初装双系统确实是折腾了许久,网上也找不到一篇详尽的教程。由于去年对于写教程还不是熟练,而这一年多的使用过程也遇到了一些问题,所以就准备「Refactoring」这篇文章。 EFI 分区在教程正式开始之前,先花一点时间说明 EFI 分区的组成和作用。首先,在你装了 Windows 之后,Windows 在装机过程中会将硬盘划分出一个约 100m 大小的分区,称为 EFI 分区这个分区就是起引导作用的。在资源管理器中是看不到的这个分区的,可以在磁盘管理中看到,管理则需要借助 DG 工具。便于说明,在装好了 Linux 之后,我将 EFI 挂载至 boot 分区截图:     阅读全文
WincerChan's avatar
WincerChan 10月 17, 2017

Kindle Papwerwhite 开箱 & 简评

If you don’t let go old things, new ones wouldn’t come. —— Nicolas Wincer 前言时间是在 9 月 27 日晚,我用了一年零 8 个月的 Kindle 正式宣布坏掉,原因是冲不进电,我的第一反应是想着去修,后来还是打消了这个念头。主要是这个 Kindle 实在算是家族里的“老古董”了,我对 kpw3 的 300 ppi 也是种草许久,正好本着“旧的不去,新的不来”的观念,就入了一部 kpw3,其实在我想着要买 kpw3 的时候,是有点纠结 Voyage 的,因为用了快两年的 Kindle3 我已经习惯了实体翻页键,奈何囊中羞涩,只是为了这一个功能就要多花 600 +,有些不值当,想着等工作了之后直接上 Oasis。     阅读全文
WincerChan's avatar
WincerChan 10月 05, 2017

Spacemacs 生存指北

简介Spacemacs 是一份 Emacs 的配置文件,将 Vim 的快捷键移植到了 Emacs 上,可以提供 Vimer 至 Emacs 的无缝衔接。有了 Spacemacs,你不需要花那么多时间去学习 Emacs 就可以真正用 Spacemacs 开始做一些事情。     阅读全文
WincerChan's avatar
WincerChan 9月 26, 2017

从 HTTP 到 HTTPS 再到 HSTS

前言我的博客是在三个月前就完成了 HTTPS 加密工作,方式嘛,和大多数网站类似,是将 HTTP 的请求 301 跳转至 HTTPS,这样虽然可以让用户即使输入的不包含 HTTPS 的网址,也可以跳转至 HTTPS。但是当你输入的是域名(不带 HTTP 或 HTTPS )时,浏览器会自动帮助你填充的是 HTTP 而不是 HTTPS。 虽然正常情况你会跳转至 HTTPS,但是啊但是目前有一种称为「降级攻击」的技术(具体原理自行查阅),我这里简单说一下后果:这种技术是借助中间人发动的攻击,中间人会在浏览器和目标网站之间尝试拦截跳转至 HTTPS 的内容,将浏览器重定向至受攻击者控制的服务器,这也就是我们所说的「HTTP 请求劫持」。 那么怎么预防呢? 在每个域名之前手动输入 https:// 网站启用 HSTS 第一种每次都要手写输入,自然很麻烦,第二点也就是本文所说的。     阅读全文
WincerChan's avatar
WincerChan 9月 13, 2017

爬虫模拟登录之一般性解决方法(Cookie)

前言前几周写了一篇文章,介绍了如何利用 post 方法来验证登录的问题,我也是一直在使用此方法登录豆瓣爬取一些信息,可是前两天突然就不能用了。我也再次查看了豆瓣的源代码,确认了豆瓣的验证信息并没有发生改变,但就是一直登录不上去,我猜想到可能是这个方法行不通了,于是我就换了一个思路:之前的思路是需要将 post 提交的表单数据保存在一个 session 的实例中,然后调用这个 session 实例的 get 方法就可以使用之前保存的数据。 而现在这一方法失效了,我猜想就是 post 方法提交数据这一步出了问题。那么就换一个思路,直接将服务器返回的数据存入 session,那么这个数据具体是什么?从哪儿来呢?这就是这篇文章所要谈到的。     阅读全文
WincerChan's avatar
WincerChan 8月 31, 2017

写给 20 岁的自己

凡心所向,素履所往,生如逆旅,一苇以航。 一直很喜欢海子对于时间的说法——“打马而过”。就像我还没来得及细数,20 个年头匆匆已逝。没有那么多时间细想,这一天就这么来临了,来不及回忆过去,也来不及憧憬未来,一眨眼,就发现自己已经 20 岁了。 在许久之前,我便对自己的 20 岁有过憧憬,想着,20 岁的我会在哪里,做着什么事情。是有了一项划时代的发明,成为震惊世界的奇才;还是偏居一隅,发出「天地与我并生 万物与我为一」的感慨。是的,我希望自己能真实的活着,不像那些忙忙碌碌一辈子不知道为谁而活的人那样。不在意别人的眼光,不为了生存而活。     阅读全文
WincerChan's avatar
WincerChan 8月 29, 2017

爬虫模拟登录

前言 有时候就在想,要是所有的网站对爬虫友好该多好。 当然这是不可能的:网站重要的数据往往就是一个产品的价值所在,如果被我们轻松的获取,这自然对网站经营者来说是一种损失,所以就有了以下各种策略去阻碍爬虫: User-Agent 检测 帐号及 Cookie 验证 验证码 限制 IP 次数或频率 这篇文章主要来说说如何解决验证码问题。     阅读全文
WincerChan's avatar
WincerChan 8月 13, 2017

再见 LiveRe,拥抱 Disqus

没错,我又双叒叕换评论系统了,从最初的网易云跟帖,到后来的 LiveRe,再到现在的 Disqus,两个多月就换了好了三四次(中间从 LiveRe 切换过一次 Disqus,后来又换回来了)了,仿佛我在折腾这些非博客主体的路上越走越远,也幸好我的博客才建成,没啥人留言,不然就得不偿失了。     阅读全文
WincerChan's avatar
WincerChan 7月 29, 2017

使用 Service Worker 优化网站

静态博客的内容是很适合用缓存来加速访问的,除了采用常见的 CDN 加速和压缩博文等方法,通过客户端也可以实现加速访问,本文介绍的是「服务工作线程—— Service Worker」。关于 Service Worker 的具体介绍见这里。本文主要需要的是它的离线加载的特性。 启用 Service Worker添加注册代码位置需要在网站的根目录添加,这样才能保证接管整个网站的全部资源。     阅读全文
WincerChan's avatar
WincerChan 7月 25, 2017

Python 实现多线程下载器

前言我为什么会想到要写一个下载器呢,实在是被百度云给逼的没招了,之前用 Axel 配合直链在百度云下载视频能达到满速,结果最近两天 Axel 忽然不能用了,于是我就想着要不干脆自己写一个吧,就开始四处查询资料,这就有了这篇博客。 我假设阅读这篇博客的你已经对以下知识有所了解: Python 的文件操作 Python 的多线程 Python 的线程池 Python 的 requests 库 HTTP 报文的首部信息     阅读全文
WincerChan's avatar
WincerChan 7月 19, 2017

为什么学习算法

前言对于算法,我个人的心情是挺复杂的,去年的时候有去刷过一段时间的 ACM 算法题,后来就不知怎么荒废了,直到最近看「SICP」才决定捡起来,这篇文章也算是对算法的一点感想。 增长的阶不同计算过程在消耗计算资源速率可能存在巨大差异。为了描述这些差异的一种方法是采用「增长的阶」的记法,分析这一过程消耗的资源也就是我们平时所说的「算法分析」。 「令 $n$ 为一个参数,它能作为问题规模的一种度量,令 $R(n)$ 是一个计算过程在处理规模为 n 的问题时所需要的资源量。 我们称 $R(n)$ 具有 $\Theta(f(n))$ 的增长阶,记为 $R(n)=Θ(f(n))$,如果存在与 $n$ 无关的整数 $k_1$ 和 $k_2$,使得:$k_1f(n)\leq R(n)\le k_2f(n)$ 对于足够大的$n$值都成立。」     阅读全文
WincerChan's avatar
WincerChan 7月 16, 2017

树形递归

树形递归与上一篇介绍的「线性递归」类似的另一种常见计算模式为「树形递归」。本质嘛,可以看作许多分支的线性递归。 还是直接上具体的例题。 「斐波那契数列^1」的定义如下 看到这个定义我们马上就能把它编写成程序: (define (fib n) (cond ((= n 0) 0) ((= n 1) 1) (else (+ (fib (- n 1)) (fib (- n 2))))))     阅读全文
WincerChan's avatar
WincerChan 7月 16, 2017