2011年7月18日 星期一

台中都會公園一遊

我還是執著於攝影~




















扭曲的翅膀(Twisted Wing) - 書評

我說真的,這本說讓我驚悚了一晚。

這真是驚悚小說的傑作之一,茹絲.紐曼(Ruth Newman)甫在她2007年於推出的《扭曲的翅膀》(Twisted Wing)後即獲得Long Barn小說新人獎。故事起源於英國劍橋大學的艾瑞爾學院中,3名女大學生慘遭殺害,手段十分凶殘,而在第3起命案中旁躺著一位全身沾滿血的女生。蜷曲躺在血泊中,不發一語。爾後丹尼森醫生在治療過程中發現到事情的析竅,原來,這一切不是想像中的那麼單純...


圖片來源:博客來網路書店
全部共359頁,剛開始我看的時候還覺得沒什麼,因為筆鋒略顯平淡,每個人的語氣都有點雷同。紐曼在行文間穿插不少英國文化用語,若是英國人讀起來才會比較有味道吧。然而翻譯卻把每節的名詞翻譯放到最後面,讓我讀時還要往後翻,少了那個一點趣味。整體而言,作者進入劍橋大學的國王學院主修心理學及犯罪學,會想出這麼曲折迷離的小說也不令人意外。


剛刊本書時會不容易抓到時間點。本書主角的女大學生奧莉薇亞及醫生丹尼森的對話一一引出大學生的生活,先有對話再有大學生活介紹,反之亦然。透過本書也可依稀了解大學生的花樣生活:瘋狂喝酒、泡女生還有炒飯等等。總之,兇手手段幾乎變態,他/她深藏不漏,緩慢卻計畫周詳地瘋狂殺人。


我覺得作者由她的心理學背景寫Twisted Wing很有助益,書中不時透露丹尼森醫生對每個人肢體語言的看法,在催眠奧莉薇亞時也寫得如此生動,最後的轉折點也夠刺激。你會一看再看,想了解到事情的真相...

2011年7月13日 星期三

到底要不要JB?Ans:還是不要JB好了...

2011年2月,我第一次越獄,之後不到2週就Restore回去4.0。

2011年7月13日,我第二次JB,花了好幾個小時,用redsn0w、sn0wbreeze來JB,後來有成功,不過我進Cydia不到20分鐘後我就想Restore了。

為何我覺得我不需要JB?老實說,我JB的動機是要讓我的iPhone 3G有Bluetooth功能,但是當我上Cydia找到一款藍芽傳輸軟體後,我覺得我真的沒必要為了藍芽去買一套9.99美元的東東。對每個人來說,JB有好有壞,對我應該是弊大於益吧~

這次JB的麻煩處:
  1. 我的iPhone 3G 數據機韌體是05.14.05,剛開始JB時用redsn0w 0.9.8b1搭4.1的韌體,後來遇到2個問題:
    • Cydia進不去
    • JB後,"電話"選項不見了!!!
    • 捲動螢幕時會有殘影
  2. 然後我就用sn0wbreeze來越獄,搭配4.2.1韌體,結果他整個把我iPhone內的東西清空,不像redsn0w還會保留你原先的東西。之後,我遇到更悲慘的事:無法開通。後來我去找ultrasn0w來幫忙,結果發現根本行不通,因為ultrasn0w不支援我的數據機韌體(一般支援06.15.00)。既然手機不能打電話,那不就像是電腦不能上網一樣嗎?所以我只好選擇不要JB,使用一般的IPSW(4.2.1)。
當我在JB時,我發現真的需要JB的人才去JB比較好,因為你知道你還缺什麼。其實在App Store上就有十幾萬套你用不完的程式了,一般來說JB是不太需要的。JB很花時間(要進入DFU Mode,而且花在重開及上的時間就不知道有多少了),而且最好拿iPhone 3GS、4去JB較好,她們硬體比較強,不會花太多時間。另外,Cydia愈來愈商業化了,很多軟體都要錢,連Themes也要錢,真是~

不過最後我還是會小小JB一下,利用Safari連上JailBreak Me的網站就能下載Cydia,不過這連半JB都不如,我看只能當成玩樂性質吧。

2011年7月11日 星期一

C資料轉換(Type Transform)

有關C++中的各種資料轉換我一直很苦惱,書上也不說,只好自己整理。其中,要先了解各Data Type的值的範圍,計算方式是:

2^(所占的位元組*8)

如求signed short(signed代表接受正負數)值的範圍:(short占2位元組)

-2^[(2*8)/2] ~ 2^[(2*8)/2]-1 = -32768 ~ 32767

接下來,各種Data Type轉換前要先注意:

  1. 轉換的資料型別大小是否會讓數值遺失
  2. 轉換後要顯示幾位(如果是float 或是 double型別的話)
  3. 要隱式轉換還是顯式轉換
  4. 轉換時是否會有四捨五入 或是 無條件捨去\進位 的狀況
現在最麻煩的東西來了,在C++中有整數型及浮點型,兩者互轉也要注意,現在就針對以下四點做說明
  1. 整數轉浮點
  2. 整數轉整數
  3. 浮點轉浮點
  4. 浮點轉整數
整數轉浮點中,因為像float等精準度夠高(-10^38 ~ 10^38-1),int 或是 char轉過去是沒有問題的,以下僅作二範例:

int a = 4563;
float f = (float)a;   //顯式轉換,明確告訴編譯器要將a轉成float型別
printf("%f\n",f);

結果:   4563.000000
要注意,轉成float 或是 double要注意尾巴會出現6個0(因為float和double的精準度是含小數點以下共7位)

這次用隱式轉換:

int a = 4563;  
printf("%f\n",a);   //隱式轉換,偷偷地告訴編譯器要將a轉成float型別

結果:  0.000000
在顯示/隱式轉換是會有差別的,通常顯式轉換較不容易出錯

而在整數轉整數中,要注意的僅有各型別的位元組大小,如int是4 bytes,char 是1bytes,轉換時須記得「小轉大」就行了,但如果變成大轉小呢?這時要很小心,如把int轉成char:

int a = 4563;
char c = (char)a;
printf("%d\n",c);

結果:  -45
因為char僅有1位元組(-128 ~ 127)所以它的值會從-128過了127再繞一直到-45。

浮點轉浮點其實跟整數轉整數大同小異,要注意的部分就是「小轉大」、「大轉小」的部分就是了。

最後最難的莫過於浮點轉整數了,我被他搞了很久才知道要如何對付他:

float f = 3.6F;   //後面標示"F"代表它是float資料型別
int i = (int)f;
printf("%d\n",i);

結果:  3
在這裡,C++採用"無條件捨去",這點要特別注意

最後,如果我先把int轉成float再轉回int呢?這時也要小心,因為float只容許小數以下7位,所以若int的值太大就容易出錯:

int k = 99999998;
float f = (float)k;
int j = (int)f;
printf("%d\n", j);

結果:  10000000
因為當k轉成float會變成9.9999998e+007,但是float小數點後的位數只能容納6位(7-小數點 = 6),所以值會變成1.000000e+008,再轉成int就變成10^8了。所以在資料轉換時一定要特別小心才不出錯喔!


2011年7月9日 星期六

我不要一個不像樣的教育!

有什麼人這一生在台灣說他受過完整的教育?看看嚴長壽先生寫的《教育應該不一樣》吧。台灣的教育從很久以前就一直出現問題,從底層的小學至高等的研究所等都潛藏不少問題:錯誤的教育方式、師資素質、學生的熱情不足。真的,讀完這本書後,會感慨為何我們已失去「真實的」教育理念這麼久還渾然不知。

嚴先生以他當美國運通總經理等人生歷程來闡明整體教育的問題環節在哪,並透過不同角度(學生、老師、家長、政治家)來說明這不願面對的真相。其中嚴先生特別指出年輕人缺少「對生命的熱情」,就像之前蔡英文在2006年於成大的《實力,就是未來》的演講中提到:如果你沒有了熱情,你可能喪失將來再往前走的動力。


我們到底缺乏什麼?不然不會讓李家同批評不已。很多人嚷著說其實學生不是他想得那樣,但是我們年輕人有什麼有點值得說明呢?我們很潮、很有自我風格、懂網路上很多東西,但是我們到底有沒有嚴先生要的熱情呢?我覺得我們一直活在太容易滿足的時代裡,因此我們都容易覺得這沒什麼,所以,我們缺乏著....或是說,我們根本不想要讓生命有熱情?

連我也一樣....