• Ruby 不讲究切面编程吗? at 2012年08月01日

    看半天完全不知道你们在讲啥... 后来看 so 里面的例子,终于看明白了。真 Cool !!! 不过后面那一段有点太灵活太繁琐了。block 套 block ,又使用 block 来定义方法对象,block.call 竟然又返回一个 block, Oh, My God. 看着晕。

  • 怎么没人回复呢??

  • #3 楼 @doitian

    好象是 11 月 17 日?那好啊。你来向你请教请教 Lisp 的经验。

  • #33 楼 @rainchen

    果然我猜的没错了。谢谢。

  • #32 楼 @loddit

    谢谢指正不太严谨之处。我已经更正了。

  • #30 楼 @JeskTop

    如果是父子关系,应该在 has_many 之后声明 :dependent => :destroy 如果是多对一的引用关系,则应该声明 before_destroy, 确保只要有一个外键还在引用,就不可以删除主键。

  • #27 楼 @lgn21st

    今天来了 13 个人。讨论气氛挺热烈的。一直到咖啡厅打佯才走。中间还有个小插曲,一位女士带了个外国人来 Ruby Tuesday 招聘,聊了半天,并告诉了他如何在 Ruby-china 申请招聘贴。

  • 呼叫 @poshboytl at 2012年07月31日

    #29 楼 @poshboytl

    谢谢你的鼓励。其实讲了半天,感觉还是废话多。呵呵。反而 大部分想讲的东西,甚至都没有提及。

    我看社区视频都会有介绍。我是否还需要提供视频内所需的源码或者其他什么资源?这样我稍后可以准备。

  • #27 楼 @lgn21st

    没有啦。英语和技术是两码事儿,英语只是一个获取技术的工具和途径而已,听说 Matz 之前的英语也不咋地... 否则演讲干嘛用日语。哈哈

  • 视频看了一遍,最大的感受就是演讲的这个老兄,蹩脚的英文和我有得一拼... 我甚至觉得某些方面,我比他还强点,例如:某个单词他不会拼,我会...

  • 呼叫 @poshboytl at 2012年07月30日

    #27 楼 @poshboytl

    那怎么办呢?放不上去咋办呀。我可是辛辛苦苦录了三次呀。这还是完整的是第三次,刚开个头或者三五分钟掐断的,无数次了....

  • #20 楼 @lgn21st

    闲扯也行呀。社区里有的是话题呀!

  • #18 楼 @jinleileiking

    我刚来社区那会儿,你就整天喊着要换,还没开始行动?

  • #14 楼 @shin

    好像还未定吧,主要也就是大家一起交流。具体主题,需要问 lgn21st.

  • #5 楼 @lb563

    楼主的研究精神~~ 👍

  • #12 楼 @yedingding

    其实也无所谓,因为 lisp 实在是不熟,所以,Emacs 我向来的准则是:不管多丑陋,也不用管效率,只要实现功能就行...

  • #12 楼 @yedingding

    我觉得我的实现应该有点多余。

    你看下这个帮助:

    
    looking-at is a built-in function in `C source code'.
    
    (looking-at REGEXP)
    
    Return t if text after point matches regular expression REGEXP.
    This function modifies the match data that `match-beginning',
    `match-end' and `match-data' access; save and restore the match
    data if you want to preserve them.
    

    我觉得是不是应该有办法直接通过 match-end, match-beginning 来获取位置呢?

  • #12 楼 @yedingding

    谢谢你啦~ 呵呵,有时候就是需要这样提示一下,就可以搞定了。也许很简单,可是如果没有你的提示,我肯定要放弃了。

    下面贴出完整的版本,参考了你的代码。会自动判断光标两侧是双引号还是单引号,并自动切换。而且也添加了简单的边界判断 (不允许跨行), 你完全可以把他绑定到一个快键上。我直接绑定到Meta + '上了。只要在字符串上按下快键就好了。

    P.S. 原先你那个版本实际使用会有问题,如果本行没有,他会替换很多行之前 (或之后) 的引号,会把程序搞乱的。

    (defun swap-quote ()
      "Convert the double quote to single quote, per contra"
      (interactive)
      (if (and (looking-back "^.*\"[^\"\n]*") (looking-at "[^\"\n]*\".*$"))
          (save-excursion
            (progn
              (setq begin-pos (search-backward "\"" nil t))
              (setq end-pos (search-forward "\"" nil t 2))
              (perform-replace "\"" "'" nil nil nil nil nil begin-pos end-pos)))
        (if (and (looking-back "^.*'[^'\n]*") (looking-at "[^'\n]*'.*$"))
            (save-excursion
              (progn
                (setq begin-pos (search-backward "'" nil t))
                (setq end-pos (search-forward "'" nil t 2))
                (perform-replace "'" "\"" nil nil nil nil nil begin-pos end-pos))))))
    

    @skandhas 最近还在坚持用 Emacs 么?. 你也试试。

  • 大家好。咳咳,@zw963, 就是本人啦。因为@lgn21st临时有事,暂时就由我来招呼大家,我是 Ruby Tuesday 的绝对新人啊,希望兄弟们多多支持,多多捧场啊~

    P.S. 因为我是新人,可能很多人不认识我。如果同样是新人找不到地方,直接找一个上身穿白色 Ruby-china 体恤,下身穿短裤的胖子就好了。

  • 问个数据库设计的问题 at 2012年07月28日

    楼主头像是谁???

  • [求助] rails 路由混乱了 at 2012年07月28日

    这种问题,建议楼主先看看我最近发的那个帖子吧。

    如果连 RESTful 都搞不清楚,routes 你绝对是越看越糊涂...

  • #53 楼 @ywencn

    :thumbsup:

  • 呼叫 @poshboytl at 2012年07月28日

    呵呵。我不像你啊。使用 Geetoo, 我在 linux 下面的折腾是有限度的。

    刚刚我查了下内核编译选项,跟电源 ACPI 有关的选项都开啦. 刚刚看了下,Slackware 下面有 cpufreq-info 这个程序,Cpu 自动降频木有问题。

    HP, HP!! 你知道吗?HP 发热就是这么悲剧...

  • #22 楼 @bhuztez

    有关引入@成员变量,我记得当时学 Ruby 时还是有心得的。主要原因是 Ruby 无法区分这是一个变量还是一个方法调用,我倒是觉得引入了@实例变量,让编写一个类,变的更直观,更简单。

  • #22 楼 @bhuztez

    嗯。现在看起来清楚了。呵呵。牛啊,这花花肠子绕的。

    我的确忘记有 static 这回事儿了。那就没错了,Ruby 中的类变量,就是 C++ 中加 static 的成员变量。

  • #20 楼 @bhuztez

    看你介绍,看得晕晕乎乎,不过觉得很有意思。

    又,typeof(Anything) is-a type,所以

    type is-a type object is-a type

    我怎么觉得应该是

    又,typeof(Anything) is-a type,所以

    typeof(type) is-a type typeof(object) is-a type

    或者:

    因此,typeof(Anything) is-a object,所以

    type is-a object.

    而,object is-a type, 这应该是在特殊情况下,才满足。

    你把类给特殊化了。根据定义,类,就是一个普通的 object。你所以为的类变量,只不过就是一个成员变量,无非这个 object 恰好是一个类而已. P.S. 在这里不区分 class 和 type,instance 和 object

    你讲的这个成员变量到底是什么东西?我怎么觉得这个概念非常像 C++ 里面的说法。C++ 里面的成员变量的确是在类当中被定义的。其实咱们谈的那个@@类变量, 其实的确和你说的成员变量挺像的。不过我现在想确认一点,在 C++ 中,一个类的两个不同实例,他们的成员变量彼此之间有影响吗?我记得好像沒有影响,即,C++中, 每个类的实例都有自己单独的成员变量值., 如果是这样的话,咱们谈的还不是一个东西。

    你说的成员变量只是一个相对于 Ruby 的类实例变量不同定义方式而已。而这里谈的类变量, 他就是类自己的变量。所有的子孙共享同一个变量,整个继承体系只有这么一个,而且这个变量只在定义类变量的那个类中存在唯一的一份拷贝。

  • #18 楼 @bhuztez

    你讲的这个 type is-a object 理论,是你说的那个 Simula-67 里面的吗?

    你说的这个成员变量和类变量是两码事吧,我觉得按照你的想法,其实是指的类应该有类的实例变量.

  • #9 楼 @yedingding

    你可以帮我个忙吗?一直闹心,没有系统的学过 Emacs-lisp. 也怪刚开始,没有太专注于 Lisp.

    废话少说,我希望实现这样一个简单函数,针对一个双引号的字符串,例如:" this is a string", 首先调用 Emacs 的 ooking-back 函数 , 获取光标之前的第一个 match-beginning 数据 (这里就是开始的那个双引号), 然后调用 looking-at, 获取光标之后的那个双引号的位置。最后,将两个 mark 之间的字符串中的双引号替换为单引号。

    废话太多了,总之,我就是希望通过一个快捷键,实现以下功能:

    当光标在一个字符串内时,如果这个字符串使用双引号包含,那么就换为单引号包含,如果是单引号包含,就换为双引号包含。我不知道你是否有这个需求,不过 autopair-mode 很好,就是在以上情形下,很讨厌。

    如果你有其他实现或 Emacs Wiki 上类似功能的代码片段,请给我介绍一下。

  • #7 楼 @jjym

    你再看看是副本吗?副本怎么会改变方法外 x 的输出结果呢?

    看了 Ruby 重构之后,我发现,是我错了...