
刚刚看完vgod这个大牛的《追求神乎其技的程序设计之道》 ,很有些感想。
《追求神乎其技的程序设计之道》 是一个系列,开始写于2008年7月5日,结束于2009年12月18日,总共十篇博客。讲得是vgod的学习程序设计的过程和感想,他从初中时期开始写程序,由basic入门,进而C、C++、Java、Python、perl,玩转linux、mac OS、unix等,高中时全身心在搞IOI,快毕业时还挂了九门课,其间过程不可谓不疯狂,读来令人心潮澎湃,恨不得再年轻一回,也疯狂一把。
本人从初中接触电脑开始,高中学习Pascal入门,进而C、C++,那个时候也挺疯狂,天天拿本厚砖头在晚自习读,偶尔乘班主任不在溜到电脑室,但也仅仅是晚自习而已,远不及vgod全天候疯狂,到了高三还要收敛身心搞高考,还好底子还在,好歹考了咱们湖南排名最高的大学。到了大学阶段,有点不思进取,以为已窥门径,没什么可学的了,到外面兼职赚钱去了,到了大三时,看了泛型、Boost、元编程,才知道自己是井底之蛙。再看看大牛们都在干什么,才惊觉自己实在浅薄。大学已经进入尾声,已经发觉得有点晚了。到了研究生阶段,除了买大量的书,看大量的书以外,就是写代码,玩linux,看大牛的博客,这才稍微觉得自己赶上了形势。
读完vgod的追求神乎其技系列,觉得要干成一件事情,要有下面几条: Read more…

前几天看到IPV6下有一些很好的网站,可惜一直没有用上IPV6网络。看到校园网可以上IPV6了,赶紧赶上潮流,用上IPV6的网络。
IPV6的地址有128位,总共八个段,每段16位,格式类似于XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX,X为16进制,每段开始的零可以省略,如果中间有些段的值为零,可以用::表示,但::只能出现一次,比如XXXX:XXXX::XXXX就表示中间第3-7段为0。IPV6的地址有以下几类:
- 本机地址。0000:0000:0000:0000:0000:0000:0000:0001,简写为::1。相当于IPV4中的127.0.0.1。
- 未明地址。0000:0000:0000:0000:0000:0000:0000:0000,简写为::。相当于IPV4中的0.0.0.0。
- IPV4映射IPV6地址。0:0:0:0:0:ffff:a.b.c.d/96,简写为::ffff:a.b.c.d/96。a.b.c.d就是IPV4地址。
- 本地连接地址。fe80:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX,只能在局域网内使用,不能通过路由器,不能联通外界。
- 私有网络地址(局域网)。fec0:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX,同IPV4中的10.0.0.0/8类似。
- 全局地址(全球唯一)。2XXX或3XXX开头,最初定义和使用的测试网地址以3ffe开头,而2001开头一般是ISP逐级分配的全局地址,2002开头的是隧道机制的地址。自动分配的全局地址的后64位是以MAC地址为基础,使用EUI-64方法计算出来。
- 多播地址。ffXX开头。
由于IPV6中网址的极大丰富,因此不需要区分私有网络还是公有网络,都可以直接使用全局网址,因此路由的时候不需要地址转换(NAT)了。
由于本人在局域网中,需要在网关上安装IPV6自动配置软件,在linux下这个软件是radvd,为局域网内的机器自动配置IPV6地址。网关需要为两个网卡分别配置IPV6地址,如果网关的外网网卡能够自动获取IPV6地址,则不需配置,否则需要去找网管问一下。外网网卡全局地址一般为2001开头,内网网卡需要手动设置,ip addr add 2001:XXXX:XXXX:XXXX::1/64,外网网卡如果需要手动设置也可以用这个命令,同时需要修改radvd的配置文件,为局域网配置IPV6地址,其格式如下: Read more…

Dropbox是最近冒出来的一个非常好用的网络备份与同步工具,于2007创办的,收到大名鼎鼎的Y Combinator的天使投资,现在已经三家VC加入了投资行列,目前已发展到数百万用户。
Dropbox是一个非常简单的工具,相对来说比Microsoft的LiveMesh具有更好的跨平台性,又比Live SkyDrive 要简单易用。如果有些同学使用Gmail或者Google Docs作为备份工具的话,Dropbox更稳定,而且备份操作更简单,还具有同步功能,更为强大。唯一需要担心的是,因为是国外的服务,有被墙的危险。
Dropbox 的免费容量是2G,比LiveMesh的5G和SkyDrive的25G的容量小,但是如果能够推荐亲朋好友使用的话,每推荐一个可得250M的容量,最多可得到3G的额外容量,另外也可以付费购买更大容量。
使用很简单,在linux、windows、 Mac OS均可安装,装好后可以设定一个同步和备份文件夹,有什么需要备份的东西往这个文件夹里扔,Dropbox就会自动备份,而且如果有几台机子或者装了几个系统的话,Dropbox还会自动同步这些文件夹里的内容,几乎不用什么操作。如果你就在这个文件夹里工作,那都不用扔文件,有什么修改和更新,Dropbox自动备份和同步。
因为我在机子上同时装了windows、Linux系统,而且也需要对一些重要的东西备份,先前使用的liveMesh只能在windows下工作,而其他的还要自己手动上传或者复制,既麻烦又占空间,Dropbox对我来说真是个好工具,使用非常爽。
Read more…


以前一直使用Eclipse的CDT插件进行开发,构建系统也就使用CDT自带的。最近几日因为要修改EA程序,打算转到vim编辑器,并使用GNU的构建系统。GNU的AutoTools构建系统,包括autoscan、aclocal、autoconf、automake、autoheader、libtool等工具,是一个完整的工具链。其构建步骤如下:
- 先使用autoscan扫描源代码目录,生成configure.scan文件。修改configure.scan文件中的内容,具体修改内容可以参考相关网页,并将其改名为configure.in,作为aclocal的输入。
- 使用aclocal扫描configure.in文件,生成aclocal.m4文件。
- 使用autoconf扫描configure.in和aclocal.m4文件,生成configure脚本文件。
- 创建并编辑Makefile.am,具体修改方法可参考相关网页,使用automake扫描configure.in和Makefile.am文件,生成Makefile.in文件。
- 创建并编辑acconfig.h文件,具体修改方法可参考相关网页,使用autoheader扫描configure.in、aclocal.m4和acconfig.h文件,生成config.h.in文件。
- 执行configure脚本文件,扫描Makefile.in和config.h.in文件,生成Makefile文件。
- 执行make命令,构建可执行程序。
步骤还是蛮多的,不过功能还是非常强大的,能够自动检测环境和依赖关系,生成Makefile文件,用得熟了,有些步骤还可以省略,具体可见网页1和网页2。如果写个脚本,将这些步骤自动化,作为值守进程,就可以自动构建了。但是还是显得比较复杂,要同时面对几种工具和脚本语言,而且这个工具链只能在Unix/Linux系统下使用,在Windows下使用很困难,不具有跨平台移植性。
而CMake,能够为多个操作系统平台多种编译器提供makefile,包括Windows、Linux、Solaris、Unix、Mac OS X、FreeBSD、……等。而且,CMake只需要一个配置文件CMakeLists.txt,编译速度也比autotools快一些,具体优势可见网页3。
由于CMake具有的优势,一些大名鼎鼎的开源软件纷纷投靠了CMake,包括KDE、Boost、MySql、….等,估计未来还会有更多投靠的。KDE的开发者Alexander Neundorf介绍了为什么转移到CMake。当然也有一些autotools的粉丝从另外的观点反驳,autotools每个工具都专注一个任务,具有更大的灵活性,符合UNIX的一贯哲学。其中Luca Barbato和Alexander Neundorf的论战最为精彩。
Read more…

Hugo前几天留言说,要使用Firefox才能看到我的博客,费了老大的劲。刚开始我还没注意,由于我最近一直使用Firefox,一直都能正常的浏览我的博客,一点问题没有。直到前两天,我转到Windows环境下,用IE打开博客,页面倒是显示出来了,就是在快显示完的时候弹出一个对话框“can not open internet site ,operation aborted.”,使劲刷新,还是弹出这个对话框。我刚开始猜测可能是inove主题出问题了,结果到人家主页上用IE看了一下,一点问题没有。然后又到自家WP后台把主题切换了,用IE浏览,还是打不开,看来不是主题问题了。又用Firebug调试一下,看是否是HTML的语法问题,还是没有问题,真是奇哉怪也,怎么会这样的问题呢。终于想起可能有同样遭遇的人,用google一搜索,还真发现不少兄弟遇到同样的问题。其中一位Arun兄弟,已经把解决方案写出来了。主要的解决步骤如下:
- 先检查是否是主题的问题。将主题切换了,看是否解决问题,如果解决了,那就是主题出了问题;
- 检查是否是插件出了问题。将所有插件全部关闭,看看IE能否打开,如果能够打开了,那么肯定就是哪个插件惹来的麻烦,一个一个激活插件,激活一个插件,就用IE测试一下,直到问题重新出现的时候,此时激活的插件就是那个惹麻烦的插件,将之关闭,并删除,将其余插件激活即可,问题解决。
- 如果关闭所有插件,问题仍然存在,那就将所有插件的文件都删除,再测试一下,如果问题解决,再逐个把插件复制回去,这样也能找到出问题的插件。
- 如果删除所有插件,问题还没有解决,这时候就要考虑是不是一些网络服务的插入代码惹了麻烦,比如Feedsky、Google Analytics、Stat Counter、Friend connect之类,将这些代码从文件中全部删除,然后看问题是否还在,一般来说,这是终极步骤了,再出问题,您就得重新装WordPress了。这个时候测试一下,如果问题解决,再将代码一个一个加上,找出出问题的网络服务代码。
我的博客就是在进行步骤2的时候把问题找出来了,惹麻烦的插件是Lightbox2,不知道是否跟其他插件起了冲突还是什么原因,我把这个插件删除了,问题就解决了,IE下就能正常打开博客了。而Arun兄弟则是在步骤4之后才找到问题,是Podpress插件出了问题。还有一位行者无涯网友也出了问题,结果也是在步骤4解决问题,是Friend Connect出了问题。看来是不同的插件和服务出了问题,但有一点是相同的,那就是这类问题肯定是出在Javascript代码里,所以以后出了这类问题的网友可以尽量找一下哪个Javascript文件出了问题,这样就更精确了。

在windows下使用Eclipse的CDT(c++ develop)插件比较麻烦。首先需要安装JDK,让Eclipse能够运行起来。
接着需要安装MinGW和cygwin为CDT提供GCC和linux命令行环境。接着下载CDT插件解压缩,拷入Eclipse安装目录的Plugin目录中。启动Eclipse,新建一个C++工程,然后编译运行,测试一下是否安装正确。
在CDT中使用Boost类库则非常麻烦。有些Boost的子库需要链接库文件才能编译成功,有些直接包含源代码即可。而需要链接库文件的Boost子库,网络上没找到适合CDT环境的链接库,只能自己编译链接库。下面是编译使用Boost类库的步骤:
Read more…

使用了几天Windows 7之后,发觉Windows 7是用上了就舍不得换回XP了。我平常在XP下,使用firefox开二三十个标签页以后,firefox将占用1G多内存,其中600M物理内存,600多M虚拟内存,而整个物理内存的使用量将达到900多M,我的内存总共才1G,这时候整个系统运行速度严重下降,火狐开始罢工,其他程序也很慢了。
使用windows 7的体验,与XP有很大不同。windows 7刚启动的时候,会占用多达700多M内存,刚开始还以为windows 7很恐怖,启动就要耗费这么多内存,但我打开firefox,并连续打开二十多个标签页,再打开word写文档,然后打开资源管理器、IE8、和画图软件,内存占用仍然是700多M,有时候内存还降到500多M,真是有点神奇。
在使用了windows 7后,感觉windows 7在内存管理方面的确达到了一个新的台阶。我在windows 7系统装上了office、eclipse、QQ、PPLive、Fetion、迅雷后,这些软件安装文件与XP一样,运行没有任何问题,证明windows 7跟XP很兼容。但是在安装卡巴斯基、Daemon时,提示驱动不兼容,不能正常运行,证明windows 7在底层驱动方面,有比较大的改动,在应用接口层方面具有很好的兼容性。
Read more…

最近一段时间以来,几乎每天看到Windows7的新闻,用过的人都说好,宣传攻势非常猛烈啊。昨天花了半天时间下载了32位版本(评估号为7260)下来,已经无限接近RTM版了,安装文件ISO总共有2.4G左右。在XP环境下,装入虚拟光驱后,能够运行安装程序。
Windows 7能够从XP和Vista升级,不过需要使用Easy Transfer工具对原来的系统文件进行备份和迁移.考虑到升级的复杂性,还不如直接将Windows7直接装在另外一个盘,这样可以XP与Windows 7共存,万一Windows 7不行了,还能接着用XP.Windows 7 RC的序列号可以从微软的官方下载页面注册得到,这个RC序列号可以用到2010年3月,然后就会每两小时重启一次,2010年6月就会彻底失效。如果不知道如何注册,按照这个介绍操作.
安装的时候只需要选择两次,一次是选择安装方式,一次选择安装的分区,选择过后就是安装过程,整个过程不需要再进行任何设置,直到安装完成。启动画面很炫,进入桌面的进度条也非常炫.安装了一些常用的软件后,整体来看,windows 7对软件的兼容性不错,在XP下能运行的,在windows 7基本上都能运行.除了虚拟光驱和杀毒软件,如deamon等不能运行.也有一些软件运行不正常,如谷歌拼音.
Read more…
几天前在Godaddy注册域名后,附送了免费空间,博客搞起来后发现,Godaddy很有一套,它反正有闲置空间,免费提供还能提高利用率,提高客户满意度,同时在网站顶部加一个广告横幅能够带来收入,怎么看怎么划算。这个广告横幅横在网站头上,如影随形,非常彪悍。而且这个广告与本人博客的主题不搭,怎么看怎么碍眼,严重影响本人博客的美观度。
昨日书锐同志曰:正好我要买空间,你挂到我那里来吧。真是雪中送炭的兄弟阿,感激之余立马把网站备份了,搞了两个小时,博客顺利迁移新居。今日早上,小曼(前文中的M,以后皆用小曼)看了博客称赞道:没有广告果然好看多了。
Wordpress网站的迁移说起来简单,其实里面还是有几个小细节需要注意,这些小细节花了我两个小时,如果注意的话,其实整个迁移过程十分钟就能搞定。下面说一下要点:
Read more…
最新评论