今年 PyCon 終於比起上次聽得懂多了!
看來這兩年來,還是有點進步的 XD
先放上今年的共筆
這幾篇記錄我參加議程的筆記
有些投影片跟共筆就很清楚的,就直接放連結了
議程
- [Keynote] Choices for Smarter AI
- Python 開源軟體考古 - 以Viper為例
- 整合 Slack 與 Docker 搭建 Jupyter 線上程式面試系統
- [Keynote] The State of Python for
EducationLearning - Building Microservices in Python 個案分享
- Understanding Serverless Architecture
- 同場加映:Don't Reinvent Sandwich (本議程沒供餐 XD)
- Tensorflow & Python: Fault Detection System
[Keynote] Choices for Smarter AI
-
Better AI
- Traditional: 更像人類
- New: 更好用
Choice[0]: What Language for AI?
Choice[1]: What Application Should AI Help?
- AI Starts From Problem Solving
- Motivation
- Publishable (academia), Profitable
- Feasibility
- Modeling, Timeline, Budge
- Motivation
- Big Problems from Big Data
- Velocity: Evolving data, Evolving problems
- Volume: Computational Bottleneck
- Veracity: Modeling with non-textbook data → Noise, Bias
Choice[2]; What Route for AI
Human-er | Machine-er |
---|---|
Subjective | Objective |
Domain Knowledge | Computing Power |
Fast Basic Solution | Continuous Improvement |
Tip: As much human as possible before going to machine
Choice[3]: How to Measure AI Goal?
Tip: Start with reasonable, measurable and prioritized goals for AI
Choice[4]: What Data to (or not to) Use?
- Choice factors for data
- Utility: Relationship with goal
- Necessity: Uniqueness to goal
- Quality: Noise, Freshness
- Cost
Tip: Start with "minimum viable data"
Choice[5]: What Model to Start?
Linear (Simpler) Model First
Choice[6]: What Improvement Steps to Take?
- Lose Reason
- Overfitting
- Misfitting
- Over-reusing
- Keep data fresh
Choice[-1]: How to verify and Deploy?
Code Deployment Workflow | AI Deployment Workflow |
---|---|
Development → Staging → Production |
Offline → Online → Production |
- Human Trust matters
- Need a baseline to be compared
Misc[0]: No Choice is a Choice
Misc[1]: Learning from Mistake
Misc[2]: ???
Python 開源軟體考古 - 以 Viper 為例
這場很實用,slide 也很清楚
蠻推薦影片出來可以看一下
從開源專案學習寫 code
讀 code 技巧
降低專案複雜度
- 從早期版本追
- 如何挑版本? ( 搭配 tig 服用 )
- 重大版本號
- 簡單、可運作之版本 (e.g. viper 的 commit hash: 46a2a)
- 如何挑版本? ( 搭配 tig 服用 )
- 感覺太複雜?
- 砍!
- 鎖定特定功能,移除其他雜質
- 測試,能動就可以
專案程式邏輯架構
模組相依性 → 一直 trace 到沒有 import 專案自己寫的 code
- Tools
- 數據分析
- e.g. 被用最多的反而不是核心 → 這些程式碼好用、易用
- 走訪專案
- 建立專案整體架構邏輯
- 深度走訪
- 由下往上
- 仔細閱讀單一程式
- 廣度走訪
- 由上往下
- 解釋特定組合的程式的意義
Conclusion
- 系統化讀 code
- 從 Commit 學習
- 架構變化
- Commit Message 規則
- Branching Model
- Issue Handling
整合 Slack 與 Docker 搭建 Jupyter 線上程式面試系統
這場最重要的大概就是 slide 第 12 頁 第 11 頁的架構圖
Tools Used
- Flask
- Python 中最簡單使用的 web framework
- 做小型 web 應用非常適合
- Docker
- 容器化
- 一鍵部署
- 限制容器耗費的 CPU, GPU
- Slack
- Integration 很好
Bugs
- Pull Image First
- So it can be fast
- Try except for any case
- dockerpy 的雷 xD
- File Permission
- 要採 docker 坑,這很重要
[Keynote] The State of Python for Education Learning
這場 Talk 主要講學習、推廣和社群
Carol 有提到幾個學習 Python 很棒的資源
其中我覺得最有用的大概就是pyvideo.org 了
之前回去聽工資管系系友演講,趨勢的學長就有提到看 Talk 是很快的學習方式
另外,Carol 強力推薦今年 PyCon US,Instagram 給的 Talk
Lisa Guo, Hui Ding Keynote PyCon 2017
之後,應該也會找個時間來看一下
Understanding Serverless Architecture
Serverless
- Function as a service (FaaS)
- e.g. AWS lambda
- Advantage
- Don't need to maintain servers
- Disadvantages
- Functions are allowed to run for only a limited amount of time
- Heavy workloads cannot be run
- No control over containers
- Hard to monitor
- Hard to scale up
- It's awesome but not the best choice for everyone.
Tensorflow & Python: Fault Detection System
Fault: An abnormal condition or defect at the component
- Logs
- Usage of CPU
- Memory
- Disk I/O
- Network Bandwidth
- System Log
- Application Log
- and etc.
Log is also natural language.
The sequence of words and expression is important sequential data.
這場我真的就有點聽不太懂了@@