simplicity is prerequisite for reliability

背景

數據結構是計算機科學的基礎學科,其中許多簡單的數據結構早已被各種高級語言抽象成類庫,以方便人們使用,如數組、列表、優先隊列、哈希表等等。

我習慣於把那些比較難以抽象成通用組件的數據結構,稱爲「高級數據結構」。這些數據結構通常只適用於解決某幾類問題,在使用過程中還需要針對問題模型作出一些定製性的優化,如果硬要抽象成通用組建反而限制了它們的性能。

并查集夠高效地判斷兩個元素是否同屬一個集合、合併兩個集合,常用與解決一些不相交集合的合併和查詢問題,比如計算無向圖的聯通分量個數、染色,在 CodeForces 中,并查集的標籤是 dsu,因爲并查集的英文是 Disjoint Set Union,「并查集」這個翻譯可能更多的來自一個英文別稱 Merge–Find Set 。

Read More...

背景

我工作时候使用的 IM 是阿里旺旺 Mac 版。虽然我厂是个体量可以排到全球前几的互联网企业,但是在这里,Mac 用户依然不是太多,因此内部工具的 Mac 版本也就不太完善。

我经常需要从 IDE 里复制代码粘贴到 IM 发送给同事,从 IDEA 中复制出来的代码是带有格式的富文本,粘贴到 IM 之后不仅把深色的背景、高亮的颜色全都贴进去了,还带来一个挺大的副作用,新输入的文字,都有着和代码一样的颜色和背景色。要想让输入的文本变得正常,最快的方式莫过于 ⌘Q 然后重新运行 IM。

为了从频繁地重启 IM 中解脱出来,我决定做些什么。

Read More...

背景

从上周开始我就一直在做数据清洗的工作,这次算是体会到了什么叫做“抛开数据量谈实现就是耍流氓”。

我设计方案和调试代码连接的都是日常环境的数据库,里面的单表数据量在百级,无论我怎么实现都是瞬间洗完。到了性能测试的时候用的就是性能库,双 11 之前@W君做性能测试的时候,往里面写入了 2000W 的数据,足够我战个痛快。

上一篇文章《{% post_link trick-of-paging-query %}》中我解决了分页查询遇到的性能问题,整个数据清洗代码的性能虽有提升,但是十分有限。这说明了其实分页查询不是性能最热点,路漫漫其修远兮。

Read More...

背景

从上周开始我就一直在做数据清洗的工作,这次算是体会到了什么叫做“抛开数据量谈实现就是耍流氓”。

我设计方案和调试代码连接的都是日常环境的数据库,里面的单表数据量在百级,无论我怎么实现都是瞬间洗完。到了性能测试的时候用的就是性能库,双 11 之前@W君做性能测试的时候,往里面写入了 2000W 的数据,足够我战个痛快。

深坑

一开始的时候,分页查询用的是 limit 子句,SQL 语句形态如下。

Read More...

点击这里访问应用。

背景

我在博客给自己开了一个时间轴页面,这样我的一些心情、一些临时的想法感受就能够通过时间轴记录下来,好处是不依赖于第三方的社交服务。

为了以比较好的效果展示时间轴,同时我希望记录写下心情的时间,我会在每条心情的前面加上一个格式为 YYYY-MM-DD HH:mm:ss 的时间戳。

Read More...

背景

我现在使用 IntelliJ IDEA 在 Mac 下进行 Java 开发。之前一直都是从官网下载的 IDEA,用的 14.0,今天突然想换成使用 Homebrew Cask 来管理。于是我就用 brew cask 安装了一个 14.0.2。

疑团

安装完成之后运行,感觉界面怪怪的,和之前从官网下载的不一样。

仔细一看,是字体渲染的问题。联想起之前在 Stack Overflow 看到过讨论说 Mac 下只有 Apple 维护的 JDK 6 才能比较好的在 Retina 分辨率下渲染程序界面。其实我之前从官网下载的 IDEA 用的就是 Apple 的 JDK 6,界面渲染的好好的,为什么从 Cask 下载的 IDEA 出了渲染问题?

Read More...

介绍

reveal.js 是一个帮助你快速使用 HTML 创建漂亮的幻灯片的框架,提供嵌套页面、Markdown 支持、PDF 导出、演讲者模式等等功能。其中 PDF 导出功能我还没研究明白。

reveal.js 提供了一个 Demo,其作用更像是一个速查手册,介绍了 reveal.js 的各种功能和特效。

Read More...

背景

今天我突然发现 Google 已经能够索引我的博客了,外在特征就是我能用 Google 对博客进行站内检索

我随便搜索了一下,发现 Google 索引的 Timeline 的内容,全都指向了作为 iframe 嵌入的 /blog/timeline/timeline.html 页面,而不是我期望的页面。这其实也不是 Google 的错,因为 iframe 中的内容,本来就是不会被爬虫认为是当前页面的内容。

从 Google 的搜索结果直接点进 Timeline,就只能看到一个纯净的时间轴,看起来这个页面跟我的博客没有半毛钱关系。那怎么才能让 Google 的搜索结果指向博客页面呢?

Read More...