1.
imagecopyresampled() 確實有效!!!!
but 被 Resize 的那個 image 要用 imagecreatetruecolor() 來建立影像
否則顏色會出不來!!變成灰灰的~
2.
更新為 gd2.0 以後
確實,要把 php recompile 才行~ >_<
Firebird on Linux
版本與環境
==========
Firebird: 1.0
OS: Red Hat Linux 9.0
安裝
====
請先連結到 http://sourceforge.net/project/showfiles.php?group_id=9028 這個網址
準備下載 RPM(For Red Hat, SuSE, Mandrake) 或 tarball(For any distribuation) 包.
這裡你會看到有兩個檔案
一個是 FirebirdCS-x.y.z.nnnn-xx.ixxx.rpm
一個則是 FirebirdSS-x.y.z.nnnn-xx.ixxx.rpm
這兩個有什麼差別呢??
所謂的 CS 就是 Classic, 較傳統的,之前,Firebird 都是掛在 inetd, xinetd 下,做為網路服務的
也就是 inetd / xinetd 負責傾聽網路是否有需求,有需求,再把 Firebird 叫起來,將需求轉交給 Firebird.
SS 則是 SuperServer, 啟動時就是獨立起來傾聽網路需求,如果有需求,自己就出來服務這個需求.
在官方網站裡面有對此作詳細的比較與說明.http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_ss_vs_classic
依據此文件,它是說 SuperServer 效率較好.
在這裡我選擇了 CS 版本的 RPM 來安裝.原因我會在”安全性議題”一節再說明.
接下來就是安裝啦.
RPM 版本就用 rpm -ivh FirebirdCS-x.y.z.nnnn-xx.ixxx.rpm
tarball 版本就先用 tar xzf Firebird-x.y.z.nnnn.src.tar.gz 解開,進入該目錄後,再執行 ./install.sh 即可
如果你是用 RPM 安裝的話,安裝以後的檔案都會放在 /opt/interbase 下.
管理
====
管理上,你可以從遠端用 GUI 的管理介面來管理.
也可以使用 Firebird 內附的 isql, gsec 來管理.
gsec 主要用來變更啟動密碼以及增加使用者等等的,除此之外,
Firebird 有提供一個不錯的 script 來幫助你變更啟動密碼.
指令名稱是: /opt/interbase/bin/changeDBAPassword.sh
只要依照指示即可,但有時會失敗,需要手動修改,這時候就要用到 gsec,步驟:
1. /opt/interbase/bin/gsec
2. > modify SYSDBA -pw your_password
3. > quit
4. 如果是用 SS 安裝的話,那麼你得要修改 /etc/init.d/firebird, 找到 ISC_PASSWORD, 修正之;用 CS 的話,請跳到下個步驟
5. 修改 SYSDBA.password, 基本上只要修改第二行即可.
6. 大功告成~
isql 則是 console 模式的管理工具,你可以使用 select / insert / delete / create database ….等等的SQL敘述來作管理.
也可以輸入 help 來看看你可以使用什麼指令.
安全性議題
==========
雖然是一套發展了很久的 Database,但是在我看來,他的安全性有待加強~
首先是 /etc/init.d/firebird 與 /opt/interbase/SYSDBA.password, 密碼以明碼形式存放在檔案中, 如果權限沒設為 root only 的話,密碼很容易被竊取,長度也不能超過8碼(真懷疑預設的密碼masterkey怎麼設進去的).
再來就是設定中,缺少網路控制的設定,也就是無法指定此 server 僅限哪個網段的人使用,也不支援 SSL 之類的設定,如此一來我就不太敢用 SS 來安裝了.
因為這些因素,所以我安裝 CS.我自己的設定大致如下:
1.增加一個名為 firebird 的 user (useradd firebird),此動作同時會增加一個 firebird 的群組.
2.將 /opt/interbase 的所有檔案的 owner 改為 firebird (chown -R firebird:firebird /opt/interbase)
3.修改 /etc/xinetd.d/firebird,在大括號裡面加上
user=firebird
only_from=192.168.0.0 127.0.0.1
以避免使用 root 權限,並允許 192.168.0.0 這個網段以及本機可以使用這個服務.本來打算要使用 tcpwrapper 來作控制的,如此一來就可以使用 /etc/hosts.allow 和 /etc/hosts.deny 來作控制.但是我加上去之後卻會無法連結,只好作罷.
找到 xinetd 的 pid,並強迫 xinetd 重新載入組態即可.
#ps -ef|grep xinetd
#kill -HUP xinetd_pid
4.將 /etc/xinetd.d/firebird, /opt/interbase/SYSDBA.password 的權限改為 0400, owner read-only (chmod 0400 /etc/xinet.d/firebird /opt/interbase/SYSDBA.password)
5.變更資料庫存放路徑的 owner 與權限,假設資料庫放在/var/database 下,那麼就
#chown -R firebird:firebird /var/database
#chmod -R 0770 /var/database
6.再將必要用到 Firebird 的使用者加入 firebird 群組中.
7.變更管理者密碼.
其他相關的安全性議題可以參考:
http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=art_fb_security
測試連接
========
執行 /opt/interbase/bin/isql 以後
在 console 輸入
>connect ‘localhost:/opt/interbase/examples/employee.gdb’;
如果不能連接,會出現錯誤訊息.
Firebird 1.5 RC5
================
在這一個版本裡面,安全性議題改進了不少,configuration file 更名為 firebird.conf
裡面也提供了 RemoteBindAddress 這個選項可以指定.
預設安裝路徑也變更為 /usr/local/firebird.
所以 1.5 版應該是一個安全性較高的版本,請耐心等候正式版的推出.
.Net Data Provider
==================
除了 ODBC 之外,官方網站也提供了.Net Data Provider,顧名思義就是專門給 ADO.Net 用的.
若你是使用 .Net framework 1.1 的話,需要先行安裝 msvcr70.dll,請先用本機搜尋確定一下是否有此檔案.
如果沒有,用 google 找一下,可以找到下載點 (Microsoft 未提供)
然後再安裝,一切就會很順利.
基本上,裡面的類別都是直接由 ADO.Net 的 Connection, DataSet…等等類別繼承出來,所以熟悉 ADO.Net 的話,在使用上並沒有什麼困難.
另外裡面也提供了 HtmlHelp 的說明檔以及範例程式,各位可以自行參考之.
我還活著
From: saint
To: msi_ellery
Subject: 我還活著
Dear
昨晚沒有看到你上來,沒事!
Saint
=====
From: msi_ellery
To: saint
Subject: Re: 我還活著
實不相瞞
我昨天已經死掉了
現在你看到的回信是我前天寄的~
“啊~~~~~~~~~”
我可以想像到你驚訝 and 叫的驚天動地的樣子~
好~~能嚇到你我也可以安心的去了~
-_-
阿門~
=====
From: saint
To: msi_ellery
Subject: Re: 我還活著
是哦!
確是讓我嚇了一下
不過這一封信是我從那上天所送給你的,網路真是無遠弗屈!
阿門
不過未來我還是可以mail to hell !你一定可以收的到 ^_^
仿唐詩
白日依山盡黃河
欲窮千里入海流
目送孤枝隨波去
晚霞卻已灑滿樓
語譯:
夕陽依著山,看起來就在黃河盡頭不遠
河流過了千里,最後流入海中
我呆呆地看著樹枝隨波逐流
不知不覺地,晚霞已經把我所在的這層樓映的紅通通的了~
GNU Linux 上一些有趣名稱
GNU is Not Unix.
Wine Is Not Emulator.
現在一時想不起來那麼多
以後有想到再貼上來~
另外這是我想出來的~~挺有趣~~
VFP is Fucking Powerful.
VFP is Fucking Professional.
不過 Fucking 在美國俚語裡是”非常”的意思,而不是 XXX 的意思喔~
如果你有想到更好的,麻煩不要客氣,貼上來大家分享一下
Rainbow
今天早上看到一個字,Rainbow,彩虹的意思
但你知道它是複合字嗎??
Rain 是雨
Bow 是弓
雨後形成的弓,彎彎的,那不就是彩虹嗎??
很有趣吧~~
火星大接近
2003/8/27 天氣晴
這天是火星與地球最接近的一天~~
也是火星人入侵地球的日子~
只怪大家都忽略了8/24下午的天氣異變
以致於讓火星人長驅直入
我
是唯一的倖存者,
在這裡
留下隻字片語
希望後人可以看到這一段~
去迎接世界末日了~
再見~
Custom your Knoppix
預備工作 – 安裝 cloop
=====================
下載點: http://packages.qa.debian.org/c/cloop.html
裡面提供了 create_compressed_fs, extract_compressed_fs 這兩個工具,
以及 cloop.o 這個 driver(或叫作module)
在 RedHat 下編譯時,請先把 compressed_loop.c 裡面對 REDHAT_KERNEL 的註解拿掉.
編譯以後,再建立 mknod /dev/cloop b 240 0
參考資料
========
基本上我的步驟都是參考這些文章:
http://debian.linux.org.tw/pub/3Anoppix/howto.txt
http://penguin.im.cyut.edu.tw/~s9054494/document/mkcd/mkcd_001.php
http://www.cyut.edu.tw/%7eckhung/b/sa/knoppix.shtml
ftp://cle.linux.org.tw/pub/KNOPPIX/bv1al/knoppixDIY-2002-12-15.html
http://www.xfocus.net/releases/200306/a544.html
http://www.knoppix.net/docs/index.php/KnoppixCustomKernelHowto
我的步驟
========
1.確定有 7G 以上的空間
2.下載 cloop 並編譯,請參考上面.
3.把下載回來的 Knoppix ISO 檔案掛載起來 (或是我做的 iso)
mount -t iso9660 -o loop your_knoppix.iso /mnt/cdrom
3.解開 KNOPPIX 這個檔案為 .iso
extract_compressed_fs /mnt/cdrom/KNOPPIX/KNOPPIX > /space/knoppix.iso
4.把 3 解開的檔案掛載起來
mkdir /mnt/knoppix.sys
mount -t iso9660 -o loop /space/knoppix.iso /mnt/knoppix.sys
5.建立所需目錄並把剛剛掛載起來的 iso 內容複製過來
mkdir -p /space/knoppix/{source,master}/KNOPPIX
cp -Rp /mnt/knoppix.sys/* /space/knoppix/source/KNOPPIX
cp -Rp /mnt/cdrom/KNOPPIX/* /space/knoppix/master/KNOPPIX
cp /mnt/cdrom/KNOPPIX/{autorun.inf,autorun.bat,cdrom.ico,index.html} /space/knoppix/master # 這些檔案可以自己改!!
6.umount 兩個 iso 檔
umount /mnt/cdrom
umount /mnt/knoppix.sys
7.進行修改
chroot /space/knoppix/source/KNOPPIX
mount -t proc /proc /proc
export LC_ALL=”en_US”
export LANG=”en_US”
如果需要上網的話,修正一下 /etc/resolv.conf
加上 nameserver 172.16.0.12 ( 或 168.95.1.1 都可以)
接著就可以利用 debian package 系統進行修改了
dpkg -l –> 列出所有套件
apt-get install your_package_name –> 安裝某套件
apt-get remove your_package_name –> 移除某套件
dpkg –purge your_package_name –> 清除該套件的設定…等等
8.修改完成
apt-get clean
updatedb
umount /proc
exit
9.修改開機設定
cd /space/knoppix/master/KNOPPIX
mount -o loop boot.img /mnt/floppy
cd /mnt/floppy
修改 syslinux.cfg, f2, boot.msg 這幾個檔案即可
10.燒錄
mkisofs -R -l -V “KNOPPIX” -hide-rr-moved -v /space/knoppix/source/KNOPPIX | create_compressed_fs – 65536 > /space/knoppix/master/KNOPPIX/KNOPPIX
cd /space/knoppix/master
mkisofs -l -r -J -V “KNOPPIX” -hide-rr-moved -v -b KNOPPIX/boot.img -c KNOPPIX.cat -o /space/knoppix/my_iso.iso /space/knoppix/master/
小秘訣:如果已經在硬碟裡面作過一次了,那麼只要不把檔案殺掉,就可以直接從 7 那個步驟開始.
更換 Kernel
===========
1.請參考上面步驟,一直進行到 7 這個步驟完 (若之前有做過一次,就直接跳到 7,把 7 作完即可)
2.將新 Kernel 的tarball複製到 /usr/src 下,並解開
3.進入新 kernel 目錄,將 /usr/src/linux/.config (原kernel路徑)複製過來
4.make oldconfig
5.patch -p1 < ../knoppix-kernel.patch
6.make dep bzImage modules modules_install
7.刪除原 kernel(問號部分表示舊kernel版本)
rm -rf /usr/src/linux-??????
rm -rf /lib/modules/linux-??????
rm -rf /boot/*
rm -f /vmlinuz
8.複製新 kernel (問號部分表示新kernel版本)
cp System.map /boot/System.map-??????
cp arch/i386/boot/bzImage /boot/vmlinuz-??????
cd /boot
ln -s System.map-?????? System.map
ln -s vmlinuz-?????? vmlinuz
cd /
ln -s boot/vmlinuz-?????? vmlinuz
9.重新編譯 cloop.o 這個模組
同樣參考上面的位址下載,並編譯,安裝
10.修改 boot.img
先利用另外一個 console 將 /space/knoppix/master/KNOPPIX/boot.img 複製到 /space/knoppix/source/KNOPPIX/var/tmp
再切回原來已經 chroot 的 console,開始動手
cd /var/tmp
mkdir boot mroot
mount -t vfat -o loop boot.img boot
cp boot/miniroot.gz .
gzip -d miniroot.gz
mount -t ext2 -o loop miniroot mroot
將剛剛編譯好的 cloop.o 複製到 mroot/modules/ 下 (選擇覆蓋),然後再包回去
umount mroot
gzip -9 miniroot
接著把 miniroot.gz 以及新 kernel 複製到 boot 目錄
cp miniroot.gz boot
cp /boot/vmlinuz-?????? boot/vmlinuz
umount boot
再利用另外一個 console, 把剛剛製作好的 boot.img 複製回去
cp /space/knoppix/source/KNOPPIX/var/tmp/boot.img /space/knoppix/master/KNOPPIX/boot.img
把這些殘骸清除掉
rm -rf boot mroot miniroot.gz boot.img
11.跳回上面的 8 繼續做(非修改kernel, 而是"我的步驟 – 8" )
12.大功告成
加上開機 script
===============
跟一般 linux 可以說是非常類似
不過這裡有個更好的機制
只要把 script 放在 /etc/rc.boot 中,開機時就會執行 /etc/rc.boot 目錄內所有的 script
IRC
什麼是 IRC
=======
懶得說明,自己參考這幾篇
http://www.freebsd.org.hk/html/wwwfaq/document/ircfaq/11.htm
http://dlm.hcu.edu.tw/personal/91/204002/new_page_2.htm
http://plum.cs.nccu.edu.tw/~lien/BCC/WWW/ACER/ircfaq/index-1.htm
架設 irc 伺服器
===============
在此,我們選擇了一個開放源碼(Open Source)的 irc 伺服器作為架設範例.
它同時以多種語言實做,其中一種是以 VB.Net 撰寫的.
網址是: http://pure-ircd.sourceforge.net/ 或
http://sourceforge.net/projects/pure-ircd/
由於我的環境是 Windows 2000 Server
所以選擇了以 Service 型態存在的 pureIRCd services dotnet
解開 zip 檔以後,你可以在 bin 目錄下找到 pureIRCd-Services.exe
以 Administrator 身分執行 pureIRCd-Services 即可.
其實照理來說應該要使用 installutil pureircd-services.exe 來安裝服務.
可是會發生錯誤訊息,我想是因為程式並沒有去 implement ServiceBase 的關係.
irc 伺服器
==========
其實也可以不必自行架設
網路上就有免費的 irc server 可以使用
如: irc.seed.net.tw 與 irc.hinet.net.
用 Google 可以找到更多.
irc client
==========
網路上有許多 irc client 軟體,我們介紹幾種常見的:
ChatZilla: 這是 Mozilla 所提供的.
xchat: Linux 上 XWindow 所提供的.
mirc: 在 Google 上看到,也是一個蠻 popular 而且 free 的 irc client 軟體,下載位址: http://www.mirc.com.tw/download.php
pirch: 好像也很 popular, 網址是: http://www.pirchat.com/
irc 的使用 – ChatZilla
======================
連上 irc server: /server localhost
建立或進入某個 channel: /join #channel_name
聊天: 直接輸入文字按下 enter 即可,在 ChatZilla 下,須先下 /charset utf-8 以及 /channel-charset utf-8 ,將字碼頁換為 UTF-8, 否則會看不到別人輸入的字或看到亂碼.
離開: /leave
irc 的使用 – xchat
==================
大致與 ChatZilla 類似,但是他並沒有 /charset, /channel-charset 以及 /leave
charset 設定須在 xchat 的 setup 中去調整
若要離開,則需使用 /close
irc 的使用 – mirc
=================
這邊由於懶得去下載 mirc 下來試用
所以,就用 Google 找了一些 tutorial 來替代啦
http://www.geocities.com/Area51/Capsule/4295/soleirc.htm
http://irc.hinet.net/connect.php?show=mirc
irc 的使用 – pirch
==================
Tutorial: http://irc.hinet.net/connect.php?show=pirch
下載位址: http://www.pirchat.com/
irc 與網頁聊天室
================
irc 似乎也可以與網頁聊天室做結合
不過好像沒看到用 php / asp / asp.net 作的~
用 Google 找不太到
這是利用 Java Applet 作的
http://www.farstrider.org/feeshbowl/chat/
我記得 icq 也有提供一個類似的~
當兵回憶(1)
想起了當兵時有兩次衛哨失職的記錄
一次是菜鳥的時候
因為那時候是資訊兵(講難聽一點,就是打文件的啦)
所以都辦公到很晚
有一次辦到半夜一兩點
過沒多久就直接去服勤
可是真的很累
很想睡覺
撐了一個多小時
本來想說,坐在地上瞇一下就好
結果就睡著了~~
被換哨的班長抓包~~
好在班長是中鳥,也能體會
所以就好險,被他訓斥了幾句,就沒事了~~
呼~~~
還有一次,是中鳥的時候
那時候已經移防到步兵學校了
服勤的地點則是彈藥庫
時間是下午
服勤很無聊,所以都會帶一兩本書去看
我帶了一本武俠小說
好死不死
突然營長坐著小車車來了~~
很慌張的丟在哨亭後面
營長來,本來講了幾句,還沒事
結果好死不死,他逛了一下
就被他發現了~~~
嗚嗚嗚,小說被沒收
後來被叫去罰站~~
連長很生氣,還叫我們去再教育(就是星期天被抓到校部那邊罰站,出操)~
就這樣
還好都沒抓去關~~