2009/11/25

Windows 軟體大更新

  好像快一個月以上沒使用Windows XP,今天想到它太久沒更新也不行,終於暫時讓我的Ubuntu 9.10休息一下,拿出 XP 硬碟接上電腦關機,沒想到連上網後有一堆軟體要更新:

Microsoft Update, iTunes, Java, FireFox , AntiVirus, Google Web Browser ..... 天啊 !

  最幹的事發生了! Microsoft Update 失敗 ! 我可是買正版的吔 ! 這是什麼鬼問題 !?#

  另一件也很扯的事,Google Web Browser 版本編號竟然直接從 3.0.x 跳到 4.0.x . 真的有這麼大的改進嗎 ?



2009/11/24

Fedora 12 使用心得

  CentOS 雖然是企業級作業系統,但拿來當桌面環境實在太難用了,許多軟體都很老舊或是沒有.對於個人想要用來當 embedded 開發環境且同時當桌面環境來說無法滿足需求.最後只好找來Fedora 12 , 以下是兩天來的試用心得:

易用性(User Friendly):
  這方面還是差Ubuntu 很多,不管是軟體安裝或上網設定都是不夠簡單易用.受限於版權問題,有些 codec 仍然要自行下載安裝,這與 Ubuntu 沒什麼兩樣.ADSL 撥接上網是個人這幾年來用過最難設定的套件. 氣到快罵人!
  使用非root帳號安裝軟體常要輸入兩次root密碼,真是笨的可以.

效能(Performance):
  nVidia 顯示卡驅動程式效能太差,比不上原廠的驅動程式.其它方面倒是沒什麼差別.使用EXT4檔案系統就是比EXT2的 CentOS 快多了.但原廠驅動程式在 Fedora 12 上竟然無法正常編譯及安裝成功. 使用其它網路上人家包好的 rpm 檔也無法正常使用. 只好繼續使用內建的driver .
  過了幾天終於找到安裝原廠nVidia 顯示卡驅動程式的方法.但2009/12/04更新了一堆軟體之重開機後又無法啟動 X Server. 只好重新執行 sh NVIDIA*.run 再 build 一次kernel module.

套件管理:
  這方面和Ubuntu比起來還是不夠好用,特別是在新增軟體方面.如果是使用圖形介面,沒有詳細列出軟體會安裝到那些目錄及會安裝那些檔案的清單.

Bug:
  和 Ubuntu 一樣, Bash 預到使用 source command 時會發生找不到檔案的問題,明明已經使用絕對路徑還是有問題.這個問題在 CentOS 5.4 並不會發生.

建議:
  如果是第一次或是單純想體驗Linux 桌面環境的人,不建議使用 Fedora 12,個人認為首選還是 Ubuntu .












2009/11/12

Opera 10.10beta 還是沒有解決中文字型問題

  剛開啟Ubuntu 9.10,使用更新管理員,今天有 FireFox 3.5 大更新,等更新的過程中改用 Opera 10.10beta來上網.裝好後有一陣子沒用了.平常使用的各種網站都試了一遍,沒有發現什麼問題,唯獨中文字型真的是哭笑不得.大小不一,有的一排字中突然有一個字變大或變粗體,或是明顯變換,雖然不致於造成無法閱讀,但這問題已存在太久了.真是另人搖頭. 

  問題原因可能是 Ubuntu 預設中文字型問題,最後強制將字型設成微軟正黑體就解決了!

2009/11/11

Java 的浮點運算誤差

  double n = 73500.0; double result = n * 2.0 / 100.0 / 360.0 * 30.0; result = 122.49999999999; 使用 Excel, Python , gcc C 算出來都是 122.5 可惱啊 ! 雖然誤差非常小, 但遇到小數點第一位四捨五入, 卻會變成 122. 而不是 123.

浮點數型態變數只適用工程及科學計算,若是要用在商業計算上這點真的要小心。這問題也不是只有Java 程式語言才有,許多程式語言都有這問題,自己在過用上要小心。Java 可以使用 java.math.BigDecimal 來解決。

2009/11/09

Linux 開機管理程式grub會被USB隨身碟影響

  最近因為要學習 embedded linux 開發,不得已安裝 CentOS ,所以當想用回 Ubuntu 9.10時,只好關機再從另一個硬碟開機。今天發現 Ubuntu 9.10無法開機了,我的天!還好之前有遇到類似的情形,只好將USB隨身碟先拔掉。再開機就正常了,可能是自己有在BIOS 設定可以用USB開機,才會有此種情形。提供給大家參考!


2009/11/01

boa web server porting問題

  今天在練習將 boa 這個 web server 編譯成 arm 平台時發生以下問題:

make 時:
[root@localhost src]# make
arm-linux-gcc -g -O2 -pipe -Wall -I. -c -o util.o util.c
util.c:100:1: pasting "t" and "->" does not give a valid preprocessing token
make: *** [util.o] Error 1
找到 util.c 的第100行程式碼:
time_offset = TIMEZONE_OFFSET(t);

改成 : time_offset = 0;
重新 make 就可以了。為什麼要這樣改,Linux 的 time_t 中沒有 tm_gmtoff 這個 field. 而 compat.h 中的定義卻是這樣寫的:

#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff