[Ruby] 2nd round

之前忘了說明一下變數型態,下面是一個我提供的例子:
http://gist.github.com/289506.js?file=gistfile1.rb
可以知道Ruby是一種Dynamically Typed Language(和PHP一樣XD),所以在例中,只是Assign的值不同,但是Ruby卻會有不同的解釋(一個是Fixnum類別,另一個是String類別)

2.1.4.3 Punctuation in identifiers
下面這段是書上對於Variable Scope的範例:
http://gist.github.com/289500.js?file=gistfile1.rb

說實在的那樣寫對我這個白痴來說真的是很難理解,所以我又找到另外一個詳細的解說版本如下:
http://gist.github.com/289510.js?file=gistfile1.rb

是不是清楚許多了呀?最後在這邊再以一個小例子來收個尾:
http://gist.github.com/289511.js?file=gistfile1.rb

你這邊一定會說「媽呀,你根本就沒說到Instance variable和Class variables也想打混過去!!」,好吧,你都這樣說了,那我只好再想些例子來滿足你,先看看定義吧:

A class variable is a variable that is shared amongst all instances of a class. This means that only one variable value exists for all objects instantiated from this class. This means that if one object instance changes the value of the variable, that new value will essentially change for all other object instances.

Instance variables are similar to Class variables except that their values are local to specific instances of an object. For example if a class contains an instance variable called @total, if one instance of the object changes the current value of @total the change is local to only the object that made the change. Other objects of the same class have their own local copies of the variable which are independent of changes made in any other objects.

這邊就簡單的翻譯一下它的意思:

Class Variables(類別變數)就是一種可以在同一個類別下的實體物件間互相分享的一種變數,當有一個實體改變了它的值,另一個實體也會存取到被改變後的值。

而Instance Variables(實體變數)則是個別存在於各實體物件下,各自維護自己的實體變數,而不會互相產生衝突。

我知道大家一定不想看英文,我自己翻得也很爛XD,所以我自己用了一個智障簡報來講解一下,看看就好,別太在意,只是想讓大家笑一下XD

(SlideShare真是難看,用Keynote看才可以看到動畫說,我轉了一個Mov檔在下面!)
P.S.原本要直接Embed在文章裡面,不過Hax4.in有點慢…

大概就是這個意思啦,只是簡單解釋一下,反正之後用Code來說明會比較好了解。

參考:Click Me

[Hax4] Rainbow

測試頁面:在這、專案資訊:在這

這幾天因為心血來潮,想說來練習一下pure javascript,所以就都不用jQuery來做事情(雖然最後還是有用,不過我只用來做特效而已XD)。這個Idea其實是源於我以前做的一個很爛的liu-translator,它只能單方面做字根對字的轉換,所以就想說利用Ajax的概念來實作一個線上的IME,因此我就去找了之前Luke的網蝦米來研究他的UI介面。

研究了一下後就開始著手動工整個JS的架構,邊看深入淺出Ajax邊試著實作他說的一些思惟,像是要怎麼寫的很MVC,所以就開始學著把程式切成粗略的「資料」、「模組」、「樣式」三類,雖然之間還是有些耦合性,但是比較以前的我,這次的實作算是很成功的分離了。

之後又想到行易公司的練習嘸蝦米的打字程式一直沒有跨平台,只支援該死的M$,所以為何不幫他們設計一個Cross Platform的Web Application?反正只要解決Cross Browser的問題就可以了,雖然我在Cross Browser這條路上只是一個剛入門的新手,但總比Cross Platform好多了吧…因此就把分離完的架構再修改,改成有點像是遊戲的小程式。

原本已經接近完工的狀態了,但是Bu因為是「大新倉頡」的愛好者,所以就給個建議要我加入的其字根對應表,去擴充可支援的輸入法,就又經過了一場編碼和正規表達式的戰爭後,終於把切換輸入法的功能也加上了,這完全要歸因於先前的MVC架構,讓我能夠在很短的時間完成這個動作。

最後一個也是最重要的啦,為了提高遊戲性,我設計了一段可以自動去抓使用者給定URL的頁面回來,把該頁面上所有符合UTF-8繁體中文的字全部抓下來當成題目,這又比起以前行易公司設計的那些題目多了一些趣味。多了這個設計,你還可以邊看Yahoo!奇摩新聞邊練打字咧!!

附上程式截圖:




§2010/05/13 補上程式的Demo連結,原來我都沒有放出來= = ,舊的在這,新的在這
§2011/02/05 更新連結、圖片、介紹。

[Mac] How to enable GD lib ?

意外找到這個開發者寫的pkg檔,真的是一裝就Happy Ending了,省下不少時間,

以下是該pkg檔的特色,記下來給以後有需要的人!!

連結

  • the MySQL and PostgreSQL databases
  • the cURL library for various communications protocols
  • the GD image creation library (with PNG, JPEG, PostScript Type 1 and TrueType font options).
  • the expat XML parser and WDDX support
  • XSLT transformations
  • LDAP access
  • the IMAP client library
  • mcrypt encryption functions
  • GNU gettext

[計畫]想做的事

就在剛剛終於逃離了期末考的魔爪,現在要來列個清單是關於我整個寒假的計畫,能完成多少就多少吧。

  • 讀書計畫
    1. read 愛上jQuery & 深入淺出 Ajax
    2. [Done]read Facebook:性愛與金錢、天才與背叛交織的祕辛
    3. read Introduction to Algorithms
    4. …增加中
  • 工作計畫
    1. EatMe 主站規劃
    2. Hax4   主站規劃
    3. 畢業專題構思
    4. ACM解題
    5. …增加中
  • 其餘活動
    1. 食我出遊
    2. [Done]資轉出遊
    3. 死黨聚會
    4. ??
    5. …增加中

結論就是,等著累死吧!!!!!

[vim] My Vimrc

因為受c9s的影響所以也走上了玩vim的不歸路,但是沒想到還真的是蠻好玩的。所以來分享一下現在的vimrc。

會持續更新,直到把整個vim調教(?)的很完整為止XD~

§2010/03/05更新,把它放在我github的帳號下,以後要維護就比較方便了。