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

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

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

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

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

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

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

Defold เกมส์เอ็นจิ้นจาก King ผู้สร้างเกมส์ Candy Crush

ข่าวดีสำหรับนักพัฒนาเกมส์ที่กำลังมองหาเกมส์เอ็นจิ้นดีๆในราคาที่ไม่แพง เมื่อเดือนตุลาคมที่ผ่านมา King บริษัทผู้ผลิตเกมส์ชื่อดัง ผู้สร้างเกมส์ Candy Crush ได้เปิดตัวเกมส์เอ็นจิ้น "Defold" ให้นักพัฒนาเกมส์ได้ใช้ฟรี 

นอกจากนี้ King ยังได้จัดการแข่งประกวดเกมส์ที่สร้างจาก Defold โดยผู้ชนะ 3 ทีมจะได้ไปเปิดตัวเกมส์ในงาน GDC 2016 อีกด้วย เรียกว่าน่าสนใจมากๆสำหรับนักพัฒนาเกมส์อินดี้ที่กำลังจะเริ่มสร้างเกมส์ของตัวเอง เพราะนอกจากจะได้เกมส์เอ็นจิ้นดีๆแล้วยังได้ King มาช่วยโปรโมทเกมส์ให้อีกด้วย

สำหรับผู้ที่สนใจรายละเอียดของเกมส์เอ็นจิ้นใหม่ตัวนี้ลองเข้าไปอ่านรายละเอียดได้ในเว็บไชต์นี้นะครับ http://www.

MongoDB 3.2 กำลังจะมี join

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

ข้อสังเกตของฟีเจอร์นี้
- ยัง limit อยู่ที่ Left Outer Equi-Join แบบเดียว (ใครไม่รู้ว่าคืออะไรลองอ่านในบล็อกของ MongoDB มีภาพอธิบายประกอบ หรือถ้าอยากรู้ว่า join มีกี่แบบลองดูที่ Wiki)
- เรียกการ join นี้ว่า $lookup โดยใช้งานผ่าน aggregate
- มีเฉพาะใน Enterprise Advanced Edition เท่านั้น (ในขณะที่ผมเขียนบล็อกนี้)

จริงๆฟีเจอร์นี้ก็มีข้อถกเถียงกันมายาวนาน เพราะถ้ามีการ join ก็จะเริ่มไปเจอปัญหาแบบเดียวกับ Relational SQL เช่น เรื่องประสิทธิภาพ เรื่อง integrity ของข้อมูล (FK constraint) เรื่องการใช้การเวลามีการทำ sharding กระจายไปหลายเครื่อง เป็นต้น เวลาออกแบบ nosql ส่วนใหญ่จึงทำ denormalize กันเพื่อประสิทธิภาพในการคิวรีเรียกดูข้อมูล แต่คิดว่า users จำนวนมากคงไม่ได้ทำแบบนั้น หรือมี use case ที่จำเป็นต้อง join เช่น การทำ report เลยต้องมีฟีเจอร์ขึ้นมา

ก็ไม่แน่ใจว่า engine ของ MongoDB จัดการยังไงให้มีประสิทธิภาพ สมัย ป.โท ผมเคยทำวิจัยที่ต้องไปศึกษาการทำ engine ของระบบฐานข้อมูลให้รองรับ distributed join เลยรู้ว่าการทำ engine แบบนี้ยากมากถ้าจะให้มีประสิทธิภาพดี ปัจจุบันก็ยังมีงานวิจัยด้านนี้ทำกันอยู่ เช่น งานตีพิมพ์ใน VLDB (เป็น top-tier conference ด้านระบบฐานข้อมูล) ปีก่อน (2014) ของ Microsoft หรือของ Ecole Polytechnique Federale de Lausanne เป็นต้น (จริงๆก็มีหลายระบบก็เลือกที่จะทำ Hybrid ระหว่าง SQL และ NoSQL ที่น่าจะพยายามแก้ปัญหานี้เช่นกัน พวกสายตระกูล NewSQL ทั้งหลาย เช่น NuoDB, VoltDB, หรือ F1 บน Spanner ของกูเกิ้ล

แต่จริงๆประเด็นที่ผมมองว่าเป็นปัญหาหนักมากคือการมีอยู่แค่ใน Enterprise Advanced เท่านั้น เพราะว่าถ้าเราโค้ดที่ใช้งานฟีเจอร์ $lookup นี้ไปแล้ว คนที่เอาไปใช้ของเราต่อจะไม่สามารถทำงานโปรแกรมของเราได้ถ้าใช้ Opensource Edition ซึ่งปกติแล้วพวกฟีเจอร์ที่เป็น Enterprise Edition ควรเป็นส่วนเสริมที่ไม่กระเทือนระดับ business logic ของโปรแกรม (เช่น ฟีเจอร์ auto backup, monitoring, performance tuning เป็นต้น)

ก็ต้องคอยติดตามกันต่อไปว่าสุดท้ายแล้วฟีเจอร์นี้จะเข้ามารวมอยู่กับ Opensource Edition หรือไม่ครับ

[เก็บตกบรรยากาศ] งานโค้ดชิวๆ #5: เรียนรู้ SCALA และ FUNCTIONAL PROGRAMMING กันแบบชิวๆ จากอดีตวิศวกร TWITTER และอดีต INTERN GOOGLE

[Best_Wordpress_Gallery id="1" gal_title="โค้ดชิวๆ #5: เรียนรู้ SCALA และ FUNCTIONAL PROGRAMMING กันแบบชิวๆ จากอดีตวิศวกร TWITTER และอดีต INTERN GOOGLE"]

เตรียมพบกับงาน โค้ดชิวๆ: มาคุยเฟื่องเรื่อง BACKEND กันชิวๆ 2 กย. 2558

ลักษณะงาน

งานโค้ดชิวๆครั้งนี้จะเป็นลักษณะ Lightning Talk คือ แต่ละหัวข้อจะมีเวลา 10 นาที (Setup 2 นาที พูด 8 นาที) โดยมี speaker ทั้งหมด 6 คน มาพูดเกี่ยวกับเทคโนโลยีด้าน Backend ที่น่าสนใจ และอยากหาเพื่อนร่วมพูดคุยในเรื่องนั้นๆกันต่อหลังงาน

กำหนดการ

เวลา
หัวข้อ

18:30 - 19:00
ลงทะเบียนเข้างาน

19:00 - 19:10
เปิดงานชิวๆ

19:10 - 19:20
Scalable Architecture Pitfalls

วโรกาส ภาณุสุวรรณ (นน), ผู้เขียนหนังสือ Agile Pitfalls

19:20 - 19:30
A Quick Look at Bigtable

ณัฐวุฒิ กุลนิรันดร (แก๊น), Software Engineer, Google

19:30 - 19:40
Concurrency with Clojure

ณัฐนาท พรประสิทธิ์สกุล (แท็ป), Developer, groundSWELL

19:40 - 19:50
Spinal - A Node.

สมาคมโปรแกรมเมอร์ไทย

วัตถุประสงค์

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

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

ระบบคลาวด์ Google Compute Engine ในยุโรปล่ม เนื่องจากปัญหา "ฟ้าผ่า"

ประเด็นสำคัญของแวดวงคลาวด์คือการให้บริการได้ต่อเนื่อง (availability) ซึ่งบางครั้งก็ไม่สามารถทำได้เพราะเหตุสุดวิสัยบางอย่าง ล่าสุด Google Compute Engine ในยุโรปต้องล่มไปเพราะเหตุ "ฟ้าผ่า"

เหตุเกิดที่ศูนย์ข้อมูลของกูเกิลในเมือง St. Ghislain ที่ประเทศเบลเยียม (ให้บริการโซน europe-west1-b) เกิดเหตุฟ้าผ่าที่โครงข่ายไฟฟ้าท้องถิ่น 4 ครั้งติดต่อกัน ทำให้ระบบไฟฟ้าของศูนย์ข้อมูลใช้งานไม่ได้ชั่วขณะ ระบบสตอเรจของกูเกิลมีแบตเตอรี่สำรองในตัว สามารถทำงานต่อได้ตามปกติ แต่มีสตอเรจส่วนน้อยที่กลับมีปัญหาแบตเตอรี่ไม่ทำงานจนล่มไป ซึ่งวิศวกรของกูเกิลสามารถแก้ไขให้กลับมาทำงานได้ในภายหลัง

ปัญหาคือข้อมูลที่กำลังถูกเขียนบนดิสก์ในจังหวะที่ระบบไฟล่มกลับหายไปด้วย และไม่สามารถกู้คืนได้ ถือเป็นปัญหา data loss ที่รุนแรง แม้ว่าจะมีสัดส่วนแค่ 0.000001% ของพื้นที่เก็บข้อมูลทั้งหมดก็ตาม

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

Codecademy เพิ่มการใช้ API เข้าไปในหลักสูตรแล้ว

Codecademy เว็บสอนการเขียนโปรแกรมแบบโต้ตอบ (มี interpreter ให้เล่นผ่านเว็บ) ได้เพิ่มหลักสูตรการใช้ API แล้ว

หลักสูตร API นี้จะเน้นการใช้ API ในงานหลาย ๆ ด้าน เช่น ทำแอพ, เกม หรือเว็บ โดยมีเจ้าของ API ดัง ๆ เข้าร่วมหลายแห่ง เช่น YouTube, Bitly, NPR, SoundCloud, Parse ฯลฯ โดย Codecademy จะเพิ่มหลักสูตร API ใหม่ ๆ อีกในอนาคต

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

ที่มา: http://www.

เขียนดีมีรางวัล Chrome เริ่มใช้งานคอมไพล์เลอร์ TurboFan สำหรับโค้ดบางประเภท

ทีมงาน Chrome เปิดตัวคอมไพล์เลอร์ตัวใหม่ใน Chrome ที่ค่อยๆ ใช้งานมาตั้งแต่ Chrome 41 ชื่อว่า TurboFan เพิ่มความเร็วโค้ดขึ้นไปอีกภึง 29% ในการทดสอบ zlib

TurboFan ไม่ได้เป็นคอมไพล์เลอร์ที่สามารถคอมไพล์จาวาสคริปต์ได้ทั้งหมด แต่โค้ดที่จะคอมไพล์ได้ต้องใช้เฉพาะบางฟีเจอร์ของจาวาสคริปต์เท่านั้น เช่น asm.

ภาษา Go เวอร์ชัน 1.5 ออกแล้ว

หลังจากพ้นกำหนดการในการออกเวอร์ชันใหม่มากว่า 20 วัน ภาษา Go ก็ได้ฤกษ์ออกเวอร์ชัน 1.5 อย่างสมบูรณ์เสียที โดยในเวอร์ชันนี้ได้พัฒนาปรับปรุงขึ้นมาหลาย ๆ ส่วน อาทิเช่น

compiler และ runtime ที่เขียนด้วยภาษา Go ทั้งหมด (ข่าวเก่า)
Garbage Collector ทำงานแบบ Concurrent แล้ว
โปรแกรมภาษา Go จะถูกทำงานด้วยจำนวน core ของ CPU ทั้งหมดที่มี จากเดิมที่มีค่าเป็น 1 core ในเวอร์ชันก่อนหน้านี้
เพิ่มคำสั่งรองรับการทำ vendoring external dependencies ในระยะทดลอง

รายละเอียดอื่น ๆ สามารถติดตามได้จากที่มาของข่าว

ที่มา - Go 1.5 Release Notes