• #4 楼 @jiffies 沒聽說有甚麼推送。HTML5 的 webSocket 嗎?怎麼兼容瀏覽器呢 @cactis Faye 大概也是用 ajax setInterval 吧。 REST 原則上不允許在 server 端保留 state 的。

  • Ruby 1.9 中文处理 at 2012年05月05日

    #10 楼 @fsword

    到了 1.9,ruby 标准库为开发者提供了一些便利条件, 不單便利而已。1.9 的 utf-8 算法是用 C 寫的,若用 1.8,我們要麼用 ruby 寫,效率太低,要麼自己編譯 C 庫,port 又很麻煩。1.9 utf-8 直接做在 libruby.so 中。

  • REST,沒有 Request 怎麼可能有 Response 呢

  • 我为什么就学不会编程 at 2012年05月04日

    #14 楼 @ery 不懂指針和資源管理,怎縻可能寫出高效的代碼來呢?C++0x 加上了 rvalue references && 和 move 機制,簡直把高效發揮到極致了,越看越喜歡 ;) ruby 並不簡單,比如 甚麼 class instance variable,extend 和 include 的差異,block 和 proc 的差異,singleton 啦,mixin 啦,都不是那麼直觀的。python 的 self,meta class 還不如 C 的 myclass_meth (obj, arg) 來得明白。要講簡單,還是 java 最簡單,php 次之,但是很容易把程序員訓練成呆子。靈活的語言學起來纔有意思。

    python:

    for x in range(1,11) :
        pass
    
    

    ruby

    for x in 1..10
      blah
    end
    
    

    python

    def showName (self)
      print self.name
    
    

    ruby

    def show_name
     puts @name
    end
    
    

    相比較而言,還是 ruby 更直觀,更適合初學。只是真想寫出點像樣的東西,那些比較繞騰的 cloure,mixin 之類都得把原理搞清楚,那就比 ANSI-C 要難了。C 只是用起來不舒服,學起來還是相對容易的。而且所介紹的一些概念都是至關緊要的。若是我帶學生,學編程的步驟就是

    C -> JAVA -> ruby/python/javascript/C#/C++(任選)

    更外,MFC 也不好用 winform 來取代吧。除非是工作的須要,那講不了。感覺 .NET 沒甚麼前途。想作桌面程序還是學用 QT 吧。C#是很不錯的語言,比 JAVA 強得太多,只是被.NET 給限制住了。如果是自己做東西,別說跨平臺不容易,就是 win 本身,國內的一般用戶恐怕有一多半是連.net 2.0 都沒裝的。想要自己的程序不受限制,要麼做 web 要麼做 c/c++ 連 ruby/python 都是 fat ass,佈署非常頭疼的。

  • 有沒有別的環境的,我不用 emacs 的

  • Ruby 1.9 中文处理 at 2012年05月04日

    #8 楼 @TsingHan 應該是 CSI 吧,我不太清楚這個名目的具體所指。UCS除非是用UCS-4的(我所知的只有QT和linux上的python用ucs-4),一處理大字集就卡殼了(java/javascript/c#都是ucs-2)。雖有補救的辦法,但是很麻煩,比如python,win32上用的是ucs-2,我們編一個支持大字集的程序,從linux port 到 win 就很頭痛。說是 run everywhere,豈不成了空話!而 UCS-4 是一切字符都 4 個字節,比較浪費內存的說。但是處理效率可能會高一些,因為電腦的 word 就是 32/64 位的。

    ruby 1.9 之前,本身是甚麼碼都不支持的,ruby string 就相當於 c string,只是以字節為單位。1.9 則內置了 utf-8(1 至 4 字節的不定長碼)的算法。

    UCS-2 是每字符兩字節,超出 BMP 的字用 surrogate pair UCS-4 是每字符 4 字節,unicode 全包括了 utf-8 是 1-4 字節。格式為

    0xxx xxxx - ASCII
    110x xxxx 10xx xxxx 
    1110 xxxx 10xx xxxx 10xx xxxx - 漢字 CJK  /CJK - A
    1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx - 漢字 CJK-B/C/D
    
    
    
    
    

    其中 xxx..為有效 bits,1110、10 之類是碼長標志位。 utf-8 可直接兼容 ASCII,這就是它的最大好處。中文字都是 3 碼或 4 碼,3 碼字有效位剛好為 16,正對應 ucs-2 的雙字節碼,這個空間就叫 BMP,中文 GBK\BIG 就收容在內。然而大字集收了 7 萬字,有 4 萬多是在 BMP 之外的,如用 utf-8,因算法是固化的,一般無障礙,遇到 ucs-2 就很麻煩。如 java,你得用到 codePoint() 一類的函數,若用到 swing 還往往顯示不出。若是 js,乾脆連函數也沒有,只得自己寫算法。

  • 不懂 GTD 是個啥思路。懂行的朋友能不能簡單介紹一下,學習學習。

  • Ruby 1.9 中文处理 at 2012年05月04日

    @TsingHan 1.8 本身不支持 utf-8,比如你 打 “A一大".length,得出來的不是 3,而是 7,因為 A 一個字節,「一」「大」各三個字節。

    而 1.9 each_char , length之類默認的就是 utf8. "A一大".length就是 3,想知道字節數要用"A一大".bytesize

    此外如「𣊫」「𥗉」之類大字集的字(4 字節,不知你看到沒),python(win 版), java,javascript 都不能自識別,要當成 surrogate pair 來處理。如 “A一𥗉大",本來只 4 個字,javascript "A一𥗉大".length得出來的卻是 5。我們要跟中文打交道,能用上 1.9 近乎完美的 utf-8 支持真是賞心樂事

  • Ruby 1.9 中文处理 at 2012年05月04日

    @TsingHan 這樣 parse 的速度更快呀,那還用問嗎!

  • 升级 Ubuntu 12.04 后的杯具 at 2012年05月04日

    我也一樣,ubuntu 真是傷不起,逼得我轉到了 arch

  • 蒙古文开发的问题 at 2012年05月04日

    @mobiwolf 沒有,目前沒有任何流覽器 natively 支持豎排的。可以用 css3 的 transform:rotate

    請看連接 因為蒙古文是直接轉過來,比漢字豎排要容易一些。

  • $ ruby -e 'STDIN.readlines.uniq.each{|l|print l}' <test.txt

  • Ruby 1.9 中文处理 at 2012年05月04日

    在文件首加上 # encoding: utf-8 就行了 ruby1.9 的 unicode 支持非常好。比 1.8 和 python 強得太多。是我所知道的編程語言中最好的。比 java\javascrpt\c# 都要好,可以直接處理 cjk b/c/d(utf-8 四字節) 的字符。

    不信你在 irb 上 打: ?字.ord 它會直接給出 unicode codepoint "天地玄黃".each_char{|chr| puts chr} 也是預想的結果。

  • 我为什么就学不会编程 at 2012年05月04日

    Ruby 並不比 c 簡單,只是 battery included(電池己附),標準庫中有的是好用的類和函數,相比 C 的標準庫和 C++的 STL 較容易上手。

    學編程從 C 入手是正道,起碼能熟悉流程控制、基本數據類型、指針一類概念。作運維應該知道一點 bash 吧,我倒覺得 bash 是最難學的,太多希奇古怪的句法,好像迷魂湯。

  • Is Node.js Better? at 2012年05月04日

    服务器端可以为不支持 js 的浏览器和搜索引擎渲染出静态内容 這是甚麼意思?跟據 request header 中的 agent 發頁面嗎。實際意義不大,不如真接作 web 和移動兩個 view。而且 Node.js 是基於 gecko 的並不能自動解決跨流覽器的這兼容問題。

  • 變量全都沒 type,一會 and 一會&& ,ansi-c 也沒有 try{}catch{}

  • Is Node.js Better? at 2012年05月02日

    Node.js is just a server with some server side commonjs support. It itself is not a all included framework as rails is.