星期一, 12月 21, 2009

擴大虛擬硬碟檔案容量

1. dd if=/dev/zero bs=1024k count=1024 >> image_file
如果image file是一般磁碟(不含分割區),可以直接調整它的大小
2.
e2fsck -f image_file
3. resize2fs image_file
如果image file含有分割區,就必須重新分割後再依以上2步驟調整大小

星期三, 12月 16, 2009

Xataface自訂列表清單

Xataface清單顯示滑鼠預設點選動作為"檢視"該筆記錄的詳細資料,如果要修改為"開啟某網頁"就必須使用自訂欄位顯示的方式。

作法如下:
1.修改或新增 應用系統目錄/tables/資料表名稱/資料表名稱.php
2.新增 class "class tables_資料表名稱 { } "
3.新增 function 欄位名稱__renderCell( &$record ) {
return '<a href="'.$record->strval('欄位名稱').'" target="_blank">'.$record->strval('欄位名稱').'</a>';
}

Xataface中文亂碼問題

Xataface 1.2 版開始已有簡體中文介面,如果資料庫正確儲存為utf8時Xataface也可以正常顯示,但是預設語系還是ISO-8859-1,所以輸入中文時都會被轉碼為&#999999格式存入資料庫。
解決方式為在conf.ini最上方設定
default_oe=UTf-8
default_ie=UTF-8
如果使用Xataface建置的應用系統很多,不想重復設定,可直接修改Xataface/Dataface/Application.php中,將
if ( !isset($this->_conf['default_ie']) ) $this->_conf['default_ie'] = 'ISO-8859-1';
if ( !isset($this->_conf['default_oe'])) $this->_conf['default_oe'] = 'ISO-8859-1';
ISO-8859-1改為UTF-8,所有應用系統都會以UTF-8為編碼方式。

星期二, 6月 30, 2009

Xataface-紀錄填表者ip

1.修改fields.ini
[ip]
widget:type=hidden
visibility:list=0

2.修改tablename.php -> class tables_tablename 加入
function beforeSave(&$record){
$record->setValue('ip', $_SERVER['REMOTE_ADDR']);
}

Xataface-製作動態選單

在Xataface中設定動態選單(雙層選單)並不困難,這裡示範的是單一資料表方式,也可將第一層和第二層選單分開存在兩個資料表(areas)。








province_idcity_idname
U01U0100province_1
U01U0101city_1
U01U0102city_2
U02U0200province_2
U02U0201city_3
U02U0202city_4

1.修改valuelists.ini
[cities]
__sql__ = "select city_id, name, province_id from areas order by city_id"
[provinces]
__sql__ = "select province_id,province_name from areas where SUBSTR(city_id,4,2)="00" order by province_id"


2.修改fields.ini
[province]
vocabulary=provinces
[city]
vocabulary=cities


3.修改應用程式目錄/tables/tablename.php
class tables_tablename {
http://xataface.com/wiki/index.php?-table=wiki&-action=browse&page_id=%3D90
} //End of class

星期二, 4月 07, 2009

讓ubcd支援網路分享並從網路掛載dosapp

UBCD內建許多DOS系統工具,可以透過memdisk使用pxe開機的方式啟動。
本文介紹如何修改UBCD的fdubcd.img,讓它具備掛載網路分享的功能,使得pxe開機後可以透過網路執行UBCD中的眾多DOS工具(dosapps)。
  1. 解開dosubcd.igz得到fdubcd.img
  2. 掛載fdubcd.img
  3. 將fdubcd.img的內容與UBCD的dosappa複製到網路分享
  4. 從網路下載freedos的more.exe到網路分享\bin
  5. 從網路下載freedos的subst.exe到網路分享\bin
  6. 刪除level0/nwlan.cab、lib/odi16/、lib/nw*、lib/wget.cab
  7. 修改/etc/autoset.bat,設ramsz=50000
  8. 從fdmsrrc.igz的level3/msnet.cab複製到/level2、lib/Ngis到lib/Ngis、etc/_ms*複製到etc/
  9. 修改/etc/global.set,設定G_PROFILE=client
  10. 複製並修改/etc/profile/client.pro,設定P_USER=網芳帳號
  11. 複製並修改/etc/profile/client.bat,加入以下內容
    • @net use r: \\share_server\diskimg
    • @if exist r:\fdubcd\autoexec.bat set srcdrv=r:\fdubcd
    • @if exist r:\fdubcd\autoexec.bat set _srcdrv=r:\fdubcd
    • @inifile q:\net\wattcp.cfg [] my_ip=%ipaddr%
    • @inifile q:\net\wattcp.cfg [] netmask=255.255.255.0
    • @echo %ipaddr%|lmod /L1 /S. @set gateway=[$1].[$2].[$3].254 > %tmp%\_gate.bat
    • @call %tmp%\_gate.bat
    • @inifile q:\net\wattcp.cfg [] gateway=%gateway%
    • @inifile q:\net\tcp.cfg [] my_ip=%ipaddr%
    • @inifile q:\net\tcp.cfg [] netmask=255.255.255.0
    • @inifile q:\net\tcp.cfg [] gateway=%gateway%
  12. 修改\autoexec.bat加入if %ubcdcmd%==xxapp inifile %ramdrv%\etc\profile\client.pro [ ] P_USER=xxuser,讓不同的dosapp使用不同的網芳帳號

星期四, 4月 02, 2009

簡化Gnome工作面板的選單

選單圖Gnome的工作面板選單分為 "應用程式、位置、系統" 雖然方便,但是如果螢幕不大就會太佔空間。如果要簡化可以在選單上按滑鼠右鍵選 "從面板移除" ,另外在面板上按滑鼠右鍵選 "加入面板" 並將 "主選單"加入面板。完成後如下圖
 主選單圖

星期五, 1月 16, 2009

在GNU/Linux連MS SQL資料庫

1.安裝 tdsodbc、freetds-bin、libsybdb5、freetds-common、unixodbc

2.執行 TDSVER=8.0 tsql -H ser.ver.ip.1 -p 1433 -U username -P password (測試freetds,OK 出現 "1>" )

3.編輯 /etc/freetds.conf
[server_ts]
host = ser.ver.ip.1
port = 1433
tds version = 8.0
client charset = UTF-8

4.執行 tsql -S server_ts -U username -P password (測試 freetds.conf 設定)

5.編輯 /etc/odbcinst.ini (預設即可,記住[ms_sql]標簽)
[ms_sql]
Description = TDS driver (Sybase/MS SQL)
Driver = /usr/lib/odbc/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsS.so
CPTimeout =
CPReuse =

6.編輯 /etc/odbc.ini
[DSNname]
Description = test database
Driver = ms_sql -------------------------->odbcinst.ini中的標簽
Servername = server_ts ------------------>freetds.conf中的標簽
;Server = ser.ver.ip.1 ---------------->如不使用Servername就要使用Server和Port但中文有問題,在這指定client charset 沒有用
;Port = 1433
Database = databasename

7.執行 isql -v DSNname username password (測試odbc.ini設定,出現 "sql>" 即可)

8.如在odbc.ini中使用Servername方式不行而使用Server加Port方式可以,表示isql找不到freetds.conf
可能要執行 ln -s /etc/freetds.conf /usr/local/etc/freetds.conf


補充64位元版本
/etc/odbcinst.ini內改為
Driver64=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup64=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so