TeraTerm Pro - 取代超級終端機

一月 11th, 2008
30,639 views 4 comments

Windows 內建的超級終端機(HyperTerminal),有使用過的應該都知道問題很多,經常跑出亂碼、甚至程式當掉,可以說是年久失修的工具阿,連 Vista 都將它拿掉了,不過有許多 router、硬體設備仍是要透過 Serial Port 去做 debug、設定等等,所以有沒有可以取代超級終端機的軟體呢?

有的,試用過 TeraTerm Pro 之後就愛上他了,擁有比超級終端機簡潔的畫面,原有的功能都沒少,還增加了 UTF8/SSH/telnet/Macro...,在 Vista 上跑也沒問題,所以,換掉超級終端機吧!

TeraTerm Pro 專案網頁
下載頁面

軟體筆記 , , ,

Wordpress 2.3.2 無法中文化問題

一月 10th, 2008
3,282 views 3 comments

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, 程式筆記 , ,

Google Map 地圖定位

一月 10th, 2008
6,509 views 3 comments

Google Map 提供的 API 實在是強大又好用,結合 GPS 很快就可以做出地圖定位的網站,將之前的 Urmap 範例修改了一下,成為 Google Map 地圖定位系統,為了能夠展示所以將座標先寫好讓它自己動態更新,其中按下停止按鈕會畫出所有紀錄點的連線,可做路徑追蹤。

Google Map API 網路上的資源已經相當豐富了,在此就不多敘述,比較特別的是畫折線(polyline)的部份,如果用原始的 GPolyline 方法來畫,大概幾十個點就需要運算很久,甚至導致瀏覽器 crash,所以 API 後來又加入了編碼折線(encodedPolyline)的功能,先將所有的點用特定演算法轉換成一串文字符號,再丟給 GPolyline.fromEncoded 顯示,幾乎是馬上就顯示出來了,差很多喔,而這個編碼演算法也已經有人寫好囉!請看:Encoding polylines for Google Maps

Ajax, Other, 程式筆記 , , ,

CodeIgniter 設定 MySQL 編碼

十二月 22nd, 2007
3,822 views 2 comments

※ 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, 程式筆記 , , ,

開源中文語音合成:eSpeak

十二月 1st, 2007
9,484 views 2 comments

語音合成系統通常拿來做 TTS(Text to Speach) 應用,英文 TTS 已經滿多且成熟了,但是中文的目前大多是廠商或實驗室驗自行開發,所以可能沒辦法免費拿來研究。

最近發現的 eSpeak 這個 Open Source 已經在最新的開發版本中加入中文語音支援囉!網頁在這裡,應該不久就會變成正式版本釋出。根據了解,好用的 StarDict 翻譯軟體也是使用 eSpeak 來作為朗讀發音系統哦!

在嘗試移植到嵌入式 ARM Linux 時失敗,因為實在太多 Shared Libraries 了,如果有成功的高手希望能分享一下心得。

Linux, 軟體筆記 , , ,