2011年12月8日 星期四

Create resource files by EN resource.

#!/usr/bin/perl
use File::Copy;

$sourcefile = "$ARGV[0]";

my @langArray = ("ar","cs","da","de","el","es-MX","es","fr","he","it","ja","ko","nl",
"no","pl","pt-BR","ru","sv","th","tr","zh-CN","zh-TW");
#print "$ARGV[0]\n";
if(!"$sourcefile")
{
    die "File name not allow empty!\n";
}else
{
    for($i=0; $i<=$#langArray; $i++) {
        copy("$sourcefile.resx","$sourcefile.$langArray[$i].resx") or die "copy file fail. (lang:$langArray[$i])\n";
        print "$sourcefile.$langArray[$i].resx created.\n";
        #print "$langArray[$i]\n";
    }  
}

2011年9月30日 星期五

[轉錄] 往往只有優秀的人才擁有有效的人脈


(轉錄自人人網) 原發表者:田軍

  有一次在北大講座,遇到一位學生問我,"老師,你說學習重要,還是經營人脈重要?"看著他一臉大雜燴的表情,我先拿出本子記下了這個問題,然後告訴他說,這是個比較大的話題,我會仔細寫篇文章放在網上的,然後給了他我的博客位址 。而後又補了一句,"相信我,所謂的人脈就算重要,也根本沒他們說的那麼重要"。

  讓我們細說從頭。先動腦思考一下,你願意與什麼樣的人成為朋友?從幼稚園開始,每個人就都已經有一些選擇朋友的原則--儘管並不自知。事實上,資源分佈的不均勻,必然造成人與人之間的某種依附關係。觀察一下,就可以看到事實:幼稚園裏玩具多的孩子更容易被其他孩子當作朋友。那麼,玩具最多的孩子朋友最多麼?答案並非肯定。

如果你像我一樣有機會、也恰好願意多花一點心思與那個玩具最多的孩子交談的話,你也很快就會發現,在他的心目中,與所有成年人一樣,朋友被劃分為"真正的朋友"和"一般的朋友"。以下我們姑且把那個玩具最多的孩子叫做"小強"。

當時我很好奇。耐心等待小強告訴我誰是他"真正的朋友"。最終,他告訴我,真正的朋友只有兩個。其中一個是男孩,另外一個是女孩。那我就問他,"為什麼你認為那男孩是你真正的朋友?" 小強一秒鐘都沒猶豫,告訴我說,"他從來都不搶我的玩具,他跟我換。"我又問他,"那,為什麼你認為那女孩是你真正的朋友?"這次小強猶豫了好一陣子,在確定我會給他保密之後,磕磕巴巴地說,"她好看。我把新玩具全都先給她……"我笑。過一會兒又問他,"她覺得你好看麼?" 小強愣了一下,滿眼的無辜,"不知道……"我又問,"那她現在手裏的玩具是誰的?" 小強突然顯得很緊張,"不是我的。"我決定不去問那小女孩什麼問題了。

基於種種原因,生活中總是只有少數人是大多數人想要結交的朋友。但是同樣基於種種原因,大多數人並不知道那些少數的人是如何理解他們大多數人的行為的。剛才小強說他那個"真正的朋友"從來都不"搶"他的玩具,而是"換"。注意這兩個詞。

在這裏我們不討論所謂的"心計"。確實有些人有很深的城府,至少比另外一些人更深,他們可以用常人想不出的,就算想得出來也做不到的手段達到自己的目的。在這裏,我們只討論最普遍的情況。

  所有的人都喜歡並重視甚至偏愛一種交換,"公平交換"。小強也許並沒有意識到,他所擁有的玩具數量,使得他從概率角度出發很難遇到"公平交換",因為絕大多數孩子沒有多少玩具,甚至乾脆沒有玩具,所以,那些孩子實際上沒有機會,也沒有能力與他進行"公平交換"。對他來講,不公平的交換,等同於"搶",沒有人喜歡"被搶"。而與他"換"的那個男孩,讓小強感受到公平。小強也有自己想要的但是卻不擁有的,所以,他也去"換"而不會去"搶,"因為他自己就不喜歡"被搶"--把最新的玩具都給那女孩先玩……

某種意義上,儘管絕大多數人不願意承認,他們的所謂"友誼"實際上只不過是"交換關係"。可是,如果自己擁有的資源不夠多不夠好,那麼就更可能變成"索取方",做不到"公平交換",最終成為對方的負擔。這樣的時候,所謂的"友誼"就會慢慢無疾而終。也有持續下去的時候,但更可能是另外一方在耐心等待下一次交換,以便實現"公平"。電影《教父》裏,棺材鋪的老闆亞美利哥o勃納瑟拉決心找教父考利昂替他出氣並為自己的女兒討回公道的時候,亞美利哥就是"索取方"。許多年後,教父考利昂終於在一個深夜敲開了亞美利哥的門……

所以,可以想像,資源多的人更喜歡,也更可能,與另外一個資源數量同樣多或者資源品質對等的人進行交換。因為,在這種情況下,"公平交易"更容易產生。事實上,生活裏隨處可見這樣的例子。哪怕在校園裏,"交換"本質沒有體現的那麼明顯,但是,同樣性質的行為並不鮮見。比如,某系公認的才子,會與另外一個系裏公認的另外一個才子會"機緣巧合"地邂逅而後成為"死黨"。俗話常說,"英雄所見略同",可能就是他們一間如故的原因,所以,他們之間的談話以及任何其他活動往往都會讓他們覺得相互非常"投機"。

這樣的例子太多太多。

  當15歲的沈南鵬和14歲的梁建章第一次相識時,這兩個懵懂少年不會意識到17年後他倆會聯手創造一個中國互聯網產業的奇跡。在1982年第一屆全國中學生電腦競賽上,這兩個數學"神童"同時獲獎。

不是因為他們兩個要好,才各自變得優秀。而是因為他們各自都很優秀,才可能非常要好,而後命運的碰撞產生絢麗的火花。

而反過來,這些被公認為優秀的人,事實上往往並不"低調",也並不"平易近人"。這並不是他們故意的。他們無意去惹惱身邊那些在他們看來"平庸"的人,只不過無形中他們有這樣的體會--"與這些人交流,溝通成本太高……"除非有一天,這些人終於意識到自己應該保護自己,因為有些誤解根本沒機會解釋。於是,他們開始"謙虛",他們學會"低調",他們顯得"平易近人"。

  好多年前,我注意到一個現象,當別人求助於我的時候,我內心往往非常抵觸,卻又怕別人說我是所謂的"不夠意思的人",於是硬著頭皮去做自己不喜歡做的事情。有一次特別受傷的時候,突然一閃念,想明白,原來這種尷尬本質上並不是來自於我沒有"樂於助人"的品性,而是來自於我自己的精力並不足夠旺盛,沒有旺盛到處理自己的事情綽綽有餘的同時,還有大把的時間精力用來幫別人做事--事實上,我自己根本已經是正在過河的泥菩薩。後來,我開始懷疑,雷鋒的領導是否太白癡,因為他沒有給自己的下屬分配足夠的工作。--這是那天晚上與我來講非常驚喜的一件事兒,因為我發現我正在獨立思考。

承認自己能力有限,是心理健康的前提。從我重新思考雷鋒的領導那天開始,我掙扎著去學習如何做事量力而行。說起來好笑,自己的智商有限到過去竟然沒想到"量力而行"是如此高難度的行為模式--1) 承認自己能力有限;2) 不怕在別人面前露怯;3) 敢於不去證明自己是"好人"……

  所以說,往往只有優秀的人才擁有有效的人脈。並且正因為這些人隨時隨地都可能要回避"不公平交換"的企圖,他們才更加注重自身的品質,知道不給他人製造麻煩,獨善其身是美德。常言說,"事多故人離",是非常準確的觀察。而那些不優秀的人往往並不知道這樣貌似簡單的道理,他們甚至沒有意識到自己的狀況只能使得自己扮演"索取者"的角色;進而把自己的每一次"交換"都變成"不公平交換",最終更可能使交換落空--因為誰都不喜歡"不公平交換";每次交換的落空,都進一步造成自己的損失,使得自己擁有的資源不是數量減少,就是品質下降,進一步使自己更可能淪為"索取者"--惡性循環,甚至可能永世不得翻身。

  還有些人,過分急於建立所謂的人脈,並全然不顧自己的情況究竟如何。對於這樣的人,人們常用一些專門的詞來描述他們,"諂媚"、"巴結"、"欺下媚上"、甚至"結黨營私"等等。這樣的人,往往也不是他們故意非要如此的。他們只是朦朧地意識到自己一個人的力量過於渺小,所以,才希望能夠借助其他的力量。而一個人越是渺小,越是襯得他的欲望無比強烈。這樣的人特徵非常明顯,其中一個就是,在日常生活中他們經常有意無意地用親密的方式提及大家仰望的人物,無論他們與"大人物"是否真的存在私交密往。在中文語境裏,他們就會只說名字不說姓氏:李開復不復",在他們嘴裏是"開復";李彥巨集不叫"李彥宏"在他們嘴裏是"彥宏",沈南鵬不叫"沈南鵬",在他們嘴裏就是"南鵬";最近我聽到更恐怖、更另人毛髮悚立的是,"小俞"(俞敏洪),"小鄧"(鄧峰),"大想"(理想)……

  整體上來看,人脈當然很重要。不過,針對某個個體來說的話,更重要的是他所擁有的資源。有些資源很難瞬間獲得,比如金錢、地位、名譽,尤其在這些資源的獲得更多地依賴出身和運氣的現實世界裏。然而有些資源卻可以很容易從零開始,比如一個人的才華與學識。才華也好學識也罷,是可以通過努力必然獲得的東西。一個人心智慧力一旦正常開啟,就會發現自己在這個資訊唾手可得的世界裏,只要正常地努力,並且有耐心和時間做朋友,很容易成為至少一個領域的專家。努力並不像傳說中的那麼艱苦,只不過是"每天至少專心學習工作六個小時";耐心卻遠比大多數人想像得巨大,"要與時間相伴短則至少五年,長則二十年" 。

許多年後的今天,我又發現另外一個多年前智商平平的我不可能想明白或者預想到的事情(當然我現在也依然智商平平,只是多了些智慧):當一個人身邊都是優秀的人的時候,沒有人求他幫忙--因為身邊這些優秀的人幾乎無一例外都以耽誤別人的時間為恥,同時,這些人恰好是因為遇到問題能夠解決問題才被認為是優秀的。

如果,終於有一天,你已經成為某個領域的專家,你會驚喜于真正意義上的有價值的所謂高效的人脈居然會破門而入。你所遇到的人將來自完全不同的層面,來自各種各樣意想不到的不同的方向。而你自己也不再是過去一無是處的你,你不再是"索取者",你扮演的是"樂於助人"的角色--很少有人討厭善意的幫助,更何況你是被找來提供幫助的呢。

  甚至,你會獲得意外的幫助。如果你是一個優秀的人、有價值的人,那麼就會有很多另外優秀的人、有價值的人為你提供幫助。這樣的時候,這樣的幫助往往確實是"無私"的。正如沒有哪個醫生做到救死扶傷之後僅僅因為酬勞太少而惱羞成怒的一樣,那些品質優秀到一定地步,境界豁達到一定層次的人,往往真的可以做到"施恩不圖報"。因為對他們來講,能夠有機會"驗證自己的想法"本身就已經比什麼都重要,並且可以令他們身心愉悅。然而真正有趣的現象是,被幫助的你也正因為並非尋常之輩,所以一定懂得"滴水之恩,當以湧泉相報"的道理。最終皆大歡喜,只因為"溝通成本幾近於零",同時的效果自然是"交流收益相對無窮放大"。良性迴圈。

生活的智慧就在於,集中精力改變那些能夠改變的,而把那些不能改變的暫時忽略掉。專心打造自己,把自己打造成一個優秀的人,一個有用的人,一個獨立的人,比什麼都重要。打造自己,就等於打造人脈--如果人脈真的像他們說的那麼重要的話。事實上,我總覺得關於人脈導致成功的傳說其實非常虛幻,只不過是不明真相的人只好臆造出來的幻象罷了。

我並不是說,從此就不用關心自己身邊的任何人了,或者說從此就無需與任何人打交道了。善於與人交往也是一種需要學習,並且也需要耗費大量時間實踐的技能。我只是提醒你,別高估自己,誤以為自己有那麼多足夠的時間可以妥善地處理好你與你身邊所有人的關係。流覽一下你的手機通訊錄裏的名字吧,有多少已經很久沒有聯繫過了?這麼多年,我只見過兩三個人回答我說,"最長時間沒聯繫的,也不超過兩個星期。"其中一個還是特別固執而特殊的人,他的手機通訊錄裏,總計才有22個名字。

事實上,真正的關心最終只有一個表現:為之心甘情願地花費時間,哪怕"浪費"時間。這也很容易理解。因為,當你把時間花費到一個人身上的時候,相當於在他的身上傾注了你生命的一段--哪管最終的結果如何,反正,那個人那件事都成了你生命中的一部分,不管最後你喜歡還是不喜歡。每個人的時間都是有限的。所以最終,"真正的好朋友"誰都只有幾個而已。

這實在是一個大到寫兩本書都可以的話題。以下是我的幾個簡單的,但實踐起來並不是那麼容易的建議:

*專心做可以提升自己的事情;學習並擁有更多更好的技能;成為一個值得交往的人;
*學會獨善其身,以不給他人製造麻煩為美德;用你的獨立贏得尊重;
*除非有特殊原因,應該儘量回避那些連在物質生活上都不能獨善其身的人;那些精神生
活上都不能獨善其身的,就更應該回避了--儘管甄別起來比較困難;
*真正關心一個朋友的意思是說,你情願在他身上花費甚至浪費更多的時間;
*記住,一個人的幸福程度,往往取決於他多大程度上可以脫離對外部世界的依附。

[vim]格式化文件

如何使用vim格式化文件 格式化全文: gg=G

2011年8月8日 星期一

[mac]類似apt-get 的軟體

在ubunut 中,如果要取得檔案並且安裝,我們會使用apt-get install的指令

Mac是BSD base.應該可以有類似功能吧:D
找了一下,找到MacPort 這個軟體
官方網站:http://www.macports.org/
教學:http://www.macports.org/install.php
http://momotata.com/blog/?p=60
http://www.24m.org/wordpress/?p=23

最後還要跟Server Sync
sudo port -v selfupdate

安裝完之後,測試一下,It's work!

2011年8月7日 星期日

[Mac]備份我Mac的.bash_profile

色碼控制
http://bbs3.nsysu.edu.tw/txtVersion/treasure/mis93tech/M.1002334522.A/M.1002337167.C.html

#enables color in the terminal bash shell

export CLICOLOR=1

#sets up the color scheme for list

export LSCOLORS=ExFxCxDxBxegedabagacad

#function EXT_COLOR () { echo -ne "\033[38;5;$1m"; }

#export LS_COLORS='di=38;5;108:fi=00:*svn-commit.tmp=31:ln=38;5;116:ex=38;5;186'

#sets up the prompt color (currently a green similar to linux terminal)

#export PS1='\[33[01;33m\]\u\[33[0m\]@\h\[33[00m\]:\[33[01;34m\]\w\[33[01;32m\]$\[33[0m\]\$'
#export PS1='\[33[01;32m\]\u@\h\[33[00m\]:\[33[01;36m\]\w\[33[00m\]\$'
#export PS1='`EXT_COLOR 187`\u@\h`EXT_COLOR 174` \w \$\[\033[00m\] > '
export PS1="\e[1;32m\u@\h\W$ \e[m"
#enables color for iTerm

export TERM=xterm-color

#sets up proper alias commands when called

alias ls='ls -vG'

[Mac]第一次下載source - wget

第一次自己下載source code 且自行編譯,紀錄一下歷程

OS:mac os
file: http://ftp.gnu.org/gnu/wget/wget-latest.tar.gz or http://ftp.gnu.org/pub/gnu/wget/wget-1.9.1.tar.gz

1)tar xzf wget-1.9.1.tar.gz
2)cd wget-1.9.1
3)./configure
4)make
5)sudo make install

完成

測試指令

wget

wget: missing URL

2011年4月10日 星期日

MSSQL 2008 restart issue.

If you install mssql 2008 , system keep asking restart cpmputer.
you can try :
You can open Regedit, and modify this key"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager" and delete any value in "PendingFileRenameOperations"

2011年3月8日 星期二

SQL server management 安裝

今天在安裝SQL server management 2008 時,安裝到一半顯示失敗。

查一下原因,是因為要先裝vs2008 sp1。

安裝玩sp1之後,在安裝SQL server management 200

Done.搞定收工。

2011年3月4日 星期五

85

[perl] ???

#!/usr/bin/perl
my @array;
my @array=qw{
/abc
/def
/ghi
/qqq
};




my @array2=("aa","bb","cca","dd");

#($array[0],$array2[0])=($array2[0],$array[0]);
#(@array,@array2)=(@array2,@array);


for($i=0;$i<=$#array;$i++)
{
        ($array[$i],$array2[$i])=($array2[$i],$array[$i]);
        print "array[$i]=$array[$i]  ; array2=[$i]=$array2[$i]  \n"
        
}
@testsrc=undef;
pop(@testsrc);
push @testsrc,@array;
print "@testsrc\n";

print "=========\n";

shift @testsrc;
print "@testsrc\n";
unshift @testsrc,xxx;
print "@testsrc\n";

@a=qw[aaa bbb ccc];
@a=reverse @a;
foreach (@a)
{
        print "this is $_\n";
}
print "=========\n";
@b=qw[a c d b e l z k i u q a x];
@b=sort @b;
foreach (@b)
{
        print "this is $_\n";
}

#chomp(@string=<STDIN>);
#print "@@@@@@@@@@@@@@@@@@\n";

use 5.010;
#print "@string[0]\n";
sub callme
{
        state $s=0;
        $s+=$_[0];
        my $a=@_;
        print "call me function test $s\n"
}
print &callme(111,"222",333)."\n";
print &callme(111,"222",333)."\n";
print &callme(999,"222",333)."\n";






2011年3月3日 星期四

[詩][非誠勿擾2] 見與不見

你見,或者不見我

我就在那裏

不悲不喜

你念,或者不念我

情就在那裏

不來不去

你愛,或者不愛我

愛就在那裏

不增不減

你跟,或者不跟我

我的手就在你手裏

不捨不棄

來我的懷裏

或者

讓我住進你的心裏

默然 相愛

寂靜 歡喜


You meet me, or not meet me

I'm there

no sorrow or happy

You miss me, or not miss me,

the memory is there,

not coming, not going

You love me, or not love me,

love is there,

can't be added, can't be ended

You be with me, or you leave me,

I lace my hand in yours,

never be aparted

Rest in my arms

or

let me go into your mind,

in silence, and in love,

so quiet, and so fascinating

2011年3月1日 星期二

[linux]make kernel part1

呼,今天考完中山,這禮拜要繼續衝。

紀錄一下kernel 編譯結果

環境:Ubuntu 10.04 LTS
NB:HP Presorio V3000

第一次build linux kerenl,編譯完kernel之後遇到重新開機卻無法順利開機問題。

build steps如下:
1.下載linux-2.6.37.2.tar.bz2
2.cd linux-source
3.cp /boot/config-2.6.32-28-generic .config
4.make clean
5.sudo make menuconfig
6.Load .config file , exit and saved.
7.make-kpkg --revision 0.0.1 --initrd kernel_image kernel_headers
8.build done.
9.dpkg -i linux-headers-2.6.37.2_0.0.1_amd64.deb
10.dpkg -i linux-image-2.6.37.2_0.0.1_amd64.deb

以上,build 完之後,有正常產生headers 及image,然後下完指令dpkg -i,reboot 電腦,選擇Ubuntu,Linux 2.6.37.2 卻無法正常開啟。
顯示的msg如下:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)



後來經過前輩指導,在ubuntu 10.04以後的版本,在最後還要多一個步驟建立 initrd的image檔

cd /boot
sudo mkinitramfs -k -o initrd.img-2.6.37.2_0.0.1_amd64 2.6.37.2_0.0.1_amd64
sudo update-grub2

ref http://www.question-defense.com/2010/09/26/how-to-recompile-your-ubuntu-10-10-kernel-for-patching-or-to-add-support-for-a-specific-device


Update 一下資訊:

1.下載linux-2.6.37.2.tar.bz2
2.cd linux-source
3.cp /boot/config-2.6.32-28-generic .config
4.make clean
5.sudo make menuconfig
6.Load .config file , exit and saved.
7.make-kpkg --revision 0.0.1 --initrd kernel_image kernel_headers
8.build done.
9.dpkg -i linux-headers-2.6.37.2_0.0.1_amd64.deb
10.dpkg -i linux-image-2.6.37.2_0.0.1_amd64.deb
***11.sudo update-initramfs -c -k 2.6.37.2
12.sudo update-grub
13.reboot

2011年2月25日 星期五

[linux][C/C++]input and output part1

//2011/02/25 point day8
//create by lichain
#include <iostream>
using namespace std;
 
int main(int argc, char *argv[])
{
        const int bufferSize=4;
        char buffer[bufferSize +1];
        char word[bufferSize +1];
        int wordOffset=0;
        
        cout << "Enter a string: " ;
        //cin.getline(buffer,5);
        cin >> word;
        
        cout << "word is " << word << "\n";
                        
        return 0;
        

}

[linux][C/C++]Command_line argument

//2011/02/25 point day8
//create by lichain
#include <iostream>
using namespace std;
 
int main(int argc, char *argv[])
{

        cout << "argument count is " << argc << "\n";
        
        for(int i = 0; i < argc; i++) {
                char *arg = argv[i];
                cout << "arg[" << i  <<"] is " << argv[i] << "\n";
                
            /*switch(arg[0]) { 
                case '-': 
                    // 處理參數,設定執行選項,例如-o、-p、-r等等 
                default: */
                    // 執行對應功能 
            }         
        return 0;
}

[linux][day 8][Pointer]C++

//2011/02/25 point day8
//create by lichain
#include <iostream>
 using namespace std;
 
int main(void)
{
        int a = 12;
        int b = 24;
        cout << "===================================\n";
        cout << "variable a's value is " << a << "\n";
        cout << "variable a's address is " << &a << "\n";
        cout << "variable *&a is " << *&a << "\n";
        cout << "===================================\n";
        cout << "variable b's value is " << b << "\n";
        cout << "variable b's address is " << &b << "\n";
        cout << "variable *&b is " << *&b << "\n";
        cout << "===================================\n\n";
        

        unsigned short int howOld =27;
        unsigned short int *pAge=NULL;
        pAge=&howOld;
        cout << "howOld is " << howOld << "\n";
        //cout << "*howOld is " << *howOld << "\n";
        cout << "&howOld is " << &howOld << "\n";        
        
        cout << "pAge is " << pAge << "\n";
        cout << "*pAge is " << *pAge << "\n";
        cout << "&pAge is " << &pAge << "\n";
        
        cout << "===================================\n";
        
        *pAge=100;        
        
        cout << "howOld is " << howOld << "\n";
        //cout << "*howOld is " << *howOld << "\n";
        cout << "&howOld is " << &howOld << "\n";        
        
        cout << "pAge is " << pAge << "\n";
        cout << "*pAge is " << *pAge << "\n";
        cout << "&pAge is " << &pAge << "\n";
        
        return 0;
}

2011年2月24日 星期四

[perl]References(Pointer)[1]

#!/usr/bin/perl
#2011/02/24
#References(Pointer)
$mytest1="abc1";
$mytest2="abc2";
print "$mytest1\n";
print "$mytest2\n";
print \$mytest1."\n";
print \$mytest2."\n";

[perl]Hash Array(Associative Array)

#!/usr/bin/perl
#2011/02/24
#Hash Array(Associative Array):
#ref http://ind.ntou.edu.tw/~dada/cgi/Perlsynx.htm#hash
# 相關陣列是以 % 符號開頭的。
#my %hash;

# => 這個符號是Perl5新增的,是為了相關陣列量身定做的,
# 因為索引和元素值都是純量,若使用 => 這個符號,
# (索引=>元素值) 兩兩對應,就不容易發生失誤。
#my %hash=("i1"=>"aaa","i2"=>"bbb","i3"=>"ccc");

# 上面這行的效果和下面這行是一樣的。
#my %hash=("i1","aaa","i2","bbb","i3","ccc");

# 下面是存取每個元素的方法,注意是用大括號把索引括起來哦。
# 習慣上索引值用單引號、元素值用雙引號括起來。
# $hash{'i1'}="aaa"; $hash{'i2'}="bbb"; $hash{'i3'}="ccc";
my %hash=("i1"=>"aaa","i2"=>"bbb","i3"=>"ccc");

foreach $key (sort keys %hash){
        print "$hash{$key}\n";
}
#foreach $value (values %hash)
#while(($key,$value)=each %has

[perl]Scalar Array

#!/usr/bin/perl
$i=0;
$array[0]="a"; $array[1]="b"; $array[2]="c"; $array[3]="d";
while ($i<=$#array){
        print "i=$i  array= $array[$i]\n";
        $i++;
}

[Shell]The file exist or not exist.

#!/bin/bash
#2011/02/24
read -p "Input a filename : " filename
test -e ./$filename && echo "exist" || echo "Not exist"

2011年2月23日 星期三

好用的blog code view

ref http://formatmysourcecode.blogspot.com/

[perl]output pattern repeat by input number.

#!/usr/bin/env perl
#input a pattern adn a number
#output pattern repeat by input number.
$shell="clear";
print `$shell`;
print "===============================================\n";
print "2.11[5])\nPlease a patten and anumber.\n";
print "pattern string:";
$pattern=<STDIN>;
print "repeat num:";
$repeat=<STDIN>;
print "output string = \n".$pattern x $repeat ;
print "===============================================\n";

[perl]return num1*num2

#!/usr/bin/env perl
#input two number
#output num1*num2
$shell="clear";
print `$shell`;
print "===============================================\n";
print "2.11[4])\nPlease enter two number.\n";
print "num1:";
$num1=<STDIN>;
print "num2:";
$num2=<STDIN>;
print "output value = num1*num2 = ".$num1*$num2 ."\n";
print "===============================================\n";

[perl]return correct value of Circumfrence of a circle.

#!/usr/bin/env perl
#input radius
#if radius>=0 then return correct value of Circumfrence of a circle.
#else return 0
print "2.11[1])\nPlease enter radius:";
$radius=<STDIN>;
if($radius >= 0){
        $out=$radius *2*3.141592654;
        print "Circumfrence of a circle is:$out\n";
}
else{
        print "Error! return value = 0\n";
}

[perl]Circumfrence of a circle

#!/usr/bin/env perl
#input radius
#output Circumfrence of a circle
print "2.11[1])\nPlease enter radius:";
$radius=<STDIN>;
if($radius >= 0){
        $out=$radius *2*3.141592654;
        print "Circumfrence of a circle is:$out\n";
}
else{
        print "Please enter postive real number.";
}

2011年2月21日 星期一

[mediawiki]Setup Done

[linux][postgres]


postgres@redwing-nb:/$ psql
psql (8.4.7)
Type "help" for help.

postgres=# \du
            List of roles
 Role name | Attributes  | Member of
-----------+-------------+-----------
 postgres  | Superuser   | {}
           : Create role  
           : Create DB    

postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'youepassword';

ALTER ROLE




2011年2月16日 星期三

2011年2月13日 星期日

李開復的10個人生啟發


李開復的10個人生啟發

資料來源:http://jackandroid.javaeye.com/blog/494270




一、自信不失謙虛,謙虛不失自信;

二、興趣就是天賦,天賦就是興趣;

三、思考比傳道更重要,觀點比解惑更重要;

四、我不同意你,但是我支持你;

五、挫折不是懲罰,而是學習的機會;

六、創新不重要,有用的創新才重要;

七、用勇氣改變可以改變的事情,用胸懷接受不能接受的事情,用智慧分辨兩者的不同;

八、求知若飢,虛心若愚;

九、追隨你的心,用它引領你的一生,其他的一切都是次要的;

十、你的價值不是你擁有了多少,而是你留下多少.

2011年2月12日 星期六

夢想

我會一步一步,建築自己的夢想。

漂鳥集- 泰戈爾


漂鳥集:

若你因錯過太陽而流淚,
你也將錯過星辰。

向前走 
別只為了占有而駐足摘花。
因為一路上花兒自會為你綻放。

小草你的步履雖小 
卻在足下擁有整片大地。 

將鳥的羽翼鑲上黃金 
牠便再也無法翱翔於天際。 




Dans mes voyages, j'ai rencontré un homme timide en Inde, at-il dit,
J'étais errant ... m'a aussi dit qu'il aimait le poète indien Shengtaigeer l'[oiseaux dérive set] ...
Mon coeur a été surpris!
Parce que, Tagore est né en 1861 recueil de poèmes est un de mes préférés, et, dans certains endroits, se chevauchent ...
Alors, je lui ai demandé de me traduire, les oiseaux ensemble de la dérive de l'hindi ...
Après un certain temps, je Yaran, il a été descendants collatéraux de Tagore et universités de renom à Londres et Shakespeare astronomie majeur.
Maintenant, je partage ce poème chaque ami ... ...
 


Wandervogel Set ---
Oriental poète Rabindranath Tagore
 
Si vous manquez le soleil et les larmes,
Vous aurez également manquer les étoiles.

Forward,
Ne vous contentez pas s'arrêter et cueillir des fleurs pour l'occupation.
Parce que vous le long chemin de fleurs la fleur du Conseil.

Grass, votre démarche est faible,
Mais en une seule étape avec la pièce entière de la terre.

L'oiseau aux ailes d'or bordée
Il ne sera plus voler dans le ciel.

[生活語錄2]你想要成為怎樣的人?


你想要成為怎樣的人?

   「如果討人喜歡與受人尊敬無法兩全,我寧願受人尊敬。」
這句話是已故的法務部長,前宜蘭縣長陳定南所說的一句話。

(關於陳定南的事蹟可以看一看多年前他與王永慶的辯論
二十年後的今天,也證實了陳定南的遠見
王永慶.陳定南辯六輕
http://www.youtube.com/watch?v=jOePb3o9pqk)

    如果一個人無法討好所有人,那他要做甚麼樣的選擇?也許我們都像《黑暗騎士》
裡的蝙蝠俠一樣,有著「痛恨自己被討厭」的缺陷,但後來明瞭更重要的價值後,
即便被誤解,即便被冷漠、也懂得靜靜地接受,因為已經找到自己想守護的價值了。
很多事情,很多時候,無法馬上被人懂,甚至無法討人喜歡,但就像陳定南的選擇一樣
他選擇了令人尊敬,他知道自己要為什麼價值而獻身。


from ptt skykissx

[生活語錄1]想成為什麼樣的人


除了拉長時序來俯瞰自己外,另一個重新思考現在的困境的方法就是凝視死亡。
Steve Jobs在史丹佛的演講裡,提到了得了癌症對他人生的啟發,也因為那一次
死裡逃生的經驗讓他體會到:

你們的時間有限,所以不要浪費時間活在別人的生活裡。不要被信條所惑-盲從信條
就是活在別人思考結果裡。不要讓別人的意見淹沒了你內在的心聲。最重要的,
擁有跟隨內心與直覺的勇氣,你的內心與直覺多少已經知道你真正想要成為什麼樣的人。
任何其他事物都是次要的。


from ptt skykissx

2011年2月11日 星期五

[ubuntu linux][apache2 & php install and setting]

1. apt-get install apache2
2.apt-get install php5

需要掛載module to mods-enabled

指令:a2enmod <module name>
ex:a2enmod userdir

心定

心定。

泰戈爾 《漂鳥集》


泰戈爾 《漂鳥集》

Do  not  linger  to  gather  flowers  to  keep  them,
but  walk  on ,
for  flowers  will  keep  themselves  blooming   all  your  way.
向前走,
別只為了占有而駐足摘花,
因為,一路上花兒 自會為你綻放。

[linux][vim]

2011年2月8日 星期二

[學習linux kernel][part1][開機]


(零)
*BIOS就是在開機的時候,電腦系統會主動執行的第一個程式。
接下來BIOS會去分析電腦裡面有哪些儲存設備,我們以硬碟為例,BIOS會依據使用者的設定去取得能夠開機的硬碟, 並且到該硬碟裡面去讀取第一個磁區的MBR位置。 MBR這個僅有446 bytes的硬碟容量裡面會放置最基本的開機管理程式, 此時BIOS就功成圓滿,而接下來就是MBR內的開機管理程式的工作了。

簡單的說,整個開機流程到作業系統之前的動作應該是這樣的:

1.BIOS:開機主動執行的韌體,會認識第一個可開機的裝置;
2.MBR:第一個可開機裝置的第一個磁區內的主要開機記錄區塊,內含開機管理程式;
3.開機管理程式(boot loader):一支可讀取核心檔案來執行的軟體;
4.核心檔案:開始作業系統的功能...

(一)開機流程
流程彙整如下:
1.載入 BIOS 的硬體資訊與進行自我測試,並依據設定取得第一個可開機的裝置。
2.讀取並執行第一個開機裝置內 MBR 的 boot Loader (亦即是 grub, spfdisk 等程式)。
3.依據 boot loader 的設定載入 Kernel ,Kernel 會開始偵測硬體與載入驅動程式。
4.在硬體驅動成功後,Kernel 會主動呼叫 init 程式,而 init 會取得 run-level 資訊。
5.init 執行 /etc/rc.d/rc.sysinit 檔案來準備軟體執行的作業環境 (如網路、時區等)。
6.init 執行 run-level 的各個服務之啟動 (script 方式)。
7.init 執行 /etc/rc.d/rc.local 檔案。
8.init 執行終端機模擬程式 mingetty 來啟動 login 程式,最後就等待使用者登入。

(二)開機管理程式(Boot Loader)
boot loader 主要的功能如下:
1.提供選單:使用者可以選擇不同的開機項目,這也是多重開機的重要功能!
2.載入核心檔案:直接指向可開機的程式區段來開始作業系統;
3.轉交其他 loader:將開機管理功能轉交給其他 loader 負責(表示你的電腦系統裡面可能具有兩個以上的開機管理程式呢!)

2011年1月20日 星期四

今天

    明天,會一直到不了。
    我寧可做人類中有夢想和有完成夢想的願望的最渺小的人,而不願做一個最偉大的無夢想無願望的人。

2011年1月8日 星期六

[攝影]2010EPSON 百萬尊榮賞得獎名單公布

老實說,金銀兩名,我不懂他在說什麼!?

我比較喜歡從銅獎之後的作品,有比較寫實的感覺。

前面兩名感覺有點抽象。

第一名似乎是用"疊圖"的手法拍出來的。

http://w3.epson.com.tw/epson/event/2010-contest/index.html#/winner