Sinatra + SQLite

七月 2nd, 2009

最近使用Sintra开发一些小应用,使用的是MySQL,之前使用过SQLite做数据库,于是决定将数据库更换为SQLite,这样更便捷,将几个文件和SQLite数据库文件打包一下就可以工作啦,更简单。如果做一下小的,尝试性的项目,何不更快捷一些。

一个逗号引发的问题

七月 2nd, 2009

写ExtJS的应用时,经常使用json的数据结构,如果你使用这样的代码 var userList = [ {}, {},]; ,也就是在数组的最后一个元素后面不小心添加了一个逗号,那么问题很严重,FireFox和Chrome是可以过去的,而IE完全不能工作,而且报告一些不知所云的错误提示,完全将你领到不知道什么地方去啦。在IDEA中,如果你有上述的错误,那么IDEA会提示你Unneed Comma,是不是很人性。
unneeded_comma.JPG

iBATIS站点改版

七月 2nd, 2009

订阅了iBATIS的开发者邮件列表,今天早上Clinton Begin群发了邮件,告知站点改版啦,之前的战斗比较简单,改版后为黑色基调,好像专业很多,可以说更像一个Blog,导航也明显很多,还是不错的。

Mini Shelf上线

七月 1st, 2009

我一直想做这个应用,虽然已经有Book Shelf应用啦,但是平时看到的一下ppt,cheat sheet,好文等,我看后都不知道丢到哪里去啦,于是需要一个小工具将这些Document管理起来,以后可以再看。图书用Book Shelf,代码用Snippet Repository,Document用Mini Shelf,总算全啦,工欲善其事,必先利其器。地址: http://mini-shelf.mvnsearch.org
mini-shelf.jpg

ExtJS & Google Gears

六月 30th, 2009

老实说,这两者真的非常般配,一个是JavaScript的RIA佼佼者,一个提升Web浏览器体验的明星,如果选择以JavaScript和Ajax为主的RIA应用,这两者配合绝对没有问题。ExtJS 3.0会带来更多的特性,Gears的其他特性可以保证构建更好的应用(http://activerecordjs.org不错的)。Apress推出了一本新书《Practical Ext JS Projects with Gears 》,有兴趣的可以尝试一下。

Sinatra电子书

六月 29th, 2009

早上在 http://rubylearning.com/blog/2009/06/29/20-rubyists-using-sinatra-do-you/ 看到不少Sinatra的fans,下面有一个链接,是关于Sinatra的电子书的,售价$4.75。考虑到组内还有其他人员向了解这个框架,我也不想再亲自介绍,还不如一本书说的明白,于是就买了这本书。书收到啦,不错的,介绍的非常仔细,入门的最佳拍档。
sinatra_ebook.png

Sintra的上传文件的处理

六月 29th, 2009

周末还在困惑,Sinatra如何处理上传文件的,早上看到一篇blog的介绍:
params[:logo_file][:tempfile]
其中logo_file就是file input的名称,返回值是一个File对象,接下来就可以操作啦。如果使用curl,可以使用下述命令上传文件:
curl -F logo_file=@header.jpg localhost:4567/logo_upload

Rack, WSGI and Servlet

六月 27th, 2009
  • Rack: provides a minimal interface between webservers supporting Ruby and Ruby frameworks,在Web服务器和Ruby(Ruby框架)之间提供最小的接口规范。
  • WSGI:Python Web Server GateWay Interface,Python的Web服务器网关接口,也就是说Python的Web Server都要遵循这个接口。
  • Servlet:Web Server端应用,担当客户请求和服务器端响应的中间层,当然还包含各种服务器端规范,Java的Web服务器都要实行这一规范。


对比这三者,出发点都是一样的,要规范Web Server和Web Framekwork之间接口,假设Web Server和Web框架之间的桥梁。Web Server实现了这个规范,是为了更方便框架开发者,框架开发者不再需要了解Web Server具体的API。Web框架遵循了这个规范,框架将可以部署到各种Web Server上,方便最终的开发人员。这样,我们编写的Ruby,Python和Java代码就更规范,更统一,更便于理解。Rack,目前Ruby大多数框架(如rails,Sinatra等)和Web Server(Mongrel,Thin等)都支持,这样我们可以在Ruby代码中利用Rack API来实现相关的功能。Python的WSGI是web server规范,当然很多的框架都用这一特性,如Django等。Servlet就更不用说啦,Java中的Web Framework(如Struts,Spring MVC等)基本都是利用Servlet规范实现相关的功能的。

Del.icio.us : , ,