想做的專案太多,時間能力不夠,只好先把想法記下來。更希望可以找到人一起來合作一個專案啦,自己做太容易放棄了。
讓 ownCloud/Nextcloud 支援註冊帳號的插件,原本 ownCloud/Nextcloud 只能管理員自己建立帳號然後把帳密交給新使用者。
開發其實很簡單,沒什麼技術難度,知道怎麼接 ownCloud public API (PHP 的 API)和基本的資料庫連接 code 的撰寫能力就可以了。已經很久沒有碰 code,有個 admin-approval 的 branch ,已經拖了兩年多了 ,要做的功能是管理員審核功能,讓管理員可以審核新註冊的使用者,也沒什麼技術難度,就是 glue code 接一接,所以實在沒什麼動力把它做完。前端部分會用 handlebar.js 去 hook 官方的使用者管理頁,然後去呼叫後端插件內的 HTTP API 。
facebook-not-typing 和 facebook-micromanage
這兩個都在我的 github 帳號底下,facebook-not-typing 應該看了 readme 就知道是幹嘛的。
facebook-micromanage 則是比較有野心的計劃,想要以瀏覽器插件來提供很多 Facebook 不給的功能,現階段已經完成撈朋友清單,接下來利用已經有的基礎建設,也就是撈 cookie 和 localStorage 的 code ,想要突破 Facebook 過濾泡泡,去撈每一個朋友和粉絲專頁的牆,然後存進 IndexedDB (雖然說這已經是 deprecate 的標準,但我真的需要結構化的資料儲存),再依照時間順序顯示出來。現在遇到的問題是撈朋友牆的 request ,分頁的參數不知道怎麼填,有幾個變動的神奇數字還沒有辦法看出產生的方式。
不過或許以後也可以直接開大絕用 phantomjs 撈更快,不過這要跑在瀏覽器插件裡面就比較有困難。不對,開一個隱藏的 content page 應該就可以?
第二個想做的功能是管理朋友清單,可以用交集和聯集產生新的清單,還有朋友清單備份時間點,也就是在每一個朋友清單後面加個時間戳記,最新的則不加戳記,在有變動(譬如說你把人加進那個清單)的時候,加入前的版本會加上戳記(清單重新命名),然後把原本的人加到新的清單,再加入那個新的人,這樣新的人就看不到你以前的貼文。
bsd-cloudinit
- 弄好 Jenkins… 有夠難 debug 設定,應該接近完成了,等 Github Pull Request Plugin 的那個 bug (在 Firefox 按 Rebuild PR 沒反應)修好應該會比較好 debug,噢,還得再次砍掉 ghprb 。(每次要測試 build 還得去 github PR 下面留言 “retest" 實在有點蠢)
- 跟上游 cloudbase-init 同步 code (因為他們是一個 framework 了,我們只是加幾個 FreeBSD 專屬的 class 來實作在 FreeBSD 上面的操作)
- 同步 code 以後,把舊的 code 改寫成符合新架構的形式,然後開始收 PR ,也改成新架構
- 弄個 cronjob 去檢查 FreeBSD releng 的更新,有更新的時候自動觸發 build
從 Koel 幹來的前端,插在 ownCloud Music app 上面,還有很多功能沒有做完:
- 歌詞,Last.fm,YouTube 整合壞掉了
- 觸發掃描的按鈕
- 樂曲長度偵測、顯示
- 上架 apps.nextcloud.com
中文斷詞加貝式機率過濾垃圾郵件
附中信箱的垃圾郵件自從用了 bogofilter 之後算是蠻少的,不過有時候還是會有一整批的 Spam 抓不到。所以希望可以用結巴斷詞函式庫先把信內容斷一斷然後再進 bogofilter ,當然斷詞之前還有很多麻煩事要做,像是 parse MIME multipart ,幸好發現了個 library 可以解決。
現在是卡在要設計一個有效的 benchmark 方法,測量偵測的準確度。(跟其他專案一樣,就是好像怎麼做都可以,怎麼做都有點問題,沒辦法決定怎麼做,所以先擱置)
筆記會依照相關性記在 CNMC Wiki。
要是中文垃圾郵件過濾可以做得好的話希望可以架台 mail server 給認識的人付成本價使用,也可以提供 domain email 代管,help re-decentralize the web 。
是個自幹 Google Drive 的計劃,ownCloud 現在還是有很多問題,所以想要重新用 Django 實作,構想都記在 HackMD 裡面了。目前我在弄前端,雖然我跟前端真的沒那麼熟,但 @M157q 更不熟 :-p 所以只好我來弄。週末不定時黑客松。
拋棄很久的專案,想要用 skicka (非官方的 Google Drive CLI client,Go 寫的)和 bazil-fuse 重新做一套 Google Drive 的 FUSE, 希望用 Go 會讓一切變得很快,還有計劃要用大量的本地快取增加速度,但快取可以隨時被 free ,類似 ZFS 或 memcached 那樣。
逆向 iCloud Drive
希望可以找到方法 hack ,讓深度整合 Finder 的 iCloud Drive 可以被 hack 成其他 backend ,像是上述的豐原。
裝了 mitmproxy (在 OSX 上面用 pip 裝似乎會爛,放棄了直接裝上游 package),攔截了一些 request ,基本上 iCloud Drive 就是用 CloudKit 實作的,所以得先弄懂 CloudKit 的認證方式。
筆記也在 HackMD
Octowall
某次在 GitHub 亂逛看別人都在幹嘛的時候想到的主意:
//platform.twitter.com/widgets.js
Django 的初始 scaffolding 已經有了,但是埋藏在某個硬碟可能已經損毀的虛擬機器裡面,要繼續的話得設法撈出來。
桌面環境與豐原計劃(GNOME)
希望桌面環境和雲端環境能夠更深度整合,想修改 GNOME apps ,讓它們可以和豐原運作,譬如說 Nautilus 兼雲端檔案瀏覽器,類似 Dropbox Project Infinite 的概念。還有也想改改 Shotwell ,讓它可以做類似 Apple Photos 或 Google Photos 的事情,自動上傳照片,然後可以瀏覽遠端照片,就像在本地。
多虧 lantw ,已經在 Ubuntu 上面弄出 GNOME 的開發環境(這真的是最難的部分,讀懂 Nautilus 的 code 都比這個簡單,大概是因為我用 Ubuntu 的關係,然後官方在不久以前把 Ubuntu 從支援的開發環境中移除了,現在要開發的話,官方支持的就只有 Fedora。但是我不想重新學用 rpm 系的東西啊 :-p )。
第一步就是應該要可以 build 出一個跟 Nautilus 一模一樣但是可以和 Nautilus 獨立運作的應用程式,這樣才能方便開發和使用者測試,否則每次測試我們的東西 Nautilus 就有可能壞掉,多麻煩啊。可能主要是 DBUS 的註冊名稱要改一下之類的,但光是這個就挺麻煩,我跟 DBUS 不熟 :-p
目前擱置中,先做豐原,Web 畢竟還算是我稍微有能力做的事情,桌面環境的 build system 什麼的好複雜啊 @_@
BitTorrent tracker proxy
發現很多環境,像是學術網路,阻擋 BT 的方式多半是用阻擋特定的 port ,UDP tracker 會用的 port ,像是 6969, 1337 。然後 tracker 協定其實支援 TCP, HTTP, HTTPS ,但幾乎所有的知名 tracker 都用 UDP ,而且都用那幾個 port 。
所以想法是,做一個 tracker proxy ,可以在未受阻擋的網路,用 HTTPS tracker 協定和受阻擋的網路內的 client 溝通(計中總不可能 block HTTPS 吧),然後再代理 client 向上游的 tracker 用 UDP 溝通。
這樣有幾個問題,一是計中還是可以擋我們 proxy 的 IP ,但這應該不會那麼快發生,而且我們只是跑普通的 HTTPS 啊,為什麼要擋我們捏?完全杜絕的方法就是用 public cloud, 讓他們一擋就要擋所有服務,不過 Heroku app 沒辦法送 UDP 的樣子,得用其他共用 IP ,又可以送 UDP 的 public cloud。問題二是,這樣使用者每次要新增 torrent 的時候就得手動新增我們的 proxy 到 tracker 清單裡面,很麻煩。這應該可以用在 client 做插件的方式解決,Deluge 是 Python 寫的,也可以用 Python 寫插件,應該不會太難。問題三是代理沒辦法知道要幫使用者代理哪幾個 tracker ,這個解法一是用自訂的協定去溝通,client 端用插件送額外的資訊;解法二是我們就只是 proxy 幾大 tracker ,其他就不管,這樣應該至少可以達到一點點效果吧(其實不算是解法啦…),還可以開個網頁允許使用者自己加入想要 proxy 的上游 tracker 。
本專案還沒有任何 code ,不過我在 trace bittorrent-tracker 的 code 了。
徵人啊
以上專案全部都徵人和我一起做,沒有很懂沒關係,我可以教,不然這些構想真的都沒辦法實現了。