JavaScript Date2012-09-11今天工作中遇到JavaScript的Date计算和格式化的问题,顺便整理了一下JavaScript中的Date的相关API,试做简单记录,代码均在Node.js上测试通过。 … more
[Rails代码解读]Rack在Rails中的使用2012-08-01今天工作中遇到Rails的一个问题,最后发现是使用的一个叫Rack包版本不兼容Rails2.3引起的,虽然问题很容易就解决了,但是Rack这个包是干什么的却引发了我的兴趣,经过查资料阅读代码,写了这篇博客。Rack是一个中间件,介于Web应用程序和Web服务器之间,为所有的Web服务器都提供了统一的接口,使用Rack构建的Web应用程序能简单换到其他的Web服务器上,因为Rails在底层用到了Rack,所以我们可以在开发的时候使用Webrick,然后通过fastcgi或者ruby_mod发布到nginx或者Apache。 … more
[Rails代码解读]ActiveSupport::Concern2012-07-23模块是方法和常量的集合,模块和类一样,其中的可以包括两种方法:实例方法(Instance Method)、模块方法(Module Method)。当一个类混入(Mixin,本文中称混入)一个模块时,模块中的实例方法会成为该类的方法(具体是类的类方法还是实例方法,取决于是include还是extend)。但是模块方法会被忽略,而且,模块方法可以虽然定义在模块中,但是可以直接调用。 … more
JavaScript中的this2012-07-08JavaScript是一门极为灵活的语言,其神奇之处在于其面向对象的实现方式和函数。而函数往往又认为是JavaScript中最Amazing(或者翻译为惊艳?)的地方。JQuery这样强大的库正是建立于JavaScript灵活的函数之上的。而要正确的使用JavaScript也必须对对象和函数有更深入的了解,笔者在开发JQuery插件的过程中,遇到了很多疑惑,进而得到了一些关于对象和函数的心得,希望能对读者有用。… more
用EasyMock进行单元测试:什么是EasyMock2012-06-29我们都知道单元测试,也常常写单元测试,但是对于什么是单元测试却没有仔细思考过,大概觉得创建一个类继承TestCase,然后写一些assert语句就算是了吧。当然我也常常遇到有人认为在Java类中写main函数也算是单元测试的。总之,归结到一句话,我们可能觉得写了一段代码对我的代码中的一个方法进行了验证,就算是单元测试了。一直到前不久之前,我也算是这大部分人中的一个。由于我之前写SSH比较多,因此我也想当然得认为要测试一个DAO,就必须往数据库里面插入一些数据,然后调用DAO,看能否返回正确的结果这是单元测试。 事实上,我错了。 … more
Vim的Buffer/缓冲区2012-06-28顾名思义,Buffer是内存中的一块缓冲区域,用于临时存放Vim打开过的文件。用Vim打开文件后,文件就自动被加入到Buffer队列中,而且Buffer中永远是最新的版本,修改文件后还未保存时,改动就存在于Buffer中。打开过的文件会一直存在Buffer中,除非手动的删除(bw命令,不过很多时候没这个必要)。在阅读或者编写代码的时候,会经常在多个文件之间跳转,很好的利用Buffer会当然的make your life more easier。' … more
用MySQL Procedure同时像级联表插入数据2012-04-17一个月以来都没写博客,这篇博客的目的是提醒自己继续写下去,顺便记下笔记,看官若无兴趣请直接飘过。级联表是关系数据库存储领域模型(Domain Model)中一对多关系的不二法门,比如“学生”和“班级”,实在是常用得很。创建表时建立外键关联,查询时使用inner join或者多表联合查询非常便捷。不过插入数据则相对麻烦,因为关键关联的缘故,需要先插入主表,然后再插入从表,如果使用auto_increment主键,在插入从表之前必须获取刚刚插入主表时生成的ID。… more
Linux上diff命令详解2012-03-05diff程序是linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件(本文中的a.c、b.c可以理解为两个版本的同一个文件,b.c是在a.c的基础上的修正版)以找到改动的地方。diff在命令行中打印每一个行的改动。最新版本的diff还支持二进制文件。diff程序的输出被称为补丁(patch),因为unix系统中还有一个patch程序,可以根据diff的输出将a.c的文件内容更新为b.c。diff是svn、cvs、git等版本控制工具不可或缺的一部分。… more
X Window System简介2011-12-151984年,MIT开始研究X Window System,用于在Unix上支持GUI界面,X Window System研究时是作为应用软件进行开发的,而不是操作系统。而且X Window System是作为架构规范进行研究,因此需要人和组织对其进行实现和包装(和linux一样,要有发行版)。1987年,X版本更新到X11,这一版有非常明显的进步,因此后面X Window System也被称为X11,X11有通过网络功能访问GUI界面的功能。… more