2009年3月29日 星期日

今天打羽球

今天跟實驗室助理還有一個大四學弟、碩一學弟、老弟一起去助理家附近打羽球。
其實,打的還可以啦~

不過,今天我想說的是,一開始打的還算可以,我比較擅長的是打遠球。
而最後,感覺這樣好像沒有什麼技巧可言,所以,開始練習吊球,也就是打近球。

最後連續輸了兩場,
其實,因為跟女生打,所以,比較沒有用心打,等到最後要追回來時,早就追不回來了~

老弟在旁邊說,既然要打球就要贏球,但是,輸球(贏球)要有風度!
想想是確實是這樣啦,心理還是有一點悔恨啦~

下次要讓人,還是要真的有實力再讓人,若沒有實力還是跟別人硬拼啦,才不會比較後悔~

2009年3月28日 星期六

Four types of network-related information





InformationData fileStructureKeyed lookup functions
Hosts/etc/hostshostentgethostbyaddr, gethostbyname
Networks/etc/networksnetentgetnetbyaddr,getnetbyname
Protocols/etc/protocolsprotoentgetprotobyname,getprotobynumber
Services/etc/servicesserventgetservbyname,getservbyport

DRBL企鵝龍 - 備份linux與windows的免費軟體

在windows下有ghost可以使用
而在linux下本身有dd這一個指令可以使用,但是,dd的缺點是1比1的備份,它原本主要的功能是建立映像檔。
而我猜企鵝龍可以具有壓縮的備份,因此,以後若真的有空,就拿來玩一下吧~
而且,它還可以備份windows哩

參考資料:
企鵝龍
Clonezilla Live對Windows系統的備份與還原
Clonezilla Live - 免安裝的單機版還原系統

2009年3月26日 星期四

重建xp的mbr

學弟的電腦出現一個問題,會出現grub找不到,但是,他只有灌xp啊~
原因就是之前linux的mbr被grub占住了。
我猜有兩個辦法可以解決,第把mbr刪掉(用spfdisk)
第二個是用xp的修覆光碟

進入Recovery Console後,修復MBR的流程如下:

1. 選擇要登入哪一個Windows安裝,一般來說只會有一個選項而已,也就是
"1: C:\WINDOWS",所以就只要輸入1就可以了。
2. 輸入系統管理員的密碼,如果當初沒有設定密碼就直接按下Enter,如果不知道密碼,那就沒有辦法了。
3. 輸入fixmbr,程式會詢問是不是真的要重新建立MBR,反正沒有別的路走了,所以也只能鍵入Y後按下Enter。
4. 輸入exit離開程式並重新開機。

一般來說,就只要進行這些步驟就可以了,但是我的經驗中仍然有碰過別的問題
如果開機的時候出現以下訊息:

下列檔案遺漏或損毀,無法啟動 Windows:
《Windows root》\sytem32\hal.dll.
請重新安裝一份上列檔案的拷貝
那就要再進行額外的動作修復。

基本上的修復流程和之前修復MBR的流程一樣,但是在鍵入"fixmbr"的地方改成鍵入"bootcfg /rebuild",接下來程式會自動掃描各個硬碟分割區,看看到底安裝了幾個系統。找到了想要使用的系統之後按Y將它新增到開機清單,再輸入載入識別元,也就是你想要它顯示的名字,一般來說就是輸入"Windows XP",然後輸入OS載入選項,也就是剛剛掃描結果的選項代號,最後也是輸入exit離開,全部的流程到此結束。

參考資料:
在Windows XP SP2下修復MBR

Socket Options

#include <sys/socket.h>
int getsockopt(int sockfd,int level,int optname,void *optval,socklen_t *optlen);
int setsockopt(int sockfd,int level,int optname,const void *optval,socklen_t optlen);
Both return:0 if OK, -1 on error

主要用來設定socket的一些行為,若想要更深入的使用socket的話,這兩個函數一定要會使用。
而SCTP一共有17種Socket Options
1. SCTP_ADAPTION_LAYER
這一個不是很懂。
2. SCTP_ASSOCINFO
這一個主要有三個目的
(i)去檢索目前某一個存在的association
(ii)去改變目前存在的association的相關參數
(iii)去設定未來所要建立的association的預設參數
會用到的資料結構
struct sctp_assocparams {
sctp_assoc_t sasoc_assoc_id;
uint16_t sasoc_asocmaxrxt;
uint16_t sasoc_number_peer_destinations;
uint32_t sasoc_peer_rwnd;
uint32_t sasoc_local_rwnd;
uint32_t sasoc_cookie_life;
};

3. SCTP_AUTOCLOSE
當idle超過一段時間,則自動切斷連線
4. SCTP_DEFAULT_SEND_PARAM
設定當此association_id要傳送資料給對方時,則要設定哪一個ip為主要的primary ip(因為,SCTP有multi-homing的特性),會用到的資料結構為
struct sctp_sndrcvinfo {
uint16_t sinfo_stream;
uint16_t sinfo_ssn;
uint16_t sinfo_flags;
uint32_t sinfo_ppid;
uint32_t sinfo_context;
uint32_t sinfo_timetolive;
uint32_t sinfo_tsn;
uint32_t sinfo_cumtsn;
sctp_assoc_t sinfo_assoc_id;
};

其中sinfo_flags有以下數值
SCTP_ABORT:Invoke ABORTIVE termination of the association
SCTP_ADD_OVER:Specify that SCTP should override the primary address and use the provided address instead
SCTP_EOF:Invoke graceful termination after the sending of this message
SCTP_UNORDERED:Specify that this message uses the unordered message service
5. SCTP_DISABLE_FRAGMENTS
當要傳送的封包太大時,必需要分割。而預設是有份割的。
若設定預設不分割,當資料太大時,會回傳EMSGSIZE的錯誤訊息
6. SCTP_EVENT
非常重要。
用來設定是否額外傳送資料以外的訊息
struct sctp_event_subscribe {
uint8_t sctp_data_io_event;
uint8_t sctp_association_event;
uint8_t sctp_address_event;
uint8_t sctp_send_failure_event;
uint8_t sctp_peer_error_event;
uint8_t sctp_shutdown_event;
uint8_t sctp_partial_delivery_event;
uint8_t sctp_adaption_layer_event;
};

7. SCTP_GET_PEER_ADDR_INFO
用來讀取對方某一個位址(ip)的資訊
會用到的資料結構為
struct sctp_paddrinfo {
sctp_assoc_t spinfo_assoc_id;
struct sockaddr_storage spinfo_address;
int32_t spinfo_state;
uint32_t spinfo_cwnd;
uint32_t spinfo_srtt;
uint32_t spinfo_rto;
uint32_t spinfo_mtu;
};

spinfo_state:有以下可能數值
SCTP_ACTIVE:Address is active and reachable
SCTP_INACTIVE:Address cannot currently be reached
SCTP_ADDR_UNCONFIRMED:No heartbeat or data has confirmed this address
8. SCTP_I_WANT_MAPPED_V4_ADDR
在傳送給Application前,會把ip4的位址轉換成ipv6的位址(預設是enabled)
9. SCTP_INITMSG
用來設定要傳送INIT message的參數
會用到以下資料結構
struct sctp_initmsg {
uint16_t sinit_num_ostreams;
uint16_t sinit_max_instreams;
uint16_t sinit_max_attempts;
uint16_t sinit_max_init_timeo;
};

10. SCTP_MAXBURST
不太了解
11. SCTP_MAXSEG
設定segment的最大值
12. SCTP_NODELAY
設定SCTP傳送是不DELAY的,預設是關的
13. SCTP_PEER_ADDR_PARAMS
用來取得或是改變association的參數值。
資料結構
struct sctp_paddrparams {
sctp_assoc_t spp_assoc_id;
struct sockaddr_storage spp_address;
uint32_t spp_hbinterval;
uint16_t spp_pathmaxrxt;
};

14. SCTP_PRIMARY_ADDR
用來決定某一個association要送過去的address主要是哪一個
要用到的資料結構
struct sctp_setprim {
sctp_assoc_t ssp_assoc_id;
struct sockaddr_storage ssp_addr;
};

15. SCTP_RTOINFO
設定封包來回的時間
struct sctp_rtoinfo {
sctp_assoc_t srto_assoc_id;
uint32_t srto_initial;
uint32_t srto_max;
uint32_t srto_min;
};

16. SCTP_SET_PEER_PRIMARY_ADDR
請peer設定一個IP Address為其peer的primary address
struct sctp_setpeerprim {
sctp_assoc_t sspp_assoc_id;
struct sockaddr_storage sspp_addr;
};

17. SCTP_STATUS
檢索目前association的情況
struct sctp_status {
sctp_assoc_t sstat_assoc_id;
int32_t sstat_state;
u_int32_t sstat_rwnd;
u_int32_t sstat_unackdata;
u_int32_t sstat_penddata;
u_int32_t sstat_instrms;
u_int32_t sstat_outstrms;
u_int32_t sstat_fragmentation_point;
struct sctp_paddrinfo sstat_primary;
};

2009年3月25日 星期三

60歲後,你最後悔的會是什麼?

60歲後,你最後悔的會是什麼?

比利時一家雜誌,曾對全國60歲以上的老人進行了一次問卷調查,

調查的題目是:你最後悔的是什麼?並列出了十幾項生活中容易後悔的事情,供被調查者選擇。於是,就得出了這樣結果…

一.72% 的人後悔年輕時努力不夠,以至事業無成:
由此我想起一個故事:一個40歲的人被醫師告知罹患了絕症,最多再活三年時間。因此,他為了使自己最後的生命更有意義,擬出一項『三年要做十件事』的工作計劃。
其中包括寫一本書、學一門外語、搞一項發明、辨一座工廠、遊 30 座名山、賞 50 座城市等等,而且,計劃定出後便立即付諸行動。在過了二年零八個月的時候,10 項計劃目標全都完成。

可當他再到醫院復診時,卻發現是醫師當時拿錯了病歷,自己根本沒有患病。
所謂事業,並不是資本主義體制主流價值所界定的財富、名氣與權位,而是忠實地依照自己的志趣、理想與人生觀所付出努力而獲得的成就,此一成就不一定需要來自既有社會機制的公開性肯定,而更需要自我的審視與滿足,就如同『三年要做十件事』的工作計劃一般。

二.有 67% 的人後悔年輕時,錯誤地選擇了職業:
應該說,錯誤不在於選擇了什麼職業,而在於選擇了安穩,或屈從了現實,放棄了志趣、特長與理想。在資本主義體制裡,不論是處於經濟增長階段,或是在當前全球資本主義危機的時代,謀生和追求物質富裕的生活,是絕大多數人們的不二選擇,即便所選擇的職業壓抑了特長、與志趣相違、背離理想,甚至,明知從事該項職業形同剝削壓迫別人權益的共犯,初期難以適應,時間一久也就麻痺無覺,還會為自己的職業「罪惡」振振有辭地辯解!

當然,在台灣,由於從小到大的教育體制都是為資本主義經濟與資本家集團的利潤而服務,而不是為了開發受教育者的生命潛能、引導認識自己的志趣與特長、啟發對理想的堅持與追求,所以,更根本的問題是,人們從來不知自己在資本主義體制所設定極其有限的選擇外,還有更多元、更多樣、更多種的可能性!

三.有 63% 的人後悔對子女教育不夠或方法不當:
因為台灣深受「文憑主義」的宰制,以及依循既有教育體制與社會體制的價值取向,即使年輕一代的父母,對於子女的教育態度仍著重於考試、成績與升學,目的也無非是將來能獲得更好的功名利碌;並且,縱容小孩養成「消費主義」的習性,形塑「物化」的自我本位心態,以成為市場經濟新的購買力來源。這些教育方式,除了複製了自己的價值觀系統給下一代,以使其提早適應馴化於資本主義的統治秩序外,並不能激發子女的生命自主性動力,以邁向實現自我的征途;培育思考獨立性與批判性的公民意識,以積極參與公共事務.......
其實,對子女教育不夠或方法不當的後悔,是反應了對自己過往生命歷程的後
悔!

四.有 58% 的人後悔鍛鍊身體不足:
忘了是誰說過這樣一句話:「60 歲以前想用身體換一切,60 歲以後想用一切換身體。」世界之上,還有什麼東西能比身體健康更寶貴?不過,經由運動以鍜鍊身體是需要花費時間的,在工作繁忙的現代社會,要定期運動談何容易?

五.最有趣的是,只有 11% 的人後悔沒有賺到更多的錢:
11% 這麼低的比例,大既只有實施高度社會福利制度的比利時或歐洲國家才有可能,若在所有人權保障都由個人承擔的台灣,這肯定是排名第一位最後悔的選項!

想像自己已是六十歲吧!若不想後悔,趁現在趕緊重新思考和做出決斷?

--
You got a dream, you gotta protect it. People can't do something themselves,
they wanna tell you that you can't do it. You want something? Go get it.
Period. 如果你有夢想的話,你就得捍衛它,那些自己沒有成才的人會説你也不能成才。
你想要得到什麼的話,就得努力去做,說完了。--當幸福來敲門
--