本周有一位新来的兄弟,一来就给我们展示了他自己DIY的穿戴式音响,直接嵌在卫衣的帽子里,喇叭也经过特别挑选,音质非常棒。穿着它跑步散步什么的,效果巨佳!并且可拆卸下来不影响洗衣服,希望把它产品化中。。。 image

其后姗姗来迟的NalaGirut终于送上他的干货,由于技术太深,连投影仪都怕了,直接不工作了。。。为此我们只好搬到柴火门口用大电视来做presentation。 image

image

image

在SUSE公司工作的NalaGirut前辈为我们讲的是一个非常轻量级的web服务器Artanis,为啥去这个名字?因为黑客们都认为会玩Word Play是一件很sexy的事情啊。这是对Ruby著名的微型web框架Sinatra的致敬,把它倒过来写便是Artanis了,这种翻转的单词在英文里叫Palindrome。

这个Artanis的项目是为了Guile社区的Potluck项目而做的一个小东西。关于Potluck的简介,NalaGirut的介绍是这么写的:

***为了庆祝Guile2诞生,每年初举办一次hacking盛会,每个人都可以自由参与,在1~2周内做一次quick hack(要从0开始哦),把自己认为最炫最牛的技巧展现出来,然后做成一个足以惊艳的项目发布出来。最终的奖励是,你可以获得其他hacker的赞美——对于每个patch都要精雕细琢搞不好还好被“羞辱”一番的GNU社区来说,praise from real hackers一直是一种荣耀。

由于这个web服务器是用很抽象的LISP语言写的,基本上能看到的就是数据的抽象包含很多括号的操作,在场许多童鞋表示看不懂,不过对于有服务器编程背景的人,就能够大致理解他的想法。核心代码就只有300行左右,我特意问了一下他这核心代码都包括什么,原来有对HTTP不同method的定义啦(restful),url routing啦,模板渲染等等。写这个项目的另一个原因是据说国外很多大学里的CS学生学编程都会从LISP学起的(确实很适合学习编程抽象这种很纯粹的东西),却苦于现在很少人用LISP而缺乏可以练习的环境,现在就可以提供个练习LISP语言的场景给他们了。

这是是一段Hello World的代码:

(get “/hello”   (lambda (rc)     (response-emit “hello world!”)))

它就相当于是开了服务器之后访问url“/hello”,然后服务器会返回一个“hello world!”的内容。get是方法lambda是handler的定义,rc是request context,response-emit是指往response输出里塞该段字符串。是不是很简洁呢?有兴趣的话可以到项目的github地址深入研究一下。

(特别提一下,NalaGirut本次做slides的软件叫pinpoint,在Linux下跑的,不像powerpoint那么重量级,唯一的麻烦是要习惯用标记语言来写。。)

深圳DIY官方网站(由于放在sourceforge上可能要翻墙。。): http://www.szdiy.org/ 特别鸣谢柴火创客空间提供活动场地: http://www.chaihuo.org/

		分享: