使用 Supervisor 將你的 Python 程序變成服務

不少朋友都是用 Flask 框架來寫小服務器的,方便又快捷,還能一鍵運行,很舒服。不過,如果你真的想把你的服務部署到服務器上,那你就會發現其實還有一些功課要做,這篇文章裡,我們主要來談談如何將寫好的程序在服務器上變成一個服務而不是終端裡執行的命令。

如果我們用 Python 寫了一個網站應用,那麼它就需要一直運行來監聽 HTTP 請求,如果在終端直接執行
[crayon-6908c5d96[……]

點擊跳轉以繼續閱讀

macOS app 自動化上傳發佈到 AppCenter

之前我曾經寫過macOS app 實現自動化 notarize 腳本,由於我的輸入法使用微軟的 HockeyApp 進行崩潰統計,所以我還需要把 app 上傳到這裡進行一次“發布”,好讓 HockeyApp 能夠收到對應版本的錯誤統計。

如今,微軟的 HockeyApp 已經更新成了 AppCenter,自動化命令也十分友好,其實這個操作也可以加入到你的自動化腳本里邊,一步到位。

點擊跳轉以繼續閱讀

在 macOS 上編譯 Tensorflow 以開啟 AVX2 和 FMA

在使用 Tensorflow 時,一直有一個奇怪的警告: 您的 中央處理器 支持 說明 這個 TensorFlow 二進制 編譯 使用: AVX2 FMA ,雖然不影響使用,但看著很煩,你可以用這個命令關閉它: .關於['tf_cpp_min_log_level'] = '2'

不過,你有註意到嗎? “ 可以 速度 向上 中央處理器 計算”……嗯?!

背景

總之,根據官方所述,十[……]

點擊跳轉以繼續閱讀

正確使用 PIP 安裝 Python 包 避免 TypeError: “模塊’ 對象是不可調用

在此之前,我一直是這樣在 macOS 上安裝和使用 pip 的:

後來,這個方法失效了,變成了這樣:

終於有一天,pip 提示我它需要更新,於是:

查詢後,發現原來 Python 是要這樣安[……]

點擊跳轉以繼續閱讀

WordPress 正文自動添加版權和原文鏈接

這幾日博客文章又被別人拿去抓取了,雖然後來聯繫站長溝通解決,不過我還是要反思一下自己,文章正文中沒有添加本文鏈接,導致即使被人抓取也無法拿到pingback……

插件法

總之,搜索了一通,似乎以前有一個插件可以一步到位(我恰好是那種喜歡一大堆插件的人),叫“Add Post URL”,不過這個插件已經下架了。

這個辦法行不通,只好嘗試代碼級修改了:

改正文模板法

這個辦法要求你的主題[……]

點擊跳轉以繼續閱讀

使用 ClamAV 和 Linux Malware Detection (LMD) 保護你的服務器

使用 CalmAV 掃描 /home

本文原創於落格博客,點擊查看原文

 

平時,說起病毒木馬,人們可能都會想起 Windows,實際上只要是操作系統,就會有漏洞,那麼只要這個操作系統有人用,那就一定會有人利用這個漏洞來開發惡意軟件(比如說病毒木馬)。總之,由於 Windows 操作系統的用戶遠遠大於 macOS 和各種類 Unix,於是很多人就覺得後者甚至是對病毒免疫的。

實際上並不是,雖然 Linux[……]

點擊跳轉以繼續閱讀

落格輸入法 macOS 2 是如何實現免重啟激活輸入法的

在 macOS 上,安裝輸入法一直是一個噩夢,要打開系統輸入法目錄,要把輸入法拖拽進這個目錄,過程中還要輸入密碼,全手動也就罷了,還得重啟後系統才能識別,真的是讓人頭疼的不行。

後來大家逐漸意識到這個問題,落格輸入法也提供了 macOS 標準的 pkg 安裝包。

說是這麼說,但實際上似乎還是有辦法讓系統自動加載輸入法的,比如搜狗就做到了免重啟,安裝後不光不需要重啟系統就能識別,甚至安裝[……]

點擊跳轉以繼續閱讀

使用 Mailgun 創建你的免費域名郵箱

這篇文章現在已經失效了,因為 Mailgun 不再提供免費額度,且把文中使用的必要功能“收件路由”設置為了高級用戶功能不再免費提供,我換了另一家網站來實現域名郵箱,見:當 Mailgun 不再免費,你如何安置你的域名郵箱?

創建一個網站很容易,但要有一個和自己域名關聯的郵箱地址 域名郵箱,似乎比較麻煩。對於中國站長來說,“QQ 域名郵箱” 似乎是唯一的選擇,當然如果付費使用,那麼使用[……]

點擊跳轉以繼續閱讀

為何我的 Fastlane 上傳那麼慢?

自動化

使用自動化工具處理 iOS 的 試飛 分發,是一件很愜意的事情,它能幫你節省很多時間,減少大量人工干預——尤其是像這種需要等很久才需要人工操作一下的事情,雖然並不會讓你覺得很累,但大量的時間就這樣浪費掉了。

使用 快車道 一鍵編譯、上傳,然後等待蘋果服務器處理完成,全自動發布 試飛,本來是一個很棒的操作,但由於網絡環境的變化,我的 fast[……]

點擊跳轉以繼續閱讀

macOS app 實現自動化 notarize 腳本

根據蘋果官方的說明,自 macOS 10.15 起,所有從互聯網下載的未進行 notarize 的 app,默認將無法被打開,所以在 App Store 外分發的 app,也必須在發布前將 app 上傳到蘋果的服務器進行處理。

使用 Xcode 自帶 archive 工具可以很方便地進行 notarize,但這個操作無法實現自動化處理,為了方便分發,我將 落格輸入法 macOS 2 的分發流[……]

點擊跳轉以繼續閱讀

禁用 Android File Transfer 自動啟動

Android File Transfer 是個好東西,可以在 macOS 中方便地給安卓手機傳輸文件等等,但有一點不好就是這東西會在後台駐留進程來監控usb插入,讓人很不爽。

尤其是在插入 Android 設備時,自動彈出窗口,還連接失敗(因為你來不及在手機上點授權),十分討厭。

要禁用自動啟動,首先打開 活動管理器,在裡邊搜索 Android File Transfer Agent[……]

點擊跳轉以繼續閱讀

從 cns11643 中文標準全字庫生成倉頡和速成官方碼表

一直以來,我對倉頡速成這對難兄難弟是很有意見的……網上流傳的碼表版本繁多,但名字都叫“倉頡”,和五筆對比起來,好歹五筆還分個 86 和 98,再新一點還有 新世紀 等等,但倉頡沒有,不論什麼版本的倉頡,都叫“倉頡”。

這就很尷尬,每個人用的倉頡碼表都不一樣,但不一樣在哪裡,他自己也不知道。

總之, 全字庫(cns11643) 提供了一種官方的通用的中文編碼,本來這個東西是用來彌補 utf8[……]

點擊跳轉以繼續閱讀

落格輸入法是如何處理按鍵消息的

要做一款移動設備上的軟鍵盤,那麼怎麼處理用戶的點擊位置,就是你遇到的第一個難題,在這個問題上,我也走了很長的路。

我把落格輸入法開發以來的觸控邏輯大致分類為三個階段,現在分別來講講設計思路,希望能夠對你有所幫助。

第一代觸控引擎

顯然,對於一個初學者來說,沒什麼比系統控件更好用的了,功能全,速度也不慢,業務邏輯完善,所以,落格輸入法的第一代消息處理就是用的[crayon-6908c5d9[……]

點擊跳轉以繼續閱讀

DF-dferh-01 中國區 Android 安裝 Google Play Store 後報錯 的 解決辦法

在使用 Android 設備時,如果你購買的是一台中國區單獨發行的定製版本 Android 設備,那麼很有可能你的設備中並不內置谷歌套件,比如 Play Store。

這時候我們就需要自己安裝它,安裝的辦法有很多,這裡不再贅述。總之,一但你安裝好,就會發現,即使開了代理,Play Store 也有可能在登錄後無法正常加載內容(登錄是正常的)。

此時會顯示錯誤:DF-dferh-01[……]

點擊跳轉以繼續閱讀

Ubuntu 超快部署 wireguard 服務端

新出的 Wireguard 很多人都想嘗試,這裡 VPN 到底適不適合用來翻牆我們先不討論,先來看看怎麼快速在 vps 上起一個 wireguard 服務。很多人聽說這個服務配置起來特別複雜,所以望而卻步,實際上很簡單。

環境

這裡我用最新的 ubuntu 18.04.2 來配置,首先你得有一個 vps,創建好後最好按照我的 購買了VPS之後你應該做足的安全措施裡配置ssh的證書訪問。

安裝[……]

點擊跳轉以繼續閱讀

讓 iOS macOS 中文字體實現視覺垂直居中

在開發落格輸入法 macOS 的時候,我遇到了一個比較奇葩的問題,這個問題一直困擾我到現在——當有些地方需要垂直居中顯示一排文字的時候,如何讓這些字真正的“居中”?

 

乍看之下這似乎沒什麼道理,垂直居中嘛……等等,macOS 上的 的NSTextField 還真沒有辦法讓你的一行文字垂直居中……🤷‍♂️

第一代方案

後來,我[……]

點擊跳轉以繼續閱讀

iOS 獨立開發:管理你的兌換碼

作為 iOS 開發者的你,肯定是知道 Promo codes 這個東西的,也就是我們常說的兌換碼。(當然,作為 iOS 用戶興許你也對此不陌生)

這次,我們就來看看,這個看似無窮無盡的兌換碼,到底有哪些限制。

有效期

蘋果後台生成的兌換碼有效期一直是一個謎,雖然官方的說法的 4 週,也就是 28 天,但實際上如果這期間你的 app 更新了,那麼兌換碼很可能就會失效[1]。

&國家統計局[……]

點擊跳轉以繼續閱讀

Swift 裡的數組去重方案

在使用 Swift 進行開發落格輸入法時,我遇到了一個很有意思的問題——去重

眾所周知,輸入法的候選在計算出來後總會有可能是重複的選項(比如碼表和詞庫中都有某個詞,也許他們編碼不同,但字是一樣的之類),這時候就需要去重,但又要保持候選的先後順序不變。

別人的解決方案

如果你去網上找,那麼你可能找到的是這樣的:

來源:[……]

點擊跳轉以繼續閱讀