Archives

gravatar

QuickDraw & CoreGraphics

ATSUI's default is only 4-bit pixel-aligned rendering. However, on Quartz context (CoreGraphics) ATSUI uses 8-bit sub-pixel rendering. Therefore, the text rendering in Safari is better than that in Firefox.

Tags:

gravatar

The Widget/Gfx2 redesign

位於最新的 Mozilla CVS tree 中的 proposal.html,目錄是 mozilla/gfx2。看起來目的似乎是要重寫 Gecko 方面有關 rendering & widget 的 engine, 因為原先 Gfx 的 code 已經是好幾年前的,而現在 advanced OS GUI 都有很多加速的功能。希望中文掉字的問題能根本解決,以及畫出來的 non-western 字型能漂亮些。另外一項是要不要像 gfx 一樣實作成為 XPCOM 的元件,因為缺點就是使用 XPCOM 的話,會有太多 virtual function 的問題,造成執行速度上的 overhead。而最新的 source tree 中也包含了 Qt 的 gfx/widget,就像 KHTML 利用 Qt 來作一樣。如果能夠把 WebKit 中,Apple 自己寫 Qt classes 來包裝 Cocoa,銜接 KHTML 的 Qt classes,照這種模式拿來接 mozilla 的 Qt gfx/widget,一定很有趣。只可惜 Apple 只有實作需要用到的 Qt classes methods,並不是完整的 implementation,也無法 standalone。

Tags:

gravatar

Notes on building Firefox

The environment: Firefox 1.0.7, Mac OS X 10.4.2, Xcode 2.1, Fink.

  • xpcom/MoreFiles/MoreFilesX.[ch] 裡面的 FSLockRange & FSUnlockRange 名稱改掉,因為會和 Mac OS X 10.4 內已經包進來的 FSLockRange & FSUnlockRange 有 prototype conflicts,且這兩個 functions 並不會被用到,因此可以改成別的名稱,如 FSLockRange_unuse
  • modules/libreg/src/vr_stubs.c 裡面的 strdup() 會造成 link 時候與 libm.a 有重複的 conflict,因此可以把他 comment 起來
  • modules/plugin/samples/default/mac,因為 Xcode 2.1 已經改成 build/Deployment/xxx or build/Development/xxx 而不是原先的 build/xxx,因此需要 make 到一半生出來這些 binary 後,自己 ln -s Deployment/Default\ Plugin.plugin .cd DefaultPlugin.build ; ln -s Deployment/Default\ Plugin.build . 然後再繼續 make
編譯完成後,執行檔 Firefox.app 位於 dist/。

Tags: , Firefox

gravatar

Country countdown

位於加拿大 Roughstock Network 的 Country countdown。由 Don Steel 主持,每週可以聽到不同排名或是新進的 Country Music,網友可以透過網路票選自己最喜歡的音樂。類似國中高中時候聽中廣流行網,每個禮拜的中文流行音樂排行榜。之前,Live 是用 Windows Media Player 格式來給網路聽眾收聽,現在看到網頁上已經改成使用 RealPlayer 來收聽。在這裡可以收聽到整首完整的第一手 Country Music,不像 iTMS 的幾十秒。而台灣地區音樂公司進口的速度大概是慢 3~6 個月以上吧,或者甚至不會有。每個禮拜沒什麼空閒時時注意,而喜歡聽 Alan JacksonTim McGrawFaith HillLeAnn RimesGeorge StraitToby KeithWillie Nelson…等等歌手音樂,可以每個禮拜週末聽一下最新排行榜、新歌,更新一下資訊。

Tags: , Realplayer

gravatar

Play & save MLB videos in VLC

首先利用瀏覽器開啟 URL,Firefox 會問是否啟動 MMS 相對應的程式,答否。(Safari 會直接啟動 Media Player)。接著會如畫面,出現 MMS 全部的網址。然後選取並複製該網址。

開啟 VLC,選擇功能表 File -> Open Network... 選取 HTTP/FTP/MMS/RSTP 並把剛才複製的網址貼入;並且選取下方的 advanced output 選項,並且進入 setting。

把 play locally 選項打開,則可以一邊觀看一邊存檔。另外在 File 地方填入要存檔的路徑與檔名,並且於 Encapsulation Method 選擇 ASF 格式。

都設定完畢之後,就可以一邊觀看 MLB 影片,一邊會把下載的影片封包存入檔案,看完一整場比賽或是片段 highlight,硬碟中也就多了這個存檔 ;P。當然,就算不存檔,用 VLC 看還是有很多好處。雖然說 media player 直接開啟很方便,但是用 VLC 更能享受無馬賽克狀的畫質,而且 WindowServer(CoreGraphics) 的 cpu loading 會幾乎沒有。

另外不存檔的話,也可以把 VLC 自己當成 stream server,給其他人的 player 連線觀看,如此雖僅有一個 MLB.tv account,但是也可以讓很多人在自己電腦前觀看。另外,由於 MLB 的影片是 WMV3 codec,因此 VLC 必須是內含有編譯入 VC-1 codec 的版本才行。

Tags: , MLB.tv

gravatar

External USB HDD Box

先前買了這款 USB 介面的硬碟外接盒,跟 Mac OS X 一起用起來沒什麼問題,但是缺點感覺不少。

  1. 有小風扇設計,但是卻沒有任何氣孔,真不知道氣流要怎樣流動來散熱。
  2. 小風扇轉速應該蠻高的,但是卻固定不理想,風扇品質不佳,容易共振產生噪音。
  3. 硬碟要設成 Cable Select,否則會抓不到。
優點就是,像 USB 2.0 一樣運作正常。鄉下地方,找不到多種廠商的外接盒,看來看去還是這個算是可以接受。反正吵,就把風扇拔掉;散熱,就把前面多到像是裝飾用的 LED 前方的透明塑膠拔掉。給看倌參考參考。

gravatar

screen - virtual terminal manager

screen 的常用用法與一些指令:
命令列參數:

-U: unicode
-d: detach an attached screen
-r:attach to a detached screen
-wipe: clear the dead screen(s)
screen 中的熱鍵: (^a is ctrl-a)
^a ^a   ^a key itself
^a c    create new screen window
^a 0~9- select the screen 0 to 9 & -
^a d    detach current screen
^a z    suspend current screen
^a S    split the screen into two windows
^q Q    one window mode
^a i    focus move
^a K    force kill current screen
^a x    lock screen
^a A    change the window title
^a l    refresh
^a ^g   toggle visual bell
^a ?    help
^a :    colon
useful commands in screen:
height [-w] [-d] rows [cols]:-w: window only; -d: display only
help:help screen
in ~/.screenrc
caption [always|splitonly] "%C %-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
如抓圖的 screen 方式之用法過程
screen // start screen
irssi // run irssi in one screen
^a c // create another new screen
telnet // log in to bbs
^a S // split the screen
^a 0 // return the first screen
// resize the terminal to 36 rows
^a :height -d 36    // adjust the display height to 36 rows
^a :height -w 11    // adjust the first screen's height to 11 rows
^a ^i:              // change to the next window in the splited screen
^a :height -w 25    // adjust the bbs screen's height to 25 rows

Tags:

gravatar

Nemesis - man in the middle

Nemesis 是一套使用在 LAN 的工具程式。由 jclin 於大四寒假~畢業期間所開發,之後就終止開發。一來是已經用不到,二者是沒有那個網路環境可以用。發展工具為 Microsoft Visual Studio 6.0、Win32 SDK/MFC、WinPcap,環境是 Windows 2000。

Nemesis 的目的和作用是,透過 MAC spoof,把自己的電腦當作 man-in-the-middle,建立為 victim 和 gatway 之間 packet forwarding 的電腦。在使用這個程式且為運作階段,電腦的網路卡會變成 promiscuous mode,抓取全部 LAN 的封包,但是透過 Winpcap library 只擷取感興趣的 victim TCP 封包。例如有興趣的 port 是 23、25、80、和 110,那麼只會由 pcap 擷取有這些 port 的 packets,然後透過自己的電腦轉送原本 gateway⇄victim 的 packets(也就是變成gateway⇄HOST⇄victim),來達成 victim 這些 port 的網路連線正常。相對的,其他的封包則不理會,因而造成 victim 對 remote host 的其他 port 連線無法運作。利用 WinPcap 除了是封包擷取外,其實透過 Windows NDIS(Network Driver Interface Specification) API 也可以做到相同的功能,但是 WinPcap 可以讓 user 更直覺地使用命令語法,例如 port 23 or port 80 或是 not port (6881 and 4662) ,就可以達到某些 packet capture 的目的。節省 programmer 在處理 Interactive UI 和 BPF(BSD Packet Filter) 上面的時間和功夫。

由於使用 ADSL+NAT 的分享狀態,當有人狂用 P2P 下載卻不限流,會造成其他用戶很大的困擾甚至網路無法正常運作、斷線。透過這個程式,讓 victim 的一些正常 services 還是可以連線,並且限制他使用其他非允許通過之 port 的網路傳輸。因此這就是該程式主要的由來和目的。但是由於後來沒有機會繼續用該網路,也沒有測試環境,目前也大部份使用 MacOS X 而非 windows,因此中止很久的發展階段,並沒有想繼續再維護下去。透過 Open Source,如果有人能夠再行擴充或讓他更強大,倒也不失為一種方法。原始碼下載

Tags: , LAN

gravatar

CopyURL+

自從 Firefox on MacOS X 可以不掉字後,就多一點時間花在 Firefox 上,畢竟有些網頁 javascript 在 firefox 上比較沒問題。最重要的是,有很多 extension 可以使用。在 終極邊疆BLOG:複製 URL 的好工具:CopyURL+ 看到這個 CopyURL+ extension,真的是方便又蠻棒的工具。

Tags:

gravatar

Solar OS

Virtual PC Guy's Weblog 看到的 SOLAR OS。作業系統本身非常的小,功能也很精簡,介面很類似 NextSTEP 或 OpenSTEP。但是本身是用 assembly code 寫的,因此要 port 到其他系統應該非常不簡單,而且本身需求是要 P2 等級的 CPU。因此以目前的功能和 Platform 來說,可以用 Bochs、Virtual PC、VMWare 來玩玩。

Tags:

gravatar

Firefox 1.0.7 CJK testing for MacOS X

Firefox 1.0.7 build 922,由 jclin 所編譯的 Mozilla Firefox 版本。原本預定釋出的是 Firefox 1.0.6,剛要丟出去就看到 Firefox 1.0.7 official 發佈了 囧rz,只好重來再做一次。修改 mozilla/gfx/src/mac 裡面部份程式嘗試解決在 Mac OS X 上掉字的老問題。下載:連結1(nthu)連結2(ccu)。 (PowerPC G4最佳化版本、不含SVG、MathML。)

Tags: , Firefox

gravatar

Potentially Fix the Leakage Problem of CJK Glyph in Firefox on MacOS X

Hope that it is a way to solve the glyph leakage problem of Firefox on Mac OS X. However, it costs much time in compiling Firefox.

Tags: , Firefox

gravatar

The price of music

CNet|Taiwan - 蘋果CEO砲轟唱片業:「越來越貪財」,這種問題是避免不掉的,歷史上來看總是如此。當錄音帶轉換為 CD 時代,壓片速度和製作成本是否比錄音帶還貴?看看現在滿街的 $49、$99 元卡通、電影VCD、老歌,滿山滿谷都是。唱片公司再以CD製作成本,作為高售價的理由就更貽笑大方。而當時代進入線上販售,一首音樂只需要提供數位檔案,便可由多家線上商店販售。頂多格式不同,需要製作 AAC 或是 WMA 版本。但是省掉了 CD 的壓製、包裝、歌本…等,原本在線上銷售 USD$0.99 單首,或是 USD$9.9 的專輯其實並沒有真正比 CD 便宜很多。而甚至先前這些音樂公司與線上銷售公司談判時,還想把熱門的歌提高到每首 $1.5 USD。當然生意難不難作不是一般人就可以三言兩語評斷,但是市場逐漸越來越廣大,而業者給消費者的感覺,則更是貪心地想要從消費者榨取更多的金錢。

gravatar

Opera 8.5

Opera 8.5 推出了,連網頁都改版,一進去 www.opera.com 就是一個 "Feel Free" 的網頁,並且移除內建整合式的 ad banner。先前在 operawatch 有提到相關的改進,可以下載來試用看看表現如何。

Tags: , browser

gravatar

中國信託點數兌換哈利波特六中文版

在金石堂書店(非網路),可用中國信託點數兌換哈利波特六中文版。預訂原價一本要 418 元,使用點數兌換,需要 4180 點(10:1,與點數當飯吃的 7-11 價格一樣)。使用金石堂聯名卡,只要 2090 點(5:1)。算一算比拿去 7-11 拿去當飯吃好多了。7-11 東西本來就比較貴,也是 10:1 比例的兌換。拿去金石堂兌換哈利波特,可以多賺一倍的價值。雖然看起來點數蠻難賺的,刷 30 元才一點,去特約商店買一定價格以上才有兩倍、三倍點數。因此 2090 點最多需要花掉台幣 62,700 元才賺得到。不過其實很多是銀行送的,像是申請電子賬單 1000 點,VISA 金融卡首刷 500 點…等等。最多的就是推薦辦卡,推薦可得 6000 點。

Tags:

gravatar

photonic clocking

Slashdot 看到的一篇文章,原始文章 Shifting to photonic clocking。據說 Intel 也在研究 Photonic Processor。畢竟用電子導線做出來的 clock,用在現在微處理器上,看到 Intel 的 3.8GHz CPU 再也很難上去,就大概知道有很多侷限難以突破。雖然有 10GHz 的 ALU,但那也只是小小的一個 IP,若把 CPU 頻率往上拉,現在作法都是把 pipeline 的 stage 切很多。

The good news is that acceptable photonic clocking solutions should be cost-viable in a 2008-2012 high-volume manufacturing cycle.
文中有提到 photonic clock 可以做到 100GHz,但是其他運算元件是否能夠做到那麼高?當然如果只是產生 pulse 要多高就多高,可是像 ALU 加法、乘法、除法等等,還得看架構設計如何,longest path 要多少時間等等。就像現在很多 clock generator 都可以做到 1GHz、2GHz,但是又有多少應用或產品作得到那種時脈?

Tags:

gravatar

The Dashboard in Tiger

Tiger Secrets: Dashboard confidential 這裡介紹了一些 Dashboard 的用法。其中一個是一直按住 F12,可以叫出 dashboard,一段時間後放開 F12,就可以讓 dashboard 消失。因此可以避免只是要看一眼 dashboard 上的東西而按兩次 F12。另外一個是利用 "defaults write com.apple.dashboard devmode YES" 來讓 widget 擺放在一般桌面上。再來一個是熱鍵,使用 cmd 和 = 可以等同於按下方的開關(這個在之前不小心按到有試出來)。然而要啟動一個 widget 則只有使用滑鼠,沒有任何熱鍵。(另外一個自己試出來的是 cmd+←/→ 可以捲動 dashboard 下面所列 widgets 的頁面)。

Tags: , dashboard

gravatar

iTerm 0.8.1.06 (big5ext)

原來那個放 iTerm b5e 的網站不見了(迷之音:大概被回收了),改在這邊放個 link 好了。雖然後來改用 built-in Terminal,上 bbs 改用 AlienBBS,速度較快一點,且文字繪(點陣圖)比較好看。不過最近又給回用 iTerm 了,一方面可以當 Terminal 用,可以開 tab(Terminal 要開好幾個視窗),又可以不同的編碼設定。全部擺在一個視窗真是方便極了,不然用 Terminal 的話,remote host IRC(UTF-8)、local shell、BBS(Big5),或是用 AlienBBS,這樣螢幕上光是這類視窗就三四個,找起來也不方便。而 AlienBBS 掛站似乎沒有防 idle,且閒置仍然會佔 2-3% CPU loading。所以 iTerm 的 terminal tab + locale setting 真是好用極了。全部終端機內容擺進一個視窗,桌面就簡潔整齊多了,至於打逼,反正對文字繪不太在意。下載連結(右鍵另存檔案)。

使用:建議字型用等寬的 Monoca、Osaka 等等,若有華康字體,可以用華康中圓體,文字繪也會很漂亮。繪圖方式有更改,比原本 iTerm 快。若是小字設定,會有行與行之前重疊問題,可以調整設定中的行距。

Tags: , iTerm

gravatar

A Word .doc as an Email

清華大學學務週報第一期,沒有內容,只有一個 word doc 檔案。意思就是請您打開信件,開啟附件,啟動 Word,才能看到週報內容。很像現在過度包裝的月餅禮盒,要打開外包裝紙盒,然後再打開一小盒的塑膠盒子,然後拿出塑膠紙包裝的月餅才能吃。不過 email client 都支援 HTML / Rich Text 文件,不知道寄 word 檔當附件是什麼意思?一看到這種東西就可以直接 Move to trash 了。

gravatar

Repair dead pixels on LCD

HardMac.com 看到這篇 How to repair dead pixels,原始來源的出處應該是 Stuck Pixel Fixer。裡面有個影片,據說可以修復 LCD 上面的 dead pixels。下載回來看,檔案蠻小的,其實內容就是 RGB 三原色快速切換播放的影片。不過它的原理是怎樣也不清楚,看起來很玄,也好像有人真正就修好了一些暗點。不過在 MSN conversation 的同學講的原理好像還有點道理『閃完眼睛都花了, 當然看不到壞點』。:P

Tags:

gravatar

Backup the home directory

雖然 Apple 有提供 Backup 程式,可以備份自己帳號的各種資料,例如 Address box、iCal calendars、Safari settings、Keychain、和其他檔案。但是麻煩的是它需要與 iDisk server 連線檢查,需要用 .Mac 帳號。因此想要透過簡單步驟把自己 Home 重要的檔案目錄備份下來,還是用 tar 就夠方便了。首先設定不想備份的 list file,例如檔名為 backup.exclude,內容如下:

.Trash/*
Music/*
Movies/*
build/*
Library/Caches/*.cache
Library/*/Firefox/*/Cache/*
Library/Caches/Safari/*
Library/Caches/QuickTime/downloads/*
Library/Caches/Desktop/*
Library/Caches/com.apple.SoftwareUpdate/*
Library/Caches/DashboardClient/*
Library/Caches/Opera Cache/*
Library/Caches/Camino/Cache/*
Library/Caches/Java Applets/cache/javapi/*
Library/Caches/Adium/*/MSN.*
Library/Caches/Adium/*/TEMP-*
然後寫個 shell script 來執行 tar 作備份就好了。
cd /Users
nice -n 10 tar -cvz --exclude-from jclin/backup.exclude -f /Volumes/USB_HDD1/ibook_home.tar.gz jclin
要備份時候,USB 硬碟接上去,打個 terminal 裡的 shell script,就呼嚕嚕開始備份了。

Tags: , backup

gravatar

The speed of MP3 compression

剛才把 Richard Stallman 的演講 MP3 錄音,要轉成較低 Sample Rate 容量較小的 MP3,首先去找了一個 Audion 3 的軟體,免費版本且內建使用是 LAME。似乎找不到太詳細的 Encoder 設定,就只有 bitrate、stereo 等等,光是選了 64Kbps、Mono 的設定,然後讓他重新壓縮 MP3,結果速度竟然是 0.38x。後來直接把 iTunes 這個大怪物叫出來,把 Encoding 設為 64Kbps(VBR)、Mono、22050Hz(resample)。結果 iTunes 重新壓縮的速度是 30x,整整比用 LAME 快上了 100 倍,而且還是有從 44.1KHz resample 為 22Khz。雖然 iTunes 是個重量級大怪物,要重新壓縮一個檔案還要拉進 Library。但是至少 Apple 也在他的 MP3 encoder 下了功夫,利用 Velocity Engine 得到很好的壓縮速度。

Technorati tags: , apple, MP3, iTunes

gravatar

Testing Post from ecto

ecto 真是一個好用的工具,光是可以透過 blogger API 把文章取回來就很棒了。還有提供很多不同 blog platform 的工具,管理、修改和寫文章都很方便,而且還是 Cocoa Native 環境下使用。

Technorati Tags: ,

gravatar

Compiling irssi 0.8.10

本來都在 lab 自己架設的 fedora core 3 linux 上跑 irssi,掛在 irc 上,偶而要用就可以用,順便也能看到先前的對話。不過就是私下用,寫程式、SMB、FTP、HTTP 等等平台,如果有問題弄一弄或重開機,同樣的掛在上面的 screen 和 irc 就因為 reboot 而遭殃。於是想說 lab group 共用的 sun workstations 比較少重開機,用途也比較少,就找一台比較沒什麼人會進去寫程式 run 程式的那台,到裡面自己裝個 irssi。不過機器 OS 太老了,也沒在更新,沒有 glib2 就沒辦法用 recode,要裝 glib2 還要 pkg-config、gettext,結果自己抓回來裝 gettext 到自己目錄,還因為 gcc 2.9.5 stdc++ 與 ld 有問題搞不出來,算了就放棄了 glib2。於是 irssi 就沒有 recode 功能,想想懶得繼續弄就算了,直接設 utf-8 用就好了。

Tags: , irc

gravatar

iPod nano

這裡有 iPod nano 的介紹、測試、拆解。拆解的話大部份網站都看得到,其實重點在於 stress testing,因為很少看到,而且有很可惜的感覺(好好的一項漂亮產品被這樣蹂躪)XD。

Tags: , apple

gravatar

HiNet -> www.google.com

HiNet 到 google 掛了,沒有 google 還真麻煩,用 yahoo/msn 找的資料還真沒用處。

traceroute: Warning: www.google.com has multiple addresses; using 66.249.89.104
traceroute to www.l.google.com (66.249.89.104), 64 hops max, 40 byte packets
 1  220-131-0-254 (220.131.0.254)  73.664 ms  104.577 ms  62.189 ms
 2  h2.s168.ts.hinet.net (168.95.168.2)  100.725 ms  63.752 ms  67.864 ms
 3  203.74.40.26 (203.74.40.26)  76.701 ms  68.970 ms  63.231 ms
 4  220-128-16-70 (220.128.16.70)  68.565 ms  66.828 ms  63.323 ms
 5  220-128-1-10 (220.128.1.10)  79.476 ms  65.984 ms  67.911 ms
 6  220-128-1-101 (220.128.1.101)  90.247 ms  67.769 ms  67.933 ms
 7  211-75-91-185 (211.75.91.185)  74.232 ms  69.151 ms  67.927 ms
 8  210.65.254.27 (210.65.254.27)  68.284 ms  71.351 ms  71.875 ms
 9  211-72-233-169 (211.72.233.169)  108.023 ms  103.018 ms  107.831 ms
10  po2-0.cr1.nrt1.asianetcom.net (202.147.0.205)  103.863 ms  102.579 ms  107.960 ms
11  gi0-0.gw1.nrt4.asianetcom.net (202.147.1.113)  103.906 ms  98.516 ms  103.804 ms
12  * * *
TANet 到 www.google.com 正常:
traceroute: Warning: www.google.com has multiple addresses; using 66.102.7.104
traceroute to www.l.google.com (66.102.7.104), 30 hops max, 38 byte packets
 1  route75 (140.114.75.254)  9.123 ms  7.679 ms  5.699 ms
 2  c7609-2-cs.nthu.edu.tw (140.114.2.137)  2.015 ms  8.017 ms  7.067 ms
 3  jm160-c7609-2.nthu.edu.tw (140.114.1.185)  9.235 ms  11.544 ms  6.426 ms
 4  c6509-g-jm160.nthu.edu.tw (140.114.1.70)  0.787 ms  11.363 ms  9.009 ms
 5  10G-10GE-CHT-P1.HCC-NTHUE.twaren.net (211.79.59.149)  10.424 ms  9.386 ms  0.838 ms
 6  10G-POS-CHT-P1.TPC-HCC.twaren.net (211.79.59.154)  4.242 ms  14.302 ms  10.719 ms
 7  211.79.59.98 (211.79.59.98)  13.401 ms  4.945 ms  47.701 ms
 8  ge-3-2-1.br0.TaipeiGigaPoP.rt.ascc.net (140.109.251.58)  11.258 ms  6.432 ms  13.255 ms
 9  s4-1-1-0.br0.pax.us.rt.ascc.net (140.109.251.105)  135.349 ms  140.889 ms  135.925 ms
10  core2-1-1-0.pao.net.google.com (198.32.176.31)  141.980 ms  138.541 ms  133.528 ms
11  66.249.94.14 (66.249.94.14)  139.572 ms 66.249.94.12 (66.249.94.12)  144.007 ms  130.146 ms
12  64.233.174.54 (64.233.174.54)  141.682 ms  159.505 ms 66.249.94.29 (66.249.94.29)  138.261 ms
13  216.239.49.146 (216.239.49.146)  139.171 ms 216.239.49.150 (216.239.49.150)  135.170 ms  142.332 ms
14  66.102.7.104 (66.102.7.104)  130.703 ms  139.332 ms  139.601 ms
用 terminal + lynx... 反正只是要找文字資料,但是移動游標很麻煩。

Tags: , HiNet

gravatar

中視亂報氣象

忘記前幾天那一天,我猜應該 9/7 or 9/8 時候,中X(X視)新聞訪問該頻道的氣象主播,就是年紀有點老頭髮有點少那個。雖然氣象局預測颱風路徑是直撲台灣而來,但是它的扇形機率圖很明確地涵蓋整個台灣,就是颱風往南或往北都還有那個機會。但是主播在新聞裡面說了,氣象局10號就會發佈陸上警報,11號颱風籠罩整個台灣,到12號就脫離暴風圈。哇靠,比氣象局預測的還多;不過要是讓他預測對了就不好玩,反而現在颱風朝北走,如果只掃果北部邊緣沒有帶來太大風災,前幾天就隨便預測到11/12號的主播應該抓來打屁股。

不過當時新聞畫面並不是在攝影棚內,而是在室外,就好像作一般人物訪問一樣講講就結束了。雖然不是在攝影棚,沒有雲圖和路徑,但是身為氣象主播,就算用個人身份發言這樣也不好。是不是應該報導氣象局所發佈的消息,而非只看氣象局的天氣和衛星資料就自己亂搞一通。

Tags:

gravatar

gcc -faltivec 的迷思

在一些大的 OSS 上很流行針對某種平台或架構作最佳化的編譯動作,像是 Firefox,以前在用 Windows,通常都會用什麼 -msse -msse2 -mcpu=pentium4 等等的選項,來編譯程式。到了 Mac OS X 也不例外,同樣也是有人提供例如 -faltivec -mcpu=7450 -mtune=7450 的編譯版本,來讓使用者盡可能發揮電腦 CPU 的運算單元,利用可以加速的輔助處理器,加快運算速度。就像 firefox 裡面有 JPEG library,DCT 可以加速等等。但是事實上是這樣嗎?我覺得並沒有,其實這些參數可能沒有幫助到什麼。

正確的說,如果 source code 裡面沒有針對這些 architectures 的個別寫出來的 code,那麼儘管加了再多這類 SIMD optimization flags,也是沒用。

舉下面這兩個 c code,

file: test.c
#include <stdio.h>
int main( void )
{
  vector float v1 = { 1., 2., 3., 4. };
  vector float v2 = { 2., 3., 4., 5. };
  vector float v3;
  v3=v1 + v2;
  printf("%vf\n", v3 );
  return 0;
}
file: test2.c
#include <stdio.h>
int main( void )
{
  float v1[4] = { 1., 2., 3., 4. };
  float v2[4] = { 2., 3., 4., 5. };
  float v3[4];
  v3[0] = v1[0] + v2[0];
  v3[1] = v1[1] + v2[1];
  v3[2] = v1[2] + v2[2];
  v3[3] = v1[3] + v2[3];
  printf("%f\n", v3[0] );
  printf("%f\n", v3[1] );
  printf("%f\n", v3[2] );
  printf("%f\n", v3[3] );
  return 0;
}
接著用 gcc 來編譯:
gcc-4.0 -faltivec -mcpu=7450 -O3 -c -S
然後可以得到 PowerPC 的組合語言輸出檔案,分別為 test.s 和 test2.s。在這邊擷取其中檔案一部份:
file: test.s
lvx v1,0,r2
addi r2,r1,64
lvx v0,0,r9
vaddfp v1,v1,v0
可以看到他把 data 載入到 vector registers 去,然後用 AltiVec 指令(v 開頭)加起來。至於 test2.s,完全是 PowerPC 指令,找不到 v 開頭的 instructions。反而要更多倍的指令來把個別的 entry 各自加起來。

假如程式像 test2.c 裡面的 pure C code,那麼加了再多的參數,也不可能讓 gcc 產生 AltiVec 的指令;除非有 directive #ifdef...#else...#endif 來額外編寫針對某種 architecture 的程式碼。所以總之,-faltivec 只是讓 gcc 認得那些額外的 syntax 像是 vector。如果不加,程式有這種寫法,gcc 便會當作未定義的型別。加了,但是程式卻沒有這種針對 vector unit/SIMD 寫法,gcc 也不會幫你產生 AltiVec 的指令來加速運算。那麼為什麼會感覺比較快呢?我的解釋為,可能加了更多針對 G4 general purpose CPU 的 optimization flags,像是 loops 處理、resource allocation、instruction schedule、frame pointer 等等吧。

Tags: , gcc, AltiVec, firefox

gravatar

iTunes Phone & iPod nano

Apple 與 Motorola 發表 iTunes 手機,功能看起來很棒,但是外觀卻不怎樣。反而是另外一家 Cingular 手機,顏色和外觀上看起來比較符合 iPod 風格。iPod nano 比 iPod/mini/shuffle 看起來更搶眼,不論容量的話。以及其他精彩的內容在Apple Special Event

Tags: , iPod, iTunes, iTMS

gravatar

Dump MSN Messenger 5.0 into AdiumX

自 MSN Messenger::mac 5.0 出來後,就改用 MSN Messenger。不過用久了問題更不少,雖然 5.0 比 4.0 多了 grouping 和 emoticon 功能,但是 crash 和斷線次數明顯沒有改善。更誇張的是,MSN 竟然跟我說 network lost connection,所以就 sign out。但是 ADSL 並沒有斷線,收聽的網路廣播或下載的檔案依然正常運作。所以這種軟體品質有什麼鳥用,跟 Windows Media Player 一樣感覺都是半成品。換回 AdiumX 繼續用。

Tags: , MSN Messenger, Adium

gravatar

承認中國學歷相關文章

相當值得看的大作。扁政府擺爛也不是一天兩天的事情,也不單只在兩岸關係問題。如果講稿是台灣高等教育所教出來的人寫的,那還真讓人搖頭。

gravatar

Disk Full

其實是 swap partition 的 disk full,有些程式出問題,然後會造成一直耗費記憶體,然後 pagefile 就一直增加。其中一個罪魁禍首是 StuffIt Expander,只要解壓縮未下載成功的檔案(safari 也很奇怪,可能網路慢或連接中斷,下載未完成的檔案就直接當成下載完成)。一解壓縮,只見 StuffIt Expander 的 progress bar 一路慢慢跑到 100%,接著就聽到硬碟一陣機哩括啦,以及系統反應速度變得超慢。因為有好幾次這樣經驗,所以知道大概又是有程式在吃記憶體,Mac OS X 一直在增加 pagefile 的關係。因為反應速度慢,要叫出 Force Quit 視窗或是到 terminal 把程式 kill 掉,可能要花一下子。還好我的 swap partition 只有 1.1 GB,讓他長完就出現 disk full,StuffIt Expander 就自己被終結掉了。另外一個是 VLC,有次 Open Network 開啟 URL,並勾選 Advanced Output 要把聲音輸出到檔案,也是同樣的結果。一按下 play 只見 ATU-R 有在傳輸資料,然後硬碟一直寫資料,系統反應又變慢,同樣又是一直在長 pagefile,最後 VLC 程式錯誤被終結掉。對於這種方式的程式錯誤實在很無力,系統好像快當掉似的沒反應,硬碟好像在做 benchmark 拼命一樣。但是好在 swap partition 只有 1G,讓他長到 1G 長不下去系統就知道該停止了。要是放在一般 partition,讓 swap 繼續長下去不知道還要多久。

Tags:

gravatar

VLC with VC-1(WMV9) codec

這次終於成功將 VLC 與 VC-1 library (WMV9 codec)編譯成功在一起,而且原本不能看的一些 WMV 已經可以透過 VLC 來看,並且還有比 WMP 好的畫質。不過某些地方還是有些小問題,例如某些 WMP 可以放出聲音,VLC 卻沒聲音;或是 VLC 可能會跳格等等,不過算是小小問題,希望 official VLC 出來,這些都不再是問題。

official VLC(左上方)與自己編譯的 VLC(左下方),舊的版本無法開啟。(這個 movie trailer 是遊戲「Grand Theft Auto: San Andreas」。(click image to enlarge)
VLC(vc-1) vs VLC.jpg

VLC(vc-1) 與 WMP 畫面比較,這兩個畫面都是放大為兩倍,可以明顯看出 WMP 的畫面顆粒(雖然已經用 JPEG 80% 存檔了),搞不好 WMP 是程式自己畫上去,兩倍大小就是每個 pixel 變成 2x2 pixel。(click image to enlarge)
VLC(vc-1) vs WMP.jpg

Tags: , VLC

gravatar

ldd in Mac OS X

有個重要的 developer tool - ldd,用來列出一個 executable/library 的 dynamic link dependency,像是使用到那些 dynamic load libraries,對於 developer 與程式包裝非常有用,避免動態連結到自己開發環境的 libraries,release 之後在別人沒有這些 libraries 的平台卻無法執行。因此可以用這個程式事先觀察到底有沒有問題。而 Mac OS X 上沒有這樣的 tool,根據 Apple 網頁,可以使用 otool -L 來作相同的功能,所以可以在自己的 .bash_profile 加入

alias ldd='otool -L'
來符合一般 unix 的使用習慣。使用結果如:
$ otool -L /bin/ls
/bin/ls:
    /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.0.0)

Tags: , unix

gravatar

Unable to compile VLC

學 DVD John 的方法來編譯含有 libvc-1(wmv9)codec 的 VLC,參考的是 VLC Developer 網頁的 Mac OS X Compile HOWTO,然後在 configure VLC 時候是學 DVD John 加入 libvc1 的相關設定。結果會死在 detect ffmpeg 之 -lavcodec 的 avcodec_init() 這邊,看 config.log 是 linking 時候的問題,出在 libavcodec.a 有不少 function 都有 multiple definition 所以無法 link。如果可以用 VLC 看 WMV9 格式的 wmv,那 Windows Media Player 就可以丟掉了,因為用 WMP 看影片,好像在沒有 Graphics Accelerated GPU 上看影片的感覺。

Tags: , VLC

gravatar

VLC & WMV9

在 DVD John 看到的Compiling VLC 已經把 vc-1 加入到 VLC 之中,未來不久應該可以看見 VLC 可以直接播放 WMV9 的影片。且 Reversing NSC 中已經把 NSC format 破解,直接可以用 VLC 看 Windows Media Player Server 的 broadcast 吧。

Tags: , VLC

gravatar

Yahoo! domain name

在 Yahoo! Domain 的促銷特價中買了一個 domain name:''jclin.org'',一年 $1.99,五年才 $9.95。雖然設定方面好像不少限制,至少 forwarding 以及該有的 A/CNAME 設定都有了。:P

Tags: , DNS