EMS 驚魂記
EMS 是國際快捷郵便,整合了各大國家的郵政,有追蹤號碼可以在網頁上查詢進度,號稱最快的郵便服務,價格當然也貴上許多。 第一次寄 EMS 感覺很棒,網頁進度追蹤很及時,兩天就到日本了;這次公司將在留資格證明寄給我也是用 EMS,正當我以為大概也是...
EMS 是國際快捷郵便,整合了各大國家的郵政,有追蹤號碼可以在網頁上查詢進度,號稱最快的郵便服務,價格當然也貴上許多。 第一次寄 EMS 感覺很棒,網頁進度追蹤很及時,兩天就到日本了;這次公司將在留資格證明寄給我也是用 EMS,正當我以為大概也是...
大概在好幾個月前,我寫了一篇關於如何在 golang 設定環境變數的文章,怎麼優雅地設定環境變數是一件相當重要的事情,因此我寫了一個簡單的函式來做這件事。 當初的考量很簡單,如果有提供對應的 config 檔,就把裡頭的 key/value 用 os.Setenv 設定。之後在整個 App…
這篇文章是看完 Implementing a pin-to-bottom scrolling element with only CSS 後,並且介紹使用 JavaScript 的做法整理而成。 現在網頁越上越常出現每次加入新的內容時,就將 scroll 的位置調整到最底下。像是 Twitch…
在 golang 當中,如果在初始化時沒有賦值,就會使用 zero value。 不過用了一段時間會發現,如果每次都用 zero value 來代替,我們會分不清楚到底是使用者沒有輸入值導致 zero value,還是使用者原本就輸入了 zero value? 這時因為 Email, Name…
有一天在開發頁面的時候,為了要檢查請求 Header 的欄位是否正確,打開開發工具一看,發現了請求多出了幾個可疑的 header: network 有注意到可疑的地方嗎?仔細一看發現,怎麼有三個以 Sec-Fetch…
這篇文章是看完 How to collect, standardize, and centralize Golang logs | Datadog 總結的心得。 使用 log 時通常有幾點要注意: 把 log 當作參數傳遞,需要使用到 log 時就傳參數進去 統一用 context…
在 golang 當中,對於 interface{} 的型別,你可以做型別斷定,來假設這個 interface 是某個型別,這樣一來你就可以操作這個型別中的方法。 這段程式碼可以將原本的 interface…
最近正在將專案從 Ruby On Rails 當中逐漸搬移到 golang,除了一方面是想要練習寫寫看醜醜的語法感覺怎麼樣,一方面是想感受一下 golang 的威力還有在沒有一個既有的框架下,要怎麼組織自己的程式碼。 今天要來介紹的是 goworker。會看上他的原因是搜尋 go worker…
許多網頁當中都有各式各樣的 script 需要執行,當然也會有優先程度,像是比較重要的:渲染 UI,註冊相關的互動事件,呼叫 API 拿取資料等等是高優先的任務,而像是比較不重要的任務有:Analytic 的腳本、lazy loading、初始化比較不重要的事件。 怎樣才算 Idle…
大約從前幾個月開始,我的 google chrome 就時常有莫名其妙 connection refused 的情況發生,有時候有些網頁就是開不起來,但用其他裝置開卻正常。雖然覺得怪怪的,但想說可能是伺服器設定的問題,而且也沒有造成什麼困擾,就這樣繼續用下去了。 設定 custom…
在前端當中,我們主要可以透過兩種方式來發送請求:XHR 跟 Fetch。XHR 是從,嗯...,很久以前就有的 API。不過因為設定上很麻煩,所以時常被包裝成更高階的 API 使用,像是 jQuery 的 getJSON、axios、RxJS 的 AjaxObservable…
CORS 與 cookie 在前端是個蠻重要的問題,不過大多數在開發的時候,因為前後端的 domain 時常是相同的,所以很少去 care 這些問題。或者只要要求後端將 Access-Control-Allow-Origin…
研究了一下現在比較熱門的 sql 套件,發現幾乎都沒有像是可以即時在 connection lost 的時候跳 error 的功能。例如:nodejs 的 mysql 當中,我們可以用 connection.on(‘error’) 來監聽錯誤。 不過在 golang…
由於實在太多特定的詞彙了,每次看到每次都要查一遍實在太累人了,而且還要一直 context switch…
在開發專案的時候常常需要切換不同的環境,也因此我們通常會設定不同的環境變數。不過如果直接寫死在程式當中每次修改起來實在太麻煩了,如果可以透過動態的方式傳入環境變數的話可以減少很多不必要的修改,程式也相對比較乾淨。 flag 一般在 golang 可以利用 flag 這個 package…
在最近的專案中用到 vue 來開發,而如果要管理比較複雜的資料流貨狀態,通常都是用 vuex 來當作 Single Truth of Source 的 store。在 vue 裡頭建立 store 時,都是把所有的 module 寫完後,再統一放到 vue 的 root…
在 golang 有兩個保留字 make 與 new,也是剛開始學習 golang 的時候容易搞混的地方,這邊做個簡單的筆記。 new new 可以用來初始化泛型,並且返回儲存位址。所以通常我們會用指標變數來接 new 過後的型別。特別要注意的是,new 會自動用 zeroed value…
生日悖論是個剛開始上統計學時,老師很喜歡拿來唬弄學生的招式。通常老師會徐徐從錢包拿出 100 元,並且問學生,在教室中有沒有兩個人同一天生日? 直覺上,我們可能會以為機率很低。不過事實上只要超過 23 人,2 人同一天生日的機率就有 5…
身為前端工程師,通常在整個團隊裡面會是最常發送 pull request 的人。為了讓自己的 PR 更容易被測試,以及讓 reviewer 更容易的 review,總結了一些注意事項。 pull request 的描述 這個 pull request 的目的。例如:修正 layout…
哈囉大家,2018 新年快樂 🎉。 昨天和女友選擇過一個很平凡的跨年,早上各自做彼此的事,晚上在家裡開伙吃飯,再一起跑步,最後一邊寫程式一邊看紅白,結束了 2018
Array.sort 淺析 這篇文章不是談論在 Javascript 原生的 sort 要注意的事項。例如: 因為預設的 sort 方法會把值轉為 String,並按照 char code 做排序,所以才會出現上面的結果。 今天要來探討 Javascript 的 sort 背後的實作方式
在資料庫當中,為了改進查詢效率,在資料量大的時候,可以透過建立索引讓資料庫加速查詢效率。本篇文章將會探討 PostgreSQL 的 index。雖然在大部分的情況,直接使用 `CREATE INDEX` 的語法已經能夠應付常見的開發場景,但是在 PostgreSQL 當中,其實還提供了許多不同的 index types 使用。
認清一件事實,table 是拿來看,不是被當作絢麗的視覺使用的 最近在後台頻繁有使用表格的需求,如何設計對使用者良好的 table 是一項挑戰,尤其在資料筆數多、欄位多的情況下,使用者很容易就會被額外的元素吸引。其實對於呈現資料上,table…
今年 1111,除了各大電商正在雙 11 特價外,今天剛好也是我的滿 23 歲的生日
Better-express-error 在 express 開發時,如果遇到錯誤,通常是直接印在 error page 上,或者在 production 端直接導到 404, 500 page。 這雖然沒有什麼值得一提的是,不過說真的,看到這種頁面,你會覺得開心嗎? default error…
Medium 本身不支援 code block 編輯,雖然不知道背後的原因為何(或許工程師並非主要客群),所以如果要高亮程式碼,一個作法是直接貼圖片,一個是貼在 gist 上後再 embed
react 終於正式發佈 v16 了,其實官方部落格的介紹已經相當完整(而且賞心悅目)。本篇文章作為筆記與統整,精簡了部分的細節。 1. componentDidPatch(error, info) react16 最亮眼的部分,加入 ErrorBoundary 的功能,確保在 lifecycle…
終於有時間整理最近的面試歷程了。先總結一些看到的事情: 通常公司面試只考 Javascript 的熟悉度,多數關於演算法或是解釋原型鍊等等,很少考 DOM 或是 Event 的操作。 幾乎不考 CSS,就算有也只是簡單判斷 class、ID 優先度這種基本題目而已。 沒有面試考 HTML…
ramda 是個相當好用的函式庫,如果聽過 lodash 或是 underscore 的話,可以將 ramda 想成 functional programming 的 lodash,他們的 API 有許多相似性,差別在於 ramda 本身有 FP 的功能,任何的 API…
在機器學習當中,如果特徵數過多時,有可能會造成一些問題,像是: 過擬合 (overfitting…