花了几个周末的时间,学习了Ext,然后把整个ReadCode的界面重写了,顺带也修改了一些bug,虽然还没最终完成,但是基本的功能都有了,比上一版本要好用了不少。
遗憾的是:
1.本来打算用GWT来重写界面的,但是因为不太懂Java,而Ext看十分钟就能比葫芦画瓢开始做了。这次改动其实也就是因为三、四周前的一个周末,没事看Ext的Demo,然后就立刻决定拿它重写UI了。后来才知道Ext有些License的问题,而且个头也很大,说不定以后还会拿GWT来写一次。
2. 后端的源码分析还是没有重写,无法实现我希望的一些效果,对C++的处理更是有问题。这个得更往后放了。
3.新版本上线后访问数骤降,为啥啊
大家去捧捧场吧。
连接在此:http://code2.readcode.org/code
项目的源码我放在Google Code上了,也欢迎大家一起来改进这个项目。连接在此:http://code.google.com/p/readcode/
开源软件是个宝库,里面有很多东西值得公司、程序员、科研人员、计算机专业的学生和技术狂热者关注。其中有一些已经不需要再多提了,太多人再用了,比如gcc,比如python,比如firefox;还有一些名气不那么大,但是默默地在后端支撑了很多其他产品,比如Sqlite,比如gtk;再有一些开源软件,诞生时间不长,但是俨然将/已经成为一颗巨星,这样的软件各位得关注关注哦
1. Webkit
新一代浏览器的基础,包括苹果的Safari,Google的Android,Nokia的手机都使用了在Webkit基础之上开发的浏览器。Webkit年纪虽轻,但是来势凶猛,明日浏览器的王者或许就是它哦,拭目以待吧!
PS. Webkit和KDE的浏览器(包括Javascript engine)有深厚的渊源,要是算上KDE 的话,Webkit的份额就更大了。
2. LLVM
用GCC这么多年,大家有点审美疲劳了吧,表急,编译器领域里也有黑马杀出,这就是LLVM。LLVM本是大学的研究项目,被Apple看中,选作它的编译器。Apple甚至在iphone上用LLVM来执行硬件不支持的OpenGL命令。网上的一些评测表明,LLVM能生成比GCC好很多的代码。而且,LLVM更优良、更现代的设计保证了它有更大的潜力。
当然,LLVM并不是马上就要取代GCC,更有可能是逐步的融合。
Webkit和LLVM在两个已经有big player的领域里迅速崭露头角,势必会有蓬勃的应用,大家不可放过。
最后,开源宝库,有取有给,大家自觉:)
很久没时间打理readcode了,今天在google了一下,把用户注册、登录的bug给改了,这个bug也是rails升级到2.0引起的。本来想上传点新代码的,结果我的笔记本系统太新了,生成的BDB文件在虚拟主机上使用不了,没辙,改天再说吧。
都说Sun发明了Java,却没能从Java上面赚到什么钱,大头都让IBM、Oracle赚去了。如今,悄无声息地,Google也推出了几项跟Java相关的技术,以另外一种方式实现了Java的理念:Program Once, Run Everywhere。
第一项技术是Google Web Toolkit,用写普通Java的方式编写Web 2.0时代的Web应用程序,或者叫做RIA。
第二项技术是Google刚推出的Android平台,同样是用写Java程序的方式编写手机应用程序。
第三项技术也许看上去不那么相关,那就是Google推出的为浏览器提供离线浏览功能的插件。有了它,Web应用程序和本地应用程序的界限就不那么清楚了。
利用这些技术,你就能做到(理想情况下),写一个程序,既能像本地应用程序一样运行,也能通过浏览器来使用,甚至可以在手机上运行。这真是很Cool的一件事情:)
因为使用Ajax的缘故,浏览器的“backward”和“forward”按钮在Readcode.org上一直是不能工作的。这对看代码的人来说,是不能接受的。
还好,解决这个问题并不那么难,我只需要用javascript在每次click一个href的时候记录当前页面状态,然后就能实现一个简单但是足够好用的History功能了。
现在,history功能结合上google gears提供的离线浏览,一个快速方便的看代码工具就基本完备了:)
开源的一个好处就是让大家能看到一些优秀的源代码,深刻的了解一些计算机原理。Sqlite就是其中之一。
Sqlite是一个轻量级的c库,实现了一个自包含的,可嵌入的,零配置的SQL数据库引擎(翻译自其网站首页:
SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine。)近来,Sqlite以其独具一格的特性,在很多领域里得到了广泛的应用。
Sqlite的代码简洁清晰,注释极其详尽,看过之后感觉以前在学校学的那点数据库皮毛得到了质的提升:) 大致说来,Sqlite分为3个模块(我姑且这么一分,大家自己去看吧):
- Btree模块:这个模块实现了一个基于磁盘存储的,支持多种高级特性的BTree。该模块是数据库的基础,大家大可以直接使用该模块,实现自己的数据库,当然就不支持SQL语句了。
- SQL语句编译优化模块:从SQL语句生成能在SQL虚拟机上执行的目标代码
- SQL虚拟机:真正在Btree上执行操作的就是它了。
我只花了点时间看了下Btree的实现,顺带因为好奇,写了一个小程序解读sqlite数据库文件的内部结构,了解了数据库的一张表映射到Btree上是什么样的查找结构,很有意思哦。
恩,强烈推荐大家阅读Sqlite的源码。当然,看代码已经很简单了,只需要点这里就OK了(嘿嘿,赤果果的广告):
www.readcode.org/code#sqlite-3.4.1
Reacode.org这段时间以来又增加了些功能,自己感觉比较好用了。现在自己有时候要查看下代码就用这个网站,还是很顺手的。大致的功能包括,
- 支持Google Gears,实现离线浏览,经常看的代码就不用再从网站上取了。
- 文件搜索
- 各种Identifier(函数/变量)的定义、引用的查找
- 最近查看的文件
- 写注释
- 书签
还在设想其他一些功能,最主要的就是call trace,目标是在代码阅读的过程中,随时可以看到自己是从哪里到这里来的,会走到哪里去。不过具体如何实现还没确切的想法。
另外,把建站软件整理好之后,会提供下载。
恩,就这么多,大家用用吧,希望能看到大家的意见建议 
弄了一个网站,www.readcode.org。
可以在上面看代码,为代码写注释,查看别人写的注释。下一步要做的功能是书签,笔记功能。然后是函数调用分析。
另外,注释信息最终是要存放到GoogleBase上,这个功能有时间也给做了。建站软件打算以开源的方式发布,不过现在还没时间整理,是用Ruby on Rails做的。
恩,大家去看看吧:
ps:有精通CSS的高手把我重新设计一下layout吧:)
前些天发现了这个工具,推荐给同事,据他说很好用,很强大。
http://www.swig.org/
另外有个很简洁的教程:
http://www.swig.org/tutorial.html
可以很方便的从各种脚本语言包括python,perl,ruby,tcl以及java,C#调用C/C++编写的模块。
有些时候,你不得不做一大堆事情,结果发现有很简单的办法。
我在blogger.com上开了一个博客,发布到我自己的一个虚拟主机上。几天前blogger.com还能向我的FTP上传rss和atom两种格式的feed。而我的这个网站的首页是要从rss格式的feed中提取内容,重新生成的。
前天晚上我写完一篇帖子,昨天一早虚拟主机的cron发信告诉我生成首页失败。一检查,发现blogger.com生成的rss.xml和atom.xml都是ATOM格式的了。对此我明智的采取了以下措施:
1.试图利用atom生成首页,可惜我所用的脚本语言,ruby,还未能提供atom的parser,失败
2.在blogger.com上找配置选项。 失败
3.在blogger.com的讨论组上叫骂,未果
到此,已经耽误了昨晚的全部时间,拖到今天早上了。然后就发现了这篇文章,然后一切就很简单了!
http://atom.geekhood.net/