Archives

gravatar

Firefox 2.0 (with Websense Bypass Modification)

Here is the page of my personal build Mozilla Firefox 2.0. In this version, it adopts a method to bypass the Websense content filter. Just read the details in the page. We have Windows 32bit version binary and Mac OS X PowerPC G4 (7450) version binary of Firefox. For somebody will still encounter browsing difficulities behind Websense network, just adjust some perferences in Firefox (about:config).

  1. set network.http.keep-alive to false
  2. set network.http.max-persistent-connections-per-server to 0
Please refer to this page for details.

gravatar

網頁加速

看到網頁瀏覽加速法和vgod的網頁瀏覽加速,我覺得 Mozilla 和 Firefox 的確可以有很多的設定來加速網頁下載的速度。但是依照之前的經驗來說,Safari 是用 Cocoa 的 NSURLConnection、NSURLRequest、NSURLResponse,因此這些系統內建的 framework 所提供的可調整設定似乎就已經固定,也無法更改。另外 Opera 平常用起來的速度蠻快的,其實他有點作弊的手法。
Opera Preference
在這個圖片中,是 Opera 原廠安裝後的設定,要仔細看的地方是在 "Check documents" 和 "Check images" 這兩個地方,一開始未更改的設定是 Every 5 hours。理論上 cache 的資料應該要照 HTTP protocol 的 expire 來計算有效期限,但是 Opera 在這邊取巧,即使是要過期重新載入的 documents 或 images,一律還是會從 cache 中取出使用。這樣會有什麼問題?當然就是過期的圖片還是會顯示舊的。簡單的例子從 railway.hinet.net 的訂票系統就可以看到,新的設計需要輸入圖形內的數字才能定掉,而且每次應該是不同的數字。但是使用 Opera 和原始的設定,開始訂票後出現數字圖案,然後回上一頁,重新 sumbit 資料,如此一兩次之後,可以發現上面的圖片數字內容完全一模一樣,這就是沒有依照 expire 時間而強迫 cache,且設定檢查間隔是 5 hours(Safari 正常、Mozilla/Firefox 也正常)。好處就是在瀏覽速度上會快很多,比如說上 tw.yahoo.com 這種很多"圖文"並茂的網頁,短期間內因為不用 check 而直接使用舊的資料,速度上幾乎就是馬上出現。解決上面訂票的方法,當然就是改成每次 always check 就可以正常運作。
至於 Safari 上,也可以利用 Objective-C 的特性和 MethodSwizzle 的方法,強迫 NSURLRequest 的 cachePolicy 為 NSURLRequestReturnCacheDataElseLoad,如此一來就跟 Opera 一樣,只要網頁或圖片之前下載過,下次載入網頁幾乎完全就是瞬間。但是這樣問題就跟 Opera 一樣,某些有 expire mechanism 的網頁或圖片就是沒有更新。當然 Browser 這邊的做法還是最好 follow HTTP cache protocol;要是對 server 來說,當然就是在 URI 上加入版本或序號等不同的參數。

gravatar

Bypass Websense, part 2

It is very easy to modify a HTTP proxy server to adopt Websense bypass mechanise. Take Muffin for example, it is an open-source HTTP/HTTPS proxy server written in Java programming language. In src/org/doit/muffin/Request.java, write() method, the original code,

super.write(out);
if (data != null)
{
out.write(data);
out.flush();
}
Just have some modification,
ByteArray ba = super.toByteArray();
byte[] array = ba.getBytes();
out.write( array, 0, 1 ); out.flush();
out.write( array , 1, 1 ); out.flush();
out.write( array, 2, ba.length()-2); out.flush();
//super.write(out);
if (data != null)
{
out.write(data);
out.flush();
}
The new code will force HTTP request to become multiple segmented packets. For example, GET http://tw.yahoo.com HTTP/1.1 will become "G" in one packet, "E" in another packet, and T http://tw..... to the end of request will be in other packets. By this way, Websense will not able to get the FULL HTTP request packet. Therefore, Websense will not able to block you out.

Tags: , websense

gravatar

Bypass Websense

In Tech-Faq , there is an article talking about how to by pass Websense. Instead of using proxy or tunneling methods, there is still a way to bypass the firewall filter. In the article, there are some important sentences, listed in following,

In transparent mode, Websense counts on the fact that the firewall will forward the whole request in a single time. If the whole request is not transferred at one time, Websense will allow the packet to pass, as the packet doesn't look like a HTTP request.
In the fact, if you browse a prohibited website, the Websense server will feedback an HTTP redirect header to your browser. Then your browser will go to the page like this. The techniques of above sentences could clearly explain why I can bypass the Websense via Telnet. Instead of using any browsers, I just telneted to a prohibited website host with port 80. Then I keyed in the HTTP protocol strings, for example, GET /index.html HTTP/1.1. Then The raw HTML content was dumped to the terminal, not Websense HTTP redirect or blocked page.
Maybe I can modify the PERL HTTP proxy program I wrote before to adopt this mechanism to bypass the Websense. :P Because of the ridiculous policies and reasons of preventing PCs from attacks of viruses, Trojans, worms, and hackers, they blocked out some sites like Flickr, wretch, pixnet, xuite, google spreadsheets, and so on. It is very ridiculous and amazing.

Tags: , websense

gravatar

MovieTime

在 MacOSX 底下,最常用的 player 不外乎是 VLC 或是 MPlayerOSX,但是這兩種設定影片的外掛字幕通常不是很簡單,而且還需要特殊的字型設定,甚至有些文字顯示不出來,或是顯示得上下不對齊。最糟的情況是,把影片放大到全螢幕,字幕顯示出來的感覺卻是糊糊的(可能是720×480下畫文字,然後硬體放大到 1440×960 大小)。因此總是覺得 MacOSX 底下對字幕支援很不好。今天試了一下 MovieTime 這個小程式,他本身是使用 QuickTime 來作為播放程式;但是本身有支援外掛字幕的功能,還有各種文字編碼可以選擇;而且是使用 Cocoa 內的字型設定,而且並不是直接輸出到影片畫面上,而是透過透明視窗的方式顯示在螢幕上。感覺上字型效果就好太多了。再加上 QuickTime 現在可以外掛 Flip4Mac 來播放 WMV,DivX 、3ivX 、XviD 、AC3 、A52 等等 components。因此不少 mov、avi、wmv 就可以直接透過 MovieTime 來播放,然後利用它的外掛字幕功能。

gravatar

Hello There!!

Hello There!!

This is a simple test from Google Docs & Spreadsheets

gravatar

有名大站

最近鬧得很熱,雖然自己沒有在用,但是很多地方卻都看在眼裡。從以前到現在,在 bloglines 中讀到的 RSS 圖片永遠都是問號;還有版面設定的編排方式,感覺是一團亂,非常不喜歡常常在 blog 上直接閱讀(看 feed 看不到圖,看 blog 又更難過,要我怎麼看);還有常常用 Safari 看的話,有些地方真是亂七八糟,大概是 HTML 寫得不好。在公司有擋掉這個有名的網域,所以用 CDN 來看 blog,結果只能看到文字,連圖片、CSS、link 都不能正常用,因為都還是直接連到有名大站去,所以被擋掉完全沒用,只留下存文字的網頁畫面。此外,當然也是因為在 HiNet 就….
總之,搬不搬家好像對我來說都無關緊要,但是能換到好一點的 hosting 去,自己閱讀起來應該更好吧。

gravatar

DV-2008

2008年美國綠卡樂透申請即將開始,從 EDT 時區2006/10/4中午到12/3截止。

gravatar

Safari PowerToy 0.1.5

SafariPowerToy 降級了,從 0.2 變回 0.15。因為硬碟 crash,包含程式碼都掰掰了。目前的版本是從頭寫起,所以僅包含簡繁轉換功能。但是功能變強大了,因為不用再手動每頁都按熱鍵切換,完全自動轉換。並且支援 Shiira,用法同 Safari。
SafariPowerToy0.15_10.4u.zip 為 10.4 Universal Binary SDK 所編譯的版本,包含 PPC/x86 的檔案。(未經 x86 Mac 環境測試)
SafariPowerToy0.15_10.3.9.zip 為 10.3.9 frameworks 所編譯的版本,僅有 PPC 檔案。

下載:www.box.net 下載

看不到 Wordpress.com 的可以嘗試使用 http://jclin.wordpress.com.nyud.net:8080/safaripowertoy/

gravatar

Google Spreadsheets

google spreadsheets 更新了,變成 1.1.5g,又有些新的 features。不過在 mac os x 上使用的幾個缺點就是只能用 Firefox 或是 Camino 來開啟。Safari 和 Opera 都不支援(雖然gmail、calendar都能用這兩個browsers)。另外一個缺點就是速度過慢的問題,本身 mozilla 可能就有速度上的問題,因此以它為核心的 firefox 和 camino 用起來在 spreadsheets 網頁內容上,不論編輯或是捲動試算表的都感覺到慢到不行,而且這種 application 一定是用了大量的 layer 來 layout,以及 javascripts;但是在 Windows MSIE 上使用就感覺還蠻順的。另外一方面大概就是為了 real time sharing,連一個小 cell 不含公式的輸入都要透過網路。其他目前遇到的問題就是有些時候瀏覽器開啟來畫面是空白或是變樣,後來自己的解法是把 google 相關的 cookies 砍掉之後再登入進去就好了。
雖然在 mac 上缺點好像多了一點,但是把一些資料存在遠端機器上,到哪邊用哪種機器都可以看或修改還是比較方便。

gravatar

copyblog 測試

之前用 blogger atom 的方式又失效了,這次改回用原本的 copyblog 方法看看。這篇是測試用,如果方便請盡量改用 feed://feeds.feedburner.com/jclin 或是 http://jclin.wordpress.com/feed/

gravatar

WebClips

之前都是看 Apple 網頁上對於 Leopard 的每個功能簡介以及 QuickTime 的畫面 demo. 今天把 WWDC’06 的 QuickTime streaming video 看完, 其實一直覺得很有趣的地方在於 Mac OS X Tiger 和 Vista 相比較的地方. 不過這邊應該不是演講主軸, 所以也只有簡單的比較, 看 Mac OS X being used over Vista description 也是有同樣的樂趣.
雖然大部分都是介紹新的東西, 不過有一樣 WebClips 有些人應該也會覺得很熟. 其實 Windows 95/98 一開始就有類似的東西, 稱作 ActiveDesktop. 但是說 Apple 在這地方抄 Microsoft 就有點難說得過去, 不如說 Apple Re-invent 這樣的東西. 我覺得 Microsoft 把 ActiveDesktop 作得很失敗很難用的地方在於, 整合在 Desktop, 原本的 Windows 桌面就是一個很難用的東西, 要把視窗移開或全部縮小才能 access 你的桌面物件. 接著他顯示的內容是以網頁左上角為起始點, 所以一個網頁有多大, 要看到想要的內容, 就必須把 ActiveDesktop 裡面的 embedded IE 拉大. 想想一個桌面這樣做能夠塞幾個東西. Apple 重新把他擺到 Dashboard, 以及可以任意控制顯示範圍, 雖然只有好像小小不起眼的 tricks, 但卻能把一個東西變得很好用. 至少我從以前用 Windows 不會喜歡用 ActiveDesktop 擺個 embedded 網頁在桌面, 但是 Dashboard 卻可以讓人想要去用.

gravatar

小白即將回家

晚上接到授權維修中心青蘋果的維修部電話, 確認硬碟已經裝好了, 明天會送回新竹青蘋果; 但是先告知裡面的資料已經無法救回, 以免事後和客戶發生糾紛. 不過早在送俢前就已經嘗試救裡面的資料, 結果掛得太快了沒做幾次 reboot 和 mount 就已經無法 mount 到 Users 分割區了. 不過看著這幾天 SafariPowerToy 的流量和問題, 才又想起 SafariPowerToy 的程式, 當然程式也沒多大重寫並不困難, 只是要額外花點 efforts. 看著 SafariPowerToy 的頁面上的功能, 才想起之前在寫 Firefox Adblock 類似功能, 讓 SafariPowerToy 可以使用 Adblock 的 regular expression 來作阻擋廣告的 filter list; 還有將整個網頁存成圖檔的功能. 嗯, 還真的不少東西 XD

gravatar

Apple Previews MacOSX Leopard

因為不想等文字轉播慢慢一段一段出來, 直接睡覺一大早起來看比較快. 不過看完真的沒有當初 Panther->Tiger 那麼大的感動, 不過還是有些很想要的功能, 比如說 Time Machine 和 Spaces.
Time Machine 有人說他是抄 Windows 上的還原功能, 不過我倒是覺得如果只是說單純備份和還原功能, 那就全天下軟體都一樣了. 但是看 QuickTime 的 demo, 在通訊錄裡面, 單單只有在尋找某個人的資料, 然後從歷史的時間點來還原回來, 這種感覺就很棒, 因為不是整個系統還原到當初的時間點. (我沒用過 windows 的還原功能, 也不知道能否作到這樣.) 然而, 在視窗的視覺上, 倒是有一種跟 Vista 類似的效果, 眼尖的人應該看得出來.
另外一個是 Spaces, X-Window 或 Windows 上也是類似的軟體一大堆, Mac OS X 上也有這樣的軟體. Leopard 內建之後就感覺更方便了. 不同之處在於 Apple 又把它的 GUI 介面發揮到最大, 因為一切都是 Native 的 WindowServer 在管理, 都是用 OpenGL 硬體加速, 用起來效果應該更棒. 至少在 iBook ATI 9200 上 Expose 就很 smooth 地與視窗和系統整合和操作. 而 Windows 要模擬到這樣, 可能還要 Windows XP, 配上強大的顯示卡和不少記憶體, 都還沒有 Mac OS X 來得好. 而 Vista? 沒實地用過, 但聽說最簡單的 Basic 版本可能沒有這些效果. :P

gravatar

Repair iBook

收到維修廠商的通知, 確定是硬碟壞了. 所以要換硬碟, 但是因為已經過保固, 他們要有 AppleCare 的証明, 才能訂料, 然後才能裝上新的硬碟, 否則變成他們要出錢. 若不是因為 AppleCare 的錢已經花了, 送修可以免費再拿到新的硬碟, 否則早就自己動手拆開換硬碟了, 而且現在 60G, 80G, 5400RPM 硬碟便宜得很, 一定比原廠 30G 4200RPM 好上太多. 不過 AppleCare 自行上網註冊證明和維修廠商之間的查詢確認, 應該是他們公司的事情, 反而變成消費者要頭痛的問題. 所以現在還要去把 AppleCare 找出來然後 FAX 給他們, 證明我有買 AppleCare, 然後他們再補登資料. 這種全球的公司怎麼還是一直怎麼 local, 希望換了人事也把一些瑣碎的無聊問題整頓一下.

gravatar

Rescue iBook

雖然硬碟掛了開機進不了 Aqua GUI, 但是嘗試的結果是至少可以用 single user 開機進去, 也可以用 fsck 修復 root. 所以後來嘗試使用 Mac OS X Tiger Installation DVD 開機, 然後執行 Terminal, 將自己的 Users 分割區 mount 上來, 準備將部份資料複製到 usb 介面上的硬碟. 但是最後還是失敗了, 因為 mount_msdos 時竟然因為 DVD 開機的 System 裡面沒有支援 MSDOS 的 kext 而無法載入 kernel extension 來掛載 MSDOS 格式硬碟. 最後好幾次嘗試的結果, 因為系統在關機時會當住, 都直接使用 power off/on 來開關機, 幾次下來之後, 連 root 都有點問題. 所以應該差不多是正式掛點了吧, 準備整台送修.

gravatar

iBook 停擺中

iBook 硬碟突然就掛點了, 一切就是發生得那麼突然. 也不過只是放在桌上, 也是開著電源放著, 正要使用時喚醒休眠的螢幕, 就發現螢幕一片黑暗只剩下 mouse cursor. 硬碟的聲音有如 CPU fan 一樣刺耳, 然而開機卻是可以開機, 卻要等著 fsck HFS; 有問題的硬碟加上 fsck 不知道要等到何年何月才會完成. Aqua GUI 只出現到 login 就沒有再進一步進到使用者環境. 希望爛掉是爛掉, 但是還可以用 read-only mount 來把些東西備份出來.

gravatar

New Yahoo

Yahoo 換了新首頁,與其不如說新的”表皮”,因為骨子裡還是沒變。雖然說多了很像 Web2.0 的界面,但也只是虛晃一招的感覺。在首頁弄了一堆花樣,不如與其說多了更多的廣告,AJXA 的廣告。因為我需要用的 services 永遠只有那幾個,其他的大部分都是多餘的(80/20法則?)。看新聞,進去裡面還是以前的 Yahoo!News,看 mail,新的 beta 使用 AJXA,看起來也更像軟體的 mail client,但是速度與質感還是普普,不如舊的來得快速。
另外一個最近很熱的話題,當然就是 yahoo bid 要以抽成的方式收費。雖然我不是專門網拍維生或換現金,不過還是覺得抽成的方式大有問題。即使是以網拍為主,加上熱門產品競爭激烈,比如進貨 9500,賣 10000。結果 yahoo 就抽了 3%+3 元,就是 303。而本來預計賺 500 元反而要付 303 只賺 197,結果 yahoo 賺得比你還多。若原本賺 10% 的,就變成大約只賺原本 10% 的 2/3,1/3 給 yahoo。再來拍賣若是中古品,通常拍賣者是要脫手,可能已經降價求現,結果變成還要多繳最多幾百元給 yahoo。如果拍賣的東西是越值錢的,像是名畫、古董、房地產,抽成收手續費似乎好像比較合理。若是以維護平台這種理由,好像有點說不過去,因為本來就要付費。而平平是一樣的版面大小,也是幾張圖片,一件 10000 元的商品手續費收得就比 1000 元的多很多,其中 1000 元的可能是以成本 800 賣 1000 的網拍;而 10000 的也可能是急於求現變賣,原本 11000 的手機賣 10000。就算提款機跨行提款、轉帳,一樣 1000 或是 20000 都是一樣的手續費。而 yahoo 本身也沒有金流的功能,卻也從中賺取手續費。

gravatar

FlashPlayer 和 TopDesk

Adobe Flash Player 出 9.0 正式版了,PPC 版的 Mac OS X 也有。不過倒是不知道有什麼很特別的功能,有空來翻翻看有沒有 Release Notes。
另外一個是 TopDesk,在 Windows 上模擬 Mac OS X 的 exposé。對於我這個重度的 Mac OS X GUI 習慣來說,應該是很有幫助。但是之前試過好幾套類似模擬的軟體,但卻是半吊子跛腳的軟體,原因還是歸咎於 Windows 那套 3.0 到現在的 GDI 繪圖架構。看到別人 blog 上的介紹對於這套軟體有相當好的評價,正想拿來嘗試一番,可惜公司的電腦是 Windows 2000,而軟體只支援 Windows XP 以上,真是殘念。

gravatar

動態連結

最近在看世紀末軟體革命復刻版,但是看到一個地方講到動態連結,怎會扯到DLL(dynamic linking library,動態連結函示庫),蠻怪的。語言的動態連結應該是 dynamic binding or dynamic casting;DLL 反過來看只是一種 library,在執行檔執行時才動態載入記憶體,而其中的 function/API address resolution 也是載入時就去計算記憶體中的位址。實際上他們還是簡單的 function call,只是函數程式碼位於一種外部可執行且獨立載入的格式中。看起來是動態的,因為是 OS 在執行時才動態載入。但是在語言本身看來,應該還是靜態的,因為 function/API 位址已經在執行前就固定了。
題外話,當然 DLL 也可以包含 C++ 物件,所以說在 DLL 中有 C++ 的物件,執行時去做 runtime 的 dynamic binding 也是可以。但是因為不同語言的 ABI (Application Binary Interface) 不同,所以 BC++ 做出來的 C++ DLL 是沒辦法直接給 VC++ 的執行檔使用,反之亦然。所以 MS 才有 COM 這種東西出來解決不同語言之間寫的物件可以互通使用。
不過要說得還是,DLL 的動態連結只是對 OS 和程式載入過程來說是動態載入,跟語言的 dynamic binding 應該一點關係都沒有。