紐西蘭的皇后鎮,是我藏在少年時期的一個夢想。那時候,旅遊節目裡的湖光山色深深烙印在心裡。雖然時光飛逝,記憶早已模糊,但這個名字如詩如畫,從未被遺忘。多年後,我終於親身造訪這座依偎在南阿爾卑斯山脈與瓦卡蒂波湖(Lake Wakatipu)之間的小鎮。
從但尼丁開車前往皇后鎮,沿途的景色十分多變,森林的翠綠與荒漠的壯闊交錯出一幅幅絕美畫面。當車子接近湖泊區域,心中對這片土地的期待愈發強烈。窗外的每一幕風景,彷彿都在熱情迎接我的到來。抵達住宿地點 Queenstown House 時,夜色已降,溫暖的接待和窗外隱約可見的湖景,立刻掃去了旅途的疲憊。
在皇后鎮的日子裡,我每天都被瓦卡蒂波湖的晨光喚醒。湖水在陽光中波光粼粼,像是在低語講述著悠長的故事。湖邊的步道成為我的日常,不管是清晨的靜謐,還是午後的熱鬧,都讓人流連忘返。一次湖邊散步時,我看見蒸汽船劃破平靜的湖面,帶著遊客航向遙遠的農莊,那情景讓人不禁嚮往那份悠然自得的生活。
山頂纜車是皇后鎮的招牌體驗之一。當纜車緩緩攀升,眼前的湖光山色逐漸展開,天地間的壯麗讓人屏息。山頂的 Skyline Restaurant 更是我此行的亮點,不僅有豐盛的自助餐,還能欣賞窗外壯觀的湖山景色。用餐時,我們被安排在靠窗的位置,黃昏的金光灑滿桌面,搭配杯中紅酒,彷彿連時光都緩慢了下來。入夜後,小鎮的燈火點綴著山谷,流露著低調卻迷人的浪漫。
除了悠閒的湖邊漫步,皇后鎮還充滿了令人熱血沸騰的活動。Luge 滑車是其中之一,憑藉坡道的動能順勢滑行,享受迎風而下的刺激。相比之下,騎馬的體驗則多了一分挑戰,馬兒偶爾失控讓人驚心動魄,但當我從馬背上望向開闊的山谷時,那份壯美讓一切驚險都成為值得。
這次旅程也讓我感受到酒莊的魅力。在 The Winehouse & Kitchen,紅酒與美食的絕妙搭配令人沉醉。餐廳窗外是延綿的葡萄園,酒杯中是陽光的味道,這樣的午後時光,彷彿全世界都靜止了。我至今仍懷念那一餐的愜意,讓我明白「美食與美景」是旅行中不可或缺的元素。
皇后鎮的市中心雖然不大,但五臟俱全,從精品店到咖啡館,從街頭藝人到假日市集,每一處都充滿生活氣息。在湖邊的假日市集中,我買了一包鮮甜飽滿的櫻桃,入口的滋味讓我瞬間愛上這片土地。夜晚的湖邊則是另一番風景,寧靜中夾雜著低低的笑聲與輕音樂,讓人放慢腳步,細細品味這份恬靜。
高空彈跳是紐西蘭的經典活動之一。雖然我缺乏親身挑戰的勇氣,但站在卡瓦勞大橋(Kawarau Bridge)上,看著其他遊客飛躍而下,仍讓人心跳加速。我拍下一對情侶在跳台上相互擁抱鼓勵的畫面,那一刻,他們的勇氣令人動容。
在皇后鎮的每一天,我都感受到大自然的力量與人文的溫暖。這裡不僅僅是一個觀光勝地,更是一片能夠撫慰心靈的土地。當旅程接近尾聲,我離開這座小鎮時,心中滿是眷戀。或許某天,我會再次回到這裡,尋找屬於我的心靈歸處。
《AI-Powered Software and System Design》是《Generative AI for Software Development》的第三部分課程,旨在幫助我們全面理解生成式 AI 在軟體設計與系統開發中的應用,並通過三週的學習,構建從資料序列化、配置驅動開發到設計模式應用的完整技術路徑。課程結合理論講解與實作練習,為我們提供了一個從基礎概念到高階應用的學習框架。
第一週的課程聚焦於資料序列化與配置驅動開發(CDD)。這週的學習從資料序列化技術(如 JSON 與 Pickle)開始,幫助我們掌握數據存取與共享的核心技能。課程進一步介紹了如何通過配置文件控制軟體行為,提升系統的靈活性與可擴展性。我們還學習了透過 LLM 去了解測試驅動開發(TDD)與行為驅動開發(BDD)的核心理念。課程範例以 CDD 結合 DALL-E API 的應用,實作配置驅動的開發流程。這些技術讓我們能夠快速生成動態配置並將其整合到系統設計中,提升開發效率與結構化程度。
第二週的課程重點轉向資料庫設計與優化。從基礎的 CRUD 操作教學開始,我們學習如何利用生成式 AI 工具(如 LLM)設計資料結構,並生成高效的查詢代碼。課程還包含除錯與效能優化的練習,幫助我們解決資料庫運行中的性能瓶頸與依賴性問題。透過設計並實作社交網絡資料庫專案,我們得以熟悉如何結合生成式 AI 提升資料庫的穩定性與效能,並應用於真實開發場景。
第三週的課程專注於設計模式的應用,特別是四人幫(Gang of Four)提出的 23 種設計模式。課程從設計模式的理論基礎入手,詳細講解了每種模式的適用場景及其解決的問題,涵蓋單例模式、工廠模式、模板方法模式與策略模式等。透過生成式 AI 的輔助,我們能快速生成設計模式的實作範例,並獲得優化代碼結構的建議。這些練習不僅讓我們理解設計模式的核心概念,還幫助我們提升應對大型系統設計與部署挑戰的能力。
這一段的課程相較於前面的《Introduction to Generative AI for Software Development》跟《Team Software Engineering with AI》又更為艱澀一點,且如果平時開發專案的規模不夠大,可能也不容易體會開發模式跟設計模式對於團隊開發跟產品的影響。不過順著課程的結構來進行,再加上可以不斷的詢問 LLM,相信應該可以架構出對這進階的開發概念有完整的理解。我自己花了八天的時間,完成了第三階段課程的認證,除了習作/測驗跟程式碼的撰寫外,第三門課程我花了很多時間去比較不同開發模式跟設計模式,對不同軟體產品的影響。這也是我在這整段課程收穫最大的地方,更進一步發揮了 LLM 的應用能力跟場景。
整體課程以實務應用為導向,注重生成式 AI 技術在開發流程中的價值與實際效能。從資料序列化到資料庫設計,再到設計模式的實作與應用,每一環節都幫助我們建立理論與實務的連結,快速掌握生成式 AI 的應用精髓。這是一門適合希望探索生成式 AI 在軟體開發中的潛力,並期望提升專業能力與開發效率的課程。
《Team Software Engineering with AI》這門課程是《Generative AI for Software Development》的第二段課程,同樣也是安排了三週的內容。課程設計的目標,是幫助學員全面了解生成式 AI 在軟體開發中的應用,並提供一套從測試與除錯、文件撰寫到依賴管理的完整學習路徑。課程在三週內,從第一週的內容逐步深入,讓學員從基礎環境設置開始,逐步掌握生成式 AI 工具的應用方法,並將其實際應用於開發與團隊協作中。
第一週的課程除了環境設置之外,主要聚焦於測試與除錯。這週的設計旨在幫助學員理解測試與除錯的重要性,並學習如何透過生成式 AI 工具(如 ChatGPT)來優化測試流程。跟第一門課一樣,平台本身有提供 LLM,以及開發環境,另外也有教材跟延伸練習的程式碼可以下載。學員首先熟悉 Jupyter Notebook 的操作以及 ChatGPT 實驗室的使用方法,建立穩固的技術基礎。在測試部分,課程詳細介紹了探索式測試和功能測試,並教授如何設計自動化測試來提升效率。除此之外,學員還會接觸效能測試與安全測試的基礎知識,並學習使用 AI 工具分析程式碼中的安全漏洞,進一步理解如何將 AI 應用於日常開發工作中。
第二週的課程重點轉向文件撰寫。文件是團隊開發中不可或缺的一部分,但往往容易被忽略。這週的課程旨在幫助學員掌握撰寫高效技術文件的技巧,提升團隊協作的效率。課程不僅介紹了內嵌註解與文件註解的實踐方法,還探討了多語言環境下文件的適應性。學員將學習如何使用生成式 AI 工具來輔助文件撰寫,並通過自動化工具如 Sphinx 生成結構化文檔。此外課程強調了文件在生產環境中的重要性,讓學員了解文件維護對專案長期發展的影響。
第三週的課程專注於依賴管理,這是軟體開發中一個易被忽視但至關重要的領域。本週的課程幫助學員理解如何解決依賴衝突,並提升專案的穩定性與安全性。學員將學習虛擬環境的設置、依賴研究與安全分析等基礎知識,並進一步探索如何利用生成式 AI 工具處理多語言環境中的依賴問題。此外課程中還包括 GPT 的應用實作,讓學員能夠熟悉使用 AI 工具解決版本與依賴管理問題,並將所學應用於實際專案中。
照例每一週的課程都有作業/考試,程式實作的部分是要求將 Python 2 的舊程式,透過 LLM 的協助來更新為 Python 3 的新版程式,同時也實作了模組依賴版本不相容的解決方式。這跟我們實務開發時經常面對到的困境一樣,以往沒有 LLM 的協助得到個大論壇搜尋取經,或是詢問其他大神。如今 LLM 就是一個隨時可以提供個性化服務的大神。
整體課程是以實務應用為導向,注重理論與實作的結合,讓學員在學習過程中能即學即用。生成式 AI 工具不僅能幫助學員提升開發效率,還能解決許多開發中常見的問題。這門課程強調了技術與團隊協作的平衡,從測試與除錯的基礎開始,到文件撰寫的專業化,再到依賴管理的穩定性,循序漸進地引導學員掌握生成式 AI 的應用精髓。對於希望提升技能並優化開發流程的工程師或技術管理者來說,這是一門不可多得的課程。這門課最後我用了七天的時間(一天平均為八小時),順利完成並取得證書。
Leica CM 相簿 https://flic.kr/s/aHBqjBztRL
Leica M6 相簿 https://flic.kr/s/aHBqjBYr2B
去年六月我收到了老婆(小孩有插花)送給我的生日禮物,一台我期待很多年的隨身底片相機 Leica CM,同時因為我跟佑昌購買的 X100VI 一直沒到貨(後來發現被詐騙),所以我就自己買了一台 Leica M6 作為生日禮物。
使用這兩台相機已經半年,這個月收到了 Flickr 的兩年自動續約扣款通知,於是把這段時間拍攝的底掃檔案都上傳到 Flickr 用相簿來歸檔。我很喜歡 Leica CM 的輕便好操作,全自動對焦加上鈦金屬機身(只有 300 多公克),是真正的口袋相機。雖然二手市場上這台相機釋出不多,且價格很驚人(依品相在六萬到九萬台幣之間),但我使用下來還是強力推薦它。
至於純手動旁軸黃斑對焦的 Leica M6(non-TTL,0.72),我使用了 Leica 28mm f2.8、50mm f2、Voigtlander 75mm f1.5 這三顆鏡頭,操作起來很有樂趣,記錄下了很多我自己很喜歡的時刻,以底片機來說 Leica M6 很符合我的需求。
拍照這麼多年,對於徠卡這個品牌始終有一種情懷,當然它的高價也是這些年來一直讓我卻步的原因,雖然算起來我其他相機跟鏡頭的花費,買上一整組最新的 M 機跟鏡頭都還有找,可是沒真正擁有跟認真拍攝之前總是很猶豫(之前有借過幾台 Leica 試拍)。這半年使用下來,真的覺得相見恨晚啊!
我還是喜歡我的 Nikon、Fujifilm、Olympus、Ricoh、SONY,每一台相機跟鏡頭的使用與操作都會帶來不同感受,而使用了 Leica 底片相機之後,又有了全新的體驗與氛圍,如果你也跟我有類似的情懷,推薦有機會要使用看看。
從基督城的Hadleigh Boutique Lodge啟程時,原本對但尼丁的旅程沒有太多期待。然而,在享用完早餐與房東Jon的閒談中,得知他曾是賽車手的經歷,更推薦了我們路上不容錯過的Moeraki Boulders。這個建議,為我們的旅程增添了意想不到的驚喜。
在Koekohe海灘上,這些最大可達三公尺的圓石散落在岸邊,完美的球形讓人難以相信是自然形成。在細雨綿綿的天候下,整個畫面籠罩在一層迷濛的霧氣中,浪花不斷拍打著岸邊,為這些神祕的圓石增添了幾分詩意。我選擇以黑白的色調來呈現這片景致,試圖捕捉當下的氛圍。
抵達但尼丁後,我們前往了令人期待已久的Larnach Castle。這座位於Otago半島中部山丘上的城堡,雖然找路時有些波折,但沿著海岸線蜿蜒而上的道路,美景足以撫平所有煩擾。傍晚時分,我們抵達了這座紐西蘭唯一的城堡,迎接我們的是溫暖的接待與意外的升等驚喜。
在城堡的晚餐是一場難忘的饗宴。我們被安排在特別的VIP餐廳,享用著當地的黑皮諾配上精緻的餐點,聆聽著這座充滿歷史的房間裡每一件傢具背後的故事。城堡的社交時光更讓我們結識了來自世界各地的旅人,特別是那位健談的英國醫生,與他分享著香港的新年風情,讓這頓晚餐增添了幾分國際色彩。
隔天清晨,在城堡周邊漫步時,霧氣繚繞的花園宛如童話世界。享用早餐時,又遇見了昨晚的醫生夫婦,延續著未完的話題,這樣的早餐體驗讓人感受到旅行中難得的溫暖。
離開城堡後,我們前往了Taiaroa Head的Royal Albatross Colony。在這個被強勁海風吹拂的海角,我們不僅看到了孵育中的信天翁,還在岸邊發現了悠閒的海豹與各式海鳥,構成了一幅生機盎然的畫面。
在但尼丁市區,我們造訪了著名的火車站、聖保羅大教堂,以及熱鬧的八角廣場。在八角廣場附近的餐廳用餐時,意外捕捉到一個溫馨的畫面:一位手臂有著鮮豔刺青的父親,與他如洋娃娃般可愛的女兒。這樣強烈的對比,恰恰呈現出這座城市多元而溫暖的一面。
啟程前往皇后鎮的路上,Central Otago區域展現出截然不同的風貌。從鬱鬱蔥蔥的森林,到光禿的山坡,再到湖光山色,每一個轉彎都帶來新的驚喜。這座最冷最熱也最乾燥的高原,用它獨特的地貌,為我們的但尼丁之旅畫下完美的句點。
:: 下一頁 >>