[研討會] Modern Web 2016 - Day1

前提: 之前想好好的宣傳 Golang ,於是乎一次投了兩個研討會.其實本來問題是不大的,只是剛好是同個禮拜(一個週日,一個週四).真是太棒了 (昏倒…) 不過今天相當的開心的跟了碼天狗的幾位作者 ( 同時也是講者 ) LY ,海總理還有特地趕來聚會的 Tim Kuo . 還有新認識的一堆講者. 難怪不少研討會都說,想要認識講者最好的方式就是… 成為講者. Douglas Crockford (Paypal) - Typing 投影片 History of Typing: Language Alphabet (upper) Alphabet (lower for writing) Typing The indent of key is to avoid key collision. The arrange also to avoid collision. “0” should come before “1”, all keyboard arrangement still wrong for now. ASCII code original use to for “writer” not “computer” Old typewriter history: One key combine with two word (upper/lower), Shift key to machanical shift the key to another one. Ctrl key is to call key control charactor if exist. (TAB is control part in “i” key. Return key to return to the begin of line (just like 0x0a) Line feed key to scroll papper line (just like 0x0d ) 心得: 從一開始語言的起源,到了字母的發明,最後到了打字 (Typing) . Douglas 說許多科技其實其來有自,你必須要好好了解科技的源頭,了解許多事情的原因,你才會了解為什麼會有這些相關科技的產生. 舉例而言,拿很古老的打字機上面的鍵盤排列來說: Shift key 一開始打字機為了要能顯示大小寫,其實一個按鍵黏著大寫與小寫的字母.而 Shift 就是要能夠機械式地移動( shift it ) 那個硬件去切換大小寫. Control key 現在已經越來越少使用了,其實一開始鍵盤上面是沒有 Tab...
繼續閱讀

[研討會心得][COSCUP] COSCUP 2016 上台初體驗

前提: 今年是第三年參加 COSCUP ,其實也有些時候沒有參加任何的研討會.大概是因為已經給自己立定想法,必須要有想辦法當講者才能參加的信念. 而今年 COSCUP 我覺得議題都很不錯,可惜我因為要顧小孩只能參加第二天的場次(也是因為自己的場次在第二天). 參與場次: Evan Lin - Project 52 每週一個小專案來學習Golang Slide: COSCUP 2016: Project 52 每週一個小專案來學習 Golang from Evan Lin 詳細的 Hackpad 在這裡,不少同學有做了一些筆記 . 影片: 鏈結在這裡 講者心得: 第一次參與大型研討會,加上是 H0 有點大 XD ,說不緊張是不可能的. 一緊張就容易講得快,所以大概在 25 分鐘就把所有 slide 都講完了. 後面的時候還好有 appleboy 的救援與講解一些心得. 以下整理一些心得: 盡量準備多一點的 slide ,往往一張 slide 很難講到一分鐘.所以基本上應該要兩倍以上. 每張 slide 之間需要讓自己喘一口氣,避免讓台下的人也吸收不良. 如果想講一些 “木更” 也請記得慢慢講,讓台下的人有時間笑 (或是不笑 orz ) 身為講者,其實都會很希望能跟聽眾互動.如果沒有辦法提問題,就算是結束後,你來講一句話也好.也期勉自己以後參加任何研討會都要想辦法跟講者互動. Appleboy - 用 Golang 寫 Microservice slide: Write microservice in golang from Bo-Yi Wu 影片: 鏈結在這裡 心得: 這場是我當主持的, Appleboy 幫我把許多 Golang 的概念與基礎介紹都講得相當清楚.如果你想了解如何寫 Golang ,很建議好好的閱讀他的 slide . Jason Lin, Sas Chen - A High Scale ML Platform Using SPARK and KAFKA 內容: 擷取自 Hackpad (其實不少都是我打的 :p ) Batch Processing Recommendation Alternating Least Sq Log Regression GBDT Clustering Top-k rank Text mining naive bayes latent dirichlet allocation word2vec Streaming Data Original: product id -> get inventory -> update inventory Using multiple thread: Cannot promise the threading ordering. Kafka also requires key partitioning...
繼續閱讀

[TIL] 關於 Docker Remote API 的學習

什麼是 Docker Remote API 每個 Docker Daemon 其實都有提供 Remote API .其工作主要都是提供一個介面可以讓 Docker Client 透過 API 來控制. 舉凡大家日常使用的指令 docker images 或是 docker ps 其實都是使用 Docker Remote API 的方式來連接本地端的 Daemon 來對 Docker Daemon Service 下指令. 此外, docker-machine 對於遠端的機器也是透過 Docker Remote API 的方式. 如何在 Mac OSX for Docker 使用 Docker Remote API 尋找 Docker-Machine Certificate 當你使用 Docker-Machine 來建置機器的時候,其實你的 Certificate 會存放在 /Users/YOUR_USERNAME/.docker/machine/machines 裡面. 該 Certificate 就是存放著讓 Docker Client 與 Docker Daemon 能夠相互溝通的金鑰資訊. 舉個例子: 如果你有建立一個 Docker-Machine 的機器名稱為 default,那麼 Certificate 檔案就會存放在: /Users/YOUR_USERNAME/.docker/machine/machines/default 裡面. 透過 curl 連接 Docker Remote API 以我的名稱 Evan 的作為一個範例的話: ### Set your environment variable > export DOCKER_CERT_PATH=/Users/Evan/.docker/machine/machines/default ### Get Docker Machine IP > docker-machine ip default 192.168.99.100 ## Use CURL > curl https://192.168.99.100:2376/images/json --cert $DOCKER_CERT_PATH/cert.pem --key $DOCKER_CERT_PATH/key.pem --cacert $DOCKER_CERT_PATH/ca.pem curl: (58) SSL: Can't load the certificate "/Users/Evan/.docker/machine/machines/default/cert.pem" and its private key: OSStatus -25299 如果出現以下的錯誤: curl: (58) SSL: Can't load the certificate "/Users/Evan/.docker/machine/machines/default/cert.pem" and its private key: OSStatus -25299 代表你沒有 cert.pem 需要執行額外的 key 轉換的動作...
繼續閱讀

[TIL] 搞清楚三種 Docker SWarm 的差異

原文 Comparing Swarm, Swarmkit and Swarm Mode 名詞解釋: Docker Swarm: 最原始的 Docker Swarm 需要透過 docker --swarm 來呼叫 Docker SwarmKit: 使用 Github 另外一個 Open Source Project docker/SwarmKit 做 Clustering orchestration. Docker SwarmNext: 也就是 Docker 1.12 之後系統內建的 Docker Swarm Mode (或稱為 Docker Swarm V2) TL;DR (直接告訴我差異)   Docker Swarm Swarm Kit Swarm Next (Swarm V2) 額外 K/V DB 需要 (progrium/consul) 內建 內建 Security None 內建 內建 額外安裝 不需要 需要額外安裝 binaries 不需要 Extra Service None Noone Routing Mesh, Load Balancer, Service Discovery Docker-Compose, Docker-Machine 支援 支援 支援 不支援 (目前) 關於最原始的 Docker Swarm 建立 Key-Value Service #Create Docker Machine docker-machine create -d virtualbox mh-keystore #Switch to taret docker-machine eval "$(docker-machine env mh-keystore)" #Start Consul Service docker run -d \ -p "8500:8500" \ -h "consul" \ progrium/consul -server -bootstrap 關於 SwarmKit 使用流程 請參考我的這篇文章,[TIL][Docker] Docker SwarmKit 學習紀錄 關於 Docker Swarm Next 請參考我的這篇文章,[TIL] Learning note about Docker Swarm Mode 參考鏈結 试用swarmkit [TIL] Learning note about Docker Swarm...
繼續閱讀

[TIL] Docker Live Restore: Docker 1.12 讓人驚艷的新功能

What's New in Docker 1.12 by Nishant Totla for Docker SF Meetup 08.03.16 from Docker, Inc. Docker 官方在 1.12 正式 Release 之後也放出了新的 Slide 來講解 1.12 新的功能: Docker Swarm Mode 無疑是最大的亮點,裡面的Routing Mesh可以讓任何節點都可以找到有 deploy 的 service 除此之外 Live Restore: (p.30) 這大概是 DockerCon 2016 之後新的功能,今天看到同事 Demo 後覺得相當有趣. 只要你在啟動 daemon 的時候加上 –live-restore 的參數. Docker Daemon 啟動的 Container 就可以把 Docker Daemon 殺掉,但是可以確保自己不會一併消失. 這樣就可以來 Container 來更新 Docker Daemon
繼續閱讀

[TIL] DPDK

What is DPDK DPDK(Data Plane Development Kit) Data Plane Development Kit 能大幅提升封包處理效能與傳輸量,讓資料層面應用程式享有更充裕的處理時間。 Data Plane Development Kit 可讓封包處理效能加快達十倍。於單一 Intel® Xeon® 處理器上便可實現超過 80 Mpps 的傳輸量,搭配雙處理器配置則可達雙倍。1 因此電信與網路設備製造商 (TEM 與 NEM) 可有效降低開發成本,動用更少工具與支援團隊,亦享有更快的上市時間。 (refer from Intel Website) DPDK Support NIC DPDK Supported NICs It could support on virtual driver “virtio-net”. Process: Bind DPDK (dpdk-devbind.py)to mount your network driver to DPDK driver list Use dpdk status (dpdk-devbind.py status) to query it. Use KNI (Kernel Network Interface) to enable that driver to eth0. If you use kni to enable DPDK to eth0, you can use all network function with DPDK benefit. kni will waste one CPU to relay DPDK driver data to eth0. Suggestion: Write DPDK related code directly. DPDK suitable for small cell but lots of data queue. Reference dpdk入门及环境准备 DPDK-NGINX vs NGINX – Tech Overview and Performance Testing Intel 加速分布式计算系统的三个神器
繼續閱讀