วันศุกร์ที่ 11 กันยายน พ.ศ. 2569

[Font] บันทึกแก้ไขฟอนต์ JS Jindara (ตอนที่สอง)

ไฟล์สำหรับดาวน์โหลด์ มี 2 แบบ คลิกที่ชื่อฟอนต์เพื่อโหลดได้เลย (ลิงก์จะอัปเดตให้เป็นรุ่นล่าสุด)

- JS-Jindara (fix) [v.1.3] คือฟอนต์ JS-Jindara ที่แก้ไขเรื่องตัวหนา/เอน และวรรณยุกต์เท่านั้น

- Jindara [v.2.3] คือฟอนต์ที่ปรับขนาดให้ตัวใหญ่ตามมาตรฐานฟอนต์สมัยปัจจุบันและแก้ไขบางจุด

* * * * * * * * * *

จากตอนที่ 1 แก้ไขไฟล์ฟอนต์ JS Jindara (จินตหรา) แล้วเอามาลองใช้เองบนโปรแกรมต่างๆ ก็ผ่านฉลุย ใช้งานได้ปกติดี แต่พอเอาไปทดสอบบน Windows ด้วย MS Word แล้วพบปัญหาวรรณยุกต์ลอยซะงั้น

พยายามค้นข้อมูลเพื่อหาวิธีแก้ไขแล้วแต่ไม่สำเร็จ จนสุดท้ายต้องมาเขียนโปรแกรมควบคุมเพิ่มเอง (เป็น Opentype feature ของฟอนต์รุ่นใหม่)

ผมใช้งาน Linux เป็นหลัก เครื่องคอมพิวเตอร์ที่ใช้ ไม่มี Windows เลย เวลาจะทดสอบแต่ละทีก็ต้องไปขอหยิบยืมทดสอบบนเครื่องคอมฯ คนอื่น ^^'a

พอเอามาใช้บน Word แล้วก็เจอปัญหาว่าหลายๆ จุดที่เขียนโปรแกรมจัดการไป (เป็นฟีเจอร์เพิ่มเติมพิเศษ) มันไม่ทำงาน พยายามแก้นู่นแก้นี่ สุดท้ายพยายามคงสภาพความเป็น JS Jindara ให้มากที่สุดเอาไว้ก่อน ทีหลังถ้ามีไฟมากพอก็อาจจะทำเป็นเวอร์ชันที่เอาเฉพาะโครงสร้างตัวอักขระมาใช้

วันอาทิตย์ที่ 23 สิงหาคม พ.ศ. 2569

[Font] บันทึกทำฟอนต์ A5 Bantat บรรทัด (ตอนที่ 1)

ระหว่างที่แก้ฟอนต์ JS Jindara (จินตหรา) ก็เกิดความอยากมีฟอนต์ใช้งานของตัวเองบ้าง เป้าหมายแรกของการออกแบบฟอนต์บรรทัดคือต้องการตัวอักษรทางการเพื่อใช้งานเอกสารเป็นหลัก

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

นึกอยู่ว่าจะตั้งชื่อยังไงดี ระหว่างตั้งชื่อโดยไม่ระบุตระกูล (เช่นกูเกิลฟอนต์ ที่ตัดเอา TH ด้านหน้าชื่อฟอนต์แห่งชาติออก) กับตั้งชื่อตระกูลเพื่อให้รายชื่อฟอนต์อยู่ในกลุ่มเดียวกัน สุดท้ายเลือกชื่อตระกูล A5 เพราะเป้าหมายต้องการทำฟอนต์เอาไว้ใช้กับหนังสือขนาด A5

แบบอักษรอิงความกว้างของฟอนต์ JS Jindara ให้อ้วนหน่อยเพื่อความอ่านง่าย แต่หลังจากออกแบบเสร็จก็รู้สึกว่ามันค่อนข้างกินพื้นที่ด้านกว้างอยู่บ้าง พอเอามาใช้กับพื้นที่แคบๆ (หน้าจอโทรศัพท์มือถือ) แล้วมันไม่ค่อยพอใช้ อนาคตถ้าขยัน อาจจะทำทรงผอมที่ลดขนาดลงเหลือ 90%


https://x.com/HudchewMan/status/2088643936529289696

วันจันทร์ที่ 10 สิงหาคม พ.ศ. 2569

รูปแบบของตัวอักษรจีน

ลักษณะการเขียนตัวอักษรจีนมีการแบ่งออกเป็นประเภทหลักๆ ซึ่งมักแบ่งตามพัฒนาการทางประวัติศาสตร์ ซึ่งแบ่งคร่าวๆ ได้ประมาณนี้ แต่บอกก่อนว่าการแบ่งประเภทที่ผมจะพูดถึง ไม่ได้แบ่งอย่างเป็นทางการนะครับ

1. อักษรจ้วนซู (篆书 / 篆書 - Zhuànshū) | อักษรตราประทับ

เป็นรูปแบบอักษรที่เก่าแก่ที่สุดในกลุ่มนี้ มีความโค้งมน ลายเส้นมีความหนาเท่ากันสม่ำเสมอ คล้ายภาพวาด มักใช้ในการแกะสลักตราประทับโบราณ แบ่งย่อยเป็น:

ต้าจ้วน (大篆) อักษรจ้วนแบบโบราณ (รวมถึงอักษรบนกระดูกสัตว์และเครื่องสัมฤทธิ์)

  • เจี๋ยกู่เหวิน (甲骨文) อักษรในยุคแรกจะเป็นอักษรกระดูก แกะสลักลงบนกระดูกสัตว์และกระดองเต่า (ยุคราชวงศ์ซาง - ประมาณ 3,000 กว่าปีที่แล้ว) เส้นสายจะแหลม คม และเป็นเหลี่ยมมุมชัดเจน เพราะใช้ของมีคมจารึกลงบนกระดองเต่าหรือกระดูกสัตว์ ตัวอักษรยังมีความคล้าย ‘ภาพวาดลายเส้น’ (Pictogram) อยู่มาก
  • จินเหวิน (金文) อักษรบนเครื่องสัมฤทธิ์ (ยุคราชวงศ์โจว) เริ่มหล่อขึ้นรูปด้วยแม่พิมพ์ ทำให้เส้นสายมีความหนา อวบอิ่ม และมีความโค้งมนมากกว่าอักษรกระดูกสัตว์

เสี่ยวจ้วน (小篆) อักษรจ้วนเล็กที่ถูกปรับให้เป็นมาตรฐานในสมัยจิ๋นซีฮ่องเต้ พระองค์ได้รวบรวมและเรียบเรียงปรับตัวอักษรจ้วนโบราณ (ต้าจ้วน) ทั้งหมดให้กลายเป็นมาตรฐานเดียวกันทั้งแผ่นดินจีน เป็นรูปแบบเส้นโค้งสมมติเมตร มีความหนาเท่ากันสม่ำเสมอ เป็นรูปแบบที่เรามักเห็นบนแกะสลักตราประทับจีน



วันอาทิตย์ที่ 9 สิงหาคม พ.ศ. 2569

[Font] ตารางรหัสอักขระฟอนต์ไทย

ee0d ญ ไม่มีเชิง

ee10 ฐ ไม่มีเชิง

ee32 ไม้หันอากาศหลบหาง

ee33 สระอำหลบหาง

ee34 สระอิหลบหาง

ee35 สระอีหลบหาง

ee36 สระอึหลบหาง

ee37 สระอือหลบหาง

ee38 สระอุต่ำ

ee39 สระอูต่ำ

ee3a พินทุต่ำ

ee47 ไม้ไต่คู้หลบหาง

ee48 ไม้เอกต่ำ

ee49 ไม้โทต่ำ

ee4a ไม้ตรีต่ำ

ee4b จัตวาต่ำ

ee4c การันต์ต่ำ

ee4d นิคหิตต่ำ

วันอาทิตย์ที่ 26 กรกฎาคม พ.ศ. 2569

ใช้ web browser นับคำไทย

เวลาเขียนนิยาย ไม่ว่าจะเป็นแบบรายตอนหรือทำ e-book เรามักจะดูจำนวนคำของแต่ละบท (หรือทั้งเล่ม) แต่สำหรับคนที่ใช้ Google Docs ในการทำงาน (หรือ Word for web) จะนับคำไทยไม่ได้ ทำให้ไม่รู้ว่าตอนนี้เขียนไปเท่าไหร่แล้ว (ปกติผมใช้ดูจำนวนหน้าเอา ไม่ได้สนใจจำนวนคำ)

โดยปกติฟีเจอร์นับคำจะมีอยู่ในโปรแกรม word processor (เช่น MS Word) ซึ่งถ้าเป็นโปรแกรมที่รองรับการทำงานภาษาไทย (สามารถตัดคำไทยได้) ก็จะนับคำไทยให้ด้วย

โปรแกรม LibreOffice Writer เองก็มีฟีเจอร์นับคำไทยให้เช่นกัน แต่หลังจากที่เปลี่ยนมาใช้เลขเวอร์ชันที่เป็นปี ค.ศ. แทนเลขรุ่นเหมือนสมัยก่อนแล้ว ฟีเจอร์นับคำไทยของ LibreOffice Writer ก็ใช้ไม่ได้อีกเลย (ไม่แน่ใจว่าจำผิดหรือเปล่า เหมือนว่าเวอร์ชันปี ค.ศ. ตัวแรก ยังใช้ฟีเจอร์นับคำไทยได้อยู่)

ตอนที่แปลนิยายจีน ผมจะใช้ Google Docs ในการพิมพ์งานเป็นหลัก เพราะสะดวกเวลาย้ายอุปกรณ์ทำงาน เมื่อตรวจทานเสร็จผมก็จะคัดลอกมาแปะเก็บในโปรแกรมเขียนนิยายที่ผมทำไว้ใช้เอง เพราะการค้นหาคำทำได้สะดวกกว่า เวลาส่งงานผมก็กด export ให้เป็นไฟล์ .docx ที่จัดหน้าตามที่ต้นสังกัดต้องการได้เลย

หลังจากทำโปรแกรมแพนแกรมไป จู่ๆ เกิดนึกสงสัยขึ้นมาว่า web browser มันนับคำไทยด้วย javascript ได้หรือเปล่า ก็เลยถาม Chat-GPT และคำตอบที่ได้รับทำให้แปลกใจมาก นั่นคือทำได้!

ผมเข้าใจว่านี่เป็นอานิสงส์มาจากฟีเจอร์ตัดคำไทย (ที่ได้มาจากต้นน้ำของทาง Linux อีกที) ก็เลยให้ Chat-GPT ช่วยเขียน html + javascript ออกมา



หลังจากลองเล่นลองแก้นู่นแก้นี่แล้วก็รู้สึกชอบใจ เลยคิดว่าเอาไว้จะเอามาเพิ่มเป็นฟีเจอร์ในโปรแกรมเขียนนิยายที่ใช้อยู่ ทีหลังจะได้ทำงานโดยตรงในโปรแกรมเลย ไม่ต้องผ่าน Google Docs อีก

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

แต่กว่าจะได้ทำใช้ สงสัยคงต้องรอช่วงปลายปี มาจดบันทึกเก็บไว้ก่อน


อ้อ ผมลองพิมพ์ตัวจีนลงไปเพื่อดูการนับ ตอนแรกเข้าใจว่ามันนับเป็นตัวๆ เหมือนบนเว็บนิยาย แต่ปรากฏว่ามันนับเป็นคำด้วย เช่น 中国 (แปลว่าประเทศจีน) มันนับเป็น 1 คำเท่านั้น

ตอนแรกก็คิดว่าจะเพิ่มการตรวจสอบว่าถ้าเป็นอักษรจีน ให้นับเป็นตัวอักษรแทน แต่คิดไปคิดมาก็ปล่อยไว้ดีกว่า เพราะใช้ตัวอักษรจีนน้อยมาก (เอาไว้แค่ใส่ลงในเชิงอรรถเท่านั้น) จะได้ไม่ต้องแก้โปรแกรมเพิ่มอะไรให้ยุ่บยั่บอีก

วันเสาร์ที่ 25 กรกฎาคม พ.ศ. 2569

แพนแกรม ชุดตัวอักษรไทย

เห็นฬ่อเฒ่าจูงทุยถือแฟ้มฤกษ์ศึกษา คำปฏิญญาของพิพิธภัณฑ์ประทับฐาน เพชฌฆาตผาดโผนไซ้ใส่ทวาร ก๊วยเตี๋ยวฮาลาลฝึกฉลามสวมชฎาฯ

ประโยคด้านบน อ่านผ่านๆ ก็คงแค่รู้สึกว่าความหมายแปลกๆ แต่อาจจะไม่รู้สึกว่ามีอะไรพิเศษใช่ไหม ซึ่งถ้าเปลี่ยนเป็นคำกลอนสองบทนี้ อาจจะคุ้นตาขึ้นบ้าง

“เป็นมนุษย์สุดประเสริฐเลิศคุณค่า กว่าบรรดาฝูงสัตว์เดรัจฉาน จงฝ่าฟันพัฒนาวิชาการ อย่าล้างผลาญเข่นฆ่าบีฑาใคร

ไม่ถือโทษโกรธแช่งซัดฮึดฮัดด่า หัดอภัยเหมือนกีฬาอัชฌาสัย ปฏิบัติประพฤติกฎกำหนดใจพูดจาให้ จ๊ะๆ จ๋าๆ น่าฟังเอยฯ”

หลายคนน่าจะเคยผ่านตากลอนบทนี้อยู่บ้าง มันก็คือแพนแกรมในภาษาไทยนั่นเอง

Pangram (แพนแกรม) คืออะไร? มันก็คือข้อความที่ใช้ตัวอักษรทุกตัวในภาษานั้นๆ มักนิยมแต่งประโยคในสั้นที่สุด ซึ่งก็เป็นความท้าทายของคนแต่งด้วยเช่นกัน

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

พอโตขึ้นมาถึงได้รู้ว่ามันคือประโยค The quick brown fox jumps over a lazy dog. ซึ่งก็คือหนึ่งในแพนแกรมภาษาอังกฤษนั่นเอง

วันอาทิตย์ที่ 12 กรกฎาคม พ.ศ. 2569

[Font] บันทึกแก้ไขฟอนต์ JS Jindara (ตอนที่หนึ่ง)

ไฟล์สำหรับดาวน์โหลด์ มี 2 แบบ คลิกที่ชื่อฟอนต์เพื่อโหลดได้เลย (ลิงก์จะอัปเดตให้เป็นรุ่นล่าสุด)

- JS-Jindara (fix) [v.1.3] คือฟอนต์ JS-Jindara ที่แก้ไขเรื่องตัวหนา/เอน และวรรณยุกต์เท่านั้น

- Jindara [v.2.3] คือฟอนต์ที่ปรับขนาดให้ตัวใหญ่ตามมาตรฐานฟอนต์สมัยปัจจุบันและแก้ไขบางจุด (อ่านเพิ่มเติมในโพสต์)

* * * * * * * * * *

ฟอนต์ JS-Jindara (เจเอส จินตหรา) ที่รังสรรค์โดยคุณหมอจิมมี่ ภาณุทัต เตชะเสน (เขียนโปรแกรม) กับคุณแสวง ตันติราพันธ์ (ออกแบบอักขระ) ซึ่งในปัจจุบันทางเจ้าของลิขสิทธิ์ (บริษัท 315 จำกัด ปัจจุบันปิดไปแล้ว) ได้ยกให้เป็นสมบัติสาธารณะ (Public Domain) ที่ใช้งานได้ฟรีภายใต้สัญญาอนุญาต GPL v2 โดยไม่มีการเรียกเก็บค่าใช้งานใดๆ ทั้งสิ้น (รวมถึงฟอนต์ตระกูล JS ตัวอื่นๆ ด้วย)

ฟอนต์ JS-Jindara นี้ เป็นฟอนต์ที่มีหลายคนนิยมใช้สำหรับทำหนังสือ/เอกสาร แต่ด้วยความที่เป็นเทคโนโลยีเก่า จึงมีปัญหาการแสดงผลกับโปรแกรมและระบบปฏิบัติการในยุคปัจจุบันอยู่บ้าง

ผมลองพยายามค้นหาฟอนต์ที่แก้ไขให้ใช้งานได้กับโปรแกรมปัจจุบัน แต่หาไม่เจอเลย จึงต้องมาลงมือทำเอง โดยใช้ไฟล์ฟอนต์ที่ดาวน์โหลดมาจากเว็บ TypeFaces (ฟอนต์อื่นๆ ในตระกูล JS)

วันพฤหัสบดีที่ 2 กรกฎาคม พ.ศ. 2569

ติดตั้ง+ลบฟอนต์ บนลินุกซ์

การติดตั้งฟอนต์บนลินุกซ์นั้นสามารถทำได้ง่ายๆ ไม่ต่างจาก Windows นั่นคือคลิกไฟล์ .ttf หรือ .oft แล้ว (หรือคลิกขวา) จะมีคำสั่งให้ติดตั้งฟอนต์ได้เลย

ฟอนต์ที่ติดตั้งลงไป จะอยู่ในตำแหน่งเก็บฟอนต์ของผู้ใช้งานคนนั้น ซึ่งจะอยู่ในโฟลเดอร์

 ~/.local/share/fonts/

หากต้องการติดตั้งแบบทำให้ผู้ใช้ทุกคนสามารถใช้งานได้ ให้ติดตั้งลงในโฟลเดอร์

/usr/share/fonts

จากนั้นอัปเดตแคชด้วยคำสั่ง

fc-cache -fv


การลบฟอนต์ออกจากระบบ ผมยังไม่เจอวิธีการอื่น ต้องเข้าไปลบในโฟลเดอร์ด้านบนด้วยตัวเอง แล้วก็อัปเดตแคช เป็นอันเสร็จสิ้น

วันเสาร์ที่ 14 มีนาคม พ.ศ. 2569

[Linux] ทดสอบความเร็วอินเทอร์เน็ตบนเทอร์มินัล

ปกติการทดสอบความเร็วอินเทอร์เน็ต เราสามารถเข้าเว็บ fast.com หรือ speedtest.net แต่ถ้าต้องการตรวจความเร็วผ่านทางเทอร์มินัล ก็ยังมีวิธีอยู่

วิธีที่ 1 ใช้ speedtest-cli

  • ติดตั้ง sudo apt install speedtest-cli
  • เรียกใช้งานโดยพิมพ์ speedtest หรือแสดงผลแบบง่ายด้วย speedtest-cli --simple หรือแสดงหน่วยเป็น Bytes โดย speedtest-cli --bytes

วิธีที่ 2 ใช้ fast.com

  • ติดตั้งโดย curl -L https://github.com/ddo/fast/releases/download/v0.0.4/fast_linux_amd64 -o fast
  • เปลี่ยน permission ให้ทำงานได้ chmod +x fast
  • เรียกใช้งานโดยพิมพ์ ./fast


วันพฤหัสบดีที่ 5 มีนาคม พ.ศ. 2569

[Linux] ตรวจสอบ hardware ว่ามีอุปกรณ์อะไรบ้าง

ปกติใน Linux จะมีเมนูเรียกดูส่วนประกอบของเครื่องคอมพิวเตอร์ว่ามีอะไรบ้าง แต่ System Info ของ Linux จะแสดงแค่ข้อมูลพื้นฐานเท่านนั้น



หากต้องการดูข้อมูลรายละเอียดของ hardware แต่ละชนิดในเชิงลึกกว่านั้น ต้องเข้าไปพิมพ์คำสั่งใน terminal โดยสั่งว่า

inxi -Fxz

หากต้องการให้บันทึกข้อมูลลงไฟล์ ให้เพิ่ม > path/ชื่อไฟล์ เช่น

inxi -Fxz > info.txt

inxi -Fxz > ~/Documents/info.txt

วันพฤหัสบดีที่ 19 กุมภาพันธ์ พ.ศ. 2569

การสแกนหนังสือมาสร้างไฟล์ ePUB ไว้อ่าน

ผมมีหนังสือเล่มที่ซื้อเก็บไว้รออ่านอยู่เป็นร้อยๆ เล่ม แต่ด้วยความที่หลายปีให้หลังมีปัญหาเรื่องการอ่านหนังสือเล่มเพราะเรื่องของสายตา จึงสะดวกอ่านเป็น ePUB มากกว่า ก็เลยแทบไม่ได้แตะหนังสือเล่มเลย วิธีการทะลายกองดองของหลายๆ คนจึงจับเอาหนังสือเล่มมาทำให้เป็นไฟล์ดิจิทัลซะ (แล้วก็ดองไฟล์ดิจิทัลต่อ)

ช่วงไหนที่ขยันผมก็จะเอาหนังสือที่มีอยู่มาสแกนเก็บไว้ก่อน แล้วค่อยมาแปลงเป็น epub เพราะไฟล์ที่สแกนมาทำเป็น pdf นั้น ถึงจะใช้ iPad 10 นิ้วเปิด ผมก็ยังรู้สึกอ่านไม่สบายตาอยู่ดี ไม่เหมือนอ่านจากหน้าจอ Kindle 6 นิ้ว ที่เราสามารถย่อขยายตัวหนังสือได้ตามต้องการและสะดวกต่อการพกพาไปอ่านที่ไหนต่อที่ไหนได้

การสแกนหนังสือของเราเก็บไว้อ่านเอง ว่ากันตามกฎหมายแล้วไม่ถือว่ามีความผิด ก่อนหน้านี้เคยมีคดีความที่เป็นแนวคิดคล้ายๆ กันมาแล้ว แต่ไฟล์ที่ทำออกมานี่หากเอาไปจำหน่ายจากแจก แบบนี้คือผิดกฎหมายทันที และถ้าเราสแกนเสร็จแล้วขายหนังสือเล่มนั้นไปแล้ว นั่นคือเราไม่ได้มีสิทธิความเป็นเจ้าของของหนังสือเล่มนั้นๆ อีกต่อไป ไฟล์ที่เราสแกนไว้ก็ไม่ควรอยู่ในการครอบครองของเราอย่างถูกกฎหมายเช่นกัน


วิธีการทำไฟล์ ePUB จากหนังสือเล่ม ก่อนหน้านี้เคยเขียนบล็อกแบบคร่าวๆ ไว้ที่ การทำไฟล์ ePUB ด้วยโปรแกรม Sigil แบบสังเขป หลังจากนั้นก็เคยโพสต์ไว้ในกลุ่มชุมชนนักอ่าน eBook ซึ่งมีขั้นตอนอธิบายรายละเอียดมากกว่าเดิม คิดว่าจะเอามาแปะในบล็อกก็ลืมทุกที วันนี้นึกขึ้นได้ เลยลงมือจัดการซะ เนื้อหาจะแบ่งออกเป็น 3 ตอนด้วยกัน

  • ตอนที่ 1 การนำไฟล์สแกน (หรือถ่ายภาพ) มาทำเป็นข้อความ text ด้วย Google Docs
  • ตอนที่ 2 การเตรียมไฟล์ต้นฉบับสำหรับทำเป็น ePUB
  • ตอนที่ 3 การสร้างเอกสาร ePUB ด้วยโปรแกรม Sigil



วันพฤหัสบดีที่ 5 กุมภาพันธ์ พ.ศ. 2569

เช็คราคาสินค้า

มีบ่อยครั้งที่เห็นสินค้าราคาไม่เท่ากัน จะเปิดเครื่องคิดเลขแต่ละทีก็ลืมไปว่าต้องเอาอะไรมาเป็นตัวตั้ง อะไรเป็นตัวหาร ถึงจะรู้ว่าอันไหนถูกกว่า ต้องตั้งตัวอย่างขึ้นมาแล้วค่อยเอาราคากับปริมาณมาใส่

ด้วยความขี้เกียจต้องมานั่งกดคิดเองทุกรอบ เลยคิดว่าจะเขียนโปรแกรมขึ้นมาใช้งาน แล้วก็นึกขึ้นมาได้ว่าลองโยนให้ Chat-GPT เขียนออกมาหน่อย สั่งไปก็ได้ออกมา โอ้ เข้าท่า จัดๆ แต่งๆ เล็กน้อย ด้วยความที่ใช้งานเอง เลยไม่เน้นความสวยงาม แค่ใช้ได้ก็พอ เลยออกมาเป็นตัวนี้ เปรียบเทียบราคาสินค้า



โปรแกรมเป็น html + javascript

เริ่มต้นมีช่องให้ใส่ราคาเปรียบเทียบ 3 รายการ ถ้าต้องการมากกว่านั้นก็กดปุ่ม [เพิ่มรายการ] จะเพิ่มมาให้ทีละ 2 ช่อง สูงสุดไม่เกิน 20 ช่อง

เมื่อใส่ข้อมูลลงไป จะคำนวณให้ทันที ไม่ต้องกดปุ่มอะไรอีก บอกให้ว่ารายการไหนราคาถูกสุด

หลังจากเอามาใช้งาน ถึงได้รู้ว่าสินค้าหลายอย่างเลย ที่ห่อเล็กถูกกว่าห่อใหญ่ ซื้อเดี่ยวราคาถูกกว่าซื้อแพ็ค เหอๆ


วันจันทร์ที่ 26 มกราคม พ.ศ. 2569

[PHP] ติดตั้ง composer บน Linux Mint

ติดตั้ง composer บน Linux Mint ถ้าหากเป็น PHP ที่ติดตั้งเอง ต้องติดตั้ง php-cli ก่อน

sudo apt update

sudo apt install php-cli unzip


แต่ถ้าหากใช้ PHP ที่ติดตั้งมาพร้อมกับ xampp (lampp) ต้องเปลี่ยนวิธีติดตั้ง

1. ดาวน์โหลดและติดตั้ง composer บน PHP ของ xampp

sudo curl -sS https://getcomposer.org/installer | /opt/lampp/bin/php

2. ย้ายตำแหน่ง composer.phar ให้สามารถเรียกใช้งานได้จากทุกที่

sudo mv composer.phar /usr/local/bin/composer

3. ตรวจสอบการติดตั้ง

composer --version

4. หากต้องการใช้ php ของ xampp แทน php-cli ต้องสร้าง symlink ขึ้นมา

sudo ln -s /opt/lampp/bin/php /usr/local/bin/php


วันเสาร์ที่ 24 มกราคม พ.ศ. 2569

[ringtone] ทำเสียงเรียกเข้าโทรศัพท์มือถือ "นายสนใจฉันหน่อย สนใจฉันหน่อยสิ"

ดูมินิซีรีส์จีน แล้วมีเสียงพากย์ท่อนนึงที่ถูกใจ เลยเอามาตัดต่อทำเป็นเสียงเรียกเข้าโทรศัพท์มือถือเล่นๆ

ringtone - นายสนใจฉันหน่อย สนใจฉันหน่อยสิ

จากเรื่องนี้ อ่อยรักนายร้ายซ่อนเล็บ เวลา 2:37:25


[ keywords ]

ริงโทน, เสียงเรียกเข้า, ringtone

วันศุกร์ที่ 23 มกราคม พ.ศ. 2569

ใส่ภาษาไทยให้กับเครื่องอ่านอีบุ๊ก XTEINK X4

เครื่องอ่านอีบุ๊กจากจีน XTEINK X4 มีจุดเด่นที่ขนาดเล็กกะทัดรัดพกพาสะดวก แต่ไม่สามารถแสดงภาษาไทยได้แม้จะฝังฟอนต์ไทยลงในไฟล์ epub แล้วก็ตาม เคยสนใจเจ้าเครื่องนี้เหมือนกัน แต่พอแสดงอักษรไทยไม่ได้ ก็เลยไม่ได้ชายตามองอีก

ทีนี้มีเพื่อนสมาชิกในกลุ่ม ชุมชนนักอ่าน eBook โพสต์ว่าสร้างเฟิร์มแวร์เพื่อให้เจ้า XTEINK X4 เครื่องนี้อ่านไทยได้แล้ว ดาวน์โหลดได้ที่ xteink.dve.al หรือ GitHub CrossPoint TH


วันพฤหัสบดีที่ 15 มกราคม พ.ศ. 2569

[โปรแกรม] เริ่มเขียนโปรแกรม Go

สมัยก่อนเขียนโปรแกรมที่ใช้บนคอมฯ จะใช้ Delphi, Lazarus Free Pascal แต่ช่วงหลังๆ จะเขียน PHP เป็นหลักเสียมากกว่า แต่เวลาใช้งานมันจะต้องเปิด server เลยอยากได้เป็นโปรแกรมที่ทำงานบนคอมฯ ได้เลย ซึ่งเจ้า Lazarus มันไม่ค่อยยืดหยุ่นเรื่อง interface

ลองหาข้อมูลดูแล้วก็มาเจอ Golang แต่ช่วงก่อนยังไม่ค่อยสะดวกมานั่งศึกษา ตอนนี้คิดจะลองเริ่มใช้งานดูสักที เลยมาจดบันทึกกันลืมไว้ด้วย


วันเสาร์ที่ 3 มกราคม พ.ศ. 2569

การจัดหน้าเว็บด้วย css flex

การออกแบบหน้าเว็บให้ยืดหยุ่นสำหรับแสดงได้ทั้งบนหน้าจอคอมพิวเตอร์และมือถือได้ง่ายขึ้น ในปัจจุบันจะนิยมใช้ display แบบ flexbox แต่ด้วยความที่ไม่ค่อยได้ใช้บ่อย เวลาใช้ทีก็จะงงๆ เลยมาจดบันทึกไว้หน่อย

การจัดเรียงวัตถุต่างๆ แบบ flex ก็จะต้องกำหนด container สำหรับบรรจุให้มีคุณสมบัติ flexbox เสียก่อน เช่น

.container { display: flex; }

div { display: flex; }

form { display: flex; }

การจัดเรียงตามแนวนอนแกน x เรียกว่า main-axis

การจัดเรียงตามแนวตั้งแกน y เรียกว่า cross-axis

จากนั้นก็กำหนดคุณสมบัติเกี่ยวกับ flexbox ให้กับวัตถุภายใน (flex item) ต่างๆ ลงไป โดยหากต้องการจัดเรียงวัตถุแบบซับซ้อน ก็สามารถกำหนดความเป็น container ให้กับวัตถุซ้อนลงไปหลายชั้นได้อีก นั่นคือ flex item ก็สามารถเป็น container ได้เช่นกัน