0%

2017 年总共阅读了 21 本书,相比于 2016 年减少了 4 本。
今年读的这些书相对于去年来说种类比较全而且质量比较高, 但是有一个非常大的缺点就是没有留下可用的笔记,尤其是像《北宋名家词选讲》这种书,没有好的笔记留下,书里的精髓就会流失很多。
希望 2018 年的阅读能够做到以下几点:

  1. 读的每本非小说类书,都要认真的做笔记或者思维图
  2. 2018 年可以阅读 30 本书以上
  3. 多把空闲时间放在用 kindle 读书上
阅读全文 »

ClassViewer是我最近开发的一个用于展示 jvm class 字节码的小工具。它是一个单纯的静态网页,完全使用浏览器端的 Javascript 开发。之所以开发这款工具,是因为我在开发 ToyJVM 的时候,需要常常校验 class 文件某一部分的字节码, 所以如果一款工具能够很方便的显示 class 文件各个部分的信息和字节码,对于 ToyJVM 的开发将会是一个非常大的帮助。

在开始写代码之前调研了一些类似的产品,主要有 jdk 自带的 javap、国外的 Java-Class-Viewer 以及国人开发的 classpy,它们都是非常不错的 class 文件分析工具,但是也存在着一些算不上缺陷的小问题。所以最终还是决定自己写一个适合自己小工具,同时也加深下 class 结构的理解。

在调研了目前的产品后,我也更加清晰了自己的目标。首先它的受众应该是有兴趣研究 jvm 的程序员,而它应该有这些特性:

  • 不依赖于特定操作系统平台
    它应该具备基本的跨平台的能力,因为程序员的 Mac 和 Linux 使用率很高。
  • 无需复杂的安装和编译,无需用户有特定的知识背景
    我不太希望用户拿到我的代码后,还需要安装相应的环境、了解一堆无关知识。

最终实现出来的工具是这样的:

阅读全文 »

4 月 9 号,在武汉参加了人生第一次半程马拉松,风里雨里的 21.0975 公里。虽然已时隔一周,但想到那天一路的奔跑、疲惫、欣喜,还是想记记这半马的流水账。

阅读全文 »

介绍

BloomFilter(布隆过滤器)是一种可以高效地判断元素是否在某个集合中的算法。

在很多日常场景中,都大量存在着布隆过滤器的应用。例如:检查单词是否拼写正确、网络爬虫的 URL 去重、黑名单检验,微博中昵称不能重复的检测等。

在工业界中,Google 著名的分布式数据库 BigTable 也用了布隆过滤器来查找不存在的行或列,以减少磁盘查找的 IO 次数;Google Chrome 浏览器使用 BloomFilter 来判断一个网站是否为恶意网站。

对于以上场景,可能很多人会说,用 HashSet 甚至简单的链表、数组做存储,然后判断是否存在不就可以了吗?

当然,对于少量数据来说,HashSet 是很好的选择。但是对于海量数据来说,BloomFilter 相比于其他数据结构在空间效率和时间效率方面都有着明显的优势。

但是,布隆过滤器具有一定的误判率,有可能会将本不存在的元素判定为存在。因此,对于那些需要 “零错误” 的应用场景,布隆过滤器将不太适用。具体的原因将会在第二部分中介绍。

阅读全文 »

2016 年总共阅读了 25 本书, 其中计算机相关书籍 5 本,小说和传记类 15 本,其他类型的 5 本。阅读介质大部分为 kindle 电子书和微信读书 APP。
2016 年时间匆匆,感谢我看过的每一本书。

阅读全文 »

前两天把实验室的一台旧台式机装上了 Ubuntu Server,打算当作测试服务器使用着玩。
装上之后意识到一个严重的问题:实验室电脑连接外网时候需要打开浏览器输入学号进行认证。

阅读全文 »

2015 年都做了什么?

学习

很忙碌的一年。
**2015 年 1 月份到 2 月份 **
基本是在忙数学建模的美赛,最后碰运气拿到了二等奖,加上 2014 年拿到的国赛二等奖。推免的资格基本没什么问题了。
大三下学期
踏踏实实的做了回学霸,认真上课,做实验和课设。在此期间参加了腾讯及阿里巴巴的暑期实习生校园招聘,两次一面跪,备受打击,同时发现了自己在技术上的诸多不足。

阅读全文 »