如果你是shell指令愛好者,非常喜歡用shell下指令玩Rails的話,除了Mac, Linux之外,最好的選擇就是在Win32平台上安裝Cygwin。
安裝Cygwin有什麼好處呢?這可以讓你在Win32底下使用一些常見的Linux工具程式,例如: joe, nano, vim, emacs, mc, gcc, make等,其他像top, ls, man, ps, mv等常見的指令也都相容。
Windows/CygWin
If you are a user of Cygwin (the Redhat distribution) you already know, it contains a nicely running perl 5.6.1, installation of additional modules usually works as a charm via the standard procedure of
- perl makefile.PL
- make
- make test
- make install
The Windows binary distribution of MySQL runs smoothly under Cygwin. You can start/stop the server and use all Windows clients without problem. But to install DBD::mysql you have to take a little special action.
Don't attempt to build DBD::mysql against either the MySQL Windows or Linux/Unix BINARY distributions: neither will work!
You MUST compile the MySQL clients yourself under Cygwin, to get a 'libmysqlclient.a' compiled under Cygwin. Really! You'll only need that library and the header files, you don't need any other client parts. Continue to use the Windows binaries. And don't attempt (currently) to build the MySQL Server part, it is unnecessary, as MySQL AB does an excellent job to deliver optimized binaries for the mainstream operating systems, and it is told, that the server compiled under Cygwin is unstable.
Install MySQL (if you havn't already)
- download the MySQL Windows Binaries from http://www.mysql.com/downloads/index.html
- unzip mysql-
- start the setup.exe there and follow the instructions
- start the server
- alternatively download, install and start the server on a remote server, on what supported OS ever Build MySQL clients under Cygwin:
- download the MySQL LINUX source from http://www.mysql.com/downloads/index.html
- unpack mysql-XX
- cd into the unpacked dir mysql-
#./configure --prefix=/usr/local/mysql --without-server
- make :This builds all MySQL client parts ... be patient. It should finish finally without any error.
- make install :This installs the compiled client files under /usr/local/mysql/. Remember, you don't need anything except the library under /usr/local/mysql/lib and the headers under /usr/local/mysql/include! Essentially you are now done with this part. If you want, you may try your compiled binaries shortly; for that, do:
- cd /usr/local/mysql/bin
mysql.exe -h 127.0.0.1 -u root -p
The host (-h) parameter 127.0.0.1 targets the local host, but forces the mysql client to use a TCP/IP connection. The default would be a pipe/socket connection (even if you say '-h localhost') and this doesn't work between Cygwin and Windows (as far as I know).
If you have your MySQL server running on some other box, then please substitute '127.0.0.1' with the name or IP-number of that box.
At the 'mysql>' prompt do a quick check:
mysql> use mysql
mysql> show tables;
mysql> select * from db;
mysql> exit
You are now ready to build DBD::mysql!
Build DBD::mysql:
- download DBD-mysql-X
- unpack DBD-mysql-
- cd into unpacked dir DBD-mysql-
- cp /usr/local/mysql/bin/mysql_config .
This copies the executable script mentioned in the DBD::mysql docs from your just built Cywin/MySQL client directory; it knows about your Cygwin installation, especially about the right libraries to link with.
- perl Makefile.PL --testhost=127.0.0.1 --testuser=root --testpassword=xxxx
The --testhost=127.0.0.1 parameter again forces a TCP/IP connection to the MySQL server on the local host instead of a pipe/socket connection for the 'make test' phase.
- make :This should run without error
- make test :with DBD-mysql-2.1022 or earlier you will see several errors in dbdadmin.t, mysql.t and mysql2.t; with later versions you should not get errors (except possibly one, indicating, that some tables could not be dropped. I'm hunting for a solution to that problem, but have none yet).
- make install :This installs DBD::mysql into the Perl hierarchy.
Notes:
This was tested with MySQL version 3.23.54a and DBD::mysql version 2.1022. I patched the above mentioned test scripts and sent the patches to the author of DBD::mysql Jochen Wiedman.
--- If you try to install MySQL with wrong version(Must be source) , you will get return message like this.
./bin/my_print_defaults: ./bin/my_print_defaults: cannot execute binary file
Neither host 'brian_chang' nor 'localhost' could be looked up with
./bin/resolveip
Please configure the 'hostname' command to return a correct
hostname.
If you want to solve this at a later stage, restart this script
with the --force option
Jun 30, 2008
cygwin 上使用 Mysql
Perl 連接 MySQL
連接MySQL
Perl 要搭配資料庫,必須安裝以下模組:
1. DBI : Perl 的 DataBase Interface 的簡稱,
請至
ftp2.tnc.edu.tw/pub/unix/perl/CPAN/modules/by-module/DBI
抓取:DBI-1.37.tar.gz
tar xvzf DBI-1.37.tar.gz
cd DBI-1.37
perl Makefile.PL
make
make test
make install
2. Data-ShowTable
請至
ftp2.tnc.edu.tw/pub/unix/perl/CPAN/modules/by-module/Data
抓取:Data-ShowTable-3.3.tar.gz
安裝方法同 DBI。
3. DBD::資料庫driver
因為我想和 MySQL 搭配,所以必須安裝 DBD::mysql 的驅動程式
請至
ftp2.tnc.edu.tw/pub/unix/perl/CPAN/modules/by-module/DBD
抓取:Msql-Mysql-modules-1.2219.tar.gz 或 DBD-mysql*.tar.gz
安裝方法同 DBI。
至此,Perl 即可和 MySQL 一起運作了! 注意:通常,若您使用的是套件版的 Perl/MySQL,通常系統中已有相關的 DBI/DBD 了,比如:perl-DBI-1.32*.rpm (即 DBI)/ perl-Mysql-1.22_19*.rpm(即 DBD::mysql),因此,您不一定要安裝上面這些 tarbll 模組。
#! /usr/bin/perl
use DBI;
use strict;
my $db="test";
my $host='localhost';
my $user='root';
my $password='ppp123';
my $dbh = DBI->connect("DBI:mysql:database=$db;host=$host",
$user, $password, {RaiseError => 1});
open(FHD, "stu.csv") or die;
while (my $line=
chomp($line);
my ($f1, $f2, $f3, $f4, $f5)=split(/\,/,$line);
if ($f1) {
my $q=qq[ INSERT INTO stu_table VALUES ("$f1", "$f2", "$f3", "$f4", "$f5") ];
my $sth=$dbh->prepare($q);
unless($sth->execute) {die "$!\n";}
}
}
close(FHD);
實例:
我在 test 這個資料庫中開了一個 table 叫 aaa,其結構如下:
CREATE TABLE `aaa` (
`no` varchar(10) NOT NULL default '',
`name` varchar(12) NOT NULL default ''
)
其中 no 代表身份證字號,name 代表姓名。
我準備用它來儲存 studdemo.csv 中的學生身份證及姓名!
程式如下:
#! /usr/bin/perl
use DBI;
use strict;
my $db="test";
my $host='localhost';
my $user='root';
my $password='1234';
my $dbh = DBI->connect("DBI:mysql:database=$db;host=$host",
$user, $password, {RaiseError => 1});
open(FHD, "stu.csv") or die;
while (my $line=
chomp($line);
my ($f1, $name, $f3, $f4, $f5, $f6, $f7, $pslno, $f9)=split(/\,/,$line);
if ($f1) {
my $q=qq[ INSERT INTO aaa VALUES ("$pslno", "$name") ];
my $sth=$dbh->prepare($q);
unless($sth->execute) {die "$!\n";}
}
}
close(FHD);
From http://linux.tnc.edu.tw/techdoc/perl_intro/c1239.html
名人幽默笑話
智鬥強盜
有一次,卓別林帶著一大筆現款走在路上。突然,從路旁草叢裏躍出一個蒙面強盜。強盜威脅著要卓別林交出錢款。卓別林答應了,並對他說:“請在我帽子上開兩槍吧,我好回去 向主人交代!”強盜“叭叭”兩聲,照他的話做了。“再在我的衣襟上開兩槍吧!”卓別林又說。“叭叭”兩聲,強盜又照做了。“最後,請您再在我的褲腿上打兩個洞,拜托了 !”強盜一聽,不耐煩地提起槍,又在褲腿上給了兩槍。卓別林知道強盜的手槍裏再也沒有子彈了,便一腳把他絆倒,飛也似地跑了。
如何成為英雄
有一次,一位朋友問美國總統肯尼迪:“您是怎樣在第二次世界大戰中成為英雄的?”肯尼迪想了一會兒,說:“這可由不得我,是日本人炸沉了我的船。”
鬧饑荒的原因
英國文豪蕭伯納是個瘦子,這是盡人皆知的。一天,他遇到一個有錢的胖資本家,資本家譏笑著對蕭伯納說:“蕭伯納先生,看到您,我確實知道世界還存在鬧饑荒的現象。” 蕭伯納也笑著回答: “而我一見到您,便知道世界鬧饑荒的原因。”
人的價值體現
美國第一任總統華盛頓的“標準像”是美國著名畫家斯圖亞特早年畫的,它幾乎張挂于美國的千家萬戶。斯圖亞特一生 中畫過許多華盛頓的肖像,其中他最滿意的一幅在一塊畫布上 只畫了華盛頓的一個頭的作品。有人挑剔地指出為什麼不畫全衣服,斯圖亞特回答道:“人的價值不在衣著上。”
如果……
溫斯頓·邱吉爾是世界著名的政治領袖。他在擔任英國首相期間,一次,他的政治對手阿斯特夫人對他說:“如果我是您夫人,我一定會在您的咖啡裏放進毒藥。”邱吉爾聽了,笑著說:“如果我是您丈夫,我一定會把這杯咖啡喝下去。”
一起去找別的地方住
英國首相邱吉爾有天回家時老婆大人相當的生氣,怒罵他每天過於忙碌,都沒陪她。因此非常生氣的打包行李要離開,關起門來就走了。這時只見邱吉爾也快速的打包行李,跑下來和老婆一起離開,老婆莫名所以的看著他,只見邱吉爾說:這個家老婆大人既然住的不開心,那我也不要它了,我們再一起去找別的地方住好了.....
政治家
有一天,有人問英國首相邱吉爾,做個政治家要有什麼調件。邱吉爾回答說:「政治家要能預言明日、下月、來年及將來發生的一些事情。」那個人又問:「假如到時候預言的事情未實現,那怎麼辦?」邱吉爾說:「那就要再說出一個理由來。」
Jun 27, 2008
v$session status column display with "SNIPED"
From v$session , found status column "SNIPED".
What happened ?
> A status of SNIPED in v$session for a session indicates that the session has been terminated by Oracle, because it exceeded the IDLE_TIME set in the profile assigned to the use.
1. Find the user_name in v$session that status is SNIPED
2. select * from dba_users , check "SNIPED" status user's profile column .
3. select * from dba_profiles , check the "IDLE_TIME" limit value.
4. > show parameter resource_limit , if the value is true , then resource limit will use.
Set the IDLE_TIME in profile can release session holding resource (DB object lock), but OS resource will not release (memory resource).
Jun 26, 2008
忙茫盲!抓出浪費時間4大元兇
忙茫盲!抓出浪費時間4大元兇
轉貼天下雜誌2008.6.25
忙茫盲!抓出浪費時間4大元兇
一樣的一天二十四小時,常嚷著說沒空的人,也許只是沒有抓到運用時間的技巧,十五分鐘工作術,幫助你做個效率達人。
【採訪/張漢宜】
「啊,我沒空!」「我實在沒時間做XX事!」常聽到許多人如此抱怨。然而,時間真的不夠用嗎?每個人每天同樣擁有二十四小時,為何有人可以在相同時間做更多事?
解決這個問題,要從兩方面著手:一、抓出浪費時間的元兇,二、增加運用時間的效率。
浪費時間的四大元兇
人常在不知不覺中浪費時間。與其抱怨別人佔用自己的時間,不如說其實大部份都是自己造成的。日本管理雜誌《The 21》指出,造成浪費時間的原因有四大元兇:
一、考慮太多,優柔寡斷
深思熟慮是好事,但若想得太多、考慮太過,遲遲不敢下決心動手執行,等到終於做了決定,卻壓縮了執行時間,導致一個很好的構想最後呈現結果不佳,浪費了事前的努力規劃、讓自己處於時間的強大壓力、最後成果也令人沮喪。
二、完美主義
「把事情做到最好」是個好原則,但若要求事事做到一百分,結果顧此失彼,未能整體考量,也無法做好時間規劃。原本已做到九十分,但為了加把勁衝到一百分, 把大量時間與精力投注在提高那十分,導致其他工作迫於時間與人力草草了事。把事情做到最好是一種「相對標準」而非「絕對標準」,應從擁有多少時間、人力、 資源來考量,當條件有限時,就應思考「先求有,再求好」的哲學。
三、害怕失敗
每個人都希望一出手就成功,但並非每次都能做到,難免有些事不盡完美。如果太在意成果,患得患失、害怕失敗,不僅壓力過大,也會在執行時顯得畏縮,反而浪 費更多時間,達不到預期成果。沒有人可以把每件事做到滿分,從今天的小失敗中學到經驗與教訓,慢慢累積,才能成就日後的成功。
四、挑簡單、喜歡的先做
喜歡的菜先吃掉?簡單的工作先做?這是一般人的習性,但卻容易掉入「先甘後苦」的痛苦中。其實,工作應以「重要性」、「急迫性」來安排,而非「是否容易做」、「自己喜不喜歡」為考量,否則會讓時間配置顯得雜亂無章。
抱怨時間不夠用,癥結是把時間以「小時」為單位來用。以小時來度日,扣掉睡眠與交通,一天只有十幾個單位的時間可用。而且,一項工作如果預定一小時做完,結果四十分鐘就完成了,剩下的空檔,人性往往就會偷懶、東摸西晃,結果浪費許多值得利用的零碎時間。
試試看這樣的新做法:以「十五分鐘」做為時間運用的單位。這樣做,有幾個好處:
以「十五分鐘」為時間單位
首先,一天會增加為四、五十個時間單位。你可以依照工作的重要性,靈活分配適當的時間單位,即使偶爾想偷個懶,也不會浪費太多時間。這個道理就像魚網一 樣,以「小時」為單位,時間縫隙大,容易浪費、流失;以「十五分鐘」為單位,時間縫隙小,可避免零碎時間在不經意或偷懶中流失。
另外,是為了健康,每十五分鐘給大腦與身心一個休息空檔。以生理因素考量,人可以集中精神、發揮最大腦力效益的時間,大約是十五分鐘,一旦超過,效率與思 考力就會慢慢遞減。因此,集中精神工作十五分鐘之後,起身休息一下,喝杯茶補充水分、眺望窗外的遠景讓眼睛休息一下,讓腦力恢復最佳狀態,再繼續投入工 作。
忙得焦頭爛額,是因為沒有事先做好規劃。人生目標有短、中、長期,同樣地,時間運用也有短、中、長期的配置。事先準備工夫做好,執行時會快速許多,省下許 多時間。這樣就能不必瞎忙,而是忙得「有感覺、有意義」。若準備草率,邊做邊補、丟東落西,拉長執行過程,反而浪費更多時間,精神上也疲累不堪。
想想看,你真的忙到沒時間做某些事嗎?早上抽十五分鐘做運動、跟同事抽十五分鐘迅速溝通工作、晚上抽十五分鐘閱讀,真的做不到嗎?說穿了,都是自己找藉口。
善用「十五分鐘工作術」,是一種「加分型」時間利用法,能在同樣的時間做比別人更多的事,等於擠出第二十五個小時,比別人擁有更多「可用的」時間。若是因 缺乏規劃、事先準備工夫不周,在發呆偷懶、拖拖拉拉中浪費掉,那就淪落為「減分型」時間利用法,永遠也逃不出「沒時間」 的迷障。
蘆筍是治療癌症的妙藥
蘆筍是治療癌症的妙藥
居住於美國賓夕法尼亞洲匹茲堡的生物化學家-卡爾羅茲博士,最近在該市出版的一本營養雜誌上面,發表一篇極惹人注意的文章,說是蘆筍在治療癌症方面,有著極優異的結果,這裡特地請人翻譯出來,供給癌症患者,以及有關係的人士做為參考:
我羅茲自稱是一名生物學者,在過去的數十年之間,不斷的研究有關食物的健康問題不敢說有多大的建樹,但卻有了多少的心得,今天在此與各位談談有關癌症的問題,希望對同患者有多少的幫助。
數年之前,我的好友李察德,賓西爾大學博士,發表了專題演講說:「蘆筍或許能夠治療癌症」以來,我頗有共鳴之心,從此以後,我在自己本份的工作之內,時常與賓西博士共同從事研究蘆筍與癌症的關係,如此經過了一段時間之後,我們發現了蘆筍確是能夠治療癌症,而且效果還相當的良好,我們特地從很多的實例中,舉出具有代表性的 4、5個例子供大家做為參考:
(一)一名男子罹患了惡性的淋巴腺癌,醫生診察之後,只有搔搔頭,說是絕對沒有恢復健康的希望了,該男子請求於我們,我們告訴他蘆筍療法,如此只經過了 1年後,醫生再檢查的結果,竟然全無癌腫的痕跡了。醫生在驚愕之餘,宣佈了他已經痊癒,於是他又重新回到了他工作的崗位,從此不再罹患此病了。
(二)一名67歲相當成功的商人,10多年前罹患了膀胱癌,他輾轉求醫,吃盡了各種的藥品,以及試盡了各種療法,仍舊是絲毫不見效,幾乎是要心灰意懶了,最後他抱著姑且一試的心理嘗試了蘆筍療法,前後只實行了 3個多月,再前往醫院檢查之後,發現膀胱裡面的腫脹物已經完全的消失,再度恢復了健康。
(三)一名男子罹患了肺癌,於1971年3月接受了切開手術,醫生檢查之後,發現癌腫已經擴充開來,情況相當的嚴重了,實在不能再著手醫治了,於是他把切口再封閉起來,使患者自生自滅了。4月5日起該男子開始了蘆筍療法,每天有恆地持績下去,如此到了8月,當他前往醫院接受 X光檢查的結果,發現所有的癌腫竟完全的消失了。
(四)一名婦女長年以來為皮膚癌所苦,他吃藥打針,不但沒有治癒皮膚癌,反而在幾年之後長出了7種不同的皮膚癌,使醫生都感覺到束手無策,拿她毫無辦法,這時她接受了友人的勸告,實行了蘆筍療法,每日不斷, 3個月之後再前往檢查的結果,一切的皮膚癌症都消失了,疼痛亦無形中消失,醫生告訴她癌症已經完全的痊癒了。
依據這位婦女的發表,蘆筍療法不僅治癒了她的癌症,亦治好了她的腎臟病。因為自從1949年以來,她陸續接受了30次的腎臟結石的切開手術,由於醫療費用毫無著落,以致演變到從政府方面接受特別醫療補助費哩!她竟然靠著廉價的蘆筍治好了多年的皮膚癌以及腎臟病,怎能不叫她欣喜萬分呢?不過我聽到了這道消息並不感到震驚,因為 1971年,賓夕法尼亞大學發行的醫學雜誌,即提起蘆筍可能是腎臟結石的妙藥,又如1972年的雜誌亦刊載蘆筍可能消除膀胱結石等等。
那麼,蘆筍應該如何吃才能治療癌症呢?
這個問題並不困難,只要把蘆筍先行煮熟(或者使用罐頭裝的蘆筍也可以,功效是相同的),然後把蘆筍放入果汁機裡面打成泥狀,把這種蘆筍製成的泥狀物盛在容器裡,放入冰箱的冰凍室裡面,早晚各吃 4大匙。
據羅茲博士說,這種的蘆筍泥的效果非常良好,患者在連續服用3個星期或4個星期之後,即會發現效果,至於吃法不必拘泥於形式,憑各人的愛好即行,用菜湯沖泡,或者冷開水沖薄之後飲用亦可,因為這不同於一般的化學藥品,即使多吃亦不致造成災害,有時候甚至有吃的必要呢!身為生物化學者的我,以本身職業的立場深信古老的一句說法:「有效的食療法,亦可以用來預防疾病的發生」。
如今大家都談癌色變,我與妻子為了預防這種棘手的疾病之故,每天3餐都食用蘆筍泥(用菜湯沖泡或水沖薄之後飲用),然後按時舉行血液檢查,結果我倆的身體一直健康無恙,站立於生物化學者的立場,我曾經仔細地研究癌的成因以及治療。依我看來,蘆筍療法乃是時下最新的癌症治療法。我們從事有關蘆筍的研究之後,發現它含有多量的某種蛋白質,這種蛋白質能夠增值新的細胞,不但能夠抵抗癌腫的增值,亦能變成我們身體的刺激劑,使新陳代謝加強,增進身體的健康。總而言之,蘆筍療法並非化學藥品療法,是故,不必擔心有副作用,絕對不會毒害及身體,可以放心的使用。
如果閣下有幸讀到這一篇報導,不妨告訴那些癌症所苦的人,教他們試一試這種療法,這也算是做了一件功德無量的事呢!
~~ 多多傳授,功德無量~~
[註] :本篇資料由朴子市農會李豐榮股長所提供,因為其尊翁曾罹患膀胱癌症末期,在施善友人好心介紹「蘆筍療法」後,抱著姑且一試的心情照章實施,一日數次,經數月之食用治療之後,果真效果奇特不藥而癒。李股長為感念善德,廣贈資料以濟救世人。