總瀏覽量

2013年11月29日 星期五

在動態blog上使用SyntaxHighlighter

最近要在我們team上的blog發表一些文章

不過那個blog選用的是用的是動態的template

因為內容是動態render出來的,所以SyntaxHighlighter的基本用法就不工作了

Google了一段時間

在stack overflow上找到了解法一

<pre class="brush: js" title="test" id="sh3-123">
var f = function () {
return 1;
};
</pre>

<script type="text/javascript">
// code snippet is loaded here, use SH3 API to highlight it
var element = document.getElementById('sh3-123');
SyntaxHighlighter.highlight(undefined, element);
</script>


基本上就是給pre標籤一個id再用SyntaxHighlighter API明確把syntax套上那個tag

這方法雖然work但是每貼一段code就要指定一個id感覺還是太繁瑣了

因此繼續google

然後找到了解法二

只要在blog中貼上上段javascript就可以讓原本語法恢復正常工作了

<script type="text/javascript">
SyntaxHighlighter.highlight();
</script>

2013年10月29日 星期二

美國Hadoop朝聖之旅part 1

2013.6.9 day1

終日坎坷不安的心情一直蔓延到手機傳來鈴響為止

是司機打來跟我確認地址的,以便把我接送至機場

在爸媽與女友的陪伴下我搭上了車

準備離開台北

在車上,司機話不絕口

後來想想也是好事,免得我腦袋空空開始想有的沒的

倏地就來到了機場大廳

我在大廳裡悠轉了一會沒見到人

然後就接到主管打來的電話

一起繳了行李後我們便直奔長榮貴賓室

一進入後驚為天人阿


buffet來的


燒賣很好吃,我取了不只一輪

在貴賓室稍作休息後

就啟程前往搭機了

飛美國11個小時的飛機其實也還好

反正機上都很好睡

睡個8小時起來看部電影就差不多到了

沒想像中的難熬

ZzZzZz...

好的,現在我們已經來到了世界中心美國

在海關delay了許久以及辦理租車手續種種

讓我們踏入旅館的時間調整為當地時間12點

第一天就在累累的狀況下沉沉睡去了


day2

陽光透過未拉滿的窗簾縫灑進了室內

打開窗戶,欣賞下清新的早晨


回頭稍事梳洗後

就下樓走向餐廳

經過房間第一映像洗禮後

我想早餐應該是不差的

但我卻在此體會到了什麼叫做沒有期待就沒有傷害~0rz

不提早餐也罷

我們的旅館離公司約5~10分鐘車程

來到公司後大夥興奮地對trend micro扛棒猛按快門


門面


阿~~~

這就是Bay Area阿,心中一股憧憬油然而生

倏地入內

head on 美國同事幫我們book好meeting room作為此行的戰情室

午餐承蒙同事慷慨解囊,吃了一頓好料的




非常感謝scott大大熱情招待!


第一天在尚未解決jetlag以及大致擬定作戰方向後便趁早收工

養精蓄銳希望明天有更好的精神XD

晚間回到旅館後,帶著相當享受的心情,早早睡去,早上4~5點便起床XD

隔天滿懷戰力準備上工時

便發現,台灣site的網路竟然掛點,resource全無

在一番call for help之後由於時差問題,最終還是要等明天才有辦法連上

於是第二天又在幾番無力掙扎與尚未調適完的jetlag下,提早下工

下工後我們前往valey fair逛mall

在這間nordstorm買到了同事委託代買的鞋


晚餐就在mall裡解決囉


這個超好玩的拉,疊疊樂,夾多少吃多少(後來廚師看了直搖頭)


這餐吃吃飽的


回到sunnyvale溫暖的個人高級旅店,準備明天進城參加conference



day3

早起上路!


highway超大條,不過進城的車也不少就是了

經過一番道路不熟以及單行道噩夢後

總算找到拉




名條隨便你貼,這設計還蠻有才的,可以有種可以貼個hire me~XD


keynote開場好像在disco一樣


印象中好像是wibi data的CEO,台風超穩健,簡報有條理,聽起來就讓人覺得這公司會成功!


有的session會兩個以上輪流報


這個panel discussion我其實聽不太懂,印度腔真的太殺了~囧


整個conference結束後酒足飯飽一下,又回到溫暖的窩

2013年10月19日 星期六

ACER S7 391 升級windows 8.1 心得分享

前兩天歡欣雀躍的更新了win8.1



結果悲劇就此揭開序幕~囧

以下分享給所有S7的朋友們,其他機種也可以參考看看^^



首先第一個問題是觸控板的手勢都不見了

這部分只要重裝touchpad的驅動就可以回來了

http://www.acer.com.tw/ac/zh/TW/content/drivers

TouchPad ELANTECH Touchpad Driver v11.6.27.201 124.0 MB 2013/10/08 下載

win8.1版本的軟體增加蠻多客製化的設定

不過我還是裝回了win8的版本因為有幾個我熟悉的設定反而不能設了



第二個問題是metro的介面變大了

動態磚從原本的五列變成四列,整個排列超醜的

解法如下圖在更多顯示的地方調整成"較小"





最後一個也是我還沒解決的問題

那就是觸控的靈敏度變差了

同一個觸控動作要做第二次才有反應

這個問題有點複雜

因為當開始操作觸控螢幕後,後面的操作就都又沒問題了

但一段時間未使用觸控螢幕,再進行操作的第一次就會辣擦掉

請看影片(注意看第一次操作確實有觸控到,只是被判斷成一個點擊而不是滑過)



這真的讓人超火的

雖然看起來好像沒什麼

實際上真的超難用

因為筆電上的觸控螢幕一定是搭配鍵盤用阿

所以常常打完字回來第一次又不行了



關於驅動更新的部分還有一點值得一提

就是更新完win8.1的wifi driver後

高度省電(如下圖)的模式會每10~15分鐘斷線的問題就不再發生了





還有,微軟的新輸入法還蠻難用的~.~

結論:我要來rollback拉

[2013.10.21]

今天花了一下午rollback回win8

用acer recovery manager做的

選擇自訂模式的話資料都可以保留,但安裝起來的程式都會被移除掉

所以花了不少時間設定回來

總算拿回順暢的觸控體驗拉

2013年10月15日 星期二

京阪神奈自由行 美食篇 Oct. 2013

這篇先把這次7天7夜自由行的美食蒐羅一下,以免時間久了沖淡了美好的滋味

神戶:十番燒肉飯、ステーキランド神戸館(神戶牛)、モーリヤ三宮店(神戶牛)
京都:六傳屋擔擔麵先斗町店、京うどん生蕎麦岡北(蕎麥麵)、名代豬排京都車站、くら寿司金閣寺店
大阪:梅田但馬屋(壽喜燒吃到飽)、金龍拉麵、貝利的鮭魚丼、鶴橋風月(大阪燒)、つけ麺 雀(沾麵)、燒肉六甲(燒肉吃到飽)

吃到飽系的就不加入排名了

排名如下:
ステーキランド神戸館

ステーキランド神戸館的用餐環境跟モーリヤ三宮店(志玲姊姊推薦的)比起來確實是low了些
但根據我兩家都吃過的經驗來講,強推想吃神戶牛的去ステーキランド神戸館就好,除非你是那種有社會地位卻出現在普通餐館,怕被恥笑的人
這次我在モーリヤ三宮店點了一份7500yen的神戶牛,分量相比ステーキランド神戸館之下稍微少了一點
最重要的是ステーキランド神戸館只要2680yen,相當經濟划算
肉質部分,老實說,我覺得沒有差很多,モーリヤ的多汁了一些些,但我覺得都超好吃的,只要是神戶牛就無敵了
所以ステーキランド神戸館相對之下真的是超級經濟划算的拉

モーリヤ三宮店

沒錯,上圖就是全部7500yen
對於我輩來講這真的太貴了,以後會友自知之明些XD
anyway神戶牛就是頂阿~!

つけ麺 雀

這真的超好吃的,看起來雖然很簡單,但那濃稠的海鮮底醬汁實在美味,讓我在麵吃完之後還很乾淨俐落的直接把他喝光!

くら寿司金閣寺店

一盤100yen超便宜,壽司也都很好吃,CP值超高的一餐

六傳屋擔擔麵先斗町店

紅到發亮的那碗是「日本第一麻辣,擔擔麵」,我點餐的時候腦補斷句成「日本第一,麻辣擔擔麵」,那碗真的不是人吃的,別輕易嘗試XD
女朋友點的擔擔麵就非常好吃,湯頭濃郁,滋味一流
這間的食物確實好吃,但因為沒有設置禁菸席,所以其實我吃的時候超不爽的

十番烤肉飯

肉烤得非常入味,這是我日本行的第一餐,好的開始。不過來這吃的大多都上班族,因為很簡單,就只有一碗飯而已,輕鬆搞定一餐

名代豬排京都車站

這間排隊等超九,以至於我讓我產生與其代間的落差,豬排確實不錯,但我覺得台灣的杏子豬排似乎還好吃一些呢

貝利的鮭魚丼

這間原本超期待的,第一次去還吃閉門羹

再去一次總算才吃到,看似超爽鮭魚滿滿的一碗飯,吃起來說實在的會有點膩就是了

京うどん生蕎麦岡北

聽別人推薦比隔壁的元山麵藏好吃,我倒是覺得還好,可能是味道比較淡的關係吧

鶴橋風月(不推)

誠如網路上各位先進所說,確實是太鹹了,感覺吃一吃好像會要洗腎XD

金龍拉麵(超級不推)

這應該是我吃得最不爽的一餐了,不知道為什麼很多人說金龍好吃,我完全不明白= =
味道大概就跟台北市150塊沒有很道地的拉麵差不多吧

2013年9月26日 星期四

adjust brightness on ubuntu

recently I'm trying Ubuntu OS which has been installed on my USB stick.

And I found that my screen brightness is too high.

In order to resolve this issue,

apt-get install xbacklight

after that, I can use my laptop's hot key to adjust the brightness of screen.

This makes me feel good,

but, while I found the touchpad isn't work well on 3, 4 finger gesture,

I was upset, again :(

2013年9月24日 星期二

How to remove an entry from efi bootloader

I was trying to setup a USB stick contents a standalone ubuntu OS which would let my win8 ultrabook more "producable".
In the end, I messed up my bootloader to have a ubuntu boot option which should be on the usb drive, and I do not even get my USB drive ready.
After several try on googling the answer on how to remove that ugly boot entry, I finally figure it out.
The way is much more than simple,
no need to delete it by efibootmgr(ubuntu), bcdedit(windows), or download the easyBCD software.

All things you gonna to do is
(1) boot your device into a ubuntu live CD which should you prepared for ubuntu installation.
(2) check which partition does EFI entry located by "gparted" (it should format in FAT32)
(3) mount it on, for example,
mount -t vfat /the-efi-partition /whatever-mount-point
(4) cd in the directory and you could find the ubuntu boot entry: EFI/ubuntu.
(5) remove the entire folder: rm -rf EFI/ubuntu

That's it, you get it.

2013年8月13日 星期二

putty快速登入設定

玩linux的人若不是用mac,多半都用過putty吧

今天分享一點小發現

一般使用時通常會把一些常用的ip或hostname取個精美好記的名字存起來

要連線時再打開putty並選擇該session連入

但如果想要更方便一點執行程式就直接連入呢

試想一個geek每秒鐘幾萬行上下可不能浪費一點時間在「click」身上阿(誤)

據此google一下後發現putty.exe也是可以下參數的

先對putty.exe建立一個捷徑

對新建出來的捷徑點右鍵 -> 選擇「捷徑」標籤

出現以下畫面



這時就可以在「目標」欄位上動手腳拉

C:\Users\aaa\Desktop\putty.exe -load YOUR_SESSION_NAME

這樣這個捷徑一啟動即自動連入YOUR_SESSION_NAME

C:\Users\aaa\Desktop\putty.exe -load YOUR_SESSION_NAME -l YOUR_USER_NAME -pw YOUR_PASSWORD

直接輸入username/password帶你登入到YOUR_SESSION_NAME

要注意的是對於不critical的開發環境這樣做還可以接受

但比較敏感的機器還是勤勞點手輸吧

2013年7月12日 星期五

使用Google Proto buffer做簡單高效的資料傳輸

Proto buffer是google原先為了方便RPC資料傳輸而發展出來的專案

一個簡單的理解是Protobuf與XML的定位相似

都是用來做資料傳輸的

只是Protobuf會以Binary的方式傳輸

相對XML一堆(噁爛)tag要來得高效

其使用方式也非常簡單

只要定義好你的.proto檔


protobuffer compiler可以幫你建出特定語言的資料存取程式

例如: protoc -I=$SRC_DIR --java_out=$DST_DIR $SRC_DIR/addressbook.proto

會依據你定義的addressbook.proto建出相對應的java code放到$SRC_DIR下

至於怎麼拿這些java code來存取protobuf資料

詳見tutorial
https://developers.google.com/protocol-buffers/docs/javatutorial?hl=zh-TW



下面先帶個起手式 - 安裝protoc

小弟我是在centos6環境上安裝的。

在安裝protobuf前需要齊備的環境有:

yum install gcc gcc-c++

接著選擇你鍾愛的protobuf版本

https://code.google.com/p/protobuf/downloads/list

我選擇的是2.4.1版
https://code.google.com/p/protobuf/downloads/detail?name=protobuf-2.4.1.tar.gz&can=2&q=

下載下來後解壓縮
tar zxvf protobuf-2.4.1.tar.gz

進入到資料夾內可以找到README.txt

前幾行就告訴你如何安裝了

./configure
make
make check
make install

基本上./configure沒有出現error的話後續安裝也就不會有問題了

安裝完輸入protoc --version

libprotoc 2.4.1

表示成功裝完,後面要繼續玩

就把上面的tutorial詳看吧,我覺得寫得很不錯唷

2013年5月25日 星期六

fair scheduler設定經驗分享

上禮拜應主管要求,想在fair scheduler加上global的mapper/reducer數量限制
查閱官方文件
http://hadoop.apache.org/docs/stable/fair_scheduler.html

不見global linitation設定蹤跡
後來請示了神人同事確定無此設定
那怎辦呢

其實還是有workaround(不過也有副作用)
那就是把scheduler吃的pool name改成MR的queue name
要enable此功能需要再mapred-site.xml設置:

<property>
<name>mapred.fairscheduler.poolnameproperty</name>
<value>mapred.job.queue.name</value>
</property>

接著只要在fair-scheduler.xml中設置pool的limitation即可
例如:

<pool name="default">
<minmaps>14</minMaps>
<minreduces>8</minReduces>
<maxmaps>25</maxMaps>
<maxreduces>12</maxReduces>
</pool>

即所有人最少有14mapper/8reducer, 最多25/12
如此一來所有沒有設定queue name的MR job(使用default queue)都會apply到
但是!!!
因為scheduler是吃queue name來做控管
在此設定下要區分priority的話
就必須設定另一組queue
mapred-site.xml:

<property>
<name>mapred.queue.names</name>
<value>default,production</value>
</property>

現在有兩組queue, default和production
要讓production有更高優先權的話需要在fair-scheduler.xml中設置:

<pool name="production">
<minmaps>100</minMaps>
<minreduces>50</minReduces>
</pool>

即最少保證mapper的fair share有100, reducer有50,沒有天花板限制(有多少拿多少)
要讓MR job submit到production queue中
需要設定queue name:

-D mapred.job.queue.name=hdfs (generic option)
setQueueName(String) (API)

但是但是!!!
還有一件事要做
每個MR job都可以設queue name為production呀
因此沒設定ACL的話也只是做一半四不像而已

在mapred-site.xml下設定ACL

<property>
<name>mapred.acls.enabled</name>
<value>true</value>
</property>
<property>

意思是讓group1和group2兩個群組的user可以submit job到production queue
這裡的group就是hadoop hdfs的group無誤
走到這一步
基本算是大功告成

如果你的hadoop cluster是用simple authentication的話...
我只能說你是白做了XDDD

2013年5月6日 星期一

screen網路斷線後再連入會hang住

這個問題困擾我好久
經請教強著同事 Jeff Hung
原因如下
因我每次連入都是用scree -rd
會把上一次連線踢掉再連進去
不過由於是網路斷線
上一個session還傻傻在等待回應
導致沒辦法detach

[RESOLVE]
使用screen -xRR
連入時不踢掉session而是同步使用

2013.5.11
改用xRR發現因為是連上共用session,所以resolution以原session為主
這就造成我這端畫面很醜的問題
再次請教J神,ctrl+F即可resize

2013年5月2日 星期四

Ganglia start failed on ambari after OS reboot

Restarted VMs and all ambari server/agent are started,

only ganglia service can not been bright up.

I think it may due to that I just power off the VM instead of stop services first.

[RESOLVE]
http://hortonworks.com/community/forums/topic/ganglia-not-working-on-hdp-1-2/

Kill the process {gmond,gmetad} and start it on web UI again.

The root cause of this issue is that ambari has its own wrapped gmond and gmetad.

The origin one will fight with ambari one.

2013年4月22日 星期一

ambari安裝經驗分享

隨著hadoop core發展日趨成熟,

各家distribution也開始走向精緻化路線,

hortonworks出品的ambari即是一例。

ambari提供親切web ui安裝方式,讓windows user也能快速上手(誤)。

除此之外,也打包了一些常用的hadoop ecosystem project

如hbase, hive, oozie, sqoop以及monitorm用的nagios及ganglia。



基本上ambari相對之下算是好裝了。

順著Hortonworks的guide走下去沒什麼問題

(不要懷疑,趕快打開guide吧)

記得每一頁都要看,偷懶沒做的下場就是裝不起來,然後也不知道為什麼裝不起來,只好回頭一頁一頁找0rz

因為Guide都寫得很清楚,

以下就記錄一下我漏掉的部分,算是過來人經驗。

1. 安裝pdsh
2.4. Software Requirements
基本上yum, rpm, scp等等Linux Distribution都自帶了,唯獨pdsh要注意一下得自己裝
此物在後續安裝時指定一大串machine時會派上用場

2. 安裝java
雖然裝ambari-server時會幫你搞一個在/usr/jdk64,不過每台hadoop client還是都得裝java,不如自己先準備好,記得java路徑要設相同

3. ambari-server start fail??
開起來都沒錯誤訊息,不過仔細一看跑起來沒多久就死了,這也是因為沒裝java導致,由於沒error message可看,要自己注意唷。
起成功後可以在http://yourhost:8080找到webpage,帳密不是之前設的,是admin/admin(也不換個字形顏色標清楚!)

4. provide ssh private keys
在install option這頁中間的box是要輸入private keys,別像我我傻傻地貼上public...

5. 再給puppet一次機會
進展到最後一關實際安裝時,有可能會puppet裝一裝會timeout,看一下puppet的log不是其它問題的話,多按幾次retry吧。



裝完就能看到精美的dashboard



補充: machine reboot後如何把HDP起回來?
啟動ambari-sever以及每一台machine上的ambari-agent即可連到web ui,再去一步一步開service吧(zookeeper記得開在hbase前)

2013年3月25日 星期一

Distributed command line - pdsh & ssssh 簡單教學

今天要重灌hadoop碰到舊資料沒刪乾淨導致裝不起來的問題

寫了一個for i in {1..4}; do ssh "root@host-0$i" ...來刪東西

被ricky哥發現我的蠢樣後建議我用pdsh

經高人指點迅速裝完

1. download
http://sourceforge.net/projects/pdsh/

2.tar jxvf pdsh.xxx.tar.bz2

[under pdsh folder]

3. ./configure --with-ssh (我跟default的rsh不認識XD)

4. make

5. make install

done

測試一下

pdsh -R ssh -w host-[01-04] hostname

不錯

再試

pdsh -R ssh -w host-[01-04] ls -al /usr/lib | grep hadoop

咦?馬上吃屎...沒有pipe還叫做shell script嗎!?

馬上谷歌結果發現另一套

ssssh,擺明就是要解決pipe問題XD

https://code.google.com/p/ssssh/wiki/Details

這套安裝更簡單了

make install大功告成

ssssh -N -w host-01,host-02,host-03,host-04 ls -al /usr/lib |grep hadoop

帥啊老皮

不過這套似乎不支援串hostname號碼

只好動點髒手腳
alias dsh="ssssh -N -w host-01,host-02,host-03,host-04"

這樣的好處是可以搭配-x(exclude) and -w(include)使用

dsh -x host-01 hostname



[2013-03-26 updated]

pdsh用"把command刮起來就行了,但總覺得多一動就是麻煩XD

2013年3月21日 星期四

最近試玩了國產雲端硬碟

https://www.syndriver.com/

試用了幾下並上傳幾個檔案

分享一下心得

第一

也是最重要的一點

那S級的防機器人碼!

還是趕快換掉吧

第二

批次下載的UI設計得很玄

點完之後還要在右邊點一次下載

除此之外

上傳下載速度還不錯

不過就是不太想下載他的app來用耶

2013年3月16日 星期六

mkv播放沒有字幕的問題

明明就註明內嵌多國語言字幕

但是用MPC偏偏字幕選項都是灰色的

[解]
http://www.myav.com.tw/bbs/showthread.php?threadid=362996&pagenumber=0

原來影片也有大哉問阿

總之,output改一下就可以看了

2013年2月17日 星期日

[微食記] 中山站長鼻子大象

今天和CD吃飯,長鼻子大象



沙拉和湯都蠻奇怪的,沒有特別想法。


咖哩雞還不錯


軟殼蟹不太優耶,吃了王品的軟殼蟹以為都那麼好吃 囧


椒麻雞很棒,不愧是招牌

總結:嘗鮮可,價位稍高,不會趕人的聊天好去處(中午12點坐到下午4點)。

2013年2月5日 星期二

台北天母--溫德德式烘培餐館 [差est]

本來要帶女朋友去這裡過生日的,
聽說德國豬腳相當不錯,股哥也是這麼跟我說的。
兩三個禮拜前去電定位,
當天中午又再打過去確定一次,
結果到現場興高采烈要點餐
服務生:不好意思,德國豬腳要先預訂喔
我OS:叉叉的咧,定位的時候沒說阿,我先知什麼都知道逆?
我真的不懂要預訂才吃得到的東西,當初定位時為什麼沒告知,這邏輯在哪阿???

當天領班也只會道歉說要介紹別的餐點,
真的只能用掉漆來形容~.~

清心,透涼白開水

今天晚上10點左右去大橋頭的清心買溫的烏龍綠無糖,
結果先做錯送上有糖的給我,
請他重做更離譜了,
換一杯白開水摻少許烏龍綠給我...
真的很火
怒耶

2013年1月20日 星期日

VM copied lead to network unreachable (centos)

When you copied a CentOS VM and boot it up,
after command in ifconfig
You'll found the your ethernet is not working.
and if you try to bring it up,

service network restart

response will be like below...

device eth0 does not seem to be present delaying initialization

The solution:
1. ifconfig -a
2. record your new MAC ADDRESS
(since you copied the vm, macaddr would not be the same with origin one.)
3. vim /etc/udev/rules.d/70-persistent-net.rules
4. modify the ATTR{address} to the recorded one in eth* which you're using
5. vim /etc/sysconfig/network-scripts/ifcfg-eth*
6. modify the HWADDR to the recorded one
7. service network restart

2013年1月15日 星期二

[debug log] adLDAP

adLDAP can not retrieve account information such as displayname and email,
but can login successfully.

The Solution:
setup a correct base_dn.