思元的開發筆記

關於 web service, unity, blogger 等軟體工程筆記

顯示具有 程式語言 標籤的文章。 顯示所有文章

Go Reader Pattern 設計與實作

最近在寫小專案所遇到的設計問題,其中一個目標是從檔案中讀取英文單字 (word),並且將其轉換成英文小寫,因此記錄如何在 Golang 設計此機制,並且不斷改進寫了三個版本,並撰寫額外的測試程式碼 (testing code) 進行驗證。

HTTP TimeoutHandler 所踩到的雷與解決方式,需要額外判斷 Request.Context() 的狀態

最近遇到在 HTTP 伺服器壓力測試時遇到棘手的問題,從 nginx logs 發現伺服器回應許多 HTTP 503 service unavailable 的錯誤,一路追蹤最終發現是程式碼實作錯誤,記錄其筆記提醒自己不要忘記這個雷。

Go with Cgo 靜態連結 (static linking) 函式庫建置範例與筆記

延續上一篇 Go with Cgo 動態連結 的文章,由於部署 (deployment) 需求的改變,合作廠商 IT 運維技術人員 (Ops) 對於 Linux 的不熟悉,期望部署不需要管理那些動態連結 (dynamic linking) 函式庫,因而開始研究改用靜態連...

Go with Cgo 動態連結 (dynamic linking) 函式庫建置範例與筆記

在 上一篇文章 中,已經知道如何在 Windows 中,利用 gcc/g++ 建置動態連結函式庫 (dynamic-link library),本篇文章筆記如何在 Go (Golang) 中,利用 cgo 來動態連結函式庫,呼叫使用其函式。

C# 回傳內部資料集合的幾種方式,考慮封裝與設計需求

Game Jam 活動 上遇到的有趣問題,如何設計回傳資料集合 (data collection) 的函式 (function)?筆記以下幾種方式,範例採用背包類別 (ItemBag class),要將其類別的內部道具資料,暴露給其他類別使用。 附註:System.Co...

Unity C# 遊戲事件訊息通知機制設計 - Observer pattern

前陣子同事分享去資策會 Design pattern 課程所學,聽到 Observer pattern (觀察者模式) 的介紹,感覺這比較是 C++ 老派的實作方式,不一定適用於 C#,因此在此寫此筆記記錄。

Unity AssetBundle 資料列表載入以及打包架構思考,使用 Pokémon 作為範例

最近社群有看到有人詢問,關於如何在 Unity 中,設計敵人列表的 AssetBundle 資源加載架構設計,例如之前釋出一版本包含敵人 A, B, 以及 C 種類,在之後又追加敵人 D 以及 E 的資料,要如何處理這多出來的資源載入,使得原先的資源可以不用重新下載,只需要...

Unity 根據美術需求客製化 Sprite shader,基於官方 shader 開始改起

在社群中看到有人詢問 2D 遊戲上的特殊效果如何製作,從需求中得知這種要求,能直接改 shader 是最快了,畢竟 shader 可以決定每一個 Pixel 最終呈現顏色的可程式化著色器 (Programmable shader) 呢。因此就好奇跟作者 Leo Wang...

Golang Iterator Channel Implementation

這是一個關於 Go 的程式研究紀錄筆記,原先設計一個迭代器的操作模式 (Iterator pattern):

Unity AssetBundle 快取機制與載入範例

前陣子看到有人詢問關於 AssetBundle 載入以及其快取機制 (caching) 的處理問題,因此整理這篇筆記,供之後給團隊解說與教學之用。

Unity Prefabs 之使用方式筆記

Prefab (預製物件) 是在 Unity 中經常被使用的機制之一,能將 GameObject 以及其 Components 的屬性狀態儲存為單一個 Asset。當 Prefab 屬性調整時,Unity 能夠自動更新放置在場景 (Scenes) 中的實體物件 (Prefa...

Unity 載入外部檔案機制之整理筆記

最近看到社團一些詢問 Unity 載入外部設定檔的問題,因此整理若要在 Unity 中實作外部載入的功能,有哪些機制可以使用以及比較。

Accupass 瀏覽擴充功能,使用 Javascript + TamperMonkey 自製自動加載頁面

提示:發佈文章前發現其網站改版,以下腳本是針對 舊版本的活動瀏覽 Accupass 活動通,是一個集結各式活動並販售活動票券網站(亦可參考另一個同類型的網站 KKTIX ),自己蠻常在活動通上瀏覽活動,讓自己的下班生活能夠多點變化,接觸職場沒機會接觸的議題與活動。...

Evernote to Blogger,第一次在 Golang 聚會中分享個人專案

What is this Evernote to Blogger 是一個自己的個人專案,主要是要解決自己的發佈文章的痛點,串接 Evernote 以及 Blogger APIs,使得發佈文章流程更能簡化的專案。

使用 Golang 串接 Google Blogger API,張貼文章與上傳圖片

個人專案需求,建置較容易發佈文章到部落格的流程服務,使用 golang 串接 Google Blogger API,將文章文字以及其圖片上傳到 Blogger 平台。Google 已經在 Github 上發布專為 golang 所準備的 SDK 實作,其中包含管理部落...

Evernote SDK for Golang 自行建置、使用範例以及開放授權流程 (OAuth)

由於個人需求需要能從 Evernote 下載筆記以及資源,但官方網站沒有能看到 SDK for Golang,且官方 Github 帳號中也沒有看到,想必目前是現在還沒有正式支援吧,也可能是 Golang 開發者還不常接 Evernote……。

Unity Coroutine 使用筆記

最近有人問為什麼 Nested coroutine 的機制與問題,為什麼會是需要 yield return StartCoroutine(...) ,而不能省略 StartCoroutine ?在久遠的 Unity3.x 時代,印象中得呼叫該函數才能夠正常運作。...

Golang HTTP Request 遇到的坑:An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.

之前服務要上線前,開始跑內部測試發現的問題,從 Event log 留意到服務會自動關閉,從中找到錯誤訊息如下:

Unity AssetBundle Variants 機制研究筆記

最近使用 AssetBundle Variants 機制來打包遊戲專案,紀錄打包遇到的問題以及解決筆記。關於 AssetBnudles 機制可以參考 系列文章 。

如何在 Unity 中實作場景資源參照 (SceneAsset Reference)

社團中看到有人問如何建立場景參照 (Scene Reference),當改變場景檔案名稱時 (*.unity),其 Reference 不會消失的功能,激起一點好奇心研究。查看 Unity 本身沒有提供該功能,Unity 場景管理 (SceneManager) 都是靠場景...