在 "Agile Web Development With Ruby On Rails" 一書中 Page 53 提到
If you see the error Before updating scaffolding fromnew DB schema,
try creating a table for your model (Product), it may well be because Ruby (and hence Rails)
can’t get to the database. To fix Apple’s bad install, you’re going to need to reinstall Ruby’s
MySQL library, which means running the script on page 21 to repair the Ruby installation,
and then reinstalling the mysql gem.
但是指 OS X 10.4 才會有
妙的是我用 InstantRails 1.4(all-in-one ,號稱方便與免安裝其他軟體) 也有同樣的狀況= =
要檢視書上範例的網頁 http://localhost:3000/admin 時
會有 lost connection to mysql 的問題
也就是無法連接到 mysql database
問題是在 console 下執行
ruby script/generate scaffold Product Admin
時發生
本來還以為是這書上面的 ruby 版本較舊所造成的問題
就改用 InstantRails 官方網站教學的指令(分為兩步驟)
ruby script\generate model Product
ruby script\generate controller Admin
結果仍舊出現
"error Before updating scaffolding fromnew DB schema,
try creating a table for your model (Product)"
Google後找到解決辦法
不過有點麻煩就是了
下載
http://www.vandomburg.net/files/mysql-ruby-windows-2.7.1.zip
然後解壓縮將 mysql.so copy 到
C:\InstantRails\ruby\lib\ruby\1.8\i386-mswin32
然後再執行上列指令時錯誤就會變成跟 libmysql.dll 有關
Reference 的網站提到 InstantRails 中 php 內附的 libmysql.dll 會無法使用
因此只好下載
http://downloads.mysql.com/archives/mysql-4.1/mysql-4.1.9-win32.zip
然後安裝 mysql-4.1.9 後(InstantRails 幹了啥事竟然還敢說是 all-in-one = =)
覆蓋
C:\Program Files\MySQL\MySQL Server 4.1\lib\libmySQL.dll
到
C:\InstantRails\ruby\bin
(原本的檔案竟只有106KB,新檔有1.01MB,這也差太多了吧!)
重新啟動 InstantRails
至此 終於可以動了
最後再到控制台去移除Mysql Orz
Reference:
http://www.vandomburg.net/pages/mysql-ruby-windows
這網站有提到一句話
"Getting MySQL/Ruby up and running on Windows used to be a bit of a hassle."
在 Windows 上要可以正常運行 Mysql 與 Ruby 有點小麻煩。
還真是貼切 Orz
Instant rails 是個 All-in-one 的 RoR 套件
包含了apache、mysql、phpmyadmin 套件
目前僅提供 Windows 下的快速建構
Linux與其他平台則在未來的支援計畫中
到instant rails的官方網站中下載最新版
解壓到C:\的根目錄下(方便好記)就完成了安裝
C:\InstantRails\InstantRails.exe 即為 InstantRails的啟動檔
在 "Agile Web Development With Ruby On Rails" 一書與 Instant Rails 網站中
皆有提到在建構新的 RoR application前
需用 rails "新應用程式的名字"的指令
但InstantRails並沒有幫我們設定好指令的搜尋路徑
因此需要使用者手動在
桌面上的我的電腦->右鍵->內容->進階->環境變數
編輯原有系統變數中的Path
加入;C:\InstantRails\ruby\bin
;是跟其他路徑作區別的分隔符號
重新開機之後就可以在cmd底下使用該指令
C:\InstantRails\rails_apps>rails demo
create
create app/controllers
create app/helpers
create app/models
create app/views/layouts
create config/environments
create components
create db
create doc
create lib
create lib/tasks
create log
create public/images
create public/javascripts
create public/stylesheets
create script/performance
create script/process
create test/fixtures
create test/functional
create test/integration
create test/mocks/development
create test/mocks/test
create test/unit
create vendor
create vendor/plugins
create tmp/sessions
create tmp/sockets
create tmp/cache
create Rakefile
create README
create app/controllers/application.rb
create app/helpers/application_helper.rb
create test/test_helper.rb
create config/database.yml
create config/routes.rb
create public/.htaccess
create config/boot.rb
create config/environment.rb
create config/environments/production.rb
create config/environments/development.rb
create config/environments/test.rb
create script/about
create script/breakpointer
create script/console
create script/destroy
create script/generate
create script/performance/benchmarker
create script/performance/profiler
create script/process/reaper
create script/process/spawner
create script/runner
create script/server
create script/plugin
create public/dispatch.rb
create public/dispatch.cgi
create public/dispatch.fcgi
create public/404.html
create public/500.html
create public/index.html
create public/favicon.ico
create public/robots.txt
create public/images/rails.png
create public/javascripts/prototype.js
create public/javascripts/effects.js
create public/javascripts/dragdrop.js
create public/javascripts/controls.js
create public/javascripts/application.js
create doc/README_FOR_APP
create log/server.log
create log/production.log
create log/development.log
create log/test.log
可以看到 rails 幫我們產生了很多檔案
Reference:
1. http://instantrails.rubyforge.org/tutorial/index.html
2. "Agile Web Development With Ruby On Rails"
本筆記主要是紀錄參考資料中沒有的東西
或是其他想記下來的XD
近日實驗室的主機 mysql 掛了
嘗試使用 /etc/init.d/mysql start 來找錯誤
發現只會. . . . . . . . . failed
且 /var/log/mysql.err 跟 mysql.log 竟然都是空的
囧
放狗搜了之後
就使用
mysqld 來啟動
好在這招看的到錯誤訊息
結果是[ERROR] mysql I/O error reading the header from the binary log
看來只好把 /var/log/mysql/mysql-bin.index 清空
再來啟動 mysqld
看來就解決了
不過
這次就說有一堆 TABLE 損毀
[ERROR] mysqld: Table './mt/mt_tbping' is marked as crashed and should be repaired
這種訊息一堆啊!
真是Orz
再次放狗搜
發現有指令可以修復(之前有用過 phpmyadmin 來診斷修復 不過今天卻一直找不到該功能!?)
只好使用相關指令
先停止mysql 後 cd /var/lib/mysql
再 myisamchk -a "TABLE_NAME" 診斷錯誤類型
=================================================
wshlab2:/var/lib/mysql# myisamchk -a apacheacct/accounting
Checking MyISAM file: apacheacct/accounting
Data records: 142266 Deleted blocks: 0
myisamchk: warning: Table is marked as crashed
myisamchk: warning: 1 client is using or hasn't closed the table properly
- check file-size
myisamchk: warning: Size of datafile is: 5575772 Should be: 5575732
- check record delete-chain
- check key delete-chain
- check index reference
- check data record references index: 1
- check record links
myisamchk: error: Wrong bytesec: 0-0-0 at linkstart: 5575732
MyISAM-table 'apacheacct/accounting' is corrupted
Fix it using switch "-r" or "-o"
=================================================
再依照其建議修復資料表
wshlab2:/var/lib/mysql#myisamchk -r apacheacct/accounting
- recovering (with sort) MyISAM-table 'apacheacct/accounting'
Data records: 142266
- Fixing index 1
Wrong bytesec: 0- 0- 0 at 5575732; Skipped
就美滿的收尾了
好家在!還有的修不然就要重新安裝 mysql 了...
主要的參考文章是
http://www.ubuntuforums.org/showpost.php?p=130227p=423584
但我是用最新版的ieee802.11、firmware(3.0)與ipw2200 driver(1.1.4)
不過該參考文章中需要修改的部份為
firmware要複製到
/lib/firmware 跟 /lib/firmware/`uname -r`
我看INSTALL是說/lib/firmware
可是我感覺上應該是要複製到相對應的核心版下目錄下
所以只好都複製到兩個目錄下
重新開機後
啟用無線網卡就大功告成了
真是感動阿
PS 我的linux是ubuntu 6.06
kernel 2.6.15
Fedora core 4 預設是 php 5
這讓我頭痛不己
因為系上的主機有安裝Xoops
Xoops又跟php 5不合
且之前phpbb漏洞遭利用(迫使我將core 3 升到 core 4,因為手足無措)
所以在網路上找到文章說可以先將php 5 移除然後安裝core 4 版的php相關套件
參考網址:
http://www.mjmwired.net/linux/2005/10/09/php4-on-fedora-core-4/
但是其中php-snmp的套件會因為相依性的問題而無法安裝
用ln -s /usr/lib/librpm-4.4.so /usr/lib/librpm-4.3.so
ln -s /librpmio-4.4.so /librpmio-4.3.so
並沒有辦法解決問題
不過後來仍能將此問題KO
只要先將此rpm檔解開
rpm2cpio php-snmp-4.3.11-2.8.i386.rpm | cpio -idv
會發現其實只是兩個檔案
./etc/php.d/snmp.ini
./usr/lib/php4/snmp.so
分別複製到
/etc/php.d/snmp.ini
/usr/lib/php4/snmp.so
底下後就萬事OK啦
我錯了~這樣還是無法使用php-snmp的函式Orz
Please visit the following site:
http://www.fedoraproject.org/wiki/YumUpgradeFaq#head-046d8b21e4b28db2ccfc1686482e54ab2f97e2af
The servers I managed are installed with fedora.= =
So I am forced to learn something like upgrading from damning old fedora to damning new fedora.
Damn it.
今天要連實驗室網頁時
發現wiki掛了
錯誤訊息為
Error executing database query.
LOCK TABLES rate WRITE
google了一下
發現也有人發生一樣的狀況
網頁上寫說要檢查config.php中關於prefix的問題
可是那是安裝時出現的問題
WSHLAB的WIKI可是已經用好幾年了
跟安裝時的設定錯誤一點都扯不上關係
且在那網頁也沒寫啥解決辦法
不過有提到用phpmyadmin重新命名資料庫名稱
因此只好碰碰運氣
登入了資料庫後
發現wiki的資料表的大小欄位寫著正在使用
使用了分析資料表後
分析結果說這個table is crashed需要修復
因此只好再碰碰運氣
使用了修復資料表工具後
大小顯示正常了
重點是wiki也復活了
估計是rate這個資料表不知為啥被lock成寫入中但卻沒有解除且還一直lock
沒想到這樣就解決了^^
好在
但是不得不說
畢業在即
這種有的沒的鳥事怎會這麼多哩
Orz
初次見到這詞是在 ext3cow 的 source code 裡
BKL = Big Kernel Lock
指的是 Linux 初次為了支援 多處理器的架構所設計出來的機制
可視為 global spin lock
參考網頁資料:
http://tavi.debian.org.tw/KernelSync
http://lwn.net/Articles/86859/
截至昨日
kernel.org 最新的穩定版核心 為 2.6.16.16
在進行選項選擇時
Block devices 中如果有選 ramdisk 時
記得要用 mkinitrd 來製作ramdisk喔
如果你有用到 ext3 又只編成模組的話是一定要借助 ramdisk 的幫忙的
以下是編譯過程
P.S. 版本記得自己換掉阿
===One touch===
make clean;make bzImage;make modules;cd /lib/modules;rm -rf 2.6.16.16.old/; mv 2.6.16.16/ 2.6.16.16.old;make modules_install;cp -f /usr/src/linux-2.6.16.16/arch/i386/boot/bzImage /boot/vmlinuz-2.6.16.16;cp -f /usr/src/linux-2.6.16.16/System.map /boot/System.map-2.6.16.16;mkinitrd -f /boot/initrd-2.6.16.16.img 2.6.16.16
===Step by step===
make clean
make bzImage
make modules
cd /lib/modules
mv 2.6.16.16 2.6.16.16.old
make modules_install
cp /usr/src/linux-2.6.16.16/arch/i386/boot/bzImage /boot/vmlinuz-2.6.16.16
cp /usr/src/linux-2.6.16.16/System.map /boot/System.map-2.6.16.16
mkinitrd /boot/initrd-2.6.16.16.img 2.6.16.16
error: expected specifier-qualifier-list before 'xxxxx'
最近在寫程式的時候
遇到一個前所未見的問題
一開始在網路上找不出個所以然
然而後來找到問題所在
是因為某個 include 的 header 中的某個特有型別未定義
通常在程式寫作時會將特殊型別
用 typedef xxx_xxx_xxx_long_long name short_name;
來將很長的型別名稱換成短的
而 expected specifier-qualifier-list before 'xxxx' 就表示 xxxx 這個型別未定義
這情形通常為函式庫正在改變中或是尚在撰寫中 Orz (為啥偏偏讓我遇上)
Fedora core 5
Kernel :2.6.16-1.2096_FC5
早知道就還是用我最熟的 debian 了 Orz
Reference: The C programming Language
http://math.ut.ee/~soolo/knr2/kandr.html
http://math.ut.ee/~soolo/knr2/appa.html
沒想到這問題的解是在這本C語言聖經本中找到
或者該說當年不是教聖經本所以只好自認了
僅需編輯 /usr/bin/gftp
在#!/bin/sh 之後加上下面這一行
export LANG=zh_TW
之後啟動 gftp 後
要到選單 FTP -> 選項 -> 一般 ->「Remote Character sets」確定為清空的狀態
(P.S. 在其他地方找到的文章是要在 Remote Character sets 中設定為 big5
但經測試過無效,此處的方法於 Fefora Core 5 測試成功)
這樣一來就可以在gftp中顯示正常的中文了
但仍有另一問題
就是Fedora Core 5的環境是utf-8
所以在x的環境裡那些gftp下載下來的中文檔名全部都變成亂碼了
iconv 的方式並沒有辦法進行有用的轉換(應該是id3的編碼不一定是跟檔名編碼一致的關係)
所以只好手動一個一個改檔名了Orz
如果有人有更好的方法請告訴我
謝謝m(_ _)m
現今 Linux 的系統上的動態函式庫多為 ELF (Executable and Linking Format) 格式
如要找尋某個函式位於哪個函式庫中
網路上的文件多為使用 nm
但 nm -o對某些 .so卻無效
使用 objdump -t也無效
原因在於上兩個指令都僅列出 symbol table
該 .so 若無定義 symbol 則無法列出有用資訊(推測僅能列出 static symbol)
此時就需要使用 readelf -s (推測可列出 dynamic symbol)來列出該函式庫的所有函式
如 readelf -s /lib/libext2fs.so.2.4 就會列出
符號表「.dynsym」含有 326 個條目:
...
而這是用 nm -o /lib/libext2fs.so.2.4 或 objdump -t /lib/libext2fs.so.2.4 所無法達到的效果
使用指令 ldd 可查詢出該程式所需的函式庫
如我最近寫的程式所列出來的
linux-gate.so.1 => (0x00b16000)
libext2fs.so.2 => /lib/libext2fs.so.2 (0x00872000)
libc.so.6 => /lib/libc.so.6 (0x00b34000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0x0012d000)
/lib/ld-linux.so.2 (0x00b17000)
可惜沒有辦法在未編譯之前就先得知該程式所需的函式庫
不然就方便多了 : )
以前見過 undefined reference 的問題幾次
往往都以為是沒有 include 該有的 header file
但最近在 coding 時又遇到這個問題
我在程式中使用了 ext2 的 library 中的 ext2fs_open( )
我也的確引入了該有的 header file 如
"ext2fs/ext2_fs.h"
"ext2fs/ext2fs.h"
在茫茫網海中找到幾份資料
發現結果其實不如大部分網路的文件所說的缺少正確的 header file
而是編譯的時候沒有對相關的函式庫作 link
舉例如有使用 sqrt( ) 開根號的函式就應該要有 -lm
所以在寫與 ext2 file system 的程式如有用到該函式庫所提供的函式時
在編譯時 -l 的選項就應該要有 -lext2fs
開始程式集中的所有程式在XP預設下是以安裝順序排列的
這樣的方式可能在工作的機器只有一台下是很OK且快速的
因為我們對一個程式如果手動點擊多次後
自然會記住該程式的連結在哪個位址
但是如果使用的電腦不只一台或是兩台電腦軟體安裝的順序不一樣時
就會出現:咦~不是應該在這嘛?難道我沒有安裝嗎?
此時如果已軟體名稱的首字母來排序的話就可顯示出其好處
要達到這樣的效果
必須使用 regedit (登錄檔編輯器)來修改系統中的設定值
找到以下的位置
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu2\Programs
然後刪除 "order" 這個鍵值
結束掉登錄檔編輯器後效果就已經產生
此外
開機的時候
如果想要關閉某些煩人的常駐程式
(常不常駐根本就應該讓使用者選擇,或是預設不常駐,而不是預設常駐)
則需要分別到以下位置將不想要開機即執行的程式刪除
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
需注意的是 一定要確定你知道你在做什麼
否則還是先備份登錄檔再執行或是乾脆不要亂動比較好
P.S. 本篇剛好是第一百篇 blog , 不過到現在才百篇,實在有點汗顏 Orz。
在 php 中,
如果需要顯示一段文字
且該段文字中包含有特殊字元如
'&' (and 符號) '"' (雙引號) ''' (單引號) '<' (小於符號) '>' (大於符號)時
須先進行特殊字元的轉換
以免發生版面錯亂的悲劇發生
此時就需要使用
htmlspecialchars( ) 或
htmlentities( )函式的幫助
至於使用方式請參考以上的官方連結
其中htmlspecialchars( )的討論串中還有人提供了功能相反的函式
請搜尋 unhtmlspecialchars
如 Movable Type 編輯文章時須避免使用特殊字元並使用安全的替換字串
如
'&' 換成 '&' (and 符號)
'"' 換成 '"' (雙引號)
''' 換成 ''' (單引號)
'<' 換成 '<' (小於符號)
'>' 換成 '>' (大於符號)
此外如果在 Movable Type 編輯文章時如想正確的貼上原格式的 html 碼
除了需要以上的轉換外還需要保留縮排等排版時請用
<pre>
(我是很多個空白)內縮文字
不過此方法會使之後的文字字型較大
目前還不知道原因(整個下午都在弄些跟畢業不相關的技術 Orz
這次的筆記事關於 apache
如何設置當"不指定或是沒有設定"首頁時禁止瀏覽(列出)目錄下的檔案
這次的筆記事關於 apache
如何設置當"不指定或是沒有設定"首頁時禁止瀏覽(列出)目錄下的檔案
vi /etc/apache/httpd.conf
將 UserDir (使用者個人網頁目錄) 中的 Options 給予 -Indexes 的參數
減號表示禁止該功能
所以 +Indexes 表示允許列出目錄下的檔案
-Indexes 則表示禁止
預設是開啟的,為了安全性而言最好關閉
#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory /home/*/*/WWW>
AllowOverride FileInfo AuthConfig Limit Options
Options MultiViews -Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Order deny,allow
Deny from all
</Limit>
</Directory>
</IfModule>
如要全域實施的話則需在/etc/apache/httpd.conf中找到以下這段
# This should be changed to whatever you set DocumentRoot to. # 此處的目錄要換成apache的文件目錄,我們伺服器上的設定是 /home/httpd <Directory /home/httpd>#
# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
Options Indexes Includes FollowSymLinks MultiViews
然後將
Options Indexes Includes FollowSymLinks MultiViews
換成
Options -Indexes Includes FollowSymLinks MultiViews
由於很多收信軟體或是線上收信的客戶端都是以Big5去做預設的解碼
所以寄信時以Big5寄出則有較高的相容性
因為PHP用mail去寄信時預設是以UTF-8為編碼
所以需要多做一些手腳
以下是程式是來自我寫的網頁
也就是兩個重點
ㄧ、字串要經過轉碼,以下列的方式
$big_string= mb_convert_encoding($utf8_string,"big5","utf-8");
P.S.要安裝php_mbstring
二、mail header的部份要包含Content-Type: text/plain; charset=big5";
這樣使用麻瓜寫的軟體去收信也不會有問題嚕XD
$mail_to = "$email";
$mail_to = mb_convert_encoding($mail_to,"big5","utf-8");
$mail_from = "nscpower2005@ee.kuas.edu.tw";
$mail_from = mb_convert_encoding($mail_from,"big5","utf-8");
$mail_reply_to = "nscpower2005@ee.kuas.edu.tw";
$mail_reply_to = mb_convert_encoding($mail_reply_to,"big5","utf-8");
$mail_subject = "國科會工程處電力學門九十九年度專題研究計畫成果發表會確認信[$num](test)";
$mail_subject = mb_convert_encoding($mail_subject,"big5","utf-8");
$mail_body = "$m1\r\n"."$m2\r\n"."$m3\r\n"."$m4\r\n"."$m5\r\n"."$m6\r\n"."$m7\r\n"."$m8\r\n\r\n"."$m9\r\n\r\n"."如有任何問題,請隨時參考本會議網址:http://nscpower2011.ee.kuas.edu.tw/\r\n";
$mail_body = mb_convert_encoding($mail_body,"big5","utf-8");
$mail_bcc = "pen@mail.ee.kuas.edu.tw, shaw@mail.ee.kuas.edu.tw";
$mail_bcc = mb_convert_encoding($mail_bcc,"big5","utf-8");
$mail_headers = "From: $mail_from\r\nReply-to: $mail_reply_to\r\nBcc: $mail_bcc\r\nContent-Type: text/plain; charset=big5";
$headers = mb_convert_encoding($mail_headers,"big5","utf-8");
if (mail($mail_to, $mail_subject, $mail_body, $mail_headers)) {
echo "系統已發出確認信!
";
} else {
echo "$num的確認信發送失敗!
";
}
copy($_FILES["pdf"]["tmp_name"], "power_uploads/$num/".$_FILES["pdf"]["name"])
將上傳的檔案移動到第二個參數的位置
第一個參數為檔案在上傳的伺服器上臨時的位置
此外 預設檔案大小為2M(/etc/php.ini)
Foobar
有個外星人面孔的軟體
以前
不認識
怪怪醜醜的介面真的讓我不想去用
不過好奇心真的可以殺死貓
所以我還是去下載試用了
進行了一堆搜尋然後設定後
我只能說Winamp被我丟在一旁了^^
SSRC的威力實在驚人
搭配840
只能說我好像這時候才聽到了我的840
看來玩音響真的會上癮
APE看來就是下一步了
Foobar
我一換就把家裡的電腦也裝了
Volume Control的方式我也改成WAVE全滿
由主音量去調整
Foobar 建議一定要裝
雖然很醜
雖然設定有點複雜
雖然要改掉一些習慣
但是這一切都是值得的^_^
The Debian Project is pleased to announce the official release of Debian
GNU/Linux version 3.1 codenamed ``sarge'' after nearly three years of
constant development. Debian GNU/Linux is a free operating system which
supports a total of eleven processor architectures, includes KDE, GNOME
and GNUstep desktop environments, features cryptographic software, is
compatible with the FHS v2.3, and supports software developed for the LSB.
With the development of the new debian-installer, this release features
a new, modular and sophisticated installation routine with integrated
hardware detection and unattended installation capabilities. The
installation is available in about thirty languages and includes
configuration of the X server for many graphic cards.
The task selection system has been revamped and made more flexible. The
debconf tool has been integrated into most packages that need to be
configured and makes this easier and more user friendly. Debian
GNU/Linux can be installed from various installation media such as DVDs,
CDs, USB sticks, a few floppies, or from the network. It can be
downloaded now, and will soon be available on DVD and CD-ROM from
numerous vendors :http://www.debian.org/CD/vendors/.
Debian GNU/Linux runs on computers ranging from palmtops and handheld
systems to supercomputers, and on nearly everything in between. A total
of eleven architectures are supported, including Motorola 68k (m68k), Sun
SPARC (sparc), HP Alpha (alpha), Motorola/IBM PowerPC (powerpc), Intel
IA-32 (i386) and IA-64 (ia64), HP PA-RISC (hppa), MIPS (mips, mipsel),
ARM (arm) and IBM S/390 (s390).
This release includes a number of up-to-date large software packages,
such as the K Desktop Environment 3.3 (KDE), the GNOME desktop
environment 2.8, the GNUstep desktop, XFree86 4.3.0, GIMP 2.2.6,
Mozilla 1.7.8, Galeon 1.3.20, Mozilla Thunderbird 1.0.2, Firefox 1.0.4,
PostgreSQL 7.4.7, MySQL 4.0.24 and 4.1.11a, GNU Compiler Collection 3.3.5
(GCC), Linux kernel versions 2.4.27 and 2.6.8, Apache 1.3.33 and 2.0.54,
Samba 3.0.14, Python 2.3.5 and 2.4.1, Perl 5.8.4 and much more.
This is the first Debian release that includes OpenOffice.org (1.1.3).
It also features cryptographic software integrated in the main
distribution. OpenSSH and GNU Privacy Guard are included in the default
installation, and strong encryption is present in web browsers, web
servers, databases, and many other applications available in this
release.
Debian GNU/Linux 3.1 includes the efforts of the Debian-Edu/Skolelinux,
Debian-Med and Debian-Accessibility sub-projects which boosted the number
of educational packages and those with a medical affiliation as well as
packages designed especially for people with disabilities.
Upgrades to Debian GNU/Linux 3.1 from the previous release Debian
GNU/Linux 3.0 codenamed ``woody'' are automatically handled by the
aptitude package management tool, and to a certain degree also by the
apt-get package management tool. As always, Debian GNU/Linux systems can
be upgraded painlessly, in place, without any forced downtime. For
detailed instructions about installing and upgrading Debian GNU/Linux,
please see the release notes
:http://www.debian.org/releases/sarge/releasenotes.
因為習慣了用電子檔作筆記
所以在網路上收集到的資料
也都轉為PDF
不過會發現有些PDF的連結是中看不中用XD
後來花了一個晚上研究
終於發現兩點關鍵
1.MS OFFICE的檔案不要用列印的方式轉成PDF
而要用ADOBE所提供的工具列去轉換
這樣一來所有的連結都會保留
且轉成PDF後還是有連結的效果喔
2.網頁要存成可以保留所有資料(包括圖片)的方式(MHT不適用XD)
然後再對HTML轉檔(一樣不能用列印的方式)
或是在ADOBE ACROBAT中
用FILE(檔案)->Create PDF(建立PDF)->From file(從檔案)的方式去做轉換
此外還可以有更快的方式
就是直接在ADOBE ACROBAT中用建立PDF->從網頁
或是從網頁建立PDF的方式直接把網頁轉成PDF
ADOBE ACROBAT還可以讓你把整個站台抓下來喔
不過這功能不是很好用
不如TELEPORT強大
以上
希望對於和小弟一樣不能缺少PDF功能的朋友有幫助
說到這個專利下載
小弟有點經驗
因為和工研院計畫需要
所以開始看起專利
interneTIFF可以免費線上看專利
有一陣子很神奇的可以用列印到adobe printer的方式弄成一份pdf
但是不知道為什麼有時可以有時不可以
後來改用了一套GETIPDL的專利下載軟體
可以抓多國專利
但自某天這軟體突然在啟動時掛掉
並把我辛辛苦苦做了筆記的專利的pdf都刪除後(暗X10000)
重裝或是裝再新電腦也一樣
我就只好另尋新法
好在又被我找到一套FREEWARE
叫做
PATENT GATE LITE
有中文版的
不過只能下美國專利
而且自動合成一個pdf檔
挺OK的
有在研究美國專利的朋友可以試試
最近又發現一套新軟體
Patent Hunter
超棒
一定要試試
以前就發生有這樣的問題
解決了也沒有記下來
@_@不好的習慣
當錯誤訊息寫著該使用的家目錄
並說無法建立使用者家目錄
此時就是
使用者的家目錄的擁有者設定錯誤了
比如說
leechung的家目錄擁有者為當初建立的人
這樣的話還是可以透過OUTLOOK收信正常
因為它是到/var/mail/leechung中讀信
但是open web mail的信是放在
/home/leechung/mail/ 底下
所以要將該使用者家目錄的擁有者還給該使用者嚕
chown leechung.leechung /home/leechung
然後重新啟動一下sendmail
/etc/init.d/sendmail start
之前安裝的是k lite mega codec pack
但是仍偶爾會遇到怪檔案
用WMP只有聲音
用WMPC只有影像
ffshow沒有試過
影音風暴官方網站上不去
於是只好另尋 CODEC PACK
找到這一個
全裝要100多MB
真是夠齊全了
原本那些有問題的也都可以看嚕
如果有人堅持一定要正常看到那些怪怪的檔案
不彷試試ACE MEGA CODEC PROFESSIONAL
logwatch 早先是我在 Fedora core 1 上看到的
可以有效的分析並匯報系統狀態
於是就裝在實驗室的主機
還不錯用
一天會寄一封信
包含所有服務的狀態(我要求的@@)
可以得知哪個 IP 有不良傾向
Mail server 共送出了多少訊息
後來又在摩托學園看到有人說 logcheck 不錯用
於是就裝起來做比較
基本上兩套軟體性質一樣
做的事也一樣
不過我喜歡前者
因為前者一天一封^^
後者一天5封左右@@
僅供給有需要的人做個參考
大家在組裝電腦時
常會發現 BIOS 會發出聲音
可是又不知道是什麼問題
小弟在這裡收集了一些常見的 BIOS BEEP CODE
希望會對大家有用
Award BIOS
一短:系統正常啟動
二短:CMOS設定錯誤
一長一短:DRAM錯誤
一長二短:顯示卡或螢幕連接錯誤
一長三短:鍵盤錯誤
一長九短:ROM錯誤
不斷長響:DRAM未插好
不停急響:電源有問題
AMI BIOS
1短:DRAM刷新錯誤
2短:DRAM 同位元檢查錯誤,ECC check error
3短:基本64K RAM檢查失敗
4短:計時器無法運算,系統時鐘錯誤
5短:CPU錯誤
6短:8042無法取得A20(檢查鍵盤)
7短:CPU中斷錯誤
8短:顯示卡記憶體寫入/讀取錯誤(檢查顯示卡)
9短:ROM檢查碼錯誤
10短:CMOS 關機暫存器寫入/讀取錯誤
11短:快取記憶體故障
Phoenix BIOS(1-1-2表示一聲一聲兩聲)
1 - 1 - 2:CPU或主機板損壞
1 - 1 - 3:主機板損壞
1 - 1 - 4:BIOS ROM損壞
1 - 2 - 1:主機板計時器損壞(主機板損壞)
1 - 2 - 2:DMA失敗(主機板損壞)
1 - 2 - 3:DMA失敗(主機板損壞)
1 - 3 - 1:記憶體刷新失敗(記憶體損壞)
1 - 3 - 2:記憶體損壞
1 - 3 - 3:記憶體損壞
1 - 3 - 4:記憶體損壞
1 - 4 - 1:記憶體損壞(位址線錯誤)
1 - 4 - 2:記憶體損壞(同位元錯誤)
1 - 4 - 3:主機板計時器損壞(主機板損壞)
1 - 4 - 4:NMI port損壞(主機板損壞)
2 - * - *:64k 記憶體損壞(記憶體損壞)
3 - 1 - 1:副DMA損壞(主機板損壞)
3 - 1 - 2:主DMA損壞(主機板損壞)
3 - 1 - 3:中斷控制器損壞(主機板損壞)
3 - 1 - 4:副IC損壞(主機板損壞)
3 - 2 - 2:中斷控制器損壞(主機板損壞)
3 - 2 - 4:鍵盤控制器損壞(主機板損壞)
3 - 3 - 1:CMOS 電池失敗(更換 CMOS 電池)
3 - 3 - 2:CMOS 設定錯誤
3 - 3 - 4:顯示卡記憶體錯誤(更換顯示卡)
3 - 4 - 1:顯示卡初始化失敗(更換顯示卡)
4 - 2 - 1:計時器損壞(更換主機板)
4 - 2 - 2:CMOS shutdown 失敗(更換主機板)
4 - 2 - 3:Gate A20 失敗(更換主機板)
4 - 2 - 4:分預期中斷(更換 CPU)
4 - 3 - 1:記憶體測試失敗
4 - 3 - 3:計時器損壞(更換主機板)
4 - 3 - 4:RTC(Real Time Clock)失敗(更換主機板)
4 - 4 - 1:串列埠損壞
4 - 4 - 2:平行埠損壞
4 - 4 - 3:CPU 或 主機板損壞
9 - 2 - 1:顯示卡相容性問題(請更換不同廠牌的顯示卡)
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
xx為十六進位碼
手動設定IP及MAC bind在一起
arp -i eth0 -s xxx.xxx.xxx.xxx(IP) xx.xx.xx.xx.xx(MAC)
新版的gcc不允許多行的組合語言語法
但是舊版的支援
所以當出現這樣的問題時
必須要手動更改
將多行的敘述改為單行的敘述
In file included from ksyms.c:50:
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:72:30: missing
terminating " character
In file included from ksyms.c:50:
/usr/src/kernel-source-2.4.18/include/asm/checksum.h: In function
`ip_fast_csum':
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:73: error: parse error
before "movl"
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:75:17: invalid suffix "f"
on integer constant
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:82:17: invalid suffix "b"
on integer constant
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:90:13: missing
terminating " character
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:105:17: missing
terminating " character
/usr/src/kernel-source-2.4.18/include/asm/checksum.h: In function `csum_fold':
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:106: error: parse error
before "addl"
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:108:17: missing
terminating " character
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:121:13: missing
terminating " character
/usr/src/kernel-source-2.4.18/include/asm/checksum.h: In function
`csum_tcpudp_nofold':
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:122: error: parse error
before "addl"
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:126:9: missing
terminating " character
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:128: error: `__x'
undeclared (first use in this function)
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:128: error: (Each
undeclared identifier is reported only once
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:128: error: for each
function it appears in.)
/usr/src/kernel-source-2.4.18/include/asm/checksum.h: At top level:
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:128: error: parse error
before ')' token
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:161:17: missing
terminating " character
/usr/src/kernel-source-2.4.18/include/asm/checksum.h: In function
`csum_ipv6_magic':
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:162: error: parse error
before "addl"
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:173:17: missing
terminating " character
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:176: error: `__x'
undeclared (first use in this function)
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:176: warning: no return
statement in function returning non-void
/usr/src/kernel-source-2.4.18/include/asm/checksum.h: At top level:
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:176: error: parse error
before ')' token
/usr/src/kernel-source-2.4.18/include/asm/checksum.h:176: error: parse error
before "__u32"
make[3]: *** [ksyms.o] Error 1
make[3]: Leaving directory `/usr/src/kernel-source-2.4.18/kernel'
make[2]: *** [first_rule] Error 2
make[2]: Leaving directory `/usr/src/kernel-source-2.4.18/kernel'
make[1]: *** [_dir_kernel] Error 2
make[1]: Leaving directory `/usr/src/kernel-source-2.4.18'
make: *** [stamp-build] Error 2
通常會出現在用新的gcc去編譯比較舊(2.4.18算是比較舊XD)的核心
新版的gcc不允許多行的組合語言語法
但是舊版的支援
所以當出現這樣的問題時
必須要手動更改
將多行的敘述改為單行的敘述
將以下的原本程式碼
__asm__ __volatile__("
movl (%1), %0
subl $4, %2
jbe 2f
addl 4(%1), %0
adcl 8(%1), %0
adcl 12(%1), %0
1: adcl 16(%1), %0
lea 4(%1), %1
decl %2
jne 1b
adcl $0, %0
movl %0, %2
shrl $16, %0
addw %w2, %w0
adcl $0, %0
notl %0
2:
"
改成
__asm__ __volatile__(" movl (%1), %0 subl $4, %2 jbe 2f addl 4(%1), %0 adcl 8(%1), %0 adcl 12(%1), %01: adcl 16(%1), %0 lea 4(%1), %1 decl %2 jne 1b adcl $0, %0 movl %0, %2 shrl $16, %0 addw %w2, %w0 adcl $0, %0 notl %02: "
並且注意是由前一行的尾端按delete來讓下一行變成同一行
直到所有""內的敘述變成同一行
如上所示
這麼一來就可以順利編譯嚕
試過其他看到的方法
如每行後面加上\n
或是使用版本為2.95的gcc編譯
但是都沒有用
:set fileformat=dos
:set fileformat=unix
:set fileformat=mac
可以用
:set ff=dos
:set ff=unix
:set ff=mac
dos 是以 0D 0A 來斷行
unix 是以 0A 來斷行
mac 是以 0D 來斷行
Reference
http://www.study-area.net/tips/vim/
大家來學VIM(一個歷久彌新的編輯器)
1、在「開始」表單中開啟「執行」視窗,在其中輸入「regsvr32 actxprxy.dll」,然後「確定」,接著會出現一個信息對話
視窗「DllRegisterServer in actxprxy.dll succee
ded」,再次點擊「確定」。
2、再次開啟「執行」視窗,輸入「regsvr32 shdocvw.dll」,「確定」後在出現的信息對話視窗中點擊「確定」。
3、重新啟動Windows,執行IE,隨便開啟一個網頁,點擊一個超連接,你會發現IE又能開啟新視窗。再試試用滑鼠右鍵選
擇「在新視窗開啟」,問題解決。
#include "<"stdio.h">"
#include "<"stdlib.h">"
int main(void) {
char *a;
int p = 12;
sprintf(a, "%d已經轉成字串嚕!", p);
printf("%s\n", a);
return(0);
}
結果是
12已經轉成字串嚕!
在利用serial port與Lynx-10 Coprocessor溝通時
#大寫表指令,小寫表指令執行時的會依照情形所改變的變數
如果使用指令X0mn
是表示定址A1這個電器(Whan m = 0, n = 0)
其中m表House code,n表Unit code
指令X1mF表示在要求回傳A House code中剛定址的電器
其回傳值為X1mD或是X1mF
m同樣表House code
D表該電器為ON的狀態
E則反之
所以
X000(定址A1)
X10F(要求狀態)
會回傳
X10D(表ON)
或X10E(表OFF)
== 必要套件(header and lib) ==
sqlrelay-dev
libmysqlclient-dev
libmysqlclient12
Fedora 系統只要裝
mysql-devel 就好 >"<
== 編譯注意事項與指令用法 ==
gcc -o mysql test.c -lmysqlclient
-l mysqlclient 是必要的
如果include時是用#include 小於mysql.h大於
編譯時必須以-L 後加上mysql.h的路徑
如-L /usr/lib/mysql
或是-L /usr/include/mysql
如果在include時就以#include 小於/usr/include/mysql/mysql.h大於的形式時
就不需要-L 這項參數
不同於RedHet的格式date -s MMDDhhmmYYYY
在Debian下的格式是使用date -s "YYYY/MM/DD hh:mm:ss"
雙引號可以替換為單引號
這樣的做法比起用兩次的date -s好
date -s MM/DD/YYYY
date -s hh:mm:ss
由於Linux在開機時是讀取主機板的RTC(Real Time Clock) CMOS
所以還必須將修正過的時間寫入CMOS
如此一來下次開機的時間才會是修正過的時間,而不是之前的時間
指令為
hwclock -w
透過ntpdate套件
再加上向中研院的網路時間伺服器校時
並寫到script中讓Linux每次開機時都自動對時
ntpdate -s stdtime.sinica.edu.tw
這樣就不用擔心時間不準了^_^