我在 Ruby 埋了一個陷阱 - Signal 的應用
在 Ruby 之中,其實隱藏了很多非常實用的標準函式庫,而 Signal 就是其中一個。
我們在寫 Ruby 大多數時候都是 Ruby on Rails 框架的應用,但是你們有想過當我們在一些 Gem 運行的時候,使用 Ctrl + C 為什麼不會出現錯誤嗎?
例如我們常常用到的 irb
和 pry
為什麼按下 Ctrl + C 的時候不是直接中斷,卻還能繼續運作?
在 Ruby 之中,其實隱藏了很多非常實用的標準函式庫,而 Signal 就是其中一個。
我們在寫 Ruby 大多數時候都是 Ruby on Rails 框架的應用,但是你們有想過當我們在一些 Gem 運行的時候,使用 Ctrl + C 為什麼不會出現錯誤嗎?
例如我們常常用到的 irb
和 pry
為什麼按下 Ctrl + C 的時候不是直接中斷,卻還能繼續運作?
之前有一段時間因為用 KVM 手動管理五倍的虛擬機花上不少時間,評估之後我們就調整成 ProxmoxVE 來管理,至少在大多數的情況有 GUI 是很方便的。
不過使用的權限還是限制在有權限管理機器的人身上,最近剛好有不少新同事加入,想讓他們練習部署伺服器。
所以就有了這樣的問題:
可以讓同事自己申請虛擬機來練習嗎?
原本是想討論 Enumerable 這個 Module 的機制跟運作原理,不過越寫越發現光是一篇文章很難講明白。
所以就一邊查資料跟 Ruby 原始碼,慢慢的把 Enumerable / Enumerator 這兩個讓 #each
運作起來的機制討論清楚。
在 Ruby 裡面我們已經很熟悉使用 #each
來對陣列相關的物件進行操作,不過在大部分的語言我們都需要透過迴圈的方式來取出陣列的元素,那麼 #each
這個方法到底是怎麼讓我們用這麼方便的機制來操作陣列的呢?
最近「台灣共識」很熱門,公司的粉專也分享了 Ruby 版的台灣共識。
我們在公司內部的群組大家其實討論了蠻久,如果只是單純的去實作跟其他語言一樣的內容,不就沒有意義了嗎?
我們之所以會選擇用 Ruby 來當作工作上的工具,就表示他有一些特別的地方吸引我們。
所以,上面用了哪些 Ruby 技巧讓我們一起來分析看看!
從雲端開始熱門起來後,為了能能讓提供不同服務的伺服器能夠被自動的偵測,我們在許多雲端相關的工具都會看到 Service Discovery 這個名詞。
不過,除了雲端上的服務能夠透過這樣的機制互相「發現」對方,我們也可以在區網中用類似的方法找到「提供服務」的裝置。
這就要從 mDNS (Multicast DNS) 和 DNS-SD (DNS-based Service Discovery) 開始談起。
最近在工作上或者跟有在做網站開發的朋友聊天,都剛好會討論到 Bootstrap 這個 CSS 框架。
在業界,我想大部分的公司也大多會以 Bootstrap 為基礎來開發網站,而這幾年網路上可以買到的版型也多以 Bootstrap 為主。
從這些跡象看起來,會使用 Bootstrap 很重要,中間的過程跟原因是什麼呢?
最近因為手邊有一個工作以外的專案需要搭配硬體做一些 IoT 類型的應用,雖然之前在五倍紅寶石開發的 Tamashii 系列應用已經足以應對在這個專案上開發所需的解決方案,但是依舊缺少了一些功能。
也就是我們過去並沒有考慮到的,如果裝置是交給一般使用者的狀況下,如何在透過網路的前提將裝置更新。
這是很多硬體都會有的功能,但是就目前而言 Tamashii 並不支援。
上一篇文章輸在起跑點已經稍微討論過心態上的問題,所以馬上就是要怎麼開始的問題。
大部分的人不論之前有沒有經驗,一定會冒出「要學什麼語言?」「某某語言很熱門是不是應該去學?」之類的問題。
很多時候,我認為這不是真正的問題。