Joe Horn 的啟示錄
Joe Horn's Blog
  • LinkedIn
  • Facebook
  • Instagram
  • GitHub
  • Docker Hub
RSS
  • VPS Referrals
  • My Plurk
  • My Plurk Bot

7 月 18 2008

RoundCube 的郵件中文夾檔問題

這兩天在處理 RoundCube 的郵件中文夾檔問題。
原本覺得情況很詭異,因為 Firefox 都很正常,可是 IE 有這兩種狀況:

  • 直接以左鍵點選,中文檔名的附帶夾檔無法下載。
  • 以滑鼠中鍵(開新的 Tab),就正常了。

坦白說,RoundCube 的程式架構實在很難摸,所以追了蠻久的..

我幫忙追問題的 RoundCube 版本是 0.1-STABLE 。
最後追到的解法是去修改 program/steps/mail/get.inc , diff -u 生出來的檔案內容是這樣:

--- program/steps/mail/get.inc.orig     2008-07-18 02:01:46.000000000 +0800
+++ program/steps/mail/get.inc  2008-07-18 15:45:37.000000000 +0800
@@ -106,9 +106,19 @@
       }
     else
       {
-      header(sprintf("Content-Disposition: %s; filename="%s";",
+       $HTTP_USER_AGENT = $_SERVER["HTTP_USER_AGENT"];
+
+       if (strstr($HTTP_USER_AGENT, "compatible; MSIE ") !== false &&
+            strstr($HTTP_USER_AGENT, "Opera") === false) {
+             header(sprintf("Content-Disposition: %s; filename="%s";",
+                     $_GET["_download"] ? "attachment" : "inline",
+                     $part->filename ? rawurlencode(abbreviate_string($part->filename, 55)) :
+                                       rawurlencode("roundcube.$ctype_secondary")));
+       } else {
+             header(sprintf("Content-Disposition: %s; filename="%s";",
                      $_GET["_download"] ? "attachment" : "inline",
                      $part->filename ? abbreviate_string($part->filename, 55) : "roundcube.$ctype_secondary"));
+       }

       // turn off output buffering and print part content
       $IMAP->get_message_part($MESSAGE["UID"], $part->mime_id, $part, true);

關鍵就在… 給 IE 吃的話,要先用 rawurlencode() 處理一遍。 XD

By Joe Horn • Mail, PHP, WWW 1 • Tags: IE, RoundCube

7 月 12 2008

Google Reader 怪怪的?

忘記從什麼時候開始(好像是我的 Firefox 升級成 3.0 ? O_o),Google Reader 常常變成這種畫面:
Google Reader Error
感覺像是被踢出來了一樣… =_=b

而且,登入時要看運氣,有時得登入個 2~3 次…

相同的瀏覽器(Firefox)視窗,不同標籤頁的 Gmail 都沒事,就 Google Reader 有問題。
真詭異啊~ :-|

By Joe Horn • Life, WWW 2 • Tags: Firefox, Gmail, Google Reader

7 月 5 2008

資料同步與備份

因為 wise 在上一篇文章留了 comment ,所以… 順便分享一些想法跟作法。

根據以前使用 Open WebMail 的經驗,我愈來愈喜歡把資料放在網路上。
把資料放在網路上,最大的好處就是重灌時不需要花費太多時間備份與還原;第二,只要有網路跟電腦,就能隨時隨地存取自己的資料。
於是,我把重要資料送進 SubVersion 系統,把一些文件放在 Wiki 與 BBS,把信件統統轉到 Gmail,把圖片放到 自己架設的相簿系統 。

書籤的方面,我用 del.icio.us Bookmarks。
搭配 del.icio.us 發佈給 IE 用的附加元件,IE 跟 Firefox 都能快速存取我常用的網站。

因為Google Browser Sync 可以同步密碼、COOKIE、書籤,所以在 Firefox 2 時期,我把密碼管理員裡面的密碼跟書籤傳送,並儲存在網路上面。

現在,Google Browser Sync 沒了,我可能得找找 Firefox 的備份軟體了… 囧

By Joe Horn • Computer Software, Thoughts 2 • Tags: backup, bookmark, Firefox, IE, Subversion, synchronization

6 月 30 2008

Firefox 3 …

約兩個禮拜前,我換上 Firefox 3 。

我在 Firefox 2 使用的附加元件是這些:

  • del.icio.us Bookmarks
  • Download Statusbar
  • DownThemAll!
  • dragdropupload
  • Fasterfox
  • Firebug
  • FlashGot
  • Forecastfox
  • FoxyProxy
  • Gmail Manager
  • Google Browser Sync
  • Google Toolbar
  • Greasemonkey
  • Image Zoom
  • Link Alert
  • Live HTTP Headers
  • Mouse Grestures
  • PDF Download
  • RefControl
  • Right Encoding
  • SafeHistory
  • SearchStatus
  • Web Developer
  • YSlow
  • 新同文堂(New Tong Wen Tang)

升級成Firefox 3 之後,某些附加元件不能用(順便分享我的解決辦法)。

  • Fasterfox:解法請參考 這篇部落格文章 。
  • Firebug:直接在 Add-ons 頁面 裝上新版(目前是 1.2.0b4)。
  • Google Browser Sync:停止開發了,bye bye!(哭)
  • Right Encoding:解法請參考 這篇部落格文章 。
  • SafeHistory:找不到解法…. 也不知道還需不需要… orz
  • 新同文堂(New Tong Wen Tang):安裝 0.3.9.1 版 。

此外,我把 Mouse Grestures 拿掉,再加上這些:

  • FireGrestures
  • Undo Closed Tabs Button
  • URL Fixer

因為在 Firefox 3 的網址列輸入位址時,跳出來的快速完成選單變複雜了,不好用,所以我也補上 這個附加元件。

最後,補上小感想跟發現:

  • Firefox 3 處理 javascript 的效能提昇了不少。
  • Firefox 3 的 about:config 裡面,沒有 browser.cache.memory.capacity 可以玩了…. orz

By Joe Horn • Computer Software 1 • Tags: extension, Firefox

6 月 26 2008

再換 theme…

之前的忙碌與壓力,讓我一直沒空管 Blog,就連個人板也很少貼文章。

近來比較閒了,就把這裡進行大整頓,順便把使用已久,不支援 widget 的 theme 換掉。

因為 sidebar 掛了一堆東西,所以我還蠻喜歡之前那個 theme,可以把不想看到的區塊折疊收起來。
現在這個 theme,右邊 sidebar 的框框不僅支援 widget,右邊的 sidebar 也能收放,更可以拖拉,排列順序。 8-)

By Joe Horn • About My Sites 2 • Tags: theme

4 月 9 2008

網拍的隱私…

上週一,有幸出席露天拍賣營運長,葉奇鑫先生的演講。
演講內容非常豐富與生動。

而我在演講後,私下跟他提及網拍隱私的問題,這點是許多人疏忽掉的部份。
講白話一點,就是目前的網拍的使用者評價頁,可以看到這個人買過什麼、賣過什麼。
如果商品標題中包含了一些詳細的說明,大家可以從相關資訊頁面得知那個人的特殊癖好,罩杯^H^H體型大小。

他在演講中提到,露天拍賣每週都有個新功能上線。
所以,他當場回覆說,露天會在這週解決這方面的問題。
剛才搜索了一下, 4/7 晚上九點已有網友在網路上提到這個功能了。
( 系統功能頁面在此 )

看看 Y 拍啥時跟進吧! O_o

By Joe Horn • Thoughts, WWW 3 • Tags: bid, Ruten

3 月 19 2008

用 MySQL 處理時間資料所應該注意的事

我在 之前的文章 提過 MySQL 裡面,協助我們處理時間資料的 functions,現在來講一下該注意的事。

可能很多人還沒發現到 Year 2038 Problem 。
2007 年 12 月,我在開發某個網頁系統時碰上了這個問題。

在 PHP5 裡面, mktime(11, 14, 7, 1, 19, 2038) 傳回 2147483647,mktime(11, 14, 8, 1, 19, 2038) 卻丟出空白值,而 2147483647 正好是 C 語言中,signed long int 的最大值。
而且,MySQL 的 UNIX timestamp 也有這種問題,以下這串語法傳回來的數值是 0 。

SELECT UNIX_TIMESTAMP( NOW( ) + INTERVAL 50 YEAR );

目前,就我測試過的部份,PHP4 與 JAVA 都沒有這種問題。
可是,我們不知道 PHP4 開發出來的系統,會不會被拿到 PHP5 上面跑。
所以,在 MySQL 裡面使用 datetime 或 timestamp 來紀錄時間資料,並搭配處理時間資料的 functions 來處理時間型資料,不僅方便我們辨識時間,也可以省去不必要的麻煩。

有些人可能會覺得,使用 datetime 或 timestamp 來紀錄時間資料,取出來的資料型態是字串,如果只需要年、月、日,就得作字串分割。
其實,MySQL 的 DATE_FORMAT 就足以應付這種狀況了。 :-P

最後,用 MySQL 處理 datetime 或 timestamp 型態的資料,請多注意一件事:

SELECT '2008-01-31 00:00:00' + INTERVAL 1 MONTH;

其結果為 2008-02-29 00:00:00。

SELECT '2008-01-31 00:00:00' + INTERVAL 30 DAY;

其結果則是 2008-03-01 00:00:00。

以上,我的報告完畢,謝謝收看。 XD

By Joe Horn • Database 0 • Tags: MySQL

3 月 9 2008

在 MySQL 中處理網路 IP 位址型的資料..

一、兩年以前,我會直接在 MySQL 中,以 varchar 型態,直接把 IP address 存入。

直到我在某次進行系統開發時,翻過 MySQL 的 Operator and Function Reference ,才發現這兩個好用的 functions :

  • INET_ATON()
  • INET_NTOA()

透過這兩個 functions ,我開始用 unsigned int 型態來存 IP address。

跟以往的 varchar 比較,使用 unsigned int ,搭配這兩個 functions 有著以下這兩項優勢:

  1. 資料型態設定成 unsigned int ,實體儲存空間僅需要 4 bytes 。
  2. 進行 IP range 的比對與判斷更方便。

尤其是第二項,以往使用 varchar 型態儲存 IP address 時,我必須先取出資料,再使用字串處理函式,甚至是正規表示式對字串進行切割。

而今,運用 INET_ATON() ,把原本的 IP address 轉成數字存成 unsigned int 之後,我只要把區段的頭、尾 IP address 用 INET_ATON() 轉換成數字,就可以利用大於、小於,甚至是 MySQL 的 between 來作比對或判斷了。

如果遇到的是以 CIDR 表示的區段,使用 PHP 開發程式或系統的人也可以選用 Pear 的 Net_IPv4 套件,呼叫 parseAddress() ,取得該區段的頭、尾 IP 等資訊,再運用 INET_ATON() ,一樣可以利用大於、小於、MySQL 的 between 來作比對或判斷。

By Joe Horn • Database, Network 0 • Tags: IP address, MySQL

3 月 6 2008

[好用軟體] IE7Pro(以前叫 IEPro …)

我常用的瀏覽器是 Firefox 啦。
先不提擴充套件,光是網頁內的文字搜尋,Firefox 提供的搜尋列就比 IE 另外跳出小視窗的方式還棒。 XD
另一方面,我經常使用 Firefox ,搭配滑鼠手勢擴充套件(Mouse Grestures)瀏覽網頁。

可是… 大家都知道,有些網頁逼我們一定得用 IE 才能瀏覽… orz

我很早就安裝了 IE7 ,所以… 有時我會在 IE7 裡面使用滑鼠手勢,滑鼠移動後,軌跡沒有出現,我才察覺… =_=b
(感覺好像是開 Windows 的命令提示字元,下 ls 這種指令一樣… orz )

如今,安裝這篇文章的標題所提到的 IE7Pro ,就能讓 IE7 支援滑鼠手勢、網頁文字搜尋列等,許多 Firefox 才有的特異功能。
而且,IE7Pro 還是一套 Freeware ! XD

因為 IE7Pro 的功能蠻多的,所以我就不多作解釋了。
有興趣的人可以自行下載,安裝起來玩看看。 :-)

官方網頁: http://www.ie7pro.com/

強烈建議那些沒有用過 Firefox 的人,在安裝 IE7Pro 之後,隨便開個網頁,按下 Ctrl + F ,體驗一下網頁文字搜尋列的奧妙。 XD

題外話,Microsoft 在上一次的 Windows update 中,把 IE7 包進去了。

雖然,可能有一堆人沒設定接收 Windows update,仍然在使用 IE6 。
甚至,我還在 Apache 的 log 裡面,看到 IE5 的蹤跡… :-O
不過, Microsoft 這種作法應該造福了不少網頁程式、系統、美工等等的開發人員。
因為,網頁相關開發人員幾乎可以不用再額外考量網頁在 IE6 上面的顯示情況了~ XD

By Joe Horn • Computer Software 3 • Tags: IE, IE7Pro

2 月 26 2008

Unlocker 的另一個妙用 – 卸除 USB 隨身碟

最近才發現 Unlocker 的妙用。

有時我們會遇到 USB 隨身碟無法卸除的問題。
Windows 系統會跳出如下的視窗:
USB 隨身碟無法拔除

以往…
如果趕時間的話,我會不管這個警告視窗,直接拔除。
如果時間不趕的話,我會採取重新開機的手段。 XD

我的電腦已經安裝了 Unlocker ,可是,我最近才想到這個更安心,更有效率的解法…
步驟大概是這樣:

  1. 在「我的電腦」中,對 USB 隨身碟的磁槽按滑鼠右鍵,選擇「Unlocker」。
  2. 跳出以下這樣的視窗後,點選「全部解鎖」。
    運用 Unlocker 移除 USB 隨身碟

接下來就可以依照原本的程序卸除 USB 隨身碟了… :-)

By Joe Horn • Computer Software 1 • Tags: Unlocker

«‹ 9 10 11 12›»

Site Info

All content on this Blog is licensed under CC BY-NC-SA 4.0

About Me

profile for Joe Horn at Stack Overflow, Q&A for professional and enthusiast programmers


My mail!

獅子座

Coffee Powered!

F1 fans

motoGP fans

Linkin Park

I am a Taiwanese!

Recent Comments

  • Avatar of johnpupu johnpupu: PHP 還有這個 phpsavant.c……
  • Avatar of Jerry Jerry: 这个不是foreach的问题。 0 ==……
  • Avatar of Joe Horn Joe Horn: 看來問題在 if ... else ..……
  • Avatar of jnlin jnlin: 因為 'b' 被轉型成 0 了…
  • Avatar of 路人 路人: 跟 foreach 沒有關係 ?…
  • Avatar of bill bill: 註冊表那裡要設定 BasicAuthLe……
  • Avatar of 虫 虫: .svn 的檔案減少可以增加在 wind……
  • Avatar of mars mars: 如果說寫程式是理性極致的話,那寫小說就是……
  • Avatar of Joe Horn Joe Horn: 已更新文章。…
  • Avatar of jackcal jackcal: joehorn.idv.tw關於轉貼 h……

Post Categories

  • About My Sites (16)
  • Computer Hardware (28)
  • Computer Software (45)
  • Database (23)
  • FreeBSD (21)
  • Funny (14)
  • Life (23)
  • Linux (5)
  • Mail (19)
  • Network (12)
  • Programing (40)
    • .NET (5)
    • JAVA (2)
    • Javascript (6)
    • PHP (29)
  • Thoughts (34)
  • Windows (13)
  • WWW (79)
    • phpBB (7)
    • WordPress (18)

Blogroll

  • 這裡沒有美食

Tags Cloud

AMD Apache benchmarking Bloglines Coppermine DNSBL eAccelerator fio Firefox free FreeBSD Gmail Google HDD Hsin-chu HTTPS IE Intel Javascript Lenovo Longhorn Microsoft MSN MySQL Office Percona XtraBackup performance PHP phpBB pirate Postfix restaurant RSS security sendmail software SpamAssassin SSL Subversion Taiwan theme translation Windows WordPress Yahoo

Ads

↑

© Joe Horn 的啟示錄 2025
Powered by WordPress • Themify WordPress Themes