เริ่มต้นศึกษา TypeScript ด้วยแนวทาง Test-Driven Development (TDD)

ในการศึกษาภาษาใหม่ ๆ ด้วยแนวทาง Test-Driven Development (TDD) เป็นสิ่งที่ผมเชื่อว่าเป็นแนวทางที่ทำให้เข้าใจภาษาต่าง ๆ ได้รวดเร็วขึ้น ดังนั้นมาลองศึกษาภาษา TypeScript กันหน่อย ซึ่งถูกสร้างขึ้นมาจากบริษัท Microsoft และเป็น opensource ในการใช้งานจะต้อง compile มาเป็นภาษา JavaScript ก่อนเสมอ ดูแล้วขั้นตอนเยอะเลยนะ ดังนั้นมาเริ่มต้นศึกษาด้วย Hello World กันหน่อย

Read More…

บันทึกการ migrate Elasticsearch 1.7 ไปยัง 5.X แบบผิว ๆ

ทำการบันทึกการ migrate ข้อมูลในระบบงานจาก Elasticsearch 1.7 ไปยัง 5.x ซึ่งพบว่ามีสิ่งต่าง ๆ ที่เปลี่ยนไปเยอะพอสมควรประกอบไปด้วย เรื่องการ mapping ของ index ที่เปลี่ยนไปเยอะพอสมควร ใน Elasticsearch 5.x ไม่มีชนิดข้อมูลที่เป็น string แล้วนะ Query DSL หลาย ๆ ตัวถูกตัดทิ้งไปแล้วเช่น filterred เป็นต้น Aggregate API ที่เปลี่ยนไปเช่น size=0 ในการดึงข้อมูลถูกเอาออกไป เนื่องจากมีปัญหาเรื่อง performance การ configuration Elasticsearch ก่อนที่จะ deploy มีรายละเอียดดังนี้

Read More…

มาเป็น programmer ได้อย่างไร ?

ช่วงต้นปีใน facebook มีคำถามที่น่าสนใจมาก ๆ คือ มาเป็น programmer ได้อย่างไร ? ก็เลยนำมาตอบด้วยการเขียน blog สักหน่อย ว่าตัวผมเองมาเป็น programmer ได้อย่างไร ? มาเริ่มกันเลย

Read More…

ทำการแก้ไข Status Bar ของ Emulator สำหรับการใช้งานกับ snapshot

หลังจากที่ใช้งาน Fastlane snapshot แล้ว เกิดคำถามว่า เราสามารถเปลี่ยน Status Bar ของ Emulator ได้หรือไม่ ? เช่น ไม่อยากเห็นคำว่า Carrier อยากเปลี่ยนเวลา แสดงดังรูป เมื่อลองค้นหาพบว่า วิธีการที่ง่ายที่สุดคือ เอามาแก้ไขในโปรแกรมแก้ไขรูป !! กับอีกหนึ่งวิธีการคือ มีคนใจดีทำ library ชื่อว่า SimulatorStatusMagic มาให้ โดยทำการแก้ไข status bar ในขณะ runtime ดังนั้นลองนำมาใช้งานกันดีกว่า

Read More…

สิ่งที่เปลี่ยนแปลงไปใน Fastlane

ในปีนี้ยังไม่ได้ทำการ update ข่าวสารเกี่ยวกับ Fastlane เลย พอดีว่าง ๆ เลยมาสรุปสิ่งที่เปลี่ยนแปลงไว้นิดหน่อย ซึ่งทำการเปลี่ยนแปลงไปในทางที่ดีมาก ๆ ตั้งแต่ Fastlane 2.0 ที่ปล่อยมาตั้งแต่ปลายปี 2559 ประกอบไปด้วย

Read More…

สวัสดี Async/Await ใน NodeJS

เมื่อวานทำการเขียน blog สำหรับลองใช้งาน Async/Await ด้วยภาษา Kotlin ก็ไปเห็นว่าใน NodeJS 7.6 ขึ้นไปนั้น สามารถใช้งาน Async/Await ได้เลย ไม่ต้องมาใส่ flag hamony ในการ run แล้ว เนื่องจาก Google V8 version 5.5 ได้ทำการเพิ่ม Async function เข้ามานั่นเอง ตอนนี้ NodeJS version 7.7.1 แล้วนะ ดังนั้นลองมาใช้ดูกันหน่อยสิ

Read More…

[Kotlin] มาใช้งาน AsyncAwait สำหรับ Android app กัน

หลังจากที่ Kotlin 1.1.0 ปล่อยออกมา มี feature ที่น่าสนใจมาก ๆ คือ coroutine โดย coroutine นั้นพัฒนาบน Rx, CompletableFuture, NIO, JavaFX และ Swing แน่นอนว่าสามารถใช้งานบน Android และ JavaScript ได้ และ coroutine ได้นำแนวคิดมาจากภาษาอื่น ๆ ด้วย เช่น Generator/yield จากภาษา Python Channel/select จากภาษา Go Async/Await จากภาษา C# ดังนั้นลองนำมาใช้งานกันหน่อย ซึ่งใช้กับการพัฒนา Android app กันไปเลย

Read More…

DevOps :: Three ways principle จากหนังสือ The Phoenix Project

จากหนังสือ The Phoenix Project มีเนื้อหาที่สนใจเกี่ยวกับ DevOps มากมาย หนึ่งในนั้นคือ Three ways ซึ่งเป็น principle สำคัญสำหรับ การทำความเข้าใจเกี่ยวกับ DevOps การวางแผนเกี่ยวกับ DevOps การนำเอาแนวคิด DevOps มาประยุกต์ใช้งาน ประกอบไปด้วย Flow principle Feedback principle Continual learning principle มีรายละเอียดดังนี้

Read More…

[แปล] C.A.R.E คือคุณสมบัติของนักพัฒนา software ที่ดี

จากบทความเรื่อง Software Engineer Traits ทำการสรุปคุณสมบัติที่จำเป็นสำหรับนักพัฒนา software ที่ดี ต้องประกอบไปด้วย 4 อย่างดังนี้ Curiosity Awareness Resoluteness Empathy จึงทำการแปลและสรุปไว้นิดหน่อย มาเริ่มกันเลย

Read More…

สรุปจากการอ่านหนังสือ The Passionate Programmer

ช่วงวันหยุดหยิบหนังสือ The Passionate Programmer มาอ่าน โดยเนื้อหาในหนังสือประกอบไปด้วย 5 ส่วนรวมทั้งหมดมี 53 หัวข้อ จึงทำการสรุปไว้นิดหน่อย น่าจะมีประโยชน์สำหรับการพัฒนา software บ้าง

Read More…