網頁

2005年11月29日 星期二

clode 是好人

剛剛睡醒發現有好心人幫我修了 blog 上 IE 會發生很有趣的現象的 bug:
漫雲端 說:
要不要我幫你修一下 blog 的 style.css
漫雲端 說:
stare
漫雲端 說:
blockquote{
background: #EEE /*url(img/blockquote.png)*/ no-repeat bottom left;
/*border: 1px solid #E0E0E0;*/
padding: 10px;
padding-bottom: 10px;
margin: 1em;

margin: 15px 30px 0 10px;
padding-left: 20px;
border-left: 5px solid #ddd;
/*Font-family: monospace;*/
}
漫雲端 說:
把 padding-left:20px; mark 掉再試試用 IE 看大概就正常了

真是個好心人,好心有好報,這禮拜約會一定會順利 XD。

11/29 UPDATE: 我發現他還是爛的阿 @_@

2005年11月28日 星期一

一些 online game 資源

digg.com 上面看到的「Free Online Multiplayer Games列表

還有免費的「Space Cowboy」。

另外之前從 wikipedia 上查到的:「MUD」的定義,裡面有不少連結可以慢慢追。

另外,對岸的某個研究 MudOS 的人的 blog ,還有鹿小滑 strip 過的 v22.2b14 的 source code doxygen

USB/IP Project

digg.com 的這篇:USB/IP Project 提到了的 USB/IP 這個 Project 的官方網頁:「http://usbip.naist.jp/」。看到 USB 不禁又想到我的報告半個字都還沒生,12/22 ...大概快仆街了。不過這 Project 看起來蠻有意思的,搞不好可以變成一張 slide 順便提一下。

Operating System Programming

一樣是從 digg 的這篇看到的:Operating System Programming,提供了很多很多很多的文章,順手 note 下來。

OS Development」 ,全部看完不知道要花多少時間?

AJAX 2.0 ?

太有趣了,digg 上面看到 Ajax 2.0 = Ahah (Asychronous HTML and HTTP),不禁..噗哧 XD。姑且不論他技術內容如何,是不是舊瓶裝新酒,不過現在的名字越起越帥氣了。到最後該不會有 ohoh .. ahoh .. r~oo~m 之類的技術出現吧? XD

Java VS C++

digg.com 上面有人提到:「Java Dethrones C++ as King of SourceForge」,然後根據他連結的原始網頁「Java history was made today!」來看:


  1. Java (16738 projects)

  2. C++ (16731 projects)

  3. C (15934 projects)

  4. PHP (12175 projects)

  5. Perl (6209 projects)

  6. Python (4542 projects)

  7. C# (2892 projects)

  8. JavaScript (2779 projects)

  9. Visual Basic (2192 projects)

  10. Delphi/Kylix (1926 projects)

  11. Unix Shell (1845 projects)

  12. Assembly (1608 projects)

  13. PL/SQL (1145 projects)



會發現很有趣的現象啊!

話說回來,C++03都出那麼久了C++他老被那本 TCPL 什麼時候才打算出新版啊? orz

Ultimate Boot CD

一樣還是在 digg 上看來的:Ultimate Boot CD,不過這東西之前機八鴉就已經說他不錯用(都只是口頭說說,找不到證據!沒文章沒真相啦!),官方網頁在:UBCD

另外也想到 aemon 之前跟我提到的 Trinity Rescue Kit 據說不但可以 mount NTFS 也可以清 windows xp 系列的 admin 密碼。機八鴨說搞不好他的名字是從 Matrix 裡面來的? XD。

這種玩具,可能有些人看起來可能不知道用處在那,不過當爆炸的時候這可是能救命的啊!

Matrix Secrets Explained

記得之前沒多久才跟 Aemon 以及機八鴨聊到關於 Matrix 的事,現在在 digg 上就又看到了一篇有趣的標題:The Matrix Explained (almost) 基本上對於線代沒學好的我來說看到 Matrix 不免畏懼幾分。不過仔細的看了看下面的 comment 之後確定應沒不是地雷,點進去應該不會看到一堆矩陣之後鼓起勇氣點了下去,果然是解釋電影的網站啊!網址是「http://matrix-explained.com/」,太閒的時候可以回來看看,他們的認知跟我這邊的版本一部一樣。

Free 60 Project

XBox 出了好幾天了,不過沒有小朋友更沒時間去玩弄。剛剛在 digg 上面又看到(之前便便土司看到的時候就丟給我看過了):Xbox-Linux: Free 60 Project Begins ,乍看到 Free 之下聯想到之前的 FreeBSD/XBox ,不過點進去之後才發現原來是要 port Linux 到 XBox 360,看起來似乎都是在惡搞啊!文章中提到:
- The flash is encrypted with a per-box key
- The key is stored inside the CPU
- The boot ROM is stored inside the CPU
- Also inside the CPU is a hypervisor that verifies the running state of the kernel, making sure there is no modification (RAM checksums), else the Xbox360 panics and blows up!
- The CPU contains RAM inside of it to store the checksums
- All interrupt/exception handling is done by the hypervisor
- All code runs in kernel mode
- The emulator for first generation games can be updated via an official Microsoft download burned to CD by the user, though the CDs' content will be encrypted and signed with public key cryptography.
The Xbox 360's Hard Disk appears to connect to the Xbox 360 via 7-pin SATA, internally the drive connects to the external connector through standard SATA data and power connectors. This should be of some help.

感覺上就是廠商跟 hacker 之間的惡鬥,不過看起來好像還蠻有機會(應該說根本就會)被 port 出來的。逆向工程++!

官方網頁:Free60 Project

另外也是在 digg 上看到的:The best Xbox360 Review ,寫的還蠻不錯的。 多看幾次搞不好會激起小朋友出走的慾望?或許應該叫維尼長輩出手一下?

2005年11月15日 星期二

FreeBSD Sound Driver 偵測

剛剛在抓 FreeBSD 的 Sound Driver 發現有個站的方法不錯,稍微紀錄一下:

kldload snd_driver
cat /dev/sndstat
kldunload snd_driver
kldload sound
kldload snd_xxx (shown above)

然後把下面的東西加到 /boot/loader.conf (以 nforce4 為例)

sound_load="YES"
sound_ich_load="YES"

 

2005年11月9日 星期三

MySQL 升級,phpBB UTF8 化

恩,非常悲苦。為了在 RW 跑個 portupgrade -acCv 受盡苦難。首先我要說,在 FreeBSD 下還是保險起見不要用 -O3 ,代價太大了。這幾天 RW 重編 Apache2 的次數我想不下二十次!到最後發現竟然是 make.conf 裡的 -O3 在搗蛋。而且因為同時炸太多東西了,所以根本很難發現誓死那個。首先, Perl 掰了,然後 trac 的 Python ,然後 php .. 這個教訓告訴我們不要手賤,等等想到再來把 FastCGI 給裝回去吧 -_-。

爆炸最大的大概是 MySQL ,不知道什麼年代開始,RW 的 MySQL 就變成沒有人敢動的版本,永遠都停在 4.0.20 ...某次不小心升級之後所有 database 全爛,也沒有人有空去看 why ,於是偉大的 clode 就不知道去那弄了 4.0.20 的 package 來,反正誰不小心幹掉就直接用 package 硬裝。(很勇敢對吧?)。很不巧,這次又是我手賤,執意要把 MySQL 換上去,並且還想「順便」把裡面的 database 「全面」 UTF8 化,所以代價就是好幾天幾乎都沒睡超過四小時。不過好在,最後似乎轉過去了。雖然中間應該多少損失一些資料。首先,在 MySQL 4.0.20 的時候先把資料給 dump 出來:

mysqldump -uroot rwphpbb > rwphpbb.sql

我 看到很多人說在 dump 的時候要記得設 -default-char-set=latin1 ,我之前也確實必須要這樣設定才能 dump 出正確的檔案,不過不知道是因為之前編的關係還是版本問題,加了之後反而沒辦法 dump ,所以...。然後就把 MySQL 升級,不過因為是用 portupgrade ,他升到了 4.x ,於是我手動幹掉裝成 MySQL 5 (反正要痛苦就一次痛苦個夠,反正這次我做了很充分的備份),不過健忘症發作,忘了下 -default-charset=utf8 ,所以變成在 rc.conf 裡面加上:

mysql_enable="YES"
mysql_args="--default-character-set=utf8"

然後中間經歷了很多 Apache/PHP 的爆炸就略過不提。處理完之後便拿 RW 的 phpBB 來開刀,首先照著我之前那篇 wordpress 的方式把 .sql 檔案轉換好:

*add follow line to .sql file

SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;

*use vim to replace charset

(:1,xxxs/latin1/utf8/g)
這裡我是把 big5e 都換成 utf8 ,雖然我不確定對不對...

*use iconv/piconv 轉換 database big5->utf8

piconv -f big5 -t utf8 rwphpbb_utf8.sql > aaa.sql

然後把他匯入 MySQL,在啟動 MySQL 之前先確定剛剛的 rc.conf 已經設定好,這樣才會把預設的 table 蓋成 UTF8 而不用指定,另外就是 my.cnf 的設定,我暫時是
cp /usr/local/share/mysql/my-medium.cnf /var/db/mysql/my.cnf 然後在 [mysqld] 的 section 加上 init_connect = 'SET NAMES UTF8;' (反正都要全面 UTF8 化了),然後蓋 database 、匯入、設定使用者(因為我是把整個資料庫砍掉重鍊)。

*create database

mysqladmin -uroot create rwphpbb

*restore database

mysql -f -u root rwphpbb < aaa.sql
(用-f 是因為我遇到很多錯誤導致做到一半就爛了,所以強制做完,至於錯誤是啥我也不知道 -_-)

*create database user

mysql> GRANT ALL PRIVILEGES ON 資料庫名稱.* to 使用者名稱@localhost IDENTIFIED BY '密碼';

然後接下來處理 phpBB。如果你看到:

phpBB : Critical Error

Could not connect to the database

請 到 config.php 裡面把 $dbms = 'mysql'; 換成 $dbms = 'mysql4'; 然後燒香拜拜看看連不連的上。連上的話沒有意外你會發現一狗票亂碼,不要擔心,這是正常的。我爬了一些文章後發現 phpBB 官方(或者說是台灣語系的站台)並沒有釋出 UTF8 版本的 Language Pack ,所以很不幸的得自己做。不過不難。只是把中文語系那個目錄的 lang_main.php 裡的 $lang['ENCODING'] = 'big5'; 換成 $lang['ENCODING'] = 'UTF-8'; ,然後把 email 目錄裡的所有檔案的第二行 Charset: Big5 換成 Charset: UTF-8就好了。可以參考 這裡 。或是懶得搞的話可以抓我轉好的 phpBB2.0.17 UTF8 中文語系包。 要注意解開前先把你的 lang_chinese_traditional_taiwan 目錄 rename 一下,本來我是想弄個類似 lang_chinese_traditional_taiwan-UTF8 的語系,可是後來發現這樣會爆炸很大,所以只好用原來的 lang_chinese_traditional_taiwan ,所以你可能需要把 lang_chinese_traditional_taiwan rename 成 lang_chinese_traditional_taiwan.big5 之類的。理論上沒意外的話進去應該會看到 UTF8 的畫面了,感動吧!你可能會注意到好像主畫面是 Big5/UTF8 混合,很神奇吧 -_-。找半天不知道是啥原因,想說應該是 cache ,於是把 phpBB2 裡面的 cache/cache2 都幹掉了還是一樣...到最後才發現,原來去新蓋一個討論板他就會清掉了,那不然他不是存在 cache 裡面是存在那啊 -_-?。

剩下的,就等其他人(使用者)遇到問題再說吧,我跟 phpBB 超不熟,連用都沒在用 :~ 。

 

2005年11月7日 星期一

perl locale

現在升級 RW 到 6.0-R (很幸運的升完之後我還連的到他 -_-),然後準備來大升級。卻忽然發現 perl 一直死:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LC_ALL = "zh_TW.Big5",
LC_CTYPE = "en_US.ISO8859-1",
LANG = "zh_TW.Big5"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

結果 locale -a 看了一下發現,原來 en_US.ISO_8859-1 改成 en_US.ISO8859-1 了。把 /etc/csh.cshrc 跟 ~/.cshrc 改一改之後想說就會好了,沒想到還是爛的。後來很用力的把 perl 給重 make 一次就好了 -_-。

2005年11月6日 星期日

MySQL 5.0.15 亂碼

剛剛用 Portupgrade -aCcv 升級系統,沒想到 Blog 上的字又變成亂碼了。之前才把 MySQL 的資料從 latin1 -> UTF8 ,本來想說可能是自動升級的時候沒有弄好,重裝了還是一樣爛。機八鴨叫我用

mysql> SHOW VARIABLES LIKE 'character_set_%';
mysql> SHOW VARIABLES LIKE 'collation_%';


來看看發生什麼事了,不過看起來:

mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+
7 rows in set (0.01 sec)

似乎檔案還是對的,於是 google 了一下,發現其中一招解法是在 wordpress 的 wp-db.php line 56 左右:

// mysql_query("SET NAMES 'utf8';");
// mysql_query("SET CHARACTER SET UTF8;");
$this->select($dbname);

加上 mark 的那兩行,另一招的話則把 my.cnf 丟到 database 的目錄裡面去並且在 [mysqld] 的地方加入:

init_connect = 'SET NAMES UTF8;'

就 ok 了。