你看懂五倍紅寶石粉專上的 Ruby 版台灣共識了嗎?

最近「台灣共識」很熱門,公司的粉專也分享了 Ruby 版的台灣共識。

我們在公司內部的群組大家其實討論了蠻久,如果只是單純的去實作跟其他語言一樣的內容,不就沒有意義了嗎?

我們之所以會選擇用 Ruby 來當作工作上的工具,就表示他有一些特別的地方吸引我們。

所以,上面用了哪些 Ruby 技巧讓我們一起來分析看看!

客製化你樹莓派上運行的 Linux

最近因為手邊有一個工作以外的專案需要搭配硬體做一些 IoT 類型的應用,雖然之前在五倍紅寶石開發的 Tamashii 系列應用已經足以應對在這個專案上開發所需的解決方案,但是依舊缺少了一些功能。

也就是我們過去並沒有考慮到的,如果裝置是交給一般使用者的狀況下,如何在透過網路的前提將裝置更新。

這是很多硬體都會有的功能,但是就目前而言 Tamashii 並不支援。

我的 Chrome 會說話

這是很多年前的事情了,當時看到別人的 Chrome 竟然會說話,讓我震驚了很久。但是花了很多年都沒有找到要怎麼做,不過最近因為一些關係,我終於知道了他的秘密!

如何在 2018 年被詐騙

這是關於某天晚上接到詐騙電話的分析,因為過程中太多細節的東西讓人掉入陷阱,跟同事聊過之後覺得還是寫一篇文章記錄會比較好,至少不會有人又踩到這樣的坑。

這篇文章重點也很簡單,「不要以為你不會被騙」

使用 Turbolinks 時 Google Analytics 並沒有正確運作

最近因為在五倍紅寶石配合同事做官網的 SEO 優化,比較常見的行銷工具像是 Google Analytics 之類的就一起拿出來玩。

實驗的對象首選當然是自己的網站,不過在調整的時候卻發現有一些情況有點異常。

Apartment 與 Globalize 隱藏在方便背後的陷阱

手邊有一個專案剛好是需要滿足「多網站」並且每個網站都能夠「多語言切換」這兩個條件,在這兩個解決方案中最好處理的就是 Apartment 和 Globalize 這兩個 Ruby Gem 了。

不過,在某些情況卻變成了問題。幸好運氣不錯的是還在開發階段,還有辦法將這個問題透過替換 Gem 進行修正。

管理 Ruby on Rails 外部 Assets 的小技巧

在工作的時候經常會需要套用一些佈景主題,主要大多是因為客戶還在 MVP (最小可行產品) 的階段,只需要可以表現其商業價值運作的系統即可。不過,如果我們依照 Ruby on Rails 預設的方式把外部的佈景相關檔案分類後放到 vendor/assets 目錄下,反而會變得難以管理。

Ruby 中該如何 Raise 一個錯誤

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

1
raise HTTPError, 'Not Found'

1
raise HTTPError.new('Not Found')

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

在 PostgreSQL 中使用遞迴查詢來找尋父節點

老爸的公司在去年設計了一個紅利積點的消費回饋機制,裡面採用了樹狀的結構。用來改善傳統多層次傳銷造成的下線提供好處給上線,而下線卻需要去找更多下線來獲取回饋的異常機制。

不過這個設計有一個問題,就是他比傳統的樹成長的速度還會再更快些。也就表示在 Rails 裡面現有用來解決樹狀結構的一些套件並不適合使用。

Deis 架構分析(二)

延續上一篇的內容,這篇文章要先來討論比較好懂的 Router 部分。

首先,在 Deis 的設計裡面,基本上所有的服務都是包成一個 Image 作為 Continaer 在 CoreOS 運行的。就這點來看,其實是非常符合 Mircoservice 架構的設計。同時我們也可以很輕鬆地將這些服務獨立出來使用,這篇文章討論的 Router 除了原本的用途外,也很適合用來學習透過 etcd 部署自動化更新設定檔的環境。

Deis 的原始碼都放在一起,其中 Router 部分是裡面的一個子目錄,那麼就讓我們開始了解運行的架構吧!