弦而時習之

淺談 Ruby 的 Fiber(ㄧ)

前陣子再研究 Ruby 從 1.9.3 就開始提供的 Fiber 該怎麼使用,不過網路上的資料大多都只是簡單的討論。那麼 Fiber 到底是什麼呢?這系列的文章會詳細的介紹 Fiber 的基本概念,還有一些可以應用的方式。

RubyKaigi 2018 會後心得

今年的 RubyKaigi 比去年提早不少,作為 Ruby 開發者最大的盛會,今年也不意外的延續去年探討 Ruby 3 的可能性跟更多 Ruby 的深度應用。也因次,不意外的讓大家都聽的似懂非懂,而且還讓我感覺一年比一年的難度更高。

總之,來看看今年的 RubyKaigi 吧!

RubyElixirConfTW 2018 會後感想

Ruby Conference Taiwan 到今年已經是第七年了,印象中我大概是從 2013 年左右開始參加了,應該也有四五次。今年也加入了 Elixir 一起合辦,因為是五倍紅寶石的員工,所以也當了兩年的工作人員。

那麼,就看看今年有什麼新鮮的事情吧!

自由的 Ruby 類別(二)

上一篇文章已經討論過關於 Ruby 中的類別是怎樣運作的,這篇文章則會來討論如何拓展 Ruby 類別。

大部分的人寫 Ruby 有很大的原因是因為 Rails 但是上面像是 has_manybefore_action 這些可以直接在類別上做的事情,很明顯不是 Ruby 內建的,到底是怎麼運作的呢?

Ruby 中該如何 Raise 一個錯誤

前幾天的晚上朋友在 Facebook 上問了一個問題。

1
raise HTTPError, 'Not Found'

1
raise HTTPError.new('Not Found')

哪個比較快?也因為這樣,我們意外的發現 Ruby 對上面兩段程式碼的定義上其實是不太一樣的。

Stripe 的 Idempotency Key 設計機制

週末看到一篇 Stripe 工程師所寫的文章,是一篇關於 Idempotency Key (幂等鍵)的設計機制。因為是一篇非常棒的文章,而且裡面的概念除了可以應用在 API 設計之外,很多程式設計上需要解決的問題都可以透過這個概念來處理。

原文非常的長而且很詳細,這篇文章只會做簡單的重點整理。

有興趣的話可以打開原文來讀,是一篇很有用的文章。

作者是很厲害的工程師,部落格上的文章都是非常精實的技術文。

自由的 Ruby 類別(一)

以前還在讀書的時候,常常會思考所謂的「自由」是什麼,想著以後一定要過著自由的生活。不過現實就是到了社會,依舊還是有許多限制讓你無法自由自在。

不過,在 Ruby 中的類別卻是非常自由的。

有稍微接觸過 Ruby 的人應該都知道幾個特性:

  • 物件導向語言
  • 一切都是物件

在 RubyKaigi 2017 年後的反思

在這幾個月,感覺到自己好像快要突破這一階段的瓶頸,所以做了一些調整試試看能不能順利的突破,同時也到了每年公司參與 RubyKaigi 的時期。

要說的話,今年的 RubyKaigi 整體的方向對我來說很不一樣,因為有不少關於 RubyKaigi 底層的議程被提出來,這在台灣舉辦研討會需要照顧到不同客群的人總會需要有一些取捨。

不過,對日本——Ruby 的發源地來說,因為有不同類型的研討會互補,反而可以在不同的研討會上,著重不同的情境來討論。

在 RubyKaigi 2016 後的新視野

八月份退伍後,馬上就加入了五倍紅寶石。而隨之而來的,剛好是在九月份為期九天的員工旅遊,一個非常充實的員工旅遊。

實際上,我們只有三天左右在日本遊玩。原本的行程會穿插著與日本 Ruby 社群的交流,以及三天的 RubyKaigi 行程。

這次的旅遊算是增長了不少見識,讓我想到高中快畢業時第一次知道了 COSCUP 之後瘋狂地參加各種語言的研討會,幾乎一年每個月都在跑研討會。印象沒錯的話,大概是 2013 年才參與到 RubyConf 也因為參加了 RubyConf 的活動,退伍前後蠻多工作機會都是來自 Ruby 圈的,算是整個程式經歷中給我幫助最多的社群了吧。

mRuby on Web

忙裡偷閒玩了一下 Emscripten 將 mRuby 拉到 Web 上面運行。

最初是看到 WebRuby 這個專案的應用 Webirb 才決定要挑戰將 mruby 丟到 Web 上面跑。

其實這個過程中 WebRuby 給我很多參考方向,才讓我得以順利完成 mruby on Web 的挑戰。