Planet DebianTW

March 19, 2010

jserv

「QEMU JIT Code Generator & System Emulation」簡報上線

本週一,應台灣科技大學資訊工程系的邀約,與 [cmchao] 共同給予一場名為 "QEMU JIT Code Generator & System Emulation" 的演講,簡報與相關資訊已上線,請參考: [QEMU-JIT-Code-Generator-System-Emulation.pdf] (簡報檔案) [qemu-0.9.1-atheros-wlan.patch] (議程展示針對 QEMU 的 WirelessLAN 模擬與修改部份) 稍早在 [人生是沒有畢業的學校] 一文談及小弟在晶心科技服務的經驗,有機會與優秀的高手共事,實在格外可貴,而 [cmchao] 就是其中一位高手,從零到有,獨立實現 QEMU 對 NDS32 ISA (晶心科技自訂的指令集) 與參考平台硬體的系統模擬,建構於 QEMU 這個世界一流的開放原始碼專案的基礎上,提供完整的系統驗證分析環境。議程兩大主軸如下: QEMU JIT Code Generation: 先探討過去指令集模擬方式所造成效能低落的原因,逐一分析 QEMU 所施行的技巧、避開冗餘程式碼生成、Micro-Op...

by jserv at March 19, 2010 12:30 PM

Asho(阿信)

我與拉桿的第一次接觸...

        我的 Verita 雖然不算舊車(2002年11月),但也是受不了時間的磨損造成機件的老化,所以在轉彎時,車身會出現細微的鈑金震動聲或其它聲音,這一點實在讓我受不了(尤其是跟老爸的車比時)。

    在不斷地閱讀車友們的經驗分享之後,發現到一個有趣的東西:拉桿


    拉桿是什麼呢?簡單講就是一根合金的桿子,支撐並拉住車體兩側,使車體左右兩側受力平衡,加強車身強度,減少變形的問題,Rally 級賽車幾乎是全車拉桿安裝。

    拉桿的形狀因各部位需求而不同,大部份為直線型,形狀如下圖所示,
     圖為 SPR製作的引擎室拉桿,Nissan 原廠的拉桿就是該廠商代工。也有部份是ㄇ字型的,如以下圖示:
    那一種類型的效果最好,小弟也不清楚,我認識的製作拉桿朋友是說拉桿關節點越少越好,也就是直線效果最棒。該挑那一個都是看個人喜好,小弟的後避震拉桿就是裝ㄇ字型的,因為後車廂懸空一條桿子,可放的空間就變少了。

    拉桿的效果和解法可以參閱一位網兄的說明圖解,車身拉桿用途圖解,相信看完後更能明白拉桿的意義與用處。

    回到自已的愛車上吧,在網路上看來看去,一台車子拉桿全上的話,大約10條,這個價格以目前的小弟實在負擔不起,所以就挑選了引擎室拉桿、C柱拉桿和後避震拉桿,約$2000,由於不是底盤,所以全部自已DIY - 無價!

    工具不外乎棘輪板手、活動板手、六角型板手。以 March/Verita 的車子來說,需要以下套筒:
引擎室拉桿:12號套筒
後避震拉桿:14號套筒
C柱拉桿:17號套筒(後安全帶的位置)

    整個安裝完約一個小時左右,由於引擎室和後避震拉桿是鎖在避震器上,切記裝上去後要鎖緊,不然避震器會軟腳。

    裝完之後,我選了週末的晚上跑出去試開看看,跑的地方是我熟悉的地點,有90度直角的右急彎,也有120~150度的左彎,也有彎來彎去的左右彎,在整個試跑過程中,我一整個嚇到了,想不到先前的缺點竟然不見了。

    以90度的直角右急彎來說,它是一個很長的三線道,中間會突然來一個90度直角右彎,我開這一跑道時,常常先在中線從80降到40~50後,右切到最內側的車道,然後車身過一半後就踩油門讓車子順著彎度又回到中間的車道,這樣的切彎我還滿怕的,因為切入後,車身會有很強烈往外扯的感覺(G力嗎?),然後出彎後車身又不是很平穩,偶而發出嘰歪、嘰歪的聲音。

    這一次我試著降到60直接切彎,不可思議的事情發生了,我覺得車身變穩定,被拉扯的感覺雖然還是有,但有可以掌控的感覺,出彎後的再加速車身也沒有不穩或發出異音,著實地讓我大吃一驚!!!

    真要說差異點的話,就是入彎的感覺變細膩了!以前過右彎時,轉方向盤後,車子會有兩次動作的感覺,像是車身右側先轉,然後再拉左側車身一起進彎。裝上拉桿後,當我一轉方向盤時,就能感受到車身真的轉向,車尾也順勢轉彎;回正也是按照方向盤的控制回正,整個行動像是行雲流水、一氣呵成,讓我覺得車子好像變身了一樣。

    有了這個經驗後,再度去跑不同的彎,都會很明顯的感受到車子變聽話了!入彎前的踩剎車後再轉向,愛車會乖乖地往你要走的方向前進,我邊開還邊大叫,真是有夠棒的啦,就像是在控制自已身體一樣,

    整個試開過程真的是驚喜連連,相信今晚作夢也會笑。當然,事情沒有絕對,一定是正反兩面,裝拉桿也是有優缺點的。

    統整一下,優點如:
  • 方向盤的操控更靈敏
  • 過彎時車身更穩定
  • 遇到路上的坑洞聲音有比較小
  • 異音變少了
    缺點也是有,自已的感受如下:
  • 車身行駛時彈跳更明顯:因為平均受力的關係,以往右側撞到坑洞時,大概只有坐副駕的人才有感受,現在是連駕駛座也能感受到晃動的感覺,但並不強烈,震動的感覺也比以前小。
  • 避震器的使用率增高(提早壞?): 因為車身兩側平衡力量,右側受到的撞擊不像以往傳到車身而是另一邊的避震器。但小弟認為這才是避震器存在的意義,車身如果歪了的話,修理的錢一定是比避震器來的貴。
 
    寫到最後,小弟也不是鼓吹大家都去裝拉桿,有些歐系的車子本身就很穩定(老爹的VW過彎也是很穩),也不須要安裝,而小弟的國產 Verita 結構似乎不夠強硬,所以花個小錢來加強也是值得的。

    如果看完全文,也想要自已 DIY 安裝拉桿的話,可以先點選這一篇:辣妹教你裝拉桿。希望各位行車愉快。
  

by 阿信 (noreply@blogger.com) at March 19, 2010 09:07 AM

March 18, 2010

tsung

寶寶 喝奶量 多少才夠?

貝貝喝的奶量有點太超過(喝 150cc 還想再喝), 所以來查查 喝奶量 的規則是怎麼樣, 到底 寶寶 喝奶量 多少才夠?

  • 公式: 體重(公斤) x 150c.c. (約為四到六個月大以下的寶寶每天所需配方奶的總量.)
  • ex: 體重 6公斤的孩子, 每天的喝奶量就是 150 x 6 = 900cc, 即是每天的喝奶 總需求量. 假設一天喝 6次, 每次喝奶量保持在 100cc ~ 150cc 之間,仍屬正常數值.
  • 註: 這些都只是參考, 一般醫院的說法是, 餓了就餵、哭了就餵, 所以要怎麼做, 請再自行判斷. :)

下述摘錄自: 寶寶喝多少母奶量才夠飽?

以哺餵母乳所研究出來的醫學數據報告

  • 從出生開始~到滿月:baby的喝奶量是90~120cc之間,但有些寶寶可高達150cc。
  • 第2個月開始~:每週會增加10~20cc的奶量。
  • 滿2個月的時候:喝奶量的平均值是130~160cc之間。
  • 滿第3個月的時候:平均值就是170~200cc。
  • 在四到六個月大以前,寶寶需要多少奶量並沒有標準答案,因為每個嬰兒所需的奶量不盡相同。初生嬰兒都有天生的攝食及成長的本能,媽媽們只要迎合寶寶的生理需求,餓了就餵,不吃就停餵。若有需要,也有簡單公式可供餵食配方奶的媽媽做參考,但僅供參考。

成長評估是否有吃飽

尿濕測試
  • 如果寶寶只有吃母奶並且一天小便至少6次, 就表示奶量是足夠的.
體重測試
  • 一般出生嬰兒的平均體重,約為3公斤,
  • 第一個月,平均增加體重1公斤
  • 第二個月,平均增加體重0.9公斤
  • 第三個月,平均增加體重0.8公斤
  • 第四個月,平均增加體重0.7公斤(約為出生時體重的二倍)
  • 第五個月,平均增加體重0.6公斤
  • 第六個月以後平均每個月增加0.4~0.5公斤
  • 到一周歲時約為10公斤(約為出生時體重的三倍)

下述摘錄自: 嬰兒鼻腔窄喝奶狂哭 呼吸不順可奪命

嬰兒進食及體重指標

  • 1個月大嬰兒的平均喝奶量(c.c.), 不低於體重(公斤)乘以10
  • 1個月大嬰兒體重應較出生時增加700~800克
  • 出生第2、3個月的體重,每月應增加約1公斤
  • 4個月大嬰兒體重應為出生時的1.5倍
  • 註: 若嬰兒吸2~3口或喝10~20c.c.奶就出現哭鬧、推開奶瓶現象, 或體重低於上述指標, 應帶往就醫

相關網頁

by jon at March 18, 2010 05:27 PM

jserv

演講:以 GDB 重新學習 C 語言程式設計 (成功大學)

本月底,應成功大學電機系邀請,對之前預告的「2010 年免費課程:以 GDB 重新學習 C 語言程式設計」作第一場分享,以下是相關的資訊: 講題:以 GDB 重新學習 C 語言程式設計 日期:2010 年 3 月 27 日 (週六) 時間:14:00 - 17:00 地點: 國立成功大學自強校區電機大樓一樓 令洋廳 有別於以往 C 語言教材慣用 "Hello World" 等級的範例程式作切入,小弟預計用 [eserv] 這個自行開發的小型 C/C++ Ajax web framework (將於 OSDC.tw 研討會介紹) 作為實驗的對象,透過...

by jserv at March 18, 2010 01:16 PM

March 17, 2010

tsung

Google Contacts (Gmail) 找出重覆的連絡人資料 並 合併

Gmail 寄出任何信, 都會自動將這些信箱加入 Contacts(通訊錄) 裡面, 平常是沒什麼狀況, 但是真要整理起來, 會發現有不少重覆的連絡人在裡面.

看到此篇文章介紹: Google通訊錄新增合併重複資料功能

原來 Gmail 現在可以把重覆的資料合併起來, 真是感激~

連絡人資料合併的步驟

  1. 登入 Gmail
  2. 點選左邊欄的 Contacts
  3. Find duplicates
  4. 找出來的人點 Merge 即可.

by jon at March 17, 2010 05:13 PM

March 16, 2010

tsung

昇陽 CEO 與 Apple、微軟的紛爭

原來 昇陽(Sun, Jonathan Schwartz) 之前面對那麼多苦難, 被 Steve Jobs 和 Bill Gates 圍攻, 還能全身而退, Sun 真是夠硬的.

註: 描述過去 "蘋果的Steve Jobs" 和 "微軟的Bill Gates" 曾威脅要告他(Sun)侵犯專利, 但未能成功的內幕.

昇陽 CEO 與 Apple、微軟的紛爭

下述摘錄自: 前昇陽CEO部落格大爆業界內幕

Jonathan Schwartz (Sun) VS Steve Jobs (Apple)

他說,就在2003年發佈昇陽的Linux桌上型電腦Project Looking Glass之後沒多久,Steve就打電話告訴他說,昇陽的繪圖介面侵犯了蘋果的智慧財產權(IP)。如果昇陽打算讓此一技術商品化,「我會控告你!」

不過,Schwartz提醒Steve,昇陽對於MacOS中用到與Unix相關的專利技術亦感到關切時,「Steve就沉默不語了!」

Jonathan Schwartz (Sun) VS Bill Gates (Microsoft)

Schwartz說到,在真實的商業世界中,恫赫和威脅見怪不怪。因此與Steve的那次談話經驗,剛好能幫助他處理之後與Bill Gates間的一次會議。

他說Bill Gates和Steve Ballmer兩人曾一起到矽谷的昇陽辦公室找他。Bill開門見山的說:微軟擁有辦公室軟體市場,同時我們的專利亦涵蓋所有的OpenOffice。

Schwartz諷刺的說,Bill的表達較為婉轉,他不像Steve Jobs的直接威脅,而是提出另一種不同的解決方案。Bill建議說,微軟可以提供專利授權給昇陽。這意味著,微軟希望能夠從每一套OpenOffice 的下載中,取得相應的權利金。但同樣地,Schwartz也回應說,微軟的.Net開發平台其實也採用了Java技術。「結果,這場會議很快就結束了。」

現在看起來, Google 也是左打 Apple, 右打 Microsoft, 不知道下場會如何, 過幾年再看看. :)

by jon at March 16, 2010 04:40 PM

Cornelius

Vim - git rebase helper

This helper script is for `git rebase --interactive` command:

by c9s (cornelius.howl@gmail.com) at March 16, 2010 03:30 PM

March 15, 2010

tsung

PHP 的 SOAP 串接 - 使用 NuSOAP

好久沒串 SOAP, 最近有個 API 使用 SOAP, 重新拿出來複習~ 此篇都是以 Client 為主.

什麼是 SOAP

PHP NuSOAP

  • PHP 的 SOAP 可以使用 PHP: SOAP - Manual, 或者其它套件, 在此篇使用的是 NuSOAP.
  • 使用 NuSOAP 的原因, 主要是因為 NuSOAP 完整又簡單, 而且以前使用起來很愉快, 就繼續用下去~ :P

NuSOAP 安裝、使用

  1. NuSOAP 官方網站: NuSOAP - SOAP Toolkit for PHP -   由此下載 NuSOAP
  2. unzip nusoap-0.7.3.zip
  3. 使用
    <?php
    include('soap/nusoap.php'); // 即可
    ?>

NuSOAP Client 範例

主要是 $param (參數, 注意裡面的型態, 須要與 API 的型態一致, 不然有可能會出錯.), $serverpath (Server 位置), $client->call() (API 名稱), 就可以取得 API 的結果.

範例

<?php
$param = array(
            'id'      => 1,
            'user_id' => (string)$user_id,
            'name'    => 'jon',
         );

$serverpath = 'http://soap.example.com/user/userinfo';
$client = new nusoap_client($serverpath);

$err = $client->getError();
if ($err)
    return false;

$result = $client->call('showUserInfo', $param);

print_r($result);
?>

NuSOAP Client 範例 - Login

SOAP 經常使用在 SSO (Single Sign-On 單一登入), 登入完後的 cookie 要如何紀錄, 並於下個 API call 時帶入?

範例

<?php
// Login
$url = 'https://soap.example.com/v3/Services/UserLogin.asmx';
$client = new nusoap_client($url);
$err = $client->getError();
if ($err)
    return false;
    
$param = array(
              'user' => 'jon',
              'password' => 'test',
          );

$soapaction = '
http://soap.example.com/user/Login';
$result = $client->call('Login', $param, '', $soapaction);
print_r($result); // 此段已經可以登入完成, 看看是否有取得資料

// Debug
//echo "request:\n" . $client->request . "\n"; // 發出的 SOAP request XML 長什麼樣子
//echo "response:\n" . $client->response . "\n"; // 接收到的 XML 長什麼樣子


// Get User Info (登入完成, 取得 cookie 後, 再接著去要使用者相關資料)
$cookie = $client->getCookies(); // 上面登入完成, 取得 Cookie 值
$url = 'https://soap.example.com/v3/Services/UserInfo.asmx?wsdl';
$client = new nusoap_client($url); // create new soap client
$client->setCookie($cookie[0]['name'], $cookie[0]['value']); // 指定 Cookie 值
$soapaction = '
http://soap.example.com/user/GetUserData';
$result = $client->call('GetUserInfo', '', '', $soapaction);
print_r($result); // 即取得登入後, call GetUserInfo 的資料
?>

筆記

NuSOAP Debug howto

<?php
$client = new nusoap_client($url);
// call($operation, $params = array(), $namespace = 'http://tempuri.org', $soapAction = '', $headers = false, $rpcParams = null, $style = 'rpc', $use = 'encoded')
$result = $client->call('Login', $param, '', $soapaction);
echo "request:\n" . $client->request . "\n"; // 發出的 SOAP request XML 長什麼樣子
echo "response:\n" . $client->response . "\n"; // 接收到的 XML 長什麼樣子
?>

中文亂碼解決

使用 NuSOAP 若回傳的中文是 ???? 或 亂碼, 主要是 NuSOAP XML Parser 的問題(註: XML 中文都是正常顯示)

此時要注意的是有三個地方 NuSOAP Library 內的參數值

  • $client->soap_defencoding = 'utf-8';
  • $client->xml_encoding = 'utf-8';
  • $client->decode_utf8 = false;

主要是 NuSOAP 認為 xml_encoding 是 utf-8 時, 會自動啟用 decode_utf8 的動作, 反而造成原本正常狀況, 經過 decode 反而變亂碼, 所以解法如下:

  • $client->decodeUTF8(false); // 不要讓他 decodeUTF8 就可以了.

範例

<?php
$client = new nusoap_client($url);
$client->decodeUTF8(false);
$result = $client->call('GetUserInfo');
print_r($result);
?>

相關說明

相關網頁

by jon at March 15, 2010 04:29 PM

kanru

Got one A1 from Broncho

上週末下班前,在桌上發現一個包裹,原來是渡海而來的兩隻 A1!這兩隻 A1 是 Broncho 的產品,詳細規格可以參考 Broncho 的網頁

大伙興奮的開箱啦!

開箱 開箱

包裝和 Hero 的很像。3.2 寸 LCD, 480×320 的解析度,200 萬畫素的相機鏡頭,CPU 是 Marvell 300 (624 MHz),記憶體是 256 + 128 MB,支援 WIFI, Bluetooth, FM, GPS。不是使用標準的 USB 接口,但同一個接口可以接 USB、耳機、變壓器。觸控螢幕使用起來的感覺像是電容式的,反應非常靈敏,輕輕的觸摸就有反應。

系統是 Android Cupcake,內建軟體有不少 Google App,最另人驚訝旳是上面有 Android Market 可以用,試著從 Market 上面下載了一些小遊戲下來玩,完全沒有問題,真是太牛了!另外一點就是有內建手寫輸入,速度不快但是準確度不錯。除此之外還有谷歌拼音可以用。

測試的途中無線網路與 GPS 不是很穩,除此之外以一隻中低價位的手機來說表現的相當不錯。

by kanru at March 15, 2010 09:50 AM

March 14, 2010

tsung

CSS3 跨瀏覽器程式碼產生器

CSS3 要產生圓角、陰影.. 等等, 在每個瀏覽器需要寫不同的程式碼, 有沒有辦法寫完一行, 就自動把其它瀏覽器所需要的相關程式碼都產生出來呢?

因此, 就有此網站的出現: CSS3 Please! The Cross-Browser CSS3 Rule Generator

於頁面上選擇圓角(box_round)、陰影(box_shadow) 等等的程式碼區塊, 直接修改後面數值, 修改完成後, 其它瀏覽器相關的數值、參數的也都跟著自動產生出來, 再複製、貼上即可.

相關介紹

by jon at March 14, 2010 04:46 PM

March 13, 2010

mason

影片格式轉換

TS to mkv


ffmpeg -i sourcefile.m2ts -vcodec copy -sameq -acodec copy output.mp4

繼續閱讀 "影片格式轉換"

by nospam@example.com (Dante Mason) at March 13, 2010 06:37 PM

March 12, 2010

tsung

Google 產品服務的 SEO 報告

Google 有非常多的服務, 它為旗下的服務做了一份 SEO 的報告, 共 49 頁.

Google 產品服務的 SEO 報告

Google 產品服務的 SEO 報告, 相關介紹可見:

Google SEO 報告內容

相關網頁

by jon at March 12, 2010 03:59 PM

March 11, 2010

tsung

Postfix 列出 所有 設定參數 的 預設值

Postfix 是 Linux 上, 很常使用的 Mail Server 軟體 / 套件, 主要的設定檔是 /etc/postfix/main.cf (於 Ubuntu / Debian Linux).

Postfix main.cf

那 Postfix 的 main.cf 有哪些參數可以設?

  • postconf -d # 會列出 所有設定參數 的 "預設值", 這些參數都可以寫進 main.cf 裡面做設定.
  • 這些 設定參數 的 功能說明 可見: Postfix Configuration Parameters

by jon at March 11, 2010 03:49 PM

March 10, 2010

tsung

Linux 指定使用各種不同版本軟體 - update-alternatives

在 Ubuntu / Debian Linux 常常會有各種不同版本的軟體, 但是是做同樣的事(或類似的事).

最常見的 vi、java、gcc 等等, 這些都有各種不同的版本, 另外 scim / gcin 等輸入法, 是需要指定權重.

有這麼多軟體, 每次設定都要用 update-alternatives 然後去找相對應的軟體名稱, 有沒有全部安裝完後, 統一一次設定好即可的方法?

於是偷懶的方法就出現了: update-alternatives --all (詳見: man 8 update-alternatives)

不過上述全部跑完, 要花點時間設定, 若想要看看全部有哪些, 可以使用: yes '' | update-alternatives --force --all 讓他全部再跑一次設定即可~ :P

by jon at March 10, 2010 03:04 PM

March 09, 2010

tsung

MPlayer 影片播放時, 常會停住不動問題修復

於 Ubuntu Linux 中, 使用 MPlayer 來看影片, 但是自從升級到 9.10 後, 影片播放時就常常會卡住不動, 然後快轉後再往回轉之類的讓他繼續播放.

問題

gmplayer 執行後, 都會出現下述訊息.

mplayer: could not connect to socket
mplayer: No such file or directory

然後影片常常會播到一半就卡住不動, 快轉後又可以開始播放.

解法1

  1. vim ~/.mplayer/gui.conf
    ao_driver = "alsa"
    改成
    ao_driver = "pulse"
  2. 存檔.

解法2

  1. 若沒有此檔案, 則 (~/.mplayer/gui.conf) 下述步驟
  2. vim /etc/mplayer/mplayer.conf
    ao = alsa,
    改成
    ao = pulse,
  3. 存檔.

這樣子再重新播放就不會有卡住不動的問題囉~

by jon at March 09, 2010 03:35 PM

March 08, 2010

kanru

Debian 用 wpa_cli 之 romaning mode,不用 network-manager

/etc/wpa_supplicant/wpa_supplicant.conf 加入 network 設定

network={
        ssid="Example"
        psk="password"
        id_str="office"
}

network={
    key_mgmt=NONE
}

然後在 /etc/network/interfaces 加加 mapping

allow-hotplug wlan0
iface wlan0 inet manual
        wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

iface office inet dhcp

之後開機就會自動 connect 到合適的 AP 了

by kanru at March 08, 2010 04:38 PM

tsung

奧運金牌、銀牌、銅牌的成份? 價值?

最近在舉行冬季奧運, 冬季奧運得到的獎牌, 成本是多少?

金、銀、銅牌值多少錢?

下述摘錄自此文: 奧運金牌值多少錢?

  • 金牌: 550克銀 + 再包裹 6克金. (約 494 USD)
  • 銀牌: 509克銀 + 大約 41克銅組成. (約 260 USD)
  • 銅牌: 450克銅 + 50克的其它金屬 (大部份是錫和鋅) (約 3 USD)

這輩子沒機會拿到的話, 可以考慮打一面犒賞自己? XD

by jon at March 08, 2010 03:24 PM

March 06, 2010

tsung

貝貝第一次剪頭髮 (胎毛 / 胎髮)

2010-03-06 把貝貝從彰化接回台北住, 另外是要對貝貝的頭毛做手腳, 所以來做做紀錄.

註: 出生到現在等等, 之前的紀錄後續再慢慢補上.

打招呼, 嗨

首先, 貝貝先來跟大家打招呼~

  • 嗨
  • 嗨
  • 嗨

近況

  • 現在這個時期, 貝貝的睡姿非常糟糕, 趴睡身體會往前跑, 仰睡身體會往後跑, 現在還沒滿 40天耶. @.@a.
  • 睡姿很差

抵抗

  • 聽說出生後的胎髮如果理掉, 之後長出的頭髮會比較多又比較黑, 於是決定讓她變光頭, 沒想到被貝貝發現~ 於是她使出...
  • 猴拳
    睡姿很差
  • 大力鷹爪功
    睡姿很差
  • 不過, 當然不敵狠心的爸媽, 還是乖乖被帶去理髮. :P

理髮

  • 理髮前, 還在睡~
    準備要開始理髮, 繼續睡
  • 看胎髮最後一眼~
    胎髮, 最後一眼
  • 準備開始理髮, 繼續睡~
    準備開始理髮
  • 理了一半, 還在睡~
    理頭時繼續睡
  • 理光了, 還沒醒. XD
    理完頭了
  • 回家看她的新造型, 考慮最近要叫她: 一休、一路(花田一路)、二路 還是 三路... :P

慶祝

  • 為了不讓她覺得頭毛沒了難過, 把她過年收到的紅包拿來讓她高興一下.
  • 佛光初現 紅包版
    紅包圍繞
  • 萬佛朝宗 紅包版
    被紅包包圍
  • 拿紅包當枕頭, 看她笑的合不攏嘴.
    紅包當枕頭
  • 拿紅包當枕頭, 好像被她發現, 爸媽沒包給她紅包... 一臉想跟爸媽要的表情~ (註: 傻孩子, 爸媽等你會算錢後再包給你~ 乖~ XD)
    還想要紅包?

超大御飯糰

  • 記得 小小柯四個月達成! 的時後, 小柯幫他拍的 "超大御飯糰", 趁她現在臉還小, 剛過滿月沒幾天, 也來幾張 "超大御飯糰" 看看~ :P
  • 御飯糰
  • 御飯糰

by jon at March 06, 2010 03:48 PM

March 05, 2010

tsung

設定 Outlook 使用 POP3 / IMAP 來接收 Gmail 信件

要在 Outlook 設定 POP3 / IMAP 去接收 Gmail 信件, 要如何做?

Outlook 設定 POP3 / IMAP 去接收 Gmail 信件

簡易步驟

  1. 在您的 Gmail中啟用 POP
  2. 設定 Outlook 2003 用戶端

詳細步驟

  1. 登入Gmail, 輸入帳號、密碼
  2. 選擇 畫面右上角的 "設定"
  3. 點選 "轉寄和 POP/IMAP", 選擇 "對所有郵件啟用 POP 功能 (包括已經下載的郵件)", 按 "儲存變更"
  4. 開啟 Outlook -> 帳號設定, 依下述步驟設定:
  5. POP3 設定為 pop.gmail.com
  6. SMTP 設定為 smtp.gmail.com
  7. 帳號要輸入完整的 Email 信箱: ex: abc@example.com
  8. 選擇 "其它設定" -> "外寄伺服器" -> 勾選 "我的外寄伺服器(SMTP)需要驗證"
  9. 選擇 "進階", 勾選 "內送伺服器及外寄伺服器的加密連線(SSL);POP3=995, SMTP=465"
  10. 這樣子 Outlook帳號設定 就完成囉~

相關參考

by jon at March 05, 2010 03:37 PM

March 04, 2010

fred

Add Devkit8000 and SBC8100 initial support to 0xdroid

As you know, I've done Android Eclair porting for Devkit8000 in the past, which is based on Embinux. It's a experimental work for passing time, I have no time to maintain and fix bugs friends reported after that. However, I think it is not good because the result will be getting lost as time goes by.

0xdroid is another Android distribution which is different from Embinux, its developer Jim Huang(jserv) who has contacted me a few months ago, and he hope that I can try porting 0xdroid on the Devkit8000. Actually, I am glad to make 0xdroid takes over my work, it is the best result for me.


Currently, I've done most works, 0xdroid can run on Devkit8000 with success. And also, My patches have been committed to 0xlab-devel mailing list. Because I have another platform SBC8100 which is also produced by Embest, I've done works on that as well.

You can see my patches from 0xlab-devel mailing list, or you can visit my website to download it directly:

http://people.linux.org.tw/~fred/patches/0xdroid/embest/


It's based on kernel source is 0xlab-kernel, you can get it from:

http://gitorious.org/0xlab-kernel


My works includes:
  • Support Embest Boards(Devkit8000 and SBC8100)
  • OMAP DSS2 Driver for display
    • 4.3 inch Embest LCD Panel support (480x272 60Hz)
    • 7 inch Embest LCD Panel support (800x480 60Hz)
  • Touchscreen Controller support (ADS7846)
    • Works with correct axis
  • Ethernet Device support (DM9000)
  • Keypad (TWL4030)
  • Force kernel into using machine ID of Beagleboard

Recently, I got a news that Devkit8000 has been registered in ARM machine table(http://www.arm.linux.org.uk/developer/machines/), so Devkit8000 has official machine ID(2330) now (SBC8100 doesn't have yet). It means that kernel can start to support it with standard. That's a good news, however, it will cause complications for us. The platform you have which still has old machine ID by default, you must patch and update the uboot to match official kernel standard for working.

For SBC8100 and most of Embest platforms, they are not registered in machine table cause it is not easy to maintain. That's why I do dirty hacks, forcing kernel into using machine ID of beagleboard when you selected "Embest board support" option. It's necessary for SBC8100, and it works with Devkit8000. You don't need to worry machine ID problem.

Besides, it will fix a bug that sound device doesn't work on beagleboard clone.

Known Issue:

OMAP Multiplexer support has a problem, it will cause kernel hangs, so we must disable OMAP_MUX. Due to SBC8100 has Wifi/Bluetooth module which is using MMC2(SDIO) with OMAP Multiplexer, the module doesn't work right now.

References:

http://fred-zone.blogspot.com/2009/12/android-eclair-porting-for-devkit8000.html
http://fred-zone.blogspot.com/2009/12/enable-ads7846-touchscreen-in-android.html
http://fred-zone.blogspot.com/2009/12/add-gpio-keys-support-for-devkit8000.html

by cfsghost@gmail.com (Fred Chien(錢逢祥)) at March 04, 2010 09:05 PM

tsung

Gandi 設定 DNS 的注意事項

一直以來設定 DNS 都是在 GoDaddyEveryDNS 等等的地方設, 這次設定 Gandi 一直沒有出現成功的訊息, 感覺怪怪的, 在此紀錄 Gandi 設定 DNS 時, 需注意的事項.

問題1

  • 在 Gandi 設定 DNS 完成後, 過 3hr 再查, 發現都查不到資料, 就覺得有點怪, 發現之前設定的都沒有被寫進去.

解法

  • 於是再重新設定一次, 仔細多看看頁面, 原來 Gandi 在設定完 DNS 後, 在最後會有個 Submit 的按鈕, 要 Submit 出去才會修改, 不然一切都不算數.

問題2

  • 在 Gandi 設定 DNS 時, 例如: 要將 mail.example.com 設 CNAME 指到 ghs.google.com 去.
  • 於是在設定時填寫 mail CNAME ghs.google.com, 過了一段時間, 發現 mail.example.com 一直沒有生效(沒有指定到 ghs.google.com.)

Debug

  1. 使用 "dig cname example.com" 查查看
  2. 照理說應該要看到 "mail CNAME ghs.google.com."
  3. 但是看到的卻是 "mail CNAME ghs.google.com.example.com."

解法

  • 再重新於設定 DNS 的地方仔細看一下, 原來 Gandi 設定要指過去的地方, 最後的那個 "." 是不能省略的. (GoDaddy, EveryDNS 都會幫忙補上去)
  • ex: ghs.google.com => ghs.google.com. (最後要多一個 ".")
  • 註: 這個 "." 在 DNS 設定本來就是必要的, 只是其它 Hosting 有防呆措施, 幫我們修正掉了.

Google Apps 整個設定完成 的 結果紀錄

Google Apps 整個設定完成的結果, 大致如下:

  • googlefffffffff1234 CNAME google.com.
  • calendar CNAME ghs.google.com.
  • docs CNAME ghs.google.com.
  • sites CNAME  ghs.google.com.
  • mail CNAME ghs.google.com.
  • @  MX ASPMX3.GOOGLEMAIL.COM.
  • @  MX ASPMX2.GOOGLEMAIL.COM.
  • @ MX ALT2.ASPMX.L.GOOGLE.COM.
  • @ MX ALT1.ASPMX.L.GOOGLE.COM.
  • @ MX ASPMX.L.GOOGLE.COM.
  • 註: Google Apps Logo 的檔案格式 和 尺寸: PNG or GIF, 143 x 59 pixels

總結 Gandi 設定的注意事項

  1. 設定指向的位址, 記得最後面要加 "."
  2. 全部設定完成後, 記得上面有個 Submit button, 最後確認按下去, 才算是有將資料送出存檔.

by jon at March 04, 2010 03:24 PM

March 03, 2010

tsung

拜 地基主 該 準備的物品

家中有開伙 或 租的房子有開伙, 就要拜地基主.

拜 地基主 要準備哪些東西? 要如何拜? 在哪邊拜? 流程順序如何?

前置準備

  • 酒三杯
  • 飯、菜、湯(或 便當 + 湯)
  • 紙錢(刈金、福金), 遇到 中元節 再加 大銀、小銀、更衣少許.
  • 上香爐 (可用一般鐵罐, 包紅紙, 裡面放米即可)
  • 燒金爐、桌子 或 椅子(可放上述物品的大小即可)

拜地基主的位置

  • 在廚房找一個好角落, 向牆角拜, 忌向灶神(火爐)拜.
  • 於牆角擺張 小桌子 或者 椅子, 可以把準備的東西都放的上去即可.(燒金爐不用放上去. XD)

如何拜

  1. 上香
    • 口念: 恭請在此 xxx(地址) 居住之地基主在上, xx(弟子 或 信女)xxx(姓名) 欣逢 xx(初一、十五 或 其它民俗節日), 虔備飯菜湯及紙錢表示敬意, 請慈悲接納, 祈求保佑 xx(弟子 或 信女) xxx(姓名), 能合家平宅, 財源廣進, 身體健康, 一切順利, 感謝慈悲.
    • 連續上三次香: 第一次上香完, 第一隻香燒一半後, 上第二隻香, 第二隻香燒一半後, 上第三隻香.
  2. 燒紙錢
    • 第三次香插爐後, 即可開始化紙錢.
    • 註1: 紙錢在屋內拜拜地方化才可, 故紙錢少許即可.
    • 註2: 記得關掉警報器, 一張一張化, 就不會有濃煙.
  3. 灑酒
    • 紙錢燒完要灑酒(繞著火爐 灑酒一圈), 口念: 請慈悲接納
    • 香拔起來丟入鍋爐內化, 口念: 恭請回歸本位

FAQ

  • 拜地基主的便當、菜能不能吃?
    拜神明、祖先,可以吃, 它算是陰神,可以吃.
    像拜冤親債主的,不要吃.

by jon at March 03, 2010 02:37 PM

March 02, 2010

fred

Debian/Ubuntu 交叉編譯 - 函式庫相依性速解法

從來,交叉編譯(Cross-compile)就是一門苦差事,往往取得 Toolchain 之後,還必須自己編譯所需的所有函式庫,花費的時間甚巨,實在不值得。隨著 Debian/Ubuntu 跨平台支援趨於完整,開發和移植各平台程式之工作,已經不用再經歷過去那不足為外人道哉的編譯地獄。我們可以直接抓取不同硬體平台(如:ARM、MIPS)的套件,安裝在系統上供交叉編譯使用。因此,比起專注於 x86 下的其他系統(如:Fedora),Debian/Ubuntu 優異的跨平台支援和資源,更決定了跨平台開發者的效率以及產出品質。

而較為傳統的方法,是建立一個新的 Rootfs ,包括完整目標平台的函式庫和編譯所需檔案,在編譯自己的程式時引入使用即可。如不想這樣麻煩,Debian/Ubuntu 包括了一支工具『apt-cross』可以將目標平台的套件,轉換成交叉編譯專用套件,然後安裝至目前的系統上。

如同常見的 apt-get ,apt-cross 的使用方法極為相似,以安裝 ARM 架構下 的GTK+ Library 和開發用檔案為例(使用 Debian Sid 的 ARM 版套件):
apt-cross -a armel -S sid -i libgtk2.0-0
apt-cross -a armel -S sid -i libgtk2.0-dev

如此 apt-cross 會下載 ARM 版本的 GTK+ Library,然後轉換成 libgtk2.0-0-armel-cross 和 libgtk2.0-dev-armel-cross 兩個套件,並安裝至系統中。隨後,我們便可交叉編譯自己的 GTK+ 程式,arm-linux-gnueabi-gcc 會直接去引用這兩個套件內的檔案。

隨帶一提,若執行 ./configure 時會發生 arm-linux-gnueabi-pkg-config 找不到,而自動選用系統上原生的 pkg-config 程式,常會造成編譯時關聯位置錯誤或找不到檔案。這通常是因為 pkg-config 選錯路徑,參考了系統上的編譯參數定義(正確行為應該去引用交叉編譯用的參數)。因此,我們可以在下 ./configure 前指定參考路徑,以解決此問題:
export PKG_CONFIG_PATH=/usr/arm-linux-gnueabi/lib/pkgconfig

後記

當然別的平台套件也會更新,我們可以用『-u』更新 Source.list,就如同在更新一般系統上套件一樣:
apt-cross -a armel -S sid -u

by cfsghost@gmail.com (Fred Chien(錢逢祥)) at March 02, 2010 08:24 PM

tsung

Debian linux - sysv-rc dependency-based boot system 修復

Debian linux 做 apt-get dist-upgrade, 升級到 sysv-rc 時, 出現下述訊息:

  • sysv-rc
    Unable to migrate to dependency-based boot system
    Tests have determined that problems in the boot system exist which prevent migration to dependency-based
    boot sequencing:
    package exim4-base removed but not purged, package mysql-server-5.0 removed but not purged

    If the reported problem is a local modification, it needs to be fixed manually. If it's a bug in the package, it should be reported to the BTS and fixed in the package.
    See http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot for more information about how to fix the problems preventing migration.
    To reattempt the migration process after the problems have been fixed, run "dpkg-reconfigure sysv-rc".

問題出在 沒有把 exim4-base、mysql-server-5.0 移除乾淨. (移除乾淨要用 apt-get remove --purge exim4-base mysql-server-5.0)

解法文件

  • 說明文件說可以參照此文: LSBInitScripts/Dependency based boot sequence, 全部修正完畢後, 再執行 dpkg-reconfigure sysv-rc 即可.
  • 不過不喜歡文件中的方法, 所以決定將這些手動移除, 移除完後再執行 dpkg-reconfigure sysv-rc.

exim4-base 和 mysql-server-5.0 相關檔案

  • dpkg-query -W -f='${Conffiles}\n' exim4-base
    /etc/init.d/exim4 5cc0235f0daea6b711879c2aa6d017f7
    /etc/logrotate.d/exim4-base cd9fc4ad67f13176c098fab4bbcd32b5
    /etc/logrotate.d/exim4-paniclog 27d670010e80246c4a1dd89419589009
    /etc/cron.daily/exim4-base 7c4bb303fbaba1d038e5dfe60dcb656d
  • dpkg-query -W -f='${Conffiles}\n' mysql-server-5.0
    /etc/init.d/mysql-ndb-mgm becae0693dae627e6960249ae17bae19
    /etc/init.d/mysql-ndb 25ad87aee00cf24aea5daf7ad4ed899f
    /etc/init.d/mysql 246ab7d69e00af14f03d12c54465b59c
    /etc/logrotate.d/mysql-server 64e209fe34f73fbf10c9479bf30947c4
    /etc/mysql/debian-start 4272e4d740c8ae651ac35bbf4d2ed6dc
    /etc/logcheck/ignore.d.workstation/mysql-server-5_0 20ccf274886d8f2897a10d9288579410
    /etc/logcheck/ignore.d.server/mysql-server-5_0 20ccf274886d8f2897a10d9288579410
    /etc/logcheck/ignore.d.paranoid/mysql-server-5_0 e8dbe35695437354553e61fd65b702ba
  • dpkg -S /etc/mysql # 查詢 /etc/mysql 屬於哪些套件
    mysql-common, mysql-server-5.1: /etc/mysql

解決步驟

  1. sudo dpkg --purge exim4-base mysql-server-5.0 # 移除 exim4-base、mysql-server-5.0
  2. 註: 若用 apt-get remove --purge mysql-server-5.0 會連 mysql-server-5.1 一起移除.
  3. dpkg-reconfigure sysv-rc # 建議先看 /usr/share/doc/sysv-rc/README.Debian, 確定要使用 sysv-rc, 則再執行一次此命令
  4. dpkg-reconfigure sysv-rc

相關網頁

by jon at March 02, 2010 03:25 PM

March 01, 2010

tsung

PHP 5.3.x 的 strtotime() 時區設定 警告訊息修正

Debian Linux 使用 testing 的話, 若於上星期有做過 dist-upgrade 的話, 就會發現 PHP 已經被升級到 5.3.1-5, 而且出現一堆警告訊息.

我遇到的有下面這三種錯誤訊息:

  1. PHP Warning:  strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /tmp/a.php
  2. PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/imagick.so' /usr/lib/php5/20090626/imagick.so: cannot open shared object file: No such file or directory in Unknown on line 0
  3. PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/imagick.ini on line 1 in Unknown on line 0

strtotime() 修正

  • PHP Warning:  strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /tmp/a.php

strtotime() 出現的這個警告是要我們先指定正確的時區(Timezone), 再來使用這個 function.

解法下述幾種 (挑其一即可, 建議用 1 或 3 的方法)
  1. 於 PHP 檔案內使用 date_default_timezone_set()
    ex:
    <?php
    date_default_timezone_set('Asia/Taipei');
    echo strtotime('2010-03-01');
    ?>
  2. 設定 php.ini
    vim /etc/php5/apache2/php.ini # 於 php.ini 的 date.timezone
    ;date.timezone =
    改成
    date.timezone = "Asia/Taipei"
  3. 設定 php.ini (於 Debian 比較建議這樣做, 就不用去分別改 apache / cgi / cli 的 php.ini)
    vim /etc/php5/conf.d/date_timezone.ini # 於此檔案加下述
    date.timezone = "Asia/Taipei"

PHP Startup: Unable to load dynamic library 修正

  • PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/imagick.so' /usr/lib/php5/20090626/imagick.so: cannot open shared object file: No such file or directory in Unknown on line 0

發現下述這幾個都不見了 (php5-imagick, php5-mhash, php-apc)

  • /usr/lib/php5/20090626/apc.so
  • /usr/lib/php5/20090626/mhash.so
  • /usr/lib/php5/20090626/imagick.so
  • php5-mhash 已經包進去, 不需另外安裝, imagick、apc 目前還沒看到.
解法
  • rm /etc/php5/cli/conf.d/apc.ini /etc/php5/cli/conf.d/imagick.ini /etc/php5/cli/conf.d/mhash.ini

Comments starting with '#' are deprecated 修正

  • PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/imagick.ini on line 1 in Unknown on line 0

cat /etc/php5/cli/conf.d/imagick.ini # 第一行有個註解 "#"

解法
  • 在 PHP 5.3.x 這些 ext 的註解已經不建議使用 "#", 所以將這個註解拿掉, 或者將 "#" 改成 ";" 開頭即可. (開頭 ; 也是註解的意思)

by jon at March 01, 2010 03:24 PM

February 28, 2010

fred

夜,寂靜

也只有在獨自一人時,才能清醒的與自己對話,於大樹底下偷偷埋藏的思緒,此時會猛然湧上心頭,而靈魂末端的枝葉總自顧掉落。

夜有多麼靜,心跳的聲音卻如此吵雜。惡耗了一整晚,解不清的工作乾脆直接扔在一旁,開始細數著在微弱燈光下忽明忽現的嗡嗡飛蚊,傾聽自己心中的聲音。

驚呼,忽然一陣癢感襲來,將一切停滯的夜又搔動了起來。此時怒氣盛起,我面目掙獰如惡鬼一般,非與飛蚊理論究竟不可。

『唉,你長得比較高大,血多到都可以把我淹死好幾輩子,而我只求貴人賞碗飯,讓我活命罷了,你又何必吝嗇?這世界死氣沉沉寂靜又孤獨,我們相伴不是甚好?』眼前那飛蚊老兄,收起翅膀,坐在眼前電腦螢幕上嘆息說著。

『我並不介意血被吸,而是介意心情被打亂。平時的一切種種已經令我夠煩燥了,現在,只想不要被打擾的思考著。』我說。

飛蚊老兄瞥著頭看了看我,似乎看出了什麼端昵。

『哈哈,你不過就是不相信人而已,不想與外界接觸。就像我,我也不相信你心情好,就會讓我飽餐一頓,還不如我自己找機會大大咬上一口。』飛蚊老兄表現得一付很懂的樣子。

『我在想的就是要不要再給一次機會,將信任再一次留給一個人。畢竟,曾經能信任,也花去了不少時間培養,但就是因為後來有一連串太多太久的猜疑,才讓我越來越痛苦,變了一個人似的。尤其很多話不敢說,更讓情況惡化。害我現在一切收進心底,只有在這時候,才會拿出來想想。』我說。

『想通了,隨時都可以重新來過啊。只要你和其他人願意溝通,有什麼不好重建信任,就像現在我和你一樣的交談簡單,你我不都開朗許多。』說畢,飛蚊老兄飛了起來,搖搖晃晃的從燈光邊緣隱沒。

『若是可以,我也想單單純純、平平淡淡的去維持這關係,不要再有什麼無聊的猜忌亂想。』我邊說,邊伸了一個懶腰,準備開始繼續工作。

我話還沒講完,又感到一陣騷癢,反手『啪』一聲,滿手鮮血。仔細一看,原來,飛蚊老兄已死於我掌下,身驅四分五裂、鮮血淋漓,這似乎說明了人類永遠不可能與蚊蟲互相信任。

接著,早晨的陽光也打亂這夜,一切思緒又沉回樹下的時光寶盒,等待著下一次的開啟。

by cfsghost@gmail.com (Fred Chien(錢逢祥)) at February 28, 2010 10:52 PM

tsung

貝貝滿月禮 - Amo 阿默典藏蛋糕

今天是元宵節, 也是貝貝滿月的日子, 這幾天努力送蛋糕, 希望能合大家胃口~ :)

Amo阿默典藏蛋糕 - 荷蘭貴族手工蛋糕

蛋糕資訊: Amo阿默典藏蛋糕 - 荷蘭貴族手工蛋糕

by jon at February 28, 2010 03:57 PM

February 27, 2010

Cornelius

為何要使用 CPANMinus

因為原本的 CPAN Shell 啟動時間慢,累贅的資訊太多,太多 Prompt,且對新手來說,太多預設設定要做,但新手只是需要儘快準備一個完整的開發環境來寫 Perl 程式碼而已!然而 CPAN Shell 由於太古老,該程式碼已經相當難維護、整理,所以一直沒有良好的修正。更別說是 CPANPLUS ,CPANPLUS 本身又相依於一堆模組,簡直是疊床架屋,對新手來說,安裝好 CPANPLUS 甚至要花上 10 分鐘!

所以 Miyagawa 寫了 cpanminus ,這個模組 CPAN Shell 啟動時間相當的快,而且不相依於其他累贅的模組如 Moose... :-P

cpanminus 只需要你有一個 C Compiler, Module::Build , ExtUtils::MakeMaker (Perl 都內建了), 甚至直接內嵌了 HTTP::LIte 模組。

所以安裝 cpanminus 根本不需要花上超過 3 秒的時間!想想看你在升級 CPAN 或是 CPANPLUS 的時候多麼痛苦!!

再來,常有使用者提出若無 root 權限,該如何安裝 CPAN 模組,這個問題一直是長期以來困擾大家的!而且又無完善解法。

只要以非 Root 使用者執行 cpanm 安裝模組,該模組自動會裝到 home 目錄底下 ~/perl5 ,也不需另外自行設定!

安裝方式相當簡單:

cd ~/bin
wget http://xrl.us/cpanm
chmod +x cpanm


這樣就可以了,因為 cpanm 只是一個單一的執行檔!

使用方式:

cpanm Module
cpanm MIYAGAWA/Plack-1.0000.tar.gz
cpanm ~/mydists/MyCompany-Framework-1.0.tar.gz
cpanm http://example.com/MyModule-0.1.tar.gz
cpanm http://github.com/miyagawa/Tatsumaki/tarball/master
cpanm --interactive Task::Kensho


你也可以到 github 上取得最新的版本! @miyagawa ROCKS!!

http://github.com/miyagawa/cpanminus

by c9s (cornelius.howl@gmail.com) at February 27, 2010 11:22 PM

February 25, 2010

tsung

Web Frameworks 的歷史演進圖表

Web Frameworks 從 1999 年到現在的演進圖, 在 Github 上面有持續的更新. :)

by jon at February 25, 2010 10:45 PM

jserv

演講:QEMU JIT Code Generator & System Emulation

應 [台灣科技大學資訊工程所] 的邀請,同事 [cmchao] 與小弟將會探討相當多人研究、但很少有全面性探討的 [QEMU] JIT Code Generator 與系統模擬的範疇。不同於散見於網路的 QEMU x86 或 ARM 零星資訊,我們將分析由台灣 [Andes Technology] 所發展的 NDS32 硬體架構與 QEMU 對應的 Code Generator / Emulation,對這樣一個全新的硬體架構、指令集,如何在 QEMU 上實做足夠的系統模擬並給予頗大的效能提昇,期望藉由實務經驗,讓聽者建立全面的概念。 時間訂於 2010 年三月 15 日下午兩點,演講地點: TR-211 (研揚大樓二樓,以系上公告為主),講題為 "QEMU JIT Code Generator...

by jserv at February 25, 2010 02:53 AM

February 24, 2010

tsung

±2℃ / 正負2度C 紀錄片

±2℃ / 正負2度C / +-2度C 先整理起來, 忙完再來看.

±2℃ 簡介

下述簡介摘錄: 陳文茜的《±2℃》紀錄片

  • 由孫大偉、陳文茜監製的紀錄片《±2℃》,是第一部記錄台灣氣候變遷的紀錄片。
  • 台灣必須面對的真相是,台灣人口密度過高、土地侵蝕率高等,恐怕是氣候變遷下「全世界的第一批難民」。
  • 紀錄片取名《±2℃》,源自日前哥本哈根會議的結論,即是未來人類如果要生存,就必須將氣溫控制在攝氏兩度以內。
  • 《±2℃》行動聯盟根據聯合國跨政府氣候小組(IPCC)的報告以及中央研究院的研究結果,分析出不是很樂觀的資訊:當馬爾地夫成為世界上第一批沉沒的島嶼時,東石港、林邊、東港、麥寮也將成水鄉澤國。海平面如果繼續上升,蘭陽平原、台北盆地和高雄市也將淹沒。

±2℃ 影片

  1. 第一段:全球的氣候變遷
  2. 第二段:台灣,我們的氣候變遷遷
  3. 第三段:地球生氣了
  4. 第四段:「±2℃」的意義
  5. 第五段:我們的家,台灣
  6. 第六段:給我們的下一代
  7. 第七段:世界上即將消失的地方
  8. 第八段:我們該做什麼?

±2℃ 完整影片下載

相關網頁

by jon at February 24, 2010 10:26 PM

February 23, 2010

tsung

Vim 的 套件(外掛)管理系統 - Vimana

Vim 在安裝套件(Package)、外掛(Plugin) 等等的時後, 總是要到 Vim 官方網站去搜尋, 然後看清楚說明, 要擺到哪去等等, 才下載安裝.

Vimana 簡介

Vimana 解決了這些安裝的困擾, 感謝 c9s. Orz..

下述 Vimana 簡介 摘錄自: Vim Script Manager - Vimana (安裝步驟 等等都在此頁有 中文 的詳細說明.)

一般來說,Vim Script 的安裝都是到 vim.org 上,搜尋 Script,然後參考該項目的安裝細節來手動安裝。但是每個 Script 的發行、打包的方式又不一樣,所以大部分 Script 的安裝都還是得手動進行。 有的是直接將檔案複製到 Vim 的 Runtime 目錄裡頭即可,有的是得先解壓縮,然後使用 cp 或是 rsync 命令依序照目錄結構複製到 Vim 的 Runtime 目錄裡。Vim 雖然也提供了 Vimball 格式的打包檔,但是也不夠普及。

然而 Perl 有 cpan 命令、Ruby 有 gem 命令、Debian 有 apt-get 命令,Vim 卻因為發行方式不統一而一直沒有一個可用、堪用的工具來做這樣的事情。為了解決這個問題,我的想法是,針對每一個發行的 Script (該 Script 有可能用是 tarball 包裝也可能只是純文字檔案) 來做安裝策略的偵測,於是 Vimana 就誕生了。

by jon at February 23, 2010 10:39 PM

在 phpBB 安裝 Smilies (表情符號)

在張貼文章時, 想要插入表情符號, 所以來為 phpBB 安裝 Smilies (表情符號).

安裝步驟

  1. 下載 Smilies (onion.zip)
  2. unzip onion.zip
  3. mv onion/* /phpbb/images/smilies/ (smilies.pak 也要搬進去)

設定

  1. 進入 phpBB 的 ACP管理介面
  2. 發表 -> 表情符號
  3. 安裝表情符號包
  4. 選擇 smilies.pak
  5. 安裝表情符號包 即可.

by jon at February 23, 2010 03:16 AM

February 22, 2010

tsung

好文: 如何正確發送 大量 Email

大量寄信 很容易就會被當 spam 來處理, 此 IP 就永遠被列為 spam 的 IP, 這篇文章列出要大量寄信需要注意的事項.

如何正確發送 大量 Email

詳見: 如何正確發送(大量) Email 信件 - ihower

  • 處理退信 - 信箱位址錯了, 不要一直寄
  • 與主要的 Email 服務商設定意見反應機制(Feedback Loop) - 跟 Y! / G / MSN 等連繫.
  • 建立自已的 email 清單 - 不要買清單來亂寄
  • 不要使用 100% 以圖片為主的內容
  • 使用垃圾信判讀工作測試
  • 驗證 HTML - HTML 格式要正確
  • 模擬測試終端使用者環境 - 使用不同 Email Client 測試
  • 專屬 IP - 別人 SPAM, 跟著害到你也被列入黑名單
  • 設定 SPF Validation - SPF
  • 設定 Domain Keys Verification - Domain Keys
  • 設定 Reverse DNS 反查 - 寄信的 IP 無法反查, 可能根本就寄不到
  • 驗證寄信者地址 - 寄信人 Email 位址要是正確存在的

相關網頁

by jon at February 22, 2010 12:38 AM

February 20, 2010

yungyuc

vim advocacy

http://www.viemu.com/a-why-vi-vim.html

推特上看來的。要記下來以後方便教別人 vi/vim 使用。

by yyc@seety.org (yungyuc) at February 20, 2010 11:30 PM

fred

Clutter EGLX Backend doesn't work correctly

Recently, our team work hard on ARM platform which is TI OMAP 3530, and also it makes us crazy actually. As you know that source code of TI PowerVR driver and SGX is not publicly available, there is no open source solution cause it's difficult to debug graphical stuffs.

If you have tried to use Clutter with EGLX Backend, you might get only the blank stage and nothing works correctly. It happened due to X server might still have things in its buffer to render when swap buffers.

Here is a patch to solve this problem:

http://people.linux.org.tw/~fred/patches/clutter-1.0_1.0.8-wait-for-vsync-before-SwapBuffers.patch

by cfsghost@gmail.com (Fred Chien(錢逢祥)) at February 20, 2010 10:26 PM

jouston

Ubuntu上使用SCM SCR3340 Smart Card讀卡機以及Web ATM

前一陣子感謝 PIL 的 Larry 清倉 SCM Microsystems Inc. SCR3340 Smart Card讀卡機。我也躬逢其盛入手了一組。 不過呢,我是在一般人眼中很奇怪的Linux使用者。目前採用的Linux Distribution是Ubuntu 9.10。在購買之前,我稍事搜尋了一下,發現這張讀卡機本來就有支援。換句話說,不需要另外安裝Driver,插上去就可以使用。 拿到手之後,執行pcsc_scan指令就可以看到以下訊息: Reader 0: SCM SCR 3340 ExpressCard54 (21220712703307) 00 00 表示該Smart Card讀卡機已經驅動。如果你找不到這個指令,Ubuntu應該會要你安裝pcsc_tools套件。 接下來,目前國內唯一的一個可以在Ubuntu上執行的WebATM是玉山銀行。

by noreply@blogger.com (Jouston Huang) at February 20, 2010 08:02 AM

February 19, 2010

tsung

好市多照片線上沖印

小朋友剛出生, 要寄照片回去給家人看, 才知道好市多有線上沖印的服務.

帶隨身碟去好市多洗照片, 需要等 1hr, 用線上沖印服務, 就可以在家裡把要沖印的傳過去, 到現場就可直接領取囉~ :)

註: 優點是到場就可以直接取, 缺點是並不是 1hr 就可以立刻拿到, 需要等來信通知. 約2~3天的工作天.

除了照片外, 還有月曆和賀卡的項目, 考慮要不要做些小朋友的月曆或賀卡來保存~ :P

註: 下述價位是 2010/02/20 的價位, 最新價位請再自行看官方網站~

照片

  • 4x6 (10.16 cm x 15.24 cm) NT 2.5
  • 6x8 (15.24 cm x 20.32 cm) NT 12
  • 8x10 (20.32 cm x 25.40 cm) NT 24
  • 8x12 (20.32 cm x 30.48 cm) NT 25

照片 VS 解析度 (各尺寸相片解析度標準)

  • 4 x 6 - 640x460
  • 6 x 8 - 920x690
  • 8 x 10 - 1150x920
  • 8 x 12 - 1380x920
  • 賀卡 - 640x460

相片月曆

  • 6x9 (15cm x 22.5cm) NT 249.00

相片賀卡

  • 5x6 (12.7cm x 15.2cm) NT 179 迎春促銷價: NT 125
  • 1套: 25張卡片+信封 (可選擇5種卡片版型)
  • 為個人量身訂作的賀卡,適用於結婚、文定、彌月之喜、聖誕節、喬遷或所有值得紀念的日子。
  • 選5張您最喜歡的照片沖印成25張卡片,加上您滿滿的祝福,用賀卡傳遞出去。

by jon at February 19, 2010 05:15 PM

February 18, 2010

Cornelius

使用 keychain 管理 ssh 金鑰

一般來說要利用 ssh key 來做 remote ssh login 的時候,就會需要用到 ssh-agent。大多使用下列命令來啟動 ssh-agent

$ echo `ssh-agent` > .agent

如此會將 ssh-agent 的環境變數如 pid 等等輸出至 .agent 檔案內。

接著使用:

$ source .agent

將 .agent 環境變數載入進來。

接下來再使用 ssh-add 命令來將私有金鑰載入:

$ ssh-add path/to/key1

在 ~/.ssh/config 內,加入

Host yourhost.com
IdentityFile path/to/key1

以告知 ssh 使用 path/to/key1 的 private key,但記得將 key1.pub (public key) 新增至 remote 的 .ssh/authorized_keys 檔案內。

前面所敘述的 ssh-agent 命令使用時常會遇到管理的問題,所以還得自己寫 script 檢查是否已有既有的 ssh-agent 正在運行等等之類的繁瑣事項。而 keychain 則是一套 script 可幫你處理這些問題。

在 ubuntu 底下安裝 keychain:

$ sudo apt-get install keychain

以 macports :

$ sudo port install keychain



使用方式很簡單,不需要自己 launch 一個 ssh-agent ,只需直接呼叫 keychain 命令將 private key 載入:

$ keychain path/to/key1

接著 keychain 會告知該 ssh-agent 環境變數的檔案位置,提供給不同 shell 使用的 script ,只需將該檔案的 path 加入至 .bashrc 或 .zshrc ...

$ source ~/.keychain/....blah

即可。如此一來每當開新環境時,就不需再去檢查 ssh-agent pid ,或有 ssh-agent,就直接使用既有的的,若無,則 launch 一個新的 ssh-agent 並且更新 ssh-agent 的環境變數。

以下是我用來載入金鑰的 script:



由於我都將 public key , private key 放置於 ~/.ssh/keys 內,該 script 用以自動將 private key 載入。

by c9s (cornelius.howl@gmail.com) at February 18, 2010 03:25 PM

tsung

使用 netstat 找出不正常的連線

我最常用的是 netstat -tln, 發現這篇文章把查看不尋常連線的方式都寫出來了. (適用於 Ubuntu、Debian Linux、FreeBSD.等)

註: 此文抓出來的 IP, 可再搭配 nslookup、traceroute 等反查追蹤看看.

下述轉載自: netstat 檢查不尋常連線

以下是一些實用的 netstat 語法,可以檢查主機的連線數量:

  • netstat -na
    顯示主機上所有已建立的連線。
  • netstat -an | grep :80 | sort
    顯示所有 port 80 的連線,並把結果排序。
  • netstat -n -p|grep SYN_REC | wc -l
    列出主機上有多少個 SYNC_REC,一般上這個數字應該相當低。
  • netstat -n -p | grep SYN_REC | sort -u
    同樣是列出 SYNC_REC,但不只列出數字,而是將每個 SYNC_REC 的連線列出。
  • netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'
    列出發送 SYNC_REC 的所有 ip 地址。
  • netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
    計算每一個 ip 在主機上建立的連線數量。
  • netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
    列出從 TCP 或 UDP 連線到主機的 ip 的數量。
  • netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
    列出每個 ip 建立的 ESTABLISHED 連線數量。
  • netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
    列出每個 ip 建立的 port 80 連線數量。

相關網頁

by jon at February 18, 2010 07:00 AM

February 17, 2010

FourDollars

Firefox 擴充套件 ScribeFire 3.5 的錯誤解決方法

在 ScribeFire 升級到 3.5 後就無法正常啟動使用了
稍為 Google 了一下找到日本網友有提供解決的方法
http://uratene.sblo.jp/category/811798-1.html
http://fxwiki.blog63.fc2.com/blog-entry-246.html
過程就是到該套件的目錄底下 Linux 系統應該會在 ~/.mozilla/firefox/XXXXXXXX.default/extensions/{F807FACD-E46A-4793-B345-D58CB177673C} 底下
進入子目錄 chrome 底下解開 scribefire.jar
$ unzip scribefire.jar
然後修改 locale/zh-TW/overlay.dtd 裡面的內容
將 123, 124 行的
<!ENTITY performancing.editor.bar.strong.tt "強烈標示 <Strong>">
<!ENTITY performancing.editor.bar.em.tt "特別強調 <em>">
改成
<!ENTITY performancing.editor.bar.strong.tt "強烈標示 &lt;Strong&gt;">
<!ENTITY performancing.editor.bar.em.tt "特別強調 &lt;em&gt;">
然後更新壓縮檔 scribefire.jar
$ zip -r scribefire.jar content locale skin
再重新啟動 firefox 就可以了~

by FourDollars (fourdollars@gmail.com) at February 17, 2010 04:06 PM

AllTray + "app mode" of Google Chrome

以單純要收聽台灣的網路廣播就可以執行以下的命令
$ cat > .local/share/applications/hichannel.desktop <<ENDLINE
[Desktop Entry]
Name=hiChannel 網路廣播
Exec=alltray google-chrome --app=http://fd.idv.tw/radio/player.html
Icon=google-chrome
Type=Application
Categories=GTK;Application;AudioVideo;Audio;Player;
ENDLINE
然後就會在應用程式選單裡面看到
執行起來就像是
 還可以點選工具列中的圖示隱藏起來

或是想要使用微軟的 MSN Messenger 網頁版
 $ cat > .local/share/applications/msn.desktop <<ENDLINE
 [Desktop Entry]
Name=MSN Messenger 網頁版
Exec=alltray google-chrome --app=http://webmsn.msn.com.tw/wlml/index.htm?uri=webmsn.msn.com.tw
Icon=google-chrome
Type=Application
Categories=Network;InstantMessaging;
ENDLINE
不過相信目前應該沒有人會想要使用 MSN Messenger 網頁版
雖然它有機會做得更好更容易使用,不過目前的情況並不是這樣的 :P

總之就是 AllTray 跟 Google Chrome 的 "app mode" 搭配使用可以讓許多的網頁應用程式使用起來更像是本機上面的應用程式~ :)

by FourDollars (fourdollars@gmail.com) at February 17, 2010 03:30 PM

Asho(阿信)

水杯加至5/6的行車體驗感

    大年初三時,因為要到彰化聚餐,所以一早就必須從嘉義開車上去,一如往常行車,我會把水加在一個塑膠杯上,這一次水位是杯子最高刻度的位置,約5/6左右。















    看到水位時,其實還滿害怕的,因為水真的滿高的,很懷疑自已是不是會弄濕整個杯架。充滿著疑惑上路了,慢慢的開著開著後,跟在前面的車子突然紅燈亮起,我也一踩剎車,結果水就溢出來了啦...><

    急忙地停在路邊後,還好只是漏一點點,再把水加到剛剛的位置,然後再上路。由於這次的水真的滿高的,起步或剎車時要很小心,秘訣就是要平順,不能突然加速、不能突然重踩。慢慢習慣之後,到了第一個直角彎時,打算用以往的速度轉彎(約45KM),一轉時,發現水已經壓到杯子邊緣了!!!

    真的是把我嚇了一跳,勉強彎過去後,我才知道我的轉彎還是有很大的問題,沒辦法很平順地切彎,經由這一次的教訓,我就把音響關掉,仔細聽起步、剎車後的引擎聲,過彎時觀察一下水繞杯子的方式......

    來彰化的這一段路上,試了不同的開法,漸漸地感受到轉彎時,方向盤的控制和油門踩法,從腳底的感覺和腰部接受到車子的訊息,就能夠在行車時讓車子的晃動更小。

    好不容易到達目的地後,女友看到車子內有一杯5/6滿的水嚇到了,但又馬上笑我是瘋子...



    歡樂的時光總是過得很快,一下子,又是要告別彰化的時候了,回程時,來到熟悉的螺旋形交流道時,以往我的速度只能控制在45~55之間,不知道是不是因為這一陣子練水杯的關係,我可以用 60KM 以上的速度行駛這個地方,行車線也跟以往有點不同,重點是很穩定,我也不知道是怎麼開的,就是一個字「順」,水只有輕輕地晃阿晃阿,但卻沒有溢位的情形,我自已都嚇一跳了!

    來到古坑後,就不斷地練習過彎的感覺(不要求速度、求穩),我真的覺得有不一樣的地方,轉向時不是只有轉一個方向,會有點回正再繼續彎,不知道怎麼用文字形容。

    anyway,最後就是回到家,我熄火後,有回想一下情境模擬來踏剎車和油門就結束了這一段水杯之旅......

    這一次的水雖然沒有溢出來,但過程中其實還是滿驚險的,還需要多加練習,希望自已的開車技術會更進步。

    下一次出門,我會找一個上坡來練習跟趾,這是最近才想到的練跟趾方法,期待中....:-D

by 阿信 (noreply@blogger.com) at February 17, 2010 06:19 AM

February 13, 2010

fred

模仿且沒有新意的 iPhone-like UI

為了應付即將開學的各項開支,到了春節依然不能停滯而必須努力工作。原本,只是為了工作單單在修某支程式的使用者界面,卻一時心血來潮,幫這選單 UI 添上了『加速度』的處理,更沒想到結果居然讓該 UI 的行為幾乎和 Apple iPhone 一模一樣。就這樣,除夕夜一個晚上,都在玩弄這支程式中不知不覺度過了,半點錢都沒有賭到,歲到是守得很徹底。為了紀念這隻小年獸,就用手機錄下成果。(沒有專業器材,畫質不佳還請多包涵!)


by cfsghost@gmail.com (Fred Chien(錢逢祥)) at February 13, 2010 11:39 PM

February 12, 2010

tsung

[轉載]羊肉爐不是故意的

在書架上找書, 每次看到 羊肉爐不是故意的, 總會想要翻個幾頁, 雖然看過很多次了, 但是每次看都還是笑到翻掉.

決定還是把網路上的全文找出來, 心情不好時, 隨時可以找出來看.

全文可見:(轉)羊肉爐不是故意的 - 備份

by jon at February 12, 2010 08:47 PM

fred

用 C 語言處理常見的旗標位元運算

正如國中理化課所說,電子產品都是由滿滿『0、1』所構成,大家早就都了解這件事。但現實上,由於要求的功能愈疊愈多,低階的運算早就被眾人所忽略。無論大家如何忙著處理物件的繼承問題,又或者是因時間太多而研究『1+1=2 慢吞吞語言』,低階的運算還是依然沒有消失,反而更為重要。

位元運算不外乎就是『AND、OR、XOR...』等邏輯概念,主要目的是把『1 變 0』、『0 變 1』或有條件維持不變,在程式中比較常看到的地方,通常會在硬體驅動程式(Driver)之中。而在高階應用程式中,也往往因為要旗標條件的判斷,也會看得到其存在,如 Linux 下的檔案權限。

一個更貼切的例子,假設我們現在寫一個滑鼠驅動程式,我們要怎麼設計資料結構,讓應用程式得知用戶(User)按了哪幾個鍵?用戶可能是一次只按『一個鍵』,也可能一次按『左右兩個鍵』,更有可能按『左鍵和中間鍵』,有多種組合存在。

一般初學程式者可能會用 boolean 或 int 這樣寫:
struct _mouse_event {
        int button1;
        int button2;
        int button3;
        ...
};

但明明只是『0、1』,為何要用到 int 資料形態?除了浪費記憶體,運算上也整整慢了好幾個 CPU Clock。所以,多數程式開發者碰到此類問題,會比較偏好以位元為最小單位來寫:
enum {
        MOUSE_LEFT_BUTTON = (1 << 0),
        MOUSE_MIDDLE_BUTTON = (1 << 1),
        MOUSE_RIGHT_BUTTON = (1 << 2)
};

struct _mouse_event {
        int button;
        ...
};

當設定哪幾個鍵被按下,只要用位元運算設定旗標就可以了:
struct _mouse_event mouse;
mouse.button |= MOUSE_LEFT_BUTTON;
mouse.button |= MOUSE_LEFT_BUTTON | MOUSE_RIGHT_BUTTON;

當然,反向設定也是可以:
mouse.button &= ~(MOUSE_MIDDLE_BUTTON);
mouse.button &= ~(MOUSE_MIDDLE_BUTTON | MOUSE_RIGHT_BUTTON);

後記

以前小時候不懂事,又被很多高階 API 保護得很好,常被驅動程式中的位元運算嚇哭,其實,雖然位元運算看起來可以千變萬化,但就那幾種用法最常用而已。在此筆記之,讓大家一起哭。

by cfsghost@gmail.com (Fred Chien(錢逢祥)) at February 12, 2010 02:11 PM

tsung

看各種 JavaScript Framework 對 DOM 操作 於瀏覽器的速度比較

各種 JavaScript Framework(MooTools, JQuery, Prototype, YUI, Dojo) 對 DOM 的操作來比較執行速度, 於各種不同瀏覽器, 執行的結果也會不同.

網頁可見: SlickSpeed Selectors Test

註: 此篇用的 Framework 版本都已經是舊版, 不過可於 slickspeed - css selectors test suite for javascript frameworks 來改成新版測試. (Source code)

by jon at February 12, 2010 09:41 AM

February 10, 2010

tsung

辦理新生兒(嬰兒)出生登記

原來報戶口是要找各縣市的戶政 (搜尋 "報戶口 + 新生兒", 政府的網頁都是 404, 直接到到台北縣市 的 市政府網站去找, 搜尋結果都不是我要的.)

戶藉設在汐止, 就是到 汐止市戶政事務所 登記.

辦理新生兒登記的 重點 與 資料準備

下述資料取自: 汐止市戶政事務所 - 出生登記

  • 申請對象: 生父母、祖父母、戶長、同居人或撫養人、受委託人
  • 主辦單位: 各鄉鎮市戶政事務所
  • 應備證件: (重點: 出生證明書、戶口名簿、申請人國民身分證、印章、生父母結婚日期)
    1. 出生證明書(非在醫院、診所或助產所出生無法提出生證明書者,應提憑醫療機構開具載明受鑑定者雙方之姓名之DNA親子鑑定報告書或領有證照之醫護人員開具之出生通報表(適用胎兒出生後一個月內)辦理出生登記)(均需正本)。
    2. 戶口名簿、申請人國民身分證、印章(或簽章),並請提供生父母結婚或同居日期。
    3. 委託他人申請者,應附委託書、受委託人國民身分證、印章(或簽章)。
    4. 子女從姓約定書(本國人與外籍配偶之婚生子女之姓氏亦同,並應符合我國國民使用姓氏之習慣),惟於出生證明書載明者,免附。
    5. 無依兒童出生登記,應提憑警察機關之公文書及嬰兒照片查實辦理。
  • 申請期限:自胎兒出生日起60日內 (註: 2010/2/11 更新)

汐止市戶政事務所 相關資料

下述取自: 汐止市戶政事務所 - 服務時間及電話

  • 汐止戶政事務所:臺北縣汐止市新台五路一段268號6樓 TEL:02-26429866,0800011246 FAX:02-26429855
  • 中興辦事處地址:臺北縣汐止市福德一路258號2樓 TEL:02-26941981 FAX:02-2694-2065

相關網頁

by jon at February 10, 2010 09:32 PM

February 09, 2010

tsung

Web、DB Server 等 軟體的極限是多少?

常常會有人問, 某些套件、軟體, 可以承受多大的量? 極限在哪裡? 可以容納多少使用者? 怎麼設定才可以承受更大的量? 等等.

這個答案很難回答, 因為都是看如何使用, 有些每秒 QPS 可以破萬, 也有每秒 QPS 只有 10 就爆炸了.

全部都是在程式如何寫, 系統、軟體如何去設定、操作的問題.

Web 、DB Server 等 軟體的極限?

雖然如此, 還是很想知道極限在哪邊?

答案也很簡單: 軟體的速度再快, 最後極限還是在硬體. (例: 不管 Apachenginx 再怎麼調整, 最後極限會是網卡的頻寬.)

當你的網卡頻寬都吃滿後, 就算 CPU 很閒、Ram 很空、IO 也很閒, 一樣沒辦法把資料送出去.

不過, 如果是遇到這種狀況, 可以考慮多買一些便宜的機器, 來解決這些問題. :)

by jon at February 09, 2010 09:19 PM

February 08, 2010

tsung

在 phpBB 加入 Google Analytics code

要在 phpBB 加入 Google Analytics code 的步驟:

  1. vim styles/prosilver/template/overall_footer.html
  2. 於 </body> 前加入
    <script..... Google Analytics code ..</script>

放最下面除了頁面比較快外, 主要是 Analytics code 有時後會把頁面卡住, 雖然可以設 async 避免(Google Analytics goes async), 不過, 盡量不想去改 Google 本身提供的語法.

by jon at February 08, 2010 09:41 PM

大同電鍋不銹鋼蒸籠 - 說明書食譜

大同電鍋 相信是家家必備的良品, 之前買沒有用心看說明書, 前幾天去買 大同不銹鋼蒸籠 才發現有時間表可以參考.

註: 蒸籠蠻好用的, 原本的要努力疊起來的食物, 蒸籠直接可以平擺, 擺滿滿的一起蒸, 輕鬆多了~

說明書很容易弄丟, 所以把說明書的食譜目錄打起來放. (註: 幾杯 => 量杯的水量)

電鍋使用時間表 (空鍋)

  • 水量: 時間
  • 半杯: 14分
  • 1杯: 20分
  • 1杯半: 26分
  • 2杯: 32分
  • 2杯半: 38分
  • 3杯: 44分
  • 3杯半: 50分
  • 4杯: 56分
  • 4杯半: 62分

食譜目錄

健康的飲食是少油炸多蒸煮

  • 菜名 - 量杯 - 備註
  • 苦瓜排骨 - 1杯半 - 用中茶杯裝盛, 再放入蒸籠內.
  • 茄片白鯧 - 1杯 - 蕃茄, 蔥, 薑, 酒, 鹽, 胡椒粉放在魚上面.
  • 陰瓜仔肉 - 1杯半 - 加入鹹蛋黃與蒜頭, 風味更佳.
  • 鼓汁小排 - 1杯半 - 豆鼓, 蒜頭, 辣椒切碎, 炒香淋在排骨上.
  • 冬菇蒸機 - 1杯半 - 蔥, 薑, 雞肉, 冬菇調味後拌勻, 放入平底盤.
  • 蒜泥白肉 - 1杯半 - 後腿肉蒸完後, 切片淋上調味料即可.
  • 醉雞 - 1杯半 - 雞肉蒸完後, 放入蔥, 薑, 麻油, 紹興酒浸泡.
  • 鮮菇醬肉 - 半杯 - 鮮菇切大塊, 加入豬肉醬肉, 放入平底盤.
  • 蒸花椰菜 - 半杯 - 花椰菜蒸完後, 淋上蠔油, 香油蒜末即可.
  • 蒸蛤蜊 - 半杯 - 用大碗公裝盛, 湯汁不流失.
  • 蒸紅蟳 - 1杯 - 鎖住原味, 營養不流失.
  • 蒸蕃薯 - 1杯 - 蕃薯去皮後, 切塊.
  • 茶碗蒸 - 1杯 - 用中茶杯裝盛, 再放入蒸籠內.
  • 筒仔米糕 - 2杯半 - 用中茶杯裝盛, 再讓入蒸籠內.
  • 芋頭扣肉 - 2杯半 - 用中碗公裝盛, 蒸完後倒扣即可.
  • 苦瓜蒸肉 - 2杯 - 苦瓜切半, 加入絞肉, 香菇, 再放入蒸籠內.
  • 人參雞 - 3杯半 - 用燉盅裝盛, 再讓入蒸籠內.
  • 蘿蔔糕 - 4杯 - 用棉布放入蒸籠內, 再倒入蘿蔔泥.
  • 蒸玉米 - 1杯 - 將玉米去掉外殼抹鹽, 再讓入蒸籠內.
  • 金針排骨 - 1杯半 - 用中茶杯裝盛, 再放入蒸籠內.

by jon at February 08, 2010 04:10 AM

February 04, 2010

tsung

於系統 移除 CNNIC 憑證

CNNIC 似乎很嚴重, 最近正忙到不可開消, 還好有不少長輩清楚的將原由、嚴重性做清楚的說明~

CNNIC 事件說明

下述摘錄自: Untrustable CNNIC SSL CA

CNNIC 就跟 TWNIC 一樣,是國家級的網路管理中心,主要負責如 domain registration 業務。雖然 CNNIC 號稱是非營利組織,但實際上對於豎立 GFW 之中國政府的各項要求,沒有能力拒絕。事實上,CNNIC 也幹過,發佈內含流氓軟件功能,且使用者無法刪除的中文上網官方版軟體這種事。

由於 CNNIC SSL CA 被納入 Root CA,依據 SSL CA 的階層式信任的架構,CNNIC 隨時可以發佈假的 CA,進行 SSL MITM (Man-In-The-Middle) 攻擊。這個意思是說,當你從境外連結中國境內的網站,透過 SSL 登入該網站系統時,即使瀏覽器顯示此 SSL 安全連線安全無虞,但實際上因為假的 CA 之故,很有可能連到的實際上是個釣魚網站 (DNS hijacking 是中國 GFW 常用的技倆)。因此,你的帳號密碼,就會被竊取;而如果這密碼是平常常用的密碼,那你所有平常用的資訊服務,盡皆淪陷。

另一種更可能的情境是,在中國境內連 Gmail 時,由於 CNNIC 的假 CA 與 DNS hijacking 之故,連到的是假的 Gmail 登入頁,你很可能毫無所覺,使自己的 Gmail 帳號密碼拱手予人。

CNNIC 憑證的結論

  • 結論: 盡快把 CNNIC 的憑證從系統移除.

於 Debian、Ubuntu Linux 移除 CNNIC 憑證

方法1
  1. sudo dpkg-reconfigure ca-certificates
  2. 選 Ask
  3. 將 mozilla/Entrust.net_Secure_Server_CA.crt 前面的 * 拿掉.
方法2
  1. sudo vim /etc/ca-certificates.conf
    mozilla/Entrust.net_Secure_Server_CA.crt
    改成 (前面加 "!" 號)
    !mozilla/Entrust.net_Secure_Server_CA.crt
  2. sudo update-ca-certificates

於 Firefox 刪除 CNNIC 憑證

  1. 編輯 -> 偏好設定 -> 進階 -> 加密
  2. 檢視憑證清單 -> 憑證機構
  3. 將 Entrust.net 下面的全部選起來, 按 "刪除" 即可.

相關網頁

by jon at February 04, 2010 09:22 PM

February 03, 2010

tsung

Google Open Source Porject 列表

Google Open Source 的專案到底有哪些? 總列表在哪?

Google Open Source Porject 列表

相關網頁

by jon at February 03, 2010 09:35 PM

Rex's blah blah blah

Java JVM 的 Dual Stack/IPv6 連線問題

大約從 J2SE 1.4/1.6 開始,Sun 所釋出的 Java runtime 開始支援 IPv6 連線功能。一般的 Linux 的套件系統 也開始支援 IPv6,許多系統預設是同時開啟 IPv4/IPv6 或稱為 Dual Stack 網路功能。

基本上,鼓勵各種軟體開始移植到 IPv6 網路上是一件好事。Java runtime 若在 dual-stack 的機器上,預設走 IPv6 位址,因為 IPv6 位址可同時走 IPv4/IPv6 網路。不過問題在於,若一般的 GNU/Linux Debian, Ubuntu 系統,預設會啟動 IPv6 介面,無論你所在網路是否有 IPv6 路由。

於是,你若在 Linux 上使用一些 Java 寫成的網路軟體,如 JDownloader 等,很有可能發生軟體運作後,卻什麽地方都連不上的症狀。解決辦法一是關閉 IPv6 網路功能,一則是利用 JRE 的參數,改為預設使用 IPv4 網路。

檢查 IPv6 是否驅動

首先,你若想確認是否開啟了 IPv6 網路,可於終端機下使用此指令判斷

$ ip addr|grep inet6

若出現了 inet6 之位址,即為開啟了 IPv6 網路。

你若想快速的關閉 IPv6 功能,可以利用 root 執行 ip 指令,直接刪除 inet6 位址

/sbin/ip addr del <ipv6address>/<prefixlength> dev ethX

舊版核心

在舊版核心,IPv6 功能是以模組方式存在,妳可以透過更改 modprobe (module-init-tools) 的設定,讓系統不載入對應驅動程式。關閉的方式很簡單,請修改 /etc/modprobe.d/ 之設定,如以 root 執行以下指令

# cat > /etc/modprobe.d/00local.conf <<EOF
alias net-pf-10 off
alias ipv6 off
EOF

更改之後,重新開機即可關閉 IPv6 功能。

新版核心

在新版的 Debian/Ubuntu 中使用 2.6 核心,因為內建 IPv6 驅動程式, 你得利用開機參數 (cmdline) 關閉之。作法是修改 /etc/default/grub 檔案,更改 GRUB_CMDLINE_LINUX_DEFAULT 一行,加入 ipv6.disable=1,如

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet"

修改完畢後,請用 root 執行 update-grub 後,重新開機。

JRE 參數

另外一項作法是更改 JRE 參數,你若知道啟動該軟體的 shell script 位於何處,可新增一參數如下

$ java -Djava.net.preferIPv4Stack=true Main

這樣就可以要求 JVM 預設使用 IPv4 stack.

這是一篇 Tips.

修訂紀錄 (20100207): 補充利用 iproute 關閉 ipv6 方法,說明新舊版核心處理方式。

by Rex Tsai at February 03, 2010 12:00 PM

February 02, 2010

tsung

PHP 免費線上電子書 - Practical PHP Programming

PHP 免費的線上電子書, 這本應該不算是入門, 比較偏中上程度適合閱讀, 裡面也有提到如何寫 PHP extensions 的 Hello world 版.

Practical PHP Programming 電子書

線上文件: Practical PHP Programming

目錄

  1. Preface
  2. Introducing PHP
  3. Simple variables and operators
  4. Functions
  5. Arrays
  6. Objects
  7. HTML Forms
  8. Files
  9. Databases
  10. Cookies and Sessions
  11. Multimedia
  12. XML & XSLT
  13. Output Buffering
  14. Java and COM
  15. Networks
  16. Miscellaneous topics
  17. Security concerns
  18. Performance
  19. Writing PHP
  20. Writing extensions
  21. Alternative PHP uses
  22. Practical PHP
  23. Bringing it to a close
  24. Answers to Exercises
  25. The future of PHP
  26. Glossary

by jon at February 02, 2010 09:36 PM

Cornelius

Vim - glob 應用

臨時需要將一目錄下所有的檔案插入為 img tag ,所以臨時直接在 vim command line 下寫了 這樣的東西來應付:


整理了一下:

by c9s (cornelius.howl@gmail.com) at February 02, 2010 03:53 AM

February 01, 2010

tsung

教育部免費的楷書字型

教育部提供免費的楷書字型可以讓一般人使用, 商用填寫資料來申請授權.

詳細可見: 教育部免費的楷書字型

by jon at February 01, 2010 08:32 PM

jouston

CarryMe快跑之三成到麻布

今天心情不好。各種狀況一大堆。 下班了以後,可以自己亂亂跑,是讓我很開心的事情。 騎CarryME回到InterContinental Grand Seoul,Doorman大概都已經因為我的CarryME而熟識了。開心的聊了一下,就回到房間裡把筆記型電腦丟在房間,然後打開GPS logger準備出發。 由於是晚上,肚子餓了,本來打算到現代百貨公司吃飯,結果地下美食街實在沒有甚麼看上眼的食物,就又拖著CarryME走向COEX Mall的懷抱。莫名其妙的被某家有部隊湯(Butae Jikae)的店吸引進去,結果很神奇的點了牛肉湯(YuKaeChan),而且還是不辣的版本。某前同事要是看到一定又會說我舌頭已經壞掉了,是啦,是有一點點的辣味,只不過跟我平常熟悉的辣牛肉湯比起來,這一點點大概只是輕微的調味而已。 吃飽喝足了以後,拉著CarryME上1F,也不知道去哪裡,

by noreply@blogger.com (Jouston Huang) at February 01, 2010 02:52 PM

Rex's blah blah blah

git archive 與 log 小技巧

時常,你得將手上的軟體原始碼壓起來釋出給第三方使用、測試。特別是你希望提供 daily basics/ revision basics 讓使用者取得最新版軟體的時候。

由於最近都已經只用 git,依據我自己的習慣,希望能夠在檔名中使用簡碼版次,以便未來能夠追蹤出該版次的問題。稍微問了一下友人與查了一下文件,取得 abbreviated commit hash 的作法如下

git log --pretty=format:"%h" -1

若你想將整份程式碼壓縮起來,可以使用

git archive --format zip -o filename.zip HEAD

倘若想加上日期作為檔名,請使用

git archive --format zip -o $(git log --pretty=format:"%h" -1).zip HEAD

若常常使用這個指令,有兩種作法,一是設定為 git alias. 另一則是利用 git 的 commands (verbs) 命名機制,在你的執行路徑 下,寫入一檔案名稱如 git-zip。並將上述指令加入檔案中,未來就可以使用 git zip 來產生最新版壓縮檔。

作法如
$ cat > ~/bin/git-zip
#!/bin/sh
git archive --format zip -o $(git log --pretty=format:"%h" -1).zip HEAD
$ chmod u+x ~/bin/git-zip
$ cd git-repository
$ git zip

另外,為了容易辨識版次,你也可以利用 gitattributes 在程式碼中加入 ident ($Id$) 作為標示。操作可參考 Lloyd Huang 所寫之 Howto.

這是一篇 Tip.

by Rex Tsai at February 01, 2010 12:00 PM

Cornelius

hypergit.vim (A Git plugin for vim)

最近的作品 - hypergit.vim。先前的 fastgit.vim 經過一些思考後,打掉重寫了,新增的 GitMenu 讓原本越來越的 Command 得以有組織性的以樹狀選單呈現,更 Powerful。

正為了要有一個樹狀選單,所以晚上以 VimL 實做了 Helper Message Class 以及 TreeMenu Class ,以方便其他各種 Plugin 需要用時重用。

該 Git Menu 可自動 Parse Remote 名稱 、Branch 名稱以產生 TreeMenu ,以及各 Menu Node 都可像 Nerd Tree Plugin 一般延展、收和,或執行。

以下是 Screenshot:


Well, It's still under development.

by c9s (cornelius.howl@gmail.com) at February 01, 2010 10:13 AM