機車皮帶又斷了

星期二的早上, 5/11 騎車上班的途中,到福和橋下的時候,機車突然發出啪啪的聲音,然後油門怎麼催都沒有反應,我知道,這是因為機車的皮帶斷了~~
於是只好和太太把車牽去修理,並請他先搭計程車去上班~~
可能是因為太早了吧,才八點多,雖然這附近有蠻多機車店的,但並沒有任何一家機車店開門~~送太太搭計程車之後,心裡想,把車丟了,先去吃早餐好了~~
來到早餐店,
“老闆,一份烤煎蛋還有一杯奶茶”
“什麼?”
喔~~原來是外籍人士,可能是越南人吧,所以聽不懂…
“一份火腿蛋三明治,一杯奶茶”
“好…”
過了不久,三明治還有奶茶送到.咬了三明治一口,發現裡面有生菜~光這點,口感就與其他家早餐店的三明治不同了,再加上醬料也相當不錯,讓我對這家早餐店的印象不錯…
吃完,回去機車那邊,發現剛好有一家機車店開門了~~
老闆是個年紀有點大的中年人,邊修車的同時,他問我,要不要順便驗一下排氣?
我說好~~
很愉快的花了一千元搞定之後,就快要九點了….
於是就趕緊騎車去上班了~~
運氣還真的是不錯啊~~

ltdl library

可以輸入 info libtool 找 Module loaders for libltdl 就可以得到不少資訊.
簡單說,就是可以製作能動態載入 module/plugin 的 library, 以 linux 來說,底層其實就是 dlopen, dlsym 這些函數
這個 library 其實是一個 wrapper, 跨了好幾個平台: BSD, Linux, Win32…
configure.in 中的設定
AC_LIBLTDL_CONVENIENCE
AC_SUBST(LTLINCL)
AC_SUBST(LIBLTDL)
AC_LIBTOOL_DLOPEN
AC_PROG_LIBTOOL
AC_CONFIG_SUBDIRS(libltdl)
Makefile.am 中的設定
SUBDIRS=libltdl
INCLUDES=$(LTDLINCL)
prog_LDFLAGS=-export-dynamic
prog_LDADD=$(LIBLTDL) “_dlopen” self “_dlopen” fxx.la
prog_DEPENDENCIES=$(LIBLTDL) fool.la
prog 指的是執行檔名稱
而 module/plugin 的 Makefile.am 設定
xxx_la_LDFLAGS=-module
函數蠻多的,可以直接從 ltdl.h 去找或參考 info
對於 Multi-Thread 也有支援.

[亂逛]WxWidget相關軟體

2003年底某天去找 WxWindows (現已更名為 WxWidget) 逛到的一些用 WxWidget 這個 framework 的軟體.
WxWidget http://www.wxwidget.org 官方網站
WxJS http://wxjs.sourceforge.net
WxBasic http://wxbasic.sourceforge.net
WxWorkshop http://wxworkshop.sourceforge.net 開發工具
poedit http://poedit.sourceforge.net 編輯 po 檔的工具,用過的感覺還不錯~~蠻好用的~~
ldaptool http://ldaptool.sourceforge.net LDAP Explorer Tool
text2rtf http://www.wxwidget.org/text2rtf/index.htm 轉換 LaTex 的文檔為 rtf / html / xlp
pgadmin3 http://pgadmin.org/pgadmin3/index.php Postgre SQL 的管理工具
WxBlogger http://homepage.mac.com/codonnell/wxBlogger/Personal Blog, blog 的內容都會轉存為 html 檔.屆時發佈這些 html 檔就行了~~

骨折記

記得 2000 年年初的時候,有一次,因為客戶有問題,處理的一肚子火,於是很生氣,就打牆壁,想說牆壁有貼一塊軟木紙,應該不會有事,就用力打.
結果……好痛……
那時候已經晚上九點多了,強忍痛意騎車去看醫生~~
照了 X 光,醫生說,”是骨折,右手手掌連接小指的那根骨頭斷了~你明天最好去大醫院看~~”
所以只幫我固定了一下~~而我仍然神勇地騎車回家……
隔天去了永和耕莘醫院,醫生看了看就說,”少年仔,跟別人打架喔~~”
我說,”不是….”
醫生說,”不要騙了啦….”
我只好不說話,因為實在不想說出原因…..
於是就打了一個月的石膏…..開始練習左手吃飯,左手打字,左手用滑鼠……
經歷了這件事情以後,我體悟到一件很重要的事情:
就是…..心情不好的時候,絕對不要自殘身體….否則…..會更痛苦…..

在 .Net 上不使用 crystal report.net 的列印方法

因為手頭並沒有 Visual Studio.Net, 理所當然也沒有 Crystal Report.Net…
所以就去找看看是不是有不用 Crystal Report.Net 就可以進行預覽列印與列印的方法.
http://www.ondotnet.com/pub/a/dotnet/2002/06/24/printing.html
這篇是介紹 c# printing 的函數,介紹的相當仔細~
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vboriprintdocumentcontrol.asp
http://samples.gotdotnet.com/quickstart/
http://www.microsoft.com/taiwan/msdn/library/2003/May-2003-tw/printwinforms.htm
這三篇則是微軟的官方資料~
前一篇是以 vb.net 做介紹,用法大致差不多~~
http://www.c-sharpcorner.com/Code/2002/July/WinFormsPrinterSel.asp
這篇則是介紹取得印表機與選擇印表機的方法~~

Linux Timezone programming HOW-TO

以前在作 NAS (Network Attached Server) 的時候,因為要取得並設定時區,所以去找到的資料.
主要是參考這篇 The GNU C Library – Time Zone Functions.還有一些其他 Linux 程式的方式來解決.
不過 GNU C 的這個 timezone functions 似乎不太 work,我想可能是我不會用吧~~後來是改用 symbolic link 的方式來解決~~
以下用問答的方式來記述:
1.如何取得目前 timezone?

在設計上,可以將 /etc/localtime symbolic link 到 /usr/share/zoneinfo 下的 zone file. 藉著取得真實路徑的函數readlink(),就可以得知是哪裡的 timezone.

2.如何設定 timezone?

同 1, 可以用 symbolic link 的方式來設定

3.和 TZ Environment Variable 的關係

如果有設定 TZ 環境變數,那麼 /etc/localtime 將會失效.
TZ 有特定格式,需要查一下,大多的 embedded system 都是直接利用 TZ 環境變數,而不使用 zone file.

4.如何瀏覽 zone??

可以直接開啟 /usr/share/zoneinfo/zone.tab 來取得列表.
此檔共有四欄: code, coordinates, TZ, comments.
照慣例,以 # 開始的該列為註解.
比較需要用到的兩個欄位: TZ 與 comments.

5.預設值??

預設值可以直接指向 /usr/share/zoneinfo/GreenWich 表示為格林威治標準時間

php adodb

php 的 adodb, 以前寫聊天室的時候有用到,用法很類似 ASP 的 ADODB,所以說是一層 把 Database 操作方法統一起來的 layer.
PHP 本身也有所謂的PEAR DB, 用途與做法也相當類似.
這裡是他的官方網站
下面的程式碼則是在逛官方網站還有這篇的時候,隨手抄下來的(不知道抄來幹麼,我想可能是抄爽的)….

include(“adodb.inc.php”);
$dbconn=NewADOConnection(“mysql”); // or postgresql(pgsql)
$dbconn->Connect(“localhost”, “username”, “password”, “databasename” ) or die(“Unable to connect!”);
$result=$dbconn->Execute( $query ) or die(“Error in query: $query.”. $dbconn->ErrorMsg() );
while( !result->EOF )
{
    echo $result->fields[1].”-“.$result->fields[2].”\n”;
    $result->MoveNext();
}
// $result->RecordCount(); // 取得筆數
// $result->FieldCount(); // 取得欄數
$dbconn->close();

也可以用 Fetch, 把 recordset 換為 object, 然後用 FetchNextObject() 取得下一筆.

while( $row=$result->FetchNextObject() )
{
  echo $row->TITLE. “-” . $row->AUTHOR. “\n”;
}

安裝的時候,放到 php 程式所在目錄下,假設為 adodb 好了,所以

<?
include( ‘adodb/adodb.inc.php’ );
$db=&ADONewConnection( $database_type ); // $database_type can be “mysql” or ….
$db->debug=true;
$db->PConnect(“$server, $user, $pw, $database );
$rs=$db->Execute( ‘select * from aaa’ );
print “<pre>”;
print_r( $rs->GetRows() );
print “</pre>”;
?>

D language?!

很有趣~~
這裡看到所謂的 D Language.
D Language 很類似 C/C++ 甚至也很類似 Java/C#, 不過這四門語言本來就或多或少有相似之處 🙂 現在又加入一個同門師兄弟啦~~真不知該感到欣慰還是悲傷 ^_^
同門師兄弟:
C, C++, Java, C#, D
有點類似又不會太類似:
PHP, Perl, Python