發表文章

目前顯示的是 2011的文章

PCI Express 規格疑惑

PCI Express  的規格中有一項原始傳輸率,在 1.x 的版本中為 2.5GT/s,是甚麼意思呢? 跟資料傳輸頻寬 2.0Gb/s 又有甚麼不同呢? 原來 GT/s 是 Giga Transfers per second 的縮寫 而 Gb/s 則是 Giga bits per second 的縮寫 還是不懂? PCI Express 是用 Serial 的方式傳輸資料,而且沒有 Clock,所以為了確保資料傳輸的正確性,就必須將資料編碼。以至於原本 8-bit 的資料要編碼成 10-bit 來傳輸。 而上面的原輸傳輸率指的就是一個 Lane 單向的傳輸速度 2.5GT/s 而換算成實際的資料傳輸量就是 2.5GT/s * 8 / 10 = 2.0Gb/s PCI Express 2.x 仍然維持 8-bit / 10-bit 的編、解碼方式,因此 原始傳輸率 = 5.0GT/s 資料傳輸頻寬 = 4.0Gb/s 而 PCI Express 3.x 則改成 128/130 的編碼方式,所以 原始傳輸率 = 8.0GT/s 資料傳輸頻寬 = 8.0Gb/s 就怪怪的,應該是 8.0 * 128 / 130 = 7.88Gb/s 才對吧 參考: What does GT/s mean, anyway?

Vigor 2110 的 VPN 設定

圖片
自從公司換了 中華電信 光世代 50M/5M 的網路後,原本的 Router Vigor 2104 只有 12Mbps 的速度已不敷使用,所以換了 Vigor 2110 總算可以達到該有的速度了 (不過速度是雙方都要達到才有意義,所以 測速 的結果還是快樂表居多吧)

Kindle

最近在玩電子書,發現 Kindle  除了硬體的閱讀器外,在各個 OS 下也提供 閱讀程式 ,目前試過 Windows PC & Android  兩個版本,使用起來還不錯,優點如下: 放大字體時版面會重新編排 有英英字典可以查閱讀中的單字

消失的 Server 2008

為了迎接 Ubuntu 11.10,我將測試用的硬碟重新分割,原本的分割如下 sda1 40GB 延伸的 sda2 40GB NTFS Windows Server 2008 (d:\, Loader) sda3 39GB ext4 Ubuntu 11.04 (/) sda4 1GB Ubuntu 11.04 置換空間 sda5 40GB NTFS Windows Server 2008 (c:\, 系統)

Crystal Report 升級

圖片
先前在『 如何部署網站到 Win Server 2008 』中曾經提到 VS2005 製作的 Crystal Report (10.2.3600.0) 無法在 VS2008 中執行,當時治標的方法是再安裝一次 VS2005 的 Crystal Report。 不過最近又有 Crystal Report 的需求才發現,先前的方法僅能執行舊的程式,卻無法修改 (控制項版本錯誤)。於是只好治本一下,把 VS2005 的 Crystal Report 全部改成 VS2008 的 Crystal Report (10.5.3700.0) 版本了。

Picasa 網路相簿空間升級

免費儲存空間限制 原來加入 Google+ 還可以順便升級網路相簿的空間,真是太棒了。 先前因為原本的帳號已經快用滿 1GB 了,所以只好另外創一個帳號來繼續使用,並縮小上傳相片的解析度,空間省著用,但兩個帳號要彼此切換還挺麻煩的。 最近看到原本的網路相簿突然多了一堆空間出來,還以為電腦有問題,直到發現上面的 FAQ 才恍然大悟: 原本的網路相簿,解析度低於 800x800  則不計入 1GB 的相簿空間 而加入 Google+ 後,解析度提升到 2048x2048 ,所以先前的相片解析度都在 1600x1067,當然就不計入 1GB 的空間了 將相片移轉至新帳戶 最後就是參考上面的方式,將第二個帳戶的相簿移回第一個帳戶,而以後上傳也可以用比較高的解析度了 現在剩下的問題就是人物標記該怎麼用?以前網路相簿有這個功能,但後來被拿掉了。而單機的 Picasa 有這個功能,但不曉得該如何跟網路相簿同步,待研究 ...

HiNet e-mail 密碼變更

若採用 IMAP 的方式收取郵件,變更密碼後似乎不會即時反應,會一直產生密碼錯誤無法登入,過一段時間後才會正常 (害我以為郵件系統又掛了) 但是用 POP3 跟 WebMail 的方式登入就沒有這個問題,怪哉

奇怪的印表機

圖片
用 遠端桌面連線 登入時,老是發現一些怪怪的印表機 (重新導向)

SQL Server 無法啟動

圖片
測試用的 SQL Server 不知何故突然無法使用,主要的錯誤訊息如後 UpdateUptimeRegKey: 發現作業系統錯誤 5(存取被拒。)。

在 Windows Server 2008 上面架設 FTP Server

圖片
原本不想架的,但總不能每次都用 Dropbox 。之前因為是架在 Windows XP 上,相對不太穩定,現在已經換 Windows Server 2008,所以決定再給它一次機會了!

網路相關資訊整理

網路線 接頭有分 568A / 568B 兩種,故有下列兩種接線 568A - 568B 為跳線,用於 PC - PC 或 ADSL modem - PC 568A - 568A 或 568B - 568B 為平行線,用於 PC - Hub 不過目前的 Hub 大部份都有自動跳線的功能,故跳線不太需要了

在 Windows Server 2008 上面架設 DHCP Server

圖片
因原本公司使用的 Router 上面的 DHCP 功能太陽春,無法指定 WINS 伺服器,所以才想在 Windows Server 上增加 DHCP 的服務,安裝上不太困難,就直接在看圖說話吧

設定印表機共用的說明

圖片
印表機安裝在伺服器上 (Windows Server 2008 標準版 32-bit),並設定為共用,提供給區域網路內的用戶使用,其步驟如下: 先照一般的方式在伺服器上安裝印表機

OrCAD 掉線分析說明

圖片
關於 OrCAD 掉線的問題,上星期已與 Jack 確認原因如下:

[已解決] 新螢幕在 Ubuntu 文字模式下的亂碼問題

最近跟 "亂碼" 還真是有緣,話說家裡的舊螢幕掛了,換了一台 ASUS VE225H 的寬螢幕, 效果真是沒話說,不過在文字模式下竟然是亂碼 後來東查西查才發現原來 Ubuntu 自動偵測的文字模式配上我的新螢幕有問題,所以只好自己指定了 sudo gedit /etc/default/grub 設定 GRUB_GFXMODE=1280x1024 原本該設定是被註解掉的,表示 Ubuntu 會自動偵測,不過寬螢幕似乎不在偵測的選單中,所以我們只好手動設定了 若要查看文字模式下有那些解析度可以用,可以在 GRUB 開機選單中按 c 進入互動模式,然後執行 vbeinfo 就會列出所有支援的模式了 (不過我試了一些寬螢幕的解析度如 1400 x 1050 還是有問題,所以就選了常用的 1280 x 1024 了) 設定完成後,不論是 Recovery Mode 或是 tty1~6 都可以正常顯示了,讚!

解決 Windows 壓縮檔在 Linux 底下出現中文亂碼的問題

日前發現在 Windows 下用 WinRAR 壓縮的中文檔案,在 Ubuntu 底下開啟 (透過 Dropbox) 會出現亂碼,原因出在 rar 套件,改用 p7zip-rar 與 p7zip-full 即可解決 參考: Ubuntu 的rar 壓縮檔內容亂碼問題 但目前 Windows 壓縮的 zip 檔,在 Ubuntu 底下仍會有中文亂碼的問題,待解決

如何讀取 Evergreen Leakage ID

根據 AMD 提供的 Application Notes,得知在 Diagnostics 中有一個 db32 的程式可以用來讀取暫存器,因此我寫了一個批次檔,只要將此批次檔放到 Diagnostics 的目錄中執行,就可以直接顯示出 Leakage ID 了 Leakage ID 的範圍是從 0x00 ~ 0x3F,值愈大表示 Leakage 愈大,也就需要愈多的 ASIC power

FileUpload 上傳檔案大小的限制

圖片
以往上傳檔案大小的限制是在 web.config 的 maxRequestLength 屬性 (單位為 KB) <system.web> <httpRuntime executionTimeout="110" maxRequestLength=" 4096 " /> </system.web>

TinyLinux Tips

TinyLinux 用起來跟 Ubuntu 還是有點差別,所以就把這些差別記錄在這裡了 關機指令:poweroff (沒有 shutdown 指令) 檔案系統是開機時解壓縮的,所以沒辦法安裝自己想要的程式 檔案只能放在 /mnt/dos/mods 下

Linux 版的 Ghost

圖片
Jack 為了要對拷硬碟,試了 Ghost 跟 Clonezilla ( 再生龍 ) 都不行,最後只好請出 鳥哥 了 根據 "第九章、檔案與檔案系統的壓縮與打包 6. 其他常見的壓縮與備份工具 " 介紹的 dd 指令,它的功能可多了,不過我們今天先拿來做 640GB 的硬碟對拷,步驟很簡單:

Ubuntu 11.04 Crash 救援實錄

自從昨天更新後,今天不曉得為甚麼 Ubuntu 又進不去 (已經很久沒有這樣了),畫面就一直轉轉轉,終端機也進不去,sudo shutdown -r now 也沒反應,更慘的是連安全模式也進不去。 後來好不容易進去看了一下 dmesg,應該是 Graphics Driver 又掛點了,問題是我根本進不去,要如何移除呢? 這個時候就要請出偉大的 Live CD 了,開機後救援步驟如下: Ctrl + Alt + F1 進終端機模式 sudo fdisk -l 查看 Ubuntu 系統的 partition sudo mount /dev/sdax /mnt 掛載系統 sudo chroot /mnt /bin/bash 切換系統 進入 /usr/share/ati 移除 driver 重開機後安裝 Ubuntu 建議的 driver 就好了 (反正又不用 3D 桌面了) 備註: 移除 ATI driver 時,若使用修復模式的 root 帳號會有問題,改用原本帳號用文字模式登入就可以了 (sudo) 移除 driver 後若還是進不了桌面,到修復模式下的 fsck, clean, dpkg 跑一跑應該就可以了 進入桌面後若沒有選單畫面,按 Ctrl + Atl + T 把終端機叫出來用吧 通常更新後 ATI driver 就會掛點,需要一直移除、重裝,唉!!!

如何安裝 NV Diag 使用的 TinyLinux

圖片
根據 NV AP Note,TinyLinux 是安裝在 DOS 的環境下,然後再利用 GRUB4DOS 來作 DOS 與 Linux 的切換。但目前 DOS 的測試環境多由 Linux 取代,故改用以下的方式將 TinyLinux 與 Ubuntu 安裝在同一顆 HD,並經由 GRUB 2 來切換使用。詳細安裝步驟說明如下:

如何利用 GRUB 2 建立開機選單

想在同一顆硬碟安裝 DOS、Windows、Linux 等作業系統,則 GRUB 2 是不可或缺的開機選單工具。 如果照一般的方式先安裝 Windows 後再安裝 Linux,則 GRUB 2 可以認到 Windows Partiion,所以使用上沒有問題。但反之如果先安裝 Linux 再安裝 Windows,則 Windows 會蓋掉 MBR 的  Linux 開機選單。此時就要利用下列的方式來重建選單。

Linux 核心編譯

利用 make gconfig 挑選核心功能時,會出現以下錯誤訊息 * * Unable to find the GTK+ installation. Please make sure that * the GTK+ 2.0 development package is correctly installed... * You need gtk+-2.0, glib-2.0 and libglade-2.0. * make[1]: *** No rule to make target `scripts/kconfig/.tmp_gtkcheck', needed by `scripts/kconfig/gconf.o'.  Stop. make: *** [gconfig] Error 2 參考 make gconfig need pkgs 安裝下列套件即可 libgtk2.0-0 libgtk2.0-dev libglade2-0 libglade2-dev libglib2.0-0 libglib2.0-dev

Linux Tips

setleds +num 把鍵盤 Num Lock 設為 on 的狀態,可以加到 ~/.bashrc 中設定 Linux 開機後的狀態 sudo chown owner:group file | directory 如果檔案或目錄因權限不夠被鎖住而無法使用,可在終端機下用上述指令修改檔案的擁有者與群組為自已即可使用,例如: sudo chown johnny:johnny myTestFile sudo -i 可切換到 root 的權限,故後續指令就不需要再打 sudo 了

如何像 DOS 批次檔一樣在 Linux 中切換目錄?

以前在 DOS 的環境下,為了方便都會寫批次檔來切換很長名稱的目錄 但是在 Linux 的環境下,若要用 Shell Script 來切換目錄,則 Script 執行完畢後又會切換回原本的工作目錄 ( 所以這個方法是行不通的 ),除非用下列的方式: . [Script File] 或 source [Script File] 參考: UNIX的環境設定 第五小節 PS: Shell Script 就好像系統呼叫的副程式一樣,當副程式執行完畢後,必須將堆疊等環境恢復成執行前的狀態,所以上面的原因是合理的 Jack 連 ./ 都不想打了,所以要在 Script File 前面再多打那些字元當然也是不可行的

AMD Linux Diagnostics 安裝環境補充說明

在 "Cypress and Juniper GPU Overview and Board Design" Technical Training Guide Page 98 提到的開機設定檔 /boot/grub/menu.lst 是 Ubuntu 9.04 下的檔案,從 9.10 後這個檔案改成 /boot/grub/grub.cfg 而這個檔案是由系統自動產生的,若系統有更新核心檔案 (在 GRUB 有多新的選項出來) 或者進入 Recovery mode 重建 GRUB 選單,則之前修改的內容會被蓋掉,必須再重做一次 建議直接修改 /etc/default/grub GRUB_DEFAULT= 1 修改預設開機的選項為 1 # GRUB_HIDDEN_TIMEOUT=0 將這一行前面加 # 註解,強迫選單出現 GRUB_CMDLINE_LINUX=" mem=512M " 在 Recovery mode 後面加上的參數 修改完後執行 sudo update-grub 重建選單即可

解決 Ubuntu 的 doskey 功能在重開機後失效的問題

在 Ubuntu 的終端機模式下,所有輸入過的命令都會存放到環境變數 HISTFILE 所指定的檔案中,利用指令 echo $HISTFILE 即可查看。例如 root 會指到 /root/.bash_history 而一般使用者 johnny 則會指到 /home/johnny/.bash_history 另外 history 指令可用來列出所有曾輸入過的指令。目前有些同事安裝 Ubuntu 9.10 64-bit 版本會發生上述的問題,目前尚未找到根本的解決之道,治標的方法則是利用 history -w 強迫將目前記憶體中的指令寫入檔案中,這樣下次開機就可以用上、下鍵來選擇使用了 history -c 則會清除所有的命令,若覺得舊的命令太多了,就這樣清一清吧 參考: Ubuntu密技 - 最近輸入的命令 Bash history not working

DataView.RowFilter 的用途

這個屬性可以拿來過濾資料,就好像 SQL WHERE 子句一樣 例如想取出 LastName 欄位為 Smith 的資料: DataView.RowFilter = "LastName = 'Smith'"; 但是要如何取出欄位內容為 Null 的資料? 可以用 DataView.RowFilter = "LastName Is Null"; 或 DataView.RowFilter = "IsNull(LastName, '') = ''"; 如果是數字欄位則用 DataView.RowFilter = "IsNull(Price, 0) = 0"; 其中 IsNull 是 SQL 函數,若第一個參數所代表的欄位內容為 Null,則傳回第二個參數所替代的值 參考: DataView.RowFilter 屬性 How do I test for a null value in DataView.RowFilter? ISNULL (Transact-SQL)

在 C# 中使用 VB.NET 的 InputBox

有時想要偷懶一下,想用 InpubBox 取得輸入的字串,偏偏在 C# 下又沒有這樣的功能。 但是,沒想到在 .NET 平台下,這麼容易就解決了 using Microsoft.VisualBasic; // 加入參考 Interaction.InputBox(...); // 歡迎取用 參考: C#中使用VB.NET的InputBox 不過如果是要選取檔案的話,可以考慮用 OpenFileDialog 喔

DataGrid + DataList 套用主從式資料的顯示方式

在 .net 平台分散式應用程式 (3) - ASP.NET 網頁設計技巧 (文章編號:N021201102) 文章中,在 DataSet 中建立關聯式的資料表,並分別套用到 DataGrid 與內層的 DataList。 其中外層的 DataGrid 可直接利用 Eval 繫結相關的資料欄位,但在內層的 DataList 卻行不通。 原因在於 DatList 的資料來源是利用 DataRow.GetChildRows(DataRelation) 取回的 DataRow[] 陣列 (該函式是從父階 DataRow 取得所有關聯子階的 DataRow) 所以繫結必須先做型別轉換才可以 <%# ((System.Data.DataRow)Container.DataItem)["Author"] %> 或者這種方式也可以 <%# (Container.DataItem as System.Data.DataRow)["Author"] %>

DataSet 兩三事

若要判斷 DataSet 是否有資料,可利用 DataSet.Tables.Count 來檢查 若要判斷 DataSet 中的特定資料表是否有資料,可利用 DataSet.Tables[TableName].Rows.Count 來檢查 當利用 SQL 查詢傳回資料集時,如果沒有資料,則仍然會建立 Table,但 Table 的內容沒有資料 所以要判斷 DataSet 是否有資料還真不容易啊

SQL 查詢小技巧

public DataSet getBookByID(string strID) { string strSQL = "SELECT ID, Name, Price, Category FROM Books WHERE (ID LIKE @ID)"; SqlParameter[] param = new SqlParameter[1]; param[0] = new SqlParameter("@ID", SqlDbType.NChar, 4 ); param[0].Value = strID; return Util.getData(strSQL, param, "books"); } 其中 ID 的資料型態是 4 個字元的固定長度,如果查詢參數設成一樣的型態,且用 % 做萬用查詢時,會查不到資料。 問題在於固定長度的資料型態,若資料不足的話會補空白 。所以改成可變長度的資料型態就 OK 了 (其中資料長度變成 6 是加上前後的 % 字元) param[0] = new SqlParameter("@ID", SqlDbType.NVarChar, 6 );

解決 DropDownList 在控制項樣版中無法記錄狀態的問題

碰到一個怪怪的問題: 當 DropDownList 放在 GridView 的 HeaderTemplate 中時,PostBack 後就是無法記得上次選擇的項目 同樣的 DropDownList 移到外面後就一切正常了 解決辦法: 在 DropDownList.SelectedIndexChanged 事件中用 GridView.Attributes["MyIndex"] = DropDownList.SelectedIndex.ToString(); 的方式把選項記錄下來 在 GridView.RowDataBound 事件中用 DropDownList.SelectedIndex = Convert.ToInt32(GridView.Attributes["MyIndex"]); 的方式還原 緣由: 在 HeaderTemplate 製作條件過濾的下拉式選單 (VB.NET) (文章編號:N020600501)

Crystal Reports for Visual Studio 2010

圖片
Visual Studio 2010 並不包含 Crystal Reports,若在專案中加入 Crystal Reports 將會到 SAP BusinessObjects - Crystal Reports 下載,選擇 SAP Crystal Reports, version for Visual Studio 2010 - Standard EXE installation package which installs the software into the Visual Studio IDE . 安裝即可。其它版本在 Visual Studio 2010 中並不會出現 Crystal Reports,用途待研究 (可能是 Server 端發怖用的)

IE 如何連接主動式的 FTP

圖片
就是它,就是它 到 IE 的 網際網路選項 | 進階 ,把 " 使用被動式 FTP (以與防火牆及 DSL 數據機相容) " 的選項取消就可以了 設定完連 Windows 7 檔案總管 裡面的 FTP 網路位置 也一併搞定,看來設定是共用的 參考: 使用IE連上FTP顯示無法取得目錄

如何安裝 .Net Magazine 的北風資料庫 (Northwind 中文版)?

圖片
在實作 " 創造視窗設計的想像空間 " (文章編號:N020500405) 時需要安裝資料庫,步驟如下:(資料庫檔案位於 code_N020500405.zip ) 執行後選擇 "還原資料庫"

VS2010 手扎

在看 .NET MAGAZINE 國際中文電子版 "使用 Visual Studio 2010 開發 ADO.NET 資料服務" 時,找不到 "ADO.NET Data Service 範本",原來是改名成 "WCF Data Service (資料服務)"。參考: ADO.NET Data Services更名 "創造視窗設計的想像空間" (文件編號:N020500405) 舊的名稱 新的名稱 DataAdapter TableAdapter BindingManagerBase BindingNavigator  / BindingSource

Windows Server Virtual Host (虚擬主機) 的設定

圖片
在這個不景氣的時代,用同一台主機架設多台網站是未來的趨勢,所幸 Windows Server IIS 的設定還算滿簡單的。