l
顯示具有 其他 標籤的文章。 顯示所有文章
顯示具有 其他 標籤的文章。 顯示所有文章

2023年2月7日 星期二

與ChatGPT聊天(1)

February 07 20:57~22:15

▲ChatGPT官網首頁畫面

 

前言

ChatGPT自從去年11月推出以來引起很大的關注,原本Teddy對於這方面的議題是沒有涉略,但上周五在會議中聽鄭老師(Teddy的指導教授)分享他使用ChatGPT的經驗,引起Teddy對ChatGPT的興趣。

Teddy完全不懂AI,對於ChatGPT背後的運作原理也不了解。單純以軟體開發人員的身分,從軟體設計與學習的角度,分享Teddy使用ChatGPT的經驗。

***

幫我寫合約

最近這陣子Teddy與ezKanban團隊在研究以驗收測試加上Design By Contract(DBC)取代傳統驗收測試加上單元測試來確保軟體品質的方式,於是Teddy就想考考ChatGPT對於寫合約的能力。

 

Teddy請ChatGPT針對Stack class產生push method的合約,結果如下。如果不懂DBC的人,也無法判斷產出結果是否正確(廢話XD)。如果略懂DBC的人,可能會覺得ChatGPT產生的合約,已經與一般教科書中的參考答案相去不遠,頂多少一個stack not full的precondition。

 

***

 

但Teddy一眼就看出來,上面的程式少了一個很重要的postcondition,於是Teddy繼續追問:「postconditions好像不完整」。沒想到ChatGPT自己就補上了一條新的postcondition:

@post For all i in [0, list.size() - 2], list.get(i).equals(old(list.get(i)))

這一條postcondition想表達「除了stack top元素以外,stack內容在push之前與之後的其它元素要相等」,換句話說push只可以將新元素放到stack頂端,不可動到原本stack內部的其它元素。。

 

***

 

看到這裡,鄉民們覺得ChatGPT是不是很厲害?但請仔細看它產生的程式碼,其實有bug。什麼bug,Teddy再給它一個提示:「list.get(i).equals(list.get(i)) 不能確定現有元素沒有被改變,你必須儲存 old list」

這一次,ChatGPT產生的程式「看起來」就算完整了。

 

試到這裡Teddy覺得很奇怪:很明顯地ChatGPT是知道push contract的「完整答案」,但為什麼第一次只給了一個常見但不完整的答案?是為了節省運算資源嗎?還是有什麼其他原因,就不得而知

 

***

老師在講你有沒有在聽?

正當Teddy以為ChatGPT已經「學會」如何回答這個問題,於是Teddy重新再問一次,而且強調「The generated contracts should be as accurate and correct as possible. 」,提醒它不要忘了第三條postcondition。

但是,ChatGPT依然故我,還是回答只有兩條合約的答案。

 

***

 

Teddy還是好心提問:「Is the postcondition correct?」但這次ChatGPT居然回答Yes。之前Teddy問:「postconditions 好像不完整」,ChatGPT就補上第三條合約,但問它「postcondition是否正確?」,可能它覺得這兩條postcondition是正確的,所以回就答Yes。

 

對話至此,這個問題Teddy的懶得繼續問下去了。

***

感想

如果你對於詢問ChatGPT的問題心中已有答案,可以分辨ChatGPT產生結果的正確性,那麼它不失為一種快速代替人類產出文字的好工具。但是如果你對於問題的答案沒個準,那麼盲目相信ChatGPT的產出結果是很危險的。因為它才剛剛問世,對於它產生的結果的「信心指數」還是個謎。如果你在教科書上學到一個知識,基本上信心指數很高,你可以基於這樣的知識繼續累積其他更大的知識體系,但現階段ChatGPT應該還是達不到這種等級的信心要求。

從Teddy的角度來看,經過與ChatGPT對話之後獲得正確答案,自然期望相同問題再問一次,就可以得到上次對話的結果,但ChatGPT卻沒有滿足這個期待。這也是另一個令人失望的地方,因為原本想把它「訓練」成自己的小幫手,但是訓練過後它又忘了,那就無法將使用者的個人知識累積在ChatGPT上面。

Teddy覺得平均而言,ChatGPT對於問題的理解能力與專業知識量應該已經狂勝個別的人類。只要提升ChatGPT產出結果的正確性,還有就是請它做到「知之為知之,不知為不知」,不要不懂裝懂,這樣子可用性就更大,更值得依賴它用來解決特定的小問題。

***

 

友藏內心獨白:受過專業的廢話訓練。

2019年5月20日 星期一

2019 iMac 27吋開箱

May 20 20:58~22:31


Teddy手邊2016年購買的MBP 15”用了兩年半,已略顯老態。平常上網、文書處理是沒什麼問題,但只要同時開啟Parallels與IntelliJ,加上數十個分頁的Chrome,整台電腦跑起來就會有點卡卡的。

今年決定不要再買筆電,改買桌機。本來考慮iMac或是Mac Pro,但Mac Pro遲遲未上市,最近寫程式的頻率比較高,等不及Mac Pro決定先買2019年iMac。


▼美國今年三月就上市,台灣等到五月七日才開放訂購。這次狠下心來攻頂,購買最高階i9版本。


▼記憶體選擇最基本的8GB,自己另外購買4條OWC 32GB RAM,擴充為128GB。


上禮拜六(5/18)11點多iMac送到家裡,但我人卻在台南。隔天下午回台北後,趕緊開箱。


▼打開後包裝很簡潔。


▼把螢幕撲倒準備加裝記憶體,後來發現其實螢幕立著也可以裝記憶體,不用撲倒。


▼連接電源線的位置有一個按鈕,用十字起子用尖尖的東西刺一下,記憶體被蓋就會彈出。


▼兩條內建的4GB記憶體。


▼鍵盤、滑鼠、觸控板。原本考慮是否要買附數字鍵的鍵盤,但顧及桌面空間,以及之前已經用了六年多的無數字鍵的鍵盤也還算習慣,最後還是選擇無數字鍵鍵盤。這一代的鍵盤、滑鼠、觸控板都內建鋰電池,可以直接充電,方便很多。


▼開機後開始設定。


▼2019 iMac 27” 可以安裝128GB記憶體,Apple Store最多只可客制到64GB,而且價格比自己到外面購買要貴一倍。如果需要擴充記憶體,還是自己動手比較省錢。


▼因為經常需要使用Windows,此次特別買了專業版的Parallels,可以設定比較大的記憶體給VM使用。

***

剛拿到iMac兩天,目前只有一個問題,就是iMac不能調高低,Teddy覺得iMac螢幕高度太高,和以前使用的螢幕高度比較來脖子要稍微抬高,有點不舒服。

桌機的速度還是比筆電快很多,價格也比較便宜。像Teddy這種使用習慣,應該老早買桌機才對。只要搭配一台輕巧、長效的Windows筆電外出使用即可。

***

友藏內心獨白:爽度破表XDD。

2018年6月22日 星期五

羅技Logitech R500 雷射簡報筆開箱

June 22 12:51~14:16

需求分析

因為工作的關係Teddy經常需要使用簡報筆,雜牌的不算,光是羅技的簡報筆Teddy就買過以下四種(R500是最新上市產品,也是今天介紹的主角)  :

▼畫面節錄自羅技官網

螢幕截圖 2018-06-22 12.57.10


Teddy心中理想的簡報筆應該有以下幾個功能:

  • 重量輕且好握、容易操作
  • 支援藍芽連線,可以省去每次簡報都要外接一個USB接收器的麻煩。這原本也不是什麼太大的問題,但自從買了MBP 2016之後,整個筆電只有4個type-c接口,有藍芽功能在簡報的時候可以少接一個USB接受器就顯得方便很多。
  • 綠光。Teddy用過紅光和綠光雷射筆,覺得綠光指示比較清楚。
  • 可以按鈕讓簡報畫面變黑。有時候希望聽眾把焦點放在講者身上,此時把簡報畫面變黑就可以避免聽眾有意或無意地盯著投影畫面看。
  • 內建鋰電池可直接USB充電。這一點也很重要,因為Teddy使用充電電池,有時候簡報筆用到一半電力突然變成0,因此身邊隨時都多帶著一份備用電池。如果支援USB充電,可以利用休息時間直接用筆電幫簡報筆充電,就不需要擔心沒電的問題,也不用再隨身攜帶備用電池。
  • 外觀好看,讓簡報者看起來比較專業。

之前買過的R400、R800、以及價格非常高「貴」的Spotlight,沒有一個完全滿足Teddy的需求。最接近的要算是要價3999的Spotlight,幾乎滿足上述全部要求,但是它有一個非常大的敗筆,就是沒有實體的雷射光,而是透過軟體在電腦畫面中模擬「聚光燈」的效果。不管網路上有多少疑似「業配文」吹捧Spotlight有多好用,但Teddy覺得這是一個非常難用的產品。近四千元的價格其實專業的講師都可以接受,它要用酷炫軟體功能去模擬聚光效果也OK,但沒必要把實體雷射光的功能拿掉啊。真的覺得好可惜。

***

新品上市

▼昨天在PChome無意中看到羅技出了一款新的簡報筆R500,因為Teddy一直想買一個支援藍芽連線的簡報筆,而R500剛好有這個功能,價格也還可以接受,所以就抱著踩雷的決心買一隻回來用看看。

螢幕截圖 2018-06-22 12.52.32


▼開箱照,把投影器本體拿出來之後才想到要照相XD。

螢幕截圖 2018-06-22 13.26.22


▼支援USB接收器與藍芽連線兩種方式。R400與R800都需要兩顆AAA電池,R500只需要一顆。可惜沒有像Spotlight一樣支援內建鋰電池充電。

螢幕截圖 2018-06-22 13.27.39


▼R800含電池重量76克。

螢幕截圖 2018-06-22 13.31.49


▼R500含電池重量57克。

螢幕截圖 2018-06-22 13.31.21


▼一顆電池11克,所以R500大約比R800少了76-57-11=8克。

螢幕截圖 2018-06-22 13.35.14


▼R500長度比R800短了一公分左右。按鈕分布R500很明顯是學Spotlight,Teddy覺得R800的按鈕比較好按,距離較短,簡報時大拇指不會太忙碌XD。

螢幕截圖 2018-06-22 13.39.32

***

使用

▼有兩種連線方式,Teddy只試了藍芽連線。如下圖使用說明所示,只要同時按簡報器下上下兩顆按鈕3秒鐘,簡報器前端的燈會閃爍,此時便可與電腦透過藍芽連線。

螢幕截圖 2018-06-22 13.44.59


▼MBP 2016很快就找到R800。

螢幕截圖 2018-06-22 13.48.02


如果只是單純使用上一頁、下一頁功能,連線成功後即可使用。但如果要使用「讓簡報畫面變黑」功能,就需要安裝軟體。

▼直接到羅技官網下載R500軟體,安裝很簡單。

螢幕截圖 2018-06-22 13.50.47


▼安裝完畢之後預設情況下長按下一頁按鈕就可以「讓簡報畫面變黑」(空白畫面)。

螢幕截圖 2018-06-22 13.51.12


▼開始簡報。

螢幕截圖 2018-06-22 13.54.52


▼簡報畫面變黑(空白畫面)。

螢幕截圖 2018-06-22 13.55.00


▼R800(綠光)和R500(紅光)的比較,很明顯綠光指示點比較大顆也比較亮。

螢幕截圖 2018-06-22 13.56.22螢幕截圖 2018-06-22 13.56.11

***

結論

Teddy覺得R500算是Spotlight的陽春閹割版,留下藍芽連線功能、相似的按鈕設計以及軟體支援自訂按鈕,拔掉看起來比較高級的外型、內建鋰電池充電功能以及酷炫(但不實用?!)的軟體聚光燈與局部放大功能。

優點:

  • 支援藍芽與USB接收器連線
  • 重量輕
  • 外型相對它牌而言算比較好看
  • 價格適中
  • 可透過軟體自訂按鈕功能與計時器計時

缺點:

  • 紅光雷射指示效果沒有綠光好
  • 沒有支援內建鋰電池
  • 垂直按鈕設計上下兩顆按鈕距離太遠,沒有R800那麼好按。


在此呼籲羅技簡報器的產品經理或Product Owner,可以給Teddy一個支援「藍芽連線與內建鋰電池的 R800 2.0,或是「實體綠光雷射的Spotlight 2.0」嗎?拜託了…Orz

***

友藏內心獨白:不知道電池電量可以使用用多久?

2017年1月18日 星期三

2011年MacBook Air安裝Windows 10

Jan. 17 17:55~18:40; 19:45~20:37; 22:00~24:00

屏幕截图 2017-01-17 16.38.11

▼一邊裝機還要一邊防著Ada搞破壞,比找資料還累。

 

舊瓶裝新酒

換了2016年MacBook Pro 15(MBP)之後原本最早購買的2011年MacBook Air 11(MBA)筆電就沒人使用,MBA的輕量優點對於外出簡報、上課甚至是出國旅遊都很方便,相對而言1.8公斤的MBP 15雖然效能出眾但噸位就顯得有點太重。泰迪軟體成立之初Teddy就是用這台MBA開始經營培訓課程與顧問工作,原本128 G的SSD已經升級成創見480GB SSD,但是記憶體焊死在主機板上無法升級,還是原本的 4GB。

原本舊MBA上面裝有Parallels Desktop與Windows 7虛擬機器作為文書處理之用,隨著macOS不斷升級這樣的配置跑起來越來越吃力。這幾天在想,既然已經有新的MBP,乾脆直接把Windows裝在MBA上面好了。不透過Parallels Desktop虛擬機器,文書處理軟體的執行效率應該快很多,這台MBA還是可以應付很多課程與演講活動。

***

Boot Camp

不管是桌機或筆電,只要是Intel-based的Mac電腦想直接安裝Windows,最簡單的方式就是透過Apple提供的Boot Camp軟體Boot Camp可以製作Windows開機拇指碟,並且將Windows所需的硬體驅動程式打包進去,最後協助使用者分割安裝Windows所需的硬碟空間

▼Boot Camp輔助程式,在macOS的【應用程式】—>【工具程式】裡面

屏幕截图 2017-01-17 19.58.31

 

既然Apple有支援,想必在MBA安裝Windows應該沒什麼問題。沒想到這個簡單的想法,居然讓Teddy經歷一段漫長的安裝過程。以下表列出主要問題與解法:

安裝Windows 7或Window 10:Windows 10支援虛擬桌面,這個macOS老早就有的功能Teddy非常喜歡的,所以選擇安裝Windows 10。

Boot Camp不支援2011年MBA安裝Windows 10:在使用Boot Camp製作開機拇指碟的過程才發現2011年MBA只支援Windows 7和Windows 8,根本沒辦法透過Boot Camp製作Windows 10開機碟。這下子問題大了,在網路上找了許多資料,不是過於簡略,就是極度複雜,正在傷腦筋的時候,突然看到某個討論串中的這段話:

屏幕截图 2017-01-17 19.50.32

 

對啊,雖然2011年MBA不能製作Windows 10開機碟,但家裡還有2016年MBP和2012 MBA,用它們來製作開機碟再拿給2011年MBA使用不就好了。山不轉路轉,突然覺得眼前出現一道光芒,趕快用最新的2016年MBP製作Windows 10開機碟。

▼2016年MBP Boot Camp畫面,選擇製作開機片的Windows ISO檔並決定硬碟分割大小

屏幕截图 2017-01-17 20.05.00

 

很可惜用2016年MBP的Boot Camp製作出來的Windows 10開機碟拿到2011年MBA上根本無法開機,只出現黑底加游標畫面。改用2012年MBA製作的Windows 10開機碟總算可以在2011年MBA上正常開機

安裝過程:開始安裝前先在2011 MBA上面用Boot Camp切割出給Windows 10使用的硬碟空間,完成之後插上剛剛準備好的Windows 10開機,再將2011年MBA重新開機。

屏幕截图 2017-01-17 20.11.07

 

▼在電腦開機的時候按下【option】按鍵,此時電腦會出現開機選擇畫面(從哪一個磁碟開機)。請選擇從拇指碟開機,稍待片刻就可以看到熟悉的Windows安裝畫面。

屏幕截图 2017-01-17 20.23.12

 

▼安裝Windows的過程大部分步驟都是按「下一步」就可以了,但這個畫面要停一下,選擇將Windows 10安裝在BOOTCAMP分割區

屏幕截图 2017-01-17 20.27.06

 

▼選好後先格式化再按「下一步」。

屏幕截图 2017-01-17 20.26.26

 

▼接下來Windows就自己安裝,等這幾個步驟跑完就差不多了。

屏幕截图 2017-01-17 20.27.45

 

▼安裝完畢要重新開機。

屏幕截图 2017-01-17 20.29.15

 

▼重開機後看到熟悉的視窗圖樣,至少不是死機畫面。

屏幕截图 2017-01-17 20.30.18

 

▼接著還有一些設定。

屏幕截图 2017-01-17 20.31.29

屏幕截图 2017-01-17 20.32.03

 

▼差不多了。

屏幕截图 2017-01-17 20.32.47

 

▼安裝成功,音效、無線網路、觸控板(只有簡單滑鼠功能,沒有支援手勢)、USB介面的羅技簡報器、thunderbolt介面轉VGA外接螢幕(投影)等裝置都可正常使用。螢幕蓋起來電腦也會進入休眠模式,打開之後會喚醒。不科學電力測試結果顯示休眠一小時後電量從100%下降到98%,三小時降到95%,七小時還有90%。目前最明顯的問題是鍵盤上原本macOS的功能鍵(調整螢幕亮度、聲音大小、撥放歌曲等)沒有作用,螢幕上方的FaceTime鏡頭則沒有測試(在macOS的時代就從來沒使用過…XD)

備註:手動安裝BootCamp\Drivers\Cirrus\CirrusAudioCS4206x64.exe喇叭才會有聲音

屏幕截图 2017-01-17 20.33.35

屏幕截图 2017-01-17 20.33.45

***

給我滿滿的大平台空間

▼安裝完成之後硬碟還有209 GB,但是Teddy存放在Dropbox中常用的檔案就有203 GB,空間顯然不夠。

屏幕截图 2017-01-17 22.11.51

 

▼反正這台MBA的macOS應該不需要再使用了,乾脆把整個macOS分割區都刪掉,讓Windows使用全部480 GB硬碟空間好了。但事情總是沒有笨蛋想的那麼簡單,當Teddy把硬碟分割區刪除之後,卻怎麼樣都無法安裝Windows 10。

屏幕截图 2017-01-17 22.23.18

 

▼後來找到〈Windows 安裝程式:使用 MBR 或 GPT 磁碟分割樣式安裝〉資料,照著上面的建議改成GPT 磁碟分割樣式或MBR樣式,兩種方法都試過也都不行。真的是非常奇怪的靈異現象。

屏幕截图 2017-01-17 22.27.02

 

最後看到〈[重灌問題]解決!!安裝程式無法建立新的系統磁碟分割〉短片,細節請照著上面的步驟操作即可,唯一有一個地方不一樣,在影片中是重裝Sony筆電,把磁碟分割區全部刪除之後下一個步驟是重開機跳到BIOS設定硬碟開機順序。在MBA中無法跳到BIOS設定,Teddy試出來的方法是跳過BIOS設定步驟,重開機就可以

▼重裝完成,使用全部硬碟空間。

Screenshot - 2017_1_17 , 下午 10_48_17

 

在這裡要補充說明,不知道從哪一次開始,在MBA重開機按下【option】按鈕的時候開機選項會冒出一個「EFI開機」。如果選擇這個選項安裝Windows 10,就不會出現上述無法安裝的問題。但是,選用「EFI開機」好像有些驅動程式需要自己安裝。因為Teddy曾經有一次「誤選」EFI開機,安裝成功後好像顯示卡驅動程式沒找到。但是Teddy沒有花時間解決,而是重裝改用透過Boot Camp的方式。網路上也有人在討論透過EFI開機,有興趣的鄉民可以自行研究看看。

***

革命尚未成功

安裝好之後基本軟硬體功能都可以使用,但是Boot Camp準備的觸控板驅動程式非常陽春,根本不支援「手勢」功能。網路上有鄉民建議可以用Trackpad++這個免費軟體,安裝方式也很簡單,參考官網的文件就很清楚。在此有兩個小地方要提醒:

  • 因為要花大錢所以Trackpad++驅動程式並沒有獲得Microsoft的認證簽章,原本在Windows 10是無法執行的。為了讓它可以執行,要先另外安裝Power Plan Assistant 這個程式。
  • 第二點比較討厭,就是沒有認證簽章的驅動程式只能在Windows 10測試模式中執行,所以安裝好Trackpad++之後你的Windows 10桌面右下角會出現這幾個字:

Screenshot - 2017_1_18 , 上午 12_24_05

一開始Teddy還覺得好奇怪,為什麼Windows 10已經啟動了桌面上還顯示「測試模式」,Google了一下找到這篇文章〈如何停用顯示在視窗的 「 測試模式 」 訊息〉,文中提到可以用系統管理員的身分在dos視窗中執行「bcdedit /set TESTSIGNING OFF」指令就可以把桌面上討人厭的文字拿掉。

▼照做之後重新開機,桌面上討厭的文字是不見了,但是Trackpad++卻無法正常工作出現錯誤訊息。

屏幕截图 2017-01-18 00.32.10


▼這太奇怪了,重新安裝Trackpad++又可以正常工作,但重開機之後桌面上討厭的「測試模式」文字又出現了。Teddy傻傻的一直重裝好機次(包含Boot Camp所附的Windows 10驅動程式)問題還是沒解決,後來才突然驚覺原來這兩者必須要同時存在…Orz。為了使用手勢控制,只能安裝Trackpad++容忍桌面上礙眼的「測試模式」。

屏幕截图 2017-01-18 00.33.05

***

雖然有一些小缺陷但Trackpad++真的非常好用,在Windows 10作業系統中提供了類似macOS的手勢操作體驗,例如Teddy最常在macOS使用的手勢操作是用三隻手指往左、往右滑動切換不同的虛擬桌面。在Windows 10可以用【control】+【win】+【左、右方向鍵】做到相同效果,但Teddy沒有「原生」Windows 10筆電所以不清楚Windows的手勢操作是否有類似的功能。透過Trackpad++可以達到相同效果,雖然手勢操作的反應沒有macOS那麼靈敏但已經不錯了。

另外一個尚未解決的問題就是之前提到的原本macOS鍵盤上的功能鍵(調整螢幕亮度、聲音大小、撥放歌曲等)目前還是沒有作用,網路上似乎有人可以正常工作,調整螢幕亮度之類的。這個問題比較不急有時間再慢慢試。

[2017/01/19] 剛剛找到這個教學視頻,照著操作已經解決鍵盤功能鍵的問題了。

***

結論

經過11小時人與「電腦+貓」的奮鬥,終於將Windows 10安裝在只有4GB RAM的2011年MacBook Air 11上面。老機重生,也算是美事一樁。

▼Ada:我來用鼻子鑑定一下Windows 10開機碟有沒有問題。

屏幕截图 2017-01-17 16.43.27

***

友藏內心獨白:跨界不容易啊。

 

延伸閱讀

  1. 透過 Boot Camp 在 Mac 上使用 Windows 10

  2. Here is how to get trackpad gesture support for Windows 10 on a MacBook

  3. How to use an Apple Keyboard Volume Keys on Windows 10