WordPress 最近已經更新到 2.3.2 版了,趁著最近專題發表結束的空閒來更新一下,到官方抓了新版以及 Kirin Lin 的中文語系,由於 2.3.2 只是些 bug 及安全性修正,所以就直接採用覆蓋大法更新了。完工之後,咦?怎麼變英文介面了,wp-config.php 設定沒錯阿,於是求助 google 大神,馬上就找到了這篇,原來在 PHP 5.2.x 以及 64bit 系統下會有這個問題,登入 BlueHost 主機的後台看一下,果然沒錯,開始修正囉!
其實只要修正一行即可:
wp-includes/gettext.php LINE:117
if ($magic == ($MAGIC1 & 0xFFFFFFFF) || $magic == ($MAGIC3 & 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms
更改成:
if ($magic == $MAGIC1 || $magic == $MAGIC3) { // <- 64 BIT FIX: CHANGE THIS LINE!
ok!
Other, 程式筆記
bug, wordpress, 中文化
Google Map 提供的 API 實在是強大又好用,結合 GPS 很快就可以做出地圖定位的網站,將之前的 Urmap 範例修改了一下,成為 Google Map 地圖定位系統,為了能夠展示所以將座標先寫好讓它自己動態更新,其中按下停止按鈕會畫出所有紀錄點的連線,可做路徑追蹤。
Google Map API 網路上的資源已經相當豐富了,在此就不多敘述,比較特別的是畫折線(polyline)的部份,如果用原始的 GPolyline 方法來畫,大概幾十個點就需要運算很久,甚至導致瀏覽器 crash,所以 API 後來又加入了編碼折線(encodedPolyline)的功能,先將所有的點用特定演算法轉換成一串文字符號,再丟給 GPolyline.fromEncoded 顯示,幾乎是馬上就顯示出來了,差很多喔,而這個編碼演算法也已經有人寫好囉!請看:Encoding polylines for Google Maps
Ajax, Other, 程式筆記
Ajax, API, Google, JavaScript
※ CodeIgniter 1.6 已釋出,不需再做這篇的修正了哦!
先前有提到過 CodeIgniter 這個 PHP Framework,也用它做了幾個 case,當然開發速度不能說快上多少,但確實讓程式碼變得整齊優雅許多。
使用 CI 目前遇到第一個問題是存取 MySQL 資料的問題,在 MySQL 4.1 以後採用了多層式編碼設定,簡單說就是不管是資料庫、資料表、欄位或是 Client 連線階段,都可以分別設定編碼,所以即使 server 都改成了 utf8,PHP 到 MySQL Server 的這個 connection 卻還是預設的(latin1),許多亂碼就是這樣造成的,應該已經有不少人知道解決方法,就是先送出一個改變編碼的查詢:SET NAMES 'charset'。
然而目前 CodeIgniter 並沒有這樣的設計,所以只好自行改 code 囉!
Step1:修改 system/application/config/database.php
增加一項:$db['default']['charset'] = "utf8";
Step2:修改 system/database/DB_driver.php
在 32 行之後的宣告增加:var $charset = '';
接著 96 行的陣列增加:'charset' => '',
Step3:修改 system/database/drivers/mysql/mysql_driver.php
74 行 return 前加入:
if (!empty($this->charset))
{
@mysql_query("SET NAMES $this->charset");
}
這樣就 ok 了,如果使用 mysqli 請如法炮製。另外如果主機環境符合,可使用 PHP 內建函式來設定:
// PHP >= 5.2.3,MySQL >= 5.0.7 for mysql
@mysql_set_charset($this->charset, $this->conn_id);
// PHP >= 5.0.5,MySQL >= 5.0.6 for mysqli
@mysqli_set_charset($this->conn_id, $this->charset);
PHP, 程式筆記
CodeIgniter, MySQL, PHP, 編碼
關於如何編譯 ZD1211/ZD1211B 晶片的 USB 無線網卡 driver,經常在各大討論區及 BBS 看到有人提出相同的問題,因此來寫個教學。
前往 ZD1211 專案網站可以知道目前有三種版本的驅動,其中建議使用 zd1211rw 這個版本,因為它持續在更新且已納入 Linux 2.6.18 以後的 kernel 裡。zd1211rw 支援這三種晶片:
- ZyDAS ZD1211
- ZyDAS ZD1211B
- Atheros AR5007UG
不過既然都已經納入 kernel 了為什麼還要編譯驅動?因為還是有很多產品的 USB ID 不能被 zd1211rw 所辨識(我的 PCI GW-US54GXS 就是),當然就沒辦法驅動囉!這篇要做的就是從 kernel 裡的 zd1211rw source code 加入對應的 USB ID,主機環境是 ubuntu 7.10,其他版本應該也差不多。
首先要安裝編譯相關套件 & 下載 linux source
$ sudo apt-get install build-essential kernel-package linux-source
切換至 src 目錄並解開 linux source
$ cd /usr/src
$ sudo tar -xjvf linux-source-2.6.22.tar.bz2
拷貝 kernel 設定檔(.config) 至 linux source
$ sudo cp linux-headers-2.6.22-14-generic/.config linux-source-2.6.22
編輯 zd_usb.c 加入新 USB ID,可利用 lsusb 指令可以找出網卡的 ID,如:2019:5303
$ cd linux-source-2.6.22
$ sudo vim drivers/net/wireless/zd1211rw/zd_usb.c
在檔案開頭不遠處可以看到一堆 USB ID 號碼,就是要加進這裡面,GW-US54GXS 是 ZD1211B 晶片,所以在 ZD1211B 下方增加一行:
/* ZD1211B */
{ USB_DEVICE(0x2019, 0x5303), .driver_info = DEVICE_ZD1211B },
確認後就存檔離開
開始編譯驅動
$ sudo mkdir .tmp_versions
$ sudo make drivers/net/wireless/zd1211rw/zd1211rw.ko
沒錯誤就會產生 zd1211rw.ko,將它覆蓋原本系統中的
$ sudo cp drivers/net/wireless/zd1211rw/zd1211rw.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/zd1211rw
$ sudo depmod -a
重開機應該就可以正確驅動了:D
參考資料:
Adding new device IDs to zd1211rw
Linux, Other, 硬體筆記
driver, Linux, wireless, zd1211
目前不少網站都有自動產生網頁縮圖的功能,像是 HEMiDEMi、funP 推推王、Alexa 等等,雖然很想知道其中所使用的技術,不過似乎很難找到相關文章,大多是倚賴提供縮圖服務的網站居多。
Bluga.net WebThumb
我覺得很不錯的縮圖服務網站,每個月可免費建立 250 組縮圖,且提供 API 可以應用在程式上,產生縮圖速度算滿快的,大約 2~5 分鐘即可顯示。
artViper Website Tools
這網站有提供一些 Website Tools,其中就有網頁縮圖的功能。
Website Thumbnail Generator
這個是不需要依賴其他網站的,使用了 IECapt 這個小工具,所以主機只能是 Windows,配合 PHP 來自動產生縮圖。
延伸閱讀:
Website Thumbnail Creators (Website Snapshot Generators)
Other, PHP, 程式筆記
PHP, Webthumb, 網頁, 縮圖
近期迴響