星期五, 5月 22, 2009

有人說,酒後容易吐真言,是因為腦子不理智了..
我卻說,是因為心軟了..

曾經,就像夢一般,見到、聽到、體會到,卻摸不著、動不了..
所有的一切,只能看著它發生,一點一滴成為過去,無能為力改變什麼

夢不是劇本,是演出。
劇本每次看,所有缺陷都能立即更改。
夢同樣能一看再看,可是第一次演出後,就成為無可抹滅的歷史!!
可以造假,卻消除不了心裡的真象。

一生中,有多少機率做同樣的夢呢?
這個夢很甜很甜,可是那終究還是夢。
兩次,真該滿足了!!

我不會再徬徨,也不會再眷念
這樣停下自己的腳步不值得

這一切一點也不心酸
對我來說,它仍是個甜美的存在
一個絕對忘不了的夢!!

星期二, 5月 19, 2009

神奇的鎖 - mutex

寫 C 的 pthread 時,經常會碰到一個問題:「如果有兩個以上的 thread 同時存取同一變數,該怎麼辦?」。有個很消極的作法是...不管它。

這樣的作法優點是,省事。可是一旦碰上問題,整個系統將因此錯亂。底下我將介紹一種在 multi threading 系統中,很常被使用的作法 - lock


在 pthread.h 中,提供了 pthread_mutex_t 變數型態及其相關 function 。為了解釋上的方便,這裡我把 pthread_mutex_t 看成是一個鎖。

這個鎖的用途是,當你想存取某些資源時,必須先取得這個鎖,然後進行資料處理,最後把鎖放回去。只要你沒拿到這個鎖,就必須不斷地等拿走這個鎖的人將它放回。整個流程如下:



所以,當一個 thread 存取某個(或某些)變數時,必須先呼叫 pthread_mutex_lock 取得該變數(或該群變數)的鎖,才能進行接下來的處理;而處理完之後,也必須呼叫 pthread_mutex_unlock 將鎖放回原位,讓其他需要這個鎖的 thread 也能順利完成工作。

至於一個 multi threading 的系統有幾個鎖,每個鎖分別管理哪些變數(資源),全都由 programmer 自行決定。鎖分得越多,雖然系統的效能會增加,但同時也該更加重視 deadlock 的問題。反之,若一個鎖管理全部的資源,則絕對不會有 deadlock 的問題,但缺點是會降低系統的效能(因為 thread 進行資料處理時,經常只用到一小部分的 global 變數,而一個鎖綁住全部資源就代表,不管 thread 需要存取多少 global 變數,都將拒絕其他 thread 存取它用不到的的變數,直到該 thread 把事情做完為止。)

有時候理論說了一大堆,還是不如實作來得有趣。
也只有下場實作時,才能體會理論的精隨

星期一, 4月 13, 2009

羽球雜感


1、暖身時間還是太長,身體沒暖開,打起球來跟新手沒兩樣,如果能提早暖開,哪怕只是一秒鐘,很多事情將截然不同。早一秒鐘出生,也許命運將完全改觀,也許班傑明只會是個普通人,也許你我的緣份將化為烏有;執行時間快一秒鐘,也許 TLE 再也不是 TLE;司馬懿星落快一秒鐘,也許再也沒有「司馬昭之心」之說;反應快個一秒鐘,也許再也沒有接不到的切球、和擦身而過的殺球。

2、未完結的戰局,28 比 28。好幾次對自己說:「怎麼可以就這樣輸了」;卻也錯過好幾次取得榮耀的時刻!有時候明知道球不會出界,卻還是回過身期待著一聲OUT!有時候明知道平球拿不下這分,卻老是忘了「點球」這項絕技。頭腦往往跟不上身體的反應,也因此,往往當下第一個想法都不是最佳的。大冰過後,總是赫然發覺,快個一秒鐘或慢個一秒鐘才是最好的;切球過後,才發現正中對手下壞,反遭一身撲擊。

唉~真希望打完那場戰局..
只是不願意輸而已!!

星期二, 4月 07, 2009

IP spoofing 轉址攻擊淺見

相關內容請參考阿碼外傳的「大規模網頁綁架轉址:威脅未解除,但專家都猜錯了


這起事件,經查證為利用 IP spoofing 發起的攻擊。攻擊模式如下圖:



以上是粗略的架構圖,介於 user 和 server 之間的 router 是整個網路中某個 router。
attacker 在 router 處進行竊聽,並針對特定封包發起攻擊。

當 attacker 偵測到 user 對某特定 web server 發出 HTTP GET 的請求時,便搶在 web server 回送 web 封包之前,送假封包至 user 端。儘管 web server 送出的封包最終仍會送至 user 端,但因為 user 已經收到所期望封包(某個特定的 sequence number),因此便會忽略掉 web server 送來的「真」封包。

attacker 送來的假封包,包含了另一個網頁的資訊,brower 收到後理所當然會呈現另一個網頁,偽造出 DNS 被入侵使得某網址被轉址的錯誤猜測。

再網頁資訊正確送至 user 端後,attacker 主動發出 FIN 封包,要求 user 結整與 web server 的連線。user 收到此封包後,理所當然會回到 FIN 封包給 web server。由於 web server 沒有送 FIN 封包給 user,因此 web server 收到回也會回送 FIN 封包。但 user 端早已中斷連線,因此 user 並不會對 web server 送出的 FIN 封包做處理,也因此整個攻擊並不會因為額外的封包而受阻。

這樣的攻擊手段可以將網頁轉址至惡意網站,可自動殖入木馬等惡意軟體。甚至在攻擊後期,attacker 嘗試讓 user 感覺不出任何異樣,卻能夠確實轉址並殖入木馬。

另外,這起攻擊的核心在於竊聽 router 上的封包。若 attacker 不能得知 user 與 web server 間來往的封包內容,attacker 便不能在正確的時機傳送正確的「假封包」。

IP spoofing 的攻擊源自 IP 封包的無安全性。這樣的漏洞讓 attacker 有機可乘。但以 TCP/IP 為核心的網路架構難以輕易變動,因此現階段只能憑藉 application 端的防護措施。

星期日, 4月 05, 2009

深層意識

徘徊在奇怪的夢裡,看著、等著,期待下一秒會發生什麼。
每次這樣想著,很快地,指針再度在北方重合。

連續好幾天,都浪費 3、4 個小時看著夢的連續劇。讓我不得不相信,夢就像鴉片,使人上癮。可是,許多放不下的事、解不開的結卻只有在夢中,才能獲得一絲絲緩和。

就算明白有些事怎麼努力也做不到,有些事怎麼做也難以放下,有些事怎麼想也沒有結果。但在夢中,這些瑣事仍一一被喚起。

赫然發覺,不可能逃避自己的心,即使在現實刻意地藏起,但在夢中也會不斷地提起,想忘也忘不了...

但要面對自己的心,太難太難了!現實存在著太多障礙,無論是人際、經濟、時間...等。況且,還未經歷,又怎能肯定那就是心的方向呢?這樣的不確定感,總讓人一再退縮!

我想,還是別花太多時間欣賞夢的連續劇吧!多和人相處、談天心情會曠達許多。
一個人可以想很多很多,可是誰喜歡孤獨呢?
我寧可笑著、陪伴在逗我歡笑的人們身邊!

星期二, 3月 31, 2009

忙碌

這學期的課,已經排得很少很少了!!!
一個禮拜僅僅 14 堂課外加 3 堂旁聽。不算體育課的話,一個禮拜只有 15 堂課
可是,還是好忙好忙!

雙專題的忙碌,最初早有預期,所以並不是不能接受這樣的生活。如果只有專題忙的話,也許現在我還是能像以前那樣逍遙自在,事情做完就是玩 - 玩,玩到天荒地老,如此而已。

有時候真的該好好衡量自己的能力,而不是一味地接二連三接了許多 project。有人跟我說:「你什麼事都想做,結果什麼都做不好」。的確,這只是剛開始,在沒有作業沒有考試的壓力下就忙成這副德行了,那麼即將來臨的網頁設計、校內專題競賽、Compiler 與網路程式設計的程式作業、及期中考,也許真的會忙得一團亂吧?

我很傻,如果我什麼都沒想過,只一股腦地往前衝,那真的很傻!

可是,我還是想給自己一個挑戰,一個機會。我堅信著自己有能力可以完成這些事,哪怕休閒時間沒了?

我不怎麼喜歡別人擔心我,我只想讓大家知道,我很堅強,這點小事不會怎樣的。
所以,我對你說:「如果你想報就報吧!不用擔心我會不會太忙」
所以,我對你說:「你要去打球話我就陪你去,這點感冒不算什麼的」
我不知道這是不是蠍子的個性,但我一直以來都是這樣的。

也許我仍然很任性,像個小孩子一樣
可是當我任性的時候也代表我真的很不喜歡
不喜歡因為忙碌打亂生活的步調
不喜歡為了工作而苛刻要求自己

很希望我所做的每一件事,都是抱著興趣去完成~
所以我從來不會要求自己做到十全十美,因為「完美」這件事對我來說根本不重要。重要的是我從這件事裡面得到了一些成就、一些樂趣,那就夠了!

大致上就是這樣吧..
也許之後會更加忙碌,但我還是希望,壓力不存在於自己身上,每件事都能藉著「樂趣」去完成。
也許不可能,但我仍然只能前進!

螢之光

短短十集的日劇,從二月中看到昨天。
(以下有雷)

有人說這是一部很好笑的日劇,這我不否認;但劇中有太多感人的情節,看著...赫然發覺,眼睛早被淚水所佔據。

曾經這麼說過:「螢之光寫著我的心情」。
我看見了自己 - 那久遠以前生澀的自己。

愛情總是讓人多慮,深怕自己不夠好,也深怕對方不能接受。所以他/她的一舉一動,牽動著時時刻刻的心緒。他/她對你好,便彷彿中了樂透頭獎;他稍微不理睬,便如同跌入萬古深淵。

也害怕哪天,他/她明白你對他/她的心意後,就不再是從前的關係,所以沉默,默默地付出,直到肯定他/她喜歡你了,才勇敢說出那羞澀的話語。

愛情也時常給人向上的意志力,想變好,想和他/她一同努力,所以只要有一方繼續向前,那麼另一方絕不會輕易退縮。可是,只要有一方先退縮了,那麼另一方也會失去努力的勇氣。

手嵨誠,也許他從某方面來說是對的。適時地結束,避免雙方疲憊不堪。可是...小螢還想努力,為什麼他就不能興她並進呢?這也許是一種解決方法,卻是逃避式的解決。如果你還愛著他,那麼為什麼不能體諒她想和你一起努力的心情呢?

如果不能彼此努力、不能互相體諒,那又為何在一起?不正是因為有著長遠的夢想在前方等著,才驅使你們走到這一刻嗎?

一直希望身邊有個人陪著,喜歡那種被依賴著的感覺,但也想要有個人依賴。
可是,我是不是有承受拒絕的勇氣?是不是有面對分手的勇氣?

還有很多想說的,但這些,就留到那天吧!!