Ruby 语言 思想驱动生活

Ruby,Rails,编程是一种乐趣。

Japan Ruby Conf 总结(非正式)

1.主要话题
YARV, JRuby, Rails, 企业开发
未来会很好,druby很重要(不少项目用到了,估计到企业级别的应用更是),Jruby会很火
2.关键字:[A-Z]DD
MDD不是模型驱动开发,这里的M是mascot(吉祥物)的意思。
很多演讲者或者项目都添加了一些卡通的吉祥物。
  演讲的时候主席台上是有两个投影仪,一个是显示幻灯,一个是显示IRC,带了电脑的可以登录到IRC在线交流,大会中的爆笑话题多数是从IRC里出来的。 日本人喜欢漫画,还有游戏,从这次大会就可以看出来。很多话题都是和游戏有关的,PS3,wii,FamilyCon等。还有一些演讲就是用wii的遥控器来控制的。
3.NoRuby,NoLife
发的书包上是这么写的。 总觉得有点夸张,如果说with Ruby,more Lift比较合适。

JRuby的开发者穿的T恤后面则是include java,不过不是他们演讲那天穿的。Sun发的是一块戒指形状的糖。
4.Mac 电脑
很多人都是用的Mac的电脑,不愧是资本主意国家啊(笑)。
非常炫的效果,害得我也想买一个,不过没钱。
5.From Java To […]

Japan Ruby Conf 2007 第一天(前半)

日本名字叫日本Ruby会议,总感觉这个名字有点怪。
地点秋叶原旁边,新御茶的水,人数400以上,女性10人以上。据说今年的RailsConf的1400人中没有女的参加(?真的)。
其中使用Rails工作的大概1/3。
使用MacBook的有近一半。
早上提前20分钟就到了,9:30进场,10点开始。开始的时候matz还没到。
每个座位上都放了一个手提袋,里面有一些赞助公司的小礼物,宣传小册子等。Sun的是一块糖。
第一个是sasada,yarv的作者,现在还是东大的大学院生(中国的研究生)
比较简单介绍了一下,技术细节没讲太多,涉及到的有concurrency,fiber等。
另外澄清了一个谣言,就是去年有人说他要去的公司是sun。
第二个安定版ruby的现状和将来。演讲者的名字Googlepinyin还打不出来
主要说了1.8.5和1.8.6的现状,主要是bug修正等
估计到了1.8.7和1.8.8之后就不会再继续开发了。
第三个出场的是青木郎峰,写了不少书,包括RHG,Haskell 编程
主要是manual刷新计划。
第一第二阶段已经完了,
本来预计今年8.31第三阶段完成的,但是目前这个最后阶段进度只有2%,照这个速度,要到2050年才能完成。
第四个
今天见到Charles Nutter 和 Thomas Enebo了。他么确认了jruby1.0 release了 。现场一片掌声。
他们两个还演示了一下2个例子
1.jruby
jirb,jruby的irb,具备了自动完成功能,就是linux下的输入一部分命令然后按tab键的自动完成。
演示了在ruby中使用swing的frame,button和awt的actionlistener
还有演示了java的thread的例子。
2.jruby on rails
一个使用jdbc的web例子。
而且能打包成war文件,放在j2ee服务器上(这点比较强)。
上午结束。
下午1点开始是matz的主题演讲,当时真想上去握握手。
主题是2007年的Ruby和将来
Ruby开始,1993,2。
1.9.1 2007的圣诞节。
2.0,不好说,估计真的要
然后是企业对Ruby支持,包括sun(JRuby),ms(IronRuby),Thoughworks(24小时技术支持,雇佣xruby的中国人开发者)
据说twitter的负荷达到11000 req/sec
剩下的有时间再写。

JRuby1.0 release了

http://dist.codehaus.org/jruby/
最新的当地时间7号。
虽然还没宣布,不过好像可以下载了。
C:\jruby-1.0.0RC3\bin>jruby.bat -version
ruby 1.8.5 (2007-06-02 rev 3812) [x86-jruby1.0.0RC3]
C:\jruby-1.0.0RC3\bin>cd ../../jruby-1.0
C:\jruby-1.0>cd bin
C:\jruby-1.0\bin>jruby.bat -version
ruby 1.8.5 (2007-06-07 rev 3841) [x86-jruby1.0]

19 Rails Tricks Most Rails Coders Don’t Know

编写高效好看的rails代码的tips,原文:http://www.rubyinside.com/19-rails-tricks-most-rails-coders-dont-know-131.html

fiber

关于新版本Ruby中的多线程的问题。
fiber microthread coroutine concurrency这几个名词都被使用,可能最常用的会是fiber。
fiber属于非抢占式(non-preemptive)类型。
引用msdn文档:A fiber is a unit of execution that must be manually scheduled by the application
意思就是说必须手动调度的一段可执行单元。
fiber运行在线程的上下文中,一个进程可以调度多个fiber。线程一般要依靠内核的线程调度来暂停或者重启其它线程,而fiber则自己控制自己,启动其它fiber等。
Fiber和coroutine
这两个概念非常相近,一般来说,coroutine是程序语言级别的结构,而fiber是系统级别的结构。
WIKI条目:
1 Fiber (computer science)
2 Coroutine
MSDN文档:http://msdn2.microsoft.com/en-us/library/ms682661.aspx

Rubricks an open source CMS

基于rails的开源的CMS,应该是个日本公司做的。
主页:http://rubricks.org/index_en.html
主要功能:news,toto,bbs,用户和权限管理,menu管理等。
它使用了‘Spinelz’ ,一个提供了很多AJAX功能的JAVASCRIPT库。

Top 12 Ruby on Rails Tutorials

原文:http://www.digitalmediaminute.com/article/1816/top-ruby-on-rails-tutorials
如果是入门的话,可以看看。
这里只保留了连接。

日本Ruby会议2007

主题演讲:
Matz
Dave Thomas
发表者
ささだ こういち
卜部 昌平
青木 峰郎
Charles Nutter
Thomas Enebo
立石 孝彰
桑田 誠
arton
朴 芝印
Tim Bray
関 将俊
後藤 謙太郎(ごとけん)
高井 直人
John Mettraux
篠原 俊一
加藤 究
永井 秀利
武藤 昌夫 (むとう まさお)
nyasu
藤本 尚邦
舘野 祐一(secondlife)
大林一平(ohai)
原悠(yhara)
須藤 功平
えと こういちろう
难道那个姓朴的是韩国人。

【翻译】YARV源码读解

YARV源代码解读,原作者hzkr,发表于其blog上。http://d.hatena.ne.jp/hzkr/19000101。
共15回,历时近5个月(2006/10/27~2007/04/02)完成的。RHG有人在翻译成英文和中文的,YARV的源码阅读还没有人写过(个人所知范围内)。2007年圣诞的时候将要发布的Ruby1.9将会集成YARV(那时候应该不再算是another了吧)
共15回,以下是翻译计划(和实际完成情况),共计需要两个月左右,挺长的啊。
由于本人水平比较差,如果看的实在不通顺什么的,还请不要太见怪了。
第一回(2007-4-5,已发)
第二回
第三回
第四回
第五回
第六回
第七回
第八回
第九回
第十回
第十一回
第十二回
第十三回
第十四回
第十五回

【翻译】YARV源码读解(1)

YARV是面向对象脚本语言Ruby的一个实现。和普通的Ruby不一样,它的特点是把脚本转换成虚拟机上的bytecode,能高速执行。
最近,Parrot,CLR,JavaVM等基于虚拟机的编程语言好像比较热门。想着能深入了解某一种就好了,于是选择了YARV。另外,我连10行的Ruby都没编过,在学习Yarv的同时,也能顺便学习一下Ruby。
1.资料
现在时点(2006/11/)Yarv的最新版本是0.4.1。为什么没有从cvs下来最新的代码呢?因为手里没有bison(GNU版的YACC),所以就偷点懒了。
可以参考的网站
YARV: Yet Another Ruby VM
Yarv的老家。源代码的下载,和Yarv的架构设计文档等。
YARV Maniacs
Rubyist Magazie的连载文章,介绍Yarv的。Yarv的作者写的,介绍了在源代码上如何实装等的一系列文章。
Ruby源代码完全解说
青木峰郎写的Ruby源代码解读的书。除了Yarv核心以外,其它的Ruby等内容,可以参考这本书
main @ main.c
main函数中初始化完了后,就可是执行代码了。这里看一下这之前的一些流程。先来看一下main函数。Ruby/Yarv就是从这里开始执行的。去掉依存于环境的#ifdef等先不管,简单的main函数就是这个样子:
int
main(int argc, char **argv, char **envp)
{
    {
        RUBY_INIT_STACK ruby_init();
        ruby_options(argc, argv);
        ruby_run();
    }
    return 0;
}
最初的RUBY_INIT_STACK是GC所需要的,记住stack开始位置的宏。所做的事情主要的就是把stack的开始地址赋给变量rb_gc_stack_start(IA64系统好像是别的变量)。宏定义如下:
#define RUBY_INIT_STACK \
    VALUE variable_in_this_stack_frame; \
    ruby_init_stack(&variable_in_this_stack_frame);
这样,在stack声明了一个变量variable_in_this_stack_frame,并把把这个变量的地址传给了ruby_init_stack 。 ruby_init_stack中包括对stack的增长方向检查等稍稍复杂的工作,抛开这些和当前讨论有关的内容简单来说如下面这样:
void ruby_init_stack(VALUE *addr)
{
  … 略 …
    […]

« Previous Entries  Next Entries »

Locations of visitors to this page


Recent Comments