SONY 的 h.ear in 2 系列 WI-H700 (MDR-EX750BT) 頸掛式藍牙無線耳機開箱

用了 HTC 附贈的 Type-C 主動降噪耳機有一段時間其實那音質還蠻對的起「贈品」性質的,這麼說好像有點糟,但是不盡然。 有線耳機用久了,就想要找個無線的藍芽耳機。畢竟有線實在是很麻煩,不得不說取消 3.5mm 真的是個推進無線科技產業的好主意。 煮咖啡的時候耳機線常常被勾到(不過就這樣勾到幾次,HTC 的耳機都還沒事就是了)。 對 WI-C400 的怯步 原本是想說要找個 WI-C400

不要強迫用英文撰寫你的程式註釋、文件

不曉得從什麼時候開始,有部分的開源社群(朋友間與社交網路)在推薦使用英文撰寫註解。這是沒什麼啦⋯⋯不過最靠北的不外乎朋友之間共同撰寫專案,還用破英文啊啊啊啊啊——。 不得不承認使用英文確實很 🅱️🅰️🆖。能讓整個專案的說明、文件看起來風格統一,而且又能夠跨國際讓網路上的其他人得知相關使用方式。但事實上,這不是一個習慣。 團隊敘述有差異 如果你正在一個團隊工作,試著使用你們最擅長的語言進行溝通,而不是強迫使用英文撰寫註釋、API 文件,否則這可能導致混淆還有稱呼習慣產生問題。 例如不少人會將 MD5 稱呼為「加密」,結果寫成英文的時候就直接寫成了:

為什麼 Node.js 不適合大型和商業專案?

JavaScript 和 Node.js 一直都是這幾年的話題,無論是前端還是後端,到處都可見 JavaScript,就好像爬滿了你全身上下,他們不斷地對你說道「嘿!老兄!快來用我吧!」。 為什麼 Node.js 會這麼夯?主要是因為效能快過於 PHP 和 Python 與 Ruby,寫法簡單又容易,而且前後端能夠使用同個語言當然是最好不過了。

解釋 Golang 中的 Interface 到底是什麼

也許你是來自 PHP 或 Node.js 的程式工程師,然後用了 Class 好一段時間,雖然聽過 Interface 但總是沒用過,這很正常,因為我也是。 事實上,在弱型態語言其實是不需要使用到 Interface 的,但在強型態語言中,這變得十分普遍而且很有幫助。 Interface{} 是任意值 在 Golang 裏有兩種

發送自己的專案到 CDNJS 供別人使用吧!

網路上有很多文章是關於如何使用 cdnjs.com 來引用遠端腳本和樣式,但卻沒有人提到如何將自己的專案提交到 cdnjs.com 來讓他們進行提供的服務,而這篇文章就是要提及這個。(雖然這篇有提到,但還是看不懂) 所以什麼是 CDNJS?CDN 意指大型內容分發網路,在傳統網站中使用者會拜訪你的網站,然後向你的網站請求所有需要檔案,但當訪客量大時,你的網站將會不堪負荷,且瀏覽器現今還有最大同時連線數,這意味著一個網站同時最多只能有七個連線(大略),當讀取圖片又讀取樣式的時候,會需要等待部分圖片讀取完才可進行另一個請求。 因此你能夠將網站的部分內容改成讓使用者從

Sass 中的陣列(List)、物件(Map)

在程式界通常有兩種用來在單一變數中存放多個資料的型態,叫做「陣列」和「物件」(除非像 PHP 那種把全部都歸納成陣列)。 我們可以透過 Sass 裡的 Map 或 List 來歸納這些變數,所以我們就可以更好地整理這些變數,避免分散不易管理。 List - 陣列 雖然說陣列的英文應該是 Array,但是 Sass 裡面只有

外觀低調、低音十足、線材緊實的新台灣耳機:Tia-One 評測

前幾個星期因為 KEF 的入耳式耳機線材部分已經龜裂了(到底為什麼),所以想說如果可以的話入手一副基本的耳機用來替換。 剛好朋友推薦了 Tia-One,是一個來自新台灣廠商做的耳機,當初買這隻耳機的預購價是 1800 新台幣左右,上市之後的價格應該在 2200 新台幣附近。 其實我一直不曉得該用什麼形容來談論這家「公司」,因為他們的態度蠻親民的,但是這也是個小小問題,有時候太過一般的回應令人感到憤怒,但又覺得不會太過官腔回應是個好事,我的心情很三溫暖。 出貨和延期 Tia 廠商有個問題,就是要求完美(

在 Drone 上設置 Slack 和 Email 通知

Drone 是一個持續整合工具,這能夠自動測試你的程式,並且在成功時自動發佈,先前有特別寫了一篇「安裝 Drone 0.5 自動測試平台並與 Github 連結」可以仔細參閱。 這篇文章主要是敘述如何在 Drone 中設置 Slack 和電子郵件通知,如此一來你就不需要自己打開 Drone 網頁然後檢查建置是否成功,十分地方便。 在 Drone 中你甚至可以自訂什麼時候要進行通知,

在 Gitea 或 Gogs 上使用 Mailgun 當 SMTP Server

Mailgun 是一個免費的電子郵件發送提供者,你可以透過 Mailgun 來發送一些電子郵件,而 Mailgun 也能夠當作 Gitea 中發送一些通知郵件的 SMTP Server 來源,如果你沒有在 Gitea 中設置電子郵件設定,未來要重設密碼時就沒辦法接收到重設郵件。 本篇文章不會講述如何申請 Mailgun,單純就是告訴你如何在 Gitea 中的 app.ini 將

透過 Golang 輸出所有的 Emoji

之前在做網站的時候要實作一個表情列表的功能,後來到了 StackOverflow 上面詢問如何透過簡單的方式輸出所有的 Emoji(原文:Is it possible to generate all the emojis and append to the select dropdown?),畢竟總不可能自己把每個都複製下來然後塞進列表裡吧,不過那篇文章是 JavaScript 的實作方式,這裡要講解的是如何使用

透過 TestCafe 端對端測試 Vue.js

端對端測試大概是在你的測試工具裡面最強大的一項武器了,你能夠透過這個武器來模擬使用者的使用情景、如何去和網頁、單頁應用程式互動,以此來檢查你的網頁是否運作正常。不幸的是撰寫這種測試有一定的難度,而且還要花過多的時間在雕塑單個測試單元上,接著還要花上一堆時間在建立環境跟設置,還有更多更多的事情⋯⋯。 幸好現在已經有比較方便的解決方案。我們會談到的就是 TestCafe,接著會以此工具展示如何用來端對端測試你的 Vue.js 應用程式。(雖然是這麼說,不過其實這個工具可以用在任何網站跟框架上。) 安裝過程 和傳統的方式不太一樣的是 TestCafe 並沒有太多相依性套件,這意味著你不需要搞得像 Selenium/WebDriver

透過 Vultr 安裝 OwnCloud 並且透過「區塊存儲」擴充空間!

Vultr 是一個像 DigitalOcean 那樣的虛擬主機服務商,你可以直接在線上承租伺服器,數分鐘就可以搞定一個網站伺服器、資料庫、Git 伺服器,不過 Vultr 比 DigitalOcean 更晚起步,功能卻比 DigitalOcean 多一些,其中就有一個是 DigitalOcean 最近才會推出的「區塊存儲」服務。 那麼 OwnCloud 是做什麼的?

在 JavaScript 棄用 For 迴圈,擁抱 Reduce、ForEach、Filter、Map

在 ES5 其實就有這些功能了,但是到現在還是可以看到很多人都仰賴 for 迴圈來做事,然後在迴圈外面先建立一個 newArray 或是暫存陣列,用來處理新陣列、物件的內容,接著要處理其他的陣列,一堆千奇百怪的寫法又會再出現一次,所以這次乾脆寫篇文章來提醒大家好了。 雖然用上 for 迴圈是沒有什麼不好,不過看看最近大家都在撰寫函數式程式,在函數式程式中並沒有 for 迴圈,而是用 reduce、map、filter

脫離資料分散的問題,從 jQuery 換到 Vue.js

在剛接觸前端設計時,我們常會聽見兩個東西,不外乎就是 Bootstrap 和 jQuery,今天要談論的則是其中的 jQuery。jQuery 是個跨瀏覽器的 JavaScript 函式庫,透過簡單的幾個函式,就能夠輕鬆地操控頁面上的 DOM、元素。 其方法用起來真的夭壽簡單,但這僅限於你要開發單個頁面而已。倘若你正在開發一個小型網站,或是基本的文章頁面,就會慢慢地發現不易掌控資料,資料分散在頁面的各個角落。 資料分散,太過依賴 DOM、

API 文件就是你的伺服器,REST 的另一個選擇:gRPC

在前幾個星期的文章中我們提到了「比起 JSON 更方便、更快速、更簡短的 Protobuf 格式」,但這還沒完。Google 為此推出了一個新的程式呼叫協議 gRPC,簡單說就是能夠從你的 Protobuf 檔案生出一個伺服器出來,這個好處就是不需要像傳統 RESTful API 伺服器ㄧ樣撰寫一堆路由。 當我們撰寫傳統 RESTful API 伺服器時,我們會花費許多的時間在路徑命名上。除此之外,

建置自己的 Git 伺服器與網站:Gitea(Gogs)

Gitea 是一個由 Golang 撰寫的 Git 伺服器(含網頁介面),如果你曾用過 GitHub 或 Gitlab 那麼你一定對這種東西不陌生。詳情可以參考「什麼是 Git?我要怎麼在 Ubuntu 上安裝 Git?」文章。 Gitea 主要是由 Gogs 分歧的版本,兩者的差異在於

在 Ubuntu 安裝 Docker 和 Docker Compose

以往要在一台電腦上建立更多主機時,我們會用上像是 VMware 這樣的虛擬技術軟體,也就是所謂的「虛擬機」,但在 Docker 出來之後這一切就改變了。 Docker 的用途就像是 VMware,但因為環境並不是「虛擬」出來的⋯⋯等種種原因,令 Docker 啟動一個「系統」的速度不到五秒,比起傳統的虛擬機的三分鐘快上了至少三十五倍左右。 好吧,實際上那並不叫「系統」

比起 JSON 更方便、更快速、更簡短的 Protobuf 格式

Protocol Buffers 是由 Google 所推出的一格式(後台真硬),你可以把它想像成是 XML 或 JSON 格式,但是更小、更快,而且更簡潔。這能夠幫你節省網路與硬體資源,且你只需要定義一次資料結構,接著就會自動生成符合你程式語言的檔案,讓你能夠直接在你的程式上使用。 而且有趣的是一但你定義了資料結構,你就能在多個語言上使用,像是 C++、C#、Go、Java、