2013/01/13

擊敗SOPA/PIPA反案網路自由運動領袖 Aaron Swartz家中身亡




Aaron Swartz 前日被發現於家中身亡,Aaron為網路自由運動領袖,共同開發了RSS技術,在美國國會成功地擊敗了 SOPA/PIPA法案及 網路情資分享保護法案 (Syber Intelligence Sharing and Protection act(CISPA)。

如果沒有網路,自由運動將寸步難行。如果沒有自由與開放的網路,沒有人會看的到這篇資訊。如果沒有自由的網路,網路上組織的社會運動團體不可能存在。如果不是 Aaron與 DP,這些法案將會讓一切化為烏有。

希望 Aaron Swartz於天國安息,新一代的年輕人與更多地組織將會記住 Aaron Swartz的努力,持續地為網路民主自由抗爭奮鬥。

擷取翻譯自 : https://www.facebook.com/photo.php?fbid=10151420527538690&set=a.10150159213018690.338979.86518833689&type=1&theater

http://www.naturalnews.com/038650_Aaron_Swartz_suicide_assassination.html#ixzz2HpEjQ5DO

2013/01/07

優化 Rails效率 by Richard Schneeman


筆記整理自 My Server for Aiur: How Starcraft Taught Me To Scale by Richard Schneeman
 http://www.youtube.com/watch?v=4wvtvc0C2SY


1. Don't queue web requests

2. 監測 Database/language/GC哪一端拖垮效率

3. Measure in production

*N+1 query

*在 Production config中加入監測指令
config/production.rb

config.
active_record.
auto_explain_threshold_in_seconds =
1

4. Add indexes

*New Relic
*Scout

5. Cache Expensive query

*Memcache  [Building a Rails 3 Application with the Memcache Add-on]
*Rails.cache & Rails.cache.fetch("cache_key")
不要濫用

6. View Caching

cache最小單位
cache_digests gem  <--rails4

7. avoid premature optimization
incremental improvement
Fast day Friday <--focus on speed every Friday

8. Split up Web/Workers/Datastore
將Database/web server分在不同的機器
Workers用第三方機器,或者改用排程,在空檔進行
active_queue <--Rails 4

9. 不夠用的時候怎麼辦
Scale UP
Scale Out : Ephemeral Web machines  不在 Server儲存 State
$ heroku ps:scale web=6  
將state存在database/session/s3

10. Database怎麼 Scale

Master DB <-->Slave DBs
Split data to multiple DB machine
*Shared Data還是沒辦法 (facebook用MySQL, Instagram用 PostgreSQL)
建議閱讀: 7 databases in 7 weeks

11. Client side優化
JS, CSS:CDN,GZIP,縮小檔案大小
Content Distribution Network :Images/JS/CSS在各國 server
可使用 AkamaiCloudfront, 設定為
config/production.rb
config.action_controller.asset_host =
ENV["cloudfront_url"]

Browser caching
*Expires headers 把這些資訊在cache中保留久一點
config/production.rb
confib.static_cache_conrol=
"public, max-age=2593000"
*Rails assets fingerprints
config/production.rb
confib.assets.digest = true
建立MD5檔案
一般檔案: headers.css
有 fingerprint的檔案: headers.91234j12342341.css
Browser將會以新檔案對待

12. 總結
使用YSlow工具來測量前端表現 [Chrome , FireFox, 官網]
Don't block page parsing
Measure memcache, More-Instances!!



講者更多Rails教材: http://www.youtube.com/watch?feature=player_embedded&v=KDwElEeakuU

超輕快文件 & 電子書閱讀器 : Sumatra

由於 Adobe的  Acrobat reader越來越肥大,很熱門的 FoxIt Reader又會碰到格式跑掉的狀況,比較了一些替代方案後選定了 Sumatra,使用了一陣子之後覺得一定要寫一點中文介紹讓更多的朋友認識。

Sumatra是什麼?

Sumatra是一個 Windows平台免費開放的文件 &電子書閱讀器。

Sumatra的特點是什麼?

  • 輕量:安裝檔案僅 4.8mb,同時提供免安裝 Portable版
  • 效率高:開啟檔案速度超級快,如果覺得FoxIt很快,請務必嘗試一下 Sumatra。
  • 支援格式多:PDF, ePub, Mobi, XPS, DjVu, CHM,還有漫畫書 CBZ及 CBR檔案格式。
操作畫面:

基本PDF文字選取/複製功能

CHM文件閱讀

全螢幕模式

側轉 (筆電在高鐵上閱讀超方便)


開發者在操作上設計得非常精簡,翻頁可用左右鍵或 PageUp/PageDown,除了檔案小,開啟文件格式多,速度快,側轉/全螢幕模式的切換讓在整理閱讀大量文件的時候可以輕鬆地完成。


官方網頁:http://blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader.html
Sumatra 2.2 安裝程式下載: https://kjkpub.s3.amazonaws.com/sumatrapdf/rel/SumatraPDF-2.2-install.exe
Sumatra 2.2 免安裝獨立執行檔案下載: https://kjkpub.s3.amazonaws.com/sumatrapdf/rel/SumatraPDF-2.2.zip




2012/12/28

台灣媒體、民眾&死刑


死刑這個議題有很長的一段時間佔據著主流媒體及 Facebook版面,我覺得媒體集中報導死刑爭議是幫媒體壟斷、四大保險調漲、台商回流專案、還有假經濟開發專案的爭議洗版,注意力都在前者,後面這幾項就好操作了。對於廢除死刑與否,我沒有能力評論,因為我對於其相關的法律、社會影響等層面了解太少。,自己比較在意的是社會大眾對於死刑的態度。需要先定調我不在意/沒有能力評論
  • 死刑的必要性
  • 死刑的正當性
  • 死刑的社會影響

就像是”官員下台負責”這種媒體操作一樣,因為 A政策出問題,圖利了B系列廠商,傷害了C族群,這時候讓媒體降溫的方式就是推出一個D道歉下台,承諾用納稅人的資源補償C,媒體民怨風頭過了之後,D因為護航有功可以被安排到 B系列廠商的合作夥伴中擔任顧問腳色領取高薪作為補償費用,大家都忘記了

1.政策執行結構需要檢討
2.建置安排這制度的官員及廠商沒有受到實際逞罰
3.納稅人因為這些官員及廠商的錯受罰了
4.受害的 C族群沒有媒體的持續關注所能得到的補償將大打折扣
5.根本問題沒有解決這樣的事件會重複發生

當然這些討論能引起持續大量的討論是有許多正面的價值,我只是害怕這次的媒體運作可能會有的後遺症。一如官員下台一樣,媒體引導討論重點在於死刑執行與否&台灣司法主權是否受干擾,然而民眾忽略的既有治安死角、犯罪防治的規劃、犯罪率較高的社會族群輔導與照護,執行死刑與否,這些都是還等待我們去解決面對的問題。我相信死刑絕對可以嚇阻一定程度的犯罪,但在維持死刑的情況底下我們是不是也該評估一下執行死刑的罪狀有哪些?有什麼辦法可以避免權貴免責的狀態一再發生?同時我們千萬不能天真地知道死刑會持續執行後覺得有出了一口氣,鬆了口氣,結案。

  • 農委會疫苗事件害死多少人,官員下台就能平息民怨?
  • 圖利人力仲介的外勞引進模式,讓工作環境很差的外傭有了虐待看護對象的舉動,鬥毆、情殺等社會事件,執行死刑只是讓單一事件結案,整個系統瑕疵還是會持續衍生類似事件。
  • 四大基金破產會逼死多少家庭?幫銀行們通過這些系統的眾多官員們都還是睡得好好的?
  • 如果罪惡及違法事件的傷害性可以量化,還有哪些政府、法人及利益集團違法事件是目前輕鬆地被放過的?現有破產法其實是在保護著他們的。

我相信支持及反對死刑的族群都是良善且關心台灣的未來發展,只是當我們用這麼長的時間持續在兒童每天都看的到的大眾媒體上關注討論著死刑這樣的議題的時候,我們的注意力與思考能量其實可以同時照顧好與我們相關的更多議題,我們可以更自主更主動積極地去關注社會上更多法規與制度,看著許多關心社會的熱心與激情被浪費掉是很心痛的事情:)

2012/12/27

Yamaha買 Steinberg買貴了嗎?

我覺得 Yamaha是很大的一個集團,買 Steinberg絕對有他們一些我無法理解的考量,但跟 Adobe Photoshop的狀況一樣,專業市場用十年前的老版本一樣可以工作,並不需要花錢去買買這些更新更貴更耗費資源的軟體版本,Yamaha在 2005開始接手管理 Steinberg花了 2,800萬美金,或許對集團來說這不是什麼大錢,但在 Steinberg軟體銷售收益的成長上,我個人認為丟下去的大量資源應該是沒有賺回來的。

以下為網路上整理翻譯的一些歷史

1994


  • Charlie Steinberg (錄音師) 與Manfred Ruerup (錄音室keyboard手)聯手開發了一套 16軌的 Midi編輯軟體 Pro 16,由於 Ruerup帶著 Pro 16在各錄音室出現後受到大量關注,兩人成立了公司開始販售軟體。
  • Gerhard Lengeling在 Steinberg工作 11年之後成立了 Emagic也就是現在 Apple Logic的開發公司。

1996

  • Steinberg的策略為開放合作,使用者可以自由選取錄音介面、AD/DA及控制器,藉此與大量廠商合作強化自身市場占有率。
  • 因為 VST 規格與 Lexicon及 Yamaha等硬體大廠開始有交流

1999

  • 靠著VST 2.0跟 Nuendo開始深入影音專業市場

2002

  • 推出 Houston控制器
  • Emgaic靠著在 Mac上的優勢還是打不過Steinberg靠著 VST取得的強烈市場優勢,賣給 Apple,售價從過往的 699美金下修為消費市場價格。

2003

  • 與 Euphonix公開合作關係。
  • Pinnacle花了 兩千四百萬美金買下 Steinberg,當時公關稿說是為了強化 Pinnacle產品 audio方面的表現。

2004

  • Yamaha與 Steinberg因為 Studio connection技術開始有密集互動

2005

  • 看準了 ASIO及 VST在市場的支配力量,Yamaha花了兩千八百五十萬美金從 Pinnacle手上買下 Steinberg。(精確時間為2004/12/24)
  • Pinnacle買下 Steinberg兩年就出讓了,部分原因是 Avid當時想發展業餘消費市場買下 Pinnacle與 M-Audio。
  • 原 Steinbeg行銷部門由 Yamaha行銷部門接管,雖然公關稿宣稱 Steinberg將維持獨立運作的公司,但Yamaha還是指派 Kaz Kobayashi管理 Steinberg。

2006

  • 推出 VST3,雷聲大雨水小,礙於音樂軟體市場的萎縮跟進投入 VST 3的廠商有限。

2008

  • 指派 Alan Macpherson為行銷總監在加州 Steinberg North America加強北美市場行銷動能。
  • 投注資源宣傳網路通路,在印第安那的技術支援團隊獨立規劃出 Steinberg專屬團隊。
  • 由 Yamaha內部資源開發推出 MR816 CSX與 MR816X兩款 Fireface錄音介面。

2009

  • 開始強化歐美以外的巴西、俄羅斯、印度及中國市場。
  • Nuendo 5為旗艦指標產品
  • 在北美重點都市定期舉辦使用者面對面討論工作坊。
  • Cubase 4.0在2006推出過了三年才在2009推出 Cubase 5.0,在2009之後將版本更新縮短到六個月至一年,增加市場曝光率。
  • 為了打擊盜版併購eLicenser technology

2011

  • 由 Yamaha開發的 Virtual Circuiting Modeling技術用著 Steinberg品牌與 Rupert Neve共同推出 Plugins產品。

2012

  • 到年底了,靜悄悄地...

2012/12/22

民主,誰做主?


電視跟課本訓練我們相信能自由發聲就是民主,就是好的,我們該把權力交給政府及企業這些專家來處理我們的教育、醫療、交通、能源、保險、金融。我們被要求妥協與讓步,因為社會需要和諧,經濟需要成長,系統需要穩定。因此人們被鼓勵著持續消費、加班、配合服從,有秩序且積極樂觀地生活。然而現在主要媒體通路已經被和諧,提出意見的年輕人被攻擊沒有禮貌。

政府及企業服務著人們?還是人們服務著政府及企業? 人們害怕政府及企業?還是政府及企業害怕人們?  為什麼當一個員工影響了企業的利益會被告到一無所有,而一個官員影響了整個國家的利益下台拍拍屁股走人大家就滿意了?

政黨對我來說就是一個團體透過宣傳打擊對手吸收支持者。了解行動電話的時候,我可以聽 Apple粉絲說 Samsung很爛很邪惡的地方與Apple優點,同時聽 Samsung粉絲說 Apple很爛很邪惡的地方跟Samsung優點,我不一定要對其中一個廠商全面倒。 同樣的,我對於黨派之間爭選票利用群眾影響政治局面的運作不是很有興趣,我希望能夠看到解決方案、調整跟改善,誰下台了誰被拱上去了,如果問題還在,對我來說不是很有興趣。

我不認為藍色綠色或金色的當權就會變得更好,我相信有三成的人願意參加里民大會,買股票的人有三成討論政策國家就會進步。我不認為用哪一套教育系統或高等教育規劃影響真的那麼大,家長願意去參加家長會,花時間陪伴了解小孩子的發展跟想法,孩子自然就會成長。政府採用了什麼振興經濟方案或救市方案只是在將納稅人的錢,順著人們的恐慌混水摸魚洗錢到特定集團口袋中,俄羅斯、印度、非洲、中國、南北、東歐有幾十億人願意用更低的薪資提供雇主更好的服務,哪個天才來管台灣的發展政策都不如台灣人自己找出路實際。

我覺得民主不是人民讓企業或政府照顧,是要自己做主,自己搞清楚狀況,自己為自己負責,要健康需要自己照顧生活飲食運動,而不是在吵著哪個減肥中心騙了我,另外一個減肥中心才是有用的。

2012/12/17

如何購買註冊 domain name


由於最近在找公司註冊的 Domain name,在此分享一些目前整理的資料,資料整理方向僅適合正當經營的公司,並沒有提到投資domain name獲利的相關資訊,文中包含 Domain命名、註冊步驟還有小建議三個部分,找到更新的資訊會不定時更新,也歡迎各位協助指正及補充。

命名的時候,實際的狀況是喜歡的跟受歡迎的網域名稱都已經被公司註冊或者網路蟑螂買走,除非本很厚,一般的 startups大概很難有足夠的資金買下最理想的網域名稱。所以命名這個階段就需要團隊腦力激盪出來一大串的名稱,從這一串名稱中排出喜好順序,再確認那些名稱是買的到又買得起的。在命名的原則上,要簡短、容易記憶且敘述性強,避免使用特殊符號或縮寫:

[簡短]

網址的長度最多可到 63個字元,但並不表示我們要全部都用完,合理的簡短網址容易輸入並且容易記憶,太過長的網址有時候會讓使用者打字輸入出錯頻繁而放棄繼續使用。

[容易記憶]

網域命名的目的不在讓使用者第一次到訪的時候能找到,而是第二次想回訪的時候能夠記得,好的網址應該可以輕鬆地在電話中跟客戶傳達,如果電話中不容易跟其他國家的使用者溝通的網址,都該避免。例如www.csxs.com在電話中大概就要確認個五六次。

[敘述性強]

網址中最好包含公司的完整名稱、服務或提供的產品。例如: www.funstayintaiwan.com或 www.taiwanesefood.com 可以讓使用者很快地了解到網站服務的重點是什麼。

[避免使用特殊符號]

再次提醒,網域命名的目的不在讓使用者第一次到訪的時候能找到,而是第二次想回訪的時候能夠記得,許多時候可能多了一個底線或者短線就讓使用者打不出網址,放棄繼續找尋。我們很難期望使用者在第一次到訪的時候就將網址加入我的最愛,大多數的使用者電腦中我的最愛幾乎變成他們不想去碰的垃圾桶(包含著上千個網址),加上透過行動裝置上網所到訪的網站,一個容易想起不容易打錯的網址才是選擇網域的重點。例如:www.taiwan-hotel.com流失的回顧率可能就比www.taiwanhotel.com多。

[避免使用縮寫]

許多科技公司在業界可能其公司縮寫名稱較有名,但對於普羅大眾來說同樣縮寫的公司在不同的產業可能有好幾間。比較建議的做法是完整地顯示公司或者服務的完整名稱。例如:havefuninTaiwan.com就比hfit.com較佳。

決定好名稱之後第一步是檢查網址是否可購買,通常可透過網站伺服器廠商協助查詢,許多廠商除了協助查找網址是否可購買之外,同時會協助找出相似可購買的網址供選購註冊。另外在 InterNIC的 whois查詢頁面也可以查找名稱是否已經有人註冊使用:http://www.internic.net/whois.html

需要注意的是,當我們在瀏覽器輸入一個網址連結不到的時候,可能是:
  • 該網域可供註冊,尚無人使用 
  • 網站尚未上線,已有人註冊 
  • 該網域已有人註冊,尚無上線計畫 
  • 網路蟑螂持有中
(所以瀏覽器連結不上某個網址的時候,並不一定代表我們可以購買註冊該網址。)

正式註冊則是需要透過ICANN認同的廠商提出申請(廠商清單: http://www.internic.net/regist.html),多數的網站伺服器廠商都有合作的網域名稱註冊廠商夥伴方便使用者同時採購註冊及伺服器租用的服務。這是比較方便但不是最符合經濟考量的方式,同樣的一個網域名稱跟不同的廠商購買價格範圍從 8-70美金都有,除了跟網站伺服器廠商購買之外,其實也可以直接跟授權廠商購買網域名稱註冊的服務。

幸運之神並不會永遠站在我們這一邊, 想購買的名稱被捷足先登了怎麼辦?畢竟好的名稱對於網路蟑螂來說就跟房地產炒家一樣地吸引人。這時候可以利用以下服務:


(後來我發現現在大一點的註冊公司都已經有backorder的功能了,他們會收一筆不能退還的費用 15-50USD,幾個月內會幫忙追蹤,買不到那筆錢他們還是會很不客氣地收下。)

如果我們是從別人那邊transfer網域名稱,接手網域名稱要注意一些地方。一般來說出讓網域名稱通常是因為 

1. 沒有意願繼續維護網站 
2.網路蟑螂賣不到好價格 
3.公司停業。

比較需要小心的狀況是該網域名稱先前被用來寄送廣告信或者因為其他原因被所有的搜尋引擎列入黑名單,不論再怎麼用心用力地經營行銷,這些網域名稱對於使用者來說將永不見天日。建議透過歷史搜尋引擎(http://www.archive.org/)來查看該網域名稱先前網站經營內容,Archive.org提供的網頁回溯查詢功能,能查詢不同時間特定網址的內容,檢查該網域名稱先前是否大量連結至賭博、成人或其他非法網站。

註冊完成之後,有兩個前輩建議的小動作各位可以參考:註冊多個網址&投入資源宣傳網址。

[註冊多個網址]例如蘋果電腦要讓使用者更容易找到他們的網站,就會同時註冊 www.mac.com, www.apple.com
, www.apple.com.tw, www.appletv.com並同時指向官方網站。如7-11公司的情況就建議同時註冊www.7-11.com, www.seveleleven.com, www.711.com讓使用者不小心打錯或者記錯的時候都可以轉址到公司的網站。比起流失的用戶,一個domain一年70美金的費用應該值得。

[投入資源宣傳網址]可在公司 LOGO及其他宣傳品資料上附上公司網址,這個簡單的步驟可讓網址傳播地更快更遠,加深使用者的記憶。這是一個投入成本小回收很大的小動作,可惜大部分的新公司都忽略了。

.us、.me、.pro這些網域都可以有許多有趣的組合,過去有些團隊認為非 .com的網域名稱都不值得參考,個人也持著認同的態度,但老實說如果公司真的夠強,蘋果、google、yahoo這些怪名字生意都可做這麼大,實力還是最重要的。

附註:

目前列入口袋名單的廠商有以下幾個,只是個人偏好。

GoDaddy
這是目前網路上找到最大的廠商,提供批次上傳功能將一串名稱送到伺服器查詢是否可購買。http://www.godaddy.com/gdshop/registrar/bulk/bulk.asp?ci=8991

Register.com
這是GoDaddy同一家的

IP Mirror
新加坡商,價格比GoDaddy便宜,在台灣有辦公室。

Whois
這個廠商跟InterNIC無關,只是搶到了個好名字。

2012/12/12

Think Dirty 個人美妝用品評鑑 App

Think Dirty 這個創業公司提供個人美妝商品的評比,透過行動裝置 app的型態教育消費者商品中可能存在的有毒成分,協助消費者透過實際消費的動作讓市場上優質的產品能夠勝出,同時淘汰對於健康有疑慮的產品,進而刺激廠商們更積極地開發無毒商品並對既有產品品管加入新的審核條件。

Think Dirty - Act Clean 目前開放公開測試申請中,有興趣的朋友可以透過官方網址申請 Beta

http://www.thinkdirtyapp.com/


同時附上前陣子很流行的 Story of Stuff台灣朋友翻譯字幕影片:)




2012/12/10

Ruby中的 Expression

括號有三種

{}   #{key}用來呼叫 key中的 value
       array.each { |x|, puts}來執行 array中每一個 key
[a,b,c] 用來表示 array, array中文字需要加上雙引號"", 數字則直接寫就好
            array[0] 則表示呼叫 array中第一個value
            array中可包含 array如 array=[["nick","marry",3],["alright","baby",4]]
            存入hash:hash["name"]="Mick"
            呼叫hash中 key對應 value puts hash["name"]
(a,b,c)置放在 method後來指定 ARGVs

比較
== 等於
!= 不等於
>= 大於等於   *大於要放前面
<=小於等於

布林
||       或者 or
&&   以及 and
!       非 not


2012/12/01

Ruby 文字資訊清單精簡寫法 %w()

在指定 array 的時候寫法通常為

names = [ "西瓜", "香蕉", "冬瓜"]

如果為了容易閱讀或者往後修改方便,通常會建議格式調整為

names = [
              "西瓜",
              "香蕉",
              "冬瓜"
               ]

但當所有的資訊都為文字串的時候,就可以使用 %w()來省去雙引號跟逗點。

names =%w(西瓜 香蕉 冬瓜)

當然要修改為更容易閱讀的格式也可調整如以下,連空格都可省去。

names =%w(
                   西瓜
                   香蕉
                   冬瓜
                    )

當然在程式碼中使用中文的時候可採用 utf8碼來閃過亂碼的問題唷:Ruby中解決中文字碼 UTF8的方法

Ruby中解決中文字碼 UTF8的方法

剛開始玩 Ruby,程式碼中加入中文文字串的時候可能會見到 invalid multibyte char (US-ASCII)的錯誤訊息,簡單的解決方法如下:


1. 在文字編輯器中記得指定編碼為UTF8,如UltraEdit預設為ASCII。

2. 可在 rb檔案前端加入以下程式碼:

#!/bin/env ruby
# encoding: utf-8

3. 使用 magic_encoding這個 gem在所有的rb檔前端加入 UTF8編碼資訊

sudo gem install magic_encoding





2012/11/30

Ruby中的 Loop方式


比較常使用的 Loop方式有九種

1. Loop
 最傳統也常見的 loop指令,指定起始的 number序號,每次執行過程中 number序號自動加上1,同時在前端加上 break if讓序號大於指定數字時中斷執行,這是七種方式中最不像 Ruby的 loop方式。
** Ruby自動產生的數字由 0開始,而不是 1
***中斷方式Break if




第二種方式 redo if

在這個例子裡面我們讓gets的時候,當發現到typo就會自動地跳回前端loop再 do一次,所以就很 next if 的功能,但他並不是skip,所以line_counter有繼續加總。





第三種方式 next if,當輸入typo的時候會跳過當次迴圈的執行內容,因此line_count並沒有增加。




2. until
 指定起始的 number 序號,使用 until number 大於指定數字持續的 do,每次執行過程中 number序號自動加上1。這種方式不需要加上 break,可以少打幾個字。



除了數字之外,until也可以用條件來決定flow。


3. While
 指定起始的 number 序號,使用 while number 小於指定數字持續的 do,每次執行過程中 number序號自動加上1。這種方式也不需要加上 break。或者用條件式處理:



4. times
 這大概是最簡短也最多人用的方式了,直接用 11.times do 這樣就搞定了,也是大家愛 ruby的原因。



5. each (array)
當我有一串數字或文字資料,依照清單中的數量一個一個接著執行。
例如:



6. each (range)
 跟list.each的差別在於,rage著重在一段連續的序列值的運用。可以使用兩個整數代數的區間差異來決定 loop的頻率。

**兩個數值中間放兩個點跟三個點的差異在於
 兩個點= count till  算到最後一個值
 三個點 = count before  算到最後一個值<color=red>之前<\color>




7.for
 for兩個數值之前 do,主要也是用在兩個代數中間的次數當作 loop的次數。



for也可搭配array使用


精簡寫法


8. upto (2012/12/01更新)

今天又看到兩種寫法,於此補充(可與for比較)


9. [ ].map do (2012/12/01更新)
依照一個清單中的資訊數量來當作執行的次數




詳見 %w用法

在Loop中如果要跳過某些 Array中的資料或序列的時候,可以用 NEXT IF

10. Array/Hash Each (2012/12/10更新)
hash.each { |x, y| puts "#{x}: #{y}" } 的寫法可以把Hash中的對應鍵值個別或同時呼叫出來執行一次,有多少組執行幾次,然後用 NEXT IF來跳開特定鍵值。


最後附上一個簡單的密碼產生器寫法,非常的不精簡,但比較容易讓剛接觸 Ruby的朋友們看得懂:)






2012/11/02