發mail詢問松崗的回覆

某日因為討論區的某次討論,心裡超不服氣,所以我發 mail 詢問松崗圖書是否可以再版Visual FoxPro類的書籍或轉為電子文件,結果得到的回覆如下,我果然太天真了…而且也知道了松崗的圖書部門已經賣給文魁……

您好
有關圖書的、商用軟體的問題,請您電洽02-25635273 文魁資訊
謝謝您的來信
——————————————————————————–
若您還有任何問題,歡迎與我們聯絡!
松崗科技股份有限公司 敬上
遊戲產品代理處客服部
104 臺北市民生東路二段149號6樓
電話:2506-8289分機194
週一至週五 10:00-16:00(12:00-13:00休息)
客服信箱: unalistw@unalis.com.tw
松崗網址: www.unalis.com.tw
有關魔劍<Shadowbane>線上遊戲問題,
請到 魔劍線上遊戲專用客服網站:
SB魔劍-台灣官方網站:http://sb.unalis.com.tw
SB魔劍-台灣官方FAQ網址:http://sb.unalis.com.tw/service/faq-1.asp
SB魔劍-網路客服中心網址: http://sb.unalis.com.tw/service/index.asp
SB魔劍-電話客服中心專線: 02-2501-8384
以上服務時間為:每週一至週五 10:00 ~ 18:00 (中午午休及例假日除外)
——————————————————————————–
—–Original Message—–
From: 我
Sent: Tuesday, April 22, 2003 4:55 AM
To: Unalistw
Subject: 不再版的書籍
是否有計劃將不再版的電腦書籍轉為電子書
讓有使用到的人免費或付費下載

blog

前一陣子,才從我妹妹那兒知道 blog 這個名詞.
簡單的說呢,他就是一個簡單的明日報介面~
感覺上挺不錯的,我是蠻想裝一個在自己家裡的 server 上玩玩.
再過幾天,可能就要去美國了
是出差~~~
該怎麼說呢,雖然蠻多人恭喜我,但我心情很複雜~~
不是很想去~
才剛剛結婚
畢竟英文不是很好~~
再者申請美簽又很麻煩~~~
呼~~~
也就因為這樣
這一陣子心情蠻鬱悶的~
還有就是共事了近兩年的同事要離職了~
這不可是錦上添花嗎?!
呵呵~~
無常無常
這就是無常~~

CD Writing HOWTO 讀後心得

原文:http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/CD-Writing-HOWTO.html
可以用 cdrecord -scanbus 來檢閱可用的裝置
Linux kernel 版本需高於 2.0.36 或 2.2.11
需要檢查 /dev/ 下是否有 sg device
若沒有,可以用 mknod sg0 c 21 0 來建立
若有多個,則 mknod sg1 c 21 1, mknod sg2 c 21 2 ….
需要以下 modules
scsi_mod
sg
sr_mod
loop
iso9660
ide-scsi
需要調整 cd-writer 所掛入的 driver(module)
– 若是 built-in, 在 lilo, kernel 啟動參數的地方加上 hdx=ide-scsi
– 若是 module, 則在 /etc/modules.conf 中加上
options ide-cd ignore=hdx
alias scd0 sr_mod
pre-install sg modprobe ide-scsi
pre-install sr_mod modprobe ide-scsi
pre-install ide-scsi modprobe ide-cd
假設 /dev/scd0 為 cd-writer
也可為 /dev/scd0 建立 symbolic link 到 /dev/cdrom 下
ln -s /dev/scd0 /dev/cdrom
工具軟體:
1.mkisofs
2.cdrecord
3.cdrdao
4.VCD
(進度顯示則可參考一些 GUI 的工具: xcdroast, BurnIT, cdtux )
一般來說 620MB on disk 約等同於 650MB on CDROM
製作 image 的方法:
mkisofs -r -o cd_image 目錄/
燒錄的方法:
cd-r 的指令是,
cdrecord -v speed=n dev=scsi_bus,scsi_id,scsi_lun -data cd_image
cd-rw 則再多加上 blank=… 以清除原先內容.
一般都是先 mkisofs, 再呼叫 cdrecord.
以下指令則是先確認來源的大小之後,再行燒錄:
#IMG_SIZE=`mkisofs -R -q -print-size 目錄/ 2>&1 | sed -e “s/.*=//”`
#echo $IMG_SIZE
[ “0$IMG_SIZE” -ne 0 ] && mkisofs -r 目錄/ | cdrecord speed=n dev=0,6,0 tsize=${IMG_SIZE}s -data –
音樂:
可先用 sox 把 wav 轉為 cdr,亦可直接燒錄:
cdrecord -v speed=n dev=0,6,0 -audio 1.cdr 2.cdr …
cdrecord -v speed=n dev=0,6,0 -audio 1.wav 2.wav …
cdrecord -v speed=n dev=0,6,0 -audio 1.au 2.au …
燒 mp3, 建議用 speed=1,避免燒太快,而使得 mpg321 來不及轉換資料.另外一個原因則是 mpg321 佔用CPU資源太多.
for I in *.mp3
do
mpg321 -cdr – “$I” | cdrecord -audio -pad -nofix –
done
cdrecord -fix
對燒:
cdrecord -v dev=0,6,0 speed=2 -isosize /dev/scd0
先放為 image 的話
dd if=/dev/scd0 of=cd_image
cdrecord -v dev=0,6,0 speed=2 -isosize cd_image
UDF 不知是否好用??
燒錄 cd-rw 時,可以用 blank=fast, 等同於快速抹除 CDRW.
續燒的方法(multi-session)
NEXT_TRACK=`cdrecord -msinfo dev=0,6,0`
echo $NEXT_TRACK
mkisofs -R -o cd_image2 -C $NEXT_TRACK -M /dev/scd0 目錄/

rsync HOWTO

Server
======
Put rsyncd.conf to /etc/xinetd.d/ .
Put rsyncd.secrets to /etc.
Then turn on rsync service: chkconfig rsync on
Client
======
Edit a text file contained your password and named “password”.
Then,
export RSYNC_RSH=/usr/bin/ssh
Run this to get the source from rsync server:
rsync -vzrtopg –progress –delete root@172.16.97.212::cpp . –password-file=/root/password
If you modified some thing, want to put them to rsync, run this command:
rsync -vzrtopg –progress –delete . root@172.16.97.212::cpp –password-file=/root/password
Notice
======
1. Server: The owner and permission of secret file must be correct! (0600)
2. Client: The owner and permission of password file must be correct, too!! (0600)
3. You may refer the log file to find why error happened.
rsyncd.conf
===========
uid = root
gid = root
use chroot = no
max connections = 4
syslog facility = local5
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
lock file = /var/run/rsync.lock
[cpp]
path = /root/cpp
comment = root
ignore errors
read only = no
list = yes
auth users = root
secrets file = /etc/rsyncd.secrets
rsyncd.secrets
==============
root:your-password
rsyncd usual syntax
===================
rsync -a srcdir remotehost:/destdir # Local -> Remote
rsync -a remotehost:/srcdir destdir # Remote -> Local
rsync -a -e ssh srcdir user@remotehost:/destidr # via SSH
rsyncd switchs
==============
-n Dry-Run, only simulate rsyncing.
-v,-vv,-vvv verbose.
–delete Remote all files in destination that doesn’t appear in source.
–delete-exclude Like –delete, but exclude specified files.
-z With compression.
-s Efficient with sparse files.
-b Append ‘~’ for existed files in destication.
–backup-dir=DIR Move existed files in destincation to DIR.
–exclude FILE Exclude specified files.

妄想之二

我看著地上剛剛才被風捲落的一片落葉
心想:”秋天來了~~”
那是一個寧靜的下午
屋外的喧囂彷彿跟我無關似的寧靜
充斥在我的周圍
我感到心臟在撲通撲通的跳著
一種感覺想要破體而出
想要高聲的吶喊~~
我站起來試著喊出聲音
不行
喉嚨乾乾的
只能發出嘶嘶的聲音~~
好痛苦啊~
於是想哭
也不行
“啊~~~~~”
深深的嘆息
又再跌回椅子上~
“鈴…鈴…鈴…”
電話鈴聲響了,畫破了這個寧靜的下午
好煩~
我討厭電話鈴聲,總是讓人覺得不得不接似的~
決定不接~
“鈴…鈴…鈴…”
喔!很討厭喔~
還是決定不接~
“鈴…鈴…鈴…”
可惡!!到底是誰?這麼的有恆心~恆心不是用在這種地方的啊~~
只好接起電話把鈴聲終結了~
“喂~你好”
“喂~~你好,請問是 XXX 嗎?”
“我是…”, (糟了,是房東)
“喂喂喂~~你也該繳錢了吧~~都已經秋天了!!”

Remote syslogging

1.確定 /etc/services 裡面有 syslog 514/udp 這一行.
2.執行 /sbin/syslogd -r 啟動 syslogd daemon.
-r 是告訴 syslogd 開始傾聽 UDP port 514.
3.如果你有使用 iptables 或 ipchain 把某些 port 關掉的話,記得要作必要設定.
以下的指令表示只允許某個網段的機器才能使用 UDP port 514,而其他所有的網段則完全不能.
以保障這台用來作為 syslog 機器的安全.
iptables -A INPUT -p udp -s 192.168.2.0/24 -d 0/0 –destination-port 514 -j ACCEPT
iptables -A INPUT -p udp -s 0/0 -d 0/0 –destination-port 514 -j REJECT 或
ipchains -A INPUT -p UDP -s 192.168.2.0/24 -d 0/0 514 -j ACEEPT
ipchains -A INPUT -p UDP -s 0/0 -d 0/0 514 -j REJECT
4.在每台要 log 的機器上,編輯 /etc/hosts, 把 syslog 機器的 ip 加進去
192.168.2.23 parent.somedomain.com parent
5.同樣在每台要 log 的機器上,編輯 /etc/syslog.conf, 將目的檔由原本的
/var/log/messages, /var/log/….. 等改為 @parent
6.重新啟動或用 kill -HUP 讓 syslog 重讀設定,就完成了!!

用 .NET 寫作 Service

1.用 FileSystemWatcher 元件要注意,若用 c#,在 InitializeComponent() 時,要做適當的 delegate,否則會無法執行.
2.Property 視窗左下角有 Add Installer,點下去以後就可以製作 Installer.
3.vs.net有 installutil 來安裝服務,它提供有 transaction,安裝不成功時可以完全 rollback.
除錯
vs.net 有 [Debug][Processes] 功能
選了以後,再挑選你的服務(須先 start )
按下 Attach ( follow the screen )
最後再到要除錯的地方,按下中斷點即可.
亦可以用 EventLog.WriteEntry() 來乖乖寫入錯誤訊息
另外也可以在 OnStart() 時,用 System.Threading.Thread.Sleep(25000) 先暫停個 25 秒
讓你有時間用 vs.net 的整合環境去選到該 process,然後進行 debug.

mono Overview & xsp-0.2

今天心血來潮,連上Mono 官方網站(http://www.go-mono.net/)一看,版本已經是 0.19 ,然後又加了許多新玩意兒~Debugger, asp.net, ado.net…已經快要把 M$ 的 .NET Framework 實作完成了呢 🙂
Mono 簡單的說就是 Linux 上的 .NET Framework.
安裝方法很簡單,現在網站上有提供各種 Package: rpm, deb…都有,所以只要找到適合你版本的 Package, 下載回去安裝就行了.
我用的是 Red Hat 7.3 的版本
所以用
rpm -ivh libgc-6.1-1.i386.rpm libgc-devel-6.1-1.i386.rpm mono-0.19-1.i386.rpm mon-devel-0.19-1.i386.rpm
就完成安裝了~~
mono 的編譯:
當你寫好一個 .cs (c#的 source)以後,就可以用
mcs your-source.cs
進行編譯.
mono 的執行是比較特別的一點
雖然它實作 .NET Framework ,但執行的方法卻不是跟 .NET 一樣,直接執行就好
而是比較類似 java, 用 mono hello.exe 來執行.
接著是 xsp, xsp 等同於是 asp.net 的實作,只是他還包含了一個小的 Web Server,不過還沒有完全實作好~也暫時沒辦法把她掛到 Apache ,當作一個 module. 🙁
令我驚訝的是,它是用.NET 寫的.想了解 asp.net 內部如何實作的人,這是一個很好的途徑.
安裝方法很簡單,執行 make, make install 就行了
她會把檔案都安裝到 Makefile 所在目錄的 server/test 下.
不過,這一版 0.2 還有一些缺陷,所以依照他的 INSTALL 去做以後,還是不能順利的執行
據我明察暗訪之後,發現要:
1.必須先切換到 server/test 下,執行 ln -s server.exe xsp.exe
2.用 browser 瀏覽的時候,必須確實指定路徑,假設你把 xsp 解在 /root/xsp-0.2 ,也安裝在 /root/xsp-0.2 下的話,那麼,你在 browser 上應該要打 http://localhost:8080/root/xsp-0.2/server/test/index.aspx
這樣子就可以執行了~~
蠻令人驚訝的~
與資料庫連結的部份,我沒有去仔細測這部份,不過我想應該是可以執行的!
嗯~~
希望大家用力多多測試,並且把 bug 回報回去~
這樣子,大家才會有好東西可以用啦 🙂

bacula Overview

Bacula 一個提供備份 Solution 的 Open Source Project
http://www.bacula.org/
裡面主要分成五個部份:
– Director 負責 Backup/Restore/Verify 和 Archive 這幾個動作,它是 Daemon.
– Console 用來跟 Director 溝通的 Interface
– Files Client Program,也是一個 Daemon, 負責提供檔案屬性跟 Director所需的資料.
– Storage 負責讀/寫你的 Tape 或其他媒體.
– Catalog 維護索引或 Volume Database.
架構圖:
bacula.jpg
安裝請依照慣例的 ./configure, make, make install 三部曲即可
安裝完成以後,測試 conf 檔案是否有問題:
#bacula-dir -t
#bacula-fd -t
#bacula-sd -t
#console -t
如果想讓 bacula daemon 在開機時自行啟動的話:
#make install-autostart
只裝 File Daemon(Client) 的話,用:
#make install-autostart-fd
主要設定都在 bacula-dir.conf 裡面
可以定義 Storage, Schedule, Job….等等資訊.
bacula-sd.conf 主要定義 Storage, Device 相關資訊.此處需要跟 bacula-dir.conf 中的 Storage 相配合.
bacula-dir.conf
FileSet{} 定義需要備份的目錄或檔案.
Storage{}表示要放Archive 的地方.
Schedule{} 定義執行的排程.
Job{} 則定義工作,裡面則會用到前面所提到的 FileSet, Storage, Schedule 等設定.也可以在執行的前後先執行 Script或程式(RunAfterJob, RunBeforeJob).
還可以設定 Job, Volume …等的保留時間( Retention ).
另外也支援自動換片的 Device, 只要在 Device {} 裡面指定 Change Command = /sbin/xxxx
換片的指令即可.
提供的 PDF 文檔非常詳盡,有兩百多頁~~
也支援 Windows 的 File Daemon(Client Program)
看完以後
覺得整個架構很清晰
也蠻便於管理的~
只是很多東西都必須在 conf 檔中定義好
而無法利用 Client 程式動態的指定Job, Schedule, FileSet …等~

rpm-update

網址:http://www.kleemann.org/rpm-update/
如果你因為不想去 Red Hat 而不使用 up2date,那麼,你可以試試這個程式.
目前最新的版本是 20030102 這個版本.
網站除了 Source 之外,也提供 rpm 可以下載.
(其實也沒有什麼 Source 不 Source 的,因為它是用 Python 寫的)
下載之後,使用 rpm -ivh rpm-update-1-20030102.noarch.rpm 安裝~
安裝應該會很順利,rpm檔裡面只有一個檔案而已.
ok~那麼怎麼使用呢??
先建立此目錄 /var/cache/rpm-update, 因為後面其實會用到此目錄.
但作者可能忘記了.
用 rpm-update -l 列出所有的站台,它是到 Red Hat 網站把 mirror 的網頁抓下來,然後把所有的ftp位址都 grep 出來.
知道位址之後,就可以下載啦~
用 rpm-update -d –host linux.sinica.edu.tw –single 下載
-d 是指 download
–host 是指定位址
–single 則是請 rpm-update 依據目前電腦的 ix86 去抓檔案,如 i386, i686…等等~
用 rpm-update -r –single 進行分析,並列出報告
-r 是指 report
最後,當然就是用 rpm-update -i –single 進行安裝啦.
如果你懶得打那麼多指令
你也可以編輯 ~/.rpm-update/default 這個檔案
把選項都放進去,如:
host = linux.sinica.edu.tw
single
version = 7.3
以後 rpm-update 的時候,就不需要打 –host, –single,直接打 rpm-update -d, rpm-update -r…就行了
安裝完了,不想保留那些 rpm 檔案的話
可以用 rpm-update -c 把 rpm 檔案清除掉.
要讓它自動定期去尋找更新的 rpm,當然也可以放在 crontab 裡面
作者提供了一個不錯的用法:
(rpm-update -d && rpm-update -r) | mail -s “RPM Update” yourname@yourdomain.com
這樣子就行了.