我需要大家

我不知道有多少人會看到這個Blog,我還滿好奇現在看到這些文字的人是誰,

我稍微說說我自己好了,我是個資訊工程的研究生,但也快要畢業了(只要我能順利完成最後的幾個專案與論文)~

平常接觸很多軟體開發工具如VS2005、RAD、RSA...,程式語言也碰很多,如ASP.Net、VB、J2EE、 J2SE、C#、C++...

因為身處的環境,東也碰,西也碰,只要專案有需要,連OSGi的程式也開發,

雖說軟體在台灣真的還滿辛苦的,有人還說賣雞排還比我們賺,不過寫軟體真的還滿有趣的~(前提是沒人逼你在什麼時間點完成~)

所以踏入後就一直窩在程式與開發的工作中~(都快便宅男了)

我喜歡用Blog記事,所以把一些東西都記在這,如果你有看到我的文章內容,歡迎與我討論,

甚至隨便貼一個相關文章的連結對我而言都有用~(我也都是從Google找一些相關連結貼在下面的~)

Web 2.0好多研討會

今天去參加在台大辦的 超越web2.0在企業之應用 研討會,第一個感覺就是~掛上Web 2.0人就特別多~

第二個感覺就是,雖然是收費活動,不過服務品質項是一般的網聚,服務的人員感覺經驗稍閒不足,從一開始簽到,中午訂的餐點數量問題,還有些小細節...ps.有的人有拿到這期數位時代~我居然沒有~嗚~借來看內容不錯~

不過既然是參加研討會,最重要的還是演講內容~

讓我印象比較深的幾個主題

談到Yahoo User Interface Library (YUI) 與 AJAX兩個重點,YUI是我第一次聽到的東西,大致聽完感覺是滿好用的東西,簡單來說就是簡化開發Java Script的一些程式碼,並且結合CSS讓網頁互動性加強,另外還提供AJAX的支援

另外洛可可的演講也很令人深思,感覺是個向心力很強的團隊,以理想為中心的Flash設計團隊,聽他們從另一個角度來談Web 2.0,比起那些大公司說的都還要更有Web 2.0共同創作,展現自我的感覺

總結來說,這次研討會感覺的出來主辦人很想把活動辦好,找了些贊助廠商,拼命用贈品回饋付了600元參加的人,不過總覺得比起我之前參加的活動少了些專業感,不過也或許是想營造輕鬆的感覺吧,演講方式也十分輕鬆,像是與大家聊天分享經驗的感覺~

我下星期五還有個Web 2.0的研討會要去聽,果然Web 2.0很熱門,但像是洛可可這樣腦袋清楚的團體或是公司有多少呢...

參考連結

用VB讀寫文字檔的簡單函式

以下是我常用的VB檔案讀寫函式,我自己覺得還滿方便的

程式碼

丟給它路徑與new好的ArrayList就可以讀檔了,讀出來後ArrayList中會都是String,每個String代表一行,寫入也是反向動作,如果寫入的路徑不存在會自己產生目錄

修改encoding就可以設定寫入的編碼,預設用UTF8

Imports System.IO
Public Class MyFileIO
Public encoding As System.Text.Encoding = System.Text.Encoding.UTF8

Public Sub fileReadLine(ByRef path As String, ByRef fileData As ArrayList)
    If Not fileData Is Nothing And Not path.Equals("") And System.IO.File.Exists(path) Then
        Dim readfile As New System.IO.StreamReader(path, encoding)
        Dim str As String
        str = readfile.ReadLine()
        While Not str Is Nothing
            fileData.Add(str)
            str = readfile.ReadLine
        End While
        readfile.Close()
    End If
End Sub

Public Sub fileWriteLine(ByRef path As String, ByRef fileData As ArrayList)
    If Not fileData Is Nothing And Not path.Equals("") Then
        Directory.CreateDirectory(path.Substring(0, path.LastIndexOf("\")))
        Dim writefile As New System.IO.StreamWriter(path, False, encoding)
        Dim i As Integer
        Dim str As String
        For i = 0 To fileData.Count - 1
            str = fileData.Item(i)
            writefile.WriteLine(str)
        Next
        writefile.Close()
    End If
End Sub
End Class

相關

如果要取得應用程式所在路徑可用:

 Dim path as String = System.Windows.Forms.Application.StartupPath + "\"

如果是Web App的話則使用

 Dim path As String = Server.MapPath("~/")

相關連結

從Google Pages Creater到Blogger

我原本是在Google pages Creater中寫得技術札記的,

不過越寫越多就會發現功能還是有差,雖然頁面排版Google pages creater的編輯器比Blogger方便很多,不過就功能性Blogger還是比較多~

所以經過百般考慮還有測試後,終於決定換到這了,順便提供我換到這的過程要點給大家參考

挑Blogger的原因

我其實有到處看看各家BSP的功能還有效能~決定換這裡的幾個原因

  • 這裡有提供Free tagging(標籤)的功能,其他的大都還沒有提供
  • 這兒跟Pages Creater都是Goolge旗下的,感覺比較穩
  • 它的備份聽說還滿方便的,雖然還沒試過
  • 有提供一些介面方便排版與新增元件
  • 可以客製化的地方也不少

不過當然有缺陷,例如範本要修起來其實還滿困難的(因為我幾乎可說是不懂CSS) ,而且文章跟首頁居然必須用同一個樣板,這樣功能表就每頁都有,有點多餘(有人知道如果解決請告訴我)

還有文章編輯器太笨了

Blogger的設定

首先,申請了Blogger後,可以發現有三個主要功能,張貼、設定、範本

在【設定】的【格式】中,有個【轉換分行符號 】,主要用來補足它笨笨的編輯器,不過反而造成我文章編寫的困擾,所以我選【否】

在【設定】,另一個可以注意的就是【權限】, 可以讓你的朋友也成為這個Blogger的作者,就可以共同製作這個Blog

Blogger的範本

主要是設計整個版面配置,可以用拖拉點選的方式,也可以搭配修改CSS(HTML)

通常可以先利用【挑選新範本的功能】,大至決定配色排版,覺得不夠還可以去網路上找,如Blogger templates

然後用【修改HTML】來做細部的調整,例如我做了下面這些設定

  • 在title之前加上下面這段以利瀏覽器判斷 <meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
  • 因為我打算讓它的版面隨使用者的視窗變大小,所以修改了body的min-width
    body {
    margin: 0;
    text-align: center;
    min-width: 790px;
    background: #ce8b43 url(http://www.blogblog.com/thisaway/bg_body.gif) repeat-x left top;
    color: $textColor;
    font-size: small;
    }
  • 然後修改outer-wrapper、header-wrapper、main-wrapper、sidebar-wrapper、footer-wrapper的background與width,讓版面大小跟著變化
    #outer-wrapper {
    margin: 0 auto;
    width: 99%;
    text-align: left;
    font: $bodyFont;
    }
    
    #header-wrapper {
    padding-bottom: 15px;
    background: #634320;
    }
    
    #content-wrapper {
    position: relative;
    width: 99%;
    background: #f7f0e9;
    }
    
    #main-wrapper {
    display: inline;
    float: left;
    margin: 0 0 0 3px;
    padding: 0;
    width: 75%;
    word-wrap: break-word;
    overflow: hidden;
    }
    
    #sidebar-wrapper {
    display: inline;
    float: right;
    margin: 0 3px 0 0;
    width: 22%;
    color: $textColor;
    line-height: 1.4em;
    font-size: 90%;
    background: url(http://www.blogblog.com/thisaway/bg_sidebar.gif) repeat-x left top;
    word-wrap: break-word;
    overflow: hidden;
    }
    
    #footer-wrapper {
    padding-top: 15px;
    background: #634320;
    clear: both;
    }
  • 其他的就是額外像是code的外觀
    code {
    display: block; /* fixes a strange ie margin bug */
    font-family: Courier New;
    font-size: 8pt;
    overflow:auto;
    background: #fff url(http://klcintw.images.googlepages.com/Code_BG.gif) left top repeat-y;
    border: 1px solid $postTitleColor;
    padding: 10px 10px 10px 21px;
    max-height:200px;
    line-height: 1.2em;
    }

Blogger的張貼

我一直有提到他的編輯器有些笨,是我對Blogger最不滿意的地方,如果不是因為這點我很早就轉用Blogger了,不過在這次轉移的過程,我發現利用Google pages Creater寫完,再把HTML貼過來就OK了

此外,它的標籤部份是用【,】分隔,與HemiDemi用空白分隔不一樣,它沒有特別標示,讓我小小打了個問號

總結

其實我對CSS的設計一點也不熟,這樣修改也不確定有沒有些問題,

所有的東西我就是設定一下然後看一下效果,如果高手有些建議,請大方指教,我會很感謝

相關連結

VMWare與Virtual PC的硬碟減肥法

前陣子看到一本雜誌提到,最近許多企業關注的兩個技術:虛擬化與SOA,

其中的虛擬化指的就是使用虛擬機器來減少設備、管理的成本,而其中我較常聽到的就是VMWareVirtual PC了~

我用VMWare比較多,Virtual PC也是一年前第一次使用,當時因為做教材的關係,花在這上面不少時間,

就發現明明虛擬機器系統中的硬碟就只有幾G,外面實體確是2~3倍,甚至越用越大,這時我才發現不對,於是找半天,總算看到有文章談到了這部份的解決方法。

網路上來找的到很多人談到其他方式,但實際上最正統有用的就只有以下的方法~

VMWare

關於VMWare的硬碟減肥請先參考Vmware磁盤減肥方法

其中的要點如下

  • 打開VMWare,並啟動作業系統
  • 先確定你的虛擬機器的作業系統有沒有裝VMWare Tools(如果還沒裝,相信你應該是新手,請在選單選VM→Install VMWare Tools...)
  • 將系統裡的垃圾文件清理乾淨,然後關閉系統
  • 選擇你的虛擬機器選項下的〞Virtual Machine Settings〞,在跳出視窗的〞Hardware〞,選擇要處理的硬碟(Hard Disk),再點右邊的〞Defragment〞進行碎片整理
  • 碎片整理完成後啟動作業系統
  • 進入系統後點右下角的VMWare Tools圖標會彈出對話框
  • 選點「shrink」
  • 選擇要處理的硬碟,然後就選是,讓它開始處理,中間跳出視窗也選確定,直到它說完成,就可以關閉虛擬的OS

處理會花點時間,不過這樣過後就會減去多餘的部份

Virtual PC

關於Virtual PC的硬碟減肥請先參考如何有效的壓縮虛擬磁盤

其中的要點如下

  • 打開Virtual PC,並啟動作業系統
  • 將系統裡的垃圾文件清理乾淨,並進行磁碟重組
  • 點選Virtual PC選單的CD→Capture ISO Image
  • 選擇Virtual PC安裝路徑下(預設在C:\Program Files\Microsoft Virtual PC)的Virtual Machine Additions子目錄下的Virtual Disk Precompactor.iso
  • 如果沒有自動開啟光碟內容,可到光碟機內選擇開啟precompact.exe
  • 選擇是,開始處理
  • 完成後關閉虛擬的OS,選擇"File"→"Virtual Disk Wizard"
  • 在歡迎話面選Next,然後選"Edit an existing virtual disk", 選Next
  • 然後選擇要處理的硬碟檔案位置
  • 選擇"Compact it"選Next
  • 這時可選擇覆蓋原本的硬碟還是存成新檔
  • 選Next,開始處理

PS.對虛擬硬碟進行壓縮過程中需要保證具有足夠的暫存硬碟空間(大約為兩倍虛擬硬碟文件的大小),否則可能會因為暫存空間不足導致壓縮失敗

總結

這兩個虛擬機器各有千秋,不過就我所知學術界還是用VMWare的人比較多,雖然它要錢,不過支援的環境比較多,但效能或操作性上其實差異不大

我個人最多同時在一台電腦跑兩個虛擬機器就顯得有些吃力了

建議如果你的開發過程常會搞爛作業系統的人,一定要試試這樣的東西,不過前提是你最好有個強力的電腦

相關連結

VS2005(.Net)非同步呼叫Web Services

.Net Framework 2.0所提供的開發環境中,提供了簡單的方式讓你用非同步的方法呼叫Web Services

它使用MothodName後方加上Async名稱的函式當做呼叫方法,然後另外寫一個函式處理呼叫的回傳值

我想背後原理應該不脫離使用執行序(Thread)來達到這樣的功能。

參考資料中有微軟的範例,但它的做法如果用在連續呼叫的話可能會有些問題,而且沒有C#的範例,

所以我稍做修改成我需要的版本

開發環境

  • Microsoft Visual Studio 2005 (.Net Framework 2.0)
  • 專案類型:Windows 應用程式
  • 已有一個簡單的Web Service,該Service中有個函式: Function hello(ByVal name As String) As String
  • 我將Web Service加到名為wsServer的Web參考中
  • 我在畫面中用一個多行的TextBox叫resultOut來顯示呼叫與回應的資訊

C#

  //CallMyWSAsync用來New起Web service的實體,指定處理回應的函式,然後呼叫Web Service
 private void CallMyWSAsync(string value)
 {
  //New起Web service的實體
  wsServer.WebService ws = new wsServer.WebService();
  //指定處理回應的函式
  ws.helloCompleted += new wsServer.helloCompletedEventHandler(getCompletedHandler);
  //resultOut來顯示呼叫的資訊
  string o = "ID=" + ws.GetHashCode() + " Start, value=" + value;
  o = DateTime.Now.ToString() + "\r\n" + o;
  resultOut.Text = o + "\r\n" + resultOut.Text;
  resultOut.Text = "\r\n" + resultOut.Text;
  //呼叫Web Service
  ws.helloAsync(value);

 }

 //getCompletedHandler用來處理回應
 private void getCompletedHandler(object sender, wsServer.helloCompletedEventArgs e)
 {
  string o;
  if (e.Error == null)
  {
   o = "ID=" + sender.GetHashCode() + " Done, Result: " + e.Result; //e.Result可取得回應的物件
  }
  else
  {
   o = e.Error.Message;
  }
  //resultOut來顯示回應的資訊
   o = DateTime.Now.ToString() + "\r\n" + o;
  resultOut.Text = o + "\r\n" + resultOut.Text;
  resultOut.Text = "\r\n" + resultOut.Text;
 } 

VB


   'CallMyWSAsync用來New起Web service的實體,指定處理回應的函式,然後呼叫Web Service
   Sub CallMyWSAsync(ByVal value As String)
       'New起Web service的實體
       Dim ws As New wsServer.WebService
       '指定處理回應的函式
       AddHandler ws.helloCompleted, AddressOf getCompletedHandler
       'resultOut來顯示呼叫的資訊
       Dim o As String = "ID=" + ws.GetHashCode() + " Start, value=" + value
       o = DateTime.Now.ToString() + vbCrLf + o
       resultOut.Text = o + vbCrLf + resultOut.Text
       resultOut.Text = vbCrLf + resultOut.Text
       '呼叫Web Service
       ws.helloAsync(value)

   End Sub
   'getCompletedHandler用來處理回應
   Private Sub getCompletedHandler(ByVal sender As Object, ByVal e As wsServer.helloCompletedEventArgs)
       Dim o As String
       If e.Error Is Nothing Then
           o = "ID=" + sender.GetHashCode() + " Done, Result: " + e.Result 'e.Result可取得回應的物件
           o = DateTime.Now.ToString() + vbCrLf + o
           resultOut.Text = o + vbCrLf + resultOut.Text
           resultOut.Text = vbCrLf + resultOut.Text
       Else
           o = e.Error.Message
       End If
       'resultOut來顯示回應的資訊
       o = DateTime.Now.ToString() + vbCrLf + o
       resultOut.Text = o + vbCrLf + resultOut.Text
       resultOut.Text = vbCrLf + resultOut.Text
   End Sub

後言

這是我第一次寫C#的程式,因為我想順便體驗C#開發起來有何不同,

我在查資料時,還有看到ASP.Net的網頁也可以設為Async,不過會有什麼結果我沒試過,下回有空再寫寫札記吧

參考資料

透過網路讓鍵盤滑鼠在電腦間游走(W2XW與Synergy)

今天在網路上看到有人問(一鼠事二君)他在網路上看到一個影片,看到能夠用一組滑鼠鍵盤在兩台電腦(Windows與Mac)之間游移,如同使用雙螢幕一般。

一鼠事二君下面的回應,還有剛好我學弟玩到的,分別找到兩個軟體(W2XWSynergy),介紹給大家

差異

先說差異,讓大家挑選要先玩哪個(由於我在Windows下試,所以就我使用的感覺而言)

首先就安裝而言,在Synergy需要安裝,而W2XW只要解壓縮就能執行

就設定,Synergy設定步驟較多,也比較麻煩,而W2XW只要設定一兩個東西,就能啟動了

就功能而言,Synergy功能較多,可以設定較多台電腦(按它的設定法,你可以讓電腦把你圍起來操作應該不成問題),而W2XW則比較陽春,但我想一般人用到這樣就夠了

穩定度而言,我沒有詳細測過,但我學弟用W2XW的反應是有些不穩,有Bug

W2XW的設定雖然好設定,不過我懷疑它的安全性,好像很容易讓另一個人控制你的電腦,所以沒在用電腦時建議關掉他

總結而言,如果你第一次完,可以先試W2XW,如果不能用或不滿意穩定度,再試試Synergy

W2XW使用

  • 分別下載軟體到兩台電腦(我下載時的網址是:http://www.h7.dion.ne.jp/~umiumi/w2xw17a.zip),
  • 然後解開來,連接控制的鍵盤滑鼠的主電腦執行"w2xwM.exe"
  • 被控制的電腦執行"W2xwS.exe"
  • 主電腦程式會開啟一個設定視窗,設定如下
    • Switching(hot key)代表在控制時想切掉控制,讓鍵盤回到原電腦的按鈕(程式沒反應時使用),預設是Shift+Alt+Q
    • Switching(mouse)代表被控制的電腦在哪,像我放在右邊,IP是192.168.1.2,就勾Right,並填上IP
    • ClipboardShared代表剪貼簿共用,這樣就能複製文字到令一台電腦了
    • 還有兩個選項我沒試過
  • 完成後,你就可能把滑鼠從主電腦滑到令一台電腦了

Synergy使用

  • 下載安裝檔(我下載時的網址是:http://sourceforge.net/...)
  • 分別在兩台電腦安裝,要知道兩台電腦的名稱,預設是電腦名稱(例如我的主電腦是ALPC被控制電腦是ALNB)
  • 連接控制的鍵盤滑鼠的主電腦ALPC的設定

    • 選擇Share this computer's keyboard and mouse (server)
    • 點選Configure,設定電腦與電腦的關係
      • Screens中,點+,加入兩台電腦的名稱ALPC與ALNB,其他是預設就可
      • Links中,點+,加入兩台電腦的關係,我的ALPC在ALNB左邊的話,要加入2項,加法如下

        • 0 to 100% of the right of ALPC goes to 0 to 100% of ALNB:表示在ALPC中,滑到最右邊就會跑到ALNB
        • 0 to 100% of the left of ALNB goes to 0 to 100% of ALPC:表示在ALNB中,滑到最左邊就會跑到ALPC
    • 點選Hot Keys,設定一個可以讓鍵盤回到原電腦的按鈕
      • Hot Keys,點+,輸入Shift+Alt+Q
      • Actions,點+,選Switch to Screen,然後選主電腦ALPC
    • 點Start,啟動服務
  • 被控制電腦ALNB的設定

    • Use another computer's shared keyboard and mouse (client)
    • 然後輸入另一台電腦的名稱ALPC
    • 你可以用Test測試一下連不連的到
    • 選Start起動
  • 完成後,你就可能把滑鼠從主電腦滑到令一台電腦了

結論

強烈建議重視安全的人使用Synergy,反正麻煩一下而已,但說真的,W2XW比較有小巧易用的感覺

我還滿喜歡這樣的功能的,所以才會寫這篇,如果有問題或建議再跟我說吧~

參考資料

.Net的Web Service移除Soap1.2描述

雖然Web Services號稱讓不同語言開發的環境都能互相呼叫對方的功能,但還是會有些問題存在,我之前就遇過使用IBM的開發工具要呼叫我用.Net產生的Web services,結果無法解譯WSDL的問題~

原因應該是因為.Net的Web services產生了許多的描述,其中同時包含Soap1.1與Soap1.2,而有些工具無法處理這樣的內容

解決方法就是移掉Soap 1.2的描述,當然,不是叫你把WSDL用編輯器修改...那我就不用寫這篇了~

開發環境

Microsoft Visual Studio 2005

方法

動作其實很簡單,在你的Web專案最外層會有一個web.config,裡面描述了許多web專案的設定,

將以下內容加入configuration區塊下的system.web區塊

如,

<configuration> ... <system.web>

...

<webServices> <protocols> <remove name="HttpSoap12"/> </protocols> </webServices>

...

</system.web> </configuration>

然後,你就會發現產生的WSDL只剩Soap1.1的描述了,簡單吧

參考資料

用 Psiphon 突破網站封鎖

有個來自對岸的聲音問我,他們那裡沒辦法連到一些特定的網站,例如維基百科...等網站

所以我那天看到這個軟體就當場跟對岸的聲音試了一下

PS.除了自己架,網路上也有些網站提供類似服務,請參考最後的相關連結,如果大家有類似的東西也請回應給我

軟體簡介

簡單來說,就是在一個可以存取特定網站的電腦,執行這個軟體,他會架起一個網頁伺服器,讓想上網站的人登入後,可以將特定網站的內容再交給登入的人。

使用方法

  • 安裝軟體後,啟動程式,他會先測試預設的https網站要用的port:443是否被使用中(如果有架網頁伺服器就可能會在使用中)
  • 點選Setup可以設定使用的Port,不過被封鎖的電腦通常也只有公用的port能存取,所以建議還是盡量使用443
  • 點選add,設定帳號密碼以供使用者登入,使用者可以透過網站自己修改密碼
  • 要進入網站的網址可以在Setup中複製,如https://127.0.0.1:443/login/
  • 點選Start,則視窗名稱會顯示狀態為ON,表示服務已啟動
  • 使用者進到網站登入後,可以看到網站顯示了一個可以輸入網址的對話框,在那輸入你想去的網站就行了

參考資料

軟體開發人的亂想

我今天有感所以要發,以自認軟體開發人的身份談談網路軟體產業的環境~

最近接觸IBM的產品,也參加了幾場微軟研討會,還有其他雜七雜八的事之後~

就在今天微軟的WSS的研討會中,讓我發覺了一些現象~

就如同台灣微軟的人說的,我發現軟體界一些身為領導地位的頭頭,

在如同台灣這樣電腦、網路普及的地方,不斷讓他們賺錢而支撐這些頭頭的,

我相信不會是他們那些提供Service與Support的網站(如Live、Spaces等,除非那就是他領先的服務,如Google)~

而是他們賣給企業的東西(如OS、Server、Application Server、DB...等)~

從這裡又可以發現幾件事~

這些公司有了這些產品後,再來就靠業務、合作夥伴,就可以從企業取得不少資金了~

有這些資金與名聲,就可以招攬更多生意與人才,不斷增進自己的產品可用性與重要性~

想要提供更多更好的額外服務,也就不再是難事了~

反觀合作夥伴、一般軟體開發者、其他服務提供者,大都依附著這些龍頭求生~或是自己苦力蠻幹~

有的良性循環,但也有的一不小心,也會出現惡性循環~

Web 2.0的新興網站下,能夠提供使用者免費服務,的確是我們的福音~但這些免費服務之下,

大的服務提供者除了藉這些服務帶來的商機,背後其實還有著額外的資金支援~

但只靠這些服務帶來的商機過活的公司呢...

說真的~在台灣,軟體產業~由其是這些想從夾縫中努力開創一片天的人,

真的是很困難~

以無名為例,或許他們的服務不夠穩定,處理事件的方式不夠成熟,商業做法不夠圓滑~

但我設身處地的想想,身為資工的學生,

這輩子學校也沒真正讓我們知道當伺服器的使用者高過一個上限時要怎麼做才是最好的~

學校也沒教怎麼樣讓使用者與服務提供者能雙贏...

我只能說,國內能提供免費服務的人(黑米、無名、I'm TV、樂多、天空、Pixnet、UrMap...等),真的值得為你們鼓勵~

希望這些網站在大家的監督、提供意見、相互支持的狀態下,都能越來越好~

我想這樣才是使用者們所樂見的~

安裝WBMonitor 6.0.1

老話~我不是IBM官方人員,所以只能從"多"次失敗經驗中,找出結果~

目前本篇還在修訂中~

WebSphere Business Monitor是IBM BDD Solution中的一環,用來監控、收集SOA的Process執行結果,藉此資料做為Process改進的資訊

我前目前是採用information center中的第二種安裝架構(Second scenario),不過我發現如果要符合某些範例,最好把Monitor Server與DB Server放在一起,方便練習

安裝環境

根據IBM的說明,要安裝在Windows Server上,所以我用Windows 2000 Advance Server

我後來又試了用XP安裝,他會警告你這樣安裝只能測試,不足以當真正的產品服務,我要試試才能知道會有什麼結果

注意事項

使用Monitor的 Launchpad 安裝,所以有些設定必須按照它的規定

  • 安裝時,各個需安裝的元件必需放在指定資料夾(請參考)
  • Windows的電腦名稱必須不大於8個字,至 控制台→系統→網路識別→內容 修改
  • 用 Launchpad 安裝 DB2 前系統中不能有db2admin的帳號,否則會安裝失敗
  • DB2安裝後要關掉所有的視窗,然後再重新啟動Launchpad

安裝過程摘要記錄

Monitor DB Server(請參考)&Monitor Server(請參考)

  • 電腦名稱:WBMS1
  • 安裝J2RE 1.4.2
  • 執行Monitor Launchpad,選擇【建立資料庫】
  • 安裝DB2 8.2.1,後關掉Monitor Launchpad,執行"db2start"指令
  • 執行Monitor Launchpad
  • 安裝Cube View 8.2.1
  • 安裝Monitor DB-State、Repository、Runtime、Historical 安裝完DB Server的所有東西大約花了我一個半小時(不含作業系統)
  • 選擇【安裝產品】→【監控伺服器】
  • 安裝Process Server 6.0.0,此時會要求輸入CEI資料庫的帳戶資料,用DB2的帳號密碼 這個動作大約會花45分鐘
  • (如果要分開安裝DB與監視伺服器,要先設定DB2 Control Center,加入 WBMDB1中的DB到資料庫伺服器清單中,方法下面會有)
  • 安裝監控伺服器 雖然文件上說這步只要安裝45分鐘,但我安裝了約一個半小時

Monitor Server安裝驗證

文件中有些驗證步驟,我有空再補上

Monitor Dashboard Client(請參考)

  • 電腦名稱:WBMD1
  • 安裝J2RE 1.4.2
  • 執行Monitor Launchpad,選擇【安裝產品】→【監視儀表】
  • 安裝DB2 8.2.1,後關掉Monitor Launchpad,執行"db2start"指令
  • 執行Monitor Launchpad
  • 安裝Cube View 8.2.1
  • 安裝WAS 6.0.2.3
  • 安裝Portal 5.1.0.2
  • 安裝DB2 Alphablox 8.3
  • 使用DB2 Control Center,加入 WBMDB1到資料庫伺服器清單中
    • 在DB2 Control Center中,右鍵選擇【All Databases】→【Add】
    • 輸入Hostname:WBMS1
    • 點選Search後,下方會列出資料庫有哪些
    • 分別選擇 Repository、Runtime、Historical,點選【Apply】就會加入到資料庫伺服器清單中
  • 安裝儀表板客戶端
    • 這裡還要輸入許多Portal還有Process server的資訊 整個Dashboard Client的安裝相當耗時間,大約要7小時以上吧(我已經等到懶得仔細算了,要不是有人逼我,我大概灌一次失敗就放棄了...)

Monitor Dashboard Client安裝驗證

文件中有些驗證步驟,我有空再補上

Monitor Server 與Process Server的SIB連結設定

文件中有些ㄕ步驟,我有空再補上

參考資料

安裝完Windows後常用工具整理

系統與文書

  • MS-Office 雖然想用用看open的,不過學校還是以此為主,加上沒時間學,所以不得不用這個
  • UltraEdit 老牌編輯工具,要註冊,但好用
  • ConvertZ 簡體繁體轉換工具,可以轉換檔名、檔案內容、剪貼簿...等
  • WinRAR 壓縮軟體
  • Unlocker(英文軟體) 有時刪檔刪不了,又不知啥程式開著它,就用這軟體試試吧(教學)
  • Process Explorer 進階版工作管理員,它允許使用者在所提供的視窗中觀看每一個程序的原始所在位址、佔用記憶...找出有沒有後門程式
  • Adobe Acrobat 雖然曾經用過一個免費的PDF讀取工具叫Foxit PDF Reader,不過我上次用時,覺得開的快,有些功能卻有問題,例如複製、搜尋等~所以還是用這個
  • Daemon Tools(英文軟體有中文化) 不能產生光碟的映像檔,但能讀取的免費軟體,很多人都用這個唷(Daemon Tools 的使用教學)
  • FastCopy(英文軟體有中文化) 我個人常用的複製檔案軟體,有人問我真的快嗎?我也不知,不過有一點可以肯定的~他能幫我做到輕鬆的排程複製,這樣硬碟磁頭就不會跳來跳去了
  • Total Copy(英文軟體有中文化) 說到複製,另一個能夠續傳、限制速度的複製軟體就是這個了,區網複製時很好用
  • MDIE(英文軟體有中文化版) 瀏覽器與檔案總管工具,可取代Windows內建檔案總管,重點是支援分頁與滑鼠手勢(中文版下載網址)
  • freeCommander(英文軟體有官方中文語言檔) 管理檔案用的,一次處理兩個資料夾(可同步),可惜只支援電腦內的磁碟機,不能用網芳
  • Nero 燒錄軟體,雖然要買,不過很多燒錄器會附上
  • FinalBurner (英文軟體) 免費的燒錄軟體,功能還算完整,可燒CD、DVD、音樂、影片...等,我最近才看到,還沒有仔細研究,這家軟體公司還有出了其他免費的相關軟體
  • Ignition 燒錄檔案不浪費,能夠幫使用者最佳化光碟儲存的工具軟體,不過要燒時要搭配他們家的付費軟體,所以我當計算軟體用
  • CD Index CD內容管理,幫你建你的CD索引庫
  • ATnotes 桌面便利貼,可定時提醒唷
  • Birthday(英文軟體) 生日提醒器,管理我朋友的生日

影音相關

網路工具

  • Firefox & KKFox Firefox是由Mozilla所提供免錢的瀏覽器,同時也提供很多聰明且方便的擴充套件;KKFox以FireFox為核心,把常會用到的外掛都放上去了
  • Windows Live Messenger 我想不用多做說明吧
  • SharpReader(英文) & GreatNews(多國含中文) & RSSOwl(多國含中文)

    RSS 的讀取器。(請參考 比較7個RSS Reader與GreateNews使用教學)

  • FlashGet 越做功能越多的下載軟體,以前收費,現在也變免費軟體了,最新版還支援BT下載。
  • BitComet BT的下載工具,還滿容易用的
  • eMule P2P軟體
  • CuteFTP & FileZilla CuteFTP是要付錢的FTP Client,但牌子老,功能完整。也可以用不用錢的FileZilla,也還滿好用的
  • POP Peeper 新郵件來系統列就會有圖示改變, 除了支援POP3外,還囊括了較知名的 Hotmail 、 MSN 、 Yahoo 、 Gmail 等
  • TCPView 微軟旗下某部門提供的工具,幫你看看你電腦有哪些人與你連線,架站的人一定要試試
  • NetSetMan(英文軟體) 切換網路設定,將網路設定值儲存起來,再在需要的時候,再呼叫出某一特定已儲存的網路設定值
  • VDownloader(英文軟體) 可以針對Google VideoYoutubeDailyMotio 等網站的FLV影片,下載與轉檔(AVI或Mpg),一次搞定。
  • RapGet 能夠下載存放於 RapidShare 、 mytemp 、 turboupload...等數十個知名的免費空間上的檔案
  • JWGet 抓圖機,無名、Xuite、PCHOME、YAHOO正妹相簿一次抓下來
  • PicaLoader 更進階的抓圖機,不過要錢唷

MS-DOS commands與磁碟定期重組

相信有很多比我玩電腦玩更熟的人,一定知道命令提示字元可以為我們做很多事。

像我有時懶得寫程式,但又想有效率的叫電腦做些瑣碎的事,這時MS-DOS command就能幫上忙了~

以下我分享一些我常用的命令:磁碟定期掃瞄重組、立即重新啟動、XP懶人開機法、移動檔案

chkdsk】【defrag】磁碟定期掃瞄重組

先針對設定步驟說明,再對用到的指令說明

設定步驟

  • 開啟 開始\程式集\附屬應用程式\【記事本】
  • 輸入以下內容
start /wait chkdsk c: /f
start /wait defrag c:
start /wait chkdsk d: /f
start /wait defrag d:
  • 儲存檔案,附檔名為.bat,如【C:\DefragAll.bat】
  • 開啟 開始\程式集\附屬應用程式\系統工具\排定的工作
  • 新增排定的工作, 瀏覽到剛才的.bat檔,然後設定執行時間,輸入你登入的帳號密碼等...
  • 完成
在這裡要用到三種MS-DOS指令
  • start:執行另一程式,我下wait參數,代表被呼叫的程式結束後才繼續執行
  • chkdsk:掃瞄磁碟,後面帶c:就掃瞄C碟
  • defrag:重組磁碟,後面帶c:就重組C碟

PS.順道一提,前陣子看到一個免費的重組工具,可以針對資料夾重組,叫PowerDefrag2005,有需要的人也可以玩玩看

shutdown】立即重新啟動

不知大家是否像我一樣懶,有時電腦變慢要重新啟動,可是要按好幾下按鍵或滑鼠,在實在很麻煩~

我的做法

  • 開啟 開始\程式集\附屬應用程式\【記事本】
  • 輸入以下內容
pause
shutdown -r -t 0 
  • 儲存檔案到桌面,附檔名為.bat,如【RestartNow.bat】

當你要重新啟動時,就點兩下這個Bat檔

然後跳出黑色視窗要你按一下任意鍵,當你按下時就會重新啟動了

在此用到的兩個指令

  • pause:跟重新開機沒有直接關係,只是怕你有時不小心點到這個工作時,不會真的馬上重新啟動,如果你要取消,請按【Ctrl+C】
  • shutdown:用來關機的指令,不過按照我下的參數,它會很快的重新啟動電腦

control】XP懶人開機法

既然都談到懶人重新開機的方式,不免談談開機的方式~

如果你是用windows xp的話,電腦中只要有2個以上使用者帳號,或是你有設定密碼,就會要求你選擇使用者,輸入密碼~

但如果你很確信不會有人亂動你電腦,或是你希望它開機後自己登入~

那就用這方法吧~

  • 開始→【執行】
  • 輸入【control userpasswords2】
  • 出現「使用者帳戶」對話盒後,先點選你要讓XP自動登入的帳號,使該帳號成反白狀態後,再取消「必須輸入使用者名稱和密碼,才能使用這台電腦」左邊的勾選狀態,最後再按下〔套用〕,讓電腦以你選擇的帳號自動登入XP
  • 出現「自動登入」對話盒後,依序在「密碼」、「確認密碼」欄中輸入你原本的XP登入密碼,如果之前沒設定密碼,就留空白不管他。設定好之後,再按下〔確定〕,回到「使用者帳戶」對話盒後,一樣按下〔確定〕完成全部設定工作。

以後,當你再重開機時,電腦便會自動登入WindowsXP,不用再花時間輸入密碼啦!

move】移動檔案

移動檔案這件事可能就不是那麼多人會用到,不過我自己會用,所以就順便介紹,下這個命令的方式如下

move "來源檔" "目的地"

例如我希望我D:\Temp的資料夾下,所有的內容要放到 "E:\New Data "資料夾下

我就會寫

move "D:\Temp\*" "E:\New Data "

這裡可以注意到兩件事

  • 我用雙引號把路徑匡起來,這樣就算有空白在裡面的路徑也沒關係
  • 這樣下命令只會移動一層的資料,也就是說有子目錄它不會移動

參考資料

用.Net Compact Framework 1.1開發時開外部程式

之前有學弟為了在一台有Win CE環境的PDA上開發應用程式傷腦筋

原因是Visual Studio 2005提供.Net Compact Framework 2.0 無法發佈在比較舊版的Win CE上,

所以就使用.Net Compact Framework 1.1在開發,然後就出現了一個問題,

要呼叫外部程式的話,去MSDN找現有函式只有2.0的才有,

1.1的就要用我下面說的東西了~

PS.我在Google上找 VB 範例,能直接用不會有錯的都不在前面的搜尋結果,讓我花了不少功夫~

開發環境

  • Microsoft Visual Studio 2005
  • 語言:VB

程式功能

  • 在.Net Compact Framework 1.1的環境下,使用VB程式呼叫外部的程式
  • 等外部程式結束後,才繼續往下一行程式執行

開發要點

開一個模組,來放下面的程式

Module MyProcessCreater



 Declare Function CreateProcess Lib "CoreDll.dll" (ByVal imageName As String, ByVal cmdLine As String, ByVal lpProcessAttributes As IntPtr, ByVal lpThreadAttributes As IntPtr, ByVal boolInheritHandles As Int32, ByVal dwCreationFlags As Int32, ByVal lpEnvironment As IntPtr, ByVal lpszCurrentDir As IntPtr, ByVal si As Byte(), ByVal pi As ProcessInfo) As Integer



 Declare Function WaitForSingleObject Lib "CoreDll.dll" (ByVal Handle As IntPtr, ByVal Wait As Int32) As Int32



 Declare Function GetLastError Lib "CoreDll.dll" () As Int32



 Declare Function CloseHandle Lib "CoreDll.dll" (ByVal Handle As IntPtr) As Int32





 Public Class ProcessInfo

     Public hProcess As IntPtr

     Public hThread As IntPtr

     Public ProcessId As Int32

     Public ThreadId As Int32

 End Class 'ProcessInfo





 Public Function CreateProcess(ByVal ExeName As String, ByVal CmdLine As String, ByVal pi As ProcessInfo) As Boolean

     Dim INFINITE As Int32

     INFINITE = &HFFFFFFFF



     Dim WAIT_OBJECT_0 As Int32 = 0

     Dim result As Int32



     If pi Is Nothing Then

         pi = New ProcessInfo

     End If

     Dim si(128) As Byte



     result = CreateProcess(ExeName, CmdLine, IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, IntPtr.Zero, si, pi) '呼叫外部程式

     If 0 = result Then

         Return False

     End If

     result = WaitForSingleObject(pi.hProcess, INFINITE) '等外部程式結束

     CloseHandle(pi.hThread)

     CloseHandle(pi.hProcess)

     If WAIT_OBJECT_0 <> result Then

         Return False

     End If

     Return True

 End Function



End Module 

然後在要呼叫的地方加入以下程式

CreateProcess("要呼叫的程式路徑", "", Nothing)

第一個參數:"要呼叫的程式路徑" 如"\Windows\iexplore.exe"

第二個參數:是外部程式用的參數

第三個參數:我也不清處怎麼用

參考資料

'方法1
returnID = Shell("D:\run.txt", vbNormalFocus)

'方法2
System.Diagnostics.Process.Start ("D:\run.txt")

'方法3
Dim myProcess As Process = System.Diagnostics.Process.Start
("D:\run.txt")
MessageBox.Show(myProcess.ProcessName)

'方法4
Dim psInfo As New _
System.Diagnostics.ProcessStartInfo _
("D:\run.txt")
psInfo.WindowStyle = _
System.Diagnostics.ProcessWindowStyle.Normal
Dim myProcess As Process = _
System.Diagnostics.Process.Start(psInfo)

'方法5
Dim myProcess As System.Diagnostics.Process = _
new System.Diagnostics.Process()
myProcess.StartInfo.FileName = _
"D:\run.txt"
myProcess.StartInfo.WindowStyle = _
System.Diagnostics.ProcessWindowStyle.Normal
myProcess.Start

安裝IBM BDD開發環境

我不是IBM官方人員,所以只能從"多"次失敗經驗中,找出結果~

目前本篇還在修訂中~

歡迎有興趣的人可以一起討論。

BDD簡介

BDD(Business Driven Development)是IBM提出的一套為SOA系統而定的開發流程

所有工具中,與實作有直接關聯的包括

  • WBM(WebSphere Business Modeler)
  • RSA(Rational Software Architect)
  • WID(WebSphere Integration Developer)

PS. 其實還有RAD,但RSA已包含RAD的功能,所以不再安裝RAD

安裝重點

我以我手頭拿到的版本為例 (IBM的東西,版本是重點)

我現在手頭有

  • WBM 6.0.1 Advance
  • RSA 6.0
  • WID 6.0.1

步驟

  • 先安裝RSA:因為它是6.0,其他兩個是6.0.1,所以要先安裝它,路徑盡量短,而且不要有空白(這是IBM工具安裝原則)
  • 升級RSA到6.0.1.1:如果已下載更新檔,可開啟Rational Product Updater→喜好設定→更新網站,然後找到你下載的更新描述檔,會比較快完成,但還是要連上網路唷
  • 完成後請確定WAS6.0測試環境是否能啟動,不能啟動就是安裝失敗,有種原因可能是安裝來源檔有問題
  • PS(先不要上fix,我目前看到已經出到fix003,但上fix對WID的安裝可能會有影響)
  • 安裝WID:這裡是重點,路徑不可與RSA重覆(預設是相同的路徑)
  • 更新WID到6.0.1.2
  • 完成後請確定WPS6.0測試環境是否能啟動,不能啟動就是安裝失敗,有種原因可能是安裝來源檔有問題
  • 安裝WBM

如果你想要直接用RSA開發WBM的部份,按照Information center中描述我沒辦法用,但我找出了其他方式

以下是方法

  • 開啟WID或RSA
  • 按一下說明 > 軟體更新 > 搜尋並安裝 此時會開啟「安裝」精靈。
  • 選取搜尋要安裝的新功能,然後按下一步。
  • 在「更新要造訪的站台」頁面,按一下新的本端站台。 此時會開啟「瀏覽資料夾」視窗。
  • 在「瀏覽資料夾」視窗中,找到你安裝WBM的路徑
  • 選擇其中的eclipse資料夾
  • 選取您剛才新增的站台,然後按下一步。
  • 在「搜尋結果」頁面,選取跟Modeler相關的功能(如果有衝突的部份就不要選)。
  • 按下一步。
  • 在「功能授權」頁面,閱讀您要安裝之每個功能的授權合約。讀完後按一下我接受授權合約中的條款以接受合約,然後按下一步。
  • 在「安裝位置」頁面,針對您要安裝的每個功能選取一個資料夾作為目標站台。 建議您建立一個新資料夾來存放 WebSphere Integration Developer 功能。
  • 按一下新增站台。 此時會開啟「瀏覽資料夾」視窗。
  • 瀏覽至安裝 WebSphere Integration Developer 的資料夾,然後按一下新增資料夾。
  • 建立新資料夾後,將其名稱變更為 modeler。
  • 請確定已選取新資料夾,然後按一下確定返回精靈。 新資料夾會顯示為可用的站台清單中的一個選項。
  • 為要安裝的功能清單中的每個功能指定新站台後,按一下完成。
  • 註: 您必須分別指定每個功能的目的地,方法是按一下該功能,然後指定目的地站台。
  • 安裝期間會開啟「Jar 驗證」視窗。按一下安裝以繼續安裝未經數位簽章的功能。
  • 當詢問您是否想要重新啟動工作台以讓變更生效時,請按一下是。

參考資料

這裡是關於技術的手札~

也歡迎大家到

倫與貓的足跡



到噗浪來

關心一下我唷!
by 倫
 
Copyright 2009 倫倫3號Beta-Log All rights reserved.
Blogger Templates created by Deluxe Templates
Wordpress Theme by EZwpthemes