2016 COSCUP Day - 2

前一天太晚睡, 第一個共同議程遲到錯過了 QQ。

Servo, the Parallel Browser Engine

講者投影片Demo 測試網頁

因應硬體平行化的架構, 將 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 邁向神乎其技的境界。