Articles Coding

วิธีเริ่มต้นโครงการ Django ด้วย Vim, Docker Compose, MySQL, และ Bootstrap
Coding Dev

วิธีเริ่มต้นโครงการ Django ด้วย Vim, Docker Compose, MySQL, และ Bootstrap

การเริ่มต้นโครงการ Django ด้วยขั้นตอนการทำงานที่ทันสมัยสามารถช่วยลดความซับซ้อนในกระบวนการพัฒนาและทำให้การดูแลรักษาโครงการง่ายขึ้น บทความนี้จะแนะนำวิธีการตั้งค่าโครงการ Django โดยใช้ Vim, Docker Compose, MySQL และ Bootstrap ซึ่งเหมาะสำหรับผู้เริ่มต้น

Read More
OCPPシステムをゼロから構築するための包括的ガイド
Coding EV

OCPPシステムをゼロから構築するための包括的ガイド

電気自動車(EV)の普及に伴い、信頼性の高いEV充電インフラの需要が高まっています。Open Charge Point Protocol(OCPP)は、EV充電器(チャージポイント)と中央管理システム間の通信のための業界標準プロトコルです。この記事では、OCPPベースのシステムをゼロから構築するプロセスについて詳しく説明します。

Read More
ทำไมการเข้าใจ Design Pattern จึงสำคัญสำหรับโครงการขนาดใหญ่เช่น Odoo
Coding ERP

ทำไมการเข้าใจ Design Pattern จึงสำคัญสำหรับโครงการขนาดใหญ่เช่น Odoo

ในโครงการขนาดใหญ่เช่น Odoo ซึ่งระบบถูกออกแบบให้มีความเป็นโมดูล (Modular) ขยายตัวได้ (Extensible) และปรับตัวได้สำหรับความต้องการทางธุรกิจที่หลากหลาย Design Pattern มีบทบาทสำคัญอย่างมาก เนื่องจากเป็นแนวทางแก้ปัญหาที่ได้รับการพิสูจน์แล้วในงานออกแบบซอฟต์แวร์ ช่วยให้ระบบยังคงดูแลรักษาง่าย ขยายตัวได้ และมีประสิทธิภาพในระยะยาว

Read More
なぜOdooのような大規模プロジェクトでデザインパターンを理解する必要があるのか
Coding ERP

なぜOdooのような大規模プロジェクトでデザインパターンを理解する必要があるのか

Odooのようなモジュール化され、拡張性が高く、多様なビジネスニーズに適応可能な大規模プロジェクトでは、デザインパターンが重要な役割を果たします。デザインパターンは、ソフトウェア設計における一般的な課題に対する実証済みの解決策を提供し、システムが長期的に保守可能で、スケーラブルで効率的であることを保証します。 以下に、デザインパターンを理解することが重要な理由を挙げます。

Read More
ระบบเฟอร์ทิเกชันอัตโนมัติในเกษตรกรรมสมัยใหม่
Coding Farming Microcontroller

ระบบเฟอร์ทิเกชันอัตโนมัติในเกษตรกรรมสมัยใหม่

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

Read More
Optimizing Your Automated Fertigation System with PID Control
Coding Farming

Optimizing Your Automated Fertigation System with PID Control

In modern agriculture, automated fertigation systems have become essential for precise water and nutrient delivery. Combining irrigation and fertilization into one streamlined process, fertigation saves time, reduces waste, and boosts crop yields. To ensure such a system operates efficiently, integrating a PID control system is a game-changer.

Read More
การรักษาความปลอดภัยให้แอปพลิเคชัน Django ด้วย HashiCorp Vault (hvac): แนวคิดและตัวอย่างการใช้งาน
Coding Security

การรักษาความปลอดภัยให้แอปพลิเคชัน Django ด้วย HashiCorp Vault (hvac): แนวคิดและตัวอย่างการใช้งาน

เมื่อแอปพลิเคชันเว็บมีความซับซ้อนมากขึ้น ความต้องการในการรักษาความปลอดภัยข้อมูลที่สำคัญ เช่น ข้อมูลลูกค้า ข้อมูลการรับรอง และความลับของแอปพลิเคชันจึงมีความสำคัญมากขึ้น HashiCorp Vault เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการจัดการความลับ การเข้ารหัสข้อมูลที่ละเอียดอ่อน และการสร้างข้อมูลรับรองแบบไดนามิก ในบทความนี้ เราจะสำรวจแนวคิดพื้นฐานของ HashiCorp Vault การใช้งานผ่านไคลเอนต์ Python hvac และวิธีการปกป้องข้อมูลลูกค้าในโมเดล Django

Read More
Securing Django Applications with HashiCorp Vault (hvac): Concepts and Practical Examples
Coding Security

Securing Django Applications with HashiCorp Vault (hvac): Concepts and Practical Examples

As the complexity of web applications increases, so does the need for robust security measures to protect sensitive data, credentials, and application secrets. HashiCorp Vault, commonly used with the hvac Python client, provides an effective solution for managing secrets, encrypting sensitive data, and dynamically generating credentials. When integrated with Django, Vault enhances security by preventing […]

Read More
เราจะเขียน OCPP server อย่างไร
Coding

เราจะเขียน OCPP server อย่างไร

ตอนนี้กระแส EV กำลังมา เวลาเราไปตามปั๊มน้ำมันเราก็จะเห็นจุด charge ev กันใช่ไหมครับ เราเคยสงสัยไหมว่า จุด charge ติดต่อกับ server และ mobile app ของเราอย่างไร เค้าสื่อสารผ่าน OCPP protocol กัน เราลองมาทำความเข้าใจกันดีกว่า

Read More
เราจะทำให้ program ที่มีขั้นตอนการทำงานที่ซับซ้อน และ ต้องแบ่งงานให้กับ programmer หลายๆ คนได้อย่างไร ?
Coding Network Thinking

เราจะทำให้ program ที่มีขั้นตอนการทำงานที่ซับซ้อน และ ต้องแบ่งงานให้กับ programmer หลายๆ คนได้อย่างไร ?

หลายๆคน คงได้อ่านหนังสือเกี่ยว software engineering มาหลายๆ เล่ม  ก็จะมีข้อเสนอแนะหลายวิธี แต่วันนี้ผมจะมาพูดถึงการควบคุมลำดับการทำงานของ program ที่ซับซ้อน  ให้ง่ายขึ้นด้วยการสร้าง workflow engine system ขึ้นมาใช้เอง ลองกลับไปอ่านบทความก่อนหน้านี้  สร้าง business workflow process system ด้วย networkx.org

Read More
วิธีการออกแบบเพื่อลดการซับซ้อนของ software
Coding

วิธีการออกแบบเพื่อลดการซับซ้อนของ software

ควรออกแบบให้เป็น Layer และ แต่ละ Layer ควรกำหนดจุดประสงค์ให้ชัดเจน ภาพจากหนังสือ  https://www.amazon.com/Grokking-Simplicity-software-functional-thinking/dp/1617296201 จากภาพด้านบนเราควรจะกำหนดวัตถุประสงค์ของแต่ละ layer ให้ชัดเจน และ call graph ก็ไม่ควรจะยุ่งเหยิง หรือมีลูกศรที่ข้าม layer   และใน layer เดียวกันก็ไม่ควรจะมีที่เรียกกันเอง  ( ถ้า function นั้นๆ เรียก function ใน layer เดียวกัน function นั้นก็ต้องอยู่บน layer ที่สูงกว่า ) 

Read More
Web Socket  คืออะไร
Coding Network

Web Socket คืออะไร

Web socket คือ technology ที่ใช้สื่อสารระหว่าง web browser และ server  เป็นการสื่อสารแบบสองทาง ข้อดีของ web socket คือ program ในฝั่ง web browser ไม่ต้องเขียนในลักษณะของการเรียก function ในแบบ interval วนไปเรื่อยๆ แต่ใช้วิธีการ  Event listening  สรุปง่ายๆ คือ  ถ้าเราเขียน code ว่า เราสนใจใน event นี้ เมื่อ event นั้นๆ เกิดขึ้นมา code ที่เราผูกกับ event. นั้นก็จะนำ event data ไป process  

Read More
เทคนิคที่ช่วยให้เขียน program ให้ดีขึ้นอย่างรวดเร็ว
Coding

เทคนิคที่ช่วยให้เขียน program ให้ดีขึ้นอย่างรวดเร็ว

ข้อแรกเราต้องเข้าใจปัญหาของระบบที่เราต้องการจะแก้ โดยเราจะต้องค้นหาว่าอะไรคือปัญหาหลักๆ  เมื่อเราค้นพบแล้ว เราก็ควรจะออกแบบโครงสร้างของระบบ และลองร่าง code ในระดับที่เพียงพอจะทดสอบแนวคิดของเราได้  เราอาจจะเขียนใส่กระดาษก็ได้

Read More
มาสร้าง Blockchain ของเราเองกันเถอะ ( 1 )
Coding Network

มาสร้าง Blockchain ของเราเองกันเถอะ ( 1 )

Blockchain คือ การบันทึกข้อมูล ที่ยากในการแก้ไข ( แทบจะเป็นไปไม่ได้ ) ที่จะเปลี่ยนแปลงข้อมูล, hack ระบบ, หรือโกงได้ องค์ประกอบของ blockchain จะประกอบด้วย Block ซึ่งเป็นที่เก็บข้อมูลที่เราต้องการบันทึก เมื่อมี block ใหม่เข้ามา ก็จะทำการไปต่อท้ายเหมือนเป็นสายโซ่ ( chain ) เราเลยเรียกว่า Blockchain แต่การที่จะเพิ่ม block เข้าไปใหม่ใน blockchain network จะมีขั้นตอนที่เรียกว่า proof of work ( การสร้าง hash key ที่ตรงตามเงื่อนไขที่เรากำหนดไว้ เราอาจจะรู้จักขั้นตอนนี้ว่า “ขุด” mine )

Read More
เราจะเข้าใจ code ของ project ที่มีความซับซ้อนได้อย่างไร ?
Coding

เราจะเข้าใจ code ของ project ที่มีความซับซ้อนได้อย่างไร ?

ในสมัยที่ผมเขียน code แรกๆ ผมเข้าใจว่าผมสามารถเข้าใจการทำงานของ program ทุกอย่างผ่านการอ่าน code เพียงอย่างเดียว ผมมีหนังสือหลายเล่มที่อยากแนะนำให้ programmer ลองอ่านดูนะครับ

Read More
ทำแอปประชุม online ด้วย Zoom SDK และ Ionic  mobile framework
Coding

ทำแอปประชุม online ด้วย Zoom SDK และ Ionic mobile framework

เมื่อสองสามวันก่อน มีลูกค้ารายหนึ่ง มาปรึกษาว่า เค้าต้องการจะใช้ Wowza Video streaming server มาทำเป็น Online conference แต่เนื่องจากเค้าทำอย่างไรก็ยัง delay อยู่ประมาณ 5 วินาที  แต่ความต้องการของลูกค้าเค้าอยากให้การตอบสนองเหมือน Zoom เลย 

Read More