<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[hothero's TechNote]]></title><description><![CDATA[Will be sharing troubleshooting experiences, findings, tutorials, ...]]></description><link>https://blog.hothero.org/</link><image><url>https://blog.hothero.org/favicon.png</url><title>hothero&apos;s TechNote</title><link>https://blog.hothero.org/</link></image><generator>Ghost 3.11</generator><lastBuildDate>Fri, 10 Apr 2026 15:46:29 GMT</lastBuildDate><atom:link href="https://blog.hothero.org/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Upgrade Nodejs 10 on Ubuntu 16.04 LTS]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>原先只是要更新 Ghost 卻發現升級 Nodejs 到 10 版以上需要踩這麼多雷，在此紀錄一些關鍵破關的技巧<br>
正常來說升級很簡單，只要兩行指令</p>
<pre><code>// Add the NodeSource APT repository for Node 10:
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash
// Install nodejs
$ apt-get install -y nodejs
</code></pre>
<h2 id="nomodulenamedapt_pkg">No module named 'apt_pkg'</h2>
<pre><code>Traceback (most recent call last):
  File &quot;/usr/bin/</code></pre>]]></description><link>https://blog.hothero.org/2020/03/25/upgrade-nodejs-in-ubuntu-16-04-lts/</link><guid isPermaLink="false">5e7bd3e82ebc9335a0d98981</guid><category><![CDATA[nodejs]]></category><category><![CDATA[ubuntu]]></category><category><![CDATA[forbidden]]></category><category><![CDATA[ppa]]></category><category><![CDATA[apt_pkg]]></category><category><![CDATA[jonathonf]]></category><category><![CDATA[python3]]></category><category><![CDATA[add-apt-repository]]></category><dc:creator><![CDATA[hothero]]></dc:creator><pubDate>Wed, 25 Mar 2020 22:28:15 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>原先只是要更新 Ghost 卻發現升級 Nodejs 到 10 版以上需要踩這麼多雷，在此紀錄一些關鍵破關的技巧<br>
正常來說升級很簡單，只要兩行指令</p>
<pre><code>// Add the NodeSource APT repository for Node 10:
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash
// Install nodejs
$ apt-get install -y nodejs
</code></pre>
<h2 id="nomodulenamedapt_pkg">No module named 'apt_pkg'</h2>
<pre><code>Traceback (most recent call last):
  File &quot;/usr/bin/add-apt-repository&quot;, line 11, in &lt;module&gt;
    from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
  File &quot;/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py&quot;, line 27, in &lt;module&gt;
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
</code></pre>
<p>如果執行 <code>add-apt-repository</code> 或其他指令，遇到這個 error 主要是因為所用到的 python3 沒有 apt_pkg 這個 library 的鏈結，只需將其建立起來即可</p>
<pre><code>// ln -s {source} {dest}
ln -s /usr/lib/python3/dist-packages/apt_pkg.cpython-35m-x86_64-linux-gnu.so /usr/lib/python3/dist-packages/apt_pkg.so
</code></pre>
<p>此處請注意 <code>apt_pkg.cpython-35m-x86_64-linux-gnu.so</code> 可能會有所不同，請自行查找 /usr/lib/python3/dist-packages/ 下最新版本替換即可</p>
<h2 id="403forbidden">403 Forbidden</h2>
<p>若在運行 <code>apt-get update</code> 或是安裝某一套件遇到類似以下錯誤訊息</p>
<pre><code>Err:9 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main amd64 Packages
  403  Forbidden [IP: 2001:67c:1560:8008::15 80]
</code></pre>
<p>代表可能是某個單位將其 PPA 移除了公開權限，以此例來說是jonathonf <a href="https://launchpad.net/~jonathonf">移除了其權限</a>，所以我們只要將其從 PPA repository 中移出，那些在其底下的套件，像是 python 3.6 就會自行找尋其他公開的 PPA 進行安裝</p>
<pre><code>add-apt-repository -r ppa:jonathonf/python-3.6 // -r remove
</code></pre>
<p>同理，若遇到其他錯誤可取其相對位置即可，舉例來說 <code>http://ppa.launchpad.net/unit_name/package_name/ 403 Forbidden</code>，就會需要移除 <code>ppa:unit_name/package_name</code></p>
<p>以上，希望能幫助到你少走冤妄路。</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Using RClone sync data between cloud storages]]></title><description><![CDATA[<p><a href="https://rclone.org/">Rclone</a> is a command line program to sync files and directories to and from different cloud storages such as Google Drive, Dropbox and so on.</p><p>Lets see how easy rclone helps copying data for you:  <code>rclone copy dropbox:web_projects gdrive:web_projects -P</code></p><p>This tool do really help me</p>]]></description><link>https://blog.hothero.org/2019/10/28/using-rclone-sync-data-between-cloud-storages/</link><guid isPermaLink="false">5db68a8cc34c3a571ee2f20b</guid><dc:creator><![CDATA[hothero]]></dc:creator><pubDate>Mon, 28 Oct 2019 06:46:58 GMT</pubDate><content:encoded><![CDATA[<p><a href="https://rclone.org/">Rclone</a> is a command line program to sync files and directories to and from different cloud storages such as Google Drive, Dropbox and so on.</p><p>Lets see how easy rclone helps copying data for you:  <code>rclone copy dropbox:web_projects gdrive:web_projects -P</code></p><p>This tool do really help me a lot migrates data to Google Drive from Dropbox. Most of tools or services support migration but we need to download them on local then upload to another cloud storage, that is not that easy to do so especially the trend of small disk size.</p><p>So how do we install it?</p><ul><li>If you are Mac user, you can use homebrew to install (<code>brew install rclone</code>)</li><li>If you are Engineer, you might want to use Docker (<code>docker pull rclone/rclone:latest</code>)</li><li>More ways of installation, please ref to <a href="https://rclone.org/install/">https://rclone.org/install/</a></li></ul><p>After installation, you need to setup all accounts you want (<code>rclone config</code>)</p><figure class="kg-card kg-image-card"><img src="https://blog.hothero.org/content/images/2019/10/image.png" class="kg-image"></figure><p>In a nutshell, by using rclone you don't need to worry about space of local disk, this is super important on migrating data. Besides on that, the easy setup is important for you to use a tool. </p>]]></content:encoded></item><item><title><![CDATA[how to install protobuf with specific version]]></title><description><![CDATA[<p>不管是因為什麼原因需要，整合第三方套件總是要面對一些 breaking change，甚至在大的工程團隊中，每個專案的版本不一致導致連環狀況發生。要裝 protobuf 特定版本其實不難，將以 3.5.1 版本為例：</p><h3 id="-">安裝該版本原始碼</h3><p>首先可以在 protobuf 的 github 專案中找到不同版本的原始碼載點，找到自己的需求後下載： <a href="https://github.com/protocolbuffers/protobuf/releases">https://github.com/protocolbuffers/protobuf/releases</a></p><p>解壓縮後，在編譯 protobuf 時可能需要以下幾個套件，可以用 homebrew 做安裝：</p><pre><code>$ brew install autoconf
$ brew install automake
$ brew install libtool</code></pre><p>接下來就是對這份原始碼作 compile 與安裝（記得進到解壓縮後資料夾內）：</p><pre><code>$ ./autogen.sh
$ ./configure</code></pre>]]></description><link>https://blog.hothero.org/2018/10/21/how-to-install-protobuf-with-specific-version/</link><guid isPermaLink="false">5bcc9b6f7599b32253623470</guid><dc:creator><![CDATA[hothero]]></dc:creator><pubDate>Sun, 21 Oct 2018 15:45:32 GMT</pubDate><content:encoded><![CDATA[<p>不管是因為什麼原因需要，整合第三方套件總是要面對一些 breaking change，甚至在大的工程團隊中，每個專案的版本不一致導致連環狀況發生。要裝 protobuf 特定版本其實不難，將以 3.5.1 版本為例：</p><h3 id="-">安裝該版本原始碼</h3><p>首先可以在 protobuf 的 github 專案中找到不同版本的原始碼載點，找到自己的需求後下載： <a href="https://github.com/protocolbuffers/protobuf/releases">https://github.com/protocolbuffers/protobuf/releases</a></p><p>解壓縮後，在編譯 protobuf 時可能需要以下幾個套件，可以用 homebrew 做安裝：</p><pre><code>$ brew install autoconf
$ brew install automake
$ brew install libtool</code></pre><p>接下來就是對這份原始碼作 compile 與安裝（記得進到解壓縮後資料夾內）：</p><pre><code>$ ./autogen.sh
$ ./configure
$ make
$ make install</code></pre><p>檢查是否成功：</p><pre><code>protoc —version</code></pre><h3 id="--1">如何擁有多個版本</h3><p>關鍵在於如何讓 `protoc` 這指令關連到想要的該版本，所以我們可以在 bash_profile 或是 zshrc 內加上環境參數</p><pre><code>export PROTOBUF=/Users/hothero/protobuf35 # 記得是放你原始碼解壓縮後資料夾位置
export PATH=$PROTOBUF/bin:$PATH</code></pre><p>接著執行套用新設定即可生效</p><pre><code> source ~/.zshrc </code></pre>]]></content:encoded></item><item><title><![CDATA[Setup ghost support for HTTPS with cloudflare]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>此部分將講解如何設定 ghost 擁有自己的 domain 並且透過 cloudflare 讓全站 HTTPS，cloudflare 則不多說明如何設定，可參考官方說明依步驟即可完成。</p>
<h2 id="customdomain">設定 Custom Domain</h2>
<p>若一開始走 ghost-cli 安裝時就有設定自己的 domain，則可跳過此步驟。</p>
<ol>
<li>先至 <code>/var/www/ghost/config.production.json</code> 內，將 <code>url</code> 改為自己要的網址，並記得附上 https 前綴 protocol，例如: <code>https://blog.hothero.org</code>。</li>
<li>在 <code>/etc/nginx/sites-available/</code> 中建立一個 blog.hothero.org.conf，內容如下：</li>
</ol>
<pre><code>server</code></pre>]]></description><link>https://blog.hothero.org/2018/01/04/setup-ghost-support-for-https/</link><guid isPermaLink="false">5a4e57b311074566dcb4b950</guid><category><![CDATA[ghost]]></category><category><![CDATA[cloudflare]]></category><dc:creator><![CDATA[hothero]]></dc:creator><pubDate>Thu, 04 Jan 2018 17:11:49 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>此部分將講解如何設定 ghost 擁有自己的 domain 並且透過 cloudflare 讓全站 HTTPS，cloudflare 則不多說明如何設定，可參考官方說明依步驟即可完成。</p>
<h2 id="customdomain">設定 Custom Domain</h2>
<p>若一開始走 ghost-cli 安裝時就有設定自己的 domain，則可跳過此步驟。</p>
<ol>
<li>先至 <code>/var/www/ghost/config.production.json</code> 內，將 <code>url</code> 改為自己要的網址，並記得附上 https 前綴 protocol，例如: <code>https://blog.hothero.org</code>。</li>
<li>在 <code>/etc/nginx/sites-available/</code> 中建立一個 blog.hothero.org.conf，內容如下：</li>
</ol>
<pre><code>server {
    listen 80;
    # listen [::]:80;
    listen 443 ssl;

    ssl_certificate /home/hothero/cloudflare-ssl/certificate.pem;
    ssl_certificate_key /home/hothero/cloudflare-ssl/private.key;

    server_name blog.hothero.org;
    root /var/www/ghost/system/nginx-root;
    # root /var/www/html;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:2368;

    }

    location ~ /.well-known {
        allow all;
    }

    client_max_body_size 50m;
}
</code></pre>
<p>其中留意 ssl_certificate 與 ssl_certificate_key 的位置，稍後我們有了 cloudflare 的認證資料後需改成自己的路徑。</p>
<h2 id="cloudflaresslcertificate">取得 cloudflare SSL certificate</h2>
<ol>
<li>進到 cloudflare 後台選擇自己的網域後，點選上方的 Crypto，將自己的 SSL 選為 Full 模式。</li>
</ol>
<p><img src="https://www.dropbox.com/s/4txkgb78iqnbi5r/cloudflare-crypto.png?dl=1" alt="cloudflare crypto"></p>
<ol start="2">
<li>找到 origin certificate 按下 create certificate</li>
</ol>
<p><img src="https://www.dropbox.com/s/j4gn1fyl1trrhp5/cloudflare-create-certificate.png?dl=1" alt="cloudflare create certificate"></p>
<ol start="3">
<li>維持原來設定，按下 next</li>
</ol>
<p><img src="https://www.dropbox.com/s/agsdr510u19dwe0/cloudflare-certificate-creation.png?dl=1" alt="cloudflare certificate creation"></p>
<ol start="4">
<li>將 origin certificate 跟 private key 內容複製，貼上建立檔案。</li>
</ol>
<p><img src="https://www.dropbox.com/s/60oafnjds9gln4r/cloudflare-certificate.png?dl=1" alt="cloudflare certificate"></p>
<p>origin certificate 副檔名為 .pem，private key 副檔名則為 .key。</p>
<h2 id="nginxconf">完成 Nginx Conf</h2>
<p>接著我們將剛剛建立的 nginx conf 中 ssl_certificate path 改成自己的</p>
<pre><code># /etc/nginx/site-available
ssl_certificate your_path;
ssl_certificate_key your_path;
</code></pre>
<p>並且將這個設定檔 symbolic 到 /etc/nginx/site-enabled 中，代表要正式啟用這個設定檔</p>
<pre><code>sudo ln -s /etc/nginx/sites-available/blog.hothero.org.conf /etc/nginx/sites-enabled/blog.hothero.org.conf
</code></pre>
<h2 id="nginxghost">重新啟用 nginx 以及 ghost</h2>
<pre><code>sudo service nginx restart
ghost restart # run this command in /var/www/ghost
</code></pre>
<h2 id="admin">解決 Admin 後台無法使用的問題</h2>
<p>可以參照<a href="https://docs.ghost.org/docs/troubleshooting#section-ghost-admin-not-loading">官方說明</a>，在 cloudflare 的 page rule 中加入該設定即可。</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Install ghost on Ubuntu 16.04 LTS]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>原先 ghost 安裝在 heroku，但隨著版本跳動的非常快，也希望可以更順利升級，姑且就整個搬移至 linode 上，也透過 ghost 原生的 backup 還原順利，紀錄這安裝的過程。</p>
<p>環境</p>
<ul>
<li>Ubuntu 16.04 LTS</li>
<li>MySQL</li>
<li>Nginx</li>
</ul>
<p><strong>官方文件有特別標明，機器最少需要 1GB 的 memory 才不會導致系統有問題。</strong></p>
<h2 id="1">1. 前置準備</h2>
<pre><code># you can change ghost to whatever you want
adduser ghost
usermod -aG sudo ghost
su - ghost

sudo apt-get update</code></pre>]]></description><link>https://blog.hothero.org/2017/12/31/how-to-install-ghost-on-ubuntu-16-04-lts/</link><guid isPermaLink="false">5a494c5377d4281e8005ec95</guid><category><![CDATA[ghost]]></category><category><![CDATA[Tutorial]]></category><category><![CDATA[ubuntu]]></category><dc:creator><![CDATA[hothero]]></dc:creator><pubDate>Sun, 31 Dec 2017 21:00:34 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>原先 ghost 安裝在 heroku，但隨著版本跳動的非常快，也希望可以更順利升級，姑且就整個搬移至 linode 上，也透過 ghost 原生的 backup 還原順利，紀錄這安裝的過程。</p>
<p>環境</p>
<ul>
<li>Ubuntu 16.04 LTS</li>
<li>MySQL</li>
<li>Nginx</li>
</ul>
<p><strong>官方文件有特別標明，機器最少需要 1GB 的 memory 才不會導致系統有問題。</strong></p>
<h2 id="1">1. 前置準備</h2>
<pre><code># you can change ghost to whatever you want
adduser ghost
usermod -aG sudo ghost
su - ghost

sudo apt-get update # update package list
sudo apt-get upgrade # upgrade installed package
</code></pre>
<h2 id="2">2. 安裝相關環境套件</h2>
<pre><code># Nginx
sudo apt-get install nginx
sudo ufw allow 'Nginx Full' # open firewall to support HTTP and HTTPS for nginx

# MySQL
sudo apt-get install mysql-server

# Node.js
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash  # 更新 package list 支援 nodejs v6，很重要！
sudo apt-get install -y nodejs
</code></pre>
<h2 id="3ghost">3. 安裝 Ghost</h2>
<pre><code>sudo npm i -g ghost-cli

sudo mkdir -p /var/www/ghost # you can change the 'ghost' to another name if you want
sudo chown ghost:ghost /var/www/ghost # ghost 是剛剛我們建立的使用者名稱
cd /var/www/ghost

ghost install
</code></pre>
<h1 id>小結</h1>
<p>進到 1.x 版本的 ghost 變的非常好安裝，不管是第一次還是後續的更新都只要透過 ghost-cli 就可以做到，不像過去版本需要直接解壓縮去覆蓋檔案，算是這次升級上很大的亮點。</p>
<p>下篇將會帶入如何設定如何讓 ghost 支援 https。</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[broken vim on High Sierra with rbenv]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>前陣子把電腦更新到 High Sierra 陸續發現不少災情，例如 docker 的 networking 怪怪的、或是 VSCode 開不起來等等，但這些都莫名重開機就能解決（彷彿變成 Windows 電腦）；唯獨遇到的 vim 問題花了許久總算解決。</p>
<p>沒辦法用 vim 真的很困擾，像是 git commit 或是 rebase editor 都是預設 vim，會一直出現這樣的錯誤</p>
<blockquote>
<p>dyld: Library not loaded: /usr/local/opt/ruby/lib/libruby.2.3.0.dylib<br>
Referenced from: /usr/local/bin/</p></blockquote>]]></description><link>https://blog.hothero.org/2017/12/28/troubleshooting-xcode-not-set-up-properly-you-may-need-to-confirm-the-license-agreement/</link><guid isPermaLink="false">5a451f76bcc3dd0fa5274063</guid><category><![CDATA[TroubleShooting]]></category><dc:creator><![CDATA[hothero]]></dc:creator><pubDate>Thu, 28 Dec 2017 17:11:07 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>前陣子把電腦更新到 High Sierra 陸續發現不少災情，例如 docker 的 networking 怪怪的、或是 VSCode 開不起來等等，但這些都莫名重開機就能解決（彷彿變成 Windows 電腦）；唯獨遇到的 vim 問題花了許久總算解決。</p>
<p>沒辦法用 vim 真的很困擾，像是 git commit 或是 rebase editor 都是預設 vim，會一直出現這樣的錯誤</p>
<blockquote>
<p>dyld: Library not loaded: /usr/local/opt/ruby/lib/libruby.2.3.0.dylib<br>
Referenced from: /usr/local/bin/vim<br>
Reason: image not found<br>
Trace/BPT trap: 5</p>
</blockquote>
<p>網路上多半解法都是重新安裝與設定 ruby 就可以搞定：</p>
<pre><code>brew reinstall ruby vim
</code></pre>
<p>甚至重新強制關連 ruby</p>
<pre><code>brew link --overwrite ruby
</code></pre>
<p>還有換裝 MacVim 看看的</p>
<pre><code>brew uninstall --purge macvim
brew install macvim
</code></pre>
<p><strong>最後成功的方式是在安裝 vim 時加個參數就成功啦</strong></p>
<pre><code>brew install vim --without-ruby
</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[how to simply start mining bitcoin and ethereum in background on ubuntu 14+]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>在比特幣與以太幣每年持續成長的狀態，讓人想試試看所謂的「挖礦」，雖然進入時間點晚，但不無是個可以認識新技術的好方法，就來試試看在自己機器上挖吧～</p>
<p>以下指令環境需求為 ubuntu 14.4+，若非此版本還請另找解法（最大差異是以太幣的挖礦程式安裝）</p>
<p>安裝 minergate（目前找到在 linux 上相對支援度最高的，除了 cli 也有 GUI 介面可以用喔）</p>
<pre><code>sudo apt-get update &amp;&amp; wget https://minergate.com/download/deb-cli -O minergate-cli.deb &amp;&amp; sudo dpkg -i minergate-cli.deb
</code></pre>
<p>額外安裝以太幣的挖礦程式</p>
<pre><code>sudo add-apt-repository ppa:ethereum/ethereum-qt 
sudo</code></pre>]]></description><link>https://blog.hothero.org/2017/08/06/how-to-simply-start-to-mine-bitcoin-and-etherum-in-background-on-ubuntu-14/</link><guid isPermaLink="false">5a43e70424c6cb4b245068fd</guid><category><![CDATA[bitcoin]]></category><category><![CDATA[miner]]></category><category><![CDATA[比特幣]]></category><category><![CDATA[挖礦]]></category><category><![CDATA[ethereum]]></category><dc:creator><![CDATA[hothero]]></dc:creator><pubDate>Sun, 06 Aug 2017 06:58:25 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>在比特幣與以太幣每年持續成長的狀態，讓人想試試看所謂的「挖礦」，雖然進入時間點晚，但不無是個可以認識新技術的好方法，就來試試看在自己機器上挖吧～</p>
<p>以下指令環境需求為 ubuntu 14.4+，若非此版本還請另找解法（最大差異是以太幣的挖礦程式安裝）</p>
<p>安裝 minergate（目前找到在 linux 上相對支援度最高的，除了 cli 也有 GUI 介面可以用喔）</p>
<pre><code>sudo apt-get update &amp;&amp; wget https://minergate.com/download/deb-cli -O minergate-cli.deb &amp;&amp; sudo dpkg -i minergate-cli.deb
</code></pre>
<p>額外安裝以太幣的挖礦程式</p>
<pre><code>sudo add-apt-repository ppa:ethereum/ethereum-qt 
sudo add-apt-repository ppa:ethereum/ethereum 
sudo apt-get update 
sudo apt-get install ethminer
</code></pre>
<h2 id>開始挖礦</h2>
<p>請參考以下指令執行，以太幣部分：</p>
<pre><code>ethminer -C -F http://eth.pool.minergate.com:55751/&lt;your email&gt; --disable-submit-hashrate # ethereum miner for CPU

ethminer -G -F http://eth.pool.minergate.com:55751/&lt;your email&gt; --disable-submit-hashrate # ethereum miner for GPU
</code></pre>
<p>比特幣部分：</p>
<pre><code>minergate-cli -user &lt;YOUR@EMAIL.KAPPA&gt; -bcn 4 # the number is number of core you wanna use
</code></pre>
<h2 id>如何背景處理</h2>
<p>可以使用 nohup 這個指令來做，假設今天要背景執行，不受遠端連上去的 session 影響的話，指令如下：</p>
<pre><code>nohup minergate-cli -user &lt;YOUR@EMAIL.KAPPA&gt; -bcn 4 &gt; log.txt &amp;
# &gt; log.txt 是為了要將訊息記錄起來，以便隨時追蹤狀況
# 最後面的 &amp; 是為了背景執行使用
</code></pre>
<p>如此便能背景處理囉，若隨時需要確認是否還正常運行，可以使用此指令「ps aux | grep miner」就可以確認狀況囉！</p>
<hr>
<p>若機器有 GPU 目前建議 GPU 跑以太幣，把 CPU 給比特幣使用，兩個原因：</p>
<ol>
<li>用 GPU 跑時用不到 CPU</li>
<li>現在比特幣不如以前可以用 GPU 挖礦比較快，建議 CPU 惹</li>
</ol>
<p>希望大家都挖礦順利，有空再來寫介紹文跟後續成果</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Use Amazon S3 & Cloudflare to save bandwidth]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>因敝公司會有大量的 landing page 需求，且往往客戶群也涵蓋了美國以及港澳等地區，更別說大量的圖片使用，都是會造成使用 cloudfront 等 CDN 服務的費用支出問題（我們曾有圖片超過 10 MB 甚至影片超過 100MB 的狀況）。在尋找一些解決方案後，S3 + Cloudflare 是功夫花費最少且最符合當代開發流程的方式。</p>
<p>在此方案前，我們使用的是 S3 + Cloudfront 的解決方案，基本上最明顯的支出會有以下幾項：</p>
<ul>
<li>S3 儲存空間費用：每 GB 大約 0.025 美金，基本上如果 1TB 大概每個月台幣 800，加上大量的開發套件或函示庫都有整合，算是非常棒的雲端儲存解決方案</li>
<li>Cloudfront （CDN）流量費用：約每 GB 0.140 美金，</li></ul>]]></description><link>https://blog.hothero.org/2017/07/26/use-amazon-s3-cloudflare-to-save-bandwidth/</link><guid isPermaLink="false">5a43e70424c6cb4b24506974</guid><category><![CDATA[s3]]></category><category><![CDATA[aws]]></category><category><![CDATA[cloudflare]]></category><category><![CDATA[bandwidth]]></category><dc:creator><![CDATA[hothero]]></dc:creator><pubDate>Wed, 26 Jul 2017 07:06:15 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>因敝公司會有大量的 landing page 需求，且往往客戶群也涵蓋了美國以及港澳等地區，更別說大量的圖片使用，都是會造成使用 cloudfront 等 CDN 服務的費用支出問題（我們曾有圖片超過 10 MB 甚至影片超過 100MB 的狀況）。在尋找一些解決方案後，S3 + Cloudflare 是功夫花費最少且最符合當代開發流程的方式。</p>
<p>在此方案前，我們使用的是 S3 + Cloudfront 的解決方案，基本上最明顯的支出會有以下幾項：</p>
<ul>
<li>S3 儲存空間費用：每 GB 大約 0.025 美金，基本上如果 1TB 大概每個月台幣 800，加上大量的開發套件或函示庫都有整合，算是非常棒的雲端儲存解決方案</li>
<li>Cloudfront （CDN）流量費用：約每 GB 0.140 美金，所以若以圖片平均每張 100KB 大小，常常一個月下來有將近 1TB 流量跑不掉（敝公司做的 landing page 平均每個有 10~12 MB 的圖片，且有壓縮喔！）。</li>
<li>Cloudfront HTTP[S] Request：此部分大約每 10000 個是 0.0090 美金，因相比上述兩項比重小，先暫時可忽略。</li>
</ul>
<p>統計以上，一個月光花在 CDN 上看 5000 台幣，更別說流量更大的內容型網站，也曾聽過破十萬的。</p>
<p>-- 我是分隔線 --</p>
<h2 id="cloudflare">Cloudflare</h2>
<p>簡單說，<a href="https://www.cloudflare.com/">cloudflare</a> 是一個具有 CDN 服務的 DNS 服務。使用此服務最大優點與缺點就是需將網域整個交由他來管理，所有該網址流量都會經過他。</p>
<p>且在費用上不按流量計費，是按照要開啟的服務來升級會員等級，照過去經驗一般用途都會是免費；但近期聽到些朋友說 cloudflare 找他們收流量費，但小弟不負責任的猜測，只要流量不是台灣百大等級的，被找上的機率很低。</p>
<p>除了 CDN 外，像是全站 cache, ga tracking, HTTPS 等服務也都非常方便設定，算是符合絕大多數網站的好服務。更別說還有 DDoS 與其他資安攻擊的防護，還有流量來源等的分析 dashboard。</p>
<h2 id>如何開始</h2>
<p><mark>此部分將假設已設定好網域在 cloudflare 帳號之狀況</mark></p>
<ol>
<li>客製化 S3 bucket 網址：建立一個你的 assets 網址的 bucket（在 S3 開一個 bucket 名稱為你想要的網域），例如 s3cdn.example.com<br>
<img src="https://www.dropbox.com/s/het6w1uy0na0ggy/s3-customize-domain.jpg?dl=1" alt="s3 customize domain"></li>
<li>在 cloudflare 上設定 CNAME Record 給這個子網域，指定到 s3 bucket 的原網址 (e.g. s3cdn.example.com.s3.amazonaws.com），記得最右邊的雲端要 active 為橘色才算啟用喔。<br>
<img src="https://www.dropbox.com/s/wqpwseypysynanu/cloudflare-setup-s3-domain.jpg?dl=1" alt="cloudflare setup s3 domain"></li>
</ol>
<p>可以看到節省的流量是非常可觀的百分比：<br>
<img src="https://www.dropbox.com/s/08cdbhmy0cj1ke6/cloudflare-bandwidth-saving.png?dl=1" alt="cloudflare bandwidth saving"></p>
<p>以上解決方案提供給大家，讓大家都能以最小花費趕快將產品做起來！</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Use puma-dev as Rails Server on Development Environment]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>承 iCook 的<a href="https://icook.engineering/%E7%94%A8-puma-dev-%E4%BD%9C%E7%82%BA-rails-%E9%96%8B%E7%99%BC%E4%BC%BA%E6%9C%8D%E5%99%A8-341be0add9f0">用 Puma-dev 作為 Rails 開發環境伺服器</a>分享，這邊分享個小資訊。</p>
<p>如果有裝 better_error 以及 binding_of_caller 這兩個 gem 協助 debug 的話，用 rails s 跑當出錯時會非常非常的 lag，根據他們的 <a href="https://github.com/charliesome/better_errors/issues/341">issue</a> 討論，請使用 puma 指令把 server 跑起來即可，甚至 binding.pry 也可以喔～</p>
<!--kg-card-end: markdown-->]]></description><link>https://blog.hothero.org/2017/07/04/use-puma-dev-as-rails-server-on-development-environment/</link><guid isPermaLink="false">5a43e70424c6cb4b245068f4</guid><category><![CDATA[rails]]></category><category><![CDATA[Debug]]></category><dc:creator><![CDATA[hothero]]></dc:creator><pubDate>Tue, 04 Jul 2017 10:59:27 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>承 iCook 的<a href="https://icook.engineering/%E7%94%A8-puma-dev-%E4%BD%9C%E7%82%BA-rails-%E9%96%8B%E7%99%BC%E4%BC%BA%E6%9C%8D%E5%99%A8-341be0add9f0">用 Puma-dev 作為 Rails 開發環境伺服器</a>分享，這邊分享個小資訊。</p>
<p>如果有裝 better_error 以及 binding_of_caller 這兩個 gem 協助 debug 的話，用 rails s 跑當出錯時會非常非常的 lag，根據他們的 <a href="https://github.com/charliesome/better_errors/issues/341">issue</a> 討論，請使用 puma 指令把 server 跑起來即可，甚至 binding.pry 也可以喔～</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[[Tutorial] how to dump and restore postgresql from production env on AWS EC2 for Rails]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>自從機器從 heroku 搬到 AWS 上後，資料庫的備份再也不是容易的事情惹，中間牽扯到 firewall, VPC, postgresql version 等等的問題，有點被 heroku 寵壞。過了一年多，終於有時間好好正視這個問題處理一下，不然常常很多特殊交易狀況都無法在開發環境被還原。</p>
<p>雖然找到許多的 gem 可以協助做這件事情，但用起來都不符合需求，後面再來提。最後還是用最土砲的方式：rake task 加上 postgresql cli 搞定。</p>
<h3 id>資料庫版本</h3>
<p>第一個會遇到的問題是資料庫版本不符合，RDS 用的 postgresql 是 9.5，但透過 opsworks 建的 ubuntu 環境 postgresql 是 9.3，便沒辦法正常使用 pg_dump。</p>]]></description><link>https://blog.hothero.org/2017/07/03/tutorial-how-to-dump-and-restore-postgresql-from-production-env-on-aws-ec2-for-rails/</link><guid isPermaLink="false">5a43e70424c6cb4b245068f3</guid><category><![CDATA[rails]]></category><category><![CDATA[postgres]]></category><category><![CDATA[backup]]></category><category><![CDATA[database]]></category><category><![CDATA[資料庫備份]]></category><category><![CDATA[postgresql]]></category><dc:creator><![CDATA[hothero]]></dc:creator><pubDate>Mon, 03 Jul 2017 07:49:05 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>自從機器從 heroku 搬到 AWS 上後，資料庫的備份再也不是容易的事情惹，中間牽扯到 firewall, VPC, postgresql version 等等的問題，有點被 heroku 寵壞。過了一年多，終於有時間好好正視這個問題處理一下，不然常常很多特殊交易狀況都無法在開發環境被還原。</p>
<p>雖然找到許多的 gem 可以協助做這件事情，但用起來都不符合需求，後面再來提。最後還是用最土砲的方式：rake task 加上 postgresql cli 搞定。</p>
<h3 id>資料庫版本</h3>
<p>第一個會遇到的問題是資料庫版本不符合，RDS 用的 postgresql 是 9.5，但透過 opsworks 建的 ubuntu 環境 postgresql 是 9.3，便沒辦法正常使用 pg_dump。這部分可以參考這篇文章 <a href="https://blog.hothero.org/2017/06/29/upgrade-postgresql-on-ubuntu/">upgrade postgresql on ubuntu</a>。</p>
<h3 id>備份指令</h3>
<p>關於指令部分可以參考這份 gist，有做過兩個特別處理：</p>
<ol>
<li>針對 production 環境若誤下 restore 指令不會生效，做基本的預防</li>
<li>在資料庫的 username 設定，如果 database.yml 沒有設定會自動以自己機器的 username 為主</li>
</ol>
<script src="https://gist.github.com/hothero/4eb42620da4103e9a256e6a6f8c22198.js"></script>
<h3 id>如何下載</h3>
<p>當作完以上 db.rake 設定後，只要下 rake db:dump 就會開始備份跑出一個 {app name}.dump 檔案，這時就要開始煩惱下載的問題。</p>
<p>這部分有非常多解法，像是 ftp, scp, rsync, http server 等等，但會遇到這問題的通常資料庫都是上 GB 的功能。這邊測試後 rsync 的速度會最快，甚至差到 10 倍以上，如下：</p>
<pre><code>rsync -ravc --delete --verbose --progress --stats --compress source_path destination_path 
# --compress 這參數很重要，加速的關鍵
# 路徑的下法跟 scp 一樣，例如 ubuntu@123.321.1.23:/home/ubuntu/xxx
</code></pre>
<p>下載完後便可使用 rake db:restore 做到還原惹！</p>
<h2 id>其他作法</h2>
<p>這邊有兩個 gem 也可以推薦用來作為還原資料庫的方式：</p>
<h4 id="seed_bump">seed_bump</h4>
<p>第一個是 <a href="https://github.com/rroblak/seed_dump">seed_bump</a>，它是會把資料庫整個 dump 成 db/seeds.rb 檔案，裡面都是 ActiveRecord 的指令。實際做過的心得是，小資料庫（大概幾百 MB 那種）可以，但再大的話完全不建議。</p>
<h4 id="polo">Polo</h4>
<p>另個是 <a href="https://github.com/IFTTT/polo">polo</a>，由 IFTTT 這個擅於串接各方服務團隊所做的套件。這個比較像是根據實際資料庫內容，模擬幾筆很像的資料出來，若資料庫沒有太複雜的商業邏輯（如簡單的 CMS 平台）會蠻推薦的。</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[upgrade postgresql on Ubuntu]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>近期要在 Ubuntu 上升級 postgresql 發現一般的更新方法是行不通的，比如說 apt-get update; apt-get upgrade postgresql。</p>
<p>目前找到的解法是需要去更新 apt-get 的來源列表，以下是指令串</p>
<pre><code>vim /etc/apt/sources.list.d/postgresql.list # new or edit
deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main 9.5 # you can change the version number as you want
</code></pre>
<p>設定完後，即可開始認證並更新整個 postgresql</p>]]></description><link>https://blog.hothero.org/2017/06/29/upgrade-postgresql-on-ubuntu/</link><guid isPermaLink="false">5a43e70424c6cb4b24506972</guid><category><![CDATA[postgres]]></category><category><![CDATA[upgrade]]></category><category><![CDATA[ubuntu]]></category><dc:creator><![CDATA[hothero]]></dc:creator><pubDate>Thu, 29 Jun 2017 06:35:32 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>近期要在 Ubuntu 上升級 postgresql 發現一般的更新方法是行不通的，比如說 apt-get update; apt-get upgrade postgresql。</p>
<p>目前找到的解法是需要去更新 apt-get 的來源列表，以下是指令串</p>
<pre><code>vim /etc/apt/sources.list.d/postgresql.list # new or edit
deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main 9.5 # you can change the version number as you want
</code></pre>
<p>設定完後，即可開始認證並更新整個 postgresql 的版本庫</p>
<pre><code>wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
apt-get update
apt-get install postgresql-9.5
</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[activated multi facebook pixels on the same page]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>目的：在同一頁對多個 facebook pixel 發送事件</p>
<p>網路上 StackOverflow 或是臉書官方論壇，不免許多人都在問如何在一個網站綁定多個 facebook pixel，尤其在網站有第三方企業客戶時最容易發生：我自己要記錄 pixel 但我客戶也希望能記錄他的狀況。</p>
<p>網路上多數是舊版 conversion pixel 的方式，而以目前新版的 facebook pixel 方法為：</p>
<pre><code>// Initialize Facebook Pixel object
fbq('init', 'FIRST_PIXEL_ID');
fbq('init', 'SECOND_PIXEL_ID');
fbq('init', 'THIRD_PIXEL_ID');
// ...

// Trigger Facebook Pixel track events
fbq('track', 'PageView')</code></pre>]]></description><link>https://blog.hothero.org/2017/05/22/activated-multi-facebook-pixels-on-the-same-page/</link><guid isPermaLink="false">5a43e70424c6cb4b24506973</guid><category><![CDATA[facebook pixel]]></category><category><![CDATA[marketing]]></category><category><![CDATA[tracking]]></category><dc:creator><![CDATA[hothero]]></dc:creator><pubDate>Mon, 22 May 2017 07:34:40 GMT</pubDate><media:content url="https://whoisadampayne.com/wp-content/uploads/2017/02/How-to-Install-the-new-Facebook-Pixel.png" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://whoisadampayne.com/wp-content/uploads/2017/02/How-to-Install-the-new-Facebook-Pixel.png" alt="activated multi facebook pixels on the same page"><p>目的：在同一頁對多個 facebook pixel 發送事件</p>
<p>網路上 StackOverflow 或是臉書官方論壇，不免許多人都在問如何在一個網站綁定多個 facebook pixel，尤其在網站有第三方企業客戶時最容易發生：我自己要記錄 pixel 但我客戶也希望能記錄他的狀況。</p>
<p>網路上多數是舊版 conversion pixel 的方式，而以目前新版的 facebook pixel 方法為：</p>
<pre><code>// Initialize Facebook Pixel object
fbq('init', 'FIRST_PIXEL_ID');
fbq('init', 'SECOND_PIXEL_ID');
fbq('init', 'THIRD_PIXEL_ID');
// ...

// Trigger Facebook Pixel track events
fbq('track', 'PageView');
fbq('track', 'AddToCart');
</code></pre>
<p>只要被 init 過的 pixel id，後面發送的事件會同步發送至所有的 pixel。</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Mobile Safari Page Auto Refresh Limitation]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>最近有個客戶告知網站在手機看會一直自己重新整理，後續追蹤才發現是 safari，而非所有瀏覽器都會。</p>
<p>當時從幾個方向找：</p>
<ol>
<li>會不會是 vuejs 的關係？</li>
<li>會不會是 vuejs 的套件，像是 vue-route 的關係？</li>
<li>後端伺服器 node.js 的關係？</li>
<li>還是安裝的第三方套件的關係，像是 optimizely？</li>
</ol>
<p>在確認都非開發端的問題後，合理懷疑是 safari 的關係，進而找到，原來 safari 有其可瀏覽網頁的限制！</p>
<blockquote>
<p>MobileSafari keeps website cache only in RAM, and therefore, once it runs out of RAM, it'll automatically destroy an entire page,</p></blockquote>]]></description><link>https://blog.hothero.org/2017/04/14/mobile-safari-page-auto-refresh-limitation/</link><guid isPermaLink="false">5a43e70424c6cb4b24506913</guid><category><![CDATA[Safari]]></category><category><![CDATA[TroubleShooting]]></category><category><![CDATA[webdev]]></category><category><![CDATA[mobile]]></category><dc:creator><![CDATA[hothero]]></dc:creator><pubDate>Fri, 14 Apr 2017 08:23:24 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>最近有個客戶告知網站在手機看會一直自己重新整理，後續追蹤才發現是 safari，而非所有瀏覽器都會。</p>
<p>當時從幾個方向找：</p>
<ol>
<li>會不會是 vuejs 的關係？</li>
<li>會不會是 vuejs 的套件，像是 vue-route 的關係？</li>
<li>後端伺服器 node.js 的關係？</li>
<li>還是安裝的第三方套件的關係，像是 optimizely？</li>
</ol>
<p>在確認都非開發端的問題後，合理懷疑是 safari 的關係，進而找到，原來 safari 有其可瀏覽網頁的限制！</p>
<blockquote>
<p>MobileSafari keeps website cache only in RAM, and therefore, once it runs out of RAM, it'll automatically destroy an entire page, forcing the refresh, disguising itself as an auto-refresh feature. You can only keep at most 3 pages open at any time... Even the iPhone 4 with double the amount of RAM can only keep 5 pages.</p>
</blockquote>
<p>據官方說明，因為 safari 為加速是把 cache 放在 RAM 中，其實在扣除掉日常 app 與背景程序的運作下，本來就沒太多空間給瀏覽器使用。至於具體可用上限是多少，目前還未找到資料，希望有人可以分享！</p>
<p>在確定有此可能性後，回去看該頁面，果然！內文的圖片都是超過 4000 pixel 以上，甚至有看到破 6000 的數字...大約有 20 張照片。後續在將圖片都縮小後，就正常囉！</p>
<p><img src="https://www.dropbox.com/s/0tciv0wnw87jqyk/uccu-large-image-problem.png?dl=1" alt="uccu project image large"></p>
<p>後記：有人問說為什麼明明呈現是 800x600 呀，為什麼這麼大？基本上你看得到的內容跟瀏覽器讀了什麼東西是兩回事，不然要 HTML/CSS 跟工程師幹嘛呢 XDD</p>
<p>以此例來說，實際被瀏覽器 cache 的圖片大小辨識 4031x3024 這麼大張。</p>
<p>參考資料</p>
<ul>
<li><a href="https://apple.stackexchange.com/questions/56164/can-you-prevent-the-iphone-browser-from-reloading-pages">https://apple.stackexchange.com/questions/56164/can-you-prevent-the-iphone-browser-from-reloading-pages</a></li>
<li><a href="http://forums.imore.com/ios-8/302019-safari-stop-reloading-my-pages.html">http://forums.imore.com/ios-8/302019-safari-stop-reloading-my-pages.html</a></li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[AWS 開放更多 EC2 RI 的彈性了]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>過往使用 RI 限制非常多，不僅要同一個 Region 還要相同 AZ，instance type 與 size 也需要一樣，使用上若是買長期一到三年的方案，很難符合使用上彈性（比如事業變大了，過往買的小型機器就完全沒用）。</p>
<p>事實上，AWS 從<a href="https://aws.amazon.com/blogs/aws/ec2-reserved-instance-update-convertible-ris-and-regional-benefit/">去年</a>就開始著手提高 RI 的彈性（不知道是不是 GCP 來勢洶洶，開始也要壓低價格），讓更多團隊的機器得以節省。</p>
<p>這次<a href="https://aws.amazon.com/blogs/aws/new-instance-size-flexibility-for-ec2-reserved-instances/">調整</a>算是完全釋放了，照下圖的說明，每個形態的 RI 不分 AZ 可以當作籌碼的方式看到，做到費用的抵免。比如說一台 c4.large 可以抵 2 台 c4.medium 或是 4 台 c4.</p>]]></description><link>https://blog.hothero.org/2017/03/14/aws-kai-fang-geng-duo-ec2-ri-de-dan-xing-liao/</link><guid isPermaLink="false">5a43e70424c6cb4b24506928</guid><category><![CDATA[aws]]></category><category><![CDATA[news]]></category><dc:creator><![CDATA[hothero]]></dc:creator><pubDate>Tue, 14 Mar 2017 16:10:06 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>過往使用 RI 限制非常多，不僅要同一個 Region 還要相同 AZ，instance type 與 size 也需要一樣，使用上若是買長期一到三年的方案，很難符合使用上彈性（比如事業變大了，過往買的小型機器就完全沒用）。</p>
<p>事實上，AWS 從<a href="https://aws.amazon.com/blogs/aws/ec2-reserved-instance-update-convertible-ris-and-regional-benefit/">去年</a>就開始著手提高 RI 的彈性（不知道是不是 GCP 來勢洶洶，開始也要壓低價格），讓更多團隊的機器得以節省。</p>
<p>這次<a href="https://aws.amazon.com/blogs/aws/new-instance-size-flexibility-for-ec2-reserved-instances/">調整</a>算是完全釋放了，照下圖的說明，每個形態的 RI 不分 AZ 可以當作籌碼的方式看到，做到費用的抵免。比如說一台 c4.large 可以抵 2 台 c4.medium 或是 4 台 c4.small；換句話來說，c4.large 也相等於一半的 c4.xlarge，依此類推。</p>
<p><img src="https://www.dropbox.com/s/cv8q6dblzkbucco/Screen%20Shot%202017-03-14%20at%2011.55.38%20PM.png?dl=1" alt="aws-ri-table"></p>
<p>過往 RI 像玩梭哈，一次就要下決定出清；現在像是你有籌碼，可以慢慢地玩，有效率地玩。</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[AWS release aws-health-tool for Personal Health Dashboard (PHD)]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>原來 AWS 一直有完整的 dashboard 提供給伺服器管理者，叫做 Personal Health Dashboard (PHD)，讓你用了變博士 XDD。但不愧是給工程師用的服務，你都必須要自己動手，這一切都基於 <a href="http://docs.aws.amazon.com/health/latest/ug/what-is-aws-health.html">AWS Health</a>。</p>
<p>近期應是 <a href="https://www.bnext.com.tw/article/43405/amazon-s3-outage-cause-typo-internet-server">AWS 工程師不小心打錯字導致大當機</a> 事件，突然一堆關於 AWS 監控的第三方套件如雨後春筍冒出來一堆。AWS 官方部落格也在今天 release 了 <a href="https://github.com/aws/aws-health-tools/tree/master/automated-actions/AWS_EC2_INSTANCE_STORE_DRIVE_PERFORMANCE_DEGRADED">aws-health-tool</a>，現成的 API 設定可以直接加進 PHD 中。裡面算蠻完整的，EC2, SNS, SMS 都有得監控，更重要是提供 slack notifier，讓 DevOps 用起來更順手，找機會再來玩玩。</p>
<!--kg-card-end: markdown-->]]></description><link>https://blog.hothero.org/2017/03/08/aws-release-aws-health-tool-for-personal-health-dashboard-phd/</link><guid isPermaLink="false">5a43e70424c6cb4b24506927</guid><category><![CDATA[news]]></category><category><![CDATA[aws]]></category><dc:creator><![CDATA[hothero]]></dc:creator><pubDate>Wed, 08 Mar 2017 00:22:25 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>原來 AWS 一直有完整的 dashboard 提供給伺服器管理者，叫做 Personal Health Dashboard (PHD)，讓你用了變博士 XDD。但不愧是給工程師用的服務，你都必須要自己動手，這一切都基於 <a href="http://docs.aws.amazon.com/health/latest/ug/what-is-aws-health.html">AWS Health</a>。</p>
<p>近期應是 <a href="https://www.bnext.com.tw/article/43405/amazon-s3-outage-cause-typo-internet-server">AWS 工程師不小心打錯字導致大當機</a> 事件，突然一堆關於 AWS 監控的第三方套件如雨後春筍冒出來一堆。AWS 官方部落格也在今天 release 了 <a href="https://github.com/aws/aws-health-tools/tree/master/automated-actions/AWS_EC2_INSTANCE_STORE_DRIVE_PERFORMANCE_DEGRADED">aws-health-tool</a>，現成的 API 設定可以直接加進 PHD 中。裡面算蠻完整的，EC2, SNS, SMS 都有得監控，更重要是提供 slack notifier，讓 DevOps 用起來更順手，找機會再來玩玩。</p>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>