Alec Chen

貪多嚼不爛

為 Octopress 加上 Last.fm 支援

| Comments

想在側邊欄利用 Last.fm 分享最近聽過的歌。雖然 Last.fm 官方其實是可以幫你產生一段 HTML 方便你直接放在自己的網站上的,不過看來看去總覺得沒有任何一個符合目前的版型,於是作罷。

剛好自己來練習寫一個。

架構

看了一下 Octopress 關於 Template 的文件之後,才發現它的架構非常有彈性。任何客製化的內容都放在 source/_includes/custom/ 裡面,而 sidebars 的內容放在 asides 裡。

使用的時候必須要在 _config.yml 裡面將自己寫好的 aside 加到 _config.ymldefault_asides 陣列裡才會生效。出現的順序跟在陣列裡的順序是一樣的。

架構都搞清楚了,接下來問題就是怎麼寫 aside 了。

實作

參考了內建 delicious 支援的

1
2
source/javascripts/octopress.js
source/_includes/asides/delicious.html

兩個檔案,發現只需要拿到網站提供的 JSON 之後事情就簡單了。

Last.fm 有很詳細的手冊提供給 Developer 參考,不過你必須先申請一個 API Key,才能利用 API 取用這些資料。在這裡我們需要的是 user.getRecentTracks 這個方法。

接下來只需要把

放到 source/_includes/custom/asides/lastfm.html 裡,並且把這個路徑加到 default_asides

然後在 _config.yml 裡新增下面三個參數

_config.yml
1
2
3
lastfm_user:
lastfm_count:
lastfm_api:

填上自己的設定就搞定啦,打完收工!

用 Git 得獎盃 - Git Achievements

| Comments

已獲得獎盃。
Git - 擊倒 50 名敵人

這純粹是我自己的想像,因為最近都在玩再度成為經典的秘境探險 3 的關係。

icefoxgit-achievements 是一個很有意思的專案,在公司已經用了大概半年。它利用類似 PS3 的獎盃系統,可以讓你在枯燥的工作環境增加一點小小的趣味。

安裝

首先當然是 clone 一份來。

1
git clone https://github.com/icefox/git-achievements

先別跟著做,因為這樣不是很正確,你只能自己欣賞你的獎盃,沒辦法跟別人分享。

git-achievements 內建 github pages 支援,可以自動發佈你最新的成就,免功夫免技術,不用實在就太可惜囉。前提是你需要一個 github 帳號。(沒有的快去申請!)

正確的方式是 fork 一份之後,再從自己的 repo clone 下來

1
git clone git@github.com:<username>/git-achievements.git

最後改一下 bash 的環境變數(其他什麼 *sh 的請自行想像)

1
2
export PATH="$PATH:~/git/git-achievements"
alias git="git-achievements"

接著就不管他了,照原本的工作方式用 git

使用

目前在公司因為用 svn 的同事還是佔大多數,程式碼也都是放在 svn server 上,所以常做的就是

1
2
git svn rebase
git svn dcommit

於是我的得分大部分都是從 git-svn 來的,是不是感覺有點悲哀?真希望 Linus 來幫大家洗腦一下

總之邊工作就會邊升級,三不五時就有一個獎盃也算是有點提振士氣的效果。

最後如果你想欣賞你全部的獎盃的話,只需要打 git achievements -p,就會在你安裝 git-achievements 的目錄產生 index.html,用瀏覽器打開就可以看到結果。假使你有照前面介紹的 fork 一份,而且也設定了

1
git config --global achievement.upload "true"

那麼每當你拿到新的獎盃,git-achievements 就會自動幫你上傳,接著你就可以在

1
http://<username>.github.com/git-achievements

看到你全部的獎盃囉!是不是很有成就感!

你問我說耐不耐玩?看看作者 icefox 自己都還沒全破,你說呢?一起來用 git 拿獎盃吧!