客製化你樹莓派上運行的 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 部分是裡面的一個子目錄,那麼就讓我們開始了解運行的架構吧!

微妙的 Unreal Engine 4 語言偵測機制

最近因為我們團隊將遠古神話上架到 Steam 上面的關係,收到不少歐美玩家表示需要英文語言的支援。
其實這方面也是當初考慮不周的問題,也剛好碰到了國軍的過年年假有比較多的時間可以處理。

原本預期是一天之內就解決這個問題,不過現實上倒是花了不少額外的功夫去處理。
這也是我們使用 Unreal Engine 4 一直以來的問題,雖然承襲了 UDK 眾多強大的功能,但是卻還未完全的成熟。
從約兩到三個月就會改版一次,而且加入大量功能的情況來看,還有許多需要解決的問題。

過去 Epic Games 自己使用也許沒什麼問題,但是當發布成一個工具的時候,就多了非常多細節要處理。