少有人走的路:獨立開發者該如何尋找資源

這一篇其實兩個月前就應該寫了,不過有一些事情拖延於是就到了現在。前幾天和朋友討論到獨立開發的“小眾”的概念,我覺得有必要再細緻的定義一下。究竟獨立開發者要做的這個小眾是什麼,所謂的細分市場,究竟又該怎麼細分。

心靈小眾

一說到小眾和細分,可能很多人的第一印像是那些無人問津的東西比如學校裡一小撮學生的小需求,或者是律師在工作上的一些需求……這裡我們回顧一下細分市場:獨立開發者該如何確定開發項目中[……]

點擊跳轉以繼續閱讀

letsencrypt 工具改名 certbot

今天落格博客的證書到期了,之前我有寫過如何用 letsencrypt 來給博客加 https 支持,並且在文章的末尾教大家寫了一個定時更新服務,這樣你就不用每三個月自己手動去更新了。

不過,如果你的證書要過期了,那麼其實 letsencrypt 會有機器人給你發提醒郵件的,內容大致是這樣:

你好,

您的證書 (或證書) 對於t[……]

點擊跳轉以繼續閱讀

ANNE pro GH60 定制鍵盤 macOS 鍵位設置

之前我寫過一篇撲克 2 機械鍵盤 Mac 鍵位修改的文章,現在由於我買了一個升降桌,然後poker是有線的,於是很不方便,就尋思買一款藍牙鍵盤,沒想到當年夢想的藍牙機械鍵盤已經有了現成的,正好,尋思著就定制一個。

我對poker的wasd方向鍵情有獨鍾,尤其是改 capslock 為 fn 後,簡直是編程利器,爽的一批,所以這次找鍵盤也必然是 60鍵,也要支持 capslock + W¯¯[……]

點擊跳轉以繼續閱讀

macOS 鍵盤按鍵 event 的三種截獲方式

一般情況下,你不需要了解這些內容。

在極少數情況下,你的app可能需要去獲取用戶按下的按鍵信息,比如盜號木馬 開發一款輸入法。只有這樣你才能給用戶提供候選。

怎麼在 macOS 下創建一個輸入法,我在Swift 使用 InputMethodKit 寫輸入法這篇文章中有詳細的說明,這里略過不提,我們重點放在如何處理用戶按鍵,尤其是修飾按鍵的處理上。

落格輸入法一直以來有一個不大不小[……]

點擊跳轉以繼續閱讀

winform 使用 視頻 作為窗口背景

最近做 Windows 上的項目,客戶要求要做的“炫”一點,所以,動態的窗口背景永遠是必不可少的內容(比如手機qq的登錄界面對吧?

我本以為這是一個很容易實現的功能於是就滿口答應下來……是的,在 WinForm的 裡,並不是那麼容易就能達到你想要的效果的。

理所當然,我們想到如果要播放視頻,那麼就用系統自帶的 media player,只要添加一個控件就可以搞定——結果就是播放的視頻要么[……]

點擊跳轉以繼續閱讀

使用 csf 防火牆來有效阻止小規模 DDOS

之前我寫過一篇文章,購買了VPS之後你應該做足的安全措施,這裡邊介紹瞭如何安裝 CSF 防火牆,其實很簡單就幾條命令,不過,由於當時我的無知,導致實際上CSF 防火牆並沒有真正生效,原因是 csf 和 ufw 一樣都是 iptables 腳本,它們處在同一層級,是互相衝突的。

所以,在配置 CSF 防火牆時,你應該先執行命令 ufw 禁用

點擊跳轉以繼續閱讀

避免輸入法 候選條 被其他窗口擋住

在開發落格輸入法 macOS 版本的時候,我遇到了這麼一個難題,那就是窗口優先級的問題。在之前 如何讓 NSWindow 顯示在不同的 Space 或者 Screen 中 這篇文章中我提到了自己實現了落格輸入法的候選欄,其實是用一個 NSWindow 實現的。那麼既然是一個普通(經過魔改)的 [crayon-5a1190d5653a353929[……]

點擊跳轉以繼續閱讀

面對coronasdk的物理引擎

關於移動手機的開發,目前網絡上主要流行兩種開發軟件,一個是眾所周知的unity(畢竟當年4399小遊戲上面的網絡版Minecraft由它開發,3d引擎沒有任何軟件能夠超越它),另一個是比較小眾化的cocos。cocos佔據著2d遊戲的主要位置,而unity卻佔據著3d遊戲的主要位置。而我們講的coronasdk與cocos一樣為2d遊戲引擎(coronasdk不被人所知主要是因為2010年以前收費[……]

點擊跳轉以繼續閱讀

Android 安卓開發板 讀取串口

最近接了個工程,需求是給特製的工程安卓板子做串口讀寫以實現一些特定外接設備的互動——是的你沒有看錯,安卓板子也是可以有串口的!

很多做移動開發的朋友可能沒接觸過——其實在這之前我也沒接觸過。踩了七八個小時的坑,終於爬出來了,這裡做一個總結,可能各個工程板子具體情況不同,大家一定要隨機應變。

首先你要知道的

跳線,工程板子為了節約 USB 接口,默認的 USB 接口都是對外的不能接電腦調試[……]

點擊跳轉以繼續閱讀