Archives

gravatar

[Advertisement] Improving the VCS dumping VPD file size and performance

Running the simulation and generating huge VPD file in Synopsys VCS simulator? Disk space and file size might not be issues because hard disks are very cheap now. However, the system I/O of disks have huge impact in the whole simulation or post-processing.
We are introducing you a state-of-art technology to significantly reduce the file size and improve the VPD file writing performance in dumping and reading performance in DVE and waveform applications.

  • Advantages

    • No impact to the simulation performance.
      It might gain better performance with less system disk I/O.
    • Affordable price
    • Compatible with every build/release of VCS
    • Compatible with most POSIX UNIX-like OS
    • Suitable for any HDL, digital or analog, RTL, or gate-level.

  • It is definitely legal

    • No extra Synopsys VCS license requires
    • No reverse-engineering and no VCS installation or bundle file changes/modifies/patches
    • No extra file or design needs to be compiled into the simulation
    • No re-compile efforts
Allow us to keep you informed about the latest announcement, release, and package prices.

gravatar

用 WINE 裝 IE6, WMP10, hifree, or KKBOX

KKBOX 有 Mac 版本,這邊只是裝好玩的,其實是可以用在 Linux 上。
以下是憑記憶所寫的步驟:

  1. 下載 Darwine,把 Darwine 和 TRiX.app 複製到 /Applications
  2. 下載 winetricks
    curl -o winetricks http://winezeug.googlecode.com/svn/trunk/winetricks
    chmod +x winetricks
  3. 打開 Terminal.app
  4. export PATH=/Applications/Darwine/Wine.bundle/Contents/bin:/Applications/TRiX.app/Contents/Resources/bin:$PATH
    export LD_LIBRARY_PATH=/Applications/Darwine/Wine.bundle/Contents/lib:$LD_LIBRARY_PATH
  5. ./winetricks ie6
    裝 Microsoft Internet Explorer 6.0
  6. ./wineticks flash
    裝 Adobe flash player。如果裝不成功,若 mscms.dll 無法載入,還需要從 WINDOWS/system32/mscms.dll 複製到 ~/.wine/drive_c/windows/system32
  7. ./winetricks wmp9
    裝 Windows Media Player 9
  8. ./winetricks wininet
  9. ./wineticks wenquanyi
    裝 CJK 字型
  10. ./winetricks fontsmooth-rgb
    把 Anti-Alias 設為 RGB subpixel
  11. wine  ~/.wine/drive_c/Program\ Files/Internet\ Explorer/iexplore.exe
    執行 IE6,理論上中文應該沒問題,Flash 也可以
  12. wine ~/.wine/drive_c/Program\ Files/Windows\ Media\ Player/wmplayer.exe
    執行 Windows Media Player
  13. 選項: wine ~/Download/KKBOX_setup.exe
    安裝 KKBOX
  14. 選項: wine ~/Download/hifree_Setup.exe
    安裝 hifree
附記

  • winetricks 會檢查 file sha1sum,flash player 因為版本變動,會不過,手動改吧。sha1sum .winetrickscache/install_flash_player_ax.exe
    把 checksum 改回 winetricks,或者直接把 winetricks 檔案中 verify_sha1sum subroutine 的 die 改為 echo.

gravatar

pwnat - NAT to NAT client-server communication

From the original description of pwnat -
pwnat, pronounced "poe-nat", is a tool that allows any number of clients behind NATs to communicate with a server behind a separate NAT with *no* port forwarding and *no* DMZ setup on any routers in order to directly communicate with each other. The server does not need to know anything about the clients trying to connect.

gravatar

Running hifree on Mac OS X

hifree is a free client of music player, movie player, stock, news, and weather browser provided by Chunghua Telecom. It automatically detects the HiNet IP and provides free music and movies to HiNet users. I had the environment of running KKBOX (winodws edition) on Mac OS X, and the hifree player is currently available only on Windows platform. I download the installation setup executable file and use Wine to install. Then I can also run hifree player natively using wine on Mac OS X 10.6. Following are my screenshots. Not only the music, but also the movie can be played well. The chinese glyphs become blocks because I did not set up the encoding correctly. (All images of music front cover, movie screen shot, and other hifree images are copyrighted by its original owner or vender).

Playing music
Playing Movie

gravatar

刪除 Mac OS X Key chain 的 CNNIC 根憑證 Root Certifications

依據刪除 IE 與 Firefox 的 CNNIC 根憑證這篇和在 Linux 上移除 CNNIC 憑證這篇
,提供 Mac OS X 底下刪除 Keychain 裡面的 CNNIC 根憑證。如圖。

Google Chrome 也因為是用系統 Keychain 裡面的憑證,所以 Chrome 就不用額外刪了。
至於 Firefox 3.6 就內建 CNNIC 根憑證,可以直接刪除。或是透過「編輯」把此憑證可以用來識別網站的選項取消。
此外,為何此事如此嚴重?其實不只瀏覽器,作業系統也是,MS 也內建把 CNNIC Root CA 加入新版的 OS Root CA。試想,如果今天瀏覽一個網站,使用者沒有逐一仔細檢視核發憑證的機構,就隨便確定進入網站輸入自己密碼,其實該網站可能是假的惡意網站,而 CA 正是由不是大家認可的 CNNIC Root CA 機構簽發。雖然你看到 mail.google.com 和憑證無誤,但是該網域並非真正 google 的 server farm。或是下載軟體,雖然看到 Microsoft 或是 Google 的憑證,但是事實上該憑證並非真正由原始簽發單位簽署,一般使用者也不會逐一檢視簽署者是誰。如此一來可能又不小心安裝了什麼後門或流氓軟體。
事實上當然偉大的中國政府不會這麼笨,例如 Google mail 有不少異議份子的帳號,就在內地透過 GFW 轉到假的 Google mail server 和自己簽發的 CA 去,透過 Man in the Middle 偷偷過濾和檢視私密資料。如此一來大家都會發現那堆 server 都是假的。但是透過偉大的 GFW,比如說特工可以懷疑某某 IP 來源是異議份子,僅對那子網域或 IP 進行轉向攻擊。某異議份子存取了自己 Google Mail,但其實透過 DNS 和 IP 轉向,轉到中國某內地 server 偽裝成 Google Mail,又有來自 CNNIC Root CA 簽發的簽證,無論在 Chrome、Firefox、IE 看來都像是 Google Mail,事實上他並沒有仔細檢視簽發者是 CNNIC 而不是 Thawte SGC (Google mail 真正核發簽署憑證的單位) 的 CA 簽署。照樣,即使 Google mail 已經因為前陣子中國駭客事件而全部預設 HTTP SSL 加密連線,依然可以照樣被滲透。
(當然以上都是假想和幻想,如有雷同,那就是對岸抄了我的劇本)

gravatar

我看 Apple iPad

有人說 iPad 只不過是大支的 iPhone 或是 iPod touch。沒錯,就功能等級上來看,以及執行的 iPhone OS 來說,這些裝置看來都是同等級的。很多人批評,沒有啦哩拉雜的一堆功能。的確,是的,這也許就是蘋果努力的方向。
Microsoft 或很多 PC 廠商的觀念,就是要把 PC 整個功能縮小化,變成移動裝置的使用經驗。所以從以前的 Tablet PC,跑著 Windows Tablet Edition,或是現在的 Netbook 搭配 Windows XP,都是縮小化的 PC 而已。即使你用觸控筆或手指點著螢幕選單,小圖示等等,其實你只是把手當做滑鼠使用而已。
以前我也用過 Tablet PC,用手指在 LCD 面板上直接摸,但大概很多人會比較疼惜 LCD。用觸控筆,就很難有人類四肢的直接指揮控制權。而上面跑的 Windows Tablet Edition,跟一般 Windows 沒有兩樣。你要點開始,從小小繁雜的選單中,正確無誤地"擊中"那個選項。現在看來這是多麼準確無誤地操作方式,但是累死的會先是使用者。我看過最多 Tablet PC 的應用,其實就是拿來簽名。很多大人物拿台 Tablet PC,唯一看得到的就是他簽個大名在上面,然後很推薦 Tablet PC。所以那麼貴的機器,其實只是個簽名裝置。
而蘋果的 UI 體驗,是讓你從手機、家電的角度去使用電腦。其實對蘋果而言要讓 Mac OS X 的 Aqua 介面直接跑在 iPad 有何困難?為什麼要重新弄個 Mac OS X 核心配上是 Cocoa Touch 的 iPhone OS?因為 Apple 知道,他們的 Mac OS X Aqua UI 設計是基於鍵盤、滑鼠以及使用者坐在螢幕前使用輸入裝置移動的經驗。所以他的 menu bar 總是在最上頭,讓你想都不用想直接滑鼠一推,就到 menu bar。他的 Core Graphics 和 exposé  配合得天衣無縫,讓你排列視窗、選擇視窗、顯示桌面等等,平滑順暢無比。你很難想像 Apple 在 G4 800Mhz CPU 上,就可以透過 exposé,即便放電影的視窗和其他視窗平整地排列在螢幕上讓你選取,而影片的話面卻依然平順地播放。這種東西直到 MS Windows Vista/7 才有,而且還要很好的顯示卡才能開。
什麼,沒辦法多工,那是騙人的。沒辦法多工,那麼底層的 Mac OS X kernel 和 services 不都玩假的。那怎麼一邊背景放音樂,一邊作別的事情?Apple 想要的意圖在於,UI 操作上就簡單、唯一。就像操作手機和家電一樣簡單,前景是什麼介面,就代表該裝置目前表示的是哪種家電。如果 UI 多工了,我想 Apple 只好搬出 Aqua 那套。Scalable Dock、Expose、Menubar、... 好吧,大家回到 Windows Tablet PC 那種使用經驗去了。其實,在 netbook 的 Ubuntu Netbook 版的 GUI 設計上,每個應用程式都會被最大化佔滿螢幕。你沒辦法 resize,唯一就是縮小放到背景。應用程式就大喇喇地排列在桌面上的每個類別裡,而非選單。某種程度上就是呼應這種小裝置的使用方式。
此外 Apple 開出來的 iPad 硬體方面,被批評的體無完膚。都什麼時代的科技,沒有直接內建 SD/MMC slot、HDMI、等等。但是他的軟體使用經驗上,卻又被大家覺得很驚艷。雖然在 iPhone 和 iPod touch 大家已經體會過那種感覺。這次就不會像從無到第一次體驗完美的 multi-touch 硬體那麼讓人驚艷。因為他賣的是一種 services,一種體驗。而不像 PC 賣給你一堆硬體,然後有些很難用的軟體搭配,可以操控使用硬體,這樣就是廠商的責任,剩下是付錢使用者自己的事
再來,Apple 這種設計方式,我一直覺得他並不是故意要漏掉或省掉某些硬體。而是,他們的各種產品搭配度和軟體整合度是非常高的。如果買了一項產品,似乎就類似無止盡地黑洞一樣。買台 iMac/MacBook 搭配 iPad/iPhone,分享和同步照片、音樂、應用程式等等,畢竟 iPad 設計意圖是一台 portable device,真正桌機要作的事,還是交給桌機。

gravatar

國防役期滿

上週末已經就期滿了,算是 lag 的文章。慶祝一下自己國防役期滿。其實有沒有綁約是沒有差別的,總是對自己的努力和工作負責。唯一的差別就是心裡面爽字而已。因為,像王葛格一樣身為自由球員,合約不滿意,可以不要簽不要待。

gravatar

Coding practice of NVDA


My reviewed solution for P*B/SI C*D Engineer writing testing from my colleague and friend. Just for your consideration only, don't copy or publish without any permissions. There is no any warranties to use following in your project and solution.



1a)
class GraphNode {
    std::vector     adj_nodes;
    std::string                 node_name;
public:
    GraphNode(const char* name) : node_name(name) { }
    void                insert(GraphNode* v)    { adj_nodes.push_back(v); }
    
    const std::string&  name() const    { return node_name; }
    int                 size() const    { return adj_nodes.size(); }
    GraphNode*          operator[](int n) const { return adj_nodes[n]; }
    GraphNode*          get(int n) const { return adj_nodes[n]; }
};

1b)
void depthFirstTraversal (const GraphNode *root) {
    std::stack  stack;    
    stack.push(root);    
    while(!stack.empty()) {
        const GraphNode* vertex = stack.top();
        stack.pop();
        std::cout << vertex->name() << std::endl;
        for(int i=0, size=vertex->size(); i < size; ++i )
            stack.push( (*vertex)[i] );
    }
}


1c)
void breadthFirstTraversal (const GraphNode *root) {
    std::queue  queue;    
    queue.push(root);    
    while(!queue.empty()) {
        const GraphNode* vertex = queue.front();
        queue.pop();
        std::cout << vertex->name() << std::endl;
        for(int i=0, size=vertex->size(); i < size; ++i )
            queue.push( (*vertex)[i] );
    }
}


1d)
template struct my_hash {
  size_t operator()(const T* __s) const
  { return (size_t)__s; }
};
typedef __gnu_cxx::hash_map >  visit_hash;
bool hasCycle2 (const GraphNode* vertex, visit_hash& hash) {
    for(int i=0, size=vertex->size(); i < size; ++i ) {
        GraphNode* adj_node = (*vertex)[i];
        if(hash[ adj_node ])
            return true;
        hash[ adj_node ] = true;
        if( hasCycle2( adj_node, hash ) )
            return true;
        hash[ adj_node ] = false;
    }
    return false;
}
bool hasCycle (const GraphNode* root) {
    visit_hash   hash;
    return hasCycle2(root, hash);
}

2)
void showArcPoints(double x, double y, const Arc& arc, int n);
void printArcPoints(const Arc& arc, int n)
{
    const double diameter = arc.radius*2;
    const double cx = 0.5 * (arc.A.x + arc.B.x);
    const double cy = 0.5 * (arc.A.y + arc.B.y);
    const double dx = (arc.B.x - arc.A.x);
    const double dy = (arc.B.y - arc.A.y);
    const double length = sqrt(dx*dx + dy*dy);
    if( length == diameter )
        showArcPoints(cx,cy, arc, n);
    else if(length < diameter ) {
        const double height = sqrt( arc.radius*arc.radius - length*0.5*length*0.5);
        const double tdx = -height*dy/length;
        const double tdy =  height*dx/length;
        showArcPoints(cx+tdx, cx+tdy, arc, n);
        showArcPoints(cx-tdx, cx-tdy, arc, n);
    }
}

void showArcPoints(double x, double y, const Arc& arc, int n)
{
    double radian_A = asin((arc.A.y-y) / arc.radius);
    if(arc.A.x <= x)  radian_A = M_PI - radian_A;
    double radian_B = asin((arc.B.y-y) / arc.radius);
    if(arc.B.x <= x)  radian_B = M_PI - radian_B;
    double radian_diff = radian_A - radian_B;
    if(radian_diff < 0.0)
        radian_diff += M_PI * 2.0;
    radian_diff /= 1.0 * n;
    double radian = radian_A - radian_diff;
    std::cout << setprecision(3);
    std::cout << "(" << arc.A.x << "," << arc.A.y << ") " ;
    for(int i=0; i
        std::cout << "("
                  << arc.radius * cos(radian)
                  << ","
                  << arc.radius * sin(radian)
                  << ") ";
        radian -= radian_diff;
    }
    std::cout << "(" << arc.B.x << "," << arc.B.y << ")";
    std::cout << std::endl;
}

3)
void printDuplicates (const std::vector &items) {
    typedef std::map >   duplicate_hash;
    duplicate_hash   dup_count;  
    for(int i=0, size = items.size(); i < size; ++i )
        dup_count[ items[i] ] ++;
    duplicate_hash::const_iterator dup_iter;
    for(dup_iter = dup_count.begin(); dup_iter != dup_count.end(); ++dup_iter) {
        if(dup_iter->second >= 2)
            std::cout << dup_iter->first << std::endl;
    }
}




gravatar

測到的最快 WiMAX 速度


目前試用的全球一動 4G WiMAX 網路速度中,這次算是最快的一次。平常測最高大概是 3~4Mbps 下載,上傳倒是都很快。測試條件跟前一次都一樣,在金山東街位置,訊號品質滿格(~30dB)。所以這次測到的速度 6.28Mbps 算是第一次看到這麼快的速度,但是 speedtest.net 測到的速度是瞬間最快速度,也就是從頭到尾只要有一瞬間這麼快的速度,就會出現這個數值。所以用 HiNet 測速網頁就不太能出現這麼快的數值,因為他是整個下載完畢,從開始到結束的時間,去算平均的速度。而 ISP 自己本身的測速呢?可以參考速博的測速網站,避免經過太多 routing 和 peering 的頻寬問題。但是全球一動官網自己的測速網頁每次用都不太爭氣,因為每次測都很低。:P


gravatar

新竹 全球一動 4G WiMAX 搶先試用

全球一動免費封測活動中,很高興可以被選中為試用的用戶之一,搶先試用最新的無線網路科技 WiMAX。在 11/7 下午的時候,親自到場聽取說明和領取 WiMAX USB dongle。


簡單重點 Summary:
  1. 試用期間 11/7/2009 ~ 1/6/2010。USB dongle 價值 NT$ 3,500 免費贈送使用 (稅還是要繳的)
  2. 基地台架設由新竹市往北建置,新竹市訊號涵蓋率 97%
  3. 明年 1/6 後商轉,聽說費用比手機或其他上網費用便宜
  4. 測速速率可達下載 10Mbps,上傳 2Mbps。(實際傳輸速度則視訊號、對方網站而定)
  5. 測試提供實體 IP,不鎖任何 ports
  6. 目前僅提供 Windows 32-bit 連線程式。Linux、Mac OS X、64-bit Windows 暫不提供
  7. 目前服務據點在新竹市兩間"大x發"都有
此 USB dongle 為華碩生產製造,但是與網路上找到的 ASUS WUSB25E-32 照片不同。大小比較起來,感覺還比較小,大約一個 USB 隨身碟的大小。不像 3.5G 網卡或是電視/數位電視 dongle 那麼大。底下的圖可以看得出來,其實直接插在 USB 孔不用轉接頭,也不會佔用到另外一個 USB 孔的位子,如果使用滑鼠或其他隨身碟都沒問題。第一張圖還有可以轉各種角度的轉接頭,可以在使用時隨時調整角度,而不是人拿著 notebook 轉角度。比起 iPod shuffle 來說還小了點。第三張圖可以看到生產廠商和 NCC 認證字樣。

此 USB dongle 硬體 chip 為 Beceem 生產。目前找得到的 driver 只有 Windows 和 Mac OS X,所以我的MacBook就只能用BootCamp或是Virtual Machine來測試。國外的 Clear wire 有提供 Mac OS X 的驅動程式,因為他們使用的 4G WiMAX 也是有 Beceem 所生產的 chip。但是可能因為些許不同,驅動程式可以使用,但是無法啟動 USB dongle 的無線功能(雖然說已經安裝了 /System/Library/Extensions/BeceemAppleWiMAXAdapter.kext 以及修改 Info.plist 已符合 Vendor Id 和 Product Id,以及使用 windows\system32\macxvi.cfg 和 macxvi200.bin)。至於 Linux 也許可以透過 NDISWrapper 來載入 Windows NDIS 驅動程式(如同Linux使用Intel的wireless driver),但是缺少 Connection Manager 來做連線認證,即使成功加入 NIC interface,可能還是無法上網。(或許可以使用 Clear Connection Manager,參考\Program Files\Global Mobile\WiMAX WUSB25E-32\WiMAXCM.ini 設定來修改他的 profile,至少 Clear 的是用 Java 和 Adobe AIR 做的,可能比用 WINE 跑 .Net Framework 的全球一動連線程式來得可行)。

講完USB dongle硬體來談談軟體和網路部分。此 Dongle 為 USB Composite Device,也就是有隨身碟跟無線網路兩種。當第一次使用,因為沒有 driver,電腦會當成 USB storage。因此在裡面直接可以安裝驅動程式和連線軟體。但是第一次安裝的時候抽插插拔了很多次,因為電腦一直識別為 USB storage。而理論上電腦有 Windows Auto Run 功能,他會執行裡面的 autorun.inf,裡面會再去執行 InstVerif.exe,它除了會檢查和幫你安裝軟體外,會把 USB storage 退出然後讓電腦識別為 WiMAX device。但是 Auto Run 的功能大概很多人都關閉,一來是怕 USB 隨身碟的病毒,而來是 Microsoft 自己都不建議。安裝完後可以在網路連線的裝置中發現 WiMAX Network Adapter,而且一開始是斷線狀態,因為尚未透過連線軟體做認證。使用全球一動連線程式連線之後,就會分配到 IP 和可以看到訊號強弱。

而目前涵蓋的範圍如下圖所示,大概涵蓋了科學園區、新竹市區、高速公路、東西向快速道路、以及香山和新竹段的台鐵。我的測試地點首先在金山東街,其實已經算是蠻算外圍了,差點就跑出涵蓋區域外。但是很訝異的是,訊號可以達到滿格。訊號品質和強度為 28dB/-67dBm 附近。

至於使用官網提供的定位,則會把我的範圍定位到寶山那邊去。跟透過手機的基地台定位(手機沒有AGPS或GPS)比起來,還是差很大。手機裡面面的小藍點是定位位子,放大看還有淺藍色圓圈表示誤差範圍。而 WiMAX 定位則到寶山的明湖路去了。

因為這類的定位都是透過基地台的三角定位。一來是基地台的佈建位置或是設定的定位參數差異,所以造成這麼大的差距。而手機基地台定位差距,我的經驗是最大誤差2000m,但是大都 1200m 或是 800m 的距離,雖然手機有這麼大的誤差,但是定位點都差不多是目前位置附近。

使用 TWNIC 所提供的 whois 查詢,可以看到 IP 所申請的公司和資料。網段的申請大概今年年中而已。

透過 whatismyipaddress.com 來看自己的實際 IP,的確連到外面的 IP 和自己電腦所分配的是相同,所以電腦得到的是實體 IP。有實體的 IP,即使不是固定的 IP 相對好處也會比較多。例如透過 skype 或 msn 傳檔,可以直接連線而不需經過他人當中間的 peer 或 routing。自己電腦也可以分享或遠端遙控。

連到國外試試看,測試目前最熱門的 facebook 網站,透過 traceroute 可以看到是透過 seednet 連接。而前幾項的 211.78.0.0/16 則是「新世紀資通股份有限公司」,也就是速博。

免不了的就是測試實際的上網速度,使用 speedtest.net 來測試,雖然是國外的網站,但是測試 server 位於 TANet 的東海大學。前面雖然說使用的速度可以達到 10M/2M,但是可能因為訊號強弱,以及全部使用者的使用狀況,無法達到全速。因此測出來的下載速度不是很高,但是下載速度 1.91Mbps 已經算是有達到理想值。

Global Mobile 自己官網也有提供網路測試介面。訊號強弱在三四格(滿格為四格)之間跳動,而測出來的情況跟上者就差很大,上下傳分別為 1.5Mbps/0.35Mbps。可能也是因為很多人在測,或者是 server loading 造成。


再來談到網路速度,當然所有無線的都會依照訊號、距離、速度而有所差異。即使 ADSL 也會因為距離而有速度限制,但是因為是固定的,所以速度變化大概都固定。自己本身有使用台x大 3.5G 上網,但是他的 Latency 蠻高的,大概至少都有150ms以上。上網還沒問題,但是做些即時的事情像是 VNC、Terminal、網路遊戲等等需要立即的回應,就可能有些壞處或缺點。可是因為透過手機上網,手機可以在 windows 或 Mac OS X(不需driver) 就直接可以當做網路卡,就好像把網路線插入網路孔那麼簡單,不需要設定。或是透過 Bluetooth PAN (Personal Area Network)來給電腦使用網路。當然電信公司的網路優先權設定是語音資料封包會比較高過一般數據傳輸。

至於 Windows 7 和 64bit 的驅動程式,可以參考Comcast 2go Highspeed WiMAX / ZTE TU25 USB modem on Windows 7 x64 (沒有OS可以測試,不負責任提供參考)。因為大家都知道使用的 chip 是哪一家,一般硬體 vendor 都是拿公版driver來修改。而不同的 chip 搭配上的 firmware 不同,所以拿上面講的 windows\system32\macxvi.cfg 和 macxvi200.bin,才是給 ASUS 這隻用的 firmware。而連線軟體,在 64-bit 機器應該是可以跑32-bit應用程式沒問題的。

至於費率方面,因為沒有官方的公告,只有「聽說」比現在它家方案便宜。雖然現在外面 3.5G 上網公定價是種花電信850吃到飽,台x大800吃到飽。但是依照「實際」優惠方案,種花是680吃到飽,台x大是600吃到飽。以我的例子,因為不搭網卡,實際月租費是 699,再優惠 99,資料傳輸費免收,所以只要月繳 600 吃到飽。而實際 4G WiMAX 費率是多少可以吸引轉換則需要在考慮,而且如果只在北部跑的人,的確用 4G WiMAX 速度和訊號可能會比 3.5G 好,至少 4G WiMAX 就沒有那麼多的電信通話數據在佔頻寬,加上手機可能會在 3.5G/3G/GPRS 之間 handover,所以實際使用速度可能沒有 4G WiMAX 那麼穩。

另外一件事就是 ISP 之間的 peering,之前吵的很火熱的就是種花電信跟台x大、只有"遠x沒有訊號"等等公司在吵 peering 價格。因為大者衡大,所以大家都要跟他買頻寬。目前雖然透過 whois 知道 IP 是在今年七月註冊,但是在 TWNIC 頻寬調查的 10 月份資料,還沒有看得到頻寬資料,可能因為還沒正式營運關係,所以無法得知台灣一動 WiMAX 跟國內其他之間的頻寬,但因為 traceroute 知道大概是透過速博對國外、國內,因此大約看看速博對其他的連線頻寬可以大約估計。對國外的話,本來就只有那前面幾大家像是種花、seednet、台固、速博、TANet、中研院等等有能力自己拉有海外頻寬線路。

整體來說,第一次接觸到最新一代的無線網路技術,實在有點驚艷。對於網路速度、使用方式來說都很方便。一般使用網路的用途來說,頻寬也都很夠。雖然是試用,但是網路穩定度、運號品質,都有很高的評價。

gravatar

Pidgin in Mac OS X


Pidgin 是 Open Source 的即時傳訊軟體,我在公司也是用這套來連 MSN Messenger。因為 win2k 不能裝新的 MSN Messenger,而且又肥大,只好裝這個。但是好處也不少,外觀不像訊息視窗那麼花俏,傳個訊息聊天都不怕會被認為常常在聊天(其實很多工作和同事都靠 MSN 呀,傳簡短的訊息和 commands 都很方便)。
再來,他有 OTR 等加密功能,只要對方是 Pidgin 或是 Adium 等等 libpurple-based 程式,都可以加密。
當然 Pidgin 可以透過 Fink 或 MacPorts 等方式,在 Mac OS X 上本身就有的 X11 上,執行 X11 GTK 的版本。但是缺點就是不能直接內建中文、醜醜的 10 年之前 state-of-art 的外觀(好像敝公司的 unix-like 產品 GUI 都還是這種,經過了十年都沒變,程式寫法也是一樣,比 MFC 還難用),還要開 X11 視窗等等。而 Pidgin in Mac OS X 直接使用了 Mac OS X 的 native GTK,所有的 widget 都是漂亮的 Cocoa 介面,icon 也可以顯示在頂頭的 menu bar。一堆 Pidgin plugins 也都可以使用。
說了那麼多優點,來說說缺點。雖然可以切換輸入法,但是打字是沒有用的,英文字會直接出現。再來介面的字型需要調整,預設看到的中文是亂碼。

gravatar

Mac Box Set

請同學買的 Mac Box Set,因為他在 Apple 當 Intern,員工價 50% off + tax,換成台幣才三千左右。便宜呀,台幣賣 6290,原價美金 169 去算的話,即使算台灣的營業稅 +6%,6290 可是用美金匯率 35.11 才能買到的價格呀。

gravatar

TWNGSM 台灣大哥大 HSDPA 消失?

這幾天手機上不再出現 H 的 logo, 以前 H 表示 3.5G 訊號, 3G logo 表示只有 3G 訊號. HSDPA 以前理論值可以到 3.5Mbps, 3G 只有 384Kbps 下載. 這幾天因為看不到 H logo, 以為沒 HSDPA 可以用了, 結果測試一下速度, 還是破 3G 原本的速度. 應該只是基地台的訊號全部改成 3G 統一識別, 全部升級為 HSDPA 3.5Mpbs/7.2Mbps 的關係吧(猜測). 不過速度 ok 就好, 不管手機上面 logo 顯示為何

gravatar

Safari 4 與 Webpage Previews Cache (更新)

用 Safari 4 的使用者要注意囉。Safari 4 有 Webpage Previews 的 Cache 設計,所以你在 Top Sites 看到的畫面基本上都是之前瀏覽過的網頁抓圖。而這個圖檔的快取目錄為以下的位置。請開啟 Terminal 後打

du -sh `getconf DARWIN_USER_CACHE_DIR`com.apple.Safari/Webpage\ Previews
而裡面的檔案就是一堆 jpeg or png。如果你 cd `getconf DARWIN_USER_CACHE_DIR`com.apple.Safari/Webpage\ Previews 後再用 open 加上任一檔案,你可以發現圖檔就是網頁的 screenshot。
基本上這有兩個問題,第一是安全性問題,如果有人可以存取到你的權限或 root,就可以看到你之前瀏覽過的網頁畫面,包含可能是 HTTPS 的網頁。第二個問題是,這個快取沒有大小限制。我的已經長大到 2.1GB,國外 forum 中有人的是 3.2GB。基本上他是以16個16進位數字編碼的檔名,所以理論上會無上限的用光你的空間。
把 Top Sites 關掉並不會關閉在背景抓圖並建立畫面快取。
更新最新的方法,如果要關掉 Top Sites Preview,請結束 Safari 後,在 Terminal 打入或貼上以下命令
defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2
然後重新啟動 Safari。然後把上面目錄中的 *.jpeg *.png 砍光光。

gravatar

VMWare Fusion 2.0.4

根據 VMWare Fusion 2.0.4 的Release note修正了一項非常嚴重的漏洞。

Host code execution vulnerability from a guest operating system
A critical vulnerability in the virtual machine display function might allow a guest operating system to run code on the host. The Common Vulnerabilities and Exposures project (cve.mitre.org) has assigned the name CVE-2009-1244 to this issue.
即使 host 跟 guest 本身是兩個獨立的作業系統,但是藉由軟體本身的漏洞,guest 作業系統的程式可能爬出來,影響 host 端的作業系統和安全性。但是,Apple Mac OS X 上跑 Windows 虛擬機器,可能有人會覺得安全無虞,因為是不同的 OS。實際上研究和 demo 證實在 OS X 上還是會被藉由漏洞從 Windows 端的 guest machine 操控。所以,快更新吧。[Ref: VMware Fusion bug breaches the guest-host OS wall]

gravatar

Opera Turbo Preview

Opera Turbo 號稱可以加快網路瀏覽速度,當然就是壓縮瀏覽器與 server 之間的資料。原本 HTTP 協定就可以指定用 gzip 來壓縮 text-base 的 HTML/XML/JavaScript/CSS 等等。但是牽涉到 server loading 和 request 量,一般預設應該都是不會開。Firefox 的 about:config 中,network.http.accept-encoding 就是預設 "gzip,deflate"。不過 server 不壓縮,還是沒用。所以 Opera Turbo 就透過中間的 server 把東西都壓縮了再給你。但是如果是走 HTTPS,抱歉,那就沒有效果。
除了這個之外,Opera Turbo 還會壓縮圖片,意思就是用失真演算法,把圖檔的大小壓得更小,所以載入更快,如果在手持裝置上看,反正小尺寸的 LCD 看縮小的圖可能還能接受。desktop PC 的話,用起來發覺失真得還蠻嚴重的。
至於 Turbo server 是在哪?用 UserAgent.orgWhat is my IP address?一看,Your IP Address is: 64.255.180.34。簡單 traceroute 後是 r02-02.opera-mini.net。所以就是透過 Opera 本身自家的 server 幫大家壓縮傳輸量,但是 RTT 好像蠻高的。或許以後各大家 ISP 都部署之後,就不會那麼高。但是如果拿來看 flicr、picasa、wretch、diggirl,應該會蠻吐血的。所以美好的東西是值得等待的 XD。話說 Opera Turbo 網頁載入快雖快,但是一堆標準和 JavaScript 都打不贏 Firefox/Safari,這...

gravatar

Mac 的語音怪現象

macosxhints 看到的,如果你用系統的語音(Services->Speech),或是 Terminal 下打 say 加上文字,他會念出來。但是 say bullfrog 會念出 bullfrogs;say bullfrogs 會念出 bullfrog,沒有 s。的確是蠻怪的現象。

gravatar

Mac OS X 用 SE 手機上網的完美組合

因為有些「移動」需求,所以 survey 了一些 3.5G 上網方案。最後 solution 是,用 Sony Ericsson 手機跟 Mac OS X 搭配起來,完美的程度,比蘋果自家那麼貴一台 iPhone 不能"直接"用 3G 網路上網來說好很多。有人說其他家網卡會瞬斷,MD300比較穩定。更有人說 MD300 不穩,Q101 反而較穩。怎麼看怎麼說各種組合都有 囧rz。

很多家公司都在推 3.5G 網卡,但是網卡本身其實就是一台 GSM/UTMS/HSPDA modem,只差螢幕、鍵盤、電池就是一個完整手機。單買也不便宜,綁約有期限,費用也比較貴。以自己用的業者 TWN Mobile 來說,綁吃到飽月租699,最高收 800。但是不買 3.5G 網卡、自備網卡或手機,手機門號也沒有綁約(或是新門號),699 的方案吃到飽最高只收 600。所以省 200 * 24 個月 = 4800。不如到網拍買個一兩千元二手3G網卡,反而新綁約還划算。但是不想只用網卡搭電腦,所以直接找最便宜的 3.5G 手機。因為以前一直都用 SE 手機,知道 SE 手機一直和 MacOS X 用 Bluetooth 搭配都很完美,不用 driver,不用設定。所以就敗了 K660i。與其買一隻不能單獨打電話,雖然比較方便,不如就直接換手機了 XD。

在 Windows 上,設定連接比較麻煩,Windows 使用者要裝 drivers,要裝 PC Suite。如果要用 Bluetooth,要看你的 NB 硬體和 Windows 上的 Bluetooth stack 解決方案。Mac 上面,直接開 bluetooth 配對,完成就結束了,包含手機當作 modem 都直接可以使用。
不過用 Bluetooth 使用網路,會有 Bluetooth 本身頻寬問題,還有多經過一道無線傳輸,耗電量又增加。但是,手機本身可以接上 USB,手機上把 USB 模式直接選 Phone,就可以接上 Mac,不用灌 driver 馬上就找到手機網路裝置,網路裡面就會多出一個 Ethernet Adapter,完全又不用設定就可以上網(當然手機上的 APN 都要設好)。透過 USB 還可以充電,避免手機電池因為長時間上網耗光電量。(若要關閉USB充電,需要進入工程模式,用鍵盤按"右*左左*左*",在設定中把 USB 充電關閉)。整體上使用起來感覺完全不困難,不像 3.5G 網卡還要裝 driver,甚至 Sony Ericsson 自己出的 MD300 還要透過第三方軟體,反而是蠻奇怪的。但是,現在手機拿起來插上 USB,其實就跟 3.5G 網卡拿上去插 USB 一樣呀。

gravatar

Mac mini 開箱照

完整的 2009 Mac Mini 開箱照,當然不只有打開箱子玩疊疊樂,還打開外殼看看裡面新的配備。

gravatar

一堆 Safari 4 密技

想要把 Safari 4 新功能關掉嗎,有些不好用,有些不太習慣?請參考這個網頁,列出所有可能的設定。服用方法請打開 Terminal,執行後,在重新開啟 Safari。

  • 把tab bar移回原本的地方
    defaults write com.apple.Safari DebugSafari4TabBarIsOnTop -bool NO
  • 把Safari 3 載入網頁時 URL 列會出現藍色完成狀態回復
    defaults write com.apple.Safari DebugSafari4IncludeToolbarRedesign -bool NO
    defaults write com.apple.Safari DebugSafari4LoadProgressStyle -bool NO
  • 關閉新的 URL 自動完成模式,回復成舊的
    defaults write com.apple.Safari DebugSafari4IncludeFancyURLCompletionList -bool NO
  • 關閉 Google 搜尋建議功能
    defaults write com.apple.Safari DebugSafari4IncludeGoogleSuggest -bool NO
  • 關閉 Bookmark 顯示包含 Cover Flow 功能(應該是無效)
    defaults write com.apple.Safari DebugSafari4IncludeFlowViewInBookmarksView -bool NO
  • 關閉 Top Site 瀏覽網頁的動畫效果 (應該是無效)
    defaults write com.apple.Safari DebugSafari4TopSitesZoomToPageAnimationDimsSnapshot -bool NO
  • 關閉 Top Sites 功能
    defaults write com.apple.Safari DebugSafari4IncludeTopSites -bool NO
  • 回復 Safari 4 原始設定, 其中 為以上的 DebugSafari4 那些關鍵字
    defaults delete com.apple.Safari