0012期:多執行緒存取 BDE 原始碼

作者:CGS •  日期:2001/04/27  •  類別: 生活隨想  •  留下意見(0)  •  閱讀本文

由於這是我第一次在電子報內寫原始碼 ,如果有不懂的地方 ,可以來信討論 .以下附的原始螞為 Borland C++ Builder .主要分為兩個 Form frmMain 為主表單 , frmThread 為以 thread 讀取 BDE 並顯示的表單 .

閱讀本文

0011期:PalmOS 各家競出新機種 ,百花齊放

作者:CGS •  日期:2001/04/25  •  類別: 技術新探  •  留下意見(0)  •  閱讀本文

最近 PalmOS 各家的新機種陸續發表 .主要的特點通常是都使用 Motorola 最新的 DragonBall VZ 33 Mhz 的快速 CPU, 並加裝 8MB RAM ,至於各家強調的特色則不一而足 .

Palm 本身出品的新機為 m500/505 ,強調有 SD 及一個通用連接器 ,可以讓 Palm 的擴充性更強 ,機型則大致沿用 Palm V/Vx 的超薄流線外型 ,m500 為單色機種 , m505則為彩色機種 .(搭載 PalmOS 4.0.)

閱讀本文

0011期:BCB/Delphi使用多執行緒讀取資料庫資料(一)

作者:CGS •  日期:2001/04/25  •  類別: 程式漫談  •  留下意見(0)  • 

很多人在使用 BCB/Delphi 時 ,會發覺只要讀取遠端資料庫資料時 ,整個系統可能就會停在那兒不會動作 .偶爾會聽到有人說 ,可以使用多執行緒來解決此類的問題 ,但是很少找得到如何去正確的寫出適當的程式碼來處理 .

這邊就提出一些實際的技巧來說明實作時 ,須要注意的事項, 首先 BDE本身也是支援多執行緒的讀取資料庫 ,但是 SessionName 不能一樣 ,所以我們就需要一個獨立的 TSession, 當然也會需要獨立的 TDatabase (我想大概很少人不需要資料庫的登入動作),當你在另一個 Form 上放上這兩個元件 ,並使用如 TQuery 來進行資料庫的存取動作 .

當然你可能要有個獨立變數 ,來保証每個 TSession 的名稱是唯一的 ,TDatabase 的名稱也要是唯一的 ,另外要注意的是當你的多執行緒須要更新 VCL的畫面時 ,VCL 並不是完全的 ThreadSafe,你需要呼叫 Synchronize 這個方法才行 .詳細的範例程式碼 ,我會在下一期手札中附上 .

0010期:PalmOS 開發環境比較(CodeWarrior .vs. J2ME)

作者:CGS •  日期:2001/04/23  •  類別: 程式漫談  •  留下意見(0)  •  閱讀本文

我當初在 PalmOS 上開始準備開發軟體 ,一開始便選擇 CW6當作開發的語言主體 ,不過在中間的一段時間 ,有短暫的試用過J2ME(Java 2 Micro Edition)當作開發工具 .

我個人覺得 J2ME 目前的版本還是滿陽春的 ,各家實作上可能會加上自己的獨特類別 ,但你如果決定採用這些類別 ,你就會失去了 Java 所令人稱道的移植性 , J2ME 沒有浮點支援 ,對某些數學處理程式可能會發生問題 .

閱讀本文

0010期:在會議時盡力發表 ,決議後全力執行

作者:CGS •  日期:2001/04/23  •  類別: 職場生活  •  留下意見(0)  • 

很多時候 ,程式設計師會需要跟業務 ,行銷 ,網管等人員 ,討論整個程式的需求 ,或程式修改的方向 ,當然有時你會同意他們的意見 ,但一定有不同意見的時候 .

我個人覺得 ,如果你有不同的看法或類似的想法 ,都可以在會議上盡力去主張個人的意見 ,很多事情只有在以不同的層面考慮過後 ,才會找出最佳或次佳的解決方案 ,因此不論你是持反對或贊成的意見 ,請儘量於會議中提出 .

當你的上司考量過所有的意見 ,或是經同事討論後 ,決議出一個方向後 ,不論這個決議與你的意見是否相同 ,就盡全力去作 ,你只要盡好自己的本份 ,對於這整個決定的責任就交給你的主管去負責吧 .

0009期:MCSE 是什麼 ?

作者:CGS •  日期:2001/04/19  •  類別: 讀者迴響  •  留下意見(0)  •  閱讀本文

基本上 MCSE(Microsoft Certified Systems Engineer) 是微軟針對系統工程師所推出的認證制度 ,其實目前微軟的認證類別相當多 .

除了 MCSE 外 ,還有針對開發者的 MCSD(Microsoft Certified Solution Developer) ,針對一般 Office 操作 MOUS( Microsoft Office User Specialist),針對資料管理師的 MCDBA( Microsoft Certified Database Administrator),及考過部份科目時的暫時頭銜 MCP(Microsoft Certified Professional).

閱讀本文

0009期:Linux 從何學起 ?

作者:CGS •  日期:2001/04/19  •  類別: 讀者迴響  •  留下意見(0)  •  閱讀本文

嗯 ,這個問題其實蠻深奧的 ,我剛開始接觸 UNIX 相關的系統約在八至九年前 ,Linux 這個系統在那時候並不像現在這麼風行 ,同時有XENIX ,BSD之類的系統 ,同樣在 PC 市場競逐 .

我當時學的主要是SunOS ,AIX(IBM) ,HP-UX & Irix(SGI), 其實學這些東西的時候, 重點看你自己著力的方向 ,一些 UNIX 基礎的東西譬如如何使用telnet進入系統 ,如何使用命令列複製移動檔案等 ,都跟以前 PC 所用的 DOS類似(應該是 DOS的命令就是由此而來) .

閱讀本文

0008期:達賴灌頂的醒思-聚沙成塔

作者:CGS •  日期:2001/04/17  •  類別: 生活隨想  •  留下意見(0)  •  閱讀本文

達賴喇嘛來台弘法 ,不少人為了目睹這位活佛一面 ,灌頂大會甚至面臨了一票難求的現象 ,但是灌頂大會前的弘法 ,卻不是滿場爆滿 ,達賴離境前也把台灣人捐獻的愛心 ,留在台灣 ,留給了一年半前讓台灣傷感的九二一大地震的災民 .

可是達賴在爆滿的灌頂大會後 ,也給一記當頭棒喝 ,強調唯有真正發起菩提心,灌頂之後才能得到真正的加持 .同樣的學習寫程式或其他的事情也是一樣 ,很難有一步登天的捷徑 .

閱讀本文

0008期:網路程式的底層

作者:CGS •  日期:2001/04/17  •  類別: 程式漫談  •  留下意見(0)  • 

在網際網路越來越發達的今天 ,當然越來越多的網路應用程式也跟著產生 ,例如像瀏覽器(IE,Netscape),即時通訊軟體(ICQ),點對點傳輸軟體(Napster),即時股價軟體 ,檔案傳輸軟體等等 ,這些程式似乎看起來很神奇 ,其實其基礎是很簡單的 .

你需要先了解TCP/IP傳輸協定 ,網際網路的應用就是多半建立在 TCP和 UDP這兩種基礎的封包協定上 , UDP就像平信一樣 ,沒有保證信是否一定會寄到收信人的手上 , TCP則像掛號信一樣 ,保證整個封包會按照順序寄到收件人的手上 ,由於 UDP的協定較為簡單 ,所以他的速度比較快 ,而 TCP的協定則比較慢 .

在不同的時間 ,可以去選擇適當的封包來實作 ,譬如股票報價軟體 ,在快速的要求下 ,可以選擇 UDP當作封包的底層 ,而在雙向傳輸的場合 ,如 BBS ,聊天室等可以選擇 TCP當作封包的底層 .在底層選定後 ,再適當的設計雙方的通訊協定 ,整個網路程式就可以上路了 :)

0008期:善用自己的優勢 ,為工作加分

作者:CGS •  日期:2001/04/17  •  類別: 職場生活  •  留下意見(0)  •  閱讀本文

在職場上 ,每個人都是一個特出的個體 ,都會有自己的優點 ,和自己的缺點 ,但是成功者就是能善用自己的優勢 ,並避免缺點 ,來為自己加分 .

很多人在職場上 ,了解自己的優點 ,和缺點之後 ,常會用很多的時間去練習讓缺點消失 ,不過就我自己的想法 ,讓優點更突顯是一個更好的辦法 .

閱讀本文

0007期:程式設計師要去考認證嗎 ?

作者:CGS •  日期:2001/04/13  •  類別: 程式漫談  •  留下意見(0)  • 

現在的認證越來越多了 ,微軟、甲骨文、CISCO 、Novell ,現在連免費的Linux 都有認證的課程 ,一份課程加上考試的費用整個下來 ,好像也要花個十來萬的 .常常有人問我 ,需要去考這些認證嗎?

我覺得是看你自己唸書的動力吧 ,很多軟體方面的技術其實日新月異 ,開發工具也是越來越強大 ,就像 Nokia說的科技始終來自於人性(雖然我一直覺得是惰性:p)我覺得如果你有定期閱讀電腦相關期刊及書籍的習慣 ,那就我的角度看來 ,其實考不考證照 ,差異性不大 ,因為你有自己的方法來吸收這部份的知識 .

其實這些證照就像學歷證明一樣 ,只是證明你考過了 ,而不是證明你懂了 ,當然有很多人是有真才實幹去考的 ,可是也是有人是唸唸書 ,沒有真正的實務經驗 ,就考過了 ...我是覺得自己懂才是重點 ,可是在沒辦法證明你實力時 ,這些證照就會派上用場了 .

0007期:如何技巧性的避免過重的工作壓力

作者:CGS •  日期:2001/04/13  •  類別: 職場生活  •  留下意見(0)  •  閱讀本文

很多人都會發覺 ,當你在某家公司工作了一段時間後 ,就有越來越多的工作會來到你的面前 .當過多的工作量來到時 ,基本上 ,你所能做的 ,就是告訴老闆, 我手頭上的工作已到達負荷量了 .

這件事的拿捏尺度很難 ,因為某些老闆不會接受這類的說詞 ,而當你永遠都是逆來順受的接受時 ,當然你老闆自然也是覺得你還是游刃有餘 .

閱讀本文

0007期:檢查官到成大抓 mp3 ?

作者:CGS •  日期:2001/04/13  •  類別: 網路評論  •  留下意見(0)  •  閱讀本文

網路上盛傳 ,檢查官到成大扣押了 14 部電腦 ,因為內含了非法的 mp3音樂 ,並會對涉案的學生進行進一步的偵訊 .

我之前也是成大的學生 ,其實 ,盜版大概從很久很久以前就有了, 從書本 ,錄音帶 ,CD ,VCD ,DVD ,就像我們學生時代也會去影印部份原文的書本來看一樣 .美方後來規定我們不能拿整本去影印 ,其實還是有人會一部份一部份的印下來當參考 ,而在類比的時代裡 ,拷貝還是一個蠻耗費人力的事 ,錄音帶再怎麼快轉複製也會有他的極限 .

閱讀本文

0006期:請別人代為檢視程式

作者:CGS •  日期:2001/04/11  •  類別: 程式漫談  •  留下意見(0)  •  閱讀本文

在一般人寫程式的經驗裡 ,大概沒有人能夠每次都能一次就寫出完美的程式 ,每個人都有自己的一套方法去發現臭蟲 .

最簡單的方法 ,大概就是每隔一段程式碼輸出一些數據或是放中斷點 ,讓自己來判斷程式有沒寫錯 .這大概是很普遍被採用的方式 .但是找出程式的臭蟲的位置 ,有時還是無法完全解決問題 .


閱讀本文

0006期:資訊人的價值在於利用技術來改善企業既有的流程

作者:CGS •  日期:2001/04/11  •  類別: 新聞隨想  •  留下意見(0)  •  閱讀本文

我們可以看到一個企業如何在複雜的企業環境中,找出問題真正癥結,並且利用工作流程技術和其他的資訊科技來整合企業中既有的系統或資訊技術架構,透過對作業程序的改善,以一個極佳的品質來提供顧客最好的服務。

此外,我們更應該注意的地方是,在資訊科技的引進過程中,困難的不在於新技術的應用,而是在於新的技術或應用如何和企業內既有的系統和架構相互整合,並能各自發揮其應有的效益,讓整體企業績效更佳提升。

以上節錄自 2001/04/11 的總裁學苑電子報 .

閱讀本文

0005期 : PalmOS 下繪出有顏色的中文字

作者:CGS •  日期:2001/04/10  •  類別: 程式漫談  •  留下意見(0)  • 

如果有看過發刊詞的讀者 ,應該知道我目前主要寫作的程式集中在 PalmOS 上面 ,上週我一直沒法測出在彩色環境下繪出中文的寫法(環境為 Palm Emulator 3.1 + CJKOS 4.01 + Prism 3.5 ROM )

看了 Palm 的參考文件 ,卻一直無法抓出問題點在那兒 ,最後終於在 PalmOS 的搜尋引擎找到文件的提示 ,在 PalmOS 3.5 中顏色分為前景 ,文字和背景 ,當你想要印出有顏色的字時 ,你必須呼叫WinSetTextColor , 而畫線等函數的顏色則是由 WinSetForeColor 控制 ,如果當你畫線去設定文字的顏色 ,或反過來設定 ,那你就不會看到顏色的變化 .

另外我也發現到 ,似乎 CJKOS 4.01 只支援了 WinDrawChars 這個原來的印字函式 ,對於 WinPaintChars這個比較強大的印字函式 ,如果印出中文 ,都會變成亂碼 ,這可能是 CJKOS需要加強的地方 .我沒試過掌龍中文 ,所以不確定是否掌龍也有類似於 CJKOS的錯誤 .

0005期:當有程式更動時 ,將整個程式徹底重新測試

作者:CGS •  日期:2001/04/10  •  類別: 程式漫談  •  留下意見(0)  • 

最近我在改程式時 ,改動了一部份的程式碼 ,將偵測到的 OS 版本存取全域的變數 ,本來我想這樣的程式更動應該沒有什麼大問題 ,一般的測試也都十分的正常 .我就很努力的按進度寫著我想修改的程式 ,本來都覺得沒啥大問題 ,改到一個階段 ,將測試平台更換後, 發覺重開機器後 ,系統告訴我 ,我的程式有問題 ,沒法繼續往下跑 .

我本來以為這是新測試平台的問題 ,就切換回原有測試平台 ,也發現了同樣的錯誤 .才發覺了我的作業系統 ,除了正常啟動程式外 ,其他的啟動方式 ,都不允許程式存取全域變數 ,要不是我剛好遇到問題 ,重開機器 ,否則我很難發現這種錯誤 .

同樣的道理也會發生在你寫的程式裡 ,當一個影響深遠的函式被改寫時 ,最好能同部測試所有利用到該函式的程式 ,看看輸入變數與輸出變數是否符合自己的想法 ,這樣子你的程式出錯的機率就會有效的減少 .

0004期:到動物園看恐龍(小馬)

作者:CGS •  日期:2001/04/10  •  類別: 程式漫談  •  留下意見(0)  •  閱讀本文

在這個電子報的版主 ,連灌了四篇文章之後 ,大概灌煩了 ,找我來幫忙灌水 ,我自然是義不容辭 .原本想寫寫『分散式物件』這種比較硬的主題 ,後來想想在星期一症候群還沒退去前 ,先來一篇輕鬆的學習經驗談吧 .

想談談賀元 ,不過不是想談資迅人最近的狀況 ,我想談的是一本他寫的書裡的一句話 .記得當年 , 當我到還叫 "資訊人出版社" 拿頗負盛名的一本書叫 "世紀末軟體革命2" ,回來一口氣讀完 ,最有印象的一句話 ,就是 "到動物園看恐龍" !

閱讀本文

0003期:盡量寫 ,不要想

作者:CGS •  日期:2001/04/06  •  類別: 電影隨想  •  留下意見(0)  •  閱讀本文

這幾天看了院線新片「心靈訪客」, 史恩康納萊在教那個球員寫作時 ,告訴他:"盡量寫 ,不要想",我想類似的方法也可以應用在程式寫作的上面 ,只是可能要改成 :找題目 ,盡量寫 .

其實寫程式的訓練主要就集中在如何去針對問題 ,找出真正的解答, 書本上可能有一些制式的解答 ,但不一定符合你我的需要 .

閱讀本文

0003期:跨平台語言的相容性問題

作者:CGS •  日期:2001/04/06  •  類別: 程式漫談  •  留下意見(0)  •  閱讀本文

在 Java 宣稱這個語言可在不同語言執行前 ,除了 C語言外 ,大部份的程式語言的跨平台執行能力都不強 ,即使是 C, 你會發覺其實跨平台執行能力 ,其實還是很有限 ,多半集中在一些使用者介面主要在文字模式下 .

當你開始要操作繪圖介面 ,你會發現每個系統要學的東西可能就不一樣 ,Unix 下可能會用 Xlib , Win32 下可能會用 Win32 SDK ,DirectX , MacOS 可能又有新的一套 .但是這部份通常不會認為太複雜 ,因為沒有這部份的底層都得用不同的驅動方式 .

閱讀本文

0002期:定期檢視自己的程式

作者:CGS •  日期:2001/04/03  •  類別: 程式漫談  •  留下意見(0)  • 

每個人設計程式時都會依賴之前所學到的東西 ,並學到新的經驗 ,當寫出第一版的程式時 ,每隔一段時間可以去檢視一下以前的程式碼 ,說不定你可以修改以前留下的一些錯誤或是加速原有使用的演算法 .

0002期:Kylix 出版了(Linux 版的 Delphi)

作者:CGS •  日期:2001/04/03  •  類別: 技術新探  •  留下意見 (2)  •  閱讀本文

最近寶蘭(Borland) 宣布Kylix 已於 3/12 開始出貨 , 這大概是難得的一項演進吧 .Borland 的快速開發工具(RAD) 在微軟視窗上大概是唯一可以跟微軟的 VC , VB一拼的通用程式設計語言了 ,相對於 VC 使用 C/C++語言 , Delphi 使用的是物件導向式的 Pascal 語言 ,這應該是讓 Delphi 及 Linux 使用者十分振奮的消息 .
在 3/15 的台灣發表會上, 寶蘭展示了第一版的 Kylix ,以下是一些摘要:

閱讀本文

0002期:做對的事 ,不是把事做對

作者:CGS •  日期:2001/04/03  •  類別: 職場生活  •  留下意見(0)  •  閱讀本文

在參加一場研討會的演講中 ,聽到世華銀行資訊處的負責人 ,說出資訊人的通病 ,常在於把事做對 ,而不是做對的事 ,讓我自己深深的反省自己寫程式時的經驗 .

當一個專案交由你來作前期規劃時, 是否有考慮到所有的可能 ,並減低整個專案在後續修改維護時所需要的人力 ,這些事有時是相互抵觸 ,凡事並沒有十全十美 ,保留越多的彈性 ,常需要更多的程式設計時間 ,也會增加系統工程師在安裝維護的時間 .

閱讀本文