[學習心得][Golang] 透過 ChatGPT 來做 REGEX 的事情

前提 大家應該都跟我一樣,經常使用 ChatGPT 來協助一些 coding 上的問題。尤其是對於 Regular Expression 的問題。最近在處理上發現,需要透過「正向表列」,而非跟他講哪些不可以的方向比較容易成功。也應該說, Regular Expression 本來就要透過正向表來才對。 原本: // AddLineBreaksAroundURLs takes a string as input, finds URLs, // and inserts a newline character before and after each URL. // It returns the modified string. func AddLineBreaksAroundURLs(input string) string { re := regexp.MustCompile(`(https?:\/\/[^\s\p{Han}]+)`) return re.ReplaceAllString(input, "\n$1\n") } 發現無法處理: https://voyager.minedojo.org/。 當我發現我一直跟 ChatGPT 講要排除 ` https://voyager.minedojo.org/。` 這個案例的時候,往往會一直卡住無法向前。 但是寫多個測試案例倒是真的蠻好的。 Unit Testing code func TestAddLineBreaksAroundURLs(t *testing.T) { tests := []struct { input string expected string }{ { input: "Check out this website https://example.com and this one http://another-example.com", expected: "Check out this website \nhttps://example.com\n and this one \nhttp://another-example.com\n", }, { input: "Here is an URL with dot at the end https://voyager.minedojo.org/。", expected: "Here is an URL with dot at the end \nhttps://voyager.minedojo.org/\n。", }, { input: "This is another test 可在https://voyager.minedojo.org/上訪問。", expected: "This is another test 可在\nhttps://voyager.minedojo.org/\n上訪問。", }, // Add more test cases here as needed } for _, tt := range...
繼續閱讀

[TIL] 關於 WWDC 2023 身為開發者你應該知道的事情

我如何看待 WWDC23 ? 身為技術研討會主辦人,我看的是: 整體錄影方式與收音技巧 每一個講者的職稱(可以看出內部分工與架構) 平台想要規劃出的生態圈 職稱相關 應該跟許多公司一樣: Engineering Progam Manager - 技術專案經理 Engineering Manage - 技術開發的經理 職稱其實也代表部門的多寡,對外部而言很嶄新的 visionOS 部門卻有那麼多清楚分工,而且能演講的人還蠻多的。不愧是 Apple 。 硬體相關 New Mac Studio 可以有六顆螢幕(原來之前的不行啊?!) iOS 17 帶來軟體開發新變化 Name Drop 近場溝通新應用 取代掉所有名片應用 (LINE OA 其實有類似做法) 不知道會用到哪個 SDK ,應該會開放給其他 App 使用。 更智能的鍵盤輸入 可能是使用 local 「In-line predictive text API」 TV OS 相關變革 透過 iPhone 直接在 Apple TV 開會 走 Continuity Camera API Vision Pro 帶來的軟體開發變化 (要接線~~~~~ Orz) 果然要另外接電池 Apple Vision Pro 帶來新的生物識別系統「Optic ID」 可能帶來影響: 虹膜辨識會變成是基本 OAuth 的認證設備(搭配 Passkey (a.k.a. FiDO2) 比起 WorldCoin 可能因為 AirDrop 產生盜用 ,但是 Vision Pro 更可以取得更多人的虹膜資訊。 雖然依照 Apple 的個性,不可能有任何取得方式。但是代表 Optic ID 可以更加的準確, Passkey 的未來更令人期待。 iOS SDK Accessibility SDK Privacy API
繼續閱讀

[TIL] 換 iPhone 需要注意的小事項

為何更換手機 最近因為要出國,因為讓小孩子避免走失。買了 Apple Watch ,卻發現沒有辦法漫遊。只好弄一隻支援 ESIM 卡片的手機給他。 這樣一來,最方便的方式就是把我的手機(iPhone XR) 給他,然後我換一隻最新的 iPhone 14 Pro (明明 15 就快出了) 大部分的軟體使用「iCloud 備份與復原」應該可以搞定。 iPhone 系統軟體,需要注意的部分 舊手機: 記得把 Find My Device 關閉 記得登出 iCloud (先將以下都做完,先將以下都做完,先將以下都做完) Apple Watch 需要先解除配對(就算忘記也沒關係,就重新配對洗掉) Apple Pay 全部要重新認證(到新手機) Apple Watch 的 Apple Pay 也要重新認證(也是在新手機上操作) 不要急著洗掉就手機 iCloud 備份與復原後,有一些 App 可能需要他。 大部分的應用程式都可以走 iCloud 復原來安裝(開啟的時候,也通常可以無痛轉移)。但是有一些應用程式需要舊手機轉換。 Steam App 需要舊手機認證,才能轉換。 WeChat 一樣,需要舊手機掃描 QR-Code VPN 軟體 每個公司可能不同,有的管制更嚴格。 LINE 的部分,完整可以參考【LINE換機官方懶人包】帶您一步一步操作~ iOS與安卓都適用 舊手機: 先去備份起來(可以透過 iCloud) 要確保有備份完整,確保有備份完整,確保有備份完整 打開手機裝 LINE 掃描舊手機 QR Code 登入,並且轉換手機。 這時候,選擇從備份恢復。 如果,發現沒有完整恢復回來?(也就是備份有失敗) 想要打開舊手機,會發現已經轉換過來,無法開啟。 刪除舊手機的 LINE ,重新安裝。 重新以上步驟,將新手機帳號轉換回來就手機。 這時候發現對話都回來了,再來重新備份一次。這次要注意有沒有備份完成。 然後重複手續,轉換到新手機。 大概就這樣,本來以為換手機很方便。結果也是卡蠻久,最重要的還是 LINE 卡住(嗚著臉)。
繼續閱讀

[TIL] Microsoft Build 2023 Day2- 資訊整理

影片: (官方直播,可能會下架) Plugin 會是新世代的 Fontend 前一天 CTO Kevin Scott 在 “The era of the AI Copilot” 關於 IDE 對於 Plugin 開發的支持 Web IDE 支援很快速建立 Copilot Plugin 這裡有個 Jira Copilot Plugin 案例 商業用語部分 - Syntex Plugin Docu sign flow with Copilot Copilot 總結 關於 Plugin - Developer Success Productivity: 完整的說明,有相關的 “Team Toolkit” 有個人化體驗 可以很方便開發跟 Deploy Dev Home: 快速建置開發者的相關環境 透過帳號登入 相關設置都有 今天有 Preview 版本在 Windows Store Build and maintain your company Copilot with Azure ML and GPT-4 | BRK211H 整個流程相當清楚,又能完整呈現 Azure Copilot 與 Azure ML 的強大。 先建立一個情境,幫生意擴展找客戶挑選 TA 透過 Copilot 給予相關的信件: 這裡想要給予更多更貼近 TA 的資訊,尋找過去信件與相關資料。
繼續閱讀

[TIL] Microsoft Build 2023 Day1- 資訊整理

這一屆有很多重要消息: Windows Copilot (Windows 內建 chatgpt) ChatGPT with Bing Search (include free tier) Azure AI Studio Dev Home : 登入帳號直接連接 github (windows 相關) Microsoft Fabric : all-in-one BI platform 同步也分享一下,不論是 MSFT CEO 跟 CTO 都有強調關於 Plugin 生態圈的重要。以後微軟許多環境,應該都有 GPT 的存在。 但是又開放許多 3rd Party 開發 Plugin 系統。 來客製化自己的搜尋體驗。這就再次呼應到「生態系競爭策略」這本書。
繼續閱讀

[TIL] Google I/O 2023 - Developer Keynote 資訊整理

Google I/O 2023 Developer Keynote 相關資訊與討論整理串。 (賣手機跟雲服務的 Google Keynote,有太多新聞可以查,我就不列了 XD) Fip IO 官方運用所有開發工具寫出的卡牌遊戲。 Google I/O FLIP - A Generative AI Card Game Prompt helper on Bard: (這個名字我是創的) 你輸入幾個 prompt ,他會幫你把剩下的 prompt 都產生。 比如說你要 JSON ,他會產生預設的格式。 Android Studio Bot 目前只有在開發者先行版本 Canary Build 才有,Android Studio Bot: 就類似其他 IDE Bot ,幫你透過自然語音提供建議與程式碼。還有相關文件也給你。 相關文件跟其他演講。 Web Assembly 更新 WebAssembly 是一种新的代码类型,可以在现代 Web 浏览器中运行,并提供性能上的重大提升。它不是主要用于手写,而是旨在成为源语言(如 C、C++、Rust 等)的有效编译目标。这对 Web 平台有巨大的影响,因为它使得许多语言可以直接编译成 WebAssembly 代码并在浏览器中运行。WebAssembly 支持许多语言,包括 C、C++、Rust 等等。²¹ 如果您想了解更多关于 WebAssembly 的信息,请访问 Mozilla Developer Network 的 WebAssembly Concepts 页面²。 支援 Managed-memory languages 如果 WebAssembly 支援 Managed-memory languages,那麼它將能夠支援更多的語言,例如 C#、Java、Python 等等。Managed-memory languages 是一種具有垃圾回收功能的語言,這意味著它們可以自動管理內存,而不需要手動分配和釋放內存。
繼續閱讀