自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xen

  • 博客(31)
  • 收藏
  • 关注

发布Bamboo 1.0,一个 lua MVC web开发框架

今天非常高兴,历经接近1年的开发,终于发布了 Bamboo v1.0。它是一个MVC,融合了非常多的创新理念在其中。以下是发布邮件。==========================================================Dear friends,I'm glad to announce the first release of Bamboo ...

2011-11-11 10:03:09 264

Mongrel2服务器配置及控制

[size=large]介绍[/size]Mongrel2是一款面向现代Web应用(Web 2.0 以及以后)而设计的Web浏览器。由干净的C语言写成,(目前)在Linux(及类似的Unix)系统上运行。它支持HTTP, Flash sockets, WebSockets, Long Polling,异步等技术,基本上走在当今Web服务端技术的最前沿。主页[url]http:/...

2011-08-10 17:00:00 198

Bamboo中的字段描述表

Bamboo中的模型定义的时候,需要为每个字段设置一个字段描述表。这个表由一个个的属性和属性值构成。将已经定义的属性和属性值罗列如下:[table]|属性|取值|说明||newfield|true or false or nil|标明此字段是否是新字段(相对于继承字段来讲)||required|true or false or nil|标明此字段是否是必须的,常用于表单提交...

2011-07-18 15:33:05 184

Bamboo安装指导

以Ubuntu 10.04为例。从前到后依次执行。[size=medium]安装gcc等基本编译环境[/size]apt-get install build-essential[size=medium]安装lua解释器,头文件,基本库,luarocks[/size]apt-get install lua5.1 liblua5.1-0 liblua5.1-0-dev luar...

2011-07-18 14:45:41 715

Bamboo开发者邮件列表

之前在Google Groups上建了一个邮件列表,可以G。F。W着实可恶,访问不方便,严重影响社区建设。现在更换个新的邮件列表(这个邮件列表系统又是mongrel2的作者Zed Shaw的一个杰作):bamboo@librelist.com加入方式: 向bamboo@librelist.com发送一封邮件,邮件标题和内容随便写。片刻后,你应该会收到一封确认邮件。你需要回复...

2011-07-18 11:40:03 283

Emacs 编程技巧积累

* 进入一个文档后,要切换mode怎么办?比如我编辑一个index.html文件,进入后默认是html mode,现在想在里面写写javascript代码,想把它切换成javascript模式,怎么办?答:M-x javascript。后面这个单词不用太费力地去记。输入前几个字符,然后猛击tab键数次,就会出现提示窗口,你参照着写就行了。...

2011-07-15 19:24:37 91

Bamboo对Upload的支持

Bamboo Web框架对上传提供了方便的接口。目前支持的特性如下:[list][*]它同时支持html4和html5上传,且用统一接口处理;[*]同时支持单文件和多文件上传;[*]目前仅支持小于指定值(在mongrel2的配置文件中设定)的文件的上传,且是放在内存中一次性处理(后面视需求考虑支持大文件上传,大文件上传在mongrel2中已有很好的支持);[*]上传的文件会...

2011-07-15 15:44:37 122

使用bamboo测试框架

Bamboo测试框架好用是好用,但是有一套规则,必须按这套规则写,才能顺利地跑起来。下面是几大规则:[list=1][*]测试代码必须放在app目录的tests目录下;[*]测试代码的文件必须取名 *_tests.lua;[*]测试代码文件必须引入测试框架:local testing = require 'bamboo.testing';[*]测试代码中使用telesc...

2011-07-12 10:40:32 491

Bamboo的测试框架的设计

先说一下对Tir的测试框架的研究成果:[list][*]使用telescope作为测试框架的基本工具;[*]在确保mongrel2作为web server这一块绝对没问题,因此,不再对从浏览器到mongrel2的连接这一过程进行测试,也即是这个测试框架不走socket, http协议这一块;甚至也不测试mongel2到handler这一过程,因为这一块由mongrel2-lua库完成,...

2011-07-08 21:54:43 341

将emacs设置为ubuntu console的默认editor

很简单,一个命令搞定:update-alternatives --config editor然后,按提醒操作就行了。

2011-07-07 19:48:47 97

在服务器上配置redmine与nginx配合

想的是用nginx作前端代理,后面的事情就交给ROR及自己的一套服务器去处理。这样避免nginx配置的复杂性。装好redmine后,再装个mongrel服务器。apt-get install mongrel然后,进入/usr/share/redmine/(一般装在此目录下),执行ruby script/server -d -e production便以默认方式启动了...

2011-07-07 15:25:57 731

Bamboo的custom操作API

为了在封装性与灵活性之间做出权衡,Bamboo设计了一套完整的的自定义k-v存储接口,用户在特定情况下,可以方便地使用它们。先列出API吧,再讲解一下设计和使用。[table]|API method|说明||Model_name:setCustom(key, val, st)|创建一个custom key,将val值写入此key中。val可以为string, list, s...

2011-07-06 21:16:46 269

Bamboo的redis封装层API

先扯一下Bamboo与Redis的关系:Bamboo对redis目前严重依赖,但是无需担心无法使用其它数据库。Redis可以看成是一个中间层,后端使用其它机制来实现数据库的持久化。Redis的指令虽然已经很好用了,但如果要上层逻辑直接使用,还是很复杂,容易出错。于是,对Redis的封装还是有必要的。在这个封装中,不是简单的redis的指令的包装,还有一些策略性的东西放在里面。[si...

2011-07-06 18:07:16 120

Bamboo存储抽象层与外键关系的讨论

Bamboo的存储抽象层主要在model.lua中实现。本文仅从使用的角度来说明Bamboo中的存储抽象层的内容。建立模型时,bamboo的域的属性由域属性表描述。根据是否是外链到其它对象的角度,可以把域分为两种:普通域和外键域。而这两者,是由如下两个属性名称来区分的。[size=large]foreign[/size]外链模型名称,如果这个属性不存在。则表明是普通字段。如...

2011-07-06 15:59:48 78

jquery插件之DataTables

DataTables(http://www.datatables.net/)应该是我到目前为止见过的,功能最强大的表格解决方案(当然,不计算其它整套框架中的table控件在内)。先把它主页上写的特性翻译罗列如下:[list][*]可变长度分页;[*]动态过滤;[*]多列排序,带数据类型检测功能;[*]列宽度的智能处理;[*]从多种数据源获取数据(DOM,js Arr...

2011-06-28 16:21:56 84

jquerytools之overlay

所谓overlay,就是浮层。就是那种在当前页面弹出的一个新的层。它可以作为对话框的容器、图片展示容器、播放器容器等等。废话少说,直接切入正题。使用:[code="javascript"]// select one or more elements to be overlay triggers$(".my_overlay_trigger").overlay({ ...

2011-06-28 15:11:48 115

jQuery Tools插件,是套很好的东东,从这里开始分析研究下它

我看国内目前(2011-6-28)还没有对其文档进行中文化,所以在这里,结合自己的理解跟经验,写一些文档放这儿吧。下面开始。------------------------------------------------------------------jquerytools的设计的哲学是“是工具,不是策略”。即只给你榔头,和使用榔头的方法,至于如何用来完美地修好一栋房屋,那...

2011-06-28 10:34:33 204

分类楔子

最喜欢的几个是gedit, geany, editplus。不过都有很大局限啊。用了windows下和linux下的大部分编辑器,准备尝试下emacs了。也用了很长一段时间编辑器之神vi。不过实在不习惯,理念不一样啊。严重反感分模式编辑的设计。理念不一致,再妥协也无法让我喜欢上它。好了,现在,就是神之编辑器emacs还没有玩过了。好吧,试试吧,看能不能皈依此大神。理念貌似挺...

2011-06-28 10:30:47 124

如何写一个JavaScript模块

仅仅写一个JavaScript模块很简单。只需用到对象Object,即{}。下面直接举例。[code="javascript"]var legerobot = { variable_a = ..., variable_b = ..., variable_c = ..., ... func_a: function (p...

2011-06-19 21:44:27 129

Bamboo 命令参数格式及命令集

Bamboo Web框架自带一套命令行工具,方便做代码的自动生成、数据库的管理。Bamboo web命令行统一支持三种参数列表形式:[code="lua"]1. 列表方式:bamboo cmd param1_value param2_value param2_value ...2. key-value方式:bamboo cmd -param1 param1_value ...

2011-06-19 21:27:14 804

bamboo query & query_set API

get和filter是model API中两个重要的函数,用于根据给出的条件获取或过滤符合要求的实例。这些条件必须写在一个query表里面,query表类似如下形式:[code="lua"]model_obj:filter { foo=bar, x=lt(1000), timestamp=gt(100000) }[/code]filter返回一个query_set,即对象的一个特殊列表...

2011-06-13 18:17:06 77

bamboo model API

这里是Bamboo的最新版本Model的API文档。本文档中的所有类方法都可以供所有继承自Model的类使用,所有实例方法可供所有这些类以及类的实例使用。类方法通过name获取id[code="lua"]model_obj:getIdByName (name) 通过name获取对应实例的id,并返回id(仍然为字符串)name: 实例的名称[/code]...

2011-06-13 16:28:08 217

lglib概览

lglib为lua提供了很多扩展。加载lglib后,它完成以下几件事情:1. 扩展了lua标准库中的string, table, io三个库;2. 增加了一些数据类型;3. 增加了一些辅助函数。第一个工作,就是把lglib.string, lglib.table, lglib.io三个模块中的接口注入到lua标准库中的string, table, io三个名称空间下。...

2011-06-12 14:59:43 133

lglib.io API

此模块中定义了一些io操作方面经常用到的一些辅助函数此模块无需手动引入,加载lglib后,会自动将下面的接口注入lua的io名字空间下加载文件,读取所有内容[code="lua"]io.loadFile(from_dir, name) 返回文件内容from_dir: 文件所有目录name: 文件名[/code]加载文件中的某些行[code="lua...

2011-06-12 12:50:45 70

lglib.http API

此模块中定义了一些http方面经常用到的一些辅助函数引用模块[code="lua"]local http = require 'lglib.http'[/code]将html文档进行转义(将&号, 号替换成对象的html实体字符)[code="lua"]http.escapeHTML(s) 生成一个新串返回s: html文档字串[/code]解...

2011-06-12 11:59:10 67

lglib.oop 简介

lglib.oop是一个特殊的模块,它用于给现有lua基础提供一套好用的面向对象机制。此模块中定义了一个对象Object(用table实现的)。这个对象是一个最基础的原生对象,任何其它的类和对象都是从这个源头衍生的。它的地位跟java中的Object地位一致。Object定义了几个属性和方法:属性:__tag : 每个类的定义都需要加入此属性,以标识类的名字和继承关系...

2011-06-12 11:48:41 102

lglib.set API

Set 继承自 Dict加载lglib后,会在全局空间注册一个全局变量Set,它是所有集合实例的原型,可以直接使用。定义一个set[code="lua"]Set()示例:local set_a = Set()local set_b = Set{ 'x', 'y', 'z' }[/code]向set中添加元素[code="lua"]set_obj:...

2011-06-12 11:17:54 64

原创 lglib.table API

lglib table库是对lua基本table库的扩展判断table是否为空[code="lua"]tbl:isEmpty() 如果table为空,就返回true;反之,返回false。table为空的标准是即没有list部分,又没有dict部分。[/code]将table分离成list部分和dict部分[code="lua"]tbl:takeAparts() 返...

2011-06-12 10:29:24 62

lglib.string API

字符串库默认支持UTF-8编码字符串连接运算[code="lua"] + 加载lglib后,可以使用 'a' + 'b' 的语法拼接字符串,返回结果是 'ab'[/code]返回字符串长度[code="lua"]str:length()[/code]使字符串首字母大写[code="lua"]str:cap() 返回一个新字符串[/code]...

2011-06-12 10:13:36 47

lglib.dict API

前面加入了List数据类型,现在我们继续加入Dict数据类型。[b]全局对象Dict[/b]lglib中,定义了一个全局对象Dict,它就是所有dict实例的原型。使用require 'lglib'后,这个对象可以直接使用。此对象继承自lua的table结构。[b]生成一个新的dict[/b][code="lua"]local dicta = Dict()local...

2011-06-11 15:56:29 90

lglib.list API

由于lua中没有原生的list对象类型,而只有(无所不能的)table。习惯了python编程的人很可能会觉得不适应。平心而论,Python在这一点上的设计确实更傻瓜化更清晰一点,好用之处体现在两点:[list][*] 直接用[]来生成list对象,在代码中显得很清楚;[*] 有大量方便好用的函数能操作在list对象上,非常方便;[/list]因此,我们希望在lua中,...

2011-06-11 15:37:30 43

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除