Programming Archive

ลองใช้งาน Dart FFI (Foreign Function Interface) กันหน่อย

ในภาษา Dart 2.12 ที่เพิ่งถูกปล่อยออกมานั้นมีความสามารถที่น่าสนใจคือ Dart FFI (Foreign Function Interface) ที่เป็น stable version และพร้อมกับ production แล้วทำให้สามารถเรียกใช้งานภาษา C/C++ จากภาษา Dart ได้เพื่อช่วยให้ performance ของการทำงานในบาง use case ดีขึ้นอย่างมาก ยกตัวอย่างเช่น การใช้งาน TensorFlow Lite C API เป็นต้น รวมทั้งการใช้งาน Win32 API อีกด้วย ใช้งานได้ทั้ง Dart mobile, command line และ server-sideที่ทำงานบน Dart Native Platform นั่นเองดังนั้นเรื่อง cross platform จึงสะดวกขึ้นอย่างมาก

Read More…

ใช้งานง่ายมาก ๆ สำหรับ Cloudflare Pages

วันนี้ลองใช้งาน Cloudflare Pages พบว่ามันใช้งานง่ายมาก ๆโดยที่มันคือ JAMstack platform สำหรับฝั่ง frontend นั่นเองช่วยทำให้การพัฒนาและ deploy ระบบงานง่ายขึ้นไม่ว่าจะเป็น HTML, React, Vue, Next.js, Hugo, Jekyll และ Gatsbyสามารถใช้งานได้หมดเลยที่สำคัญเชื่อมต่อกับ GitHub อีกด้วยทำให้การทำงานไหลลื่นมาก ๆ

Read More…

รูปสวย ๆ สรุปการเปลี่ยนแปลงใน Go 1.16

ไปเจอรูปการสรุปความสามารถใหม่ ๆ ที่เพิ่มเข้ามาใน Go 1.16 แบบสวย ๆ ที่ reddit แล้วเข้าใจได้ง่าย

Read More…

ทำการ build Go สำหรับลองใช้งาน Generic

นั่งฟัง Live เรื่อง Generic ใน Go 2 จาก DEVdose นั้นมีสิ่งหนึ่งที่คนสนใจต้องทำคือ อ่าน Type parameters :: Draft design ทดลองเขียน code ได้ที่ Go2Go Playground ทำการ build Go จาก source ใน branch dev.go2go

Read More…

ใช้งาน GIN index ของ PostgreSQL database สำหรับค้นหาข้อมูล

ใน PostgreSQL database นั้นเตรียม index ประเภทต่าง ๆ ไว้ให้ใช้งานสำหรับการเพิ่ม performace ของการ query ข้อมูลแต่ก็ต้องแลกมากับ การเพิ่มหรือแก้ไขข้อมูลที่ช้าลงรวมทั้งใช้พื้นที่ disk ในการจัดเก็บที่สูงขึ้นเลือกใช้งานตาม use case ต่าง ๆ ดังนี้ B-Tree (default index) Hash GiST (Generalized Search Tree) SP-GiST (Space-Partitioned GiST) GIN (Generalized Inverted Index) BRIN (Block Range INdexes)

Read More…

มาดูสิ่งที่น่าสนใจใน Spring Boot 2.5.0 (M2)

มาดูว่าใน Spring Boot 2.5 M2 มีอะไรที่น่าสนใจบ้าง ? อะไรก็ตามที่แจ้ง deprecated ใน Spring Boot 2.3 จะถูกลบออกไปทั้งหมดดังนั้น ถ้าใครใช้งานสิ่งที่ depecated อยู่ เตรียมตัวพังได้เลย เรื่องของการ initial SQL script ตอน start ซึ่งมักจะใช้งาน schema.sql และ data.sql นั้นแต่ถ้าใช้ร่วมกับ JPA จะพบว่าลำดับการทำงานจะเป็นดังนี้ ทำการ run schema.sql และ data.sql ทำการ initial ของ JPA แต่ถ้าต้องให้สลับลำดับการทำงานสามารถกำหนดผ่านspring.datasource.initialization-order=after-jpa อื่น ๆ ก็จะมีเรื่องของ Layered WAR จากเดิมที่ทำ Layered JAR ไปแล้ว สนับสนุน Custom buildpacks สำหรับ docker [&hellip

Read More…

Go module by default สำหรับ Go 1.16 แล้ว

ตอนนี้ Go 1.16 ตัวเต็มถูกปล่อยออกมาแล้วซึ่งมีความสามารถต่าง ๆ ที่เพิ่มเข้ามาและแก้ไขพอควรหนึ่งสิ่งที่น่าสนใจคือ Go module by defaultนั่นหมายความว่า คำสั่งต่าง ๆ จะใช้งานไม่ได้เลยถ้าไม่ได้ initial ด้วย Go moduleถือว่าเป็นการเปลี่ยนแปลง ที่หลาย ๆ คนต้องปรับตัวนิดหน่อย

Read More…

สร้าง Docker image ของระบบพัฒนาจากภาษา Go ด้วย Buildpacks

มาดูการสร้าง Docker image ด้วย Buildpacks กันหน่อยโดยที่เราไม่จำเป็นต้องสร้างผ่าน Dockerfileซึ่งเป็นการลดขั้นตอนของการสร้าง Docker image ลงไปที่สำคัญเมื่อนำมาร่วมกับระบบที่พัฒนาด้วยภาษา Go ยิ่งสะดวกไปอีกมาดูกันว่า ใช้งานอย่างไรบ้าง

Read More…

มาเดากันหน่อยว่า Clubhouse ใช้เทคโนโลยีอะไรกันบ้าง

วันนี้เห็นว่าทาง Clubhouse นั้นเขียน blog เรื่อง Welcoming More Voicesอธิบายของการเติบโตของการใช้งานที่สูงมาก ๆซึ่งทำให้ตรงปรับปรุงระบบให้รองรับได้มากขึ้น

Read More…

แนวทางการพัฒนา REST API และ API Documentation

จากบทความเรื่อง รวม Tips & Tricksในการสร้าง Swagger UI ให้กับ Gin REST API ด้วย Swaggoอธิบายถึงการสร้าง API Documentationโดยทำการสร้างมาจาก Code Annotation ในส่วนของ comment ด้วย command swagซึ่งเป็นแนวทางหนึ่งในการสร้างเอกสารขึ้นมา แต่ก็ยังไม่แนวทางอื่น ๆ ใช้งานเช่นกัน

Read More…