CatCoding

当前 22,共 27 页

Linux 下快捷切换屏幕

在办公室工作的时候一般面对两个显示器,大部分时候左边用来看代码,右边用来写程序。双显示屏还是有助于提高工作效率的。有一点困扰我的是如果要切换屏幕一般得用鼠标,这对于 Emacs 党是有些不能忍受的,右手离开键盘总是得停顿一下的感觉。今天找到一个解决办法。 最终找到的是这个号称 Linux 下键盘精 ......

分支预测优化

问题 Stack_overflow 上有这么一个帖子:为什么排序后会快很多,说是下面这段代码比较诡异,引发了比较多的回复,一起来看看。 #include <algorithm> #include <ctime> #include <iostream> int m ......

GDB 调试动态链接库

今天解决了一个长期会碰到的问题,就是用 GDB 如何来调试动态链接库。我这个问题的难点是我的需要调试代码是在动态链接库里面,但是启动的不是普通的可以调试的二进制文件,换句话说这不是我所能控制的代码所编译出来的,甚至可能是由脚本程序来控制启动的。这个问题时不时地困扰着我,总结一下尝试过几种调试方式: ......

bsfl 指令和 Bitmap 的一个优化

如何找出 int 中第一个 1 对于这个问题我们可以从最原始的做法开始,如果没找到 1 返回 0,如果第一位为 1 返回 1。所以代码很简单如下: static int first_onebit(int x){ if(!x) return 0; else{ ......

使用 Jekyll 和 Github 搭建博客

为什么要折腾 折腾了几次终于把博客从 wordpress 搬到 Github 了,迁徙这事本来是够麻烦的,而且也比较无聊。不过最终还是抑制不住诱惑,这有下面几点点好处。 编辑方便,专注写作 在线下编辑,可以随便选择自己喜欢的编辑器。当然 wordpress 也有离线编辑工具,不过 Linux ......

Find duplicated Number and Cycle detection

一个有趣的问题,据说这个题目耗费了 Don Knuth 24 小时解决。一起来看看。 You are given an array of integers of length n, where each element ranges from 0 to n - 2, inclusive. Pro ......

eproject

我之前一直用的是 project-mode.el 来管理项目,在碰上代码很多的工程时还是有点不方便,源文件太多速度有点慢。快速检索文件还是可以,需要指定代码目录,可以增加目录。工程的概念还是不太直观,主要用来快速查找文件。以前看有同学推荐过 eproject,当时没仔细看。这会儿想自己写一个,而今天 ......

A Emacs func

这个操作好像经常要用到,拷贝当前光标连续的一段字符串 (除了空白和换行), 写了个小函数来实现。 (defun get-continue-string () (interactive) (skip-chars-backward "^ \n") (setq low (p ......

A Basket-Ball Demo

最近闲暇时间用 C++ 写了个小 Demo,一个小小的篮球模拟。在学校的时候看过《人工智能编程精粹》,里面有个足球模拟,看起来还比较逼真。我这个篮球模拟是比较类似的,主要好玩的地方是在于状态机。图形方面做得很简单,还是用 OpenGL 来实现的,另外用了一个库 glui,这个东西很好,把 GUI 方 ......

姓氏的消失

前些天看到一篇文章有点意思。假设,人口的数目不变,儿子的姓氏随着父亲,那么随着时间的推移一代一代的演化,最后所有的人都只有一个姓了。具体用个例子描述就是:100 个父亲,按照上面的假设会有 100 个儿子,也就是平均每个父亲在下一代会有一个儿子,假设某个父亲姓“王“,并且王在父亲这一代所占的比例是 ......