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

2023年12月28日

人到中年該學會的幾個人生原則

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

人到中年已經過了人生最精華最耀眼的年紀,該學會一些原則讓自己後面的人生過得自在一些。

一 與自己的過去和平相處
     不再執念於自己過去的背景,過去的出生背景,過去的學歷經歷,過去的榮耀,挫折,失敗。後悔,苦痛與不愉快都讓它過去。

二 時間可以治癒一切
     給自己一些時間去治癒過去人或事或是自己帶給自己的傷痕。

三 別人怎麼看你,不關自己的事
     別再過分在乎其他人如主管,同事,同學,朋友等怎麼看你,到了中年有自己獨立的性格與自我的風格,應該要並能夠按照自己的節奏做對的事,做該做的事。

四 不要將自己的人生與其他人比較
    試著接受現在的自己,欣賞自己的優點,肯定自己為自己的人生做過的奮鬥與努力;每個人的起點不同,人生際遇不同,終點自然也不同,有些人的人生走的一路順遂,有些人則只能在崎嶇路上顛簸獨行,相互比較並沒有意義。

五 不要想太多
     進入這個複雜的社會久了,自己心思會變得越來越複雜,試著讓自己思想回歸單純,任何事情想得太複雜只會找自己的麻煩。

六 沒有人可以為你的喜怒哀樂負責
     隨時掌握與調整好自己的情緒,不要太容易受外界的人與事干擾你的情緒。平靜是最好的情緒,其他情緒都是短暫的,很快就會過去。

七 微笑面對
    我們無法解決世界上所有的問題,拯救所有的苦難,不要先天下之憂而憂,凡事放開心胸,盡量微笑面對。

2023年5月16日

市面上有哪些AI聊天機器?

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

上網搜尋並簡單整理一下現在市面有哪些AI聊天機器? 

Open AI "ChatGPT", playground , 採用OpenAI GPT3, GPT4 model。
Google "Bard" : 免費, 使用Google LaMDA model
Google "Socratic" : 免費,專為學童打造的 AI 聊天機器人, 只提供行動版 App,使用Google支援的model
Microsoft Bing AI聊天功能 : 免費,採用OpenAI GPT4 model
GitHub Copilot : 使用OpenAI Codex
Amazon CodeWhisperer : 使用自建的model

Anthropic "Claude" : 創辦人Dario Amodei曾擔任 OpenAI 研究副總裁,主導的正是安全團隊。使用Proprietary model
DeepMind "Sparrow" (註: DeepMind知名的產品是2019年擊敗了圍棋名手李世石的人工智慧圍棋軟體"AlphaGo") 介紹
Jasper AI: 採用OpenAI GPT3, GPT4 model。
YouChat " 免費, 採用OpenAI GPT3 model。
Writesonic "Chatsonic" : 免費,使用OpenAI GPT-4

Copy.ai  為業務及行銷人員產生文案, 使用OpenAI GPT-3 model。
INK 滿足 SEO 優化行銷需求
Perplexity.ai 以 Chrome 擴充功能之姿現身並強調能改進人們探索並分享資訊, 使用OpenAI GPT-3 and GPT-4 model
Rtr 創造高品質內容並自稱 AI文案助理

HuggingChat : 使用OpenAssistant LLaMa model
KoalaChat : 使用OpenAI GPT-3.5 Turbo model
ZenoChat :  使用4 自建的 models; OpenAI's GPT-3.5 and GPT-4
Personal.ai : 使用自建的 GGT-P; OpenAI's GPT-3 model
Poe : 使用Sage, Dragonfly, Claude, OpenAI GPT-3 and GPT4
Character.AI : 使用自建的model
AI Test Kitchen : Google開發的一個實驗性專案,使用Google LaMDA model


資料來源 : 

2023年3月20日

政治觀點 - 太陽花學運"反服貿"八年之後

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

很多事件都要多年後才能正確地檢視,太陽花學運後台灣改變了甚麼? 反服貿的結果? 這些學運領袖都發生了甚麼事? 誰得到最大的利益? 誰被利用?  

反了服貿,並沒有阻止兩岸的經貿發展,很詭異地台灣對大陸出口的依存度由國民黨執政的23.7%到民進黨執政的2020年變成43.8%。

藉學生運動打垮黨內外勢力獲取政權,得到最大利益的蔡政府讓台灣更好了嗎? 說好的南向政策? 說好站在勞工的這一邊? 說好反萊豬? 房價持續飆漲,在蔡政府期間房價指數漲幅達50%,兩岸官方不再溝通與對話,台海衝突危機大增,發展成世界最危險的區域。

這是大家要的結果嗎? 您被利用了嗎? 

政客最擅長的是煽動民眾的熱情,激化對立,製造矛盾來攻擊政敵,以達其政治的目的。熱血是年輕人的本質,在火熱的心外,需要冷靜的腦,學習正反思辨與大格局思考的能力,才能不被洗腦與利用。

相關文章 : 

2023年3月7日

人工智慧會讓程式設計師失業嗎? 人工智慧輔助開發工具(Codex, Copilot)的優點與注意事項

作者: Fred F.M. Wang (FW知識瑣記) 日期: 2023-3-7

人工智慧會讓程式設計師失業嗎? 甚麼人工智慧技術會讓程式設計師失業?  有興趣的可以往下看。

    BCC 2021年9月8日的一篇報導,"人工智能:編程員為何喜愛這些可能令他們失業的新科技?" 文章中訪問了幾個專業程式設計人員,為什麼喜歡人工智慧工具,優點在哪裡,這篇文章也點出人工智慧工具的限制與注意事項。

    今年3/1日openAI公司發布了"chatGPT API"提供個人或企業自行開發對話機器人相關應用。相較chatGPT,更令我感興趣的是OpenAI公司2021年發布名為Codex的"程式碼產生與處理"APIs,以及以Codex為基礎開發出來的GitHub Copilot(需付費)工具。開發軟體的過程中可以運用此些工具協助快速產生程式,大幅提高生產力。

    OpenAI官網提供了Codex Javascript的測試網頁,只要輸入英文(自然語言)就可以幫你產生想要的Javascript程式碼,有網友藉由這個測試網頁單靠英語對話就開發出一個簡單的遊戲。因此Codex與Copilot被認為是讓程式設計師失業的人工智慧技術。

      但是,不需要專業程式設計訓練,就可以完成一套完整的系統嗎? 下面整理AI輔助開發程式的

優點與注意事項 :  

優點
1 透過AI輔助開發程式,相同的時間可以寫更多的程式。
2 減少查詢語法的時間,如正規表示式這些複雜難記的語法等。

注意事項
1 難以發現的錯誤 : 美國紐約大學2021 年研究發現 AI 建議的程式碼並不可靠,試驗了 89 個場景中,約有 40% 以 Copilot 編寫而成的程式碼具弱點[2]。 史丹佛大學電腦科學家研究發現,程式設計師在 Github Copilot 等 AI 輔助下,較容易對程式碼的品質產生錯誤的信任,因此寫出的程式碼相較獨立的程式設計師更不可靠[2]。
 
知名程式設計問答網站 Stack Overflow 官方宣佈,暫時禁止使用者分享由聊天機器人 ChatGPT 產生的回覆,根據官方表示:「由於從 ChatGPT 獲得正確答案的平均比例太低,發表由 ChatGPT 創造出的答案對網站上,不利於詢問或尋找正確答案的使用者。」[3]
 
AI產生的程式碼中的微小錯誤有可能非常難被發現,可能導致非常大的代價。因此Copilot雖然能提供相對好的程式碼,但有時候會需要一些微調。如果你經驗不足,或正在嘗試學習,可能會出一些差錯但是卻沒有意識到[1]。

2 侵權問題 : "使用AI工具「有可能會侵犯一些開源程式碼許可,因為它可能會有些東西是來源於訓練代碼」。而這可能會令你掉進剽竊的漩渦。”[1] -- BCC

3 只是輔助工具 : AI只提供一些短的程式片段,不會編寫完整的軟體程序[1]。

4 覆核與測試的重要性 : 程式碼仍然需要全面覆核,而且要進行完整的測試如單元測試與整合測試[1]。

5 程式語言限制 : 
Codex目前支援的程式語言: Bash, C#, Go, Java, Javascript, Python, Ruby, Rust。
Github Copilot目前支援的程式語言 : C, C++, C#, Go, Java, Javascript, PHP, Python, Ruby, Scala, Typescript。。

由上面幾個事項,可以了解AI輔助工具很好用但還沒有強大到可以取代專業程式設計師。
參考 

由上面幾個事項,可以了解AI輔助工具很好用但還沒有強大到可以取代專業程式設計師。Codex, Copilot背後的人工智慧模組仍持續學習與進步中,值得持續關注,或許有一天上面這些問題都會解決。

人工智慧程式設計輔助開發工具 - GitHub Copilot介紹

作者: Fred F.M. Wang (FW知識瑣記) 日期: 2023-3-7

       今年3/1日因chatGPT爆紅的openAI公司正式發布了"chatGPT API",提供ChatGPT的引擎與應用程式庫給個人或企業自行開發對話機器人相關應用,加上該公司原有的文字產生與處理,程式碼產生與處理,影像產生與處理等APIs,給有人工智慧應用開發需求的個人或企業更豐富的選擇。

    相較chatGPT API我更感興趣的是OpenAI公司在2021年發布的"程式碼產生與處理"APIs,OpenAI公司將這部分命名為Codex。OpenAI官網提供了Javascript的測試網頁,只要輸入英文(自然語言)就可以幫你產生想要的Javascript程式碼

    除此之外,我找到以Codex為基礎建立的開發工具GitHub Copilot,包含許多IDE的插件,可以在開發軟體的過程中運用AI幫助自己快速產生程式,大幅提高生產力。如果這個工具可以運用到自己的工作上,就太好了,很可惜目前支援的程式語言不包含PHP。

    下面是整理自網路的GitHub Copilot介紹。

簡介

GitHub Copilot是GitHub和OpenAI合作開發的一個人工智慧工具,使用者在使用Visual Studio Code、Microsoft Visual Studio、Vim或JetBrains整合式開發環境時,可以透過GitHub Copilot自動補全代碼。GitHub於2021年6月29日對開公開該軟體。(維基百科)

GitHub Copilot 由 OpenAI Codex 提供支援,OpenAI Codex 是由人工智慧研究實驗室 OpenAI 建立的人工智慧模型。(維基百科)
OpenAI Codex 是 GPT-3(生成型已訓練變換模型 3) 的修改後生產版本,GPT-3 是一種使用深度學習生成類人類文字的語言模型。例如,當給出一個自然語言的程式問題時,Codex能夠產生解法代碼。它也可以用英語描述輸入代碼和在不同程式語言之間翻譯代碼。Codex的GPT-3僅授權給 GitHub 的母公司微軟。(維基百科)
Copilot的OpenAI Codex接受了一系列英語語言、公共 GitHub 儲存庫和其他公開可用原始碼的訓練。這包括來自 5400 萬個公共 GitHub 儲存庫的 159 GB Python 代碼的過濾資料集。(維基百科)

功能與準確度

GitHub Copilot協助程式設計師的功能,包含 :
一 寫上函數名稱自動補全程式碼
二 將註釋轉換成程式碼(Convert comments to code)
三 自動補全重覆的程式碼(Autofill for repetitive code)
四 自動產生測試案例
GitHub 報告稱,Copilot 的自動完成功能大約有一半時間是準確的; 例如,當使用者提供Python 函式頭代碼後,Copilot 在第一次嘗試時有 43% 的時間正確地自動完成了函式體代碼的其餘部分,而在十次嘗試後有 57% 的時間正確地自動完成了函式體代碼的其餘部分。
GitHub 表示,Copilot 的功能能夠幫助程式設計師減省閱讀軟體文件的時間,快速瀏覽不熟悉的編碼框架和語言。

支援的程式語言

GitHub Copilot目前支援的程式語言有C, C++, C#, Go, Java, Javascript, PHP, Python, Ruby, Scala, Typescript

功能介紹

一 寫上函數名稱自動補全程式碼
例如寫一個函數 calculateDaysBetweenDates(date1, date2),你只要函數名稱語意清楚,Copilot會自動填入程式碼。 

二 將註釋轉換成程式碼(Convert comments to code)
例如寫一段註釋,註釋中描述要處理的邏輯,Copilot就會自動產生程式碼。 

三 自動補全重覆的程式碼(Autofill for repetitive code)
例如: 你寫一個常數集合,內容為各種程式語言的註釋符號,你寫了三個程式語言後,Copilot會自動填入其他程式語言。
四 自動產生測試案例
完成一個函示後,可以讓Copilot針對此函示產生測試案例程式。

費用

Copilot個人版: 每月 10 美元,或每年 100 美元。

Copilot企業版 :每個月19美元


安裝與使用



資料來源 
1 維基百科
4.Github - About GitHub Copilot for Individuals
 

2023年1月17日

哪種人適合台積電?她道內部文化3特質 坦言「做得很痛苦」-- 感想

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

這篇新聞是一名台積電員工在整理出3點公司內部文化,坦言自己做得很辛苦 :


內文重點如下 :
她以自身的經驗,整理出3點公司內部文化:
第一,同事非常積極與有野心。在會議上,每個人都不停提問刷存在感,舉辦活動時則是巴著上層主管合照,想辦法討好對方。

第二,不顧團隊充斥個人主義。考績至上,出錯時同事大多見獵心喜,沒人會幫你,大家都想做能有表現的工作,不想配合別人主導的專案。

第三,公司軍事化管理。要求上班準時,卻很難準時下班,上下分明、嚴格管控。

她透露自己的個性內向敏感,並不適應上述公司文化,常常覺得格格不入,其實做得很痛苦,因此反倒想詢問大家要如何改變才能融入台積電?

------------------------------------------------------------------------------------------------------------------------------

我的感想是 : 太在乎別人怎樣,自己就會很痛苦,不如多花時間讓自己更強,建立好個人專業品牌,當能力越強,主管與公司越需要你的時候,就會過得更有自信並更順利。

另外,紀律如果是公司或主管要求出來的,自己就會很痛苦,不如先求自律,對自己要求高些,就會減少別人來要求你的機會。

Codeigniter系統異常登出問題 "Session Error" 原因與解決方法

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

最近開發PHP+Codeigniter架構的網站發生奇怪的問題 :

程式碼 : 
$this->session->set_userdata("message",$msg);
redirect($prev_page);
上述程式碼執行要redirect(重導)到另一個網頁,卻發生登入者自動被登出。

經過一番測試,終於發現問題在哪裡了。

我系統的設計是 : 
1. 用Session儲存使用者登入的資訊,系統各個頁面會根據此登入資訊判斷是否處於登入狀態。  $this->session->set_userdata("username",$username);
   ***** 顯然上面的問題是Session中使用者登入資訊已經消失了。*****
2.  用Session儲存訊息,如上面的$this->session->;set_userdata("message",$msg); 重導到另一個網頁時,再讀出此資料顯示在頁面上,如$message = $this->session->userdata("message");。

原因一 : 與預設編碼不同。
$this->session->set_userdata("message",$msg); 這行程式的$msg變數中包含Big5中文編碼的文字,
而Codeigniter系統設定application/config/config.php中預設編碼為UTF-8
$config['charset'] = "UTF-8"; 
內容與預設編碼不同,造成Session資料的消失。

解決方法 :,只要將上面$msg轉換為UTF-8編碼格式就不會有問題了。


原因二 : 也有可能是設定的內容太長 
解決方法 : 縮短訊息內容長度就不會發生了。(或加大session容量,需要其他設定)


參考 :  網路上其他類似的問題與Session data lost可能的原因

2023年1月15日

如何使用Excel讀取mySQL資料庫(含環境安裝)

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

筆者用Excel讀取過Access或SQL Server資料庫,最近嘗試使用Excel讀取mySQL資料庫,查了許多方法,經過幾次失敗的安裝,終於正確的安裝完成,並讓Excel可以讀取到mySQL資料庫,分享給需要的人。下面是我安裝的步驟與一些要注意的地方 :

我的電腦環境是:
. Windows 7 家用進階版
. Office 365專業增強版
. mySQL資料庫(使用UTF-8編碼) : 安裝在同一台個人電腦。


步驟一 下載並安裝 mysql ODBC Connector

1.1 首先,要了解您的Office版本是32位元或64位元,安裝的mysql ODBC Connector必須與Office是相同位元的版本,因為我電腦的Office是32位元版本,因此安裝32位元的mysql ODBC Connector。如何知道您Office版本是32位元或64位元的呢? 以Office 365為例,在Excel選單 : 檔案 > 帳戶 的畫面中,點擊"關於Excel"就可以看到您Excel版本了,如下畫面。    
    



1.2 下載 mysql ODBC Connector


 

步驟二 設定ODBC來源

       此步驟要設定一個mySQL資料庫的ODBC來源,因為步驟一安裝的mySQL ODBC Connector 32位元版本,因此必須在32 位元版本ODBC資料來源管理員內設定。此處要注意的是作業系統如果是Windows 7 64位元,就不能使用控制台ODBC資料來源管理員,因為它是64位元版本的。
       32位元版本ODBC資料來源管理員(Odbcad32.exe)位於 %systemdrive%\Windows\SysWoW64 資料夾(如: C:\Windows\SysWOW64)中。必須執行此程式來設定mySQL資料庫的ODBC來源才行。
       參考來源 ODBC 工具會顯示32 位元和64 位元- SQL Server

    如果使用錯誤版本的ODBC資料來源管理員,Excel在連接資料庫時會產生下面的錯誤訊息。
    




   安裝步驟 :    

  1. 在 ODBC資料來源管理員視窗的"使用者資料來源名稱" > 新增
  2. 選擇"MySQL ODBC 8.0 Unicode Driver”, 點擊[完成]

說明 : 因為資料庫建立時我採用Unicode編碼,因此要使用Unicode Driver




   
    3. 設定新的資料來源。
        點擊[完成]後,會顯示出mySQL connector設定對話窗,如下。

     填入個欄位 : 
  • Database Source Name : 自訂一個好辨識的資料庫來源名稱
  • 勾選 TCP/IP Server
  • hostname : localhost  (因為裝在同一台電腦)
  • User : <mySQL資料庫管理帳號>
  • Password : <mySQL資料庫管理密碼>
  • Database : <選一個資料庫>

註 : mySQL資料庫管理帳號在資料庫建立時,已經建立至少一個資料庫管理員帳號,或可以到資料庫建立一個新的資料庫管理帳號,並設定適當的存取權限提供連線存取。

 

 

步驟三 使用Excel讀取mySQL資料庫中的資料

選單 : 資料>取得資料>從其他來源>從 ODBC



    在”從ODBC” 對話方塊的”資料來源名稱(DSN)”,選擇步驟二中建立的資料來源名稱(如mysql-xampp8.1.2 )。

    如果您想要設定資料庫查詢條件,查詢並匯入資料,請在對話框"進階選項"的"SQL陳述句" 中下SQL命令。然後點擊 [確定]。

    





        顯示出查詢結果後,點擊[載入],就會將這些查詢結果匯入Excel工作表中了。


參考影片 : Excel Import MySQL Table with ODBC Database Query

整理三大容易發生錯誤的地方,要特別注意 : 

  • 安裝的mySQL ODBC Connector必須與Office是相同位元的版本。
  • 安裝的mySQL ODBC Connector 32位元版本,因此必須在32位元版本ODBC資料來源管理員內設定。(注意64位元Windows 7 控制台的ODBC資料來源管理員是64位元版本的)
  • 資料庫建立時採用Unicode編碼,因此資料來源設定時就要選擇MySQL ODBC Unicode Driver(不是ANSI Driver)


 



 

2023年1月11日

珍惜並守護您所擁有的幸福

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

父親家貧未能受教育,十多歲就進入礦坑過著暗無天日的礦工生活,每天賺錢為讓生病的養父看病打止痛針直到養父過世,成年後才找機會進入私塾從三字經學起。

岳父在中國內戰時期長大,十四歲就被拉去當兵,隨軍隊轉戰南北然後到了台灣,年年清明只能遙望故鄉方向祭拜,年近七十歲才得以返為故鄉,父母早已離世,家鄉人事已非。

我則成長於經濟起飛的60,70年代,跟很多同輩的人一樣,努力打拼翻轉貧窮。

苦難的年代好不容易過去,也漸漸為人所淡忘,年輕一代正享受著數十年來經濟成長帶來富裕幸福的生活。

大家千萬要珍惜並守護現在擁有的幸福,讓社會讓與環境更好,讓下一代也能擁有好的生活。

Fred F.M. Wang正月有感