2018/11/13

用 Stylus 幫你的 GitHub 網頁換皮

原本 GitHub 的配色 [截圖至 github.com]
可能有人跟我一樣比較偏好暗一點的背景色
所以我試著找方法來改變 GitHub 網頁的配色

修改後 GitHub 的配色 [截圖至 github.com]

研究了一下發現 GitHub-Dark 這個 repo
裡面有教你透過安裝 Stylus 這個 browser extension
再加上套用設計好的 CSS
就可以將你的 GitHub 網頁套用你喜歡的配色
不過 Stylus 是透過 URL matching 來決定哪個網站要套用哪套 CSS
如果公司使用的是 GitHub Enterprise
你就需要修改 Stylus 的設定把 self-hosted 的 domain 加入
這裡以 Chrome 為範例示範流程

點下右上角 Stylus Icon 後點擊 Manage 按鈕
點擊 GitHub Dark (看起來不像可以點的樣子)
1. 點擊最右邊的加號
2. 在 URL matching the regexp 填入你想套用的 GitHub domain
3. 最後點左上角的 Save

2018/07/19

再見 VIVOTEK

本文開始,文長請見諒

初見晶睿通訊


其實當初國防役在面試的時候
VIVOTEK 並沒有在我投遞履歷的清單當中
因為金門王的建議
所以我才投了 VIVOTEK
當時第一關的面試官是 Bruce
我到現在還記得他問了甚麼問題 XD
也在面試的過程中
跟未來會合作多年的 Diro 哥打到照面
很幸運的我通過了第一關的面試
接著與當時的經理喬伊及藍總的面試也順利
於是我就這樣取得了 VIVOTEK 的 offer

國防役的四年


我在 2007 年 10 月提前先到公司上班
之後再到關西受國防役的軍事訓練
2008 年的 1 月 14 日是我的報到日
也是在 VIVOTEK 國防役正式啟動的日子
很幸運地加入了當時研發二部 (R2) 的 Server Team
組長是 Lloyd
我們組一開始含組長總共就三個人
R2 在那時候所有的人也才二十人不到
但是我覺得我們是小而美的單位
當年肩負了相當重要的自有品牌軟體的開發
印象非常非常深的是有一年跨年夜
離開公司的時候跟同組的 Jason 說
「你等下說不定會在福和橋上看到一零一煙火喔 XD」
結果連假結束 R2 的大家長 Perkins 說他元旦四日連假都有來公司 Orz

總之我覺得能在 VIVOTEK 服國防役是非常幸運的
因為從小道消息指出
在關西同班的某些同袍
報到了一周還一個月後就直接決定回役
有地方是到職一個月後
就讓人寧願回部隊當兵也不想待四年
可見那地方有多水深火熱 XD
非常感謝所有 VIVOTEK 的同事長官
讓我能在這學習到非常多的技能與經驗

管理工作帶來不同的職涯經歷


隨著 R2 人數漸增
運氣不錯的被晉升成初階管理人員
自己的組最少的時候有三個組員
最多的時候則有七個組員
一直到最後離職前
我都還是擔任組長的職務
能夠接觸管理工作是我職涯中最特別的經驗

Perkins 在我剛進公司的第一年
有次面談時跟我提到
在面對把工作當作 routine 卻缺乏動力提升自己的人時
你會怎麼做?
當時的我屬於
「每個人應該都有選擇自己生活方式的自由,我不應干涉對方」這一派
P 老大說他以前也是這樣想的
但是後來他改變了
他當時的說法大概是這樣
「如果你的幫助或建議,能夠讓他有一點點改變的契機,那對他來說會是很大的影響」

有趣的是 P 老大並沒有告訴我一定要這樣想
但我在擔任管理職的過程中竟慢慢變成他口中的那一派
我喜歡分享我會的給其他人
我也喜歡回答其他人的問題
我更喜歡聽聽成員對於目前的工作有甚麼看法
並試著討論及給予他我能提出的建議
這是剛開始工作的我不會做的事情
以前的我覺得何必去改變別人的想法跟價值觀
現在我覺得如果他可以從我這邊得到一絲絲資訊
使得他自己能變得更好
那我會比他還要高興

練習說話也是擔任管理職的重要學習
面試以及一對一的面談都很需要
還有最難的就是說你不想說的話
做你內心會抗拒但又不得不做的事情時
我常跟成員說
擔任管理職帶給我最大的影響是
它就像一面鏡子
會幫助我發現以往沒有看過的自己
也算是某種讓自己離開舒適圈的一種方式吧

有幸參與敏捷轉型


在 2015 年的 1 月
R2 在 Diro 哥的帶領下開始導入敏捷開發
在好幾年前我們似懂非懂的嘗試過一點點
當然最後是失敗了
這次 Diro 哥勢在必行地做了很多準備
很幸運地我們算是有轉型過去
這三年中開拓了我的眼界
原來我們還有很多的可能性
革命尚未成功,同志仍須努力

最後要幫忙拉票一下


在 VIVOTEK 待了十年半
從來沒想過第一份工作就做了這麼久
我在這裡成家立業
還請了一段時間的育嬰留停
VIVOTEK R2 的同事們都很好相處
主管們對於各種意見也是以很開放的態度傾聽
除了內部自由發起的讀書會外
公司對於人的培養也很願意投資
無論是請外部講師到公司內訓
還是讓你到外面參加訓練課程或研討會
我本人就參加過資策會開的侯捷的課
以及到北京參加 QConf
只要是對於提升自我能力有幫助的
主管們都願意利用公司資源給予支持
歡迎有志人士可以跟 Diro 哥了解一下

我是因為禁不住內心對於舒適圈的恐懼感
以及想嘗試追尋更不一樣的刺激
所以選擇離開
但必須說如果可以再來一次
我還是會選擇 VIVOTEK 作為第一份工作的

天下無不散的筵席

我的國中導師在畢業紀念冊留下了這樣的句子

泉涸,魚相與處於陸,相呴以溼,相濡以沫,不如相忘於江湖。

這一段話一直到我當組長
第一個成員跟我說要離職後
我在感到很失落的當下才忽然懂了
如果真心的希望對方能過的更好
那就是在對方做了決定時
替他高興並且為他加油
雖然彼此可能不能再一起合作
但看到離開的那些成員都能更有發揮
這樣就很好了

希望 VIVOTEK 的各位都能越來越好,業績蒸蒸日上

2018/02/13

如何在 AppVeyor 執行用 Google Test 寫的測試程式

不久前有介紹怎麼使用 AppVeyor 整合 GitHub
(詳見 如何把 GitHub 上的 repository 掛上 AppVeyor 一文)
假設你使用 Visual Studio 2017 內建的 Google Test 來撰寫測試程式
要怎麼讓 AppVeyor 幫你 build 好後順便執行測試
並把測試結果回報給你呢?

首先當然是要先到方案中加一個 Google Test Project

新增一個 Google Test Project

Visual Studio 2017 已經把加測試這段作的很方便
你可以選擇這個測試是為了測試哪個模組
接著 Wizard 就會幫你把參考設定好
你只要著手開始寫測試就好

設定要測試的目標專案

因為等下要在 AppVeyor 上看結果
所以我先故意寫了一個成功跟一個失敗的測試
方便對照 UI 上的效果

一個成功一個失敗的測試案例

接著就把這些新增全部 push 到 GitHub 上看看 AppVeyor 的執行結果
這時候會發現有錯誤
似乎跟 NuGet package 有關係

缺少某個不存在的 NuGet package [截圖自 www.appveyor.com]

幸好 AppVeyor 有提供這個問題的解答 [參考: About NuGet package restore]
我們就照著在 Before Build Script 中輸入 "nuget restore"

設定 nuget restore [截圖自 www.appveyor.com]

按下 Save 後再回到主頁按下 [RE-BUILD COMMIT]
應該就可以得到成功的綠燈
不過這時候還沒有看到我們的測試結果
因為還需要設定兩個步驟
首先要讓 AppVeyor build 完後
會自動執行我們的測試程式
所以先切換到 Settings 頁面
在側邊攔找到 Build 頁籤
設定好 Configuration 為 Debug
以及 Platforma 為 x86

設定 Configuration 與 Platform [截圖自 www.appveyor.com]

再到 Tests 頁籤設定 Test script 為 "%APPVEYOR_BUILD_FOLDER%\%CONFIGURATION%\MyProjectTest.exe --gtest_output=xml:tests.xml"

設定 Test script [截圖自 www.appveyor.com]

再執行一次 Rebuild
應該可以看到測試程式成功執行的畫面

成功執行測試程式 [截圖自 www.appveyor.com]

不過右上角的 Tests 並沒有把兩個 test cases 列出來
這是因為結果的 tests.xml 還要透過 AppVeyor 的 API 傳上去
它才可以幫忙剖析出報告
我們再次進入 Settings 中的 General 頁籤
往下滑到最後的 On build finish script 中
輸入 "(new-object net.webclient).UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\tests.xml))"
儲存後再重新 Rebuild
這樣我們就可以在 Tests 畫面看到報告了

設定 On build finish sciprt 上傳測試報告 [截圖自 www.appveyor.com]

最後的測試報告 [截圖自 www.appveyor.com]

2018/01/31

如何把 GitHub 上的 repository 掛上 AppVeyor


如果你有在使用傳說中工程師界最大的交友平台 GitHub
又有持續整合 (Continuous Integration) 的需求時
應該怎麼做呢?

其實在 GitHub 的市集裡有個 CI service 的 App 叫 AppVeyor
可以跟你的專案做整合

AppVeyor 的簡介頁面 [截圖自 GitHub]
點下 [Set up a plan] 按鈕後
可以看到價格的細節


AppVeyor 的價格細節 [截圖自 GitHub]

如果你是要用在 open-source 專案上
可以免費使用
所以繼續按下 [Install it for free]
會再跳到最後確認頁面 (因為可能要付錢的,所以讓你有反悔的機會)
最後按下 [Complete order and begin installation] 後
應該會要你授權給 AppVeyor

最後的確認畫面 [截圖自 GitHub]

接著進入 AppVeyor 的主畫面後
就可以新增你 GitHub 的 repo 了
按下左上角的 [NEW PROJECT]

AppVeyor 主畫面 [截圖自www.appveyor.com]

可以看到 AppVeyor 支援蠻多種來源的
因為我們是要用 GitHub 上的 repo
所以就選 GitHub 後
按下 [Authorize GitHub]
這時又會要你提供更多授權給 AppVeyor
繼續就是了

AppVeyor 支援的 repo 來源 [截圖自 www.appveyor.com]

完成之後應該可以看到有一個與 repo 名字一樣的 project
我們可以按下右邊 [Start new build] 的按鈕試試
在這之前我在 Visual Studio 2017 裡面的 solution 長成下圖這個樣子
也已經將這內容推送到 GitHub 上了

我的專案
AppVeyor 執行新的一次 build [截圖自 www.appveyor.com]

接下來就會看到有一個 build 被排進佇列裡面
很不幸的應該是會失敗
因為我是用 Visual Studio 2017
所以我還得到設定裡面去修改一下

build 失敗的畫面,底下會有 console 的輸出 [截圖自 www.appveyor.com]

進入設定裡面的 Environment
可以看到 Build worker image 被選為 Visual Studio 2015
點下去修改成 Visual Studio 2017
再按下 [Save]

設定成 Visual Studio 2017 後 Save [截圖自 www.appveyor.com]

回到主畫面後按下 [RE-BUILD COMMIT]
應該就要看到成功的綠燈了

成功的綠燈 [截圖自 www.appveyor.com]

這樣就可以在每次 GitHub 收到新的 commits 後
觸發 AppVeyor 幫你自動產生新的 build 了