CatCoding

当前 19,共 27 页

正则表达式匹配和 NFA/DFA

正则表达式匹配是一个经典问题,这里有一个问题。 实现 isMatch,其中。表示任意一个字符,*表示 0 个或者任一个前面的字符: isMatch("aa","a") → false isMatch("aa","aa& ......

Kernel analysis: Defunct Process

我发现带着问题去看内核代码比较容易理解。如果一个父进程显示的设置 SIGCHLD 为 Ignore,子进程将自己清理自己。 #include <signal.h> #include <unistd.h> #include <stdlib.h> #include & ......

拓扑排序

最近在看一些图算法,发现拓扑排序频繁出现,这里写一下自己的一些总结。 拓扑排序是对于有向无环图而言的 (DAG),就是对于这个图所有的点 (V1, V2, … Vn) 找到一个点序列使得任意边 (u, v),u 出现在 v 的前面。很容易证明,如果一个有向图中有环那么不存在拓扑排序。 现实中的问题 ......

Do Presentation like a Geek

很多程序员不喜欢做 PPT 之类的东西,我也不喜欢。这有另外的原因是一直没找到一个合适的工具,Linux 下 PPT 是个悲剧,Latex 学习成本又大了点。 上次在公司分享的时候偶然找到了这个叫做showoff的工具,熟悉了大概半个小时就上手了,迅速把自己的 PPT 完成。 showoff 是 R ......

初到美国

很久没有更新了,这段时间挺忙的。公司让在美国待一段时间,所以 7 月份开始办理相关签证,由于自己粗心大意导致跑签证馆好几次。 第一次是因为没有填写完教育信息, 签证馆挂着个牌子写着 The main difference between a cat and a lie is that a cat ......

Metaprogramming Ruby

『Metaprogramming Ruby』这本书看了两遍,从这本书里获取了一些乐趣。技术书籍就应该这样简明扼要,寓理于事。通过一个显示中的例子引入问题,展示元编程的解决办法,顺带介绍一下用到相关技术的 gems。 下面这些不是书评,只是我在看第二遍的时候的一些简单的择要,用于自己的记忆和检索。 I ......

Learning Ruby with Ruby Warrior

Ruby 上总有好玩的东西,偶然看到这个RubyWarrior,玩了一把感觉还有些意思。这个有些像我原来介绍的RubyRobot, 不过更像之前的Wumpus,看来我对这种游戏有些兴趣。 Ruby 新手边玩边熟悉了语言。需要代码的可以 clone 下来看看,如果只是玩可以 gem 装上,然后运行 r ......

初学 Rails

我在 2012 年左右开始关注 Ruby,平时有的时候会用 Ruby 写一些脚本。这是一个很活跃的社区,Ruby 火起来也不是最近的事。可贵的这里总是有一些新的东西出来,比如我现在的这个博客是基于 jekyll 和 Github 的。 Ruby 的迅速崛起更多的还是因为 Rails,所以学习 Rai ......

高效的 Crit-bit Tree

最近了解到有这么一种数据结构,想拿来在工作中做一些事情,结果效果不好。原来我的理解有一些不对。在这里记录一下。 Crit-bit tree是一种特别的树结构,一般用于存放字符串。Critbit tree 是一种BitWise tries,其树的深度为 O(longest-length),有点像二叉树 ......

迁移到 Git

公司这群人终于打算从 CVS 迁徙到 Git 上了,CVS 这套公司用了六年。CVS 这是 90 年代的东西,我们不能因为年代久远而嫌弃这,只是 CVS 这东西对于一个比较大的项目来说创建分支是相当漫长,大多数程序员都没有耐心的。 迁徙计划虽然纸上谈兵了很长时间,直到现在才终于打算行动。 上午把 G ......