- เพื่อลดนิสัยไถข่าวในมือถือและโซเชียลมีเดียไม่รู้จบทุกเช้า จึงพิมพ์หน้าหนึ่งบนกระดาษแบบปรับแต่งเฉพาะบุคคลทุกวันด้วย เครื่องพิมพ์ดอตเมทริกซ์
- องค์ประกอบมีเพียง Star NP-10, Raspberry Pi Zero W, อะแดปเตอร์พอร์ตขนาน-USB และแหล่งจ่ายไฟ โดยบน Pi จะมองเครื่องพิมพ์เป็นอุปกรณ์
/dev/usb/lp0
- เครื่องพิมพ์รุ่นเก่ารับชุดอักขระแบบจำกัดที่ใกล้กับ Code Page 437 แทน Unicode ทั่วไป จึงส่งค่า hex ตรงจาก PHP เพื่อพิมพ์เส้น กรอบ และสัญลักษณ์อุณหภูมิ
- ดึงข้อมูลจาก Open-Meteo, twelvedata, NYTimes และ Reddit JSON แล้วจัดรูปแบบสภาพอากาศ หุ้น พาดหัวข่าว และโพสต์ Reddit ให้พอดีกับความกว้างของกระดาษ
- ตั้งให้รันอัตโนมัติด้วย cron ราว 8 โมงเช้าทุกวัน โดยใช้ข่าวแบบมีจุดสิ้นสุดบนกระดาษแผ่นเดียวมาแทนการเลื่อนฟีดไม่รู้จบบนเว็บไซต์และแอป
สร้างหน้าหนึ่งบนกระดาษแทนหน้าจอ
- ต้องการลดนิสัยเปิดมือถือแล้วเลื่อนดูข่าวและโซเชียลมีเดียหลายเว็บในตอนเช้า แต่ยังอยากติดตามข้อมูลล่าสุดอยู่
- จึงนำเครื่องพิมพ์ดอตเมทริกซ์ที่ซื้อจาก eBay มาใช้พิมพ์ หน้าหนึ่ง แบบปรับแต่งเองที่เตรียมไว้ทุกวัน
- ซอร์สโค้ดทั้งหมดเผยแพร่ไว้ใน GitHub repo
การเลือกฮาร์ดแวร์และการเชื่อมต่อ
- อุปกรณ์ที่ต้องใช้ค่อนข้างเรียบง่าย
- เครื่องพิมพ์ที่ใช้คือ Star NP-10 ซึ่งดูเหมือนจะเป็นรุ่นจากช่วงกลางทศวรรษ 1980
- ถ้าเป็นเครื่องพิมพ์ดอตเมทริกซ์ที่มีพอร์ตขนานก็มีโอกาสใช้งานได้
- ราคาทั่วไปอยู่ราว 80–120 ดอลลาร์ แต่ซื้อมาได้ประมาณครึ่งราคาเพราะมีป้ายว่า “ไม่แน่ใจว่ายังใช้งานได้หรือไม่”
- หลังทำความสะอาดเล็กน้อยและปรับตลับผ้าหมึก ก็พิมพ์หน้าทดสอบได้สำเร็จ
- Raspberry Pi เชื่อมต่อ WiFi และต่อเข้ากับพอร์ตขนานของเครื่องพิมพ์ผ่านอะแดปเตอร์ USB
- หลัง
ssh เข้าไปที่ Pi ก็ยืนยันได้ว่าเครื่องพิมพ์ถูกมองเห็นที่ /dev/usb/lp0
ส่งข้อมูลเข้าเครื่องพิมพ์โดยตรง
- ตอนแรกทดสอบว่าเครื่องพิมพ์ทำงานหรือไม่ด้วยการส่งข้อความดิบจากเชลล์โดยตรง
echo "Hello, world!" > /dev/usb/lp0
- เกิดข้อผิดพลาดเรื่องการเข้าถึงไฟล์ จึงเลี่ยงปัญหาสิทธิ์ด้วย
chmod
sudo chmod 666 /dev/usb/lp0
- หลังจากนั้น ข้อความที่ส่งไปยัง
/dev/usb/lp0 ก็ถูกพิมพ์ออกมา
- จากนั้นจึงขยายเป็นการเปิดไฟล์เครื่องพิมพ์ด้วย
fopen() ใน PHP แล้วเขียนข้อความลงไป
- เมื่อทดลองทั้งประโยคทั่วไป ช่องว่าง และงานอาร์ตแบบ Unicode ก็พบว่า ขอบเขตการรองรับอักขระ ของเครื่องพิมพ์มีจำกัด
ชุดอักขระของ Star NP-10
- ไปหา คู่มือผู้ใช้ Star NP-10 ฉบับสแกนมาอ่านเพื่อดูวิธีทำงานของเครื่องพิมพ์
- เครื่องพิมพ์รุ่นนี้รับได้เฉพาะ ชุดอักขระ ที่เฉพาะเจาะจงมาก
- อ้างอิงอย่างหลวม ๆ จาก Code Page 437 ของ IBM PC
- มีตัวอักษรและตัวเลขมาตรฐาน รวมถึงสัญลักษณ์พิเศษ เส้น และอักขระแบบกรอบบางส่วน
- ใน PHP สามารถสร้างสตริงจากค่า hex แล้วส่งตรงเข้าเครื่องพิมพ์ได้
$horizontalDouble = "\xCD";
$deg = "\xF8";
echo str_repeat($horizontalDouble, 24);
echo '78' . $deg . 'F' . PHP_EOL;
- วิธีนี้ทำให้พิมพ์ได้ไม่ใช่แค่ข้อความธรรมดา แต่รวมถึง อักขระตกแต่ง อย่างเส้น กรอบ และสัญลักษณ์อุณหภูมิด้วย
ข้อมูลที่ดึงมาและ API
- หน้าหนึ่งส่วนตัวนี้มี 4 ส่วน
- สภาพอากาศ
- หุ้น
- พาดหัวข่าวสำคัญ
- โพสต์ Reddit ยอดนิยม
- เพราะเป็นโปรเจกต์ทดลอง จึงพยายามลดค่าใช้จ่ายด้านข้อมูลและใช้ API ฟรีให้มากที่สุด โดยค้นหา API ที่ต้องการจากคลัง public-apis ที่รวม API สาธารณะฟรีไว้
- แหล่งข้อมูลที่ใช้มีดังนี้
- Open-Meteo: ข้อมูลสภาพอากาศ ไม่ต้องใช้ API key
- twelvedata: ข้อมูลหุ้น มี free tier ที่ให้โควตาค่อนข้างเยอะ
- NYTimes: พาดหัวข่าว มี free tier เพียงพอสำหรับโปรเจกต์นี้
- Reddit JSON: โพสต์ Reddit ใช้งานได้ฟรี แต่ต้อง spoof User-Agent
- สคริปต์ PHP จะดึง payload จากแต่ละ API endpoint แล้วรวมเฉพาะข้อมูลที่ต้องใช้ไว้ในอาร์เรย์ขนาดใหญ่ตัวเดียว
- ใช้เฉพาะหุ้นบางตัว ข่าวบางประเภท และโพสต์จากบาง subreddit เท่านั้น
- ถ้าส่วนใดส่วนหนึ่งไม่มีข้อมูลสำหรับแสดง สคริปต์จะหยุดทำงานก่อนแล้วค่อยรันใหม่ภายหลัง
วิธีคัดกรองข้อมูลข่าว
- ข้อมูลจาก NYTimes จะถือว่าล้มเหลวทันทีหากไม่มี
results ในการตอบกลับของ API
- จากบทความทั้งหมด จะคัดมาแสดงเฉพาะรายการที่เข้าเงื่อนไขต่อไปนี้
type เป็น Article
section เป็นหนึ่งใน U.S., World, Weather, Arts
- จะเพิ่มก็ต่อเมื่อจำนวนยังไม่ถึงค่าสูงสุด
MAXNEWS
- กำหนด
NEWS, NEWSKEY, MAXNEWS เป็นค่าคงที่ไว้ด้านบนของสคริปต์ เพื่อให้แก้ไขได้ง่าย
จัดรูปแบบการพิมพ์ให้พอดีกับกระดาษ
- แทนที่จะพิมพ์แค่ชื่อส่วนเฉย ๆ จึงทำ กรอบขอบ ด้านบนที่มีวันที่ปัจจุบัน วันในสัปดาห์ และชื่อหน้าหนึ่งอยู่ภายใน
- คำนวณเลย์เอาต์โดยยึดจากความกว้างหน้ากระดาษของเครื่องพิมพ์ที่ 80 ตัวอักษร
- อักขระแบบ hex
str_repeat
- ค่าความกว้างหน้าคงที่
- ชื่อของแต่ละส่วนพิมพ์โดยผสมอักขระเส้นกับข้อความ
str_repeat($horizontalSingle, 3) . " WEATHER " . str_repeat($horizontalSingle, (PAGEWIDTH - 9)) . "\n";
- ส่วนสภาพอากาศกับหุ้นสั้นพอที่จะพิมพ์เป็นบรรทัดเดียวโดยไม่ชนขอบกระดาษ
- ส่วนพาดหัวข่าวและโพสต์ Reddit มักเป็นข้อความยาว จึงต้องมีการ ตัดบรรทัด แยกต่างหาก
การตัดบรรทัดสำหรับข้อความยาว
- ตัวเครื่องพิมพ์สามารถพิมพ์บรรทัดยาวต่อเนื่องลงบรรทัดถัดไปให้อัตโนมัติได้
- แต่เพื่อเลี่ยงไม่ให้คำถูกตัดครึ่งกลางแล้วไหลไปบรรทัดใหม่ จึงเขียนฟังก์ชันสำหรับแบ่งสตริงตาม ความยาวบรรทัดสูงสุด
- ฟังก์ชัน
splitString() จะแยกคำตามช่องว่าง และคืนค่าเป็นอาร์เรย์ที่ทำให้แต่ละบรรทัดไม่เกิน PAGEWIDTH
- ถ้ามีคำเดี่ยวที่ยาวเกินความยาวสูงสุด ก็จะตัดคำนั้นแยกจัดการ
- สำหรับโพสต์ Reddit จะวนลูปผ่านอาร์เรย์ของบรรทัดที่คืนมาแล้วเขียนลงเครื่องพิมพ์
foreach (splitString($redditPost) as $line) {
fwrite($printer, $line) . "\n";
}
การทำงานอัตโนมัติและประสบการณ์ใช้งาน
- ถ้าจะรันเองแบบแมนนวลสามารถใช้
php print.php ได้
- ในการใช้งานจริงตั้งงาน cron ให้ทำงานอัตโนมัติ
- ทุกวันเวลาประมาณ 8 โมงเช้า จะพิมพ์หน้าหนึ่งแบบปรับแต่งส่วนตัวออกมา
- จากนั้นก็ฉีกกระดาษออกมาดูพร้อมดื่มกาแฟ
- ข่าวแบบมีจุดสิ้นสุดที่อยู่บนกระดาษแผ่นเดียวให้ความรู้สึกดีกว่าการเลื่อนเว็บไซต์และแอปโซเชียลแบบไม่รู้จบ
- กระบวนการนำฮาร์ดแวร์เก่าจับคู่กับเทคโนโลยีใหม่เพื่อใช้งาน ก็เป็นความสนุกสำคัญของโปรเจกต์นี้เช่นกัน
1 ความคิดเห็น
ความคิดเห็นใน Hacker News
ผมเคยลองทำอะไรคล้าย ๆ กันด้วยเครื่องพิมพ์ใบเสร็จ โดย เครื่องพิมพ์ใบเสร็จแบบความร้อน USB ราคาประมาณ 75 ดอลลาร์ และควบคุมด้วย Python ได้ง่าย
การพิมพ์รูปภาพกับ QR code ทำได้ไม่ยาก และฟังก์ชันตัดกระดาษอัตโนมัติก็ช่วยให้แยกข้อความแต่ละรายการได้ดี
ยังสั่งให้กระดิ่งภายในดังเพื่อใช้เหมือนเป็น การแจ้งเตือน เพิ่มเติมได้ และมีเอาต์พุตสำหรับควบคุมลิ้นชักเก็บเงินด้วย เลยคิดว่าจะลองต่อไปควบคุมอะไรอย่างไฟดู
ผมตั้งค่าไว้สำหรับอีเมล และให้พิมพ์ตารางนัดหมายออกมาทุกเช้า
ถ้าใช้ร่วมกับการควบคุมทางกายภาพอย่างปุ่มหรือ NFC reader อินเทอร์เฟซก็ค่อนข้างเข้ากันดี เช่น มีการ์ด NFC สำหรับพิมพ์ตารางนัดหมาย หรือการ์ด NFC สำหรับพิมพ์อีเมลที่ยังไม่ได้อ่าน เป็นการส่ง “คำสั่ง” แล้วรับผลลัพธ์ออกมา
เป็นวิธีลดเวลาอยู่หน้าจอที่สนุกดี แต่ที่ประชดคือ ผมคงใช้เวลามองหน้าจอไปกับการเขียนโค้ดและตั้งค่าสิ่งนี้มากกว่าเวลาที่ประหยัดได้เสียอีก
https://www.consumerreports.org/cro/news/2014/03/the-health-...
วันนี้จู่ ๆ ก็สงสัยขึ้นมา
สิ่งหนึ่งที่คนนี้ทำก็แค่ echo ไปที่
/dev/lp0ซึ่งสมัยก่อนก็ทำกันแบบนั้นจริง ๆ คือส่งข้อความเข้าอินเทอร์เฟซ แล้วเครื่องพิมพ์ก็พิมพ์ออกมาเครื่องพิมพ์สมัยนี้หรูหรากว่ามาก แต่ก็ยังเป็นเครื่องพิมพ์ที่มีมรดกตกทอดยาวนานอยู่ดี เครื่องพิมพ์เลเซอร์ HP รุ่นแรก ๆ ก็แค่ส่งข้อมูลไปตามสาย แล้วมันจะพิมพ์ออกมาเป็น Courier 10 จำนวน 66 บรรทัดต่อหน้า ส่วน Apple LaserWriter น่าจะไม่ใช่แบบนั้น เพราะเป็นเครื่องพิมพ์ PostScript โดยเฉพาะ และคงต้องส่ง PostScript เข้าไปแทน
เมื่อเครื่องพิมพ์พัฒนาขึ้น ภาษาที่ส่งไปก็ซับซ้อนขึ้น แต่ก็ยังรักษาความเข้ากันได้ย้อนหลังไว้ยาวนาน
ดังนั้นถ้าเสียบเครื่องพิมพ์ USB เข้ากับคอมพิวเตอร์ แล้วสั่ง
ls > /dev/usbXXXทุกวันนี้ยังจะพิมพ์ออกมาไหม? มันยังทำงานแบบนั้นอยู่หรือเปล่า?ถ้าส่ง escape code ของ EPSON MX-80 ไปยัง EPSON มันจะยังใช้ได้ไหม? ไม่ว่าคำตอบจะเป็นทางไหนก็ไม่น่าแปลกใจ แต่สำหรับผม เครื่องพิมพ์สมัยนี้ค่อนข้างเป็นกล่องดำ เลยอยากรู้ว่ามีใครทราบไหม
น่าจะยังมีคนจำความสนุกตอนต้องปลุกปล้ำให้รายงานพิมพ์ออกมาตรงกับแบบฟอร์ม NCR กระดาษสำเนาหลายชั้นที่พิมพ์ไว้ล่วงหน้าได้
/dev/แบบที่อธิบายไว้ แต่ OS X ก็มีlpอยู่ จึงใช้แบบecho "Hello printer" | lp -dได้ และดูชื่อได้ด้วยlpstat -pลองกับเครื่องพิมพ์ใหม่แล้ว ใช้งานได้จริง
printf 'hello\f' > /dev/usb/lp0printf 'hello\f' | nc -N $printer_ip 9100เป็นเครื่องพิมพ์เลเซอร์ Brother และมีลิงก์คู่มือการเขียนโปรแกรมอยู่ข้าง ๆ คู่มือออนไลน์ ภาษาคือ PCL แต่สำหรับการพิมพ์ง่าย ๆ ไม่จำเป็นต้องรู้อะไรมาก
สองวิธีข้างต้นไม่ได้ใช้ CUPS ถ้าจะใช้ไฟล์ปฏิบัติการ
lp/lprเหมือนคอมเมนต์อื่น ๆ ต้องลงทะเบียนเครื่องพิมพ์กับ CUPS ก่อนในกรณี
ls >เครื่องพิมพ์คาดหวังการขึ้นบรรทัดแบบ DOS\nจะเลื่อนไปบรรทัดใหม่เท่านั้น ไม่ได้ทำ “carriage return” ดังนั้นต้อง pipe ผ่านsed 's/$/\r/'หรือใช้nc -Cเมื่อเชื่อมต่อผ่าน USB สามารถพิมพ์หลายครั้งเพื่อรวมเป็นหน้าเดียวได้ และกระดาษจะยังไม่ออกจนกว่าจะส่ง form feed ส่วนการเชื่อมต่อ TCP เมื่อปิดการเชื่อมต่อแล้วหน้ากระดาษจะถูกพิมพ์ออกมา
/dev/usblp0และส่งข้อมูลด้วยcatเฉย ๆ ก็ใช้งานได้ลูกค้าที่ซื้อผลิตภัณฑ์แบบนี้ใหม่คงต้องการให้เข้ากันได้กับกระบวนการที่ใช้มาตลอด 30–50 ปีที่ผ่านมา ดังนั้นตามคาดคือมันรองรับ ESC/P 2 และยังรองรับ escape code ของ IBM ด้วย น่าแปลกใจอยู่เหมือนกัน เพราะเครื่องพิมพ์เมทริกซ์รุ่นเก่าที่เคยใช้ในยุค 90 ดูเหมือนไม่รองรับโค้ด IBM
ที่น่าประหลาดใจกว่านั้นคือ MacBook มีไดรเวอร์ในตัวสำหรับเครื่องพิมพ์ Epson แบบทั่วไป และมันใช้งานได้ คุณภาพไม่ดีนักและพิมพ์เป็นกราฟิก แต่ถึงอย่างไรก็มีอยู่จริง
เครื่องพิมพ์อิงก์เจ็ตและเลเซอร์รุ่นใหม่ ๆ ผมไม่ค่อยแน่ใจ เครื่องพิมพ์อิงก์เจ็ต Epson ที่ใช้เมื่อราว 20 ปีก่อนรองรับโค้ด ESC/P แบบ raw
https://retrohacker.substack.com/p/bye-cups-printing-with-ne...
ความผิดพลาดของผู้ใช้ที่เจอบ่อยอย่างหนึ่งคือ เมื่อมีใครพยายามพิมพ์เอกสาร Word PostScript จะถูกส่งไปยังเครื่องพิมพ์ดอตเมทริกซ์ แล้วเครื่องพิมพ์ก็พิมพ์ซอร์ส PostScript นั้นออกมาตามตัวอักษรอย่างซื่อสัตย์ ทำให้เปลืองกระดาษและริบบอนจนกว่าจะมีใครมาหยุด
เครื่องพิมพ์แบบเมทริกซ์ก็ทำอะไรได้ค่อนข้างมาก แล้วแต่รุ่น เช่น เปลี่ยนฟอนต์ ตัวหนา ขีดเส้นใต้ บางครั้งก็ทำตัวเอียง ตัวอักษรกว้าง/สูงสองเท่า ไปจนถึงกราฟิกได้ด้วย เพียงแต่กราฟิกมักมีความละเอียดค่อนข้างต่ำ เช่น 90 หรือ 180 DPI
เมื่อก่อนเคยทำกล่องที่มีแค่คอนเนกเตอร์พรินเตอร์พอร์ตขนานไว้สำหรับอะไรสักอย่างคล้ายเกม escape room พอต่อเข้ากับพรินเตอร์ ไมโครคอนโทรลเลอร์ PIC ขนาดจิ๋วจะรับ ไฟเลี้ยงแบบพาราซิต จากสายควบคุมเส้นหนึ่งของพอร์ตขนาน ใช้ไฟแค่ไม่กี่ร้อย µA แล้วส่งคำใบ้ไปยังพรินเตอร์
ช่วงแรกมันใช้โหมดกราฟิกความละเอียดสูงของเครื่องพิมพ์ดอตเมทริกซ์ Epson พรินเตอร์เหล่านี้สามารถปรับ platen แบบละเอียดได้เล็กถึง 1/3 ของระยะห่างระหว่างเข็มบนหัวพิมพ์ ทำให้ได้ความละเอียดแนวตั้งมากกว่าที่หัวพิมพ์ทำได้เองถึง 3 เท่า
Fancy Font เรนเดอร์ข้อความบนคอมพิวเตอร์แล้วส่งออกเป็นกราฟิกในโหมดความละเอียดสูงพิเศษนี้ ทำให้ได้ผลลัพธ์ที่ใกล้เคียงการจัดพิมพ์มากที่สุดเท่าที่อุปกรณ์สำหรับบ้านช่วงต้นทศวรรษ 1980 จะทำได้
เวอร์ชันหลัง ๆ ยังมีไดรเวอร์สำหรับเครื่องพิมพ์เลเซอร์ยุคแรก ๆ อย่าง HP LaserJet รุ่นดั้งเดิมด้วย แต่พอ Mac ออกมา อนาคตของระบบแบบนั้นก็ค่อนข้างชัดเจน
เพียงแต่ว่าหลังพิมพ์แล้วกระดาษงอมาก ตอนนี้ยังมีพรินเตอร์อยู่ แต่ไม่รู้ว่าจะหา ribbon 4 สีได้จากที่ไหน
figletในเทอร์มินัลสมัยนี้สร้างขึ้น บางทีมันอาจยังรองรับการส่งออกไปพรินเตอร์อยู่ก็ได้อาจจะลองทำในเวอร์ชัน 2.0 ก็ได้
ผมเคยต่อเครื่องนี้เข้ากับฟีดข่าวไว้อยู่หลายปี[1] เป็นกลไกของ Model 14 Teletype tape printer และตอนนี้ก็ยังอยู่ในห้องนั่งเล่น โดยเทปจะไหลออกไปลงตะกร้าลวด
ขับเคลื่อนด้วยโปรแกรม Python บนซับโน้ตบุ๊ก EeePC เก่า ๆ
[1] https://aetherltd.com/refurbishing14.html
ได้ยินชื่อ EeePC อีกครั้งในรอบนานมาก ทำให้นึกถึงความหลังเลย
ดูเหมือนเป็นไอเดียผลิตภัณฑ์ที่ยอดเยี่ยมจริง ๆ แนวคิดที่ว่าได้ฟีดข่าวส่วนตัวทุกเช้า และไม่ใช่จากที่อย่าง MSN แต่เป็น ฟีดข่าวออฟสกรีนที่ผมเลือกเองจริง ๆ นั้นเท่มาก
ถ้ายังสามารถ แทนนาฬิกาปลุกด้วยเครื่องพิมพ์ดอตเมทริกซ์ ได้ด้วยก็ยิ่งเจ๋ง
การแก้ PHP ให้เข้ากับแหล่งข่าวของผมน่าจะทำได้ง่าย แต่ผมไม่รู้ว่าจะเริ่มทำฝั่งฮาร์ดแวร์เองอย่างไร น่าจะมีคนที่อยู่ในสถานการณ์แบบนี้ไม่น้อย
ถ้ามีขายในตลาด ผมคงซื้อ แม้จะแพงกว่าราคาเครื่องพิมพ์เก่ามากก็ตาม
ส่วนที่ยากที่สุดคือการต่อพรินเตอร์ ซึ่งอาจต้องใช้ สายอะแดปเตอร์
เรียบร้อยดี ทำให้นึกถึงช่วงที่เคยทำงานสั้น ๆ ที่สถานีวิทยุ รายละเอียดแทบลืมไปหมดแล้ว แต่เหมือนว่าจะมีการโทรเข้าอัตโนมัติไปยัง หมายเลข Associated Press บางหมายเลขเพื่อดึงพาดหัวข่าวล่าสุด แล้วส่งไปยังเครื่องพิมพ์ดอตเมทริกซ์
ตอนนั้นเป็นปลายยุค 90 และรันบน MS-DOS
พรินเตอร์ส่วนใหญ่ในเวลานั้นสามารถตั้งฟอนต์ผ่าน control code ได้ และหลายรุ่นก็มี ฟอนต์แบบความกว้างแปรผัน ด้วย
ดีเลย ช่วงนี้กำลังคิดว่าจะสมัครรับ หนังสือพิมพ์ฉบับกระดาษช่วงสุดสัปดาห์ อย่าง FT Weekend เพราะผมอ่านข่าวบนมือถือบ่อยเกินไป
ข่าวมักไม่ได้มีประโยชน์มากนัก แถมยังสร้างแต่อารมณ์ด้านลบ ถ้าอ่านข่าวบนกระดาษ และแค่สัปดาห์ละครั้ง น่าจะรู้สึกสบายใจกว่า
วิธีพิมพ์ข่าวลงกระดาษทุกวันแบบนี้ดูเหมือนจะช่วยเติมช่องว่างตรงกลางได้ดี
อีกอย่าง ผมชอบเครื่องพิมพ์ดอตเมทริกซ์มาก มี เครื่องพิมพ์โอเพนซอร์ส ที่เหมาะให้แฮ็กแบบนี้ไหม?
ผมเคยพยายามสมัครรับหนังสือพิมพ์กระดาษ แต่ไม่เคยได้รับเลย หลังโทรไป 3 ครั้งและส่งอีเมลไปประมาณ 10 ฉบับ พอขอยกเลิกสมาชิกและคืนเงิน เขาถึงบอกว่าจะยกระดับ ticket ให้ ตอนนั้นก็ผ่านไป 3 สัปดาห์แล้ว และผมก็เสียเวลาไปมาก
ดังนั้นผมจึงสนใจมากเหมือนกันที่จะพิมพ์ข่าวจากอินเทอร์เน็ตเอง เพื่อไม่ต้องจ้องหน้าจอต่อไป
ผมพิมพ์ “การ์ดสามด้าน” มาระยะหนึ่งแล้ว ด้านหนึ่งเป็นรูปภาพ อีกด้านเป็น QR code ที่ลิงก์ไปยังเอกสาร
https://mastodon.social/@UP8/111013706271196029
“ด้านที่สาม” คือเว็บไซต์ที่ QR code ลิงก์ไป
ผมเริ่มเบื่อภาพถ่าย เลยสร้างตัวละครที่พกเลนส์ราคาถูก ตั้งรูรับแสงให้แคบกว่า f/18 เสมอ ใช้ post-processing กับการปรับสีแรง ๆ และถ่ายด้วยอัตราส่วนภาพที่เป็นมาตรฐานแต่ให้ความรู้สึกไม่มาตรฐาน ตั้งใจให้ดูเหมือนใช้กล้องประหลาดจากไทม์ไลน์ทางเลือก
พอเริ่มพิมพ์ซีรีส์นี้ ผมสรุปได้ว่าถ้าตัด 4x6 ก็ทำ 4x5 ได้ง่าย แต่แทนที่จะตัด ก็สามารถเว้นพื้นที่ 1 นิ้วไว้ใส่ QR code กับเอกสารบนด้านหน้าได้ เช่นเดียวกัน ถ้าตัด 5x7 ให้เป็นสี่เหลี่ยม 5x5 ก็จะมีพื้นที่สำหรับใส่เอกสาร
ผมมีกระดาษมันอยู่หลายกล่องที่พิมพ์ด้านหลังไม่ได้ เลยคิดว่าจะใช้แบบนั้น ต่อมาจึงรู้ว่า Instagram มีมาตรฐาน 4x5 และภาพกีฬาที่ถ่ายด้วยเลนส์ดี ๆ ก็ดูดีมากในฟอร์แมตนั้น
แต่ยังลังเลว่าจะทำให้เอกสารมีหน้าตาอย่างไร ระหว่างเปลี่ยนจากรูปแบบปัจจุบันให้น้อยที่สุด, ทำ เอฟเฟกต์ดอตเมทริกซ์ปลอม ให้ดูเหมือนพรินเตอร์เก่าที่น่าจะฝังอยู่ในกล้องแฟนตาซีนั้น, หรือใช้ข้อดีของเครื่องพิมพ์อิงก์เจ็ตให้เต็มที่
หาก “เพราะเป็นโปรเจกต์ทดลอง เลยอยากคงค่าใช้จ่ายด้านข้อมูลนี้ให้ถูกมาก ๆ หรือถ้าเป็นไปได้ก็ฟรี” ก็มี NewsCatcher ด้วย ฟรีสำหรับโปรเจกต์เสริมแบบโอเพนซอร์ส
https://docs.google.com/forms/d/e/1FAIpQLSejrsj4a1ZQkIasiKCt...
เกี่ยวข้องกันเล็กน้อย ผมใช้สคริปต์เล็ก ๆ ที่เปิด หน้าแรกของ NYTimes บน MacBook ทุกเช้า
d=$(date +%d)m=$(date +%m)y=$(date +%Y)wget -q [https://static01.nyt.com/images/$y/$m/$d/nytfrontpage/scan.p...](<https://static01.nyt.com/images/$y/$m/$d/nytfrontpage/scan.pdf>) && open ./scan.pdfhttps://nytonline.net/rss
rm todays_nyt.pdf; wget -q "[https://static01.nyt.com/images/$(date](<https://static01.nyt.com/images/$(date>) +%Y/%m/%d)/nytfrontpage/scan.pdf" -O todays_nyt.pdf && open todays_nyt.pdfdmy=$(date +%d/%m/%Y)