💬 Pofat 的話
ChatGPT 熱度不減(雖然推文多到有點膩),這一週我試著把它融入各種不同類的工作中,歸納了幾點基本使用心得:
不適合詢問有「正確」解答(不管現實或你心中的定見)的題目都有機率得到不正確的資訊,比如問它什麼才是什麼的正確做法,問你無法鑑定真偽的就是賭。
適用於「需要回憶或找出已知訊息」的場景,你知道什麼是正解,但過程繁複的事,比如我請它建個 Cache 它很快可以寫出基本框架,雖有些錯誤需要人工改正但已省下我大量前置作業時間。
適用於「帶來啟發」的場景,它判讀意圖很準確,回覆時可能會塞入相關但未必是順從你思考模式的關鍵詞語,有機會生出火花。
最後也是最實用的,利用它取得文案架構或修改文章(英文),結果非常優秀。我跟某間公司要求賠償已久都未果,一來我不太會吵架,二來非我母語我也寫不出幾句狠話,最後我把原由、訴求、回覆時限和不回的話法院見等列入草稿,請它幫我改寫成一封震怒但不粗魯的信,當天就收到對方答應的回覆了啊...
🌎 On Swift Community
The Future of Foundation
本週的 Server-Side Swift Conference宣佈了大消息,Apple 將用 Swift 統一實作跨平台的新 Foundation,而且開源,今年 WWDC 宣佈 SwiftOverlay 整入 Foundation 裡可能就是先行部署,畢竟以 Swift 全面實作是 Apple 重要的行銷策略,現在終於可以正式擁抱系統級元件。
新的實作將省去現在的中間層物件,直接以 Swift 與 C 互動, CoreFoundation 可能也會在這個新框架的推展下慢慢凋零。架構上也將被切分成數個 Swift Package 進行,因此可以更有彈性控制 binary 大小。不過並不是所有既有型別都會被移植到新框架裡,目前比較多疑問的是 Lock
、Port
和 Stream
等預計要被 structured concurrency 取代的部分。
Apple 宣佈將可對 iCloud 資料做端對端加密
有三樣新功能:
iMessage Contact Key Verification: 使用者可以確保通訊對象為自己預期中的對象,不明裝置加入後會有警告。
Security Keys:可以用第三方裝置做為二階段認證的方式,比如 YubiKey。
Advanced Data Protection for iCloud:iCloud 內的相片,筆記與備份將可以加密,而只有信任的裝置可以解密。
以上三樣都將在 2023 年釋出。
M1/M2 Macbook 開啟 AirDrop 有機會讓 WiFi 爛掉
M1/M2 使用 AWDL 做為 AirDrop 與 AirPlay 的介面,但在 M1/M2 Macbook 上開啟它目前有機率重設連線,在修復推出前的 workaround 似乎也只有關掉 AirDrop 或藍芽一途。文中還有提供 script 的做法,但每秒都要去檢查並關閉 AWDL 介面,這做法我感覺不太好。
🗣️ On Swift Forum
SE-0380: if
and switch
expressions [Reviewing]
這個提案讓我們可以直接把 if 和 switch 當做 expression 用來初始化變數,以前需要把它包在一個 closure 裡,現在則免,例如:
@noncopyable structs and enums
這個提案讓 Swift 總算能做到直接限制基本值語義類型的單一所有權,也就是你的值語義類型不會發生大家熟悉的 copy-on-write ,而是真的把整個實例丟給對方使用,如同所有權的楷模 Rust。
如果 Swift 有 Header file
波報#20有提到的提案開始了早期 Pitch,幫大家複習一下這裡是可以僅用 ObjC 的宣告 header,背後用 Swift extension 去實作,支援漸進式替換 ObjC 實作,同時也讓 ObjC 的開發者不再受限於 Swift 特別的模式(比如有一個自動生成的 header,也不是隨時隨地可以查看)。
Pitch: @globalConstructor
冠上 @globalConstructor
的函式可以在 binary 一執行時就啟動,這是 C 與 Cpp 都有的功能,只是這種功能一來容易長大(依賴增加),然後又在一開始啟用,開發者常會覺得我做的事全世界第一重要,然後不自覺地讓它持續肥大,最後演變成問題。這幾點也是 Swift 一直盡能做 lazy init 的顧慮,這些顧慮是這提案必須納入考量的。
Why is Task
a struct
when it acts so much more like a reference type?
這篇討論很不錯,struct 就不能行為上像個 reference type 嗎?其實很多時候 struct 只是 reference type 的 wrapper,Apple 自己也很常這樣做,比如 SwiftUI 的 @State,別被「值語義」限制了這些思考。
🤪 Pofat 選推
LLDB 現在有 plugin 可以請 OpenAI 解釋 frame 正在幹嘛,雖然有時要試個兩三次才會成功,但這個實在太酷!
可以串流 Xcode 進行協作的 app,有 100 小時的免費額度。
最後本期週報誤點是因為我這下了大雪,家裡老闆和我兩個熱帶子民跑去玩雪,和大家分享一下路上雪人: