如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2021年12月29日

內在驅動力與外在驅動力

作者: Fred F.M. Wang (FW知識瑣記) 日期: 2021-12-29

 經營自己是內在驅動力,升遷與獎勵是外在驅動力

小時候來自他人的期待與稱讚,往往是我們努力的動力,到了成年時,多數人仍依賴主管,老闆的稱讚與獎勵,現實世界往往是殘酷的,雖然努力但回饋常常不如己意,然後就開始抱怨,抑鬱不得志。

其實人生要自在要快樂,最重要來自內在的驅動力,靠自己的努力所得到的成長與成就,才是可靠的,才是長遠的。

例如,有些人退休後,擔任志工,為社會,為弱勢服務,不為金錢與名利,這就是內在驅動力,從自己展現的價值,得到成就感與滿足。

參考網文 :

1 https://zanyouxi.com/single/290240.html

2 https://www.gushiciku.cn/dl/1aJdU/zh-tw

2021年12月20日

甚麼是糟糕的網頁設計

作者: Fred F.M. Wang (FW知識瑣記) 日期: 2021-12-20

可用性設計與用戶體驗這門學問在網頁設計已經談了很多年了,還是有很多網站犯了一些糟糕的錯誤。下面是筆者認為糟糕的三類網頁設計。

第一類,干擾用戶閱讀內容

  1. 跳出式視窗(或廣告),特別是佔滿整個畫面的跳出式視窗,顯示內容前跳出或用戶捲動內容過程跳出都嚴重干擾用戶閱讀內容,皆不可取,使用嵌入式廣告則干擾比較小。
  2. 自動撥放音樂。
  3. 載入太多與內容無關或Size太大的圖片或廣告內容,造成等待時間太長。
  4. 先顯示影片或動畫才出現主題相關的內容。


第二類,操作困難

  1. 需要多次點擊才能找到需要的內容,建議網站內任何內容不要超過三次滑鼠點擊就可以看到。
  2. 過小的選單連結或文字連結,難以選擇或點擊進入想看的內容。
  3. 返回首頁困難。
  4. 非正規與慣用的操作方式。 


第三類,視覺效果不佳

  1. 內容與背景對比不足,可讀性太差。
  2. 太多且雜亂的文字與圖片。
  3. 排版過於混亂,內容過度壅擠或過度使用格線。
  4. 配色不佳,沒有一致的色系。
  5. 閃爍的內容。
  6. 缺乏支援不同平台的設計,例如iOS或Android等行動平台。
  7. 顯示與排版對少數族群不友善,例如色盲者,視弱者等。

 


 

2021年12月1日

談情緒管理

作者: Fred F.M. Wang (FW知識瑣記) 日期: 2021-12-1


人類從眼睛看到事物傳送到大腦的杏仁核引發情緒,因此喜怒哀樂是與生俱來的,
但人類可以透過大腦皮質來情緒管理,因此情緒管理是可以訓練的。

可以透過幾點方法訓練自己 : 

第一 降低對事件的情緒反應 : 陶冶自己的心性,或透過哲學或宗教提升自己,讓自己心胸更為寬大,寬容。
 
第二 情緒發生時,控制並避免情緒轉化為衝動的行為 : 例如:遠離現場,深呼吸等,冷靜後再面對問題。
 
第三 事後反省檢討並改善 : 認知並面對自己的情緒與行為是改變的第一步,並對自己犯下的錯誤與衝動的行為進行懺悔,反省與檢討。

管理情緒能力的EQ,比智商IQ更為重要。高EQ不但讓自己更容易快樂,對於學習動機、人際關係、抗壓能力,以及未來的工作成就,都有著決定性的影響力。
 
下面的勵志文,就是自我情緒控制最佳的典範 :
 
你不能控制生命的長度,但可以控制生命的寬度;
你不能左右天氣,但可以改變心情;
你不能改變容貌,但可以展現笑容;
你不能控制別人,但可以掌握自己;
你不能預知明天,但可以利用今天;
你不能要求結果,但可以掌握過程;
你不能樣樣順利,但可以事事努力。
改變自己,懷抱希望,人生掌握在你自己手上。

記得"能夠控制自己的情緒,才能掌握自己人生的主導權。"

參考 : https://opinion.cw.com.tw/blog/profile/466/article/9357

2021年11月26日

整理轉向使用Linux與開源的國家

作者: Fred F.M. Wang (FW知識瑣記) 日期: 2021-11-26

中國央企,國企以及華為等大企業已經開始推動Linux-based作業系統以取代壟斷的微軟Windows作業系統。還有哪些國家與組織進行了相同的行動,整理如下 :


德國

2003年,慕尼黑市議會便決定更換市政系統使用的 Windows 和 MS Office,換成 Linux 和開源軟體,將 Microsoft Office 換成 OpenOffice。慕尼黑採用了基於 Linux 程式碼,結合 Munich,建立了 LiMux 作業系統。到了2011年底,實際遷移了9000臺 PC 的作業系統。

2013年,慕尼黑表示開源軟體為他們節省了1360萬美元,而如果將軟體的官方支援和其他隱性成本考慮進來,數字可能會更大。到2014年,慕尼黑已經有14000臺 PC 執行在 LiMux 上,基本完成過渡。

2020年5月,慕尼黑執政聯盟在一項聯合協議中表示,在技術和經濟可行的情況下,該市將重點放在開放標準和自由開源軟體商,遵循“public money,public code”原則,只要不洩露個人資料,市政府相關軟體都將開源。

法國

2006年11月 法國軍方和文化通訊部就已宣佈,已經全面過渡向開放資源 Linux 作業系統。

從2007年3月,法國國民議會開始在1154臺辦公電腦上安裝免費的開源作業系統 Ubuntu,以及開源軟體 OpenOffice 等。

2015年,法國政府考慮在公共管理部門採用自由開源軟體。

2018年,法國政府向高校學生免費派發了175000份裝有開源軟體的 U 盤。之後,法國政府也一直在做更多開源嘗試。

2018年7月,法國政府開始採用自研、開源的實時通訊軟體 TCHAP,用來代替WhatsApp ,Telegram,以及其他的第三方軟體。

巴西

2003年,巴西總統盧拉 · 達席爾瓦就任,開始在巴西推動自由軟體計劃。他指示巴西政府部門及國有企業逐步使用自由作業系統 Linux,取代“成本高昂”的微軟作業系統,當時這樣可以節約數百萬美元的軟體版權許可費。

2005年5月,巴西政府推出了一項旨在幫助中低收入者購買首臺計算機的計劃 PC Conectado 計劃,政府會補助部分購買成本,但這一計劃規定必須和自由軟體計劃一起推行:公民購買的計算機僅可配備政府制定的自由軟體,不能購買包括微軟在內的其他商業軟體。

西班牙

2017年,西班牙巴塞羅那市議會開始暫停使用如 Outlook 等微軟的專有軟體,並組織開發者開發開源軟體,同時計劃後續將使用像 Ubuntu 這樣的 Linux 作業系統替代 Windows。

韓國

2019年5月,韓國內政部和安全部表示,Microsoft 對 Windows 7的免費技術支援將於2020年1月到期,繼續使用 Windows 7 而帶來的維護成本過於高昂,因此政府將把其計算機的作業系統從 Windows 切換到 Linux。

2020年2月,韓國政府正式起草戰略,計劃要全面採用基於 Linux 的開源作業系統 Open OS 來取代 Windows7

加拿大

2009年2月,加拿大政府釋出一份關於開源軟體官方招標資訊,並尋找公眾的反饋和指導來完成此計劃。招標資訊顯示,節省開支是最重要的目標,他們將採用長期“免收費用的軟體”,包括免費軟體和開源軟體。

英國

2009年3月,英國政府宣佈,將考慮在全國範圍內開展開源軟體推動措施。6月,時任英國議員喬治·奧斯本指出,英國政府通過公共採購程式採購開源軟體每年可以為英國政府節省6億英鎊的軟體購買和使用開支。

來源:https://www.gushiciku.cn/pl/pROb/zh-tw

2021年11月8日

閒談機器學習/深度學習的Python套件使用經驗

作者: Fred F.M. Wang (FW知識瑣記) 日期: 2021-11-8

 

最近兩三年接觸了一些Python人工智慧相關的技術, 其中機器學習/深度學習的部分的套件,

有下面幾種 : 

我女兒大一修的AI課程(三年前),他們使用Microsoft Azure平台,用到Microsoft Cognitive Toolkit(CNTK)與SciKit-Learn,那時候我協助她完成了幾個作業。

一個朋友在某大集團帶領人工智慧團隊發展智慧製造與智慧大樓,據了解使用的是Keras,我最近在試著用Keras寫一些code, 還滿有意思的。

其中用到一些知識就是三十多年前我念研究所時修的"類神經網路"課程的東西,差別是現在

的電腦快多了,

當年用C寫,跑一次學習認圖形中的文字的程式,要跑好幾個小時才能跑出結果,現在自己

不需要寫太多的Code,直接使用Python套件,開發速度與執行速度都快多了。 


補充 : 一個在交大資工所進修的同仁表示他們用的是PyTorch

 

這幾個套件簡單介紹 :

Microsoft Cognitive Toolkit,前稱CNTK,是一個由微軟研究院開發的深度學習框架。 

Microsoft Cognitive Toolkit透過有向圖將神經網路變化為一系列計算步驟。 

 

Scikit-learn具有各種分類,回歸和聚類算法,包括支持向量機,隨機森林(Random Forest)

,梯度增強,支援向量機SVM(Support Vector Machine),k-means和DBSCAN,可與Python

數值和科學庫NumPy和SciPy互操作。

參考 :

 

Keras是一個用Python編寫的開源神經網路庫,能夠在TensorFlow、Microsoft Cognitive 

Toolkit、Theano或PlaidML之上執行。

Keras包含許多常用神經網路構建塊的實現,例如層、目標、啟用功能、最佳化器和一系列

工具,可以更輕鬆地處理圖像和文字資料。除標準神經網路外,Keras還支援卷積神經網路

和迴圈神經網路。

參考 :  

1. Youtube Python與人工智慧  
2. 書 : Deep learning 深度學習必讀:Keras 大神帶你用 Python 實作 出版社:旗標
 

PyTorch基於Torch, 應用於人工智慧領域,如自然語言處理。 它最初由Facebook的人工

智慧研究團隊開發, 並且被用於Uber的機率編程軟體"Pyro"。 PyTorch主要有兩大特徵: 

1 如NumPy的張量計算,可使用GPU加速 

2 基於帶基自動微分系統的深度神經網路

參考: Youtube PyTorch tutorials 神經網絡 教學

 

 

 

2021年10月21日

甚麼是元宇宙(metaverse)?

作者: Fred F.M. Wang (FW知識瑣記) 日期: 2021-10-21


元宇宙是最近很火的一個話題。甚麼是元宇宙(metaverse)呢?

在資訊技術領域常用的metadata翻譯成元數據,通常是指描述其他資料的資訊又稱詮釋資料、中介資料、中繼資料、後設資料等。(字首meta有中介,轉換或統理的意思)

而metaverse(元宇宙)又是甚麼? 可以想像成真實宇宙的一個媒介,透過這個媒介將真實宇宙虛擬化。而這個媒介就是以虛擬實境(VR)與擴增實境(AR)軟硬體技術建構的環境。

維基百科解釋為"於共享、持久的3D虛擬空間組成一個可感知的虛擬宇宙,此合成環境包含物件、常駐用戶與其互動關係,並存在於虛擬定義的時間中。旨在提供連接用戶長時間登入和互動。" (維基百科)

這個名詞最早出現在1992年尼爾·史蒂芬森的科幻小說"潰雪",人類化身在一個模擬現實世界的三維虛擬空間中與其他個體進行互動。

在虛擬實境(VR)與擴增實境(AR)快速商業化的時代,得以實現元宇宙的科幻場景。

元宇宙將發展出新的社交網路,讓人與人在網路上的互動更接近於實境。

 

2021年10月6日

Azure 人工智慧應用技術 練習範例整理

作者: Fred F.M. Wang (FW知識瑣記) 日期: 2021-10-6

Azure 人工智慧應用技術 練習範例整理

一 文字情緒分析

     判斷一段文章的情緒是正面或負面的

     ref 1:  Azure Artificial Intelligence dat263x Lab 2

     ref 2: 使用文字分析 API 來偵測語言、分析情感及擷取關鍵片語, 範例 :

 “快速入門:使用文字分析用戶端程式庫和 REST API” 


二 語音辨識與自然語言理解智慧(Natural Language Understanding Intelligence)

    語音轉成文字後,判斷該語句的意圖,並決定後續動作。

    ref 1:  Azure Artificial Intelligence dat263x Lab 2

    ref 2: 語音辨識,範例 : “開始使用語音轉換文字” 

    ref 3: 使用LUIS來判斷語言的意圖, 範例 "如何使用 REST API 取得意圖



三 電腦視覺認知

     使用機器學習模型,該模型已經包含數百萬張圖像。 它可以從圖像中提取特徵並返回

建議的描述。例如 : 由照片產生描述 : a crowd of people watching a football game

ref 1: Azure Artificial Intelligence dat263x Lab 3

ref 2: Quickstart: Analyze a remote image using the Computer Vision REST API and Python


四 不同照片人臉相似度辨識

      ref : Azure Artificial Intelligence dat263x Lab 3

  

五 影像分類模型識別特定影像代表的數字

     由 70,000 個灰階影像所組成。 每個影像是 28x28 個像素的手寫數字,代表 0 至 9 的

數字。 目標是要建立多類別分類器,來識別特定影像代表的數字。

    ref: 教學課程:使用範例 Jupyter Notebook 將影像分類模型定型


六 判斷影片中各片段的動作以文字描述, 並找到影片中人臉出現在第幾秒

     ref : Azure Artificial Intelligence dat263x Lab 3


七 糖尿病預測

    ref: Azure Artificial Intelligence Lab1


八 信用風險評估預測分析

     從可公開取得的信用風險資料開始著手,然後根據該資料來開發並訓練預測性模型。

 接著,我們會將該模型部署為 Web 服務,以便供其他人用來評估信用風險。

     ref: 教學課程1:預測信用風險-機器學習 Studio (傳統)


九 根據使用製造和技術規格等不同變數,來預測汽車的價格

   ref 在機器學習 Studio (傳統) 中建立您的第一個資料科學實驗







2021年10月4日

舊筆電安裝ubuntu後,影音網站無法撥放影片,怎麼辦?

作者: Fred F.M. Wang (FW知識瑣記) 日期: 2021-10-4

 

用了十年的舊筆電,原本作業系統是Windows 7,在影音網站看影片,常常會卡卡的。因此就改裝Ubuntu作業系統,讓作業系統輕量化,看看會不會比較順一點。

問題一 : 無法撥放影片

作業系統都安裝完畢使用沒問題後,要進入影音網站後,卻無法撥放影片,出現訊息是請你安裝影音解碼器。根據這篇 "How to Enable Ubuntu 18.04 LTS to Play Videos Files",安裝下面這些軟體就可以了。下面是這兩列安裝命令 : 

sudo apt install libdvdnav4 libdvd-pkg gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly libdvd-pkg
sudo apt install ubuntu-restricted-extras

問題又來了,我對ubuntu不熟,找不到如何開啟命令列視窗。

原來,在Windows叫做命令列視窗,而在ubuntu(linux)叫做終端視窗(terminal window),只要同時按下Ctrl+Alt+T就會跳出終端視窗。然後再貼入上面兩列的安裝命令就可以了。

 

問題二 : 連接HDMI撥放到電視,卻沒有聲音

我喜歡從電腦拉個HDMI線連接到電視,將影片撥放到大電視上來看比較過癮,這時候另一個問題出現了,電視上只顯示影像,卻沒有聲音。

上網找到這篇文章"Fix No Sound Through HDMI In External Monitor In Ubuntu Linux" ,這篇文章指示,進入系統設定 > 點擊"聲音"設定,然後將模式改為Digital Stereo(HDMI)...,聲音播放選擇HDMI/DisplayPort


 

聲音就可以傳到電視了。


 

 
 
 
 
 
 
 

 

 

 

 





2021年9月29日

網頁設計 : 如何設計一個表頭固定但內容可以捲動的表格

作者: Fred F.M. Wang (FW知識瑣記) 日期: 2021-9-29

網頁中如何設計一個表頭固定但內容可以捲動的表格


       要讓表格表頭固定,內容可以捲動,首先,table header(thead)與table body(tbody)必須各

自設定顯示方式為block(CSS設定 display: block;),但是,table header(thead)與table body

(tbody)各自設定為block時,表頭與內容的欄位寬度就無法對齊。因此,必須透過Javascript設定table header欄寬與table body的欄寬一致


==================================================

<style>

thead.fixedHeader {    display: block;    }

thead.fixedHeader tr th { padding: 4px 0px!important;    }

tbody.scrollContent {  

    display: block;    

    overflow: auto;    

}

</style>



<table id="itemtable">

    <thead id="itemheader" class="fixedHeader">

       <tr>

    ..

    </tr>

    </thead>


   <tbody id="itemcontent" class="scrollContent">

       <tr>

    ..

    </tr>

   </tbody>


=============================================

 <script type="text/javascript">

$( document ).ready(function () {

   // 設定捲動區域,區域底部不要超過視窗底部

    var content_y = get_offset_y("itemcontent"); // 取得table body畫面左上角的座標y位置

    var content_height = window.screen.height - content_y - 200;   // 設定table body的高     

    document.getElementById("itemcontent").style.height= content_height + "px"; 

   

  // 設定table header欄寬與table body的欄寬一致 by Fred

  var theader = document.getElementById("itemheader");

  var tbody = document.getElementById("itemcontent");

  row0 = theader.rows[0];  // table header row

  row1 = tbody.rows[0];     // table body 1st row   


  // 逐一設定table header每一欄欄寬等於table body每一欄的實際顯示寬度

  for (var j = 0; j < row1.cells.length; j++) {

      row0.cells[j].style.width = (row1.cells[j].offsetWidth - 1) + "px";  // offsetWidth:實際顯示

寬度,注意要減一,否則無法對齊

  }


/* 取得一個HTML元素在畫面中的位置(左上角的座標y位置) */

function get_offset_y(id) {

    var e = document.getElementById(id);

    var offset = {x:0,y:0};

    while (e)

    {

       offset.x += e.offsetLeft;

       offset.y += e.offsetTop;

       e = e.offsetParent;

    }


    if (document.documentElement && (document.documentElement.scrollTop 

|| document.documentElement.scrollLeft))    {

       offset.x -= document.documentElement.scrollLeft;

       offset.y -= document.documentElement.scrollTop;

    

  } else if (document.body && (document.body.scrollTop || document.body.scrollLeft))   {

       offset.x -= document.body.scrollLeft;

       offset.y -= document.body.scrollTop;

  

  } else if (window.pageXOffset || window.pageYOffset)   {

       offset.x -= window.pageXOffset;

       offset.y -= window.pageYOffset;

    }


    // alert(offset.x + '\n' + offset.y);    

    return offset.y

}

</script>

註: 取得一個HTML元素在畫面中的位置參考來源https://stackoverflow.com/questions/211703/is-it-possible-to-get-the-position-of-div-within-the-browser-viewport-not-withi

2021年9月18日

志工往事

作者: Fred F.M. Wang (FW知識瑣記) 撰寫日期:2020-12-19

今天看一本書"台灣心臟外科第一人 洪啟仁醫師的生命故事",回憶起大約30年前在簡稱"兒心"的心臟病兒童基金會當志工的往事。
 
民國78年偶然的機會經過台北市青島西路兒心與兒癌(兒童癌症基金會)門口,突發當志工的想法,於是就進入兒心擔任志工,幫忙一些資訊系統的開發與維護等事務。 
 
當志工期間知道有各種兒童常見的心臟病,一般的如心臟瓣膜缺損,心室中隔缺損等,嚴重的如法洛氏四合症(合併四種異常),大動脈轉位(也就是出生時大動脈與肺動脈接心臟的位置相反了),甚至有俗稱"青蛙心"的單心室(出生時只有一個心室)患者。嚴重的通常都是先天性心臟病,病童外觀很明顯的是皮膚,嘴唇發黑發紫。
 
印象最深刻的是一個媽媽抱著一個很小的嬰兒到兒心辦公室來申請手術補助,因為心臟病的關係,小嬰兒甚至沒有力氣吸奶,媽媽只能一湯匙一湯匙地餵。
 
這段時間從許許多多的捐款,知道社會各個角落有許多善心人,默默行善,支持著兒心,支持著這些病童與他的家人。
 
除此之外,還有如書中洪啟仁醫師(創台灣首例法洛氏四合症手術成功)一樣致力於鑽研心臟手術的心臟外科醫師,讓這些孩童有康復的希望。
 
順便幫兒心宣傳一下
兒心官網 : http://www.ccft.org.tw
劃撥帳號:0100299 - 4 戶名:中華民國心臟病兒童基金會

 

 

2021年9月5日

阿甘正傳的啟示

作者: Fred F.M. Wang (FW知識瑣記) 日期:2021-9-5

 經過二十多年再看一遍電影"阿甘正傳",與年輕時有不同的感受。下面是自己三點感想 :

一 台詞 "Life was like a box of chocolates. You never know what you're gonna get 人生就像一盒巧克力,你永遠都不知道你下一塊吃到的是什麼口味。"

  感想 : 雖然人生的方向選擇是我們自己,但是,我們永遠不知道命運會帶我們去哪裡。不要怪罪命運,也不要花太多時間後悔,選擇我們所愛的,並愛我們所選擇的。

二 台詞 "There's only so much fortune a man really needs, and the rest is just for showing off. 人真正需要的財富只有那麼一些,剩下的只不過是用來炫燿罷了。"
  感想 : 財富在人生過程中的必要的,但是,生活必要之外的財富對我們並沒有多大的意義。需要之外的財富,我們可以選擇拿來做更有意義的事,例如幫助連生存所需的財富都沒有的人。

感想: 拋開人生不切實際的幻想,專注當下,盡力做好每件事情,就會有想不到的成就。

2021年9月2日

如何解決PHP日期2038年的限制?

作者: Fred F.M. Wang (FW知識瑣記) 日期:2021-9-2

以往以PHP寫日期相關程式,習慣用strtotime函式將字串轉換為時間,並用date函式以特定的日期

格式顯示出來。但是最近遇到了2038年後的日期顯示出問題了。如何解決呢? 


舊寫法 :


$date = date("Ymd",strtotime("2038-1-19"));

echo "2038-1-19 :" . $date . "<br />";     

使用日期(date)函式,結果顯示 2038-1-19 :20380119        


$date = date("Ymd",strtotime("2038-1-20"));

echo "2038-1-20 :" . $date . "<br />";   

使用日期(date)函式, 結果顯示 2038-1-20 :19700101            

由此看到日期(date)函式2038年1月20日之後的日期都無法正確顯示了


同樣要顯示日期增減也是會發生同樣的問題,當日期增加超過2038-1-20日,就無法顯示出來。

$this_date = Date("Ymd");

echo "today:" . $this_date . "<br />"; // 顯示 today:20210831


$date = date("Ymd",strtotime("+5985 days", strtotime($this_date)));

echo "add 5985 days:" . $date . "<br />"; // 顯示 add 5985 days:20380119


$date = date("Ymd",strtotime("+5986 days", strtotime($this_date)));

echo "add 5986 days:" . $date . "<br />";  // 顯示 add 5986 days:19700101        

    

怎麼解決2038年的限制呢?


您必須改用DateTime函式來取得日期(將日期字串轉成日期),並用format函式以特定的日期格式

顯示出來

$date =  new DateTime($this_date);


日期的增加則使用add函式

$date->add(new DateInterval("P6000D"));  // P開頭代表日期,6000D 代表 6000 天

echo "add 6000 days:" . $date->format("Ymd"); // add 6000 days:20380203

 

2021年8月24日

本部落格觀看人次終於破60萬人次大關

作者: Fred F.M. Wang (FW知識瑣記) 日期: 20210824

 本部落格觀看人次終於破60萬人次大關。 


從2004年建立本部落格以來已經17年了,寫寫停停,內容都是自己一些學習心得,感想與筆記,作為自己的備忘,也提供有緣人參考。

回顧自己資訊技術學習歷程,從大學一年級時期首次程式設計至今已經36年了,秉持對程式語言的興趣,多年來廣泛地學習不同的程式語言,從計概的Basic, Fortran,資料結構的PASCAL,資料處理課的COBOL,人工智慧語言課的LISP與自學的PROLOG,到工讀時的dBASEIII, Clipper。研究所類神經網路使用的C語言,資訊安全課的Assembly,服役擔任資訊官時期學到RPGII,進入社會工作增加C++,Java,VB,Python,AutoIT,網頁程式設計的JSP,PHP,Javascript 與特有環境的程式語言如SAP ABAP/4,Lotus Notes的Notes script。當然也接觸了不少平台系統與資料庫系統。體會到因應不同的需求只有最合適的程式語言,沒有任何一種程式語言是最好的,面對廣大與持續演進的技術,只有謙虛與持續的學習,才能讓自己不斷地進步

回顧職場30多年,在待人處事上,秉持能夠共事就是緣分,多體諒不同角色各有自己的困難,多結善緣,結交善友,對自己職業生涯絕對有好處。