2012年6月24日 星期日

用力的~翻滾吧!管他在正反之間~


翻滾吧!用熱血飛上青天...這周末花了點時間重整周邊的開發環境,複習了 GAEHeroku 後,無意間找到這篇 Google Groups > CloudTW › GAE → Heroku → Linode,並回憶自己的經驗後,深深地回想起學生時代看過的動漫:鋼之鍊金術師!那一道道「等價交換」的理化原理扎扎實實地用在生活、人性甚至科技上。


今年是很特別的一年,從年初就這般告訴自己,隨時時間越來越接近年中,一件件不在預料中的事蹦了出來,突然也能感受到馬雲說的話:「只要是錢能解決的問題都不是問題」(其實,這句話我比較有印象是某政治家的口頭禪),隨著時間的增減,感觸極深,那就是時間好少啊。小時不懂事時,時間在電視、電動中度過,等到年少輕狂時,卻又在球場、升學壓力中,等到好像快自由時,卻陷入經濟、兵役中,等到可以喘口氣時,又碰上人生問題,其實壓力不曾減少,只會隨著時間與空間轉換,唯一不變的那就是一天只有 24 小時,在這樣的定理下,漸漸地不會去羨慕什麼,也不用去模仿什麼,因為你就是你,他就是他。


這一年多來不小心學到的壞習慣,那就是思考、計較勝於行動。由於單位目標,常常必須花很多時間去找尋資料,也訂閱了一堆有的沒有的 RSS,透過這些資訊的吸收,的確有一定程度的成長,但是轉個彎來思考,更代表自己一定程度的佇足。當別人跟你說 ooo 很炫,你可以很快地舉出例子說 xxx 已經做過了;當別人說這個好像可以做,又不禁意地潑了別人冷水。


後來,我發現這件事似乎是 25~35 年紀的說話語氣,例如提出一些創業的觀點時,會有一票人用近似反對的觀點對談 XD 只是很神奇地,碰到 35 ~ 50 歲的長輩時,他們反而會希望年輕人大膽去做,年輕就是本錢,彷彿希望年輕一代把自己過去未做的事補齊!其實,創業終究只是個代名詞,國父說的好,把一件事從頭做到完就是成功,我覺得這真的對極了,實在不必要把創業的標準訂太高,能夠達成做自己喜歡的事(這動力會促使你把其他不喜歡做的事也搞定),也就不錯啦,不見得要去探索藍海,在紅海中悠游自在不也不錯嘛。


今晚重灌電腦時,同事塞了一本書叫我看一看,還滿建議有興趣的可以翻一下:



不到 300 頁,剛好裝完系統+更新完系統的時間,我就看完了 XD 我覺得裏頭的東西不見得是新穎的,但可以回顧別人是如何過生活。很巧地也讓我回顧我工作近三年的兩個單位文化,文中所提的十分有感觸,例如管理者道歉文化,有一派認為會給人沒執行能力、魄力,另一派會覺得是拉近關係等。整本書的優點大於缺點,若是硬要說不好的,那就得問問廣大的鄉民吧 cc 別忘了媒體、行銷:



感謝周邊優秀的同事,不一樣的成長背景,醞釀著不一樣的能量,以前總覺得自己的觀點還算新穎,現在覺得周邊一堆人都很厲害呢,然而,生命的長度有限,每個人選擇的路線不見得一樣,記得要多多給予別人正面的能量,相信這世界會因此變得更好!接下來的生活嘛,大概可以參考學弟當兵日記,把一堆 RSS 退掉,專心地提升行動力。



編譯 Hinedo 及使用廣播播放 @ Mac OS X Lion

身為一個懶人,連音樂都不選也是合情合理的 XD 所以安裝廣播軟體是非常基本的,腦中閃過的第一個念頭是就編一下國內自製的 hinedo 廣播程式吧!這可是大名鼎鼎的 PCMan 的小作品呢。


由於程式碼採用 gtk 開發環境,所以就用 port 安裝一下程式所需的東西吧!



  1. 安裝 MacPorts

  2. 安裝 gtk2


    • $ sudo port search gtk2 | grep gtk2

    • $ sudo port install gtk2-extra


  3. 安裝 mplayer


    • $ sudo port install MPlayer



測試 hinedo-0.4.tar.bz2 (2007.11.18):


$ wget http://www.openfoundry.org/of/download_path/hinedo/2007.11.18/hinedo-0.4.tar.bz2
$ tar -xvf  hinedo-0.4.tar.bz2
$ cd  hinedo-0.4
$ make


可惜測試時 (./hinedo) 只有出現一個 X11 介面 Orz 所以,只好用工程師法(若看到 python 噴訊息,是因為 Lion 內建採用 Python 2.7,有些函數參數格式有變,如 execl,僅需在該函數後面多加一個 "" 參數及可):


$ ./update
已更新到最新版本的 script
正在更新選單...
$ ls ~/.config/hinedo/
menu play update_menu version
$ cat ~/.config/hinedo/menu
音樂
BravoFM 台北都會音樂台 1001
Classical 台中古典音樂台 1120
E-Classical 台北愛樂 228
KISS RADIO 網路音樂台 308
正聲音樂派 1270
KISS RADIO 大眾廣播電台 156
中廣音樂網i radio 206
中廣流行網 i like 205
HitFM聯播網 北部 222
HitFM聯播網 中部 88
HitFM聯播網 南部 90
POP Radio 台北流行音樂電台 370
奇美古典音樂網 294
BestRadio 台北好事 212
BestRadio 高雄港都 213
BestRadio 台中好事 211
BestRadio 花蓮好事 303
AppleLine 蘋果線上 248
ASIAFM 衛星音樂台 321
Flyradio 飛揚調頻 357
RTI央廣 音樂 313
佳音現代聖樂網 340
全國廣播音樂網 338
太陽電台 289


生活
needs RADIO 1060
古都電台 1143
飛碟電台 232
ASIAFM 亞州電台 210
ASIAFM 亞太電台 295
IC之音 148
uni radio 環宇電台 282
全國廣播 202
佳音電台 201
佳音經典音樂網 250
大愛網路電台 325
城市廣播網-台北健康電台 229
城市廣播網-台中城市廣播 226
臺北廣播電臺 喔海洋頻道 238
臺北廣播電臺 都會資訊頻道 208
大千電台 109
EZ Radio 宜蘭中山電台 301
真心之音廣播電台 217


新聞
中廣新聞網 207
NEWS98新聞網 187


綜合
台灣之聲 1080
最愛生活頻道 1020
正聲 台北調頻台 198
正聲北港台 1223
正聲台中一台 1220
正聲台中二台 1221
正聲台東台 1228
正聲嘉義台 1224
正聲大發台 1227
正聲太保台 1225
正聲宜蘭台 1229
正聲雲林台 1222
正聲高雄台 1226
正聲 台北調幅台 317
復興廣播電台 第一網 286
復興廣播電台 第二網 287
復興廣播電台 短波網 288
漢聲廣播電台 全國調頻網 216
漢聲廣播電台 215
漢聲光華網 短波 309
漢聲光華網 中波 281
RTI央廣 國語 315


外語
ICRT 177
RTI央廣 歐美及方言 314
RTI央廣 FM 312
RTI央廣 亞洲頻道 311


多元文化
BestRadio 南方之音 1170
Nice923 宜蘭生活廣播 1180
WowRadio文藻網路音樂台 1205
寶島新聲廣播電台 259
寶島聯播網 高雄主人電台 1250
崑山科大 EKHO Radio迴音線上 1203
快樂聯播網-台北 1140
快樂聯播網-嘉義 1141
快樂聯播網-高雄 1142
非凡音電台 1040
igo 531 160
大漢之音 300
寶島客家廣播電台 241
新客家廣播電台 254
高屏溪客家廣播電台 298
青春線上 356
中廣寶島網 162


交通
警廣 全國交通網 1100
警廣 台中台 1103
警廣 台北台 1101
警廣 台南台 1104
警廣 台東台 1108
警廣 宜蘭台 1106
警廣 新竹台 1102
警廣 花蓮台 1107
警廣 長青網 1109
警廣 高雄台 1105

$ which mplayer
/opt/local/bin/mplaye
$ vim ~/.config/hinedo/play
更換 mplayer 位置 '/opt/local/bin/mplaye' (原本是 '/usr/bin/mplayer' )  


手動執行 ICRT 177:


$ ~/.config/hinedo/play 177
MPlayer 1.0rc4-4.2.1 (C) 2000-2010 MPlayer Team
158 audio & 340 video codecs


Playing http://bcr.media.hinet.net/RA000038.
Resolving bcr.media.hinet.net for AF_INET...
Connecting to server bcr.media.hinet.net[202.39.42.33]: 80...
STREAM_ASF, URL: http://bcr.media.hinet.net/RA000038
Resolving bcr.media.hinet.net for AF_INET...
Connecting to server bcr.media.hinet.net[202.39.42.33]: 80...
Resolving bcr.media.hinet.net for AF_INET...
Connecting to server bcr.media.hinet.net[202.39.42.33]: 80...
Cache size set to 32 KBytes
Cache fill: 0.00% (0 bytes)
ASF file format detected.
[asfheader] Audio stream found, -aid 1
[asfheader] Audio stream found, -aid 2
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16002->192000)
Selected audio codec: [ffwmav2] afm: ffmpeg (DivX audio v2 (FFmpeg))
==========================================================================
AO: [coreaudio] 48000Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
Cache not filling!
Cache not filling!49.9) of 1844674428928.0 (512409556:18:33.6) 53.3% 0%
Cache not filling!50.7) of 1844674428928.0 (512409556:18:33.6) 116.9% 6%
Cache not filling!51.7) of 1844674428928.0 (512409556:18:33.6) 82.8% 12%
Cache not filling!52.7) of 1844674428928.0 (512409556:18:33.6) 84.8% 12%
Cache not filling!53.7) of 1844674428928.0 (512409556:18:33.6) 86.6% 12%
Cache not filling!54.8) of 1844674428928.0 (512409556:18:33.6) 86.7% 12%
Cache not filling!55.8) of 1844674428928.0 (512409556:18:33.6) 87.1% 12%
A:262924.2 (73:02:04.2) of 1844674428928.0 (512409556:18:33.6) 47.8% 18%


這種聽廣播的方式,對工程師來說還算很自然 XD 但對一般人真的不方便啊,所以,可以改用另一款 Freeware 廣播程式:FStream 啦 XD 我只是稍微想支持一下國貨嘛,此外,在看 hinedo 的程式碼時,發現他會去撈 http://hichannel.hinet.net/old/xml/radioList.jsp 位置,上頭則是一些廣播的來源及分類,也算不錯的收穫,而播放前從 "http://hichannel.hinet.net/player/radio/silverlight.jsp?radio_id=電台代號" 分析網頁找尋 mms:// 來源,在用 mplayer 播放軟體播放即可,而使用精美的 FStream 時,則是 mms:// 當做來源。這些流程,我猜也是市面上多款 PC、Mobile app 的實作吧,從偉大的 hinet 那邊找 mms 來源來播放 :P


安裝 MacPorts @ Mac OS X Lion


很久沒有在 Mac OS X Lion 上安裝 MacPorts 啦,結果又碰到了一點小問題 :P 主要的原因是新版 Xcode 並沒有內建 gcc ,所以從 Mac App Store 安裝完 Xcode 後,打開 Xcode ,從左上角點選 Xcode > Open Developer Tool > More Developer Toos 後,就會被導向 Apple Developer 相關網站,下載 Commands Lion Tools for Xcode 後,終於可以正式使用 MacPorts 安裝軟體。



  1. 安裝 Xcode & Commands Lion for Xcode


    • Xcode 4.3.3

    • command_line_tools_for_xcode_june_2012.dmg


  2. 安裝 MacPorts


    • https://distfiles.macports.org/MacPorts/MacPorts-2.1.1-10.7-Lion.pkg


  3. 更新 MacPorts (由於採用 rsync 架,若碰到公司防火牆設定時,可改用 svn 更新方式)


    • sudo port -v seflupdate



範例,安裝 wget:


$ sudo port install wget


2012年6月23日 星期六

解決 VirtualBox 僅限主機介面卡 - 偵測到無效的設定 @ Mac OS X Lion 10.7.4

virtualbox-host-only-nic-error


最近正在布局筆電 XD 把一些常用的開發環境設置一下,方便往後行動工作。首要之處就是把 VirtualBox 搞定,這是研究上非常非常便利的工具,我還滿常把開發環境打包一個 VM,方便確認開發所需,也能快速的移植。我習慣在 Unix 環境裝兩張網卡,一張 NAT 讓它可以連外,另一張就是 host-only 的網路卡(VMWare則不需要這種設定),供 host 用 terminal 連進去 guest 系統。


結果就碰到"偵測到無效的設定值"的問題,過去 host 為 Ubuntu desktop 也碰過幾次,那時就更換 VirtualBox 版本就得到解決,但是在 Mac OS X 試了 3~4 版還是沒用 XD 最後才認真去找解法。


virtualbox-add-host-only-nic


解法就是去偏好設定新增一下網路卡就好 XD 原來這麼簡單就解決了,回到設定畫面就可以選 vboxnet0 ,也不會出現其他錯誤訊息了。


virtualbox-host-only-ok


2012年6月20日 星期三

把玩 Linode 筆記


在強者型男同事的勸敗下,我也花了錢試用一下。由於逢 Linode 週年慶,新註冊的會員可以得到 $100 的折扣,以最便宜的 Linode 512 機器來說,折扣大約可以多用五個月,所以,花了約台幣 860 元買了近 40 天的使用期( month to month, 從06/20算到07/31價錢),加上折扣後大概可以用快半年吧?!


接著,挑選了 Japan 位置、Ubuntu 12.04 LTS 64bit 環境。雖然 Linode 512 只有 512MB、20GB的使用空間,但為了開發系統的一致性,還是選用了 64Bit 的環境,而 20GB 的空間是包含整個 OS 運作的系統空間,例如網頁上還須指定 swap 的大小,我選擇最大的 512MB ,或許往後計算量大時,可能有所幫助吧?


初次使用,更新系統:


$ sudo vim /etc/apt/sources.list
:%s/\/\/us\./\/\/jp\./g
$ sudo apt-get update && sudo apt-get upgrade
$ df -h


Filesystem Size Used Avail Use% Mounted on
/dev/xvda 20G 590M 18G 4% /
devtmpfs 243M 4.0K 243M 1% /dev
none 49M 176K 49M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 244M 0 244M 0% /run/shm


更新後,還有 18GB 的空間,並在 Linode 網站上查詢,可以知道用了多少網路流量下載軟體(約50MB)。


接著設定安全性的部份:


$ sudo apt-get install denyhosts mutt
$ vim /etc/hosts.allow
ALL : 127.0.0.1 :allow
sshd : IP1, IP2 :allow
$ adducer user
$ vim /etc/group
sudo:x:27:user
$ vim ~/.forward
\user
$ vim /etc/ssh/sshd_config
PermitRootLogin no
$ /etc/init.d/ssh restart


由於預設系統允許 root 登入,因此關掉這個通用帳號可以降低很多帳密測試的風險,並使用 denyhosts 阻擋 try password 事件,且為了留後路給自己,先寫幾個 IP 擺在 hosts.allow 囉,接著建立 user 帳號,並設定好 sudo 權限,最後則是設定 root 信箱 forward 給 user 帳號,如此一來就可以用 user 來觀看有哪些系統等級的通知信件囉。雖然擋掉 root 或許有些不便,但 Linode 本身有提供 Web 版 Remote Access 服務,透過 Ajax Console 可以登入進去,也算是留了個後路,就不怕不小心防火牆設錯擋到自己。


防火牆:


$ mkdir ~/conf/
$ vim ~/conf/firewall.sh
$ sudo ln -s ~/conf/firewall.sh /etc/init.d/firewall.sh
$ sudo chmod 755 /etc/init.d/firewall.sh
$ sudo update-rc.d -f firewall.sh defaults 


至於使用心得?暫時還沒有,看了一下 ping 的回應,大約 40~50 ms 不等,應該還可以接受吧!(ping 學網的機器約 5~15ms)