從 Atom 跳到 Visual Studio Code 編輯器

以前最討厭的大概就是微軟的 IDE 跟 Dreamweaver 了吧,自從離開 Visual Basic 6 生活圈之後我就很少碰到微軟的產品了,除了玩遊戲才會開一下 Windows,不然其他時間都是在用 Macbook。 不過自從 Windows 10 跟 Surface Studio 出來之後,能夠明顯地感受到微軟正在慢慢取代蘋果以前的位置,這樣說也許太過於誇張,不過確實連外國人都有如此感受,我曾看過有個留言說道:

3. 鍵盤、手把和滑鼠處理——在 Golang 透過 Ebiten(炸蝦)來製作 8-Bit 遊戲!

一個不能和使用者互動的遊戲會令人感到十分地無聊,不是嗎?這次你會學到如何在 Ebiten 中偵測鍵盤或是滑鼠和手把的輸入,所以你就可以在玩家按下特定按鍵的時候進行相關回饋。 現在讓我們回到第一章的範例,因為那個範例就足夠應用在這次的教學了: package main import ( "github.com/hajimehoshi/ebiten" "github.com/hajimehoshi/ebiten/ebitenutil" ) func update(screen *ebiten.Image)

2. 畫布、顏色與矩形——在 Golang 透過 Ebiten(炸蝦)來製作 8-Bit 遊戲!

在上一章我們提到了如何建立一個基本的遊戲框架,但那還不足以構成一個遊戲(畢竟只有一串文字嘛),在那之前,我們需要知道更多有關遊戲畫面的資訊,所以接下來要提到的就是「螢幕畫布」。 螢幕畫布是整個遊戲中最重要的地方,螢幕畫布用來呈現任何你能夠看見的東西,在你不注意的時候螢幕畫布可能已經更新了數百次,但是因為速度夠快所以你並不會察覺。 現在讓我們接續上次的程式碼吧!如果你忘記了上次的程式碼長怎樣,我已經幫你帶到這邊來了,順帶一提,我稍稍加上了一些註釋 :)。 package main import ( "github.com/hajimehoshi/ebiten" "github.com/

設計一個 ERD 資料表結構用以存放使用者/網站設定

什麼是 ERD? 這裡有維基百科替你解釋,主要分為實體和關聯兩者,我在這裡節錄些重要的段落: 實體(Entity)表示一個離散對象。實體可以被(粗略地)認為是名詞,如電腦、歌曲。 關聯描述了兩個或更多實體相互如何關聯。聯繫可以被(粗略地)認為是動詞,如:在公司和電腦之間的擁有關聯。 說真的這是在供三小我真的毫無頭緒。 我為什麼要用這種方式儲存使用者設定? 我研究了很多儲存設定的方式,發現 ERD 結構是最符合彈性還有儲存大量資料的。

在 Linux 上安裝 Sassc,效能比原生 Ruby Sass 快十倍!

原生的 Ruby Sass 確實慢到一個極致,如果你只編譯幾個 sass 是感受不到的,而我最近在編譯像 Tocas UI 這樣的大型 CSS 專案,發現到當你更改一個 sass 檔案,你需要等待至少六秒以上,整個 css 編譯才會結束,就算修改的只是一個 display: none 也要等六秒才會有結果,這些時間都可以來做三明治了。

什麼是 Git?我要怎麼在 Ubuntu 上安裝 Git?

什麼是 Git? Git 其實主要被用在版本控制,還有協同合作,和那數不盡的倉庫(Repo)。 在我了解 Git 之前,我都想說我何必去用這種東西,甚至還會花我時間,後來證明我錯了。 我為什麼需要版本控制? 在你使用版本控制之前,你是怎麼備份你的原始碼的?也許你是像我一樣,透過複製一份資料夾,然後放進壓縮檔,接著上傳到 Google Drive 或者 Dropbox 當作備份,

用 Coveralls 來透過「程式碼涵蓋率」檢測你的「單元測試覆蓋量」!

一旦你的專案有了先前提到的單元測試後,你可以透過程式碼涵蓋率來查看你的單元測試涵蓋了你整個專案的多少百分比,和相關資料。 我為什麼要知道涵蓋率? 透過得知涵蓋率和其資料,你能夠更加地完善你的單元測試,讓你的專案更加完固。 什麼是 Coveralls? Coveralls 是一家程式碼涵蓋率資料分析平台,當我們的單元測試結束後會生成一個涵蓋率資料,接著 Coveralls 會接收到這個資料,然後做分析,我們就可以在網站上直接觀看相關的資料。 1. 事前準備 在這裡我們是透過 PHPUnit 產生 Coverage 的報表,然後自動上傳到

透過 PHPUnit 來幫你的 PHP 專案進行單元測試!

單元測試能夠透過一個單元一個單元逐一地測試你的程式,單元測試通常會放置在 CI 上自動執行,意思就是當你 Git Push 了你的專案至遠端,CI 就會自動測試你的程式是否有問題,並且在出現問題時自動回報給你。 我為什麼需要單元測試? 如果你正在撰寫一個大型專案,這個專案內的程式一定互相有關聯(像是相依性),一旦你改寫了 B 的部分,你可能就會讓 A 部分失效,但這個時候你只測試 B 的部分,你就沒辦法發覺

解決 Mysql2::Error: Incorrect string value 錯誤

這是什麼錯誤?你正要輸入的資料編碼並不符合資料表的編碼,可能發生在任何需要和資料庫連線的程式上(例如:Redmine)。 怎麼解決? 在 Stackoverflow 翻到這個解答,這會將任何 utf8 編碼的資料庫轉換成 utf8_general_ci,但你需要先找出編碼不是 utf8_general_ci 的資料庫,然後在 Shell 執行下列指令。請記得自行替換資料庫名稱、帳號、

MySQL

解決 Sass 的 Could not find sass (>= 0) amongst 錯誤

詳細狀況我也不清楚,但是我在這個 Stackoverflow 找到了解答。 怎麼解決? 重新安裝 Sass,但這次透過不同的安裝方式。 $ gem uninstall sass $ gem install sass --no-ri --no-rdoc $ gem install compass --no-ri --no-rdoc

SASS

Key/Value 表格在 MySQL 中做出 WHERE ... AND ...

一般的資料庫表格都是水平欄位,而 Key/Value 表格將欄位設計成垂直欄位讓欄位更有彈性,如此一來你可以依照不同種類來給他們不同的欄位,而不用保持一堆欄位處於 NULL 的狀態。 而採用這種設計的 Key/Value 表格通常只有三個欄位:「編號」、「設定名稱」、「設定值」。 但是這種做法也不是沒有缺點,首先你的資料會新增更多筆(可能以倍數新增),而當你遇到要 SELECT ... WHERE .. AND 的時候就會發生問題,而這就是今天要探討的地方。

MySQL

讓你的 Git 一次 Push 到多個不同的遠端吧!

一般來說一個 Git 都只會 Push 到一個遠端,但是這樣是很不安全的,假設那個唯一的遠端掛了,你的資料也就跟著不見了(當然本機還有),不過我個人還是會推薦一次 Push 到多個遠端。 那我 Push 的時候需要打兩行指令嗎? 不用,我們把多個遠端的網址都設定在 Origin,如此一來你只需要打 git push 就可以一次 Push 到多個遠端。 1.

Git

在 Patreon 上贊助創作者吧!

Patreon 是一個像募資平台的網站,但這次由募資轉成支付薪水,意思就是你可以每個月支付一美金(台幣三十元)到數百美金給你喜愛的創作者,讓他們更能夠創作出你喜愛的東西,扣除 Patreon 等之後的手續費就是他們每個月可以收到的費用,就像是月付型的贊助。 還請注意的是這些支出都由信用卡或 PayPal 付款。 我為什麼要付薪水給創作者? 通常來說創作者有別的工作來維持他們的基本生活,因為他們的興趣沒有辦法支付生活開銷,這導致了創作者沒有辦法全心全意地創作自己的東西,而且還面臨到分心的問題,因為他們需要在創作的同時兼顧其他的工作,而這個時候就能夠藉由 Patreon 來讓創作者的興趣成為一個全職的工作, 而你就扮演了這個拯救創作者的重要角色。 我可以拿到什麼?

從 Line 換到 Telegram:一個更好的通訊軟體!

Telegram 是一個新興通訊軟體,不過目前已有數多台灣使用者,其差異與十分封閉的 Line 相去甚遠。特色真的多到可以額外寫成一篇文章,在這裡稍微介紹一下(雖然還是蠻多的): 完全免費(連貼圖、企業頻道也是)。 (無論是貼圖,還是在 Line 上要收費的頻道,在此通通免費。) 可以傳送 GIF、YouTube 影片。 (你可以直接看見動態 GIF、或是直接預覽影片。) 可傳送大檔案。

從 PHP 到 Golang 的筆記

我為什麼從 PHP 轉到 Golang? PHP 和模塊之間的關係令人感到煩躁,假設你要讀取 yaml 檔案,你需要有一個 yaml 的模塊,為此,你還需要將其編譯然後將編譯後的模塊擺放至指定位置,之後換了一台伺服器你還要重新編譯,這點到現在還是沒有改善;順帶一提之後出了 PHP 7 效能確實提升了許多(比 Python 3 快了些),但