Skip to content

About

This Space

พื้นที่เล็ก ๆ ตรงนี้เป็นบล็อกส่วนตัว ซึ่งมีเนื้อหาเกี่ยวกับ การเขียนโปรแกรมวิทยาการคอมพิวเตอร์เบื้องต้นอนิเมะเกม ( ⁠รวมถึงเกมโชว์ ⁠)  ดนตรี  และอื่น ๆ อีกมากมาย

คำเตือน ( ⁠Warning ⁠)

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

ผู้เขียนได้พยายามตรวจทานเนื้อหาทั้งหมดที่ปรากฏในพื้นที่เล็ก ๆ นี้อย่างสุดความสามารถ แต่ความผิดพลาดก็ไม่อาจหลีกเลี่ยงได้ 100% ดังนั้นผู้เขียนยินดีน้อมรับคำท้วงติงถึงความผิดพลาดทางเนื่อหาจากผู้อ่าน โดยสามารถติดต่อผู้เขียนได้ที่ลิงก์ตอนท้ายหน้าทุกหน้า หรือพื้นที่ส่วนตัวอื่น ๆ ที่ผู้อ่านพบเห็น

สุดท้ายนี้ ความคิดเห็นที่ปรากฏในพื้นที่แห่งนี้ เป็นเพียงความคิดเห็นส่วนตัวของผู้เขียน ซึ่งไม่มีส่วนเกี่ยวข้องกับผู้ว่าจ้างของผู้เขียนแต่อย่างใด

Myself

ผู้เขียนมีชื่อว่า อาภาพงศ์ จันทร์ทอง ( ⁠อักขระโรมัน: Abhabongse Janthong ⁠) มีชื่อเล่นชื่อว่า เพลน มาจากคำว่า airplane หรือ aeroplane ซึ่งแปลว่าเครื่องบิน

ผู้เขียนเคยศึกษาเกี่ยวกับวิทยาการคอมพิวเตอร์ มุ่งเน้นทางด้าน algorithms และ automated verification  ปัจจุบันทำงานประจำเกี่ยวกับการพัฒนาซอฟต์แวร์

ผู้เขียนชื่นชอบและเคยมีประสบการณ์สอนเนื้อหาเกี่ยวกับวิทยาการคอมพิวเตอร์ คณิตศาสตร์ และการเขียนโปรแกรม โดยเป็นทั้งผู้ช่วยสอนในระดับมหาวิทยาลัยและเป็นวิทยากรเป็นบางโอกาส

My School Works

ผู้เขียนทำวิทยานิพนธ์ระดับปริญญาตรีเกี่ยวกับ sub-linear streaming algorithms สำหรับปัญหาทฤษฎีกราฟ ซึ่งมีเนื้อหาดังนี้

วิทยานิพนธ์ระดับปริญญาตรี: Streaming Algorithm for Determining a Topological Ordering of a Digraph

ผู้เขียนทำโปรเจกต์ระดับปริญญาโทเกี่ยวกับ automated verification สำหรับ database queries ในเชิงทฤษฎี ซึ่งมีเนื้อหาดังนี้

โปรเจกต์ระดับปริญญาโท: Safety Checking for Domain Relational Calculus Queries Using Alloy Analyzer

My Projects and Contributions

งานของผู้เขียนหรือที่ผู้เขียนมีส่วนร่วม มีดังนี้

  • paxter: ภาษาโปรแกรมสำหรับใช้ประมวลผลข้อความเอกสาร ได้อิทธิพลจาก @-expressions ในภาษา Racket ซึ่งเขียนออกมาใช้งานเป็นแพ็กเกจภาษา Python
  • thaienum: แพ็กเกจ CTAN สำหรับช่วยเขียนหัวข้อลำดับรายการในภาษาไทยใน LaTeX\LaTeX ( ⁠ก. ข. ค. หรือ ๑. ๒. ๓. เป็นต้น ⁠)
  • fuzzymatch-go: ไลบราลีภาษา Golang สำหรับ customizable approximate string matching algorithms
  • AI Builders 2022: ออกข้อสอบเขียนโปรแกรม และ พัฒนาระบบตรวจข้อสอบอัตโนมัติ
  • TECHJAM 2018 and 2019 Code Track: ตั้งคำถามสำหรับการแข่งขันสำหรับโปรแกรมเมอร์ในรูปแบบเกมโชว์ จัดโดย KBTG
  • PyThaiNLP: แพ็กเกจภาษา Python ซึ่งประกอบไปด้วยโมดุลการประมวลผลภาษาไทยมากมาย ( ⁠open-source bug-fix contributions ⁠)
  • fonts-tlwg: แพ็กเกจ CTAN สำหรับใช้ฟอนต์ไทยมาตรฐานใน LaTeX\LaTeX ( ⁠open-source bug-fix contributions ⁠).

My Talks

ชุดเนื้อหาที่ใช้ในการบรรยายตามงานหรือสถานที่ต่าง ๆ ( ⁠รวมทั้งงานสาธารณะและงานปิด ⁠)

Colophon

คำว่า Colophon หมายถึง “ข้อมูลทางบรรณานุกรม”  แต่ในอดีตนั้น หมายความเจาะจงถึงข้อมูลที่ผู้จัดทำหนังสือระบุเกี่ยวกับขั้นตอนกระบวนการจัดทำหนังสือดังกล่าว ซึ่งมักอยู่ปิดท้ายหนังสือเล่มนั้น ๆ

เพื่อเป็นการบันทึกข้อมูลสำหรับผู้อ่านที่สนใจ ผู้เขียนได้ระบุข้อมูลที่เกี่ยวข้องกับการจัดทำเว็บไซต์นี้ไว้ดังต่อไปนี้

Tools

เครื่องมือที่ใช้เว็บไซต์นี้ ได้แก่

  • Astro สำหรับการจัดการเนื้อหาและ static site generation
  • Tailwind CSS สำหรับปรับแต่งหน้าตาของเว็บ
  • KaTeX\KaTeX สำหรับแสดงผลสมการคณิตศาสตร์
  • Expressive Code สำหรับแสดงผลโค้ดภาษาโปรแกรม

Fonts and Icons

เว็บไซต์นี้ใช้บริการ Google Fonts เพื่อใช้แจกจ่ายฟอนต์ดังต่อไปนี้

  • แสดงข้อความทั่วไปใช้ IBM Plex Sans และ Sarabun สำหรับอักขระละตินและไทย ตามลำดับ
  • แสดงหัวข้อต่าง ๆ ใช้ Literata และ Taviraj สำหรับอักขระละตินและไทย ตามลำดับ
  • ใช้ JetBrains Mono เพื่อแสดงโค้ดภาษาโปรแกรม

นอกจากนั้น มีการใช้งานไอคอน SVG จากคลังของ Fluent Icons FontAwesome 6, Lucide Icons, Material Icons, Phosphor Icons และอื่น ๆ เป็นต้น

Custom Markdown Features

ผู้เขียนได้ปรับแต่งให้บทความที่เขียนด้วย Markdown รองรับฟีเจอร์ดังนี้

  • กล่องประกาศ ( ⁠Admonition / Callout ⁠) โดยใช้ Remark Directive Plugin ร่วมกับ custom remark plugin ที่พัฒนาใช้เองภายใน
  • เชิงอรรถขอบกระดาษ ( ⁠Sidenote ⁠)เช่นข้อความนี้ ซึ่งได้รับอิทธิพลจาก Tufte CSS โดยใช้ Remark Directive Plugin ร่วมกับ custom remark plugin ที่พัฒนาใช้เองภายใน
  • ตั้งค่าวรรคหน้าไม้ยมก ( ⁠Maiyamok Autospacing ⁠)  โดยเว้นวรรคที่อยู่ก่อนไม้ยมก ( ⁠ๆ ⁠) จะถูกแทนที่ด้วยอักขระ U+202F ( ⁠Narrow No-break Space ⁠) ซึ่งจะมีขนาดเล็กกว่าเว้นวรรคทั่วไป และมีระบบป้องกันการตัดบรรทัดก่อนเครื่องหมายดังกล่าว  ฟีเจอร์นี้เป็น custom rehype plugin ที่พัฒนาใช้เองภายใน

Notable Design Decisions

ผู้เขียนมีเจตนาให้ผู้ชมเว็บไซต์นี้ ได้รับประสบการณ์การใช้งานดังนี้

  • พัฒนาเว็บไซต์บนสมมติฐานว่าผู้อ่านใช้ evergreen browser ( ⁠เว็บเบราว์เซอร์ที่มีการอัปเดตล่าสุดอย่างสม่ำเสมอ ⁠)
  • เหมาะสำหรับผู้ใช้งาน screen reader ( ⁠ทดสอบกับโหมด Talkback ของ Android ⁠) และ keyboard-only navigation
  • ปิด animation และ transition effect ในกรณีที่ user agent มีการตั้งค่า prefers-reduced-motion: reduce ( ⁠อ่านเพิ่มเติม ⁠)

หากไม่ได้รับความสะดวกในการใช้งาน โปรดแจ้งผู้เขียนได้โดยตรง

Cover Photo

รูป cover photo ในหน้าหลักคือรูปนก red-breasted sapsucker ซึ่ง ถ่ายโดยผู้เขียนเอง ที่ Olympic National Park มลรัฐวอชิงตัน สหรัฐอเมริกา