how to install protobuf with specific version

不管是因為什麼原因需要,整合第三方套件總是要面對一些 breaking change,甚至在大的工程團隊中,每個專案的版本不一致導致連環狀況發生。要裝 protobuf 特定版本其實不難,將以 3.5.1 版本為例:安裝該版本原始碼首先可以在 protobuf 的 github 專案中找到不同版本的原始碼載點,找到自己的需求後下載: https://github.com/protocolbuffers/protobuf/releases解壓縮後,在編譯 protobuf 時可能需要以下幾個套件,可以用 homebrew 做安裝:$ brew

  • hothero
    hothero
1 min read
bitcoin

how to simply start mining bitcoin and ethereum in background on ubuntu 14+

在比特幣與以太幣每年持續成長的狀態,讓人想試試看所謂的「挖礦」,雖然進入時間點晚,但不無是個可以認識新技術的好方法,就來試試看在自己機器上挖吧~ 以下指令環境需求為 ubuntu 14.4+,若非此版本還請另找解法(最大差異是以太幣的挖礦程式安裝) 安裝 minergate(目前找到在 linux 上相對支援度最高的,除了 cli 也有 GUI 介面可以用喔) sudo apt-get update && wget https://minergate.com/download/deb-cli

  • hothero
    hothero
2 min read
s3

Use Amazon S3 & Cloudflare to save bandwidth

因敝公司會有大量的 landing page 需求,且往往客戶群也涵蓋了美國以及港澳等地區,更別說大量的圖片使用,都是會造成使用 cloudfront 等 CDN 服務的費用支出問題(我們曾有圖片超過 10 MB 甚至影片超過 100MB 的狀況)。在尋找一些解決方案後,S3 + Cloudflare 是功夫花費最少且最符合當代開發流程的方式。 在此方案前,我們使用的是 S3 + Cloudfront 的解決方案,基本上最明顯的支出會有以下幾項: S3 儲存空間費用:每 GB 大約

  • hothero
    hothero
3 min read
rails

[Tutorial] how to dump and restore postgresql from production env on AWS EC2 for Rails

自從機器從 heroku 搬到 AWS 上後,資料庫的備份再也不是容易的事情惹,中間牽扯到 firewall, VPC, postgresql version 等等的問題,有點被 heroku 寵壞。過了一年多,終於有時間好好正視這個問題處理一下,不然常常很多特殊交易狀況都無法在開發環境被還原。 雖然找到許多的 gem 可以協助做這件事情,但用起來都不符合需求,後面再來提。最後還是用最土砲的方式:rake task 加上 postgresql cli 搞定。 資料庫版本 第一個會遇到的問題是資料庫版本不符合,RDS

  • hothero
    hothero
2 min read
facebook pixel

activated multi facebook pixels on the same page

目的:在同一頁對多個 facebook pixel 發送事件 網路上 StackOverflow 或是臉書官方論壇,不免許多人都在問如何在一個網站綁定多個 facebook pixel,尤其在網站有第三方企業客戶時最容易發生:我自己要記錄 pixel 但我客戶也希望能記錄他的狀況。 網路上多數是舊版 conversion pixel 的方式,而以目前新版的 facebook pixel 方法為: // Initialize Facebook Pixel object fbq('init', 'FIRST_PIXEL_ID'); fbq(

  • hothero
    hothero
1 min read
Safari

Mobile Safari Page Auto Refresh Limitation

最近有個客戶告知網站在手機看會一直自己重新整理,後續追蹤才發現是 safari,而非所有瀏覽器都會。 當時從幾個方向找: 會不會是 vuejs 的關係? 會不會是 vuejs 的套件,像是 vue-route 的關係? 後端伺服器 node.js 的關係? 還是安裝的第三方套件的關係,像是 optimizely? 在確認都非開發端的問題後,合理懷疑是 safari 的關係,進而找到,原來 safari 有其可瀏覽網頁的限制! MobileSafari keeps website cache

  • hothero
    hothero
2 min read
aws

AWS 開放更多 EC2 RI 的彈性了

過往使用 RI 限制非常多,不僅要同一個 Region 還要相同 AZ,instance type 與 size 也需要一樣,使用上若是買長期一到三年的方案,很難符合使用上彈性(比如事業變大了,過往買的小型機器就完全沒用)。 事實上,AWS 從去年就開始著手提高 RI 的彈性(不知道是不是 GCP 來勢洶洶,開始也要壓低價格),讓更多團隊的機器得以節省。 這次調整算是完全釋放了,照下圖的說明,每個形態的 RI 不分 AZ 可以當作籌碼的方式看到,

  • hothero
    hothero
1 min read
news

AWS release aws-health-tool for Personal Health Dashboard (PHD)

原來 AWS 一直有完整的 dashboard 提供給伺服器管理者,叫做 Personal Health Dashboard (PHD),讓你用了變博士 XDD。但不愧是給工程師用的服務,你都必須要自己動手,這一切都基於 AWS Health。 近期應是 AWS 工程師不小心打錯字導致大當機 事件,突然一堆關於 AWS 監控的第三方套件如雨後春筍冒出來一堆。AWS 官方部落格也在今天 release 了 aws-health-tool,現成的 API 設定可以直接加進 PHD

  • hothero
    hothero
1 min read
rails

has_many through association records duplication problem with Subquery solution

Rails 有非常完整的 ORM 機制,也是許多網站框架還難以超越的部分,其中的 has_many, has_one, belongs_to 等等的 association 拯救了不知多少工程師的白頭髮,讓大家少花了多少打 SQL 語法的歲月.....但近期著實被 has_many through 狠狠地上了一課,主要是 join 導致加總了重複的紀錄,使得金額與數量計算上出現大幅的落差。 先簡述一下我們的系統,就是一個電商架構的網站,其中 Transaction 與 TransactionItem

  • hothero
    hothero
5 min read
facebook

reinitialize the facebook social plugin on infinite scolling

一般 facebook social plugin 初始化方式會是以下的程式碼,藉由引入外部 javascript 檔案作第三方服務需要的事情,以臉書來說就是判別 fb-root,根據裡面的屬性產生像是「讚」的按鈕。觸發時機多是在第一次網頁讀取完成的同時執行。 而 infinite scrolling 產生更多網站內容的作法流程是,隨著網頁滾動,不斷透過 ajax 方式讀取後台資料呈現出來,導致產生出來的 facebook social plugin 程式碼沒有辦法被初始化。 <div id="fb-root"

  • hothero
    hothero
2 min read
english

[分享] 線上英文學習服務

今天想來分享個好東西,一個線上英文課程網站 Engoo:https://engoo.com.tw/。 可能有許多朋友跟我一樣,常找不到時間、覺得上課太貴、甚至沒有方向等等。自從我親愛的好友 @mymy 推薦給我 engoo 後,好像覺得學英文沒那麼困難了呢(是電視廣告嗎...) 讓我特別心動的一個最主要原因,是每次上課只要「25 分鐘」,然後一堂不到100元。對於一個時間零碎的工作者來說,是一個非常舒服的時間安排。另外在安排課程上也與一般的英文課程不一樣,是每次上完課才安排下一次的課程時間。這部份我覺得有幾個好處: 每週固定時間容易臨時有事要調課很麻煩 每次安排下次上課時間,通常是隔天或過一兩天,時間較好掌握 更重要的是,

  • hothero
    hothero
4 min read
git

heroku about file extension case sensitive

許多人對於檔案附檔名甚至是檔名命名方式常有不同習慣,甚至是因為不小心,導致附檔名有大小寫區分。最常見的就是 file1.jpg, file2.JPG, file3.png, file5.PNG。 最近在使用 heroku 上就遇到有關大小寫的問題,會有幾個狀況發生: 在網址的附檔名上有大小寫區分 瀏覽器的 cache 也會有 git 也有此問題 最基本的作法就是將所有檔名與附檔名都改為小寫,這邊可以使用指令完成 rename 'y/A-Z/a-z/' * 但若是 MAC 或是 Windows

  • hothero
    hothero
1 min read
rails

Rails4 Patterns III: Concerns

Concerns 是 Rails 拿來做模組化的一個方式,在 Rails4 之後也正式在 app/models/ 內有了 concerns 這麼一個資料夾的一席之地,也是一種 Rails Convention。 把重複的 Model 程式碼搬到 Model Concerns 內## 留言功能在臉書不斷的演進下,似乎已經成為現在網站的一個基本盤功能,什麼內容都可以討論一下。Rails4 Patterns 裡面拿這個當做範例,覺得蠻適合的。 # app/models/post.rb class

  • hothero
    hothero
2 min read

Subscribe to hothero's TechNote