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.

งาน IT Talk 2015 – Introduction to User Experience – How to develop products that people love

สมาคมโปรแกรมเมอร์ร่วมกับคุณะเทคโนโลยีสารสนเทศมหาวิทยาลัยชินวัตร รวมจัดงาน IT Talk 2015 – Introduction to User Experience – How to develop products that people love โดยมีรายละเอียดงานดังนี้

สัมมนาฟรี !!!

วิทยากร

คุณดาริน สุทธพงษ์ – User Experience Designer, Amazon.

งาน IT Talk 2015 – Introduction to User Experience – How to develop products that people love

สมาคมโปรแกรมเมอร์ร่วมกับคุณะเทคโนโลยีสารสนเทศมหาวิทยาลัยชินวัตร รวมจัดงาน IT Talk 2015 - Introduction to User Experience - How to develop products that people love โดยมีรายละเอียดงานดังนี้

สัมมนาฟรี !!!

วิทยากร

คุณดาริน สุทธพงษ์  - User Experience Designer, Amazon.

[Startup CTO ตอนที่ 9 ] Full Text Search คืออัลไลย์ และปัญหาที่เจอกับ SQLite

พอดีวันก่อนมีโจทย์คือต้องทำ Full Text Search กับ Database บน SQLite เนื่องจากจะต้องเขียน app บน Android และ iOS เพื่อทำการค้นหาโดยชื่อจาก List ของ Contact ราวๆ 5000 กว่า Contact เลยเอาเรื่องนี้มาแชร์เป็นความรู้คร่าวๆ กันครับ เดี๋ยวจะหาว่ามีแต่เรื่องอื่นๆที่ไม่ใช่ Technical เลยเปลี่ยน Style กันบ้าง

เริ่มจากเกริ่นเรื่องของการ Search ใน MySQL สมมุติเราจะ Search ชื่อของ contact ที่มีตัวหนังสือ da โดยการ match แบบ contain (คือชื่อมี da เป็นส่วนหนึ่งของชื่อนั้นๆ )

ปกติการค้นหาทั่วใปใน SQL เราก็จะใช้
Select * from contact where firstname like '%da%'
โดยที่ผมเห็น programmer บางคนมักจะไม่ทำกัน ซึ่งจะทำให้การค้นนั้นช้ามา คือการ set field ที่เราจะต้องทำการค้นหาให้เป็น index ครับ อ่านเรื่องการทำ index ได้ที่ link นี้

ตัวอย่าง sql command คือ

ALTER TABLE `table` ADD INDEX `firstname` (`firstname`)

โดยการทำ index ก็จะทำให้ performance เพ่ิมมาระดับนึง แต่ถ้า database มี Row เยอะมากๆ เราจะต้องทำ Full Text Search ละ ซึ่งทั้งการ Create Table และการ Select จะใช้ command ที่ต่างกัน เช่น ตอนสร้าง Table

CREATE TABLE contact (
id     INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
firstname  VARCHAR(200),
note TEXT,
FULLTEXT (firstname,note)
);

ตัวอย่างนี้คือการบอกให้ mysql ทำ FULLTEXT ที่ field firstname และ note โดยเวลาค้นหา เราก็จะเปลี่ยน SQL Select ให้ใช้เป็น match แบบนี้

SELECT *
FROM contact
WHERE MATCH (firstname) AGAINST ('da');

แต่ก็ยังมี condition จำกัดบางประการของ Mysql อยู่นะครับ เช่นใน version mysql 5.6 ยังไม่รองรับภาษาไทย เพราะตัดคำกันยากอยู่ ลองอ่านเพิ่มเติมที่นี่ครับ 
ปัญหากับ sqlite
ที่นี้เรามาดูตัว sqlite กันบ้าง เนื่องจากใช้เป็น database สำหรับบน Android และ iOS โดย sql จะรองรับ Full Text Search อยู่แล้ว ด้วย extension FTS3 และ FTS4 ล่าสุดมี FTS5 แต่ ยังไม่ได้ลอง ลองอ่านกันเองนะครับ

ตัวอย่างการใช้ก็เช่น

CREATE VIRTUAL TABLE contact USING FTS4(content firstname);

โดยวิธีการ select โดย match suffix คือ ใช้ * ดังตัวอย่างข้างล่าง

SELECT * FROM contact WHERE firstname MATCH 'da*';

เห็นปัญหากันแล้วใช่ไม๊ครับ ไอ้ SQLite มันดันไม่มี *da* อ่ะดิ มันมีแต่ da* ดังนั้นชื่อคำว่า Krissada ไม่มากับ query นี้แน่นอน สิ่งที่จะมากับ query นี้ก็เช่น "dammit" "dating" "dasilva"

เลยมีคนคิดวิธีการแก้ไขโดยการ substring แล้วเพิ่มข้อมูลเข้าไปซะเลย เช่น ในตัวอย่างเราก็เพิ่ม field suffixes เอามาเก็บ suffixs ทั้งหมด เป็น

INSERT INTO contact(suffixes) VALUES("Krissada rissada issada ssada sada ada da a")

ที่นี้พอเรา search ด้วยคำสั่งเดิม SELECT * FROM contact WHERE firstname MATCH 'da*' ก็จะได้ Row ที่มีชื่อ Krissada มาละ

สนใจอ่านเพิ่มเติมจากที่มาได้ที่ Link นี้

ใครสงสัย comment ทิ้งไว้ได้

ติดตาม Blog ผมกันด้วยนะครัช

[Startup CTO ตอนที่ 8] Growth Hacking framework การทำ Marketing ที่เหมาะกับชาว Programmer

เนื่องจากวันนี้ได้โอกาส upload รูปบรรยากาศในงานสอน Course Startup CTO รุ่นที่ 1 ที่ผ่านมาเข้าหน้า Blog

เลยระลึกได้ว่ามีหลายๆ Concept ที่ผู้มาเรียนยังไม่เคยได้ยินมาก่อน และหนึ่งในนั้นก็คือการทำ Growth Hacking ตามหลักการของ Growth Hacking framework ซึ่ง Concept นี้อาศัยความรู้ 3 ด้าน ดังรูป 

โดยจะเห็นว่าเป็นศาสตร์ที่เกินมาสำหรับชาว Programmer จริงๆ ทั้งด้านของการทำ Experiment & Data รวมทั้งส่วนของ Automation & Engineering ซึ่งนี่แหล่ะคือการทำ Marketing ที่เหมาะกับ Programmer ที่สุดแล้วครับ โดย Programmer ทุกคนควรจะได้รู้ถึง Concept นี้จริงๆ จะได้สมกับเป็น "Beyond Programmer" ตาม Concept ของเว็บ Startup CTO นี่เอง

เดี่ยวจะหาว่าโม้ เราก็มาดูกันต่อที่รูปด้านล่างเลย ซึ่งอธิบายว่างานของ Digital Marketer จะหยุดแค่ด่านบนสุดเท่านั้น โดยที่เหลือเป็นงานของ Growth Hackers ล้วนๆ

แล้วตกลงมันแปลว่าอะไรนะ
Growth แปลว่าการเติบโต ซึ่งหมายถึงการทำให้ธุรกิจเติบโต ทำให้ Product หรือ Website หรือ Mobile App ที่เราทำอยู่มีการเติบโต มีผู้ใช้มากขึ้น

Hacking ก็คือการ Hack โดยคนอาจจะคุ้นเคยกับการเป็น Hacker เจาะระบบด้วยวิธีการใหม่ๆ ดังนั้น Hacking ก็หมายถึงการทำอะไรใหม่ๆ

โดยรวมกันเป็น Growth Hacking คือการทำอะไรใหม่ๆ ด้วยเทคนิคใหม่ๆ ที่ทำให้ Product ของเรามีการเติบโตนั่นเอง
บริษัทไหนใช้ Growth Hacking กันบ้าง
แทบทุกบริษัทใน Silicon Valley ที่เป็น Startup จะใช้ Growth Hacking กันทั้งนั้น โดยตัวอย่าง Classic ที่เห็นกันคือ

Hotmail - เวลาส่ง Email จะต่อท้ายด้วยคำว่า "PS : I Love you.

[Startup CTO ตอนที 7] ข้อได้เปรียบของโปรแกรมเมอร์ในการทำธุรกิจ

ตอนที่เขียน blog อันนี้รถกำลังติดอยู่บนถนนวิภาเลยครับ แต่เนื่องจากเป็นคนชอบใช้เวลาบนรถให้เกิดประโยชน์ เลยต้องเขียน blog ด้วย (ปกติจะฟังข่าวหรือไม่ก็ดูคลิปรายการธุรกิจ แต่เดือนนี้ใช้ 3g หมดโควต้าละ net เลยช้า ดูไม่สนุก)

กลับมาที่เรื่องธุรกิจกันต่อ พอดีตะกี้พึ่งคุยกับเพื่อนสายธุรกิจซึ่งมีอุดมการณร่วมกันคืออยากจะสนับสนุนให้คนทั่วไปสามารถประสบความสำเร็จในการเป็นผู้ประกอบการณ์ได้มากขึ้น โดยเราจะมี super workshop เพื่อสอน concept การ validate idea ธุรกิจอยู่ ใครสนใจกด like page http://www.

วันเกิดสมาคมโปรแกรมเมอร์ไทย

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

ตอนนี้กำลังวางแผนหาสิทธิประโยชน์ให้สมาชิกกันอยู่ พอลงตัวแล้วจะเริ่มเปิดรับสมาชิกกัน ถ้ามีใครสามารถช่วยเหลือส่วนนี้ได้หรืออยากมีโปรโมชั่นให้กับสมาชิกสมาคมก็ติดต่อมาได้นะครับ (จริงๆผมอยากให้สมัครเพราะคิดว่าอยาก contribute มากกว่าสิทธิประโยชน์ ส่วนสิทธิประโยชน์เป็นผลพลอยได้)

ขอบคุณทีมกรรมการทุกคนที่สละเวลามาประชุมหลังเลิกงานดึกๆดื่นๆกันได้แทบทุกครั้งตลอด 1 ปีกว่า และทีม staff ช่วยจัดงานต่างๆทั้งขาประจำ และขาจรทุกคน

20 พฤศจิกายน 2558 วันเกิดสมาคมโปรแกรมเมอร์ไทย

ป.ล. รายนามกรรมการชุดก่อตั้งสมาคม

1. นายศุภเสฏฐ์ ชูชัยศรี 2. นายกฤษฎา เฉลิมสุข 3. นายอภัยชนม์ พันธุ์โอภาส 4. ว่าทีร้อยตรี อาคม ไทยเจริญ 5. นายอานุภาพ วิรัตนภานุ 6. นายอัคคสิทธิ์ ตรุงกานนท์ 7. นายอิศเรศ ประจิตต์มุทิตา 8. นายภควัฒน์ บุญยัง 9. นายจิรวุฒิ จึงศิรกุลวิทย์

[CTO Blog] มุมมองของ Start-up Tech team ที่ต้องมากกว่าการพัฒนา product โดย SkillLane

สวัสดีครับ Section CTO Blog เป็น Section สำหรับให้ CTO ของบริษัท Startup มาร่วมแบ่งปันว่าในบริษัทที่ CTO เหล่านี้ทำงานอยู่มีจุดไหนบ้างในบริษัทตนเองที่อยากจะแนะนำให้ Programmer รู้จักทั้งในแง่ของเทคโนโลยีภายในหรือวัฒนธรรมองค์กรของบริษัทนั้นๆ

บทความนี้เรามารู้จักกับคุณ ศรัณญู กู้ธนพัฒน์ ซึ่งเป็น CTO ของบริษัท SkillLane กันเลยครับ

เกี่ยวกับ SkillLane
ก่อนอื่นขอเกริ่นถึงที่มาของ SkillLane หน่อยละกันครับ

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

ทีมของเราเลยสร้าง SkillLane.

Read more 1 Comment

[Startup CTO ตอนที่ 6] เริ่มต้นด้วย 5 คุณสมบัติของ Softskills เพื่อแปลงร่างให้ Programmer เป็น Entrepreneur

เกริ่นนำ
เคยไม๊ครับ ที่เคยได้ยินคนในวงการอื่นบอกว่าคุยกับ Programmer ไม่รู้เรื่อง ???

คำนีั้ผมพอได้ยินมาจากหลายๆ คนที่อยู่รอบๆ ตัวเลยทีเดียว บางคนก็ว่า Programmer พูดไม่รู้เรื่อง บางคนก็พูดว่า Programmer ทำงานด้วยยาก บางคนก็พูดว่า Programmer ต้องคุยด้วยกันกับ Programmer ด้วยกันเท่านั้น ……. ผมมองว่าคำพูดเหล่านี้เป็นจริงในบางจุดเนื่องจาก Programmer ส่วนใหญ่จะทำงานอยู่กับหน้าคอมไม่ค่อยได้สื่อสารกับคนอื่นๆ มากนัก ทำให้ไม่มีประสบการณ์เพื่อฝึกฝน Softskill มากนัก  อีกทั้งตลอดช่วงเวลาหลายสิบปีที่ผ่านมา สถาบันการศึกษาของไทยเร่งผลิตบัณฑิต โดยเน้นวิชาการหรือ Hard Skills มากจนไม่มีการสอนในเรื่องของ Soft Skill กันอย่างจริงจัง การสรรหาและคัดเลือกบุคลากรของบริษัทหลายแห่งจึงใช้วิธีดูว่าบัณฑิตจบใหม่มีทักษะด้าน Soft Skill หรือไม่ จากกิจกรรมในระหว่างการเรียน โดยเชื่อกันว่า คนที่เคยทำกิจกรรมระหว่างการเรียน มักจะมีทักษะด้านคนเก่ง หรือ Soft Skill มากกว่าคนที่เรียนเก่งได้คะแนนสูง แต่ไม่เคยร่วมกิจกรรมหรือทำงานร่วมกับคนอื่นเลย

การเป็น Programmer  ก็เช่นกันนอกจากจะมี Hard Skill (Coding, Design and Analysis, etc.