2016 COSCUP Day - 2
前一天太晚睡, 第一個共同議程遲到錯過了 QQ。
Servo, the Parallel Browser Engine
因應硬體平行化的架構, 將 browser 本身可拆分的工作 (ex. tree 中去計算 layout 的部分) 去進行平行化的 engine 設計, 但 javascript engine 仍直接沿用 SpiderMonkey。
- 加速
- 平均使用 CPU 可以降低耗電
- 將繪圖部分整理利用 GPU 加速
使用 Github 的 workflow 讓貢獻者意願增加, 並會對 Servo 做跨瀏覽器相容的測試。
Rust (Servo 使用的語言) 透過 compiler time 協助安全性的處理, crates.io 相當於 Rust 的 npm, 目前 Servo 算是 Rust 的大用戶。
Weex 輕量級跨平台動態解決方案
因應 2015 雙11 活動設計
- Native 體驗
- Web 般靈活的修改呈現
- 依據使用者消費習慣推薦內容
方案
- JSON -> NativeView 方案 (建立 Native template, 難以維護、Bug 修正更新不及時)
- React Native (效能上 Weex 表現較佳, 基於 React Native 的設計是以 APP 為單位)
- Vue.js + Web conponent => Weex (可使用在 單一頁面、嵌入 Native、嵌入 Web、整個 App 的建立 ... etc 的應用場景)
目標
- 變化性高
- 性能要求
- 一次開發三端同步 (Web、iOS、Android)
靈感來源
- Web Component
- Vuejs
- Polymer
類似 React Native 要解決的問題, 但應用場景加入更多的變化的框架, 提供給開發者多一些的選擇。
A High Scale ML Platform Using SPARK and KAFKA
Batch vs Streaming
Batch
- Batch 大量一波一波收到的資料, 可容忍不即時
- 使用 Spark, 因為是 in-memory 的計算, 並且對 Machine Learning 以及 SQL 的整合都很 friendly
- 演算法
- Alternating Least Square
- Logistic Regression (分類演算法)
- GDBT (Ranking 演算法)
- Clustering (依據使用者的行為分類)
- Top-k rank
- Text Mining
- Naive Bayes
- Latent dirichlet allocation
- Word2vec
Streaming (ex. access log)
- Streaming 持續收到的資料, 需較即時地處理
- 應用在根據使用者行為的 live prediction
囧> 可能是對 (SPARK、KAFKA) 這兩個 term 太陌生了, 所以聽著聽著就睡著了。
NAS 也可以揀土豆
介紹機器學習的一些方法以及他們一些訓練的實驗 (看了一下共筆 , 結果想抄筆記還沒得抄)。
開放公司文化之下的軟體開發 / 如何用開源軟體賺錢?
全體共同議程, 雖有諸多廣告的內容, 但整體上不至於討厭。
對於「開源」各方的直覺態度
- 小企業 - 免費的!功能不強沒關係
- 大企業 - 我們賣硬體,加一點軟體是不是可以多賣一點錢
- 員工 - 老闆要一個功能,我不會寫,找看看有沒有人寫過
- 政府 - 我們來辦比賽!
結論, 我們該如何使用開源軟體? (需求主導)
- 觀察客戶要甚麼
- 加上重要功能,甚至比原來的軟體強大
- 願意自己重寫
- 甚至徹底改變商業模式
- 建置世界級的大系統
- 注重使用者體驗
Lightning Talk
個人覺得的亮點
- 用 Git 的 branch 來畫台北捷運圖 (雖有點浪費才能, 但挺有趣的)
- HackMD 的應用, 使用 markdown 來撰寫部落格後, 覺得他們整合大部分我所使用到的功能, 會找時間體驗一下他們的服務
捕夢網請的模特兒不錯, 兩天的議程終於結束了, 參加完之後總是會讓體內燃著熱血, 要繼續 GoGo 邁向神乎其技的境界。