平台選擇的重點要求

某王姓藝人的大平台這個部落格搬來搬去也到過好幾處,
自己架的主機、Wordpress、GitHub、Medium、LogDown 與 Blogger……
曾經一度覺得怎麼沒有一個地方能滿足我所有需要呢?
但後來想想這就是資訊現實啊,
永遠不會有一個可以滿足你所有需要的工具的。

而資訊工作者的價值就在於,
能夠既對某項技術與工具專精,
又能夠知道其他的優劣,
針對案例選出最適合的技術加以利用。
話說回來平台的選擇該以什麼為標準呢?
我們無法去控制營運方的商業模式改變,
所以價格低廉、功能華麗都是有可能會變動的,
更可怕的是,先前因為社群力量而茁壯起來的一切,
將會隨著被綁架。

我們所能盡力選擇的,
就是平台的「可轉移性」
也就是如果遇到了不得不離開的狀況時,
所需要花費的時間與力氣,
這是幾經考量後,
我所認為最重要的條件,沒有之一。

這跟選擇電腦軟體的方向是一致的,
若一開始選擇了 Windows only 的軟體,
不要說是轉換工作平台到 Linux 了,
就連要去 Mac 當潘仔都不能順利。
我曾經因為偷懶選擇了一個傻瓜型的備份軟體,
但忽略了他是 Windows only 的產品,
導致現在因為硬碟掛掉要慢慢回復以前的資料,
都沒辦法順利復原。

Blog system 的選擇也是同樣的,
容易匯入匯出變成我首選的條件,
而 Wordpress 因為各界都有設計他的 importer,
Wordpress 本身也有許多能吃的別的 Blog system 的增益集,
因此最後還是又回到這了。

自架嘛… 目前因為有其他重要的事情想完成,
這方面暫時還是先仰賴現成的吧。

十載一日

整理過去的足跡,
發現 Blogger 的廢言網誌竟不知不覺也十幾年了,35745722973_627d80bcf1_n
明明自己是個沒什麼內容的人,
當時好像還發下宏願想要每天寫一篇呢。

這次的標題就沿用那裡的風格吧,
假裝自己從未間斷過那樣,
也順便回顧一下,這十年的嘗試與改變。

十年前開始了研究所的生涯,
對於剛離家的我根本是一大解脫,
不久後開始忙碌起來,
每天都在思考人生。

常看著螢幕前翻譯不完的 VB3 程式碼,
再轉頭看向窗外,
心想這麼好的天氣,我卻得當碼農啊。
實際上都已經任性地不去實驗室了,
卻沒能真正擁有自由。

先來個 bullet list 簡記一下這十年吧:


  • 2008
    輔大畢業,考上交大聲創學程。
    同年發生陳雲林來台事件。

  • 2009
    借了別人棄置的機車,正式開始在人生中迷路。
    同年,台灣發生本世紀第一起隨機殺人案。

  • 2010
    研究所休學,打了半年的星海 2。
    同年,ECFA 協議生效、大埔農地遭破壞。

  • 2011
    中華民國冥誕百年大頭兵,在萬能 IT、萬年餐差與大門衛哨模式中切換。
    同年發生塑化劑事件、臺大醫院 HIV 器官誤植案。

  • 2012
    第一份正職工作,面試我的竟然是高中社團學長。
    同年,華隆自救會成立,發生林益世索賄事件、湯姆熊殺童案。

  • 2013
    應大學朋友之邀,拋下第一份工作,到新的工作環境。
    同年發生媽媽嘴命案、反核大遊行、毒澱粉、工業布丁、九月政爭、洪仲丘事件。

  • 2014
    受不了混亂的企業理念與目標而離開第二份工作,年底到大公司體驗傳統產業之美(?)
    同年發生國道收費員抗爭、318 學運事件、捷運隨機殺人、劣質油品、高雄氣爆事件。

  • 2015
    忙碌、充實,但升遷只加一千元的第三份正職工作,買了三千塊比特幣然後隨即花掉了
    (要是 HODL 住現在應該有個十幾二十萬吧。)
    同年,時代力量政黨成立,發生南山人壽罷工事件、文化國小殺童案。

  • 2016
    離開傳產,從此開始自雇人生。
    同年發生內湖隨機殺童、華航空服員罷工事件、民進黨首次完全執政。

  • 2017
    將遊戲正式納入人生的一部分,並靠加密貨幣獲利總算挺過這一年。
    同年發生 815 全台大停電、同婚釋憲案(釋字 748 號)、一例一休修法、李明哲事件、蝶戀花遊覽車事件。



大概是從陳雲林來台事件開始吧,
之後不久還發生了真愛聯盟事件,
我漸漸意識到無法只活在自己的小框框內,

所有的一舉一動都在為自己所信奉的價值背書,
也因此打開了實踐主義之眼以及厭世模式,
然後網誌就跟著荒廢了。

值得一提的是隨機殺人案也在這十年中頻繁發生,
這可能代表台灣已進入了一個全新的世代,
而這個世代所面臨的問題更加複雜難解。

這次剛好看到以前 Blogger 的草稿,
覺得幸好自己主要的價值觀沒多大改變,

倒是現在比較不會為了無關緊要的事情糾結太久,
算是有點進步。

十年來,真要說的話有什麼後悔的事情,
就是為研究所那段日子,沒好好利用自己的年輕吧。
年輕的肉體有很多可以利用的方法啊!(咦)
不過當時也是各種懷疑人生啦,
也好險總算是從那樣的低潮掙扎中存活下來,
雖然往後鐵定只是繼續掙扎吧,至少可以優美一點?

我與十年前一樣悲觀,

支撐著我的僅僅是對世界的仇恨而已。

不公義的事情持續在發生,
我曾因無力做些什麼,而想要乾脆加入剝削的行列之中,
最終還是沒能實行,先別說有沒有這個本錢,感覺身體每個毛孔都在抗拒啊。
這世上雖沒有絕對的公平,這你我都明白,
可這不代表我們沒有向目標靠攏的能力,
也不一定所有戰鬥,都非得正面對決才行。

無數話題都已爭辯過,那麼就剩下實際行動,
在這個可以正大光明扯謊的年代,
在這個好人們都在活受罪的年代,
告訴自己,已經沒有時間憤怒與悲傷,
耽溺在其中並不能改變什麼,
雖然不夠強大到可以領著誰前行,
但至少別當拖油瓶吧。

至於廢言,還是偶爾要來一下的,
畢竟維持身心健康就靠這個了。

RYOMA M1S Overview

RYOMA 的 M1S 從預購一直到現在也有一陣子了,
今天終於要來寫心得文了。
一開始對這家公司不熟悉,
完全是衝著台灣製造而來的,
拿到手之後使用心得整體而言還蠻滿意。
至少我每天來回通勤兩三個小時,
使用他上網玩遊戲都挺愉快的,
以一支這樣定價的手機而言,
實在是無愧於國產 C/P 值之王的 slogan!

RYOMA M1S 外盒正面

品牌故事

先來談談這個品牌的一些歷史吧,
不過目前也只是看了一些網路八卦整理起來的,
這手機的介面設計,官方說法是外包給「應宏國際」設計,
但實際上,龍馬就是應宏,並非兩家公司。
再往上追,應宏集團的負責人是頂新集團負責人的二兒子,
頂新沒聽過?康師傅應該就聽過了吧,
有關於頂新的負面消息,好幾年前也是鬧得沸沸揚揚,
但最後這事情最後也只是傳言,這裡就不方便去多加評論了。

不過我想無論他父親做得如何,
過去有關連的品牌如何,
都不應以那些當做這個品牌的衡量依據,
因此我認為可以全新的品牌來看待這家公司。

至於有些人對於 RYOMA 日文名有些感冒,
我是覺得台灣自古以來就是一個文化多元的海島國家,
這點我自己是不太介意啦。

外觀

M1S 的外盒是近年來很流行的簡配包裝,
大概就跟 iPhone 4S 的盒子差不多大小,
外盒有兩個缺口可方便手指拿取,
Google Nexus 7 的開箱悲劇 可說是截然不同。
打開盒子,發現外盒跟內盒有個卡榫接合著,
算是個小小的貼心。

機體本身還算不錯,
真要說缺點的話,背蓋是包覆機體的設計,
視覺上看起來好像有兩層外框,
不少人可能無法接受。
用了一個禮拜之後,開始覺得背蓋跟機體的接合不是那麼的牢固,
但有次不小心重摔到馬路上也沒解體,這算是還蠻厲害的吧。

不少人對於背面寫著「台北設計 台灣製造」有意見,
我倒是覺得字夠小,並不會影響美觀,
甚至也有平衡 RYOMA 字樣的效果,還 OK 啦。

續航能力

去年底我買了一台 HTC Sensation XL,雖然使用上還算愉快,
但電力問題實在很困擾我。
就算不整天使用,通勤時間加上吃飯時間使用,
大約傍晚就得接行動電源或回家充電了,
而且為了節省電力,我還常常把 3G 跟同步處理關掉,
開著大概中午下午就會快要沒電了,
不開的話,待機時間倒是可以撐個好幾天啦。

M1S 目前使用了兩三個禮拜,雖然也是要每天充電,
但至少出門在外時,
目前還沒用過行動電源
他的 3G 耗電比較沒這麼可怕,
因此就算我上班時整天放著忘記充電,
晚上吃個飯運動一下,回家時都還夠撐到家裡。

軟體介面

開機後,會進入所謂的「應宏友善介面」,
由於 Android 4.0 之後,本身的介面就已經很不錯,
因此包含 HTC 等大廠,能做的努力都不多,
但 M1S 初始的設定就很容易使用,
在桌面選用的元件也都是我自己很常用的功能,包括:

  • 3G / Wifi 開關
  • 音樂播放
  • 音效設定切換
  • LED 手電筒開關

另外我必須要稱讚的一點就是,
他沒有灌額外累贅的內建軟體
還記得剛打開 HTC Sensation XL 時,
看到裡面灌了好多有的沒的內建軟體還砍不掉,
加上 Sense 一直當,就算社交網路整合再好,使用上真的是非常不愉快。
以台灣這麼喜愛所謂的客製化
內建一堆廣告性質軟體的風氣而言,
RYOMA 算是一股清流啊。

遊戲方面,熱門遊戲
如 Andry Birds 與 Temple Run 都可正常執行,
效能優異,可以看一下別人的跑分

介面方面細節目前我也只使用過 HTC 的介面,
我想可能要再使用久一點才能寫心得,
但整體來說,並沒有什麼令人困擾的地方,
我想真正好的使用介面就是如此吧,“it just works!”

缺點

M1S 擁有很厲害的聯發科 MTK6577 雙核晶片,
RAM 也是算慷慨的 1GB,
一般使用情況下可說非常夠用。

而由於是低價手機,硬體方面當然要能省則省,
沒有以下硬體元件:

  • 電子羅盤:對於需要將這台當導航機的人來說並不合適,但查地圖是完全沒有問題的。
  • 感光元件:螢幕亮度無法自動調整,且接聽時無法偵測耳朵是否靠近話筒,可能會按到數字鍵盤。
  • LED 指示燈:對於不太想開機就想得知有無系統訊息的人而言,可能會是一個小缺點。

相機的規格當然也不太漂亮,
主相機最高 500 萬畫素,
但日常拍照生活記錄可說是非常夠用,
不過如果日後想要印出收藏可能就不太 OK 了。
另外就是色偏的問題還蠻嚴重,
雖說可以手動調整白平衡來稍微改善啦,
可並不是所有時候都有這樣充裕的時間。

喇叭表現也是普普,聲音大一些會爆音,
跟 HTC Sensation XL 的表現差不多。

還有一個就是開啟背蓋必須使用專屬工具
雖然是隨機附贈的,但對於不想買行動電源,
而想要以換電池的方式使用的人來說,
可能是個致命傷。

另外因為他實在太冷門了,
所以目前還沒有可以刷的 ROM 可以用,
也因此還無法進行螢幕擷圖,
也當然沒有 root 了。

結論

這是支性能相當好的手機,如果是:

  • 智慧型手機初心者 (或不知自己是否適合買智慧型手機)
  • 拿來上網、打遊戲
  • 拍照只為生活記錄
  • 不想花超昂貴的價格買高階手機
  • 剛好你喜愛台灣想支持國貨的話

這支的硬體很漂亮,軟體也還不錯,
算是非常棒的選擇,相信會是你的生活幫手。

但如果您有以下需求,可能要考慮別支了:

  • 拍照魔人:相機的色偏嚴重,雖可以調整白平衡但有時會調到起笑。
  • 導航專家:不具備電子羅盤,但查地圖是沒問題的。

希望 M2 或未來能出高階手機,
如此一來很多缺陷應該就可以克服了吧!

搬到 GitHub 了

雖然說搬家真的蠻麻煩,但搬到 GitHub 的過程可說是非常順利啊!
Octopress 也如傳聞中好用,Jekyll 的 import 也是前人種樹我在乘涼,
真的是沒什麼好挑剔的 (菸)
至於為什麼要在 GitHub 取了個不一樣的 ID,
我也忘了,好像是因為想要 Localize 吧。(這理由……)

最近想做個個人品牌,
慢慢發現以往的 ID 有太多歷史包袱,
像是很多中二文之類的,
看我匯入以前的文就知道了 (艸
這個時代要洗面革新真是一件不容易的事情,
所有丟臉的過去都在網路上找得到,
但也因此加深了我挑戰的慾望,
要向令人害羞的親村 say goodbye。

上班也已經半年多,
步調跟上了,事情還是一樣源源不絕的湧進來。
小公司嘛,一方面想要壯大,一方面人少得身兼多職,
這都是可以理解的。
但個人時間就越來越少得可憐,
GitHub public 的這些專案也都難以見人,
所以就先多寫一些 doc 來贖罪吧。

(千萬別又是三分鐘熱度啊啊啊)

掛載硬碟映像檔中的分割區

有天因為方便的關係將整個硬碟用 dd 備份了起來,
有天要用裡面的資料,
卻發現我好像只 mount 過 partition image 而不是 disk image…

想了一下其實也很好處理,
我們需要 parted 來找到分割區的定義點,
然後再掛載他:

$parted /path/to/disk.img unit B print

Model:  (file)
磁碟 /path/to/disk.img:320071851520B
磁區大小 (邏輯/物理):512B/512B
分割區:msdos

編號  起始點      結束點          大小            類型      檔案系統    旗標
 1   **1048576B**  320069435391B  320068386816B  primary  ntfs      啟動

之後就是 mount 囉

$mkdir /mnt/somedir
$mount -o loop,offset=1048576 /path/to/disk.img /mnt/somedir

全劇終。

解決 ArchLinux 內 PostgreSQL 因 shmmax 設定無法啟動的問題

上次更新後,重新啟動電腦時 PostgreSQL service 發生錯誤, 看到 /var/log/postgresql.log 裡面有這些東西:
LOG: received smart shutdown request LOG: autovacuum launcher shutting down LOG: shutting down LOG: database system is shut down FATAL: could not create shared memory segment: Invalid argument DETAIL: Failed system call was shmget(key=5432001, size=41279488, 03600). HINT: **This error usually means that PostgreSQL’s request for a shared memory segment exceeded your kernel’s SHMMAX parameter. ** You can either reduce the request size or reconfigure the kernel with larger SHMMAX. To reduce the request size (currently 41279488 bytes), reduce PostgreSQL’s shared memory usage, perhaps by reducing shared_buffers or max_connections. If the request size is already small, it’s possible that it is less than your kernel’s SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for. The PostgreSQL documentation contains more information about shared memory configuration. LOG: database system was shut down at 2012-01-25 03:53:18 CST
根據粗體字貼心的提醒,可以先來更改系統設定:

$ sysctl -w kernel.shmmax=134217728

再重新啟動 PostgreSQL 就大功告成:

$ rc.d start postgresql

但這個設定重新開機之後就沒了,所以還要寫入系統設定檔裡

$ echo ‘kernel.shmmax = 134217728’ >> /etc/sysctl.conf

About Installing Google Chrome in Arch Linux

If you choose Chromium…
It’s easy to install Chromium, the most powerful browser from Google, in Arch Linux. Just make sure you have enabled “extra” repository in /etc/pacman.conf and type:

$ pacman -S chromium

all things done.

If you’d like to install Google Chrome Stable…
However, if you’d like it more stable, you can take a look in AUR. Of course it’s not provided by Arch Linux officially. The package I use is here:

google-chrome 16.0.912.75-1 by t3ddy
https://aur.archlinux.org/packages.php?ID=37469

Download the tarbell and untar it:

$ tar xzf google-chrome.tar.gz
$ cd google-chrome/

And then make package:

$ makepkg -s

You may see the makepkg script asking you to download required libraries. Confirm and continue. After running makepkg script, the current directory (google-chrome/) contains a few extra files, include “google-chrome-xx.x.xxx.xx-x-YOUR_ARCH.pkg.tar.xz”. Install it by pacman, for example in my case:

$ pacman -U google-chrome-16.0.912.75-1-x86_64.pkg.tar.xz

Confirm and install. Now you should see Google Chrome in gnome-shell (kde kickoff or something.)

Using Google Maps API Libraries (Adsense, Geometry, etc.) in gmaps4rails Way!

Google Maps API has it’s official AdSense Library, which allow you to add advertisement in your own map view easily. By using gmaps4rails, the recently popular map service library in RubyOnRails, some problems occurred if we write the javascript tag mention on the Google Maps API document. Why? because the google maps api version gmaps4rails used is not the newest version. Using the newest js library result in conflict between different versions of Google Maps API.

To avoid this, we can simply put { :libraries => [:adsense] } in :map_options, for example:

1
2
3
4
5
6
7
8
9
@google_maps_html = gmaps( :map_options => {
:detect_location => true,
:libraries => [:adsense],
:center_on_user => true,
:zoom => 15,
:auto_zoom => false,
:auto_adjust => true,
:disableDefaultUI => true },
:markers => { :data => @json })

And in our view, put javascript like this in the window load callback:

1
2
3
4
5
6
7
8
9
10
11
Gmaps.map.callback = function() {
var adUnitDiv = document.createElement('div');
var adUnitOptions = {
format: google.maps.adsense.AdFormat.HALF_BANNER,
position: google.maps.ControlPosition.TOP_CENTER,
publisherId: 'your publisher id',
map: this.map,
visible: true
};
var adUnit = new google.maps.adsense.AdUnit(adUnitDiv, adUnitOptions);
}

The :libraries key seems not appear on the Google-Maps-for-Rails wiki. But after trace the source code, we don’t have to modify the plugin but just use it. Force working with the newest Google Maps API with gmaps4rails is not recommended. 

Solve gnome-terminal no wrapping problem

You may notice that sometimes long commands doesn’t be wrapped when using bash in gnome-terminal. However, it’s considered to be a bug of gnome-terminal. the solution is pretty simple: use system default font! which is configurable in preference dialog.

找回 Gnome 3 遺失的關機選項

除了 Ubuntu 自家擁有優秀(?)的 Unity 之外,近期各 Linux 發行版都陸續升級到了 Gnome 3,界面乾淨俐落,清新可人。然而忙碌了一天之後要關機時,卻遍尋不著關機的選項……。

鎖定、切換、登出,啊怎麼只有暫停 囧 說好的關機呢?重新開機呢?就算登出了還是找不到。別擔心,其實他們都還在,只是需要多按一個 Alt 鍵而已。點開螢幕右上角,有你名字的選單後,按下 Alt 鍵,「關閉電源…」按鈕就會出現了,重新開機也在裡面。

嫌每次都要多按 Alt 太麻煩嗎?多數 Linux 發行版裡面都有這個套件:gnome-shell-extension-alternative-status-menu 以 Arch Linux 的文字界面安裝為例,以 root 權限執行:

$ pacman -S gnome-shell-extension-alternative-status-menu

再重新登入就可以了!