Archives

gravatar

memory-based storage notebook

傳言不久會推出沒有硬碟的 notebook,包含 apple macbook/pro。當然用 memory based storage 是有比磁性轉盤的儲存方式多不少好處,像是省電、安靜、體積、速度等等。不過這篇 Flash memory-based Apple Notebook rumor: PCM Rather Than NAND 有提到非 NAND 方式的 memory storage。PCM 就是 Phase Change Memory,看起來有不少項目是比 NAND type 更優。光是速度上,比 NAND 快 500x 的讀寫速度;又更可靠,可抹寫 1 億次。當然硬碟的致命缺陷大都是機械原因,像是壞軌、磁頭 crash、或是伺服馬達掛掉,裡面的資料就岌岌可危。而原本的 NAND/NOR flash type storage,則是會繼續比較在常用在 removal storage。

gravatar

SETI 找到東西了

在 Slashdot 上看到的,SETI Finally Finds Something。看到標題大家應該都會期待,到底是真的假的找到什麼外太空生物之類的。其實不是,是因為 SETI@Home client 會跟 server 回報的機制,讓他們可以追到被偷的 laptop 目前正在使用的 IP,進而縮小可能範圍或地區而追回電腦。
不過的確這也是找外星文明之外的一項附加價值和功能 XD;另外這也告訴小偷先生,有點常識的話,應該避免讓電腦直接接上 Internet,盡量把可能會洩漏 IP 的程式刪掉或砍掉,最好是重灌是吧。

gravatar

nVidia GoForce

Source: New cell phone chip from NVidia,沒錯,我沒寫錯,不是 nVidia GeForce 顯示卡晶片,而是 cell phone chip。nVidia 也加入手機晶片的戰場。晶片功能包含有多媒體和 3D 加速、WiFi、H.264 解碼、相機以及聲音部份的管理。重點是 iPhone 內會使用一顆這樣的 chip。

gravatar

Replace the CPU of Mac Mini

在 HardMac 上刊出的文章,如何更換 Mac Mini 的 CPU,Step by step 的教學。從 Core Solo 到 Core 2 Duo 都可以用,還有 1.5Ghz Core Solo 到 2.33Ghz Core 2 Duo 的效能比較。

gravatar

MacBU 10 週年

Microsoft 的 Mac BU 慶祝 10 週年,在建築物上的 icon 畫。

gravatar

Blogger Custom Domain

今天仔細研究一下 blogger custom domain 怎麼使用,然後就把很久前在 yahoo small business 買的 jclin.org domain 拿來用。所以就直接改成 blog.jclin.org 或是 jclin.org 都可以直接看到 blogspot 的文章。並且原本的 jclin.blogspot.com 還是依然有效。另外趁機也把 template 換一下,從此也可以透過簡單的 layout 編排方式來修改版面。另外 page rank 似乎也沒了,目前首頁上看到的是 0。

gravatar

Choices of Guest PC in Virtual PC

很多網站包含 Microsoft Virtual PC 都推薦很多加速的方法,包含檔案系統使用 FAT32。理論上,FAT32 原理簡單、磁碟上的檔案配置結構也簡單,所以對於 Guest PC 的 OS 來說,這部份的 file system driver 應該會得到最佳的效能,因為一切都很簡單。但是我覺得事實上並非這樣,原因在於真實 PC (很老舊的 CPU 約只有 800Mhz,配上當時很快的 ATA66 主機板)上的 Windows XP,使用 FAT32 所得到的開機速度,跟後來轉換為 NTFS 後的結果,明顯發現 NTFS 的開機速度就是比較快。
其實可以想想看,FAT32 不管是原理或是磁碟配置結構都很簡單,但是對於檔案和內容尋找、儲存並非最好。而且 Virtual PC 裡面的 Guest OS 都是以 Host 的 image 檔案當作磁碟,存取速度並不快,所以即使使用最簡單最省 CPU 運算的 FAT32,但是卻花掉不少時間在 disk access,反而是得到更大的 overhead。因此若能選用 NTFS,實際上 Guest OS 在尋找檔案和讀取內容,都會比 FAT32 來得快。因此下了決心把 Virtual PC 的 Guest PC 的 Windows XP 內的磁碟,轉換成為 NTFS,也的確感覺開機速度變快了。其他類似非使用實體硬碟當作 Guest PC 硬碟對象的,應該也是會有類似結果。
另外使用 Gparted 把 VPC 本來預設的 16GB dynamic size Hard Disk image,重新 resize 到 4GB,然後用 Ghost 把他複製到另外一個 fixed size Hard Disk image 上。在 Ghost 複製過程中,發現 Virtual PC 的磁碟效率其實蠻低的。大概 90 MB/min,換算回每秒大概也才 1.5MB。現在隨便一顆 ATA100 的硬碟實際物理讀取和傳輸速度最少都應該可以 30-40MB/sec 。所以 dynamic size image 和 Virtual PC 裡面硬碟傳輸速度其實蠻低的。
沒有錢買 intel x86 的 mac mini 或是 mac book 來用 boot camp 或是 parallel,只好繼續用 iBook,哈。反正也很少需要啟動 Virtual PC 來開 IE。

gravatar

Paint.NET 3.0

雖然我一直在用 mac, 但在公司的環境下, 還是常常需要用到 windows 上的繪圖軟體. Photoshop, Paint Shop Pro, GIMP 都太肥了又太複雜, 感覺不適合. 偶然之下找到 Paint.NET 覺得還蠻簡單符合需求的. 今天看到 Paint.NET 有 3.0 版出現了, 下載之後卻不能安裝, 原因在於他最低需求是 XP SP2. .NET Framework 的軟體需要下載 5xMB 的 runtime libraries, 還宣稱跨平台 (Paint.NET 稍微修改就可以在 Linux 平台的 Mono 上執行). 公司的電腦又不能隨便安裝或升級成 Windows XP, 所以下載的 Paint.NET 3.0 連安裝都成問題. 微軟自己宣稱的跨平台最後是跨到哪邊去了? 最後其實還是個拼命讓 customer 升級成 XP, Vista 的晃子.

gravatar

FON AP: Always Turn On SSH

在 /www/cgi-bin/webif/upgrade.sh 中,有這樣的步驟,會把原先設定的一些資料保存下來,不會因為 FON AP 使用 web 管理界面的 upgrade 把整個 NVRAM 給 flash 掉而消失。而設定要怎麼保存?

tar czf /tmp/config.tar.gz /etc/config/
mtd write /tmp/config.tar.gz config > /dev/null

簡單的說就是把 /etc/config 整個 tar 起來後,透過 mtd 把設定寫入,之後 upgrade 完成後,應該也是照反向方法把設定取回。所以先前設定的像是 public/private SSID、WPA 密碼、network 設定等等,都會保存著。所以我想透過 /etc/config 裡面的修改,嘗試看看讓原本修改 /etc/init.d/dropbear 和 /etc/firewall.user 的方式,變成不需要更動,而依然可以保有 SSH login 功能。原理在於 /etc/config/openports 這個 script,是提供 port forwarding 的設定,以下是我嘗試的修改:

#!/bin/sh
. /etc/functions.sh
iptables -t nat -A prerouting_rule -i $1 -p tcp –dport 22 -j ACCEPT
iptables -A input_rule -i $1 -p tcp –dport 22 -j ACCEPT
[ ! -f /var/run/dropbear.pid ] && /usr/sbin/dropbear
# 在 web 上設定的 port forwarding 會被 append 在後面
open_port $1 22 192.168.10.10 22 udp
open_port $1 22 192.168.10.10 22 tcp

/etc/config/openports 是在啟動時候,由 /etc/init.d/S45firewall 所執行,啟動的命令列大概是 /etc/config/openports eth0。所以 iptables 會把 eth0 的 port 22 打開,同時如果發現 /var/run/dropbear.pid 不存在,則去執行 dropbear 來啟動 SSH daemon。

註:單純理論上測試,還沒真正完全 upgrade 0.7.1r2 ROM image 試驗過。

gravatar

啟用 La Fonera 的 SSH

參考打開0.7.1r1的SSH,由於 0.7.1.1 (0.7.1r1) 的 Firmware 在 Router 網頁管理界面上有漏洞,因此可以透過 HTML Form 的方式把指令 submit 給 AP 上的 CGI 執行,依序先讓 iptables 允許 port 22 的連線,接著把 SSH (dropbear) deamon 啟動。接著就可以透過 ssh 連接到 FON 然後登入。
但是,我收到的 AP firmware 是 0.7.1.2 (0.7.1r2) 版本,這個漏洞已經被修掉了,所以沒辦法如法炮製。但是看到不少論壇或是 BBS 有很多人說無法由 0.7.1.2 downgrade 到 0.7.1.1,但是我試了卻沒有問題,可以回到 0.7.1.1 的 firmware。首先下載 0.7.1.1 的 firmware,官方網站已經不提供這個版本下載,但是可以透過 google search 找到例如這個網站,裡面有不少版本的 firmwares。下載之後,看要把分享器的 ADSL 關閉,還是 HUB 的 WAN 拔掉,總之讓他無法連到 internet,然後拔掉電源重新啟動 FON AP(註1)。
然後等一段時間讓 FON AP 開機後,透過無線網路連到任何網站。因為沒有 internet 連線,所以 FON 會顯示連線問題的頁面,接著就到 Advanced 的 Firmware Upgrade 去把 0.7.1.1 的韌體更新上去。更新後他會自己重新開機,同時也不要讓他可以連到 internet。同樣一段時間後,也是可以透過無線連接他的 Router 管理界面。接著就是做下面的事情,允許 port 22 的連線,


<html>
<head>
</head>
<body>
<center>
<form method=”post” action=”http://192.168.10.1/cgi-bin/webif/connection.sh” enctype=”multipart/form-data”>
<input name=”username” value=”$(/usr/sbin/iptables -I INPUT 1 -p tcp –dport 22 -j ACCEPT)” size=”68″ >
<input type=”submit” name=”submit” value=”Submit” onClick=”{this.form.wifimode.value=’”;’ + this.form.wifimode.value +’;”‘}” />
</form>
</body>
</html>

啟動 SSH daemon (dropbear)


<html>
<head>
</head>
<body>
<center>
<form method=”post” action=”http://192.168.10.1/cgi-bin/webif/connection.sh” enctype=”multipart/form-data”>
<input name=”username” value=”$(/etc/init.d/dropbear)” size=”68″ >
<input type=”submit” name=”submit” value=”Submit” onClick=”{this.form.wifimode.value=’”;’ + this.form.wifimode.value +’;”‘}” />
</form>
</body>
</html>

分別存成兩個 html 檔案後,以 browser 開啟後按 Submit 送出。完成之後,就可以開啟 Terminal 執行

ssh root@192.168.10.1

接著就會出現登入提示,打入在 Router Web 管理界面設定的密碼後,就可以登入了。
Fonera CLI
同樣,依照前面提的文章,就可以把預設開啟 port 22 和啟動 SSH daemon (dropbear),以後不管重新啟動都可以使用 SSH 登入 FON。接著把網路接回去或是讓 FON AP 連到 ADSL modem 或是重新設定網路,重新讓 FON AP 啟用 internet connection。

另外,更新 firmware 版本並不會影響這些設定,除非使用 web 界面的 Firmware Upgrade,那就會把整個 flash 內容更新掉,於是這些設定就掰掰了。FON AP 的 crontab 內部會於整點執行 /bin/thinclient。如果需要升級的話,他會透過 ssh 向 FON 核對版本資料,如果需要更新的話,會產生 /tmp/.thinclient,

cd /tmp
wget http://download.fon.com/firmware/update/0.7.1/1/upgrade.fon
/bin/fonverify /etc/public_fon_rsa_key.der /tmp/upgrade.fon
rm -f /tmp/.thinclient.sh
exit

而其中的 upgrade.fon 並不是 1.9MB fonera_0.7.1.2.fon 的 flash image,只有幾百 KB,應該是類似區域更新或是 diff 升級方式的檔案。所以不要透過 web 界面升級韌體,同樣也可以升級到 0.7.1r2,且一樣可以繼續使用 SSH 來進入 CLI 模式。

註1: 因為把 FON AP 的網路線拔掉,之後重新啟動無法啟動他的 WAN 界面,也就無法做以後的更新。

gravatar

Leopard version 9A343

聽說此版本的 Mac OS X 10.5 有不少視覺上的 improvement。Terminal.app 有 tab 的支援,而且可以在把 multiple window 的設定存在 workspace 中。另外一個主要的重點,

Apple has maintained that it does not plan to ship Leopard until sometime later this spring

看來還有得等呀呀呀呀….

gravatar

iPhone 使用 Intel Xscale CPU

在 Intel exec claims iPhone runs on Xscale chip 提到了 Apple iPhone 使用的 CPU 是 Intel Xscale。雖然不是 PowerPC 或是 x86;因為在 handheld、mobile device 用這些 desktop,即使是 mobile edition 是不太可能;但是把 ARM 架構的 CPU 用在 mobile devices 上倒是蠻直接可以預期的。對於 developer 來說,就要以移植的方式來發展 Applications。但對於有 PowerPC 到 x86 transition 經驗的 Apple 來說,不同平台上的移植應該不成問題了,猜想也會提供類似 Xcode 這種 seamless 的環境吧。

gravatar

FON AP 的預設密碼

La Fonera 的無限網路 AP,預設在斷電之後,會把 Router 的管理界面登入密碼回復為 “admin”。如果要永久更改,就得上 FON 的網頁,登入個人帳號後,在「安裝您的FON無限網路基地台」(Configure your FON Social Router)裡面,把新密碼打進去更新後,從此 FON AP 的 admin 密碼就會預設成那個。

gravatar

Camino trunk with specific fallbacks

這個 Camino 版本是從每天的 mozilla source code CVS 所更新和編譯出來的 trunk 版本。最主要的地方是修改了 gecko 的 thebes 中的 ATSUI font fallbacks。直接使用 hard code 的「儷黑Pro」、「Apple LiGothic Medium」、和「STHeiti」來當作預設的字形 fallbacks。感覺起來比較好看多了,總比預設不知哪來的 fallback 順序使用的日文字形和產生出來的粗細不一字體好太多了,而且跟 Safari 比起來,也比較類似。
不過 trunk 版本總是有些風險和代價,目前的 gecko 1.9 似乎還有一些 layout 上的問題,cairo 針對 Quartz Surface 和 ATSUI 也還在實驗版本階段。自己使用上起來似乎也沒有 coredump 產生,但是有些排版和 Cocoa widgets 會消失倒是不知道原因。或許就是 trunk 上的問題。有些網頁上的顯示和使用反而更慢,例如使用 google spreadsheet,在上面打字的速度真是慢到暴,但是其他網頁的輸入感覺卻蠻正常的。有興趣的人可以試用看看,不過有些網頁上顯示的問題可能也不是短時間能解的,畢竟我只是小小修改 ATSUI font fallbacks 部份,頂多顯示的字形不太一樣而已,其他的可能也幫不了什麼忙。

gravatar

FON Wireless AP

FON 的 AP 使用起來感覺還蠻讚的,但是對於進階使用者來說,還是有不少美中不足的地方。例如斷電後 admin 的密碼就會被 reset 為 admin,還好用 FON_AP 的使用者無法登入 192.168.10.1 這個設定頁;並且 MyPlace 的 WPA/WPA2 密碼不會 reset,不然就好笑了(剛好今天台電停電檢修)。另外一般 wireless AP 常見的狀態記錄,在 FON AP 上也看不到,例如連線時間,有哪些使用者登入,有哪些使用者正在使用,完全都不知道。雖然可以在一段時間後上 FON website 的個人網頁內容去看,但是記錄的內容其實也是蠻簡單的。我相信這些資訊都是有的,只是並沒有提供輸出在管理的網頁上而已。

另外也是蠻好奇到底是不是會有人會去使用他人的 FON AP。原因在於台灣目前只有 Linus 或 Bill,但沒有非 FON AP 只購買上網點數的 Bill。因此除非對方也有購買 FON AP 成為 Linus 或 Bill,他才能登入別人的 FON AP。再來,使用 FON_AP 這個 public SSID 登入 FON 的帳號後使用 internet,他並沒有 WEP/WPA 的加密保護(在 KisMac 上看到的),因此感覺安全性上有不小的顧慮。因此大概即使街坊鄰居都有 FON AP 的訊號重疊,也不會隨便用他人的 FON AP 去登入來使用 non-encryption 的 wireless AP。

Tags: , wireless

gravatar

Firefox with user-specific font fallbacks

Firefox 3.0 的 nightly trunk 使用了 gecko 1.9 新的 layout engine,對於中文方面的 glyphs rendering,還是覺得非常不好看。在 Safari,不論是 zh-TW, UTF-8 裡面的中文似乎都是使用 LiHei Pro 或是 Apple LiGothic Medium。相反的 Firefox 只要是非 zh-TW, Big5 的網頁,似乎都會去用日文字形裡面的中文字,看起來就有很大差異。缺字的話還需要 fallback 找到其他字形去替補,因此各種混雜家錯的字形看起來真是不好看。對於 Firefox 3 的 gecko,給他寫了 default 的 fallback fonts,像是 Apple LiGothic Medium,LiHei Pro,簡體用 STHeiti,看起來畫面像 Safari 產生的文字,感覺好多了。
圖左邊是 Minefield,也就是 Firefox nightly trunk;右邊是 GranParadiso。

Firefox3 trunk with user font fallbacks
Tags: , Firefox

gravatar

Camino nightly trunk with Cairo

Firefox 3.0 的 Gecko 1.9 已經將 text rendering 的工作,統一交由跨平台的 Cairo 處理。另外有一篇 Cairo bets Safari? 的文章,內有 Camino、Safari、以及新的 Camino trunk 的 screenshot,看起來 Cairo 的清晰程度和 Quality 蠻不錯的。另外新的 Camino with Cairo 的 nightly trunk 可以下載來試試看。

gravatar

MSN Messenger 安全性

不管是 Yahoo Messenger 或是 MSN Messenger,已經幾乎是不可或缺、人手一套的傳訊軟體。但是在軟體的背後,傳遞的訊息卻是以明文的內容在彼此和 servers 之間傳送。當然有心人士或是某些有網路控管的公司,很容易就可以窺視訊息的內容。雖然可能沒有什麼危急存亡大事或是商業機密,但是彼此之間的隱私或祕密,在彈指之間不小心就有洩漏出去的可能。大部分 MSN protocol clone 的軟體,都有實作加密的訊息交換機制。以 GAIM 來說,除了在 Linux 平台上外,Mac OS X 的 AdiumX 也是以 libgaim 來作為基礎,同樣 GAIM 也有 Windows 版本。因此如果是同類之間的加密通訊,理論上應該是可以 seamless 地通行無阻。但是最平常的好友其實大都是 Windows MSN Messenger,或公司的 OS 平台也最普遍都是 Windows。反而大家最普遍使用的 IM 版本缺乏加密的功能。
但是還好有一套 SimpLite for MSN 可以實現這個安全的需求(也有其他 IM 版本)。基本上他是當作一個 SOCKS server,並且修改 IM 的 SOCKS proxy 來經過這套軟體,然後在訊息部份以他人的 public key 加密後送出。當然如果對方沒有這套軟體,則本身就無法擁有加密的功用。

gravatar

Copy to Blogger Beta

很久以前就開始用 gslin 的 copyblog.pl 把 wordpress feeds 內容複製到 blogger 去,曾經有一段時間是自己改一部份內容直接用 Blogger Atom API 把文章貼進去。後來似乎 API 有所修改或更動,一段時間經常會失敗造成兩邊不同步。現在 Blogger 的帳戶轉換成 Blogger Beta 之後,更是無法使用舊的方式把文章複製過去了。

所以現在改用 Google Data APIs 把內容貼過去。看來看去比較簡單的方法就是參考裡面的 java 範例,直接改一下,搭配上原本的 copyblog.pl 方式。先把文章標題和內容寫到一個檔案,然後執行 java 來透過 Google Client Data Library 把文章內容新增到 Blogger Beta。程式大致如下,


import com.google.gdata.client.*;
import com.google.gdata.client.calendar.*;
import com.google.gdata.data.*;
import com.google.gdata.data.extensions.*;
import com.google.gdata.util.*;
import java.net.URL;
import java.io.*;

class blogpost
{
  final static String email = "user@gmail.com";
  final static String user = "user";
  final static String passwd = "password";
  final static String filename = "content.txt";
  final static String post_url = "http://www.blogger.com/feeds/{BlogId}/posts/default";
  public static void main(String[] args) throws Exception
  {
    File file = new File( filename );
    BufferedReader br = new BufferedReader( new InputStreamReader(
                          new FileInputStream(file), "utf-8"));
    String title = br.readLine();
    String content = "", line = "";
    while( (line = br.readLine()) != null ) {
      content += line;
    }
    br.close();

    URL postUrl = new URL( post_url );
    Entry myEntry = new Entry();

    myEntry.setTitle(new PlainTextConstruct( title ));
    myEntry.setContent(new PlainTextConstruct( content ));

    Person author = new Person( user, null, email );
    myEntry.getAuthors().add(author);

    GoogleService myService = new GoogleService("blogger", "blog-post-1");
    myService.setUserCredentials(email, passwd);

    Entry insertedEntry = myService.insert(postUrl, myEntry);
  }
}

gravatar

Skype 與 Firewalls

在這篇文章說明了Skype 或是類似的 VoIP 軟體,如何在兩邊都是 NAT 網路情況下,讓兩邊的 clients 連線起來建立通話,而不需要透過非 NAT 的電腦當作 relay。就好像對兩邊的防火牆打了洞一樣,讓雙方可以自行建立起連線。另外參考UDP打洞。