#Mac #軟體 威注音 v2.8.5:比原廠注音更智慧、比競品更好看的注音輸入法

原文撰於 Dcard。 Abstract 「威注音」是一款主打智慧 🤖、美觀 🎨、高自訂性 🔧,且追求完美  的注音輸入法。正在為錯字百出的選字、操作習慣、簡體輸入,甚至是原廠注音遲遲不修正的 bug 所苦嗎?威注音或許可以讓你對注音打字改觀 🥳。 威注音自己覺得有八個值得你使用的理由(建議搭配宣傳海報閱讀): 最佳化打字體驗 ⌨️ 還再打出錯字擺出的句子,成為朋友對話之間的笑柄、公司討論之間的尷尬嗎 😅?或許你可以試試看威注音輸入法。 威注音輸入法的詞庫收錄了三千餘條(且持續增加中的)常用詞組,因此輸入常用詞彙時可以減少選字的次數 🙌🏼。 目前威注音的詞庫仍在持續更新、拓展,因此威注音將會變得愈來愈智慧。如果你有任何想納入官方詞庫的常用字彙,也可以在這篇底下(或到 GitHub 下)留言提議加入~ 可以自訂語彙 💬 覺得每次輸入自己或朋友的名字,或者是科系名稱都得選字很煩嗎?威注音提供了一套非常簡單的自訂詞彙新增方式,簡而言之就是「選字後選取,按 Return 存檔。」可以看看下方影片的操作: 原生繁簡輸入、零轉換 蘋果內建的輸入法「不支援簡體輸出模式」——想像每次跟對岸朋友洽談事情,每一句都得使用特色選單裡面的簡體轉換功能轉換 😱……就算你不煩,觸控板應該也挺累的 😰。 威注音除了提供原生的簡體輸出模式,輸出簡體只要切換輸入法即可一步到位之外,威注音的詞庫也是簡體中文與繁體中文各自一份的:方便簡體中文母語者「在不熟悉台澎金馬的審音與習慣讀音的前提下」也可以順利使用威注音敲字。 P.S.: 威注音的繁體中文輸入模式可以使用「轉換至康熙繁體」「轉換至 JIS 繁體」功能。 精緻選字窗(框) 我覺得這是威注音和其他競品比較下的最直觀第一感受了。當其他競品的選字窗還停留在 Windows XP 的土裡土氣、甚至沒有暗色模式的時候;威注音的選字窗已經和蘋果原生相當相似,甚至可以啟用「IMK 選字窗」來得到和原生注音同款的介面效果 🧑‍🎨。 IMK 選字窗可以在威注音的「開發道場」開啟。不過威注音自己做的田所矩陣選字框,我覺得已經很接近蘋果的 UI 效果了。 極高自訂、可玩性 你想用 Shift 切換中英文嗎?預設開啟 🎉;你只想用「中/英」切換鍵切換語言嗎?也可以關閉 Shift 的切換。 你想要輸入罕見到原廠注音打不出來的字嗎?威注音可以讓你啟用「CNS11643 全字庫」,在安裝正確字體後即可直接打出符合政府編碼標準的罕見字 🎉。 覺得選字窗的候選字太小,看不清楚嗎?威注音支援把選字窗文字放到原先 6 倍大 (96px) 的大小 🎉。 ...

October 2, 2022 · pan93412

The comparison of Linter and Formatter

Motivation src: https://twitter.com/bystartw/status/1568217424658583553?s=61&t=UVzhpuQaGcgZkGpySz_yVQ Noticing some developers are confused with “Linter” and “Formatter,” I made a simple figure showing what messages Linter and Formatter prefer to print. Thanks to @nonoesp for his incisive introduction to Linter and Formatter!

September 9, 2022 · pan93412

vChewing 出了 2.4.0 SP2 了!

src: https://twitter.com/bystartw/status/1567200310430662656?s=61&t=UVzhpuQaGcgZkGpySz_yVQ vChewing 出了 2.4.0 SP2 了!🎉 自己覺得 vChewing 是除了官方注音之外,長得最好看(因為有 IMK 加持),而且功能跟選字功能也很棒的輸入法,真的很推薦想嘗試第三方輸入法的朋友試試看!(連結見引文) Figure 1: vChewing 提交很活躍! 資安疑慮 另外關於 vChewing (下稱 vC) 的資安或隱私疑慮: vC 在 2.3.0 之後引入 Apple 官方的沙盒機制,因此只要你沒有授予授權,輸入法本身是看不到你的資料夾的。 雖然我沒有完全閱讀 vC 的 src,但至少它的 Shift 是靠旁敲的方式偵測的,不是記錄所有鍵盤輸入 vC 只有更新和網站相關有連到個人站台 稽核方式 如果有興趣稽核 vChewing 外連的情況,可以自己 clone 回來用 regex 查,或者是直接用這個第三方網站看: sourcegraph ** 如果還是信不過(認為作者會混淆連結)的話,也可以自己掛一個抓包軟體偵測 vC 的所有請求啦…… 雖然我是找不到除了更新以外的請求 code:sourcegraph

September 7, 2022 · pan93412

善用 Swift 的字串擷取功能簡化 I18n 流程

撰文原由 在 威注音 2.1.0 SP1 的更新日誌 下看到了這麼一段話: Interface Builder 給每個標籤的命名都是隨機的,手動改起來又低效又容易改壞,對多語言本地化而言簡直是天災。 事實上在 WWDC21 中,Apple 就為 Xcode 推出了一項可以解決這項痛點的新功能:「使用編譯器擷取字串」。與早期透過從 Swift 原始碼拉取可翻譯字串,經常漏掉一些字串的方式不同——這個功能會先編譯原始碼,然後從編譯出的檔案中判斷可以翻譯的字串。 啟用功能 這項功能在新專案是預設啟用的,但舊專案可以 opt-in:點開專案設定,進入 “Build Settings”,展開所有功能(All),尋找 “Swift” 然後找到 Localization 的 “Use Compiler to Extract Swift Strings”,將其設定為 Yes 即可。 匯出字串 開啟之後的國際化與本地化方式,跟先前會不太一樣。以往需要手動改 strings 檔案,現在可以先到 “Product” > “Export Localization…” 匯出編譯器擷取出的所有字串: 接下來指定匯出的路徑,然後等待 Swift 完成編譯並擷取字串。若是從舊專案 opt-in,擷取字串的過程中可能會拋出一些錯誤,這個時候就得修正(如果只是警告的話也可以忽略): 翻譯流程 接下來就可以進入選擇好的資料夾,使用 Xcode 點開對應語系的 xcloc 檔案: ...

August 27, 2022 · pan93412

Rust for everything

src: https://redd.it/wllpa4 (https://t.me/programmer_humor/38462) low-level programming Rust game development Rust high performance code Rust scientific programming Rust machine learning Rust front-end web development Rust back-end web development Rust You only need ONE languages for everything: Rust. You don’t need more.

August 12, 2022 · pan93412

文科生也能懂的 Rust async 机制

背景 https://twitter.com/repsiace/status/1554103778994900992/ 修改一下:work stealing, thread-per-core, waker, mpsc, task queue 只有他们懂… 正常人不可能看懂 – @twicemoemoe, 22-08-02 作为一个文科生,其实觉得 async 真的没有想象中的这么困难 ⋯⋯ 😂 或许搭配一些图片会好懂很多吧。 TL;DR 不废话版本 Sync(同步):一件事情做完之后,再做下一件事情。 blocking(堵塞):指“等一件事情”的行为。 Async(异步):一件事情还没完成,可以做其他不冲突的事情。 concurrency(并发):程序 架构 中,各个任务可以 独立运行 的特性。 future:Rust 中的一个异步任务的表示。 polling:不停地询问任务,确认事情是否已经完成。 event-driven:事情完成后,任务自己发通知表明完成。 parallelism(并行):同时 运行 数个程序的行为。 thread(线程、线程):系统进程(任务集)的基本单元。thread 通常是交由 CPU 内核运行。 spawn(生成):指产生 thread 的行为。 thread pool(线程池):将 thread 高效分配给每个任务的地方。 Async runtime: 以 tokio 为例 join (macro):并发运行 async 函数,并在全部完成后回传。 select (macro):哪个 async 函数快,回传那个 async 函数的结果。 main (attribute macro):在 main() 初始化 runtime。 block_on:在 sync 上运行 async 函数。 spawn:并行运行 async 函数。 spawn_blocking:在异步函数里面,为一个高耗时且同步 (blocking) 的函数另辟新线程 (thread)。 同步 (Synchronous) 跟异步 (Asynchoronous) “同步”就是整个程序等一件事情完成(blocking,堵塞)。“异步”则是一件事情还没完成,可以做其他不冲突的事情。 ...

August 7, 2022 · pan93412

文組也能懂的 Rust async 機制

背景 https://twitter.com/repsiace/status/1554103778994900992/ 修改一下:work stealing, thread-per-core, waker, mpsc, task queue 只有他们懂… 正常人不可能看懂 – @twicemoemoe, 22-08-02 作為一個文組,其實覺得 async 真的沒有想像中的這麼困難 ⋯⋯ 😂 或許搭配一些圖片會好懂很多吧。 TL;DR 不廢話版本 Sync(同步):一件事情做完之後,再做下一件事情。 blocking(堵塞):指「等一件事情」的行為。 Async(非同步):一件事情還沒完成,可以做其他不衝突的事情。 concurrency(並行、併發):程式 架構 中,各個任務可以 獨立執行 的特性。 future:Rust 中的一個非同步任務的表示。 polling:不停地詢問任務,確認事情是否已經完成。 event-driven:事情完成後,任務自己發通知表明完成。 parallelism(平行):同時 執行 數個程式的行為。 thread(執行緒、線程):系統處理程式(任務集)的基本單元。thread 通常是交由 CPU 核心執行。 spawn(生成):指產生 thread 的行為。 thread pool(執行緒池):將 thread 高效分配給每個任務的地方。 Async runtime: 以 tokio 為例 join (macro):並行執行 async 函數,並在全部完成後回傳。 select (macro):哪個 async 函數快,回傳那個 async 函數的結果。 main (attribute macro):在 main() 初始化 runtime。 block_on:在 sync 上執行 async 函數。 spawn:平行執行 async 函數。 spawn_blocking:在非同步函數裡面,為一個高耗時且同步 (blocking) 的函數另闢新執行緒 (thread)。 同步 (Synchronous) 跟非同步 (Asynchoronous) 「同步」就是整個程式等一件事情完成(blocking,堵塞)。「非同步」則是一件事情還沒完成,可以做其他不衝突的事情。 ...

August 7, 2022 · pan93412

該選名聲未知的科大,還是私立普大?

原問題在「學霸模擬機」。放在 Blog 純粹是為了更大的排版自由。 TL;DR - 核心問題 究竟該走「已經特選上」,但「未知名聲」的科技大學;還是放棄科大,繼續準備個申,走傳統的私立大學? 簡短自我介紹 我目前是普高生,但對程式實作有濃厚的興趣。目前是幾個知名專案的維護者或共同創辦者,能力也在幾間大學的特殊選才中獲得肯定(書審都過)。 因為數學和自然上的短板,我是社會組,且想要走偏資的資管(數學不重,同時可以滿足我程式探索的興趣)。經過深入比較,我投了包含 高雄科技大學 的 智慧商務系 的幾間科技大學,而我最終也上了。 這間科大的優點在哪裡? 根據某學校資料,智慧商務系的前身,是偏資訊的 資訊管理系。我有看過課程大綱,且我對這個科系的課程 頗有興趣。而且身為高雄人,若我讀這間科技大學的話,不僅 學費比較省(國立學費通常比私立來得便宜),而且也可以 省下通勤和在外租房的費用。 那這間科大的缺點是什麼? 其實不全然是這間科大的問題。 這間科大特選通過第二階段的有 8 個人(3 正取 / 5 備取)。然而這 8 個人當中,有 5 個人(62.5%)選擇放棄資格。最近我聽聞剩下 3 個人當中,有一個也想要放棄。雖然我確定最後一個人是因為人生規劃而萌生放棄想法,但這也難免會讓我懷疑:「這科系是不是沒人想讀?」 其實我有認識一位就讀本科系的學長,據他所說:「這個科系比較自由,更適合你發展自己想要的東西」。 我不擅長讀言下之意,雖然我喜歡給予比較多自學空間的學校,但他的意思也有沒有可能是 科系課程有點水? 學測成績,及落點可上的大學 我的學測成績如下:(# = 未考) 國 英 數 A 數 B 社 自 12 12 3 8 14 # 此外英聽 B、APCS 觀念 3 實作 2。使用 https://www.com.tw 進行落點分析,國立和私立的大致情況如下: 國立:[地名大學] 如屏東大學、臺北大學 私立:[傳統大學] 如淡江大學、輔仁大學 別人的想法是什麼? 我問過其中一位老師,他覺得出外縣市(即便是私立大學)比較能拓展視野,也能獲得比較多的資源。 ...

March 7, 2022 · pan93412

Rust 的 crate/super/self 關係

假設 rust_hello_world 的目錄架構長這樣:(範例源自於我手邊的某個 production 專案) rust_hello_world Cargo.toml src cli opt.rs lib.rs cli.rs logger.rs 「crate」概括來說就是一個專案,用 Cargo.toml 區分。每個 mod 都是一個層級,super 就是上個層級,self 就是本層級。上面的圖已經把 crate / super / self 的對應關係寫得很清楚了,以下寫範例: cli::opt::Opt 想要讀取 LoggingLevel,路徑可以這樣走: super::super::logger::LoggerLevel crate::logger::LoggerLevel cli::opt::Opt 想要讀取 PROG_NAME,路徑可以這樣走: super::PROG_NAME crate::cli::PROG_NAME 事實上 Rust 的模組關係也沒這麼複雜。把上面的例子變成目錄: [crate] / [mod] cli/ [mod] opt/ [struct] Opt.txt [const &str] PROG_NAME.txt [[pub] mod] logger/ [[pub] enum] LoggingLevel.txt super 等價於 ..,self 等價於 .,而 crate 則類似 /。

October 13, 2021 · pan93412

為何退租 VPS。

是時候退租自己的 Contabo VPS 了。這台主機陪了我 7 個月,陪伴我寫了非常多篇文章,要跟它分離,著實不捨。 然而,我思考了很久,除了放部落格和一些很沒必要的服務之外,我真想不到這筆支出的必要性。很多東西都可以用免費的服務代替,真的沒有必要為了這幾個服務和所謂的情感,每三個月花 500 多續租下去。 這讓我想到「極簡主義」——斷捨離造就乾淨,依依不捨只會佔據空間。我的主機不也一樣——為什麼要因為情感而租沒必要的東西呢?依依不捨也難道不是徒增支出的浪費和主機商資源的浪費? 支出這種東西,理性大於感性會比較好。退租吧。

May 4, 2021 · pan93412