2006年06月21日

从ajaxcn醒来那里淘到的:
http://ajaxcn.org/comments/start/2006-06-08/1
http://domscripting.com/blog/display/41

一个在 旧MVC代码结构上 增加AJAX 特效的js库:progressive enhancement and graceful degradation
它也基于prototype,思考它与RJS模式的区别(或将来的融合)……

小记

2006年06月17日

http://forum.javaeye.com/viewtopic.php?p=126052

找到了:


http://rubyforge.org/projects/rubylexer/



这个ruby库可以解析ruby源文件 成 一个个token 并可遍历。


原以为太复杂自已玩不转,试了试还可以。下面是解析出module结构树的代码:



ruby代码: 



require "rubylexer.rb"


f = open(‘d:\test\testrr6.rb’)


lexer=RubyLexer.new(‘d:\test\testrr6.rb’, f)



# module tree node


class ModNode


  attr_reader :children, :mod_name


  def initialize(mod_name)


    @mod_name = mod_name


    @children = []


  end


 


  def <<(child_mod)


    @children << child_mod


  end


 


  def dump(level)


    self.class.dump_level(level)


    print @mod_name


    print "\n"


    if not @children.empty? then


      for child in @children


        child.dump(level+1)


      end


    end


  end


 


  def self.dump_level(level)


    print ‘–’ * level


  end


end



need_capture = false # whether should capture next VarNameToken as module name


mod_stack = []


keyword_stack = []


root = ModNode.new(‘root’)


mod_stack.push root



# iterate tokens


until EoiToken===(tok=lexer.get1token)



  if tok.kind_of?(KeywordToken) then


    next if tok.has_end?.nil?


    if tok.has_end? == true then


      keyword_stack.push tok.ident


    elsif tok.ident == ‘endthen


      ident = keyword_stack.pop


      mod_stack.pop if ident == ‘module


    end



    if tok.ident == ‘module‘  then


      need_capture = true


      next


    end


  end


 


  if need_capture and tok.kind_of?(VarNameToken) then


    mod_name = tok.ident


    mod = ModNode.new(mod_name)


    mod_stack.last << mod


    mod_stack.push mod


    need_capture = false


  end



end



# dump the module tree


root.dump(0)






执行结果是:


引用:
root


–AA


—-BB


—-CC





3000行的watir行不行,很期待 Wink

————————————-

原先考虑过这种方式:


ruby代码: 



s = open(‘d:\test\testrr6.rb’).read


module XX


end



XX.module_eval(s)



ObjectSpace.each_object(Module) do |clazz|


   puts clazz.name if clazz.name.match(/^XX\:\:/) and not clazz.kind_of?(Class)


end





执行结果是:


引用:
XX::AA::CC


XX::AA::BB


XX::AA





d:\test\testrr6.rb 是待解析的ruby源文件。


对过滤出的clazz.name做下处理就会有收获,不过实在是…. 太土了 Sad

2006年06月13日
The fact is that I did not know how to understand anything. I
ought to have judged by deeds and not by words, she cast her fragrance and her
radiance over me. I ought never to have run away from her. I ought to have
guessed all the affection that lay behind her poor little stratagems.  Flowers are so inconsistent! But I was
too young to know how to love her.

—-《小王子》[法国]圣·埃克苏佩里著

 致我所有的朋友……祝願你們都能找到自己的另一半,他(她)給你的愛應是坦誠的、熱烈的、成熟的、無私的、曆久彌堅的、催人向上的,並帶給你激情和安全感,當然也是值得你拿一生去愛的。(何葉)
2006年06月11日

两个月前一度对水木周平的言论推崇倍至,哪料会有今天的失望 — 其实,也不是很失望,从一开始就意识到他的问题了,只是现在这个问题使它的内容几乎不值一看。也许我以前与人讨论,只是想减小其错误造成坏的社会影响吧。目前能偏激到观点无法立足,还会立错靶子,可谓黔驴技穷。难怪他的第一铁杆粉丝重楼小丫头都表达出失望:

近日读《撕响报》,看到神性的光在魔性的狂潮中忽明忽灭。
“天地混沌如鸡子,盘古生其中,万八千岁,天地开辟,阳清为天,阴浊为地。”

真正的魔,参悟生命之真谛,敢与天地争。
真正的神,感悟自然之奥妙,乃与天地合。
真正的人,兼具神魔二性,故立于天地之间。

唯独迷者,于苦难中挣扎不见出口与来路。
水木,我第二次问你,教众生入魔,于天地之争中化分清浊可好?呵呵。

唉。答案不给我也罢,知你定一意孤行。


个人认为,重楼观察问题的深入和客观程度还要高于水木,不过重于传统文化,难免有玄妙、混沌之感。

客观不流行,流行不客观,无奈。
呼吁那些智者空降到平民区(如猫补)普渡众生吧~
科学本复杂,这大概是 连严谨的草根学者都不愿空降 的原因。但是,你忍心藏在那个小众圈里享受短暂的安逸么?


2006年06月08日

python的Tuple之于List vs ruby的Symbol之于String

先看python

List的示例:
[person1,person2,person3,person4] #人员列表
Tuple的示例:
(name,age,birth) #某个人的属性

比较刚才的例子,List中各个元素的类型一样,元素个数发生变化时整个List语义不变。
Tuple中各个元素类型可能不同,每个元素表示单独的语义,去掉其中一个,整个Tuple的语义就发生变化。
想像有一张数据表格(如excel的员工表格),每行表示一个人,第列表示一个属性。那么由所有数据行组成的是一个List,而对于某一行而言,它所有属性组成一个Tuple。
Tuple也用在表达坐标点(x,y)、颜色值(r,g,b)等场景。
看官说了,你上面List中各个元素的类型一样,其实python的List元素类型不同也可以。不错,所以是凡Tuple可以应用的地方,全可以用List代替,如坐标可以表示为[x,y]。(但,平时应用中,我们又见过多少次List中元素类型不同的情况呢?–恐怕,那就该用Tuple)
其实,Tuple就是只读的List。当我们读它时,它跟List的行为一样,当试图写入时,就会抛异常。

def read_sth(var):
   print var[0],var[1]

read_sth( (1,2) ) #正确
read_sth( [1,2] ) #同样正确

def write_sth(var):
   var.append(3)

write_sth( [1,2] ) #正确
write_sth( (1,2) ) #抛异常,tuple不可写。


那么既然List能全代替Tuple,我们还给它分派一个语法做甚呢?
语义。有了Tuple,我们看到这样的代码,就不会想到它每个元素是平起平坐、可有可无、可以换着顺序玩的了:
coordinate = (1,2)
而且,遇到下面的代码,一般不会怀疑其容器的语义 而 紧张其类型问题、操作约束了:
scores = [98,97,99,87]


好,关于python的Tuple和List的讨论告一段落。


下面看ruby的Symbol和String。

String的示例:
s = "3+4 = " + (3+4).to_s
Symbol的示例:
attr_reader :age

String没的说,Symbol这个例子,是指一个类中加了age这个方法,所以:
class A
  attr_reader :age
end



class A
  def age
    @age
  end
end

相同。

如何做到这个效果的,是attr_reader的功能,抑或是:age的魔力?
由于没找到attr_reader的源码,我们自己写一个:

class Class
  def attr_reader1(name)
    self.instance_eval do
      define_method(name) do
        puts ‘it is in my custom method’
        self.instance_variable_get("@#{name}")
      end
    end
  end
end

class A
  attr_reader1 :x y
end

a = A.new
puts a.xy


注意上面代码,define_method和instance_variable_get都会接收一个String或Symbol来做添加方法或取数据成员值的工作。
那么,上面的答案有了,是attr_reader起了作用,准确的说,是define_method和instance_variable_get起了作用。

…….

后来在chinaonrails群组里讨论的很透砌了(Symbol and enum),没时间整理了。存下CFC同学的blog:

http://www.javaworld.com.tw/jute/post/view?bid=14&id=148469&sty=1&tpg=1&age=0

2006年06月06日

拐拐龙底咚~ – MM的话有道理 说:
http://img1.tianyablog.com/photo/2006/5/25/1619251_6942147.jpg
http://img1.tianyablog.com/photo/2006/5/24/1614888_6942147.jpg
http://img1.tianyablog.com/photo/2006/5/22/1610426_6942147.jpg
http://img1.tianyablog.com/photo/2006/5/21/1606178_6942147.jpg
http://img1.tianyablog.com/photo/2006/5/19/1597894_6942147.jpg
http://img1.tianyablog.com/photo/2006/5/19/1596294_6942147.jpg
http://img1.tianyablog.com/photo/2006/5/19/1596025_6942147.jpg
http://img1.tianyablog.com/photo/2006/5/19/1597141_6942147.jpg
http://img1.tianyablog.com/photo/2006/6/5/1660082_6942147.jpg
http://img1.tianyablog.com/photo/2006/6/1/1645277_6942147.jpg
http://img1.tianyablog.com/photo/2006/5/29/1633357_6942147.jpg
http://img1.tianyablog.com/photo/2006/5/28/1630701_6942147.jpg

天涯上非常真人的搞笑图


 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
yes. 我以前看到过几个。  宁财神开风气之先。郭芙蓉红遍中国。后起之秀,真人模仿
拐拐龙底咚~ – MM的话有道理 说:
嗯嗯! 有两个演技还真不错~
据说又有更新了,再去瞅瞅,后来的有点恶俗了。

 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
对了,朱德庸也是这类风格。
 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
粉红女郎漫画系列。
拐拐龙底咚~ – MM的话有道理 说:
去搜搜看。听说过人名,不知干啥地。

oh,原来是这个,不喜欢,电视剧实在看不下去

 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
主要特点是,利用词语的双关,浅浅地讽刺暴露一些世风人情问题。
拐拐龙底咚~ – MM的话有道理 说:
非常真人里多数是搞演艺的,难道是挤不进圈子里,另辟奚径?
 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
有可能。现在好像有这种风气。很多城市都有了这样的剧组,不再需要什么科班出身了,面向所有市民招收演员,表演本城市的一些剧目。
 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
估计都是一些都市短剧,

平民化,个性化,逐渐成为一种风潮。

拐拐龙底咚~ – MM的话有道理 说:

像是受超女成功的启示

 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
对。差不多
拐拐龙底咚~ – MM的话有道理 说:
演艺界的web2.0 …
 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
right. user centric. 

从道理上讲,表演,写作,这两个职业,都可以算作娱乐业,离最终市场(观众,读者)的距离很紧,中间没有任何中间环节。所以,这两个行业,是最不用按资排辈的,需要的只是能力

 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
距离最终市场越远,越需要资历。比如,官员这个职业。政绩,社会效果,都是很长时间之后,经过很多环节,才能显示出来,而且几乎无法评价。这就非常需要资历。
 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
销售,距离最终市场最近。也是依靠能力。
拐拐龙底咚~ – MM的话有道理 说:
研究自己的需求,推测社会的需求,做自己产品的最终用户。。。

 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
这是个口号。
 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
it not says anything. just a logo. 
 
您发送了一个闪屏振动!
 
 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
祈使句。
拐拐龙底咚~ – MM的话有道理 说:
嗯,还是有这个色彩,感觉XP在中国也有这种色彩。

 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
做技术的,距离最终市场远一些,衡量标准只能依靠上层权威人士的评价,而不能让市场直接评价。

拐拐龙底咚~ – MM的话有道理 说:
在想,业绩不能被直接作用者反馈,或反馈时间很长的,除了资质成为衡量标准,还会有什么。。。
 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
yes, 所以,只能靠资历。
拐拐龙底咚~ – MM的话有道理 说:
资历是什么?
以前成功的案例。。。

 whl,warren,http://xwiki.com.cn, really real reality, misterially misterious mistery 说:
圈子内的认同人情关系。
这类职业有个特点,既然不能由大众直接评价,只能由专家权威,小众群体来评价。
专家小众,必然存在话语霸权。大众无法进入这个评价系统

拐拐龙底咚~ – MM的话有道理 说:
这种选择也是不得已的最优的。

如果要保护专家的话语权。


2006年06月04日

不行就到fixdown瞅瞅,hiahia

http://www.unfish.net/index.php?serendipity%5Baction%5D=search&serendipity%5BsearchTerm%5D=confluence

http://www.blogjava.net/freddychu/archive/2005/11/05/18319.html