落格博客 AWS 上雲踩坑記

落格博客最早是運行在虛擬主機上的,只能通過面板操作,也沒什麼權限,使用起來非常彆扭。再加上反正弄了服務器跑翻牆代理服務,那乾脆就將博客搬遷到了 VPS 上。因此也就開始了我的 vps 折騰之旅。一轉眼十年過去了,我後來也固定在 Vultr 的 VPS 上跑了 4 年。當然,這中間很多事情發生了,我做了 cnswift, 做了落格輸入法,還有落格輸入法的 macOS 版本……於是這個 20美元一個月[……]

點擊跳轉以繼續閱讀

包 xxx 在 Raspberry Pi 上沒有安裝候選

當新刷好的樹莓派鏡像啟用時,你有可能會遇到奇怪的 apt 錯誤:

當然,不止這一個,安裝任何包都會是 包裹 XXX 沒有 安裝 候選人

解決辦法

首先查看你的 /等等/易於/來源.名單 ,看看裡邊的源地址是不是都被註釋掉了,這裡我的是正常的。[……]

點擊跳轉以繼續閱讀

使用 AWS S3 運行靜態網站 啟用 https

docs.logcg.com 的網站測速

落格輸入法的使用說明書是一個用 Gitbook 編譯的靜態站,之前一直部署在 netlify 上,可惜現在他家也逐漸被牆……我只好把這個靜態站搬到落格博客的服務器上。現在我打算整個遷移,於是思前想後,索性把這個靜態站單獨丟到 aws 容器裡算了,剛好最近工作和學習都在用 aws,我對它比較熟悉。

要在 aws 運行靜態站,首先我們來規劃一下拓撲,大概是這樣的:

GitHub → S3 容器[……]

點擊跳轉以繼續閱讀

iOS 平台第三方輸入法的生命週期到底是怎樣的?

我們剛剛討論了 macOS 平台第三方輸入法的生命週期到底是怎樣的?,現在趁熱再來聊聊 iOS 平台的第三方鍵盤生命週期

在蘋果官網,也就只有個這:

這看起來似乎很容易理解,鍵盤的生命週期是系統管理的,每次用戶呼出鍵盤,就它就啟動,用戶收起鍵盤,過一會它就被消滅了。

但有了前文對 macOS 輸入法框架的生命週期的經驗,我們再來看 iOS,真的是這樣嗎?在蘋果開發者文檔[……]

點擊跳轉以繼續閱讀

macOS 平台第三方輸入法的生命週期到底是怎樣的?

一轉眼落格輸入法都已經做到第三代了,令人驚訝的是我似乎從來沒有認真的思考過題目中的這個問題。一直以來我先入為主的認為 MACOSiOS版 一樣就是為每個輸入框創建一個輸入法實例,而第三方輸入法的 Controller,全局只有一個,由系統負責 XPC 調用。

後來儘管我發現 Controller 不會在輸入框失去焦點後立即銷毀,但我依舊認為系統會為每個輸入框獲得焦點時生成全新的 Cont[……]

點擊跳轉以繼續閱讀

落格輸入法是如何進行全拼拼音拆分的

在5年前,在5年前基於動態規劃的整句輸入法的文章,在5年前,在5年前,在5年前,在5年前。在5年前,在5年前

在5年前,在5年前,才發現原來拼音分詞,甚至比中文字分詞還要難。

甚至比中文字分詞還要難,甚至比中文字分詞還要難,甚至比中文字分詞還要難,甚至比中文字分詞還要難[……]

點擊跳轉以繼續閱讀

macOS M1 Pro 安裝 h5py

安裝 h5py 失敗

安裝 TensorFlow 時,遇到一個依賴 h5py,這個包無論如何無法成功安裝,報錯無任何可用信息:

這就很難辦了,查看日誌發現原來是沒有針對 m1 的二進制包,自動進行編譯了。但編譯報錯說找不到頭文件:

於是使用 brew 安裝缺少的庫,搜索之下,還真有[……]

點擊跳轉以繼續閱讀

刪除不受支持的 System Extension macOS M1

直接使用系統信息工具查看當前系統中的插件

最近一直在安裝驅動時有彈窗,說某某系統插件不被支持了,無法加載。但一直苦於沒找到具體插件路徑而無法刪除掉,其實這些插件我本身也不再使用,甚至當初安裝插件的app早都已經刪除。今天實在是受不了了,警告彈窗一下出來十多個,決定處理一下。

蘋果已經在最近的幾個系統中更新了插件的開發結構,現在新的app,比如防火牆軟件,都會將系統插件內置在 .app 包中,這樣你在安裝和啟動 app 時,系統就會自[……]

點擊跳轉以繼續閱讀

製作 macOS 全新安裝啟動盤

之前 Mac 啟動組合鍵大全 恢復模式 recovery mode 中提到了聯網恢復的問題,實際上最終我無法成功使用聯網恢復,原因是我的硬盤是 NVMe 的,但我手頭已經沒有原裝的硬盤可以使用,於是我無法通過降級再升級的方式將主板固件更新,這就導致最新的恢復模式用不了,舊的恢復模式不識別硬盤。

為此,我需要做一個剛好不那麼新,但又足夠新到支持 NVMe 的安裝盤,畢竟,要安裝系統,總要先進到[……]

點擊跳轉以繼續閱讀

Mac 啟動組合鍵大全 恢復模式 recovery mode

最近升級了新款的 MacBook Pro,已經在用 m1 pro 芯片了。 不過,舊款的 2015 年老筆記本我也不打算把它賣掉了,畢竟我買的時候是二手,如今電池也換過兩塊了,硬盤也是自己加了轉換頭換了 NVMe 。把它裝個 Windows 專門打一打遊戲也是很不錯的。

但在進入恢復模式時遇到了問題,M1 芯片的設備已經大大簡化了這個操作需求,只要一直按著開機鍵,就會彈出全部啟動選項,不再需[……]

點擊跳轉以繼續閱讀

macOS application 的三種運行模式

平時,你不會遇到這個問題,直到你需要寫一個後台程序……

我們都知道 macOS 有一個全局的 Dock,這個東西上會顯示所有正在運行的程序,但如果你的程序是一個菜單欄小程序,或者是一個……輸入法,那你肯定不想讓這個 app 的圖標顯示的 Dock 上,因為這類 app 是要持續在後台運行的。

這時候我們就可以在 Info.plist 中寫 [crayon-69093e505ec0663[……]

點擊跳轉以繼續閱讀

升級 macOS Monterey 後設備休眠半夜頻繁喚醒問題

最近更新到了 macOS Monterey, 半夜總會被屏幕照醒,就覺得很詭異,以前也有過,但都是有通知的時候才會點亮屏幕,現在是沒有任何理由的自己點亮,硬件還是那個硬件,那就應該是軟件的鍋了。

在網上查了一圈,先是找到了蘋果官方的教程:HTTPS://support.apple.com/zh-cn/guide/mac-help/mchlp2995/mac

寫的很詳細,但顯然是沒有任何[……]

點擊跳轉以繼續閱讀

更新 Ruby 後 gem install 找不到 binary

我一直是用 rbenv 的,直到這次更新了 cocoapods 後,執行報錯了,當然,目測應該是我的 ruby 環境太舊導致的,於是我嘗試 環境 安裝 3.0.2 ,但很遺憾,報錯了,去 rbenv 的官方倉庫看了看,上一個版本還是 2019年……好吧,放棄它,刪掉所有的版本後,我發現其實我一直用 brew 裝了最新版的 ruby,就直接用起來了。[……]

點擊跳轉以繼續閱讀

避免網站被惡意域名劫持

落格博客的服務器拒絕了該網站的內嵌

今天無意間發現了一批網站,如 http://b6x.net/ 現在你點開這個網站會顯示“www.logcg.com 拒絕連接。”,當我第一次點開的時候我驚呆了……他竟然抄了我整個網站? !

這是一系列三位數域名網站,都是類似的操作。

等等,我發現了一點不對勁,首先這個網站外邊有我博客本身並沒有的白框……也就是說,這可能是個反代(反向代理)。

如果你還[……]

點擊跳轉以繼續閱讀

zsh 啟用 bash * 星號通配符功能

最近發現服務器每次 apt upgrade 都非常慢,究其原因,還是一大堆不用的內核每次都要重新生成,清理的時候遇到一個問題,*號匹配不生效,每次都必須手動輸入完整的內核名稱才能將其卸載。

一通踩坑後發現,原來是因為我用了 zsh,而 zsh的 默認是不支持 * 號通配的!要開啟這個功能也很簡單,找到你的 zsh 配置文件 我們 /.zshrc [……]

點擊跳轉以繼續閱讀

為 UIKit 開啟 Xcode Live Preview

使用 SwiftUI 的一大收益就是可以像 Flutter 那樣對 App 進行熱更新,改動了UI的代碼,會直接反映在模擬器或者是真機中,大大提升了編寫用戶界面的效率,不用改1px,運行,各種點擊,然後查看效果的循環往復。但現在使用 SwiftUI 還為時過早,畢竟還是有大量 iOS 12 設備在運行,想要做大眾軟件,那還是要支持的。

那麼,有沒有辦法能讓 UIKit 編寫的軟件也能用上實時[……]

點擊跳轉以繼續閱讀

macOS 運行和訓練 Moses

Moses 官網其實是有 macOS 二進制包的,你不需要從源代碼編譯它們。但總之,由於 Moses 開發者已經不再用 Mac,所以他沒辦法更新,這導致了目前最新版(4.0)的代碼中有一個bug,使得二進製文件不能直接使用,作者說“反正從源碼編譯也不是很難……”但總之,從 BigSur 上編譯 Moses 已經幾乎是不可能的了,各種奇怪的報錯,令人頭疼。

其實,我們是可以直接修正二進製文件中[……]

點擊跳轉以繼續閱讀