วันเสาร์ที่ 15 ตุลาคม พ.ศ. 2559

บาร์แคมป์ บางกอก 2016 ณ TKPark ( Barcamp Bangkok 2016 ) #BarcampBKK



เฉพาะ 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/

Intro to Ray Tracing # ComputerGraphic
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 ls
step2 : สร้าง Manager node/สร้าง Worker node(s)
create manager
$ eval $(docker-machine env node1)
$ docker-machine ls
$ docker swarm init --advertise-addr 192.168.99.103
join worker node
$ eval $(docker-machine env node2)
$ docker swarm join \
--token SWMTKN-1-2rhyq6dn1dmcok31k763eccl6yg11x9w49kjihe956cu162v6u-a1ehtog2sbkg6qm80yud9q4om \
192.168.99.103:2377
join another worker node
$ eval $(docker-machine env node3)
docker swarm join \
--token SWMTKN-1-2rhyq6dn1dmcok31k763eccl6yg11x9w49kjihe956cu162v6u-a1ehtog2sbkg6qm80yud9q4om \
192.168.99.103:2377
step3 : link network ของทั้งสาม node
$ docker network create --driver overlay mynet
step4 : สร้าง 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/webui
List 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

ไม่มีความคิดเห็น:

LinkWithin

Related Posts Plugin for WordPress, Blogger...