รีวิว Barcamp Bangkhen 5

Suranart Niamcome
SiamHTML
Published in
4 min readNov 16, 2014
Barcamp Bangkhen 5

พอดีปีนี้ผมได้มีโอกาสไปร่วมงาน Barcamp Bangkhen ครั้งที่ 5 ครับ จึงอยากจะมาเล่าสรุปความรู้ที่ได้จากงานนี้มาให้เพื่อนๆ ที่ไม่ได้ไปได้ฟังกันด้วยครับ

รู้จักกับ Barcamp Bangkhen

งานนี้จัดขึ้นที่คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์ บางเขน ครับ โดยจุดประสงค์ของงานก็คือเพื่อแลกเปลี่ยนความรู้กันครับ โดยใครที่อยากจะพูดเรื่องอะไรก็จะมาเสนอหัวข้อเอาไว้ แล้วให้ผู้เข้าร่วมคนอื่นๆ ช่วยกันโหวตว่าอยากฟังเรื่องไหนบ้าง

ส่วนการพูดนั้นจะแบ่งออกเป็น 10 ช่วงๆ ละประมาณ 30 นาทีด้วยกันครับ โดยในช่วงเวลาเดียวกันนี้ก็จะมีหัวข้ออื่นๆ ที่พูดพร้อมๆ กันแต่คนละห้องรวมทั้งหมด 6 หัวข้อ ด้วยกัน ทีนี้เราก็จะต้องเลือกเอาเองแล้วว่าจะเข้าไปฟังหัวข้อไหนครับ ดูหัวข้อทั้งหมดได้ที่นี่

เริ่มด้วยการลงทะเบียน

พอมาถึงงานก็เข้าไปลงทะเบียนก่อนเลยครับ พอลงทะเบียนแล้ว เราก็จะได้เสื้อมาพร้อมกับสติ๊กเกอร์ที่เอาไว้โหวตหัวข้อที่เราอยากจะฟัง ส่วนใครที่ไม่ได้สมัครเข้าร่วมงานผ่านหน้าเว็บก่อนหน้านี้ก็สามารถมาลงทะเบียนที่หน้างานได้เลยครับ

register

เสนอหัวข้อ + โหวต

เมื่อลงทะเบียนเสร็จ staff ก็จะให้เราขึ้นไปที่ชั้น 2 ของตึกเพื่อโหวตหัวข้อที่ตัวเองสนใจโดยการเอาสติ๊กเกอร์ที่แจกตอนลงทะเบียนไปแปะที่หัวข้อนั้นๆ ครับ และหากใครอยากจะพูดเรื่องอะไรก็เปิดหัวข้อใหม่ขึ้นมาได้เลย

vote session
voted session 2

พิธีเปิด

ในส่วนของพิธีเปิดนั้นเป็นไปอย่างเรียบง่ายครับ มีการแจกของรางวัลให้กับผู้ร่วมงานโดยการให้ทุกคนร่วม tweet ข้อความด้วย #bcbk พร้อมๆ กัน แล้วสุ่มผู้โชคดีขึ้นมา

ceremony

ช่วงที่ 1 (10:40–11:10)

Let’s Jailbreak your iDevice (tweaks, resource & more)

ในช่วงที่ 1 ผมเลือกไปฟังเรื่องนี้ครับ จริงๆ แล้วตัวผมเองไม่ค่อยสนใจหัวข้อนี้เท่าไรครับ แต่ที่เลือกฟังเพราะอยากเจอ @dtinth ตัวเป็นๆ ซึ่งก็ได้เจอสมใจครับ น้องเค้ายังเด็กอยู่เลย เก่งจริงๆ คนนี้

How Pantip.com handle multi-million users Part 1

แต่เนื่องจากไม่ใช่แนวของผมจริงๆ จึงขอตัวออกจากห้องกลางคันไปฟังคุณ อภิศิลป์ ตรุงกานนท์ ที่มาพูดวิธีการรับมือกับ traffic มหาศาลของ Pantip.com ครับ โดยในช่วงแรกนี้ เค้าจะพูดถึง infrastructure ต่างๆ ที่ Pantip.com ใช้ในสมัยก่อน อย่าง Apache และ MySQL ซึ่งมักจะเจอปัญหาเวลาที่มีการตั้งกระทู้เข้ามาพร้อมกันมากๆ แล้วจะมีกระทู้บางส่วนหายไปครับ

ช่วงที่ 2 (11:10–11:40)

How Pantip.com handle multi-million users Part 2

ภายหลัง Pantip.com หันมาใช้ Nginx และ mongoDB แทนครับ สาเหตุหลักๆ เลยก็คือ วิธีนี้จะสามารถรองรับปริมาณการ read ได้มากกว่า(โดยใช้ replica set) และรองรับปริมาณการ write ได้มากกว่า(โดยใช้ sharding) แต่การใช้ mongoDB ก็มีข้อเสียเหมือนกันครับ ตรงที่มันจะไม่มีการ join เหมือน MySQL และการออกแบบการจัดเก็บข้อมูลก็ค่อนข้างจะลำบากกว่าเดิม

ก่อนจบ พี่เค้ายังได้ยก case study ที่น่าสนใจหลายๆ เรื่องด้วยครับ โดยเรื่องที่ผมชอบมากเลยก็คือ มีอยู่กระทู้หนึ่งที่ภายในมีแต่รูปผู้ชายหล่อล่ำเต็มไปหมด รวมๆ แล้ว ขนาดของไฟล์รูปประมาณ 80MB ได้ครับ ปรากฏว่าเจ้ากระทู้นี้ไปทำให้ bandwidth ของ Pantip.com เกือบเต็มเลยครับ ทั้งๆ ที่กระทู้นี้ คนที่ดูส่วนใหญ่มักจะเป็นผู้หญิง เพราะหากเป็นผู้ชายแท้ๆ พอเข้ามาเจอรูปผู้ชายด้วยกันก็ปิดแล้วครับ ในกรณี พี่เค้าเสนอว่าเราควรใช้ Lazy Load เข้ามาช่วย คือรอให้คนอ่านเลื่อนหน้าจอลงมาถึงรูปก่อนค่อยโหลด เพราะจะช่วยลด bandwidth ที่ใช้ไปได้เยอะมากๆ เลยครับ

ในช่วง Q&A ผมได้ถามคุณ อภิศิลป์ เกี่ยวกับเรื่องการ search ของ Pantip.com ด้วยครับ ว่าใช้วิธีอะไร เพราะเท่าที่ผมใช้ mongoDB มา มันยังไม่รองรับ full-text search แบบภาษาไทย คำตอบที่ได้ก็คือ Pantip.com นั้นเก็บข้อมูลลง mongoDB ก็จริงครับ แต่เวลา search นั้นจะใช้ elasticsearch แทน

pantip session

ช่วงที่ 3 (11:40–12:10)

เป็น Programmer นั้นเจ็บปวด! (แถมพาราแก้ปวดให้ด้วยนะ) (Startup Life, Software Dev, Architecture)

ในหัวข้อนี้ น้องคนที่พูดจะเล่าถึง software development แบบ MVC ครับ ว่ามันมีข้อเสียตรงที่ model จะไม่ค่อยยืดหยุ่นเท่าไรนัก โดยแนวทางแก้ปัญหาที่น้องเค้าเสนอก็คือการใช้ Domain-Driven Design(DDD) ซึ่งจะมี domain layer สำหรับเอาไว้กำหนด system requirement ที่เขียนโดยไม่อิงกับภาษาใดๆ เพิ่มเข้ามา ซึ่งแนวคิดนี้จะทำให้การพัฒนานั้นมีความยืดหยุ่นสูงกว่ามากครับ

ช่วงที่ 4 (13:00–13:30)

เจาะลึกกการสร้างเว็บ E-Commerce (Big Scale) ตัวจริงทำจริง

หัวข้อนี้ พี่ที่พูดรู้สึกจะเป็น IT Director ของบริษัทที่ทำ E-Commerce ครับ โดยพี่เค้าบอกว่า E-Commerce นั้นโตมากๆ เลย ในช่วงที่ผ่านมา สมัยนี้เราสามารถสร้างเว็บไซต์ E-Commerce ได้อย่างง่ายดาย ไม่ว่าจะเป็นการใช้ Online builder อย่าง tarad.com หรือ lnwshop.com หรือจะใช้ open source อย่าง WooCommerce หรือ Magento

พี่เค้าอธิบายให้ฟังว่า ตอนนี้ Magento นั้นมาแรงที่สุดครับ เพราะรองรับปริมาณสินค้าได้มากกว่าเจ้าอื่นๆ คือเหมาะกับ E-Commerce ที่มี scale ใหญ่ๆ นั่นเอง โดยฟังก์ชันทั่วไปนั้น Magento มีมาให้ในตัวหมดแล้วครับ แต่ถ้าใครอยากจะปรับให้ตรงกับธุรกิจตัวเองมากขึ้นก็สามารถไปโหลด extension มาเพิ่ม หรือจะเขียน extension ขึ้นมาใช้เองก็ได้เหมือนกันครับ

ช่วงที่ 5 (13:30–14:00)

YOUTUBE ADSENSE (+BLOG)

หัวข้อนี้พูดโดย @papayatop ครับ โดยเนื้อหาจะเกี่ยวกับการเปิดตัว YouTube Thailand เมื่อวันที่ 19 พฤษภาคม 2557 ที่ผ่านมา ซึ่งจะทำให้เราสามารถหารายได้จากการติดโฆษณาในวิดีโอของเราได้ ขอแค่เรามีบัญชีของ Google Adsense ก็สามารถนำไปใช้กับ YouTube ได้ทันทีครับ

ช่วงที่ 6 (14:00–14:30)

มาทำ Start up กันเถอะ

หัวข้อนี้พูดโดย @scomma แห่ง page365.net ครับ เนื้อหาหลักๆ ก็ตามชื่อหัวข้อเลยครับ คือ ชักชวนให้มาทำ startup กันเยอะๆ โดยคนพูดนั้น ดูออกเลยว่าเต็มไปด้วยความมุ่งมั่นครับ มีการเตรียมเนื้อหามาดีมาก และน่าสนใจตลอดการพูด มีหลายๆ จุดเลย ที่ผมชอบ เช่น การบอกว่าการทำ startup นั้นเหมือนกับการบีบอัดความเหนื่อยของช่วงชีวิตการทำงานให้สั้นลงเพียงไม่กี่ปีแรกของการทำงานครับ นั่นหมายความว่าเราจะเหนื่อยเป็นพิเศษในช่วงแรกๆ แต่เมื่อ startup ของเราโตแล้ว หลังๆ เราก็จะสบายกว่าคนอื่นๆ แล้วล่ะครับ อีกเรื่องที่ชอบก็คือ เค้าบอกว่าการเลือกสมาชิกในทีมนั้นสำคัญมากครับ แต่ละคนนั้นไม่จำเป็นต้องเก่งเท่าๆ กัน แต่สิ่งหนึ่งที่ทุกคนจะต้องมีเท่าๆ กันนั้นก็คือ “ความทุ่มเท” ต่างหากครับ

@scomma ยังมีการพูดถึง MVP(Minimum Viable Product) ด้วยครับว่ามันคือการสร้างสิ่งที่ “กากสุดแต่ยังมีประโยชน์” คือ ให้เราเน้นสร้างสิ่งที่มันง่ายๆ นี่ล่ะครับ แต่สามารถตอบโจทย์ในชีวิตประจำวันได้ แล้วเวลาจะตัดสินใจว่าจะ UI แบบไหนดีให้ใช้ข้อมูลในการตัดสินใจครับ เช่น ทำ A/B Testing แล้วเลือกใช้วิธีที่ผลลัพธ์ออกมาดีกว่า แม้ว่าทางนั้น ส่วนตัวแล้วเราจะไม่ค่อยชอบก็ตามครับ

ช่วงที่ 7 (14:30–15:00)

What we know about NSA so far?

หัวข้อนี้พูดโดยคุณ ลิ่ว แห่ง Blognone ครับ เนื้อหาก็จะเกี่ยวกับการที่ Edward Snowden ออกมาเปิดเผยถึงการสอดแนมข้อมูลของ NSA ตามที่ Blognone ได้นำเสนอข่าวมาโดยตลอดนั่นเองครับ ในช่วงท้าย คุณ ลิ่ว ได้มีการพูดถึงอุปกรณ์ต่างๆ ที่เอาไว้สอดแนมข้อมูลด้วยครับ

nsa session

ช่วงที่ 8 (15:20–15:50)

List filter w/ Pure CSS3

หัวข้อนี้พูดโดย @_Lukyth ครับ ถือเป็นหัวข้อแรกที่เกี่ยวกับ front-end ที่ผมเข้าไปฟังเลย โดยน้องจะพูดถึงการทำ filter ข้อมูลโดยใช้เพียงแค่ css ล้วนๆ ครับ หลักการก็ง่ายๆ ครับ ในส่วนของการเลือก filter นั้น เราจะต้องสร้างแต่ละปุ่มด้วย input แบบ check หรือไม่ก็ radio ครับ เพราะจะทำให้สามารถใช้ pseudo class :checked ได้ จากนั้นก็ให้ใช้ general sibling selector หรือ ~ นั่นเองครับ ในการ match element ต่างๆ เพื่อที่จะซ่อนหรือแสดง element เหล่านั้น หาก input มีสถานะเป็น checked

ช่วงที่ 9 (15:50–16:20)

Front End With Angular JS

หัวข้อนี้พูดโดยน้องที่ทำ angularjs.in.th ครับ โดยหลักๆ ก็จะเป็นการอธิบายถึงพวก directive, app, controller, filter, form และอื่นๆ อีกมากมายครับ โดยจะมีตัวอย่างโค้ดให้ดูประกอบด้วย ซึ่งจะลงรายละเอียดแค่ในระดับพื้นฐานครับ เพราะเวลามีจำกัด

ช่วงที่ 10 (16:20–16:50)

เลิกใช้ Social N.W. แบบผิดๆ ซักที!

หัวข้อนี้พูดโดย @minikoong ครับ หลักๆ แล้วจะพูดถึงพฤติกรรมการใช้ social network ที่ไม่เหมาะสมของคนในปัจจุบัน เช่น การแชร์ข่าวโดยไม่เช็คก่อนว่าเป็นเรื่องจริงหรือเปล่า การด่าคนอื่นผ่าน social network การแชร์ข่าวทั้งๆ ที่เนื้อหานั้นไม่ได้เกี่ยวกับเพจของตัวเองเลย รวมไปถึงการเอาแต่เล่น social network จนไม่สนคนรอบข้างอีกด้วยครับ

ก่อนจบหัวข้อ @minikoong ได้ทิ้งท้ายด้วยคำพูดที่เป็น signature ของสมาชิก Blognone ท่านหนึ่งที่ชื่อ devilblaze ที่ว่า “อย่าอ่าน comment ของผมด้วยการเดาน้ำเสียงของผมในใจของคุณ มันอาจทำให้คณตีความผิด”

ความรู้สึกหลังจบ Barcamp Bangkhen 5

ต้องขอบอกว่าประทับใจกับงานนี้มากๆ ครับ น้องๆ จัดกันได้ดีมากเลยทีเดียว สิ่งที่ผมชอบมากเลยก็คือ คนที่มาพูดนั้นมีทุกระดับเลยครับ ไม่ว่าจะเป็นผู้ใหญ่ใจดีที่มาช่วยเล่าถึงประสบการณ์ในการทำงานจริง ไปจนถึงน้องนักศึกษาปี 1 ปี 2 ที่เพิ่งจะเริ่มเรียนรู้กันเลยทีเดียว ซึ่งผมมองว่าสิ่งนี้ช่วยให้เนื้อหามีความหลากหลายมากขึ้นครับ เพราะถ้ามีแต่ระดับเทพมาพูด มันก็อาจทำให้เราไม่ได้เห็นมุมมองของเด็กรุ่นใหม่ๆ ก็เป็นได้ ผมก็หวังว่างานดีๆ แบบนี้จะจัดต่อไปอีกเรื่อยๆ นะครับ แล้วเจอกันใหม่ปีหน้าครับ

--

--