Munou Diagram 2

Let's munou!

在 Opera 使用其他字典

在 Opera 中使用字典都會連結到 Answers.com,
這對熟諳英語的人來說當然是最佳解了,
不過有時就是希望查查英漢或漢英字典,
這時該怎麼辦呢?

首先到選單上「工具/功能設定/搜尋/新增」, 然後輸入以下資料:

名稱: Yahoo!奇摩字典 ( 可自訂 )
關鍵字: d ( 可自訂, 只要不與其他搜尋引擎相同 )
網址: http://tw.dictionary.yahoo.com/search?ei=big5&p=%s

確定後離開, 在網址列打「d 灰熊」, 會跑出什麼結果呢?

接下來是在網頁上 double click 一個英文單字,
出現選單後就可以找到我們剛剛新增的那個搜尋引擎.

提供給各位做參考.

openSUSE 10.2

一直到前幾天加 RAM 才開始試用, 啊啊, 這麼一套漂亮誇張的 Linux 還是第一次見到啊, openSUSE 果然名不虛傳!

來看幾張圖吧:

可惜 KDE 跟 Gnome 想要調校一些東西都變得綁手綁腳,
這跟美觀的外型來說應該不是 trade-off 啊. 另外 Gnome 的 StartMenu 很漂亮也很好用, 但是搜尋的時候為什麼非得跟 MAC OSX 一樣另外得跑出一個 ‘Finder’ 呢 XD

之後一定會改進的, 我深信.

設法解決 Database Locked 的問題


Photoed by jaxxon

最近可能連 Munou Diagram 會出現錯誤訊息,
那代表 Blog 使用的資料庫掛點了,
不過說也奇怪, SQLite 應該沒那麼不穩,
但是最近用 typo 卻常常出現這種狀況,
尤其更新到最新版之後就更嚴重了,
比較常出現在頻繁的 XHR 之下,
我該怎麼解決呢? Orz

MyBlogLog: 誰來過我家?


圖:MyBlogLog 首頁畫面

雖然稱不上是人類救星, 但至少也應該會是 Blogger 們的福音,
又發現一個不錯的社群工具可用了,
先在這個網站申請會員, 放上你的大頭照,
在有放置 MyBlogLog 的 Widget 的網站就會留下足跡,
那個 Widget 其實說穿了就是一串 JavaScript Code,
因此當然您也可以利用網站裡面的功能產生這段 Code,
讓來訪的遊客留下足跡,
大家就各自可以知道誰來過自己的 Blog,
並且去瀏覽這些訪客的 Blog.

很有趣的想法, 對吧?

加入可愛的 PreviewBubble

注意到右邊 del.icio.us 的預覽圖了嗎?

這個站的速度很快喔, 我才移上去沒多久他就截好圖了,
使用方式也非常簡單, 只要打上這段程式碼:

<script type="text/javascript" src="http://www.websnapr.com/js/previewbubble.js"></script>

然後讓 hyperlink 上的 class=”previewlink” 就行啦!
如果 anchor 本來就有 class 該怎麼辦?
用空白隔開就好了. 例如 class=”previewlink anotherStyle”

Have fun! :)

關掉可惡的 Live Preview 了

Typo 的 Live Preview 很可怕, 貼文每兩秒就會送一次 XMLHttpRequest,
然後我的 SQLite 就負荷不了了 Orz

雖然我認為這應該不是 Rails 的問題而是 Typo 的問題啦,
不過目前尚未證實,
關掉 Live Preview 的方法很簡單,

app/views/admin/shared/_edit.rhtml

最後的

<%= observe_form "#{form_type}_form",
      :frequency => 2,
      :complete => "$('preview').src = request.responseText; Element.show('preview');",
      :url => { :action => "preview" } %>

其中的 <%= 改成 <%# 就好啦!
不過我是在用 svn 定期更新 typo,
不知道後來會不會出問題?
反正 svn 會提醒我這邊有 diff 吧?
應該沒問題啦.

應該啦.

Haml: HTML Abstraction Markup Language

HAML project
http://haml.hamptoncatlin.com/

Rails 又出奇招啦, 雖然這東西早就被支援了,
不過我在更新 typo 的時候發現裝了一個 haml plugin,
還有個 theme 順勢改為 haml 來寫,
於是我翻開來看看, 哇, 好醜!

但是比 Erb 好看多了.

總之他就只是把 HTML 變成 YAML-like 的東西,
不過 HTML tag 的 prefix 竟然是 %
然後指令碼的 prefix 則是 =

來看看程式碼

%html
  %head
    %title= "草安您好"
  %body
    #contents
      %h1 "tyr.munou.tw"
      %ul.cast
        %li "tyr 是大神"
        %li "munou 沒腦"
        %li "tw 台灣"
    #outer= render :partial => 'sidebar'

會相當於什麼呢?

<html>
  <head>
    <title>草安您好</title>
  </head>
  <body>
    <div id="content">
      <ul class="cast">
        <li>tyr 是大神</li>
        <li>munou 沒腦</li>
        <li>tw 台灣</li>
      </ul>
    </div>
    <div id="outer">
      <%= render :partial => 'sidebar' %>
    </div>
  </body>
</html>

看起來不錯, 但是看久了都是奇怪符號反兒不太順眼,
因此我也沒有要詳細介紹下去的意思,
等待另一個 alternative 出現吧.

B2DpureKGB

兩年前使用了 B2DpureGnome,覺得實在棒透了,不過 KDE 的版本一直弄得不很漂亮,不過現在看起來已改進許多,安裝到硬碟之後稍微修改一下就變得不錯看了:


圖一:登入之後的樣子,當然我有選桌布,然後排了一下圖示。


圖二:一般使用情形


圖三:PCMan 掛逼的情景,ASCII art 不至於走樣太多。


圖四:Firefox 執行畫面,中文字都沒有糊掉,真漂亮。


圖五:Glade IDE – 開發 GUI 環境的好幫手。

不過當然還是要吐槽一下,用 Klik 下載 Opera 之後竟然選單都變成可怕的亂碼,如果只是普通的亂碼也就算了,是「可怕的」亂碼,不過這應該是 Qt 跟 Klik 結合的問題吧?

還有就是 Firefox 一裝 Flash Player Plugin 之後竟然就常常會莫名地 Crash 掉,不知道這是怎麼一回事?另外就是 Linux 各套件系統都會遇到的問題:RubyGems 的安裝都得要經過套件系統,要是有迫切需要安裝的套件卻沒有人在維護相對應的 .deb 或 .rpm,用起來反而會麻煩加倍……

趕快灌 VMware 習慣一下 B2D Linux 吧,有很多高手在幫忙維護,現在大家做 Web 設計也都會儘量避開 IE Only 之嫌,我想過不久我們就可以跟 Windows 說掰掰啦~其實 Windows XP 也沒那麼不好,但是 Vista 就有點不好用了,而且最重要的是,有些東西在 Windows 裝起來礙手礙腳的,在 Linux 系統就比較不會了。

B2D 要繼續加油喔~中文的 Linux 好順眼啊 XD

Late to the Party – Design Pattern in Ruby

如果你是 Design Pattern 的新手, 使用 Ruby 也有一段時間, 或是 Ruby 新手, Design Pattern 修習有一段時間, 那麼這個 Blog 有很多 Design Pattern 的 Implementation 可以參考:

Late to the Party
http://cwilliams.textdriven.com/

以及其中的

Ruby Category
http://cwilliams.textdriven.com/articles/category/ruby

包括 Decorator, Observer 等常見的 Pattern, 也有 Singleton 等概念在裡面, 非常推薦.

Ruby 的缺點


圖:Red Rain, by NeverB4Breakfast

Ruby 用到現在, 也有三年餘了, 從一開始被他的 Iterator 震懾,
然後被他的 Pure-OO 概念吸引, 到現在發現了不少缺點,
不管是語法上, 架構上, 實作上, 都有諸多不滿意的地方,
而就我所知這些缺陷, Ruby 也早就試著改進, 雖然優點多於缺點,
但 Rite 推出之前, 還是不吐不快.
所以今天就讓我大快朵頤狠咬 Ruby 一口吧!

JavaEye 的觀點

JavaEye 的這篇罵一罵 Ruby 已經說了不少 Ruby 的缺點, 來總結一下吧:

  1. 缺乏 Virtual Machine
  2. Unicode 支援不佳
  3. 企業應用 ( 2PC, scaling problem, etc. )
  4. Library, default action 匱乏
  5. 沒有編譯階段
  6. 缺乏文件

Ruby 發展過快,有些缺點是難免的, 這裡也不是要幫 Ruby 說話, 不過就我所知這些問題大概都有解──沒有解的, 至少也有解釋.

  1. Ruby 已經有很多套 Virtual Machine 正在開發,
    Ruby 的理念中並不想把這種 Language 跟其他 Tools
    綁在一起, 因此這樣的設計架構是可以理解的.
  2. 這是很嚴重的問題,Unicode 現在大致上已經被解決了,
    但其他 encoding 的問題並沒有太大的進展,
    不過我在這方面很弱,所以也不方便做太多 Comments (倒)
  3. Scaling 的問題一直有在改善, 這種 Full-Stack 的語言工具,
    其實都面臨同樣的問題, 不過正因為我們已經交給他們了,
    因此就請信任 Ruby 開發者們的能力吧.
    2PC 的問題倒是比較難解,
    不能以 「Ruby 的社群不在大企業」萊矇混過關,
    身為以平行處理為目標的 Ruby 而言,
    這其實有點難自圓其說, 但要更改現有架構,
    對於彈性強的 Ruby 而言, 恐怕也是有些窒礙難行.
  4. Library 早已經不缺了, 倒是品質確實參差不齊,
    管理上雖已有 RubyGems 了但還是不方便,
    而且 RubyGems 也還在 0.9.x 的開發階段,
    但是面對現有的 Gems, 要更改架構我看也相當困難吧.
  5. Ruby 這種直譯式語言本來要 Compile 就會有點困難,
    天曉得你下一步會往哪裡去? 變數有沒有定義根本無從知道,
    不過對於強型態的語言來說, 沒能 Compile 確實有點詭異.
  6. 文件啊… 這也是 Ruby 一直以來的痛, 倒也不是不齊全,
    其實文件數量很夠, 但是由於發展過為迅速,
    導致於很多今天才寫出來的 document, 可能明天就不適用了,
    關於這點我認為 Ruby 需要一套更完善的文件系統,
    metadata 當然也要儘量描述,
    這份文件到底是適用於哪個版本的軟體,
    免得牛頭不對馬嘴.

我的觀點

那問題到底出在哪裡呢? 就我而言, Ruby 在語法上有幾個我看不慣的地方:

  1. Iterator indicator delimit
    這東西不確定是好是壞, 不過我就是看那幾個 |a, b| 不順眼,
    後來想想這可能是為了要方便某些場合下可以一行秒殺的程式,
    但是為了這點就要多按兩次 shift 更令人難過.
  2. Overloading 醜斃了
    我的媽, 哪有人 method 裡面的 overloading 都用 .is_a?
    在實作的? 不僅不美觀又不實用, 打起字來又特別費力,
    氣死人了.
  3. 預設用 underscore, 也很醜
    不過這是個人習慣問題, 像我就比較喜歡 camel 型態,
    toSym 比 to_sym 要來得經濟划算多了, 看起來也不會多吃力.

架構上:

  1. Install libraries 需要 administrator/root 權限
    雖然 RubyGems 成功模仿 CPAN 架構,
    但希望能更進一步區分哪些 libs 不需要 root 權.
    很多 libs 明明不需要裝在 /usr/lib/
    卻還是沒辦法輕鬆在自己的 work directory 使用這些 libs.
  2. 過度包裝
    require ‘iconv’ 之後還得 include Iconv,
    這雖然比較保險啦, 但是一想到不 include 就得用
    Iconv.iconv() 來 call method 就不禁覺得有些好笑.

實作上也有令人流淚的悲傷:

  1. 有時縮寫有時不縮寫
    to_s 這種縮寫實在很詭譎, 誰知道 s 是指什麼啊?
    既然是要讓程式碼變得更易於閱讀,
    那麼 「知其所指」 應該是非常基本的.
  2. Overloading again
    忘記從哪一版開始, 「string」 + fixnum
    竟然會產生 TypeError,
    這是要使用者自己定義 operator overloading 的意思嗎?
  3. Meta-meta-programming
    Ruby 雖是我目前看過最漂亮的語言, 但也是最暴力的語言!
    怎麼可以有個 Tool 能發展至今, 底層卻依然充滿了 eval 呢?
    就連新興的 Gems 也一樣, 動不動就使用 eval.
    幸虧這些 developer 都有一定功力,
    不至於發生太嚴重的 Injection 災情, 但天有不測風雲,
    Ruby 也有摔破的一天, 這樣惡搞, 安全性令人質疑.

這時候就會很恨自己平常沒有記下缺陷的地方, 因此這些缺陷也是講得零零散散, 有待大家把它補齊吧! 大家一起為新世代的程式語言一起努力.