เหตุการณ์

สรุปสิ่งที่ได้รับจากงาน Google I/O Extended Bangkok

สด ๆ ร้อนกับงานสัมมนาครั้งใหญ่ประจำปีเลยก็ว่าได้สำหรับบริษัทยักษ์ใหญ่อย่าง Google ที่จัดขึ้นเป็นประจำของทุก ๆ ปี ในเมืองไทยจัดสัมนางาน Google I/O นี้มาแล้ว 9 ครั้ง และครั้งนี้เป็นครั้งที่ 10 แล้ว แต่ละครั้งจัดได้ยิ่งใหญ่ทุกครั้ง

กำหนดการของงานจัดในวันเสาร์ที่ 25 มิถุนายน 2559 เวลา 9.00 – 18.30 น.
สถานที่ ณ โรงภาพยนตร์สยามภาวลัย สยามพารากอน ชั้น 6

โดยมีเงื่อนไขการเข้าร่วมงานว่า
800 ท่านแรกที่ลงทะเบียนรับป้ายชื่อหน้างานจะได้รับ Google Cardboard
600 ท่านที่ลงทะเบียนรับป้ายชื่อถัดไปจะได้รับเสื้อ Google I/O

เมื่อได้เวลาก็เริ่มทะเบียนกัน

P6250351 P6250356

P6250360

ลงทะเบียนเสร็จ ได้เวลาเริ่มงานก็เริ่มทยอยเดินเข้าร่วมงาน

P6250368

P6250369

เมื่อผู้เข้าร่วมงานทุกคนพร้อมผู้บรรยายพร้อมก็เริ่มงานกันเลย

การเปิดงานในครั้งนี้ได้รับเกียติจาก Mr. Soonson Know ที่ทำหน้าที่ดูแล Google Developer ในส่วน South Asia ทั้งหมด (ลองคิดดูว่ากว้างใหญ่ขนาดไหน ผมว่าสุดยอดมาก)




ผ่านไปก็แนะนำสปอนเชอร์ใหญ่ของงานนี้ บริษัท กสิกร บิสซิเนส-เทคโนโลยี กรุ๊ป (KASIKORN Business-Technology Group: KBTG) เป็นกลุ่มบริษัทที่อยู่ในเครือข่ายของกสิกรไทย เน้นไปทางพัฒนาเทคโนโลยีใหม่ ๆ รองรับการทำงานในอนาคต เมื่อสปอนเชอร์ใหญ่กว่าจบก็เริ่มเข้าเนื้อหาหลักของงานนี้คือเทคโนโลยี Mobile App &  Web App โดยทางทีมงานจะแบ่งการบรรยายออกเป็น 2 ห้องโดยแบ่งเป็น ห้องบรรยายหลักจะบรรยายเรื่องเทคโนโลยีที่เกี่ยวข้องกับสายการพัฒนา Mobile Platform โดยเฉพาะ ให้ชื่อว่าห้อง Auditorium โดยมีหัวข้อการบรรยายหลัก ๆ ดังนี้

  • What’s  New In Android N
  • Android Studio 2.2 & New UI Design โดยแบ่งเรื่องสิ่งที่ปรับปรุงใหม่ได้ดังนี้
    • Design
      • ปรับปรุงเรื่อง Layout Editor ซึ่งทำให้การออกแบบ UI ของ APP ง่าย สะดวกและรวดเร็วขึ้น ปรับปรุงเรื่อง Responsive เพื่อให้การพัฒนาสำหรับ UI Device ที่มีหลายขนาดทำได้งานยิ่งขึ้น และตบท้ายด้วย
      • Layout Inspector ทำให้เราสามารถมอง object ที่วางแบบ grid layout งานต่อการตรวจสอบ
    • Develop
      • Firebase plugin ช่วยทำให้การพัฒนา App ให้สะดวกรวดเร็วยิ่งขึ้นในด้านการใช้งานข้อมูลต่าง ๆ
      • Sample code browser ช่วยให้นักพัฒนาดูตัวอย่างโค๊ดที่ทางทีมพัฒนาส่วนใหญ่เคยนำ Class หรือ Method นี้ไปใช้งานอย่างไร (ผมว่ามันค่อนข้างจะช่วยเราได้เยอะมากเลย)
    • Build
      • Instant Run ช่วยปรับปรุงเรื่องการทำงานนี้เพื่อช่วยให้การ build project รวดเร็วขึ้น (เร็วขึ้นหลายเท่าจริง ๆ เห็นมากับตาผมเลย)
      • Merge Manifest Viewer จะเพิ่มความสามารถในการตรวจสอบ Code ในส่วนไฟล์ AndroidManifest.xml ว่าส่วนที่ import เข้ามาใช้งานได้ถูกเรียกใช้งานที่ method การทำงานใด
      • Project Structure Dialogue, Jack compiler
    • Test
      • ปรับปรุง Android Emulator ที่ใน Version ก่อน ๆ ถือว่าทำได้ช้ามาก ๆ จนต้องไปพึ่งพา Tools อื่น ๆ อย่าง Genymotion แต่มาเวอร์ชั่นนี้ทำงานได้เร็วกว่าเดิมหลายเท่าตัว (น่าจะทวงตำแหน่งคืนได้แน่ ๆ)
      • Espresso Test Recorder เป็น Android Test UI ที่จะแปลงผลการทดสอบจากการทำปฏิสัมพันธ์กับหน้าจอ และ จะแปลงเป็นผลการทดสอบของ Espresso สามารถติดตามผลได้จาก Firebase API ได้เลย
  • Play Store Best Practices การจัดการพื้นที่ทำเงินของเราอย่าง Google Play โดยยอดนักการตลาดที่พัฒนาเกม Unlock Me ทำยอด Download กว่า 140 ล้านครั้งแล้วนะตอนนี้
  • Advanced Espresso
  • Introduction to Firebase คือ Real Time App Platform คือให้บริการ API สำหรับการส่งข้อมูลแบบ Real Time รองรับหลาย Platform สามารถเขียนได้หลายภาษา
  • Firebase Cloud Messaging
  • Firebase Android Codelab
  • VR at Google

และห้องบรรยายอีกห้องเน้นหนักไปทาง Web Platform ให้ชื่อห้องว่าห้อง Workshop Room มีหัวข้อบรรยายดังนี้ (ข้อเสียอย่างเดียวของห้องนี้คือ รองรับคนเข้าอบรมได้ 100 กว่า ที่ เท่านั้น )

  • Deep dive into Processive Web Apps (PWA) เป็นแนวทางการทำเว็บ ให้ออกมาเหมือน App กล่าวคือ offline ก็ยังทำงานอยู่บน Browser
  • Polymer & Progressive Web Apps Building on the modern web เน้นหนักไปทาง Coding เลย
  • Having some fun with angular 2 and Firebase
  • Service Worker session
  • Firebase Build a RealTime Web Chat Apps
  • Build a PWA with Firebase, Polymerfire And Polymer Component Codelab
  • Introduction To UX
  • Introduction To GCP & Machine Learning

สำหรับตัวผมเองก็เกิดความสนใจในด้านเว็บเป็นพิเศษเลยเข้าร่วมห้อง Web Apps Room แต่ด้วยขนาดห้องที่รองรับคนได้น้อยจึงอยู่ได้ไม่จบงาน จึงขอเอาหัวข้อมาให้ทุกคนได้เอาไปเป็นแนวทางค้นหาข้อมูลต่อไปได้




 

แชร์ประสบการณ์เข้าร่วมงาน Barcamp Bangkhen 2015

22-Nov-15 7-48-43 PM

สวัสดีครับเพื่อนที่ติดตามบทความบล๊อก poolsawat.com มา เนื่องจากบทความนี่น่าจะเป็นบทความแรกของเดือนนี้ก็ว่าได้หลังจากที่ไมได้อัพเดทเนื้อหามาได้สักระยะนึง วันนี้ก็จะมาขอแบ่งปันเรื่องราวดีๆของเหตุการณ์ในวงการการโปรแกรมเมอร์ไทย ณ ปัจจุบันมีเทคโนโลยีได้เดินหน้าไปถึงไหนแล้ว ได้มีโอกาสเข้าร่วมงาน Barcamp Bangkhen 2015 (งานจัดขึ้นเป็นครั้งที่ 6 แล้ว) จัดขึ้น ณ มหาวิทยาลัยเกษตรศาสตร์ วันที่ 22 พฤศจิกายน 2558 09:00 – 17:00 ผู้เข้าร่วมงานประมาณ 500 ท่าน โดยงานจะแบ่งเป็น 3 ช่วง

ช่วงเช้า 09:00 – 12:00

09:00 ลงทะเบียนเข้าร่วมงาน ถ้ามีการลงทะเบียนในเว็บไซต์ Barcampbangkhen นี้แล้วให้นำเลขการลงทะเบียนไปบอกเจ้าหน้าหน้างาน แล้วจะได้ป้ายชื่อ ,คูปองอาหาร ,สติกเกอร์ Vote Session ,เสื้องาน ฯลฯ

12290553_956937857676957_1629070462_o

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

20151122_120906

12279216_10205025336224221_8077927913407142312_n

 

17201 17302 17303 17304 17401 17402
10:40 – 11:05

 

Why React.js is awesome
@dtinth

 

A big leap of javascript app development
@kaizerwing

 

สร้างแพลตฟอร์มแบบ Wongnai ต้องใช้อะไรบ้าง
pattrawoots(CTO Wongnai)

 

เป็น startup มันเหนื่อย(แต่มันส์)
Sellsuki

 

Why business intelligence doesn’t fly, will big data change that?
@p_warawit

 

User experience for software developers.
ART(@PANUTA)
11:10 – 11:35

 

#หมูกรอบ
@public_nrad6949

 

เมื่อหลังชนฝา ก็ไปทำงาน Singapore
@scalopus

 

How to pass a technical interview.

 

ไขข้อสงสัยอะไรคือDJ? part 1: ตกลงเขาทำไรกัน
@5argon

 

ปัญหา Sotus ในมัธยมไฉนถึงสำคัญ
@boon8628

 

์Machine learning คือ?
@zKanCS
11:40 – 12:05

 

Google Cardboard
@witoh GDG Thailand

 

ปิดโฆษณาเว็บที่พึ่งเข้าไม่ให้ตามหลอกหลอนเราทุกเว็บ
@icez

 

ชีวิตทาส IT ณ เยอรมัน
แมวน้ำ @LXZE

 

ไขข้อสงสัยอะไรคือDJ? part 2: มาลอง mix กัน
@5argon

 

Real Startup life in Thailand
Siphog&Din

 

Online Payment กำลังจะมา ระวังจะตกขบวน(น๊ะจ๊ะ)
@ponear
Lunch
13:00 – 13:25

 

Let’s hack Atom text editor
@dtinth (Thai)

 

MA101 Mathematics in Real Life
Xrypto

 

ฟุตบอลไทย คุณถามผมตอบ (ถ้าตอบได้นะ)
@toom2236

 

How to find great carreer oppotunities in IT (EN)
Shane Torr (CEO)

 

Game in Thai’s society!
@mangokarn @vvMmOvv

 

NETPIE Platform of internet of everything
Fres_bon
13:30 – 13:55

 

จะทำระบบ Search ไม่ใช่แค่ให้หาเจอแต่ต้องจัดอันดับให้ดีด้วย
Wongnai (TH)

 

Warp-Up มีอะไรใหม่ใน PHP7
@scalopus

 

ประสบการณ์กว่า 15 ปี ที่เขาเรียกว่า Startup
สำเร็จ

 

Three Tech Talk ทอร์กไอทีโดยมุมมองของ 3 สาวก
@Betcon + friends

 

Internet Studies เรียนทำไม? เพื่ออะไร?
@public_nrad6949

 

Australia 1 ปี Make Money & ประสบการณ์
Maily Samonwan
14:00 – 14:25

 

Let’s talk Anime จับกระแสการ์ตูน anime พร้อมช่องทางดูฟรี
aum2u

 

โค๊ด Android บนโดรน DJI
มาสเตอร์อึ่ง

 

เทคนิคการทำใบขับขี่ภายใน 2 วัน

 

แอพเส้นทางรถเมล์กับเรื่องที่ต้องทำใจ(มีอะไรบ้าง)
@wissarut106

 

มาเป็นทาสแมวกัน
@ChameleomTK

 

เรียนรู้วิธีเรียนรู้ #notechnical #noprogramming
ลุงตู่ @dsatoji
14:30 – 14:55

 

Stalker 101 (มาส่องเฟสกันเถอะ)
@ratitada

 

Isomorphic Javascript
Suranart

 

Git & Github (Basic มั้ง)
@kanitkornk

 

How to simulate Ocean 101
takkasila

 

Slimmer iOS’s ViewController with MVVM and RxSwift
@offfffz

 

Barcamp บางเขน VS บางกอก ความเหมือนและความแตกต่าง (Discussion)
Aqua V
Break
15:20 – 15:45

 

สร้างอนิเมชั่นยืดหยุ่นแบบสปริงด้วย css, แคลคูลัส, กลศาสตร์
@dtinth(Thai)

 

Start up MVP สรุปแล้วคืออะไร feature เท่าไหร่ถึงจะพอ
Sellsuki

 

FIDO U2F Authentication
@public_lewope

 

เห้ย! Powerpoint ก็ทำ Animation ได้นะเว้ย! (ง่าย!)
minikoong

 

คหสต. ความเห็นส่วนต่างในความเห็นส่วนตัวบนโลกออนไลน์
@ds41744

 

เตรียมสัมภาษณ์งาน Programmer สำหรับประสบการณ์ 0 ปี
mr_ta
15:50 – 16:15

 

Hack เว็บรัฐไทยอย่างไรให้ถูก(กฎหมา(ย))
@jeremyfanclub

 

Firefox browser/OPS + Rust
VEE SATAYAMAS

 

THE FACE THAILAND or fake?
@mangokarn

 

ทำไม Product (Project) ถึง Delay! Deadline vs Quality 1
CPE19 Levelup

 

How to perfect? แต่งรูปให้สวยใสสไตล์เน็ตไอดอล
@SamkmBF

 

ความสำคัญของการสร้างแลนด์มา์ค
Aqua V
16:20 – 16:45

 

การทำเกมส์ไม่ได้ใช้แค่การเขียนโปรแกรม
Gaming Idea

 

เป็น DJ มันเจ็บปวด!! (รวมทุกเรื่องดีและร้ายในวงการ DJ ไทย)
@dotnfo

 

Progress Web App
@kanitkornk

 

ทำไม Product (Project) ถึง Delay? Deadline vs Quality 2
CPE19 Levelup

 

E85: Should you use it? (TH)
@Lattefrappe

 

Fabric: Make your DevOps life better (TH)
@zKanCS

20151122_121033

ต่อไปนี้ผมจะขอสรุป session ที่ได้เข้ารับฟังบรรยายนะครับ เพราะช่วงเวลาแต่ละช่วงจะเลือกเข้าฟังได้อย่างเดียวเท่านั้น (ใครจะแยกร่างได้เนอะ เหอะๆ)

10:40 – 11:05 ผมเลือกเข้าห้อง User experience for software developers.

สรุปคำบรรยายจะพูดถึงเรื่องการออกแบบหน้าจออย่างไรให้เหมาะกับผู้ใช้งาน

  • สี ขนาด ตำแหน่ง ของปุ่ม submit
  • หน้าเพจการเข้าระบบให้เลือกใฃ้คำที่เข้าใจง่าย
    • Sign in กับ Sign Up คำใกล้เคียงกันไม่แนะนำให้ใช้
    • Sign in กับ Login พอใช้งานได้แต่ถือว่ายังไม่ค่อยดีเท่าไหร่
    • Register กับ Login แนะนำแบบนี้เพราะ ถือว่าคำแตกต่างกันทำให้เข้าใจง่ายในการใช้งาน
  • ช่อง username ก็ควจจะใช้เป็น email ไปเลย เพราะถือว่าเป็นข้อมูลพื้นฐานและไม่ซ้ำกัน
  • password ควรจะดัก ความ strong ของ password ไม่ควรให้ง่ายจนเกินไป เรื่องนี้ jquery มีให้ใช้ก็ใหเอามาใช้ซะ
  • เลือกให้วามสำคัญกับระบบงานให้เหมาะสม เช่น การลบข้อมูลก็ควรจะแสดง information ของข้อมูลที่จะลบ เพื่อให้ user แน่ใจว่ากำลังจะลบข้อมูลที่ต้องการลบจริงๆ
  • ฯลฯ .

11:10 – 11:35 ์Machine learning คือ?

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

โดยมีหัวข้อหลัก ๆ 3 หัวข้อ

  • Feature Extraction
  • Regularization<
  • Cross-validation

หัวข้อนี้ก็ไม่บรรยายมาก เพราะผมเองก็ไม่ค่อยเข้าใจเท่าไหร่

11:40 – 12:05 Google Cardboard GDG Thailand

สรุปคำบรรยายหัวข้อนี้พูดบรรยายถึงอุปกรณ์ที่เลือกว่า Cardboard ซึ่งเจ้าอุปกรณ์มีไว้ใช้ควบคู่กับอุปกรร์มือถือพกพาขนาดเล็ก ใช้สำหรับดูภาพ วิดีโอเสมือนจริง เช่น Google Street View ,Youtube 360 เป็นต้น

cardboard

Cardboard | Google Developer

หลังจากจบการฟังการบรรยายในช่วงเช้าเรียบร้อยจนหมดเวลาต่อไปถึงเวลาการรับประทานอาหารช่วงบ่าย เราก็ต้องใช้คูปองอาหารที่ได้รับในช่วงเช้ามาแลกอาหาร ซึ่งอาหารก็เพียงพอกับทุกคน

20151122_121100

20151122_121308

จากภาพผมไปสองคนนะครับ เดี๋ยวหาว่าผมกินเยอะ ออกตัวไว้ก่อน

ต่อช่วงบ่าย

 13:00 – 13:25  How to find great carreer oppotunities in IT (EN)

สรุปคำบรรยายซึ่ง session นี้เป็นการบรรยายภาษาอังกฤษทั้งหมดจึงยากที่จะทำความเข้าใจ แต่จับประเด็นได้เรื่องวิธีการหาโอกาสในการทำงานที่ดีในด้านไอที และผู้บรรยาย เน้นว่าทักษะที่เป็นอย่างมากในสายงาน IT ที่จะทำให้เราเติบโตได้เร็วคือ English Skill ที่ทางทีมสัมภาษณ์เลือกดูเป็นสิ่งแรก
13:30 – 13:55 จะทำระบบ Search ไม่ใช่แค่ให้หาเจอแต่ต้องจัดอันดับให้ดีด้วย
สรุปคำบรรยาย จะกล่าวถึงการทำงานของระบบ search engine ในการค้นหาข้อมูล รวดเร็วและมีประสิทธิภาพ เข้าทำงานกันอย่างไร โดยแนะนำเครื่องมือเพื่อช่วยในการค้นหาข้อมูลที่มีชื่อว่า
  • Apache Lucene
  • Apache Solr

แนะนำเครื่องมือ 2 ตัวนี้จะทำให้ระบบ full text search ของเราทำงานได้อย่างดีและยอดเยื่ยม โดย session นี้จะเน่นไปทางบรรยายทาง technical กับ เรื่อง Coding ซะมาก โดย Apache Lecene จะคล้ายกับ Elasticsearch อย่างมากเพราะพัฒนาต่อยอดกันมา

14:00 – 14:25  โค๊ด Android บนโดรน DJI มาสเตอร์อึ่ง
สรุปคำบรรยาย session นี้เป็น session ที่เป็นการร่วมกันระหว่างอุปกรณ์ hardware อย่างเจ้า Drone ที่ใช้ระบบควบคุมการการเขียนโปรแกรมผ่านระบบปฏิบัติการ Android ควบคุมการถ่ายภาพ ภ่าย วิดีโอ โดยผู้บรรยายอธิบายการใช้งาน API  Drone ค่าย DJI ที่มี SDK ให้ developer สามารถไปพัฒนาต่อยอดได้
20151122_140944
 ภาพ Drone ที่ใช้งานการทดสอบ
14:30 – 14:55 Isomorphic Javascript Suranart
สรุปคำบรรยายพูดถึงวิวัฒนาการของการพัฒนาเว็บไซต์ตั้งแต่อดีตมจนถึงปัจจุบัน และพูดถึง Javascript Framework ที่กำลังฮอตฮิตในปัจจุบันอย่าง React ยกตัวอย่างเว็บไซต์ที่พัฒนาด้วย Isomorphic Javascript อย่าง Kaidee,Sanook Music
มาถึงฃ่วงเวลานี้นี้ก็พักทานอาหารกันก่อน
20151122_150359
อาหารว่างจะเป็นขนม ไทยๆ ไอศกรีม น้ำดื่มเย็น ๆ และทุกอย่างก็ท่านไม่อั้นอีกเหมือนเดิม
ต่อ session หลังพักเบรค
15:20 – 15:45 เห้ย! Powerpoint ก็ทำ Animation ได้นะเว้ย! (ง่าย!)
สรุปคำบรรยาย session นี้ค่อนข้างแปลกใจว่า animation จะใช้ Power point ทำได้เหรอ แต่ไปเห็นผลงานของผู้บรรยายที่ใช้ส่งเข้าประกวด บอกเลยว่าการทำวิดีโอเนียนมากไม่อยากจะเชื่อว่าใช้ power point ทำเลยจริงๆ
15:50 – 16:15  Hack เว็บรัฐไทยอย่างไรให้ถูก(กฎหมา(ย))
สรุปคำบรรยาย session นี้ค่อนข้างมีเนื้อหารุนแรง (เขาบอกว่าพวกโลกสวยอย่าเข้าฟัง แต่ผมเข้าฟังนะ) จะพูดถึงเรื่องการ Hack เว็บและมีเรื่องประเด็น Single Gateway มาด้วยนิดหน่อยผมว่าสนุกดีไม่น่าเบื่อ
16:20 – 16:45 Progressive Web App
สรุปคำบรรยาย พูดถึงเรื่องการพัฒนาแอพที่ถือว่าเป็นเรื่องใหม่ในอนาคตข้างหน้านี้ feature ที่ติดมากับ Browser ที่เรียกว่า Service Worker ช่วยให้ Browser ชองเราเก็บ cache data ไว้ที่ Browser เพื่อให้ web app ของเราทำงานได้แม้ในสถานะ offline (NO internet)
หลังจากเหน็ดหนื่อยจากการรับฟัง session ต่าง ๆ จนมาถึงเวลานี้ช่สงท้ายของงาน มี Party เล็ก ๆ ให้พวกเราได้นั่งฟังเพลง ชิว ๆ ก่อนกลับบ้านมีอาหารให้รับประทาน และมีกิจกรรมแจกของรางวัลก่อนที่ทุกคนจะแยกย้ายกันกลับบ้าน ^0^
12249816_10205025332264122_2548814252991844871_n

แชร์ประสบการณ์เข้าร่วมงาน AWS Meetup ครั้งที่ 6

posterresize-1

สวัสดีทุกท่านที่ได้ติตตามเรามาตลอด วันนี้จะขอมาเล่าประสบการณ์การได้เข้าร่วมงาน Meetup ของทางกลุ่ม #Bangkok AWS User Groups ทางกลุ่มเขามีการจัดงานแบบนี้มาแล้ว 5 ครั้ง และครั้งที่ 6 นี้ผมก็ได้มีโอกาสได้เข้าร่วมฟัง เนื้อหาของงานเป็นอย่างไรแล้ว เขาได้จัดทำอะไรบ้าง

agendaresize-1

เนื่องจากวันที่จัดงานเป็นวัน พฤหัสบดีที่ 22 ตุลาคม 2558 ไม่ได้เป็นวันหยุดสุดสัปดาห์ งั้นก็ต้องเหนื่อยกันหน่อยแล้ว ปกติวัน จ-ศ ผมก็ทำงานปกติเลิกงาน 17.30 เลยต้องทำเวลากันหน่อยขับมอเตอร์ไซต์ออกจากที่ทำงานไปทางเส้นพหลโยธิน เพื่อมุ่งหน้าไปสู่ SCB Park สถานที่จัดงาน

mapscbresize

สำหรับผม SCB Park นั่งรถผ่านเท่านั้นแต่ยังไม่เคยได้เข้าไป 18.30 ได้เวลาเริ่มงานแต่ผมยังหาตึกสถานที่จัดงานไม่เจอกว่าจะเจอเล่นเอาวุ่นเหมือนกันและแล้วก็ถึงจุดหมายจนได้

พอมาถึงก็ต้องลงทะเบียนเข้าร่วมงานกันก่อน ลงทะเบียนเสร็จก็จะได้รับ สติ๊กเกอร์กลุ่ม AWS

24-Oct-15 10-27-04 PM

1976977_10204900270337652_4674943262214288358_n

เมื่อลงทะเบียนเรียบร้อยก็เดินเข้าต่อไปอีกหน่อย จะพบเจอกลุ่มผู้เข้าร่วมงานที่มารอกันเต็มไปหมด และเวลาก็ล่วงมาถึง Agenda ที่ตั้งไว้

12065767_10204900270697661_4565897329544910696_n

มีพี่ท่านหนึ่ง (พี่ VIT) แนะนำว่า AWS ทำอะไรแล้วมีอะไรให้ใช้งานได้บ้าง ทั่วโลกมี Data Center ที่ไหนบ้าง

images

(ตำแหน่งที่ตั้ง Regionและ  Edge Location)

Keynote (Akkasit ผู้ก็ตั้ง Start up Coursesquare) คนต่อไปมาพูดถึงการทำ Video Streaming On AWS ทำได้ง่านและสะดวกมาก

ถัดมาทางทีมงานได้นำบรรยากาศของงาน AWS re:Invent 2015 ที่จัดขึ้นเมื่อวันที่ 5-9 ตุลาคม 2558 ณ เมือง las vegas ที่ผ่านมา มีภาพภายในงาน แนะนำภาพแต่ละภาพคืออะไร ทำอะไร บอกเลยว่างานใหญ่และสวยมาก

ถัดต่อมาทีม SCB Innovation Developer Team ก็มาแนะนำ บอกเล่าประสบการณ์ของการที่หน่วยงานได้ทำ AWS เข้ามาใช้กับหน่วยงานว่า AWS เข้ามาช่วยอะไร และทำอะไรได้บ้าง

ถัดต่อมาคือช่วงท้ายๆ ของงานมีการจัดแจกของราลวัลสำหรับผู้เข้าร่วมงาน

สรุป service หลัก ๆ ที่ทีมองค์กร และนักพัฒนานิยมใช้กันใน AWS Clound Service ก็มีด้วยกันหลายตัว

  • Amazon S3 (Simple Storage Service) เป็น strorage ที่ใช่ในการเก็บข้อมูลขนาดใหญ่ โดยมีค่าใช้จ่ายในการเก็บข้อมูลเพียง  $0.03/GB
  • Amazon EC2 (Elastic Compute Cloud) ที่ทำหน้าที่เป็น  Server ซึ่งมีให้เลือกหลายแบบตั้งแต่ขนาดเล็กไปจนเครื่องใหญ่มากๆ
  • Amazon RDS (Relational Database Service) คือเครื่องที่จะทำหน้าที่เป็น Database Server ที่ทาง AWS  เตรียมมาให้เลือกได้หลาย Database เช่น  Microsoft SQL, Oracle DB, PostgreSQL หรือ MySQL
  • Amazon VPC (Virtual Private Cloud) คือบริการที่จะช่วยทำให้เราสร้างระบบบน AWS ใน Virtual Network   ที่เรากำหนดให้มีความปลอดภัยดีขึ้น
  • Amazon IAM (Identity and Access Management ) คือระบบที่จะช่วยในการทำ Authentication และทำ Access Control ผู้เข้าถึงระบบ Server ต่างๆ
  • Amazon ELB (Elastic Load Balance) คือตัว  Load Balance ที่จะช่วยกระจาย Traffic ให้กับ  Server  ต่างๆ
  • Autoscaling  คือระบบที่จะช่วยเพิ่มหรือลดจำนวน EC2  ให้เราอัตโนมัติ ตามเกณฑ์ที่เราตั้งไว้
  • Amazon Route 53 คือ ตัวที่จะช่วยเป็น Domain Name System (DNS) ในการที่ route taffic มายังระบบของเรา
  • Amazon CloudFront คือระบบที่ช่วยทำหน้าที่เป็น Content Delivery Network

ก่อนเข้าร่วมงานแทบจะไม่รู้จักหรือมีความรู้สำหรับเรื่องของ AWS เลยว่าคืออะไร แต่เมื่อได้เข้าร่วมงานในครั้งนี้ก็รู้เลยว่า AWS นิไม่ธรรมดาจริงๆ

ข้อมูลอ้างอิงบางส่วน :: ข้อมูลเพิ่มเติม

แบ่งปันสิ่งทีได้จากการเข้าร่วม อบรมคอร์สเรียน Source Code Management ด้วย Git

หลังจากที่ไม่ได้อัพเดทเนื้อหาเพิ่มมานานมาก

และเมื่อช่วงวันหยุดสุดสัปดาห์ที่ผ่านมาได้เข้าร่วมอบรมคอร์สเรียน Source Code Management ด้วย Git ที่ SPRINT3R [n.] (ซพรินเทอร์) ซึ่งบอกได้คำเดียวว่าคุ้มมากจริงๆ มันก็คุ้มตั้งแต่ได้เข้าไปเรียนตั้งแต่วันแรกแล้ว เรียนฟรี อาหารฟรี สอนดีเป็นกันเอง TA เยอะไม่เข้าใจติดปัญหาอะไรถามได้ตลอดเพราะ TA จะเข้ามาประกบติดตัวต่อตัวช่วยเหลือจนกว่าเราจะเข้าใจ หรือแม้แต่ติดปัญหาเรื่อง ใด ๆ ก็จะไปหาคำตอบให้จนได้ สำหรับการเรียนที่ SPRINT3R [n.] (ซพรินเทอร์) นี้บอกได้คำเดียวว่าการได้เข้ามาเรียนคุ้มทุกคอร์สครับ คอร์สเรียนเขามีคุณภาพจริง ๆ

คอร์สเรียน   Source Code Management ด้วย Git (ระยะเวลา 2 วัน ช่วงวันเสาร์ที่ 12 กันยายน พ.ศ. 2558 – วันอาทิตย์ที่ 13 กันยายน พ.ศ. 2558) ณ SPRINT3R [n.] (ซพรินเทอร์) เขาบอกว่ารอบนี้เป็นรอบคืนกำไรสู่สังคม

เนื้อหาคอร์สเรียน

  • Source Code Managment(SCM) คืออะไร?
  • ทำไมเราต้องใช้ SCM และการวางกลยุทธ์
  • SCM ด้วย Git
  • Git คืออะไร?
  • คำสั่งพื้นฐานสามัญประจำบ้านของ Git สำหรับการนำไปใช้งานได้เลย
  • Git กับ Continuos Integration ด้วย Jenkins และ Repository Server
  • อุปนิสัยใจคอและกมลสันดานที่ต้องมีในการทำ SCM
  • อื่นๆ แล้วแต่คนสอนที่จะเพิ่มให้เข้าไป

วันแรกของการเข้าเรียน

ช่วงเข้าเมื่อจำนวนนักเรียนพร้อมก็เริ่มกันเลย

ทีมงานของ SPRINT3R นำโดยพี่หนุ่มแนะนำทีมและพูดเกริ่นนำเรื่อง GIT นั้นว่าคืออะไร มีปีะโยชน์อย่างไร แต่สิ่งที่จำเป็นมากเมื่อผู้ทีใช้งาน GIT จำเป็นต้องใส่ใจมากในการนำ GIT เข้ามาใช้ เรียกว่าถ้าใช้ GIT จำเป็นต้องทำ 4 ข้อนี้

1. ตกลงทีมเรื่องโครงสร้างของ sources code พูดถึงเรื่องโครงสร้างของ source code ของ Project ที่เราพัฒนาว่าจะวางโครงร่างอย่างไร มีไฟล์ มีโครงสร้างอย่างไรบ้าง

source code stucture 2.  ตกลงเรี่องการใช้งาน Feature GIT เรื่องนี้ดูเป็นเรื่องธรรมดาแต่ถ้าเมื่อการพัฒนา Project ใหญ่ ๆ จำเป็นมาก ไม่ว่าจะเป็นเรื่องการแบ่ง Branch การทำงานออกเป็นส่วนๆ เพื่อที่จะติดตามการพัฒาได้ง่ายและนวมถึงคำสั่งพื้นฐานของการใช้งาน GIT เบื้องต้นด้วยเช่น git add,git commit,git push,git pull,… และอื่น ๆ อีกมากมาย

3. การ Merge code บ่อย ๆ เป็นการดูแลรักษาประวัติของการพัฒนาของ branch หลักของการพัฒนา และ ทำให้เห็นประวัติต่างๆ ในการพัฒนา รวมถึงเรื่องการติดตามของประวัติต่างๆ ของการพัฒนา หรือ commit ด้วย

4. เรื่อง commit message นั้นถือเป็นเรื่องจำเป็นมาก ๆ เพราะอย่างน้อยผู้พัฒนาคนอื่นมาดูการ commit code ครั้งนั้นและสามารถเข้าใจได้ง่านว่า นักพัฒนาคนที่ commit code มาเขาได้เปลี่ยนแปลง code อะไร ส่วนไหนไปบ้าง และการใส่ message ที่ดีจะมีประโยชน์ในภายหลังแน่ ๆ เพื่อ git มี Feature การดู log history ได้ ฉะนั้น message ดีจะช่วยให้เรา filter การ message เพื่อหาสิ่งใดสิ่งหนึ่งได้ง่ายๆ

มาดูภาพกาทำงานของ GIT กันก่อนเพื่อความเข้าใจ และจะได้อ่านเนื้อหาต่อไปได้เข้าใจยิ่งขึ้น

git_model

เมื่อเกริ่นเนื้อหาของ GIT กันได้คราว ๆ พอเข้าใจแล้วก็มาเริ่มการใช้งาน GIT กันเลย

 

เริ่มต้นก็ต้องไปติดตั้ง GIT ในเครือง Local ของเราก่อน

1. ลิ้งการ Download GIT :: GIT-SCM

หลังจากติดตั้งเสร็จก็ให้เปิด Git Bash ขั้นมาจะได้หน้าตาแบบนี้ (ขอพูดในเวอชั่นของ Windown นะครับ)

git_bash

 

2. เริ่มคำสั่งการใช้งาน พื้นฐาน สร้าง local repository กันก่อน

$ git init

$ git status

คำสั่ง git status จำเป็นมากครับ เพื่อดูสถานะของการทำงาน ณ ปัจจุบันเลยว่าตอนนี้เราทำอะไรอยู่

3. ต่อไปลองสร้างไฟล์เพื่อทดสอบ (สร้างไฟล์อะไรก็ได้ คิดไม่ออกก็ hello.txt ไปก่อน)

4. เพิ่ม file ทดสอบเข้า stage area เพื่อรอการ commit code ไปยัง local repository โดยใช้คำสั่ง

$ git add hello.txt

5. เมื่อเรา coding จนพอใจและ add file ไปเก็บไว้ที่ stage area จนคิดว่าพอแล้วก็ต้อง นำไฟล์เข้า local repository ซะที โดยใช้คำสั่ง

$ git commit -m “create file hello.txt”

มาถึงขั้นตอนนี้ ไฟล์ทั้งหมดที่เราได้ add เข้าไปจะมาเก็บใน local repository เรียบร้อยแล้ว

6. เนื่องจาก local repository ยังเป็นการเก็บไฟล์ไว้ที่เครื่องเราเครื่องเดียวเท่านั้น ดังนั้นถ้าอยากให้ทีมพัฒนาของเราได้ source code ชุดนี้เราต้องทำการ push source code เหล่านี้ไปยัง remote repository โดย workshop ครั้งนี้ขอใช้ github ที่กำลังโด่งดังอยู่ในตอนนี้ ก็ให้เราสมัครให้เรียร้อย สำหรับคนที่ยังไม่มี account github เป็นของตัวเองก็ไปสมัครได้ ไม่มีค่าใช้จ่ายในการสมัคร และสร้าง remote repository ให้เรียบร้อย

 

 

github_create_project_day1

 

github_link_remote

ได้ remote repo เรียบร้อยแล้วก็ copy link มาเพื่อเอามาเชื่อมต่อกับ local repo ในเครื่องเรา และใช้คำสั่ง

$ git remote add origin [email protected]:pool13433/day-11.git

เท่านี้ remote repo และ local repo จะรู้จักกันแล้ว หลังจากนั้นก็ push เพื่อเราไฟล์จาก local repo ไปยัง remote repo โดยใช้คำสั่ง

$ git push origin master

เราก็จะได้ source code ในเครื่องเรา เหมือนกับ code บน server github เรียบร้อยแล้ว

$ git log

คำสั่ง git log เอาไว้ติดตามดู history ของการทำงาน git ว่าเราทำอะไรผ่านไปแล้วบ้าง

 

เมื่อลองใช้งานคำสั่งได้กันบ้างแล้วเหล่าพี่ ๆ sprint3r ก็จัด workshop เล็ก ๆ มาให้เล่นกันเล่น

และก็จบไปสำหรับวันแรกของการเรียน GIT

 

วันที่ 2 ของการเรียน git

วันนี้เริ่มด้วยการเอาเนื้อหาของการเรียน class เมื่อครั้งที่แล้ว (ก็วันเสาร์แหละครับ) มาสรุปทบทวนกัน และพี่ปุ๋ย (Somkiat.cc)ก็มาพูดถึงความสามารถอื่น ๆ ของ GIT ตัวอย่างเช่น

การ filter ดู history log จาก message,date,… ต่างๆ อีกมากมาย

ช่วงบ่ายทางทีมจัด workshop มาให้ทำกัน ครั้งนี้จะได้เริ่มรวมทีมเพื่อใช้งาน git กับ project จริง ๆ แล้ว

โดย workshop จะมีข้อมูลว่า

  • มีการตั้งโจทย์ หรือเรียกว่า requirement ของ user ก็ว่าได้
  • ให้รวมทีมกันทำโดยให้ระยะเวลาในการพัฒนา 3.30 ชม.
  • โดยเมื่อหมดเวลาจะต้องมีงานส่ง

หลังจากระยะเวลาได้ผ่านไปเรื่อย ๆ ระหว่างนั้นพวกเราก็สร้าง Project ที่พัฒนาด้วยการใช้ git ก็ดำเนินการไปเรื่อย ๆ เริ่มพบปัญหา เริ่มได้พูดถกเถียงปัญหา ได้ร่วมกันช่วยแก้ปัญหา หาแนวทางแก้ไขปัญหาร่วมกัน สุดท้ายหมดเวลา พวกเราก็มีผลงานส่งทันตามกำหนด (ฺBUG นิไม่ต้องถาม เพียบครับ)

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

 

เท่าที่ผมได้สัมผัสกับ git ในช่วงระยะเวลา 2 วัน (สัมผัสแบบการพัฒนาเป็นทีม ปกติใช้งาน git คนเดียว) สิ่งที่ดีๆ หลาย ๆอย่างของ git ทำให้การพัฒนา project ของเราเป็นระเบียบและเป็นแบบแผนที่ดีมาก ผมเลยอยากแนะนำ เพื่อน ๆ ให้เริ่มลองใช้งานกับมันดู ถ้าใครยังไม่เริ่มก็ให้เริ่มตั้งแต่วันนี้ เพราะ git จะทำให้ชีวิตของคุณมีประสิทธิภาพมากขึ้น จริงๆ

เครดิต รูปภาพประกอบ :: http://backlogtool.com/git-guide/en/intro/intro1_2.html

 

แชร์ประสบการณ์เข้าร่วมงาน Git with Workshop one-day crash course

git_logo

GIT (Version Control)

วันนี้มีโอกาสได้เข้าร่วมงาน Git with Workshop one-day crash course โดย คุณ Tomz จาก Agoda ณ Stream I.T. Consulting Ltd. วันที่ 17 พ.ค. 2558 09.30 – 16.00

หัวข้อ คอร์สเทรนของวันนี้

Git with Workshop one-day crash course
1) Introduction to Git
2) Tools
Client side ( Git bash (command line), SourceTree,TortoiseGit)
Server side ( Gitlab)
Free 3 ways merge Tools
3) Install and Configure Git for Windows

== Local ==
4) Create local and shared Git repos
Add, Remove & Commit Files to repos
5) Working with History
6) Code sharing Model
7) Branching, Tag, Merging, Rebase
8) Handling Conflicts (drama)
9) reset, Chery-pick

= Remote =
– Clone
– Push, Pull, Fetch, Diff
– Branch Remote Repos

โดย คอร์สเทรน จะแบ่งเป็น 2 ช่วง เช้า-บ่าย

คอร์สช่วงเช้า

คุณTomz (วิทยากรที่ให้ความรู้เรื่อง GIT ในครั้งนี้) พูดถึง Introduction to Git (ส่วนนี้ไปหาอ่านเพิ่มเติมได้นะครับ) ต่อด้วยเรื่อง Tools ที่ใช้ประกอบด้วย

Tools ที่ใช้พัฒนาทางฝั่ง client

  • Git bash (command line) (พื้นฐานจพเป็นของติดตั้ง)
  • SourceTree (เครื่องมือ GUI สำหรับใช้งานการทำงานของ GIT เครื่องมือนี้ง่ายดีครับผมแนะนำ)
  • TortoiseGit (เครื่องมืออีกตัวที่ใช้งาน คู่กับ GIT ได้แต่ไม่ได้พูดถึง เพราะขึ้นกับเวลา เน้นไปทางการใช้งานผ่าน command promt จะทำให้จำได้ดีกว่า)

Tools ที่ใช้ทางฝั่ง Server side

  • Gitlab (ทำหน้าที่คล้ายกับ github ไปลองเล่นใช้งานได้จาก https://github.com/ มีเวอชั่นฟรีใช้งานได้)

แนะนำการติดตั้งและตั้งค่า Git ให้ใช้งานได้ สำหรับ windown และ linux

และเมื่อวิทยากรพร้อม เครื่องมือพร้อม เรามาลุยกันเลย

เริ่มแรกให้สร้าง Directory เก็บก่อนโดยหลัก ๆ คุณ Tomz จะเน้นไปทาง command promt คือพิมพ์คำสั่งโดยไม่ผ่าน GUI

  • สร้าง directory เก็บ => "mkdir hello"
  • เข้าไปใน directory  => "cd hello"
  • สร้าง repository  => "git init"
  • สร้างไฟล์ เพื่อใช้ทดสอบ => "cat > hello.txt"
  • นำไฟล์ทดสอบเข้า repository  => "git add hello.txt" (ขั้นตอนนี้เหมือนการนำไฟล์มาพักรอการ push)
  • นำไฟล์ขึ่น server พร้อมแนบคอมเม้น เพื่อการติดตาม => "git commit -m "create new file for test""

git_process

เราก็จะได้ code ที่ไปเก็บไว้ใน repository ของ git เรียบร้อย นอกคำสั่งพื้นฐานเหล่านี้ยังมีคำสั่ง พิเศษเพื่อช่วยในการใช้งาน GIT ให้ดียิ่งขึ้น

  • "git status" (เพื่อดูสถานะ ปัจจุบันของการทำงาน GIT)
  • "git log" (ดูประวัติการทำงาน) หรือ "git log --oneline --abbrev-commit --all --graph --decorate" ก็ได้
  • ฯลฯ มีอีกเยอะครับคำสั่งผมก็เพิ่งเริ่มใช้งานเอาไปเท่านี้ก่อน อยากรู้เพิ่มเติมตามไปดูที่ http://git-scm.com/doc ได้

คอร์สช่วงบ่าย

การนำ clone repository จาก server มาที่เครื่อง (ในที่นี้จะขอใช้ github ครับเป็นที่เก็บ code ส่วนกลาง)

  • ไปสร้าง repository ก่อน (ต้องทำการสมัครสมาชิกก่อน ท่านที่ยังไม่มี account จึงจะสามารถใช้งานได้)

github_create_repo

  • เมื่อสร้างเสร็จ

github_create_detail

  • คำสั่งจะแยกออกเป็น 2 แบบ

–  แบบที่ต้องสร้าง new repository ใหม่ code เรายังไม่ได้สร้าง (ยังไม่ได้ใช้คำสั่ง git init)

 echo # git-workshop-1 >> README.md
 git init
 git add README.md
 git commit -m "first commit"
 git remote add origin https://github.com/pool13433/git-workshop-1.git
 git push -u origin master

–  แบบที่ repository แล้ว

git remote add origin https://github.com/pool13433/git-workshop-1.git
git push -u origin master

เหล่านี้คือส่วนหนึ่งที่ผมได้จากงานนี้ แต่ยังมีอีกเยอะมาก(ผมจดไม่ทัน ความจำผมก็ไม่ค่อยดี 😥 ) การเข้าคอร์สเทรนครั้งนี้ทำให้รู้ความแตกต่างระหว่างการควบคุมเวอร์ชั่นของโค๊ดแบบ เก่า ๆ ผมเคยใช้แต่ svn แต่พอได้เรียน GIT วันนี้จะเริ่มให้ที่ทำงานมาใช้ GIT บ้างแล้ว