เฉพาะ Session ที่เข้า เท่าที่พอจำได้
Session 1 : Girls Who Dev
เมื่อผู้หญิงเขียนโปรแกรม
Speaker: Nantanicha - Girls Who Dev, ProntoTools
- Community for Girl who dev in Thailand
- ได้รับแรงบันดาลใจมาจากเพจ หมอหล่อบอกด้วย อะไรงี้ป่ะ
- ประเทศอื่นมี community ประมาณนี้อยู่ มีบางเพจ niche ขนาด ต้องเป็นผู้หญิงผิวสี
- มีจัด workshop สอน python มาแล้ว รับคนฟังเฉพาะผู้หญิงเท่านั้น(อ้าว!?)
- คิดว่าจัดปีละครั้ง
- เขาบอกถ้าผู้ชายอยากช่วยก็มีงานให้ช่วย (ประมาณว่าเป็นเบ๊ อะไรงี้ป่ะ -*-)
- Facebook Page : https://www.facebook.com/girlswhodev/
Speaker: Waii (Undergrad doing CG)
- เรื่องนี้เรียนกันประมาณปีสาม ถ้าเรียน CG
- เราไม่ได้ render model 3 มิติทั้งหมด เพราะเปลือง resource เราเลือก render ที่ปรากฎขึ้นมาในเฟรมเท่านั้น
- วิธีทำ เช่น ของวงกลม ( Ray-Sphere intersection )
หาว่า เส้นตัดวงกลมรึเปล่า
มีสมการ Vector ของเส้นตรง (Ray) จากกล้องไปยังวงกลม
P = O+tD -- (1)
สมการ Vector ของวงกลม
(P-C)^2 - R^2 = 0 -- (2)
แทนค่า (1) ลงใน (2)
(O-tD-C)^2 - R^2 = 0
at^2 + bt + c = 0
a = D^2 = 1
b = 2(O-C)D
c=(O-C)^2-R^2
จะได้ ระยะ t จากกล้องไปยังวงกลม = (-b+-sqrt(b^2-4ac))/(2a)
ซึ่งจะได้ผลลัพธ์สามค่า คือ เส้นไม่ตัดวงกลม/เส้นสัมผัสวงกลม/เส้นตัดวงกลมสองจุด
- กรณีสามเปลี่ยม ( triangle intersection )
สามเหลี่ยมใช้เยอะในการ render รูปร่างใน CG เพราะ ไม่กิน performance ในการคำนวณ
แทนค่าสมการ Vector ของ Ray ลง สมการสามเหลี่ยม
- ทำ shading โดยการคำนวณ แสงตกกระทบแสงสะท้อน เอา vector มา dot กัน หา cos(seta) รวมถึง Phong shading และ การคำนวณแสงที่ absorb ของแก้วใส
- งาน research จะเกี่ยวกับว่า render เหมือนจริงขนาดไหน
- มี WebGL เวปนึง สามารถลองเขียนโปรแกรม render ได้ (จำไม่ได้ว่าเวปไหน)
Session 3 : React for Completely Beginner
Speaker: @chaintng
- jQuery ต้องสั่งทีละตัว ทำให้หลายๆ อัน access DOM เดียวกันได้ บางทีจะสับสน
React จะเก็บเป็น state ก่อนจะ render() ก็ผ่าน virtualDOM ก่อน ทำให้ เราไม่เสีย performance ในการ access DOM จริงๆ
- มี demo react-boilerplate คนพูดชอบเพราะว่า สามารถศึกษา react ได้ตรงๆ โดยไม่ต้องไปผสมกับ flux, webpack ( ภายหลังมีคนเสนอ http://jamesknelson.com/learn-raw-react-no-jsx-flux-es6-webpack/ )
GitHub Demo URL : https://github.com/mxstbr/react-boilerplate
- การ development ให้มองเป็นส่วนๆ ( containers เช่น https://github.com/mxstbr/react-boilerplate/tree/master/app/containers )
- ตัวอย่าง Home Page
https://github.com/mxstbr/react-boilerplate/blob/master/app/containers/HomePage/index.js
--- componentDidMount() เรียกทุกครั้งที่มีการเพิ่ม containers นี้ลงไป
- ทุกครั้งที่เปลี่ยน state จะ render() ใหม่ทุกครั้ง
เช่น หลัง AJAX เรียกข้อมูลกลับมาแล้ว เปลี่ยน state เพื่อ render() ใหม่
ตัวอย่าง https://github.com/mxstbr/react-boilerplate/blob/master/app/containers/RepoListItem/index.js
- มีพูดถึง Redux
Session 4 : มาสร้าง Docker Cluster ด้วย Docker Swarm กันเถอะ!
Speaker: @zinuzoid
- Docker Swarm คือการเอา docker ไปรันหลายๆเครื่อง
- node เรียก Manager, node ลูก เรียก Worker(s)
- demo steps
step1 : สร้าง docker 3 เครื่อง ลง VirtualBox
$ docker-machine create --driver virtualbox node1 $ docker-machine create --driver virtualbox node2 $ docker-machine create --driver virtualbox node3 $ docker-machine lsstep2 : สร้าง Manager node/สร้าง Worker node(s)
create manager
$ eval $(docker-machine env node1) $ docker-machine ls $ docker swarm init --advertise-addr 192.168.99.103join worker node
$ eval $(docker-machine env node2) $ docker swarm join \ --token SWMTKN-1-2rhyq6dn1dmcok31k763eccl6yg11x9w49kjihe956cu162v6u-a1ehtog2sbkg6qm80yud9q4om \ 192.168.99.103:2377join another worker node
$ eval $(docker-machine env node3) docker swarm join \ --token SWMTKN-1-2rhyq6dn1dmcok31k763eccl6yg11x9w49kjihe956cu162v6u-a1ehtog2sbkg6qm80yud9q4om \ 192.168.99.103:2377step3 : link network ของทั้งสาม node
$ docker network create --driver overlay mynetstep4 : สร้าง service
$ docker service create --network mynet --name redis bkkdocker.htqk.ly:5000/redis $ docker service create --network mynet --name worker bkkdocker.htqk.ly:5000/worker $ docker service create --network mynet --name webui bkkdocker.htqk.ly:5000/webuiList service ได้จาก
$ docker ls
6tylre1bkfrp webui 1/1 zinuzoid/docker-swarm-tutorial-webui 6uravw1n4y3d worker 1/1 zinuzoid/docker-swarm-tutorial-worker 7dn95f4xdjy4 redis 1/1 redis
step5 : เอา service ไปรันใน node ( สามารถกำหนดได้ว่าจะเอา service ไปรันกี่โหนด เพื่อ balance โหลดได้ด้วย )
scale worker
$ docker service scale worker=3
ดูว่า worker ไปรันที่ไหนบ้าง
$ docker service ps worker 3se7lcj2hkwayq4zbdfjo78a8 worker.1 zinuzoid/docker-swarm-tutorial-worker node3 Running Running 36 seconds ago 9gexguhu1pi29wqke5ei8obly worker.2 zinuzoid/docker-swarm-tutorial-worker node1 Running Running 2 seconds ago 597gcaeudwq6ct5dpjwncyegw worker.3 zinuzoid/docker-swarm-tutorial-worker node2 Running Running 5 minutes ago
ดูเพิ่มเติม : https://product.hotelquickly.com/hello-swarm-mode-273702c9528e#.qtpiks6sw
Session 5 : Rust Lang
Speaker: @awkwin
- ภาษา Rust
- back by Mozilla
- ต้อง compile
- ไม่มี Null แต่มี None ซึ่งมันจะ NullPointer ตอนเอาค่ามันออกมาเท่านั้น
- ตัวแปรหนึ่งจะมีเจ้าของคนเดียว ณ เวลาหนึ่ง
- ไม่มี gc พอหลุด scope โปรแกรมจะทำลายทันที
slide : https://speakerdeck.com/whs/rust-language
Session 6 : "TurboBytes Pulse"
A Network Debugging Tool #IOT #GOLANG
Speaker: Sajal Kayan (@Sajal)
- สามารถเช็ค DNS/HTTP/TraceRoute จากทั่วโลกได้จาก https://pulse.turbobytes.com/
- เกิดจากปัญหาจะ support ลูกค้า แต่ต้องเช็ค CDN down/up จากหลายๆประเทศ
- เบื้องหลังเป็น #IoT เป็นกล่องไปวางตามที่ต่างๆ โดยตอนเริ่มเปิดกล่อง กล่องจะ connect กลับมา server
- ถ้าเอากล่องไปวาง จะ access API ได้
- ยัง support หลายๆ platform เช่น android แต่ไม่มี iOS และ desktop
- ปัญหาที่เจอ คือ การเติมเงินของมือถือของกล่อง ยังไม่สามารถทำให้ auto
- ข้างหลังเขียนด้วย ภาษา Go
slide : http://www.sajalkayan.com/present/pulse-barcampbkk-2016.html#1
Coffee Break Session : I used to work in Silicon Valley. Ask Me Anything (AMA)
Speaker: @varokas
- มีคนถามว่า ที่โน่นมี วิธีเทสยังไงไม่ให้มี bug นอกจาก methodology ปกติ
คำตอบคือ ค่าแรงประเทศเราถูก ใส่คนเข้าไปเยอะๆ แล้วเทส
แต่ที่โน่นพยายามทำหลายอย่าง เช่น automate
Session 7 : On-demand Image Processing w/ Thumbor
Speaker: @pittaya
- เขียนโดย python
- สามารถ เป็น cache server ของ image ได้
กำหนด Cache time ได้
- resize ได้ โดยใส่ size ผ่าน URL
- greyscale/watermark/... ได้โดยผ่าน URL
- smart resize สามารถใช้ face recognition กับ feature recognition ของ openCV ได้ (สามารถ configure face recognition กับ feature recognition ใน configuration file)
- กันคนเอา service ไปใช้ฟรี โดยเอา secret key ที่เรากำหนดไป hash กับ URL ที่เหลือ
- มีให้ลองบน docker https://hub.docker.com/r/elsdoerfer/thumbor/
- configuration ref : https://github.com/thumbor/thumbor/wiki/Configuration
ความคิดเห็น