關於 #筆記 的內容

蒼時弦也蒼時弦也

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

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

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

蒼時弦也蒼時弦也

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

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

蒼時弦也蒼時弦也

Ruby 中該如何 Raise 一個錯誤

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

1raise HTTPError, 'Not Found'

1raise 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 自己使用也許沒什麼問題,但是當發布成一個工具的時候,就多了非常多細節要處理。

蒼時弦也蒼時弦也

Deis 架構分析(一)

最近隨著 Container 技術的成熟,以及 CoreOS 等工具的出現。開始有一些 PaaS 的工具出現,而 Deis 就是其中一個。

Deis 本身是受到 Heroku 所啟發的開源 PaaS 專案,透過 Deis 可以輕鬆的建構 Heroku-like 的 PaaS 環境,若是有能夠管理伺服器的人員,其實可以考慮以這種方式部屬網站。相對 Heroku 來說,基本的 CoreOS Cluster 只要三台機器,以 Linode 2GB 的方案來看,甚至還比 Heroku 單個 2x dyno 還便宜呢!

關於 Deis 的架構,在官方的文件已經有做出說明,所以這系列的文章著重在閱讀原始碼以及探討關於 Deis 是如何實踐 Heroku-like 的 PaaS 環境。

我本身是 Heroku 的重度使用者,因為透過 git 管理以及豐富的 Addon 在開發時其實是非常方便的。 不過有時候還是會受到一些限制,這時候 Deis 就提供了很大的幫助。不過這類 PaaS 工具其實還不能說非常成熟,使用上還是會有不少問題,透過了解底層的機制來建構一個自己的版本,在某些情境反而更加容易控制跟維護。

蒼時弦也蒼時弦也

Unreal Engine 4 的自動化測試

最近幾年做測試似乎變成一個非常熱門的議題,而且也逐漸的被大多開發者了解到做測試的優點。不過,一般的軟體可以做測試倒是沒有什麼問題,那麼遊戲該怎麼做測試呢?

我自己認為這是一個很難探討的問題,大部份的遊戲就基於不確定性而變得有趣。在充滿不確定的情境下,要做測試就變得非常困難了。

不過,還是有像是基本的公式計算、數值檢查等等可以做基本的檢查,雖然無法完全的對遊玩上做完整的測試。但是至少可以確保功能上與數值上是以正確的數值做計算。

那麼,就來談談 Unreal Engien 4 的自動化測試工具 Automation Tools 吧!