Kibana Date Type Field Query

在 Kibana 裡面,想要搜尋某段時間內的資料,第一個一定是想到 Kibana 內建的 Time Picker,不得不說這真的是很好用的工具,但少數情況你的資料可能不只一個日期欄位,而你必須用 Query 的方式而非 Time Picker 處理,例如 Email 的資料,寄信、開信、點擊都會有 Log 傳到我的伺服器,這時候會有兩個時間,一個是信件寄出的,另一個則是事件發生的時間(例如開信、點擊),像這樣的情況就可能會需要在搜尋框裡面用日期欄位做搜尋。

閱讀全文 Kibana Date Type Field Query

Using Command to Display Notification on macOS

在 macOS 有個很方便的通知中心,你可以寫程式傳送訊息到通知中心,就會像 iOS 那樣顯示在螢幕上,但其實如果你是要傳送訊息的話,可以直接在 Terminal 一個指令搞定哦! 不用從頭去學 Objective-C 或 Swift 也可以使用 macOS 的通知功能; 像每次在等測試執行時,總會想善用時間讀讀文件,這時就可以用 Notification 來通知自己測試是否執行完成,不用擔心看文件看得太開心忘記測試還在執行,當測試完成你也會及時收到通知,一刻都不浪費! 當然也不只測試可以這樣用,因為這個 Notification 是以指令的方式存在,所以只要是在 Terminal 執行的程式都可以做到一樣的功能哦!

閱讀全文 Using Command to Display Notification on macOS

Rails Capybara Feature Testing 踩雷日記

用一句話形容今天,大概是「第一次學 Capybara 踩地雷就上手」,花了整整六小時(以上)在寫兩個簡單的測試,途中遇到各種有趣的地雷,不寫一篇文章紀錄這慘烈的一天我怕今天氣到睡不著覺。 先聲明,這是第一次寫測試,所以有些觀念可能是錯誤或過舊的,歡迎大家留言告知,一定立刻修改,這不是一篇技術文,而是一篇發洩文(怒)

閱讀全文 Rails Capybara Feature Testing 踩雷日記

WTF Elastic X-Pack License – How to uninstall X-Pack

如果你透過搜尋引擎找到這篇文章,想必對 X-Pack 跟我一樣有著滿滿的怨念。最開始覺得 X-Pack 是個免費好用的外掛就把它裝到 Elasticsearch 跟 Kibana 身上,結果過了 30 天才看到提示說因為 License 過期,你需要去「更新授權碼」,否則不能登入 Kibana,其實到這邊我都還以為是註冊一個帳號就可以拿到新的授權碼,結果到官方網站看了很久,我沒有看到任何關於授權、費用、購買之類的文字(後來發現其實有,很小… 你們是有沒有想賺錢阿),最後竟然是靠 Google 搜尋才找到價格方案的頁面。

閱讀全文 WTF Elastic X-Pack License – How to uninstall X-Pack

JavaScript String Replace All

在 JavaScript 使用 String.replace 時要注意它可能和你預期的行為不同,當你想取代某個字串時,你會發現 replace 只取代了第一個字串,例如 “AAA”.replace(“A”, “B”),你預期會得到 “BBB” 但實際上你會得到的是 “BAA”,這是因為 JS replace 的第一個參數其實是 Regex 而非字串,如果你輸入字串,就只會取代第一個遇到的字串,導致和預期不同的問題。

閱讀全文 JavaScript String Replace All

Elasticsearch、Kibana 使用者認證設定

當你將 Elasticsearch 和 Kibana 安裝完後,你會發現一個十分嚴重的問題:「咦,帳號密碼勒?」沒錯,Elasticsearch 和 Kibana 是沒有提供一般常見的使用者模組,你只能透過 Bind IP 或是 Bind Port 的方式設定內網使用,但如果你跟敝公司一樣沒有固定 IP,或是你想要設定幾組帳密來使用的話,就繼續讀下去吧,這篇文章將會分享當 Elasticsearch 和 Kibana 的基本使用者認證該如何設定,採用 HTTP Auth 的方式。

閱讀全文 Elasticsearch、Kibana 使用者認證設定

掌門精釀啤酒 – 適合下班後小酌的超讚啤酒吧

今天要來跟大家分享一間位在捷運東門站 永康街 的精釀啤酒吧,對,你沒看錯,今天咱不談程式談酒吧! 相信大家會慢慢習慣這裡出現各種奇怪主題的文章;今天要介紹的這間「掌門精釀啤酒」很適合大家下班後三五好友來喝喝小酒,你看我今天喝完還有精力寫文章,就知道這間有多適合上班族平日來喝了,更別說這是我第一次喝完酒搭捷運回家阿! 好啦不說廢話,掌門我來過兩次,每次來都覺得超讚,啤酒好喝不說,有十幾種選擇可以選,而且都是自釀的哦!! 而且環境舒適很適合帶朋友來聊天,不過座位不多而且不能訂位,建議在過來的前半小時先打電話請老闆幫忙留位子(但不保證有位子哦)

閱讀全文 掌門精釀啤酒 – 適合下班後小酌的超讚啤酒吧

JavaScript 操作瀏覽器歷史紀錄、修改網址與上一頁事件(SPA 必備)

在 JavaScript 當道的今日,使用 JS 進行網頁的操作如 Ajax、頁面切換、彈出視窗等等越來越常見,甚至進一步出現了 React JS、Vue JS 等可以幫助你開發 Single Page Application (SPA) 的 JS Framework;在使用 JS 進行網頁操作時最怕的問題莫過於網址的變化與歷史紀錄,例如透過 jQuery 進行頁面切換後,因為是 JS 的行為所以網址不會變化,而且當使用者按下瀏覽器左上角的上一頁時,會直接回到別的頁面,因為在歷史紀錄裡面不會紀錄 JS 的操作(事實上也無法紀錄),要解決這一系列問題,可以透過 HTML5 提供的 history.pushState、history.replaceState 以及 onpopstate 事件來解決。

閱讀全文 JavaScript 操作瀏覽器歷史紀錄、修改網址與上一頁事件(SPA 必備)

千萬不要在迴圈裡面刪除陣列元素

「踩你千萬遍也不厭倦的愚蠢行為」,我一直以為錯誤的寫法只要遇過一次就會長記性,但今天在公司又踩地雷三小時,始終搞不懂問題在哪裡,最後很認真把程式碼重看過一次後發現… 原來又是一樣的問題。 一句話:「不要擅迴圈裡面刪除任何陣列元素」

閱讀全文 千萬不要在迴圈裡面刪除陣列元素

大量電子報發送排程簡易思路與 Yahoo Deferral 處理

在發送大量電子報時,你是否思考過該怎麼寄呢?如果有一萬個信箱,你會選擇一次寄出去還是分散在不同的時間寄呢?大多數的人會選擇一次寄出去,基本上不會有問題,如果你信用好而且常常在做這種事情的話,你大量發信對電子郵件服務提供的業者來說是常態,這時候幾乎都會進到收件夾,但有個最近很火紅的傢伙 Yahoo,他家不知道為什麼,你只要短時間內寄太多信就會被退信(Deferral),你可以重新再嘗試一次,多嘗試幾次種會成功的,以我個人來說看過最多重新寄 100 次才成功寄進去的,針對 Yahoo 的情況來看,似乎無論信用多少都會遇到這種短時間高頻率(無視內容)被退信的問題,這邊我嘗試了幾個做法來解決問題。

閱讀全文 大量電子報發送排程簡易思路與 Yahoo Deferral 處理