Machine Learning สำหรับผู้เริ่มต้น

เมื่อวานนี้ 20 /2/2016 มีโอกาสได้มาเรียน Machine Learning กับ ดร.กานต์ ที่ Geeky Base เป็นเวลาครึ่งวัน เนื่องจากไม่ได้ลงทะเบียนไว้ พอดีผ่านมาทำธุระแถวเกษตรพอดี เลยขอท่านอาจารย์มาขอความรู้ด้านนี้ไว้เนื่องจากกำลังสนใจอย่างมาก และถ้าได้รับคำชี้แนะจากคนที่มีประสบการณ์ก็จะได้ไม่หลงทาง สิ่งที่ได้รับจากการเรียนครึ่งวัน ขอสรุปคร่าวๆ ดังนี้

NodeJS ตอนที่ 8 [การเขียน Asynchronous ด้วย Promise]

จากปัญหา Callback Hell ก็มีไลบรารี่ที่แก้ปัญหาความสวยงามของการเขียนโค้ดแบบ callback ของ JavaScript ออกมาหลายตัว ตัวที่น่าสนใจอีกตัวที่ผมชอบใช้ก็คือ async ซึ่งก็มีความสามารถมากมายสามารถกำหนดลำดับการทำงานแบบต่างๆได้มากมายไม่ว่าจะเป็น waterfall,series ,parallel,etc แต่ก็ยังไม่ตอบโจทย์เรื่องความสวยงามของโค้ด ก็มีการสร้างไลบรารี่ Promise ขึ้นมา เพื่อให้เขียนโค้ด asynchronous แต่ synchronous เป็นลำดับได้ เอ่ะ งง รึเปล่า เอาเป็นว่า Promise จะช่วยให้เราเข้าใจลำดับการทำงานของ asynchronous ที่มีความต่อเนื่องกันได้ง่ายขึ้น จริงรึเปล่าต้องมาลองกันดู

NodeJS ตอนที่ 7 [การเขียนโปรแกรมแบบ Callback]

Java Script Callback ก็คือ การเรียกฟังก์ชั่นแบบ Asynchronous เอ่ะ แล้วการเรียกแบบ Asynchronous มันคืออะไรอีกเนี่ย ? คำว่า Asynchronous กับ Synchronous ในแวดวงวิศวกรรมหรือเทคโนโลยีมักจะได้ยินกันบ่อยๆ ซึ่งมักใช้เกี่ยวกับการรับส่ง ข้อมูล สัญญาณ ในรูปแบบต่างๆ ซึ่งการส่งข้อมูลหรือสัญญาณต่างๆนั้นก็ ต้องมี ผู้ร้องขอ – ผู้ตอบกลับ การส่งแบบ Synchronous นั้นเป็นการรอจังหวะให้การร้องขอและการตอบกลับเสร็จเป็นเรื่องๆไปจึงจะทำงานตามขั้นตอนการร้องขอครั้งใหม่

NodeJS ตอนที่ 6 [เทคนิคการเขียน Route แยก หลายๆไฟล์]

จากตัวอย่างการเขียน Route URIs ของการเขียน RestApi ในตอนที่แล้วนั้น มีเพียง 4 route เท่านั้น คือ /get,/add,/edit และ /delete แต่ในชีวิตจริงแอพหนึ่งแอพมีเป็น 100 route ขึ้นไปแน่นอนตามขนาดแอพ แอพใหญ่ๆอาจจะมีมากถึงหมื่นเลยทีเดียว ส่วนผมเองเคยแตะถึงระดับพันต้นๆเท่านั้น เมื่อมี route มากขึ้น หากมาเขียนไว้ในไฟล์ๆเดียว หากในบริษัทมีคนพัฒนา Api หลายคนคงต้องปวดหัวในการแก้ไขไฟล์หลักนี้แน่นอน ถึงแม้ปัจจุบันมีเครื่องมือในการคอนโทรลเวอร์ชั่นดีๆอย่าง svn และ github ในตอนนี้เราจะมาแก้ไขปัญหานี้แบบง่ายๆ

NodeJS ตอนที่ 5 [Restful API]

การเขียนเว็บเซอร์วิส หรือ เว็บ Api (Application Programming Interface) เพื่อให้เทคโนโลยแพลตฟอร์มต่างๆสามารถแลกเปลี่ยนข้อมูลกันได้ ไม่ว่าจะเป็น OS ,Web ,Mobile Application นั้น มี 2 มาตรฐานที่ได้รับความนิยม ได้แก่

  • SOAP (Simple Object Access Protocol)
  • REST (Representational state transfer)

NodeJS ตอนที่ 3 [JavaScript Basic และการเขียนโมดูล]

NodeJS เป็นเทคโนโลยีที่เรารู้กันว่าเป็น JavaScript ฝั่งเซิร์เวอร์ ดังนั้นก็ต้องมีพื้นฐานภาษา JavaScript จึงจะช่วยให้ทำความเข้าใจในการเขียนโค้ดบน NodeJS ได้ง่ายขึ้น ในบทความนี้จะสรุปเพียงสั้นๆที่พอให้ไปต่อได้เท่านั้น

JavaScript Value Type

ภาษา JavaScript มีการเก็บค่าอยู่ 3 แบบด้วยกัน คือ

boolean ค่าตรรกะ true , false
numeric ค่าตัวเลข Number.

NodeJS ตอนที่ 2 [V8 และ Non Blocking I/O]

Google V8

V8 เป็น Engine ที่สร้างโดย Google ด้วยภาษา C++ ใช้คอมไฟล์ JavaScript ให้เป็น Byte Code ซึ่งช่วยให้ JavaScript ทำงานได้เร็วขึ้นมาก

เมื่อเรา Complie NodeJS จะเป็น Byte code อยู่ในหน่วยความจำ ซึ่งคอมพิวเตอร์เข้าใจทำให้ทำงานได้เร็ว

การคอมไพล์เราได้ลองทำในตอนที่ 1 ดังนี้
node ch1_hello.

NodeJS ตอนที่ 1 [NodeJS คืออะไร ?]

NodeJS ตอนที่ 1 NodeJS คืออะไร ?

เทคโนโลยีฝั่ง Server Side ที่ถูกพัฒนาด้วยภาษา JavaScript
เดิมทีภาษา JavaScript ทำงานฝั่ง Client เป็นหลัก แต่จริงๆแล้ว NodeJS เป็น Client หรือ Server ก็ขึ้นอยู่กับจุดประสงค์ของแอพนั้น แต่จุดตั้งต้นเริ่มมาจาก Server Side เป็นหลัก
ผู้สร้าง คือ คนนี้แหละครับ
Ryan Dahl เขาว่าคือพ่อมด แฮรี่ ที่มาร่ายเวทย์ด้วยภาษา JavaScript
NodeJS คือ JavaScript มีการ Complied เป็น Byte Code ด้วย V8 Engine ของ Google
Debug ได้ ต่างจาก JavaScript ในยุคแรกๆ ทำให้แก้ปัญหาได้ง่ายขึ้น
รันได้บนทุกระบบปฏิบัติการยอดนิยม
มาพร้อมกับเทคโนโลยีที่เรียกว่า Non - Blocking I/O
ปัจจุบันเติบโตเร็วมาก มี Library แล้ว 235,745 Package ข้อมูล ณ วันที่ 2/2/2016

ปัจจุบัน NodeJS ถูกนำมาทำเป็น Web Server , Mobile Hybrid , IOT , Webkit , TVOS ,OS อื่นๆอีกมาก เรียกได้ว่าเข้าถึงได้หลากหลายเทคโนโลยี

เหตุผลที่ได้รับความนิยมหลักๆคือ

เขียนโค้ดเข้าใจได้ง่าย
มี Library ฟรีมากมาย
ใช้ทรัพยากรน้อย
เรียนรู้ได้เร็วสำหรับโปรแกรมเมอร์ทุกๆระดับ

มาลองใช้ NodeJS กันดีกว่า

โหลด NodeJS มาเลยที่ https://nodejs.

Read more 1 Comment

Programming World – Year in Review 2015

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

[ 22 กุมภาพันธ์ 2015 ]
ในงาน React.