Programming

เขียน Node.js รันใน Docker Container ตั้งแต่ Zero to Hero

ความเดิมจากบทความที่แล้วตอน สร้าง RESTful API ด้วย Node.js + Express เบื้องต้น ไปแล้วนั้น จะเห็นว่าตอนท้ายของบทความ ได้แถมเรื่องการเขียน Dockerfile สำหรับนำ Code ของเรา ไป Build เป็น Docker image แต่ในความเป็นจริงแล้ว เราสามารถใช้ Docker มาเป็น Environment ในการพัฒนาได้ นั่นก็หมายความว่า เราไม่จำเป็นต้องติดตั้ง Node.js ในเครื่องของเราเลย […]

เมื่อ WordPress คุณถูกแฮ็ก ~ แกะรอยจากสิ่งที่ Hacker ได้ทิ้งไว้

อย่าเพิ่งตกใจกับจั่วหัวกันนะครับ บทความนี้ตั้งใจจะมาเล่าประสบการณ์ให้ได้ทราบกัน เพื่อที่เหล่า Web Developer ให้ได้เตรียมตัวและป้องกันไว้แต่เนิ่น ๆ และก็ไม่ได้จำกัดเฉพาะ WordPress เท่านั้น เรื่องของเรื่องมีอยู่ว่า เว็บนี้ถูก Hack โดยที่ผมไม่รู้ตัวนานถึง 8 เดือน!! อย่าเพิ่งรีบปิดเว็บหนีไปนะครับ ผมได้ทำการถอนรากถอนโคนออกไปหมดแล้ว และคิดว่าถึงเวลาที่ต้องมาแฉ ในสิ่งที่ Hacker นั้นทำไว้ รวมถึงวิธีการตรวจสอบต่าง ๆ แนวทางป้องกัน เผื่อว่าใครที่ตกอยู่ในภาวะเสี่ยงแบบเดียวกับผม จะได้ป้องกันได้

[Dev] เรื่องพื้น ๆ ของ OOP ที่โปรแกรมเมอร์ส่วนใหญ่มักไม่เข้าใจมัน

หลัง ๆ มานี้ ได้สอนงานน้อง ๆ และเพื่อนร่วมงานอยู่หลายครั้ง และค้นพบความจริงว่า คนที่รู้จัก Object-Oriended Programming หรือ OOP แบบถ่องแท้นั้นมีน้อยมาก บ้างก็รู้จัก แต่ออกแบบไม่เป็น บ้างก็แค่พอใช้งานได้แบบมั่ว ๆ ไป ไม่เข้าใจที่มาที่ไปซะทีเดียว บทความนี้จึงเกิดขึ้นมา จากการที่ได้พูดได้สอน จนได้วิธีการอธิบายให้เข้าใจได้ง่ายขึ้น จากการตกผลึกมาให้แล้ว เพื่อปลดล๊อคความเข้าใจในการเขียนโปรแกรมเชิงวัตถุ หรือ OOP ได้มากขึ้น

[Dev] มาดูวิธีทำ Data Binding บน Android แนวทางการเขียน App แบบใหม่กันหน่อย [Update 16/11/58]

Data Binding เป็นวิธีการเขียนโปรแกรมในอีกแนวทางหนึ่ง ซึ่งจะพบอยู่บน Visual Studio มานานแล้ว อย่างที่เคยเขียนบทความไว้ในตอน วิธีการทำ Data Binding กับ Object สำหรับ Windows Forms บน VB.NET เบื้องต้น นั่นเอง สำหรับบน Android นั้น ทาง Google ได้เตรียม Plug-in สำหรับ Android Studio […]

[Dev] วิธีการทำ Data Binding กับ Object สำหรับ Windows Forms บน VB.NET เบื้องต้น

ถ้าพูดถึง Design Pattern หลาย ๆ คนน่าจะรู้จัก MVC, MVP และ MVVM กันมาบ้างแล้ว สำหรับ MVVM จุดเด่น ๆ เลยก็คือ การทำ Data Binding สำหรับการทำ Data Binding บน VB.NET กับ Project แบบ Windows Forms Application […]

[Dev] รู้จักกับ ViewHolder Pattern สำหรับ ListView, GridView และการมาของ RecyclerView

ViewHolder Pattern เป็นรูปแบบของการจัดการ View ภายใน Adapter ที่เรากำหนดให้กับ ListView หรือ GridView เพื่อให้เกิดประสิทธิภาพสูงสุด ซึ่งเป็น Best Practice หนึ่ง ที่ Google แนะนำ ซึ่งจะส่งผลให้การ Scroll ไม่เกิดอาการกระตุก สาเหตุหลักที่ทำให้เกิด ViewHolder Pattern เพื่อปรับปรุงคุณภาพนั้น ก็เนื่องมาจากการทำการ Inflate Layout และ findViewById() […]

[Dev] ห่อให้ด้วย~!! แนะนำการใช้งาน Parceler Library สำหรับ Android

มีใครเคยนำข้อมูลที่เยอะ ๆ โยนข้าม Activity บ้างไม๊ครับ รวมถึงการ Save/Restore State ด้วยนะ ถ้าเคยทำ ก็จะรู้ว่า ต้องมาเขียนคำสั่งเพื่อเก็บข้อมูลลง Bundle หรือ Intent ก่อน ด้วย Method put ทั้งหลาย ก่อนจะส่งข้อมูลไป ซึ่งจะมีชนิดตัวแปรมากมายให้เราเลือกใช้ แต่ว่ามันไม่สามารถที่จะ put Object ลงไปได้… ถ้าอยากจะส่ง Object สามารถทำได้ด้วยการทำ Serialization […]

[Dev] แนะนำการใช้งาน OkHttp Library สำหรับ Android

สำหรับ App บน Android นั้น ส่วนใหญ่ มักจะมีส่วนของการเชื่อมต่อกับฝั่ง Server เพื่อรับ-ส่งข้อมูลกัน ซึ่งการเชื่อมต่อกับฝั่ง Server นั้น เรามักจะใช้ Class ที่ Implement Interface HttpClient ซึ่งอยู่ใน Package org.apache.http.client นั่นเอง ถ้าใครที่เคยเขียนมาบ้าง จะรู้ว่า การใช้งานมันยุ่งยากมาก ทั้งในด้านของการเขียนคำสั่ง การจัดการกับ Error และ Exception […]

[Dev] แสดงข้อมูล Open-source licenses บน Android App ง่าย ๆ ด้วย License Fragment Library

ในปัจจุบัน การพัฒนา App บน Android นั้น นิยมนำ Library ต่าง ๆ มาช่วยให้การพัฒนา App นั้นง่ายขึ้น ลดความยุ่งยาก ซับซ้อน ในแต่ละเรื่องเป็นอย่างดี เพราะผู้พัฒนา Library นั้นได้จัดการไว้ให้หมดแล้ว และยิ่งบน Android Studio ด้วยแล้ว มีระบบ Dependency ที่ทำให้เรานำ Library ต่าง ๆ มาใช้งานได้ง่ายมาก […]

[Dev] ขั้นตอนการ Publish Android Library ไปที่ Maven Central

จากบทความตอนที่แล้วในเรื่อง ขั้นตอนการ Publish Android Library ไปที่ jCenter ซึ่งเราจะต้อง Publish Library ไปยัง Bintray ก่อน แล้วถึงจะทำการ Link ไปยัง jCenter ได้นั้น นอกจากนี้ เรายังสามารถที่จะ Sync ไปยัง Maven Central ได้ด้วย ซึ่งการ Sync ไปยัง Maven Central […]