Re: [討論] 大家是怎麼看MOPTT的事件呢?
※ 引述《dreamnook (亞龍)》之銘言:
: 所以有人打算來寫個稍微乾淨的版本發佈嗎?
: 我個人有這個意願...但是完全不知道從哪起手
: 還是說已經有人在作了XD?
: 推 AmosYang: 如果需求是 open, transparent, secure, 有乎? 06/23 13:45
: 推 AmosYang: 開了個 hackpad: https://goo.gl/uyM5pO 記下初步的想法 06/23 15:29
剛成功以 libssh 為基礎,連上 ptt.cc:22, 然後 dump 進站畫面
https://github.com/twy30/yapa-sandbox
這個程式會把 PTT 進站畫面 dump 下來,存成 data.big5.html ,
如下
https://hackpad.com/Yet-Another-PTT-App-xU7NSBB49W3#:h=WAHAHAHAHA,-it-worked
以此為基礎,再搞定編碼 (以 `bbsu` 登入,可以 UTF8 得到資料)
,以及 parsing, 一步一步來
============================================================
基本上,最新的開發動作,會記在 hackpad 上,適合協作、討論、
隨手塗鴉
* https://hackpad.com/Yet-Another-PTT-App-xU7NSBB49W3
* 短網址: https://goo.gl/uyM5pO
每達成 milestone, 舊文會整理起來,留下思路,給後人參考
https://twy30.github.io/yet-another-ptt-app/
程式碼放在 github 上,過兩天睡醒後去挑個開源授權加上去
* 這裡是試作場,視情形會 nuke 掉整個 repo
https://github.com/twy30/yapa-sandbox
* 正式的程式碼將來會放這裡;目前是空的,只有 gh-pages
https://github.com/twy30/yet-another-ptt-app
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 68.4.115.53
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1435739695.A.CCC.html
推
07/01 16:53, , 1F
07/01 16:53, 1F
推
07/01 17:00, , 2F
07/01 17:00, 2F
推
07/01 17:01, , 3F
07/01 17:01, 3F
我的打算是把核心部分的 SSH, parser 的部分搞定、開源、並 port
到各平台上,並提供 C#, Java, Obj-C, 等的 wrapper; 希望把入門
門檻降低後,能吸引對各平台及 UI/UX 更有經驗的人來共襄盛舉
推
07/01 17:12, , 4F
07/01 17:12, 4F
→
07/01 17:23, , 5F
07/01 17:23, 5F
後面要做的事還有很多 XD
※ 編輯: AmosYang (68.4.115.53), 07/01/2015 18:28:48
推
07/01 18:29, , 6F
07/01 18:29, 6F
推
07/01 19:07, , 7F
07/01 19:07, 7F
推
07/01 19:53, , 8F
07/01 19:53, 8F
推
07/01 20:00, , 9F
07/01 20:00, 9F
→
07/01 20:22, , 10F
07/01 20:22, 10F
→
07/01 20:22, , 11F
07/01 20:22, 11F
推
07/01 22:43, , 12F
07/01 22:43, 12F
推
07/01 23:05, , 13F
07/01 23:05, 13F
推
07/01 23:48, , 14F
07/01 23:48, 14F
推
07/02 01:53, , 15F
07/02 01:53, 15F
推
07/02 09:50, , 16F
07/02 09:50, 16F
推
07/02 10:28, , 17F
07/02 10:28, 17F
→
07/02 12:42, , 18F
07/02 12:42, 18F
→
07/02 12:43, , 19F
07/02 12:43, 19F
感謝提供參考資料 orz
我對行動平台不很熟,對跨行動平台更是外行;這個要讓有實戰經驗
的人來談談,看這類跨行動平台的作法是否實際
推
07/02 13:32, , 20F
07/02 13:32, 20F
我有想過類似的事; 一些舊文
https://www.ptt.cc/bbs/BBSview/M.1412448166.A.06C.html
https://www.ptt.cc/bbs/PublicIssue/M.1412560751.A.5A6.html
https://www.ptt.cc/bbs/PublicIssue/M.1412648534.A.0E4.html
https://www.ptt.cc/bbs/PublicIssue/M.1412613173.A.BC1.html
https://www.ptt.cc/bbs/PublicIssue/M.1412614674.A.D90.html
推
07/02 13:49, , 21F
07/02 13:49, 21F
※ 編輯: AmosYang (68.4.115.53), 07/02/2015 14:39:42
推
07/02 17:14, , 22F
07/02 17:14, 22F
人各有長,如果能幫忙蒐集、思考 UX/UI 的資料,整理各種 UI 、
各家 app 的長處與短處,整理 top 3 user scenarios ,那就能幫
上很大的忙了
推
07/02 22:46, , 23F
07/02 22:46, 23F
※ 編輯: AmosYang (68.4.115.53), 07/02/2015 23:39:31
更新了 hackpad
* 短網址: https://goo.gl/uyM5pO
* https://hackpad.com/Yet-Another-PTT-App-xU7NSBB49W3
懶得一段一段去排版了 :D 若想看排版好的,請移駕至 hackpad
2015-07-02
接下來打算做的事
作個簡易的 C# wrapper for libssh
抓、送 UTF8 資料
登入 ptt:22
用 Java ,重覆以上過程
易言之, proof-of-concept
目前可預見的幾個難關
know-how: compile libssh (+ openssl + zlib) for Windows Phone
know-how: compile libssh (+ openssl + zlib) for Android
know-how: compile libssh (+ openssl + zlib) for iOS
目前來說,我完全不知道上述三項的「可能性」 :D 要試了才知道
非急切需要,但 really-nice-to-have 的
know-how: compile libssh (+ openssl + zlib) for Windows
雖然各 lib 的官方網站都有提供 pre-compiled binaries for Windows,
但若能掌握此技術, 可就 YAPA 遠景(vision)中的「安全、可信任」
添一分「透明度」
易言之,最理想的狀況,是讓有技術能力的使用者,從 source code
開始,照著文件,在他自己的環境裡編譯所有的東西,然後 deploy
到他自己的裝置上,得以獨立地(independently)檢視此 app 的安全
性;
另一件可做的事
與維護 PTT 的技術人員連絡,問其技術 roadmap
從 PttSuggest 版的資訊看來, PTT 的開發模式目前是在「維護(maintenance)」
,也就是以修蟲、保持 uptime, performance 為主, 若能知道他們的
roadmap, 尤其是「是否有計畫積極開發 data-access API,以及其時
程」這方面,可避免 YAPA 這邊走怨枉路
其他、更遙遠的事
蒐集、思考 UX/UI 的資料,整理各種 UI 、各家 app 的長處與短
處,整理 top 3 user scenarios, etc.
在桌機平台上,已經有各家成熟的 SSH 程式可使用;在移動裝置上,
則要重新考量 UI/UX, 而不是把目標放在「重製終端機模擬」,因為
移動裝置不適合以 keystroke 為基礎的 UI
yurenju@ptt 提到「可以考慮 cordova + socket 然後改寫 PttChrome ext.
給手機用。https://github.com/iamchucky/PttChrome 」
我對行動平台不很熟,對跨行動平台更是外行;這個要讓有實戰經驗
的人來談談,看這類跨行動平台的作法是否實際
2015-07-01
第一次接觸(first contact)
https://twy30.github.io/yet-another-ptt-app/blog.txt/2015-07-01-first-contact.txt
第一次接觸
==========
成功以 libssh 連上 ptt.cc:22 並抓下登入畫面;目前仍是抓 Big5
的資料,下一步是抓回 UTF8 的資料、登入、思考 parser 的設計。
libssh
------
libssh 本身還需要 OpenSSL 與 zlib,
* libssh 0.6.5; https://www.libssh.org/
* OpenSSL 1.0.2c; https://www.openssl.org/
* zlib 1.2.8; http://www.zlib.net/
這三個函式庫的官方網頁上都可找到已編譯好給 Windows 使用的 binary
中間浪費了不少時間在 libssh 0.7, 0.7.1 上;這兩個版本在 Windows
上有 [bug]. 0.6.5 版則沒有這個問題。
[bug]: http://www.libssh.org/archive/libssh/2015-05/0000038.html
隨想
----
之前有提過, YAPA (Yet Another Ptt App) 的目的不是在行動裝置
上重現 BBS 介面,是故,不需要投資在「終端機模擬」上,而是要
把主機端送來的訊號變得更方便消化(consume) 。
相對於 SSH 的處理辦法 (把用 C 寫的函式庫移植到目標平台上,
再寫 wrapper) ,我在思考 parser 這部分要怎麼處理。
理論上,若能像 SSH 的作法 (寫一次,再編譯給不同的平台用) ,
自然是有 code reuse 的優點;但是,直覺上,感覺那是 too good
to be true :D 理由如下:
首先, libssh 是很普通的 C 風格的 API, 是故整合點可以收拾得
很乾淨,且被傳遞的資料是很直來直往的 byte[]
反觀, parser 則可能需要提供 callback, event, 且要傳遞的資料
可能必須有一定的結構;這樣的複雜度再加上一層 wrapper, *感覺
上* 對 UI 層來說,會很難用
是故,或許 parser 不應該走 SSH 的處理方向…
又,後面還有兩隻大魔王…不知道 libssh 在 Android 與 iOS 上
能否編譯成功... orz
※ 編輯: AmosYang (68.4.115.53), 07/02/2015 23:59:05
推
07/03 00:53, , 24F
07/03 00:53, 24F
推
07/03 08:49, , 25F
07/03 08:49, 25F
感謝樓上兩位提供資訊 orz
※ 編輯: AmosYang (68.4.115.53), 07/03/2015 13:49:18
推
07/05 21:12, , 26F
07/05 21:12, 26F
更新
* 最新發展: https://goo.gl/uyM5pO ( https://hackpad.com/xU7NSBB49W3 )
* 舊文整理: https://twy30.github.io/yet-another-ptt-app/
2015-07-03 選擇與變化
https://twy30.github.io/yet-another-ptt-app/blog.txt/2015-07-03-choices-and-changes.txt
2015-07-06 進擊 の OpenPTT
https://twy30.github.io/yet-another-ptt-app/blog.txt/2015-07-06-attack-on-OpenPTT.txt
※ 編輯: AmosYang (68.4.115.53), 07/07/2015 17:09:45
→
07/08 01:13, , 27F
07/08 01:13, 27F
→
07/08 01:15, , 28F
07/08 01:15, 28F
當初作的比較
https://twy30.github.io/yet-another-ptt-app/blog.txt/2015-06-26-shoulders-of-titans.txt
* http://www.openssh.com/
* SSH server & client in C/C++, ported to various platforms
* BSD license
* used by PuTTY
* time-tested
* https://www.libssh.org/
* SSH library in C/C++, ported to various platforms
* LGPL license
* pre-compiled binaries available for Windows
* used by GitHub, KDE
* well-documented
* http://www.libssh2.org/
* SSH library in C/C++, ported to various platforms
* BSD license
*感覺上* libssh 是最平易近人的 :D
→
07/08 01:16, , 29F
07/08 01:16, 29F
※ 編輯: AmosYang (68.4.115.53), 07/14/2015 17:02:56
討論串 (同標題文章)