ข้ามไปที่เนื้อหาหลัก

บาร์แคมป์ บางกอก 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

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

สอบสัมภาษณ์ MBA คำถามและการเตรียมตัว

 * “แนะนำตนเอง” การแนะนำตนเองไม่ใช่แค่บอกชื่อ-นามสกุล ตำแหน่งงาน สถานที่ทำงาน หรือ ประวัติการศึกษาเท่านั้น ข้อมูลเหล่านี้ต้องพูดถึง แต่ไม่ใช่ประเด็นสำคัญ ส่วนที่สำคัญในการแนะนำตนเองก็คือต้องขายความเป็นตัวตนของเรา ความสามารถของเรา และ/หรือวัตถุประสงค์ในการเลือกเรียนหลักสูตรนี้  พยายามตอบคำถามให้สอดคล้องกับ MBA ไม่ต้องนาน ประมาณ 2–3 นาที เน้นเนื้อ ไม่เน้นน้ำ ซ้อมพูดเยอะๆ ถือว่าเป็น First Impression * ทำไมจึงเลือกสมัครเข้าเรียนหลักสูตรนี้  ทำไมถึงมาเรียน MBA ทำไมอยากเรียน MBA ทำไม อยากเรียนตอนนี้  * ทำไม ต้องเรียน MBA ที่นี่ -- ลองศึกษา Program ของมหาลัยที่จะไปดูน้าว่ามหาลัยมีอะไรเด่น * คิดว่าถ้าเรียน MBA จะมี Challenge อะไรบ้าง * สนใจโปรแกรมอะไรบ้าง * หลังเรียนจบอยากทำอะไร * ต้องการอะไรจากหลักสูตรนี้  เรียนแล้วคิดว่าจะได้อะไร เอาไปใช้อะไรในชีวิต * ทำไมไม่เรียนสาขาอื่น ถ้าอายุงานถึงเรียนอย่างอื่นได้ * ในองค์กรที่ทำงานอยู่สามารถเติบโตได้ถึงตำแหน่งไหน * Performance ปัจจุบันเป้นยังไง  * ดูดีอยู่แล้ว แล้วมาเรียน MBA ทำไม เพราะงานที่ทำ...

ส่งไปรษณีย์ทีละมากๆ ที่ช่องไปรษณีย์สำหรับธุรกิจ

  ถ้าเราส่งไปรษณีย์ทีละ 10 กล่องขึ้นไป สามารถไปส่งโดยใช้ช่องทางธุรกิจได้ โดยต้องกรอกใบรับฝากรวม ( Receipt for bulk Posting ) เป็นลิสต์รายการให้เขาไปด้วย โดยกรอกพัสดุแต่ละรายการ และ ไปยื่นให้เขาพร้อมกับพัสดุที่จะส่ง วิธีกรอก คือ ให้กรอกพัสดุแบบเดียวกันไว้แผ่นเดียวกัน  เช่น พัสดุ10 กล่อง กล่องขนาดเท่ากัน น้ำหนักเท่ากันหมด กรอกไว้ 1 แผ่น ถ้าน้ำหนักต่างกัน ขนาดกล่องต่างกัน กรอกแยกแผ่นไว้ดีที่สุด ซึ่งใบนี้สามารถไปขอได้ที่ไปรษณีย์ฝ่ายธุรกิจ สามารถนำมาทำใส่ A4 ก็ได้ ขอบคุณคุณพี่ amarin.ch ที่ไปรษณีย์กลาง ( BANGKOK G.P.O. ) มากๆ นะครับ สำหรับคำแนะนำ ขอบคุณที่ช่วยคีย์ให้ทีละรายการสำหรับมือใหม่ที่ยังไม่รู้ว่ามีใบรับฝากรวมอย่างผมด้วยครับ คราวหน้าผมจะทำใบรับฝากรวมไปครับ

เรื่อง matrix ที่อาจจะลืมกันไปแล้ว

Rank ของ matrix Rank ของ matrix A คือ จำนวน independent columns (หรือ rows) ของ A นั่นคือ square matrix จะ full rank ถ้า ทุกคอลัมน์ independent กัน เมื่อ full rank, det จะ = 0 วิธีหา rank อาจหาได้โดย [U, W, V] = svd(A) แล้วดูว่า rank คือ จำนวน residual ของ W ที่ไม่เป็น 0 full rank = singular matrix = หา inverse ได้ สมบัติของ rank 1. rank(AB) min(rank(A), rank(B)) ย้ำว่า wiki Null Matrix เมตริกซ์ศูนย์ (Zero Matrix หรือ Null Matrix ) คือ เมตริกซ์ที่มีสมาชิกทุกตัวเป็นศูนย์หมด Orthogonal Matrix Cramer's rule Ax = b Cramer's rule ใช้ได้เมื่อ A เป็น square matrix เท่านั้น กรณีที่มีจำนวน สมการ มากกว่าจำนวน ตัวแปร ( A mxn เมื่อ m > n ) หรือเราเรียกว่า over parameter เราไม่สามารถหา inverse ของ rectangular matrix ได้ ให้ไปใช้ psudoinverse แทน x = A + b หรือ หรือ หรือ ไปใช้ SVD แก้สมการซะ คำตอบคือ last col of v ! Gaussian elimination method ใช้แก้สมการ เช่นเดียวกับ กฏของ คราเมอร์ วิธีคิดหลักๆ คือ ทำให้สามเหลี่ยมล่างเป็น 0 ให้หมด โดยทำ row operation จา่กนั้น แทนค่ากลับไป Diagon...

วิธีการไป อย. กระทรวงสาธารณสุขจากหัวลำโพง

ทางไป : รถไฟฟ้า MRT หัวลำโพง ไปลงที่ สถานี กระทรวงสาธารณสุข  ถ้ากดที่ตู้ต้องเปลี่ยนไปหน้าจอสายสีม่วง สนน ราคา 48 53 บาท ต่อมอไซด์ ถ้าไป อย. 20 บาท จากหน้าทางเข้า  ถ้าฝนตกแนะนำให้โบกแท็กซี่จากข้างหน้า ข้างในหาแท็กซี่ยากมาก ถ้าจะเดินประมาณ 2.4 km ให้ระวังหลงเข้าไปรพ ศรีธัญญา รพ ศรีธัญญาพื้นที่ข้างในใหญ่มาก และเหมือนจะล้อมด้วยคลอง เหมือนจะมีทางออกแค่ทางที่เข้าไปนั่นแหละ ทางกลับ : รถเมล์ 97 จาก อย. ตรงข้ามประกันสังคม ทางที่ 1 : ถ้าจะใกล้ลงหน้าปากซอยขึ้นสายสีม่วงที่สถานีกระทรวงสาธารณสุขที่เดิม ทางที่ 2 : ผ่าน ท่าน้ำนนท์​ กลับเรือได้ ทางที่ 3 : ผ่านหน้าพระจอมพระนครเหนือด้วยนะ ผ่าน สถานีรถไฟฟ้า MRT บางซื่อ  ( จาก อย. ไป MRT บางซื่อ 17 บาท,  จาก MRT บางซื่อ ไป MRT หัวลำโพง 44 บาท นั่งกลับได้ 2 ทาง ทางหัวลำโพง กับ ไปเปลี่ยนที่ท่าพระ ไม่รู้ว่าทางไหนเร็วกว่ากัน ) ทางที่ 4 :  ผ่าน สะพานควาย  ทางที่ 5 :  นั่งถึงอนุสาวรีย์ชัยสมรภูมิได้ ค่ารถเมล์ 21 บาท ค่ารถไฟฟ้าไป BTS สะพานตากสิน 47 บาท 

OOTOYA อร่อย ^^

เมนูอาหาร กดที่รูปเพื่อดูรูปใหญ่ อร่อยๆ ^^ ตอนแรกเล็ง เมนูพิเศษของโอโตยะ ไว้ แต่สั่ง สลัดไก่ย่างถ่าน ซอสเบซิล ไป ผักเยอะมากแต่อร่อยดี ยังได้แอบชิมของคนอื่นด้วย ปลาชิมาฮอกเกะย่างถ่าน ตัวเบ้อเริ่มเลยอ่ะ รสคล้ายๆปลาช่อน แล้วก็ของหวาน ไอศกรีมในน้ำเต้าหู้ ที่พี่กุ๋ยบอกว่า เคยเข้ามาที่ร้านแล้วสั่ง อย่างเดียวมาแล้ว ถั่วแดงเขาทำได้อร่อยมาก แต่ดันไม่มีขายถั่วแดงต้มอ่ะดิ เมนูของหวาน กดที่รูปเพื่อดูรูปใหญ่ ถ้าสั่งเป็นชุด ข้าวเติมฟรี เติมไป 2 ชาม น้ำชาเขียว refill ฟรี ชาเขียวที่นี่เขาใส่งาด้วย เหมือนที่เคยกินที่ร้าน อากะ (AKA) ที่ชั้น 7 centralworld บางคนเขาไม่ชอบกัน แต่เราเฉยๆนะ ก็อร่อยดี ข้อเสีย คือ เสริฟ ช้า ไม่ควรกินไปตอนเร่งรีบ แต่ เล็งไว้ละ ไว้จะไปกินใหม่ สาขา และ เบอร์ติดต่อ กดที่รูปเพื่อดูรูปใหญ่

อยู่เหงาๆ เราไปเที่ยว - ไหว้พระขอพร ศาลเจ้าแม่ทับทิม (อาม่า), เจริญกรุง, กรุงเทพ; 天后聖母廟, 石龙軍路, 曼谷, 泰国; Thap Thim Chinese Goddess Shrine, Chareon Krung 63 Road, Bangkok, Thailand

天后聖母廟, 石龙軍路, 曼谷, 泰国 ไหว้ศาลเจ้าแม่ทับทิม ขอให้การค้าเจริญรุ่งเรือง ตำนานเจ้าแม่ทับทิมเกิดที่ตำบลตุ้ยบ๊วย เขตบ่นเซียว เกาะไหหลำ มีผู้เฒ่าแซ่พัว เป็นผู้มีความซื่อสัตย์สุจริต ทำงานขยันขันแข็ง ครั้งหนึ่งแกออกไปหาปลา โดยผูกแหเป็นช้อนดักปลา เวลาผ่านไปแกยังหาปลาไม่ได้ คืนนั้นก็ประสบความล้มเหลว เมื่อช้อนแหขึ้นมาทีไรก้อมีแต่ท่อนไม้ ด้วยความโมโหแกเลยขว้างท่อนไม้นั้นออกไปให้ไกล แต่แล้วเมื่อช้อนแหขึ้นมาใหม่ก็ปรากฏท่อนไม้ท่อนเดิมอีก ต่อจากนั้นแกก็ขว้างท่อนไม้ขึ้นฝั่ง และแกก็ฉุก คิดว่าแปลกที่ท่อนไม้ธรรมดาจะสามารถลอยทวนน้ำได้ คงจะเป็นสิ่งวิเศษ และแกก็ได้นำท่อนไม้นั้นขึ้นฝั่ง และเพ่งมองท่อนไม้นั้นพร้อมกับอธิษฐานว่า หากท่อนไม้นี้มีความศักดิ์สิทธิ์ขอให้คืนนี้จับปลาได้มาก เมื่อพ้นจากความจนแล้ว เมื่อขึ้นฝั่งจะนำท่อนไม้นี้แกะสลักเป็นเทวรูปศักดิ์สิทธิและสักการะบูชาเช้าวันไม่ให้ขาด เมื่ออธิษฐานจบแกเอาท่อนไม้นั้นวางบนหัวเรือ ปรากฏว่าช้อนเพียงสองถึงสามครั้งก็ได้ปลาตัวโตเต็มเรือ จึงนำปลาขึ้นฝั่งวันนั้นปลาของแกขายได้ราคา เพราะชาวประมงคนอื่นจับได้น้อยแกจึงมีเงินจับจ่ายใช้สอย และทุกครั้งที่แกออกหาปลา ...

คำนวณค่าน้ำมัน

ใครทำไว้ไม่รู้แต่แบบว่าดีย์  ตัวอย่างวิธีคิด  ( น้ำมันลิตรละ 22 บาท/ลิตร ) / ( ใช้น้ำมัน/กิโลเมตรต่อลิตร 10 กม/ลิตร ) * 40 กม = 88 บาท ถ้ารถติดใช้น้ำมัน 10-14 กม. / ลิตร ถ้าทางตรงวิ่งปกติ 15-20 กม / ลิตร ราคารถไฟฟ้าไปกลับ 118 บาท แถมต้องต่อรถหลายต่อดีออก

วิจารณ์ แสงแห่งศตวรรษ syndrome of the century ( สปอยแหลก )

แสงแห่งศตวรรษ ใครอยากไปดูในโรงหนัง หรือ จะซื้อแผ่นที่ uncensor มาดู หยุดอ่านซะ เดี๋ยวรู้เรื่องก่อนแล้วไม่สนุก เราดูเวอร์ชั่น uncensor จนจบแล้ว อ่านในบล๊อกเขาที่เขาอธิบายความหมายแล้ว ขอบคุณ neogravity สำหรับแผ่นนะครับ ความเห็นส่วนตัวเรื่องการเซ็นเซอร์หนังเรื่องนี้ 1. บรรทัดฐานการเซ็นเซอร์ไม่เหมือนกัน ทั้งหนังโรงไทย หนังโรงฝรั่ง หรือ ละครโทรทัศน์ 1.1 ของขึ้น ดูแล้วน่าจะเป็น "ของปลอม" แต่กลับไม่มีการเซ็นเซอร์ "ของปลอม" ในหนังฝรั่งหลายๆเรื่อง 1.2 ไม่รู้ว่าเป็นหน่วยงานเดียวกันหรือเปล่าที่เซ็นเซอร์ โรงหนัง กับ ละครโทรทัศน์ แต่ควรเป็นบรรทัดฐานเดียวกัน หมอกินเหล้า จากที่ดู หมอในเครื่องแบบไม่ได้จิบเหล้า ทั้ง อาจารย์หมอที่เทเหล้า ก็ไม่ได้ใส่เครื่องแบบ เหมือนในเรื่อง สงครามนางฟ้า พระดีดกีตาร์ โดนเซนเซอร์ แต่พระเอกข่มขืนนางเอกในละคร ฉายได้ ( จริงๆ มีโอกาสเป็นไปได้ โดยอารมณ์ของตัวหนัง ที่ทำให้พระไปดีดกีตาร์ได้ จริงอยู่เป็นเรื่องที่ไม่เหมาะ (อ่านในความเห็นส่วนตัวเกี่ยวกับหนังเรื่องนี้ ข้อ 11) แต่ด้วยเหตุผลหลายๆเรื่องย่อมเป็นไปได้ และภาพที่ออกม...

ข้อแตกต่างระหว่าง Mahalanobis distance กับ Euclidean Distance : ทำไม และ เมื่อไหร่ ต้องใช้ Mahalanobis distance ใน data mining

Euclidean Distance นิยาม EuclideanDistance = sqrt(sum( (A - B) .^ 2 )) โชว์เหนือ เขียนแบบ linear algebra EuclideanDistance = norm(A - B) ข้อเสียของ Euclidean distance 1. sensitive to scales ของตัวแปร ในกรณี geometric ตัวแปรทุกตัวมีหน่วยเดียวกันหมด คือ ระยะทาง แต่เมื่อพิจารณาตัวแปรที่มีข้อมูลหลายชนิดพร้อมๆกัน เช่น ใน data mining เราอาจจะพิจารณา อายุ, ความสูง, น้ำหนัก ฯลฯ พร้อมๆกันหมด สเกลมันเอามาเปรียบเทียบกันไม่ได้ 2. Euclidean distance ใช้กับตัวแปรที่ correlated กันไม่ได้ เช่น สมมติว่าเรามี data set 5 ตัวแปร ที่ซึ่งค่าของตัวแปรหนึ่งเหมือนกับอีกตัวแปรหนึ่งเด๊ะๆ ( กรณีนี้เหมือนเด๊ะ เลยเป็น completely correlated ) Euclidean distance จะคำนวณโดย weight ข้อมูลที่ซ้ำกันมากขึ้น ทำให้มีปัญหา Mahalanobis distance นิยาม เมื่อ S คือ covariance matrix และ x, y มี distribution เดียวกัน Mahalanobis distance มันพิจารณ่า covariance matrix ไปด้วย เลยขจัดปัญหาเรื่อง scale และ correlation ที่ Euclidean Distance มีได้ ใน MATLAB ใช้ฟังก์ชั่น mahal() หรือ pdist() ดูตัวอย่าง mahaldist.m ของคุณ Peter J. Ackl...

ถังดับเพลิง ตรวจสภาพยังไง, ถังดับเพลิงแบบไหน ดูยังไง

ถังดับเพลิงแบบไหน ดูยังไง * ผงเคมีแห้ง Dry Chemical Powder ภาพจาก safetymanshop.com ผงเคมีแห้ง Dry Chemical Powder : ถังแดง  สามารถดับเพลิงประเภท A,B,C,D วิธีตรวจถังดับเพลิงแบบผงเคมีแห้ง * ดูที่เข็มมาตรวัด ถ้าสีเขียวคือโอเค ถ้าเข็มเอียงมาทางซ้ายในโซนสีแดง ต้องเติมแรงดัน * ให้คว่ำและฟังการไหลของผงเคมี ถ้าไม่มีการเคลื่อนไหว แสดงว่าสารเคมีหมดอายุจับกันเป็นก้อน * สายฉีด ตัวถัง ด้ามจับ มีแตกชำรุด อุดตันหรือไม่ ภาพจาก uandnsupply.safety * ฮาโลตรอน Halotron  ภาพจาก safetymanshop.com ฮาโลตรอน Halotron : ถังเขียวต้องดูอีกทีเพราะถังเขียวอาจใส่สารได้หลายแบบอาจไม่ใช่ฮาโลตรอน  ไม่ทิ้งคราบสกปรกไว้  สามารถดับเพลิงประเภท A,B,C * คาร์บอนไดออกไซด์ CO2 ภาพจาก safetymanshop.com คาร์บอนไดออกไซด์ CO2 : ถังแดงปากแตร  ไม่เหลือกากไว้  เหมาะกับ ตู้ไฟ ห้องคอม ห้องเซอร์เวอร์ ห้องเครื่องเสียง สามารถดับเพลิงประเภท A,B,C วิธีตรวจถังดับเพลิงแบบ CO2 ให้ชั่งน้ำหนักถังและเทียบน้ำหนักที่แจ้งไว้ในเสปคถังดับเพลิง * สเปรย์ สเปรย์ : สามารถดับเพลิงประเภท K เหมาะกับใช้ในครัว สูตรน้ำดีกว่าสเปรย์โฟม ...