快速更新 Python 包

Python 是個好東西,好多時候我們喜歡用它來寫一些小東西……比如我服務器上的很多服務都是用 Python 寫的( 使用 Supervisor 將你的 Python 程序變成服務 ),日積月累之下,竟然用到了很多依賴包。

可是,這些 Python 的依賴包並不會隨著你的 易於 升級 進行更新,許久之後的今天,我發現某個我正在用的包[……]

點擊跳轉以繼續閱讀

Cocoa Binding 實用教程

首先說這不是一個新技術,它很老,老到幾乎沒人提起它。

這是蘋果 MVC 模式下的產物,最早在沒有 iPhone 的時候就已經誕生了,它是用來配合 Xcode 圖形化設置界面用的——比如 NIB,當然,現在已經變成 XIB了,哦,還有 Storyboard。

現在如果說起要 bind 一個 Storyboard 中的對像到代碼中,你可能查到的都是這樣的:

在左側欄點擊鼠標右鍵打開小窗口[……]

點擊跳轉以繼續閱讀

Xcode 插件丟失不顯示的解決辦法

在系統偏好設置中,Xcode 擴展插件不顯示了

在之前的一篇文章中我為大家介紹了一個同時安裝多個版本 Xcode中 的工具使用 xcode-install 來管理 Xcode 版本但當你的系統中同時存在多個 Xcode 時,就會導致系統困惑,讓 Xcode 的插件無法被識別,主要的體現就是系統偏好設置中根本看不到 Xcode 插件的選項——就好像你完全沒安裝過它們一樣。

總之,我在這裡找到了答案

首先執行命令:
[crayo[……]

點擊跳轉以繼續閱讀

在 macOS 上無驅動使用第三方鼠標

啟用對羅技鼠標的管理

眾所周知,macOS 對第三方鼠標挑剔的很,如果是普通的辦公鼠標,那幾乎還能湊合用,固定的 DPI 頂多就是需要調調鼠標速度罷了,但如果上升到按鍵多一些的遊戲鼠標,就有很多問題了。

不一定是用來打遊戲,比如帶有前進後退按鈕的鼠標在寫代碼時非常實用。

一般來說,名廠大牌的鼠標會對 macOS 支持較好,主要是因為大廠有精力為 macOS 做鼠標驅動,如果一個鼠標原生就只有 Windows 驅動,[……]

點擊跳轉以繼續閱讀

使用 xcodebuild 來 archive 並導出 app

之前我曾寫過一篇文章macOS app 實現自動化 notarize 腳本,但並沒有提到使用代碼自動編譯並生成 App 的腳本,畢竟這一步有好多工具可以完成,比如說 fastlane。

我由於在 notarize 之前也沒想過做自動化,而在寫那篇文章的時候 fastlane 還沒有支持 notarized 上傳,於是我就自己寫了,具體的編譯命令是這樣的:
[crayon-66289a758[……]

點擊跳轉以繼續閱讀

/usr/libexec/lsd 佔用 100% CPU 的解決辦法

最近忽然發現磁盤存在大量寫入,打開任務管理器一看,發現一個叫做“lsd”的進程持續佔用 20% – 40% 中央處理器,很奇怪。

經過一番查詢,得知這個進程是 macOS 和 iOS 上的系統進程,全名叫做“Launch Service Daemon”,負責所有 App 文件類型關聯和啟動。但它的數據庫有時候會損壞,這就導致它頻繁讀取和驗證某些數據。

一旦它的數據庫損壞,你就會遇到 lsd[……]

點擊跳轉以繼續閱讀

使用 xcode-install 來管理 Xcode 版本

我們都知道,在使用 Python 的時候有 pyenv,使用 ruby​​ 的話有 rbenv,都能方便地控制和管理編程語言環境的版本,那麼,有沒有什麼方法,能讓 Xcode 也像這樣切換版本呢?

每次 Xcode 發布更新,更還是不更成了一個問題,下載難,還不能斷點續傳,又不能用第三方工具下載,真的是非常要命……就更別提多個版本時候的兼容問題了。

使用 xcode安裝,一次性[……]

點擊跳轉以繼續閱讀

clang: 警告: libstdc ++已棄用; 遷移到具有OS X最低部署目標的libc ++ 10.9

平時,你會在安裝某個 Python 包時遇到這個錯誤,這個包肯定是一個包含了 C++ 代碼的包。

這是由於 macOS 更新後出現的不兼容,一般來說,這個包的維護者應該已經對這個特殊情況做出了兼容:

這樣在 macOS 上就可以順利編譯通過了。

但如果你使用的是 PyPy,那可能即使維護者包含了這句話,你也無法成功安[……]

點擊跳轉以繼續閱讀

Python 實時檢測自身內存佔用

最近在做文本統計,用 Python 實現,遇到了一個比較有意思的難題——如何保存統計結果。

直接寫入內存實在是放不下,十幾個小時後內存耗盡,程序被迫關閉。如果直接寫入數據庫吧,每次寫入又太慢了,本來就十幾個小時了,這樣下去就要往星期上數了,也不是個辦法。

最後,我想到了一個兩者兼顧的方案——用內存做緩衝,達到一定量之後一次性將當前所有數據合併到硬盤裡。

但這樣就有一個閾值,如何確[……]

點擊跳轉以繼續閱讀