Cross-compilation build script

Make mangafmt Run on Windows

หลังจากเดือนก่อนปล่อย mangafmt ซึ่งพัฒนาบน WSL2 และ Build/Run ได้บน Linux เท่านั้น ความตั้งใจถัดมาคือ อยากทำให้มันรันได้บน Windows/OSX ด้วย เพราะคนส่วนใหญ่ใช้ และส่วนตัวก็ใช้ Windows เป็นหลัก หลังจากค้นๆ อยู่แป๊ปนึงก็พบว่า Go มัน cross-compile ง่ายมาก! ตามรูปปกด้านบนเลย แค่ set environment variable ชื่อ GOOS และ GOARCH แค่นั้นก็ build ได้ทั้งข้าม OS และ Architecture แต่โลกไม่สวยงามแบบนั้น ถ้าโค้ดเรามีเรียกใช้ C library อยู่ ชีวิตจะยุ่งยากขึ้นมากในการ build และ lib ที่เราใช้คือ ImageMagick ซึ่งมันทั้งใหญ่และ dependencies ตามมาอีกเพียบ แถมมีเวอร์ชั่น 6 กับ 7 ซึ่งแต่ละ platform อาจจะใช้คนละเวอร์ชันกันอีก หลังจากลองพยายามอยู่ซักพัก ก็ไม่เอาดีกว่า แก้เป็น pure Go ดีกว่า ข้อดีคือ build ง่าย และ executable ที่ออกมา คือรันได้เลย ไม่ต้องลง runtime dependencies เพราะงั้น ต้องเอา ImageMagick ออก...

July 14, 2024 · teerapapc
Example output page on kobo libra 2

Project mangafmt

ช่วง 2-3 อาทิตย์ที่ผ่านมา นั่งทำโปรเจคใหม่ของตัวเอง ชื่อว่า mangafmt เป็นโปรแกรมไว้แปลงไฟล์หนังสือการ์ตูน (บนอินเทอร์เน็ตเรียกตามญี่ปุ่นว่า มังงะ/Manga) เพื่อให้อ่านบน E-ink reader ได้สวยงามและสะดวกมากขึ้น นั่งทำช่วงหลัง 3 ทุ่มเป็นต้นไปของแต่ละวัน เรียกว่าหมกมุ่นได้เลย แทบไม่ได้เล่นเกม/ดูซีรียส์ ขับรถก็คิดถึง ว่าจะทำออกมายังไงดี ใช้วิธีไหนดี บางคืนคิดถึงจนนอนไม่หลับ ไม่ได้สนุกกับการเขียนโปรแกรมแบบนี้มานานมากแล้ว ได้ทำสิ่งที่เราอยากได้เอง กำหนดเองได้ว่าจะทำอะไรหรือไม่ทำอะไร จะทำออกมาแบบไหน โปรแกรมทำอะไรได้บ้าง ตอนนี้ v0.2.1 เสร็จแล้ว สิ่งที่ทำได้คือ (ฟีเจอร์เด็ด) ตรวจจับหน้าคู่ได้ (แบบคร่าวๆ) แล้วเอา 2 หน้ามาต่อกันกลายเป็นหน้าใหญ่หน้าเดียวตามแนวนอนได้ หน้าคู่คือ คนวาดจะวาดใช้พื้นที่ 2 หน้าต่อกัน ซึ่ง e-reader โดยทั่วไปมันแสดงได้ทีละหน้า ทำให้เวลาอ่านจริงๆเสียอรรถรสอยู่พอสมควร เพราะฉากหน้าคู่มักจะเป็นฉากที่มี impact แต่ดันเห็นแค่ทีละครึ่ง ย่อขนาดรูปให้เหมาะกับขนาดจอ รวมทั้งหมุนรูปด้วยถ้าเป็นแนวนอน ตัดขอบพื้นที่สีขาวว่างๆของแต่ละหน้าได้ (เรียกว่า trim) เพื่อจะใช้พื้นที่บนจอเล็กๆได้คุ้มขึ้น ตัวหนังสือจะใหญ่ขึ้นอีกหน่อย ลดจำนวนสีเป็นขาวดำ 16 สี (4-bits grayscale) เพราะจอ e-reader มันแสดงภาพสีไม่ได้ รองรับไฟล์ที่อ่านจากขวาไปซ้าย (เปิดแบบหนังสือการ์ตูนญี่ปุ่น) แปลงไฟล์เป็น EPUB/KEPUB/CBZ มายังไง ทำไปทำไม พอดีเริ่มหันมาอ่านการ์ตูนบน Kobo Libra 2 ที่ตัวเองมี โดยซื้อการ์ตูนจาก Google Play Books แปลงไฟล์นิดหน่อย แล้วได้มาเป็นไฟล์ PDF แต่พอเปิดอ่านในเครื่องก็พบว่า เวลาเปลี่ยนหน้ามัน lag นิดหน่อยเพราะเป็น PDF คนบนเน็ตก็แนะนำให้แปลงไฟล์เป็น EPUB/KEPUB แล้วจะลื่นขึ้น (ซึ่งจริง) ลองใช้โปรแกรมที่เค้านิยมกันชื่อ KCC แปลงดู...

June 3, 2024 · teerapapc
Computer parts

Build Gaming PC 2024

เมื่อปลายปีที่แล้ว ประกอบ PC เครื่องใหม่ สาเหตุที่อยากได้เครื่องใหม่เพราะ อยากได้เครื่องเล่นเกม และเริ่มเบื่อ Nintendo Switch ที่เล่นอยู่ ตอนแรกจะรอ Switch 2 แต่ดูวี่แววแล้ว คงอีกปีกว่าๆ รอไม่ไหว มีดูๆ PS5 ไว้ด้วย แต่ดูจากเกมที่ตัวเองชอบเล่นแล้ว ไม่เหมาะ เครื่องเดิมจะ 10 ปีแล้ว และ Mac Mini ที่ซื้อมาใช้แทนก็เล่นเกมไม่ได้ Mac Mini ที่ไม่ค่อยได้ใช้ก็ขายต่อไป ความต้องการ เริ่มวางความต้องการของตัวเองก่อน สิ่งที่ต้องการคือ เล่น PC Game ปัจจุบันที่อยากเล่นได้ แบบ 4K เช่น Tekken 8 (4k Ultra settings) Flight Simulator 2020 Hogwart Legacy Baldur Gate’s 3 Witcher 3 ใช้เป็นเครื่องหลัก เล่นเน็ต เขียนโปรแกรมทั่วไปได้ อันนี้ง่าย งบไม่เกิน 45k หลังจาก research อยู่ 2 อาทิตย์ ก็ได้สเปคมาตามนี้ Motherboard: ASUS TUF GAMING B760M-PLUS WIFI (DDR5) CPU: Core i5-13400F Case: Asus PRIME AP201 Black mesh Power supply: (80+ BRONZE) 650W ASUS TUF GAMING 650B GPU: Asus DUAL RTX 4070 Ram: KINGSTON FURY BEAST DDR5 5600 16GBx2 SSD: WD BLACK SN770 1TB Fan: be quiet!...

May 19, 2024 · teerapapc
hugo new site command

New Blog

👋 สวัสดีและยินดีต้อนรับสู่ blog ใหม่ของผมครับ ในชีวิตผมเคยเขียน blog มาหลายรอบ ตั้งแต่สมัยมัธยมรอบนึง มหาลัยรอบนึง และช่วงทำงานใหม่ๆ อีกรอบนึง แต่ละช่วงก็เขียนเรื่องต่างๆกันไป ย้อนกลับไปอ่าน ก็เขินๆ เราเขียนอะไรไปวะเนี่ย แต่ก็หยุดเขียนไปได้เกือบ 10 ปีแล้ว เพราะทำงานด้วยและไปทวีตออกทาง Twitter แทนหมด ไม่ได้เขียนอะไรเป็นเรื่องเป็นราวนานแล้ว แต่ยังชอบอ่าน blog ของคนอื่น และมีความอยากเขียนอยู่เรื่อยๆ เพราะบางเรื่อง twitter มันก็สั้นเกินไป Static Site Generator แอบซุ่มใช้เวลาวันหยุดต่างๆทำ blog นี้ขึ้นมา ทำวันละนิดวันละหน่อย จนในที่สุดออกมาได้ รอบนี้ไม่อยากใช้พวก wordpress แต่อยากลองทำด้วย static site generator บ้าง แล้วก็ host บน Github เอา แต่เดิมก็มีทำ homepage ไว้อยู่แล้วแค่เปลี่ยนเป็น blog แทน ไม่อยากใช้ Jekyll ที่คนนิยมเพราะไม่อยากยุ่งกับ ruby/gem เลยลองหาดูตัวอื่น แล้วก็จบที่ Hugo เพราะไม่ต้อง setup dev environment เยอะ เป็น golang ลงแล้วใช้ command เดียวจบ แต่ก็เสียเวลาตบ theme ให้ถูกใจอยู่นานเหมือนกัน...

May 12, 2024 · teerapapc