似乎因為無名又做了微妙的決定,最近想要搬Blog的人又變多了,我收到不少Blogtrans有關的Bug。
Blogtrans現在有一些已知的問題:
- 匯入無名備份檔時可能會卡住 (應該是無名匯出格式不知道偷偷做了什麼變動)
- 匯出至Blogger時留言會不見 (這個以前可以的,應該是Blogger改了讀備份檔的機制)
- 無法正常處理簡體中文
似乎因為無名又做了微妙的決定,最近想要搬Blog的人又變多了,我收到不少Blogtrans有關的Bug。
Blogtrans現在有一些已知的問題:
剛剛在Godfat的Blog看到這篇文章,比較了Ruby和Python在對於list進行+=運算子操作的差異:
[~/test]# irb
irb(main):001:0> a = b = []
=> []
irb(main):002:0> a += [1]
=> [1]
irb(main):003:0> a
=> [1]
irb(main):004:0> b
=> []
irb(main):005:0>
Python 2.5.1
>>> a = b = []
>>> a += [1]
>>> a
[1]
>>> b
[1]
這個結果同樣的出乎我的意料之外,所以花了些時間研究一下。以下分別討論a=b=[]; a+=[1]在Ruby和Python的運作狀況。
先看看a=b=[]。毫無疑問,不管在Ruby或Python,這個敘述都是「造一個空list,並讓a和b指向同一個list」。如果你被上面的例子迷惑了,試試:irb(main):001:0> a = b = []
=> []
irb(main):002:0> a << 1
==> [1]
irb(main):003:0> a
=> [1]
irb(main):004:0> b
=> [1]
irb(main):005:0>
再來,先討論Python
Python的a+=[1]等價於a.iadd([1])
對呼叫a+=[1]的block,變數a所綁定的物件不會改變
既然a和b所綁定的物件相同,那a和b的內容理所當然也會一樣
再來看看Ruby的a+=[1]
雖然Ruby可以覆載運算子,但+=運算子是不能被覆載的
簡單的試試
Ruby的method可以名為+,可以以=結尾,就是不能名為+=。同理,-=, *=, /=, &&=, ||=之類的也不行。參考Programming Ruby
In common with many other languages, Ruby has a syntactic shortcut: a=a+2 may be written as a+=2.可以得到結論:a+=[1]只是一個Syntax sugar,可以想像他parse時就變成了a=a+[1],而不是由a去invoke一個名為+=的member function。
前陣子看到Jserv介紹asmjit的文章,一直想找機會試試看。另外,最近ptt的programming版上的一個thread出現了很多esoteric programming language,讓我想到可以試試寫個Brainfuck JIT Compiler。於是,這個專案就誕生了?
JustFuck, A x86 Just-In-Time Compiler for Brainfuck
我不是故意罵髒話的啊….他的縮寫很自然就這樣啊….(大誤)
一位不知名的鳥類程式設計師評論道:「真是太神奇了,我從未見過腦幹語言運行的如此飛快,嘎嘎。」
因為最近開始學git,所以放github上:Project page。
Source code只有一個檔案,三百行。學習Brainfuck, asmjit, git的實驗品,大概懶得再重構更新了。
前幾天我寫了一篇Google Chrome瘋狂讀寫硬碟的問題,說明了Google Chrome在EeePC等使用SSD硬碟的電腦上,可能會因為大量的硬碟存取,導致系統緩慢。然而,Google Chrome超快的JavaScript Engine對我來說仍是相當具有吸引力。因此,今天我想進一步探討Chrome在EeePC這種使用SSD硬碟的電腦上要如何調校。
觀察一下Google Chrome的使用者資料目錄,我們會發現有兩個東西占了大部份的空間:
set ramDiskImgDir=C:\RamDiskImg
md %ramDiskImgDir%\ChromeUserData
xcopy /s /y /k "R:\ChromeUserData\Local State" %ramDiskImgDir%\ChromeUserData<br />xcopy /y /k R:\ChromeUserData\Default*.
%ramDiskImgDir%\ChromeUserData\Default<br />xcopy /s /y /k "R:\ChromeUserData\Default\Plugin Data*.*" "%ramDiskImgDir%\ChromeUserData\Default\Plugin Data\"在EeePC上面使用了幾天的Google Chrome,我發現一個問題:Chrome程式執行一段時間後,就會開始瘋狂的讀寫硬碟,但CPU使用率仍是0%左右,使系統的整體速度變慢許多 (很明顯是I/O Bound) 。尤其對於EeePC這樣使用固態硬碟的筆電來說,一直讀寫硬碟須要比一般硬碟更多的時間,更會大量減低硬碟的壽命。對於使用一般HDD硬碟的電腦來說,似乎感受不太到這個問題。
在網路上找到這個解決方法:用Ramdisk彻底解决Chrome对硬盘疯狂折磨
簡單摘要一下: