เนื่องจากมานั่ง Vibe โปรเจคใหม่ เพราะก่อนหน้านี้เปลี่ยนมาใช้ Journiv ในการบันทึกไดอารี่ประจำวันแทน Onenote ตั้งแต่ปี 2026 เป็นต้นมา แต่ว่าเจอปัญหาตอนอัพเดท เลยมานั่ง Vibe เองดีกว่า อยากได้อะไรก็ Vibe เอา
ก็นั่ง Vibe จนใช้งานได้เป็นที่น่าพอใจ แต่ก็อยากให้เปิดดูบันทึกที่เคยบันทึกไว้ได้ในที่เดียวด้วย ไม่ต้องไปเปิดดูใน Onenote อีก ภารกิจย้ายข้อมูลออกมาจาก Onenote ไปยังแอปที่ Vibe ขึ้นมาใหม่ (Odyssi) ก็เลยเริ่มขึ้น
ปัญหาเกิดขึ้นหลายอย่าง ก็นั่งแก้ไปทีละอย่าง เช่น
- เนื่องจากข้อมูลเดิมจาก Onenote ส่วนใหญ่เป็นลายมือ ไม่สามารถ Export ออกมาเป็นข้อมูลที่เป็นข้อมูลดิบของลายเส้นได้ตรงๆ (เช่นโค้ด SVG Tag) เลยต้อง Export ออกมาเป็น .docx ด้วยการเขียน PowerShell script ทีละเล่ม (ปกติใน Onenote เริ่มปีใหม่ก็จะเริ่มเล่มใหม่) หลังจากนั้นก็เขียน Node.js แปลง .docx แปลงลายมือมาเป็นไฟล์ .PNG แล้วค่อยส่งไปเข้าใน Odyssi
- ใน Onenote ตัวไฟล์ Notebook ที่เปิดมา ภาพจะยังไม่ได้โหลดครบ ต้องมาไล่เปิดทีละอันให้มันโหลดภาพ ถึงจะ Export ออกไปเป็นไฟล์ได้ ไม่งั้นตอน Export ภาพจะไม่ขึ้น
- ฝั่ง Odyssi เองก็ต้องเขียน API ชั่วคราว รับข้อมูลจาก Onenote แล้วเซฟลง Database ข้อมูลที่เก็บก็ยัดลง Database โดยตรงเลยเป็น Base64
- บางอันที่ Export เป็น .docx จะอ่านไม่ได้หมด พวก Note ที่มีการเขียนทับภาพจะออกมาเละมาก และ Onenote ปีเก่าๆ ต่ำกว่า 2020 ลงมา เวลา Export เป็น .docx มัน OCR ให้อัตโนมัติอีก แล้วปิดไม่ได้ เลยต้อง Export มาเป็น pdf แทน ก็เขียน PowerShell อีกชุด สำหรับ Export เป็น .pdf แทน ตัว Node.js ที่ส่ง POST Request ไปที่ API ชั่วคราว ก็ต้องเขียนแยกอีกชุด ไฟล์ pdf ที่ส่งไปก็เก็บใน database เป็น Base64 เหมือนเดิม
- เนื่องจากโครงสร้างใน Odyssi ไม่ได้สร้างให้มี Section เหมือน Onenote เนื่องจากใน Onenote ผมจะแยกเป็น Section ละ 1 เดือน เวลาขึ้นเดือนใหม่ก็แยก Section ใหม่ ก็เลยโชคดีหน่อย ตอน Export ให้แยกเป็นโฟลเดอร์ละ 1 Section แล้วตอนยัดข้อมูลเข้า Odyssi ก็ตั้งชื่อ Entry ตามชื่อโฟลเดอร์ ตามด้วยรายละเอียด (เช่น ใน Onenote Section January 2025 มี Note ชื่อ DiaryDay1 xxxx เวลาส่งไป Odyssi จะส่งไปเป็น Entry ชื่อ JAN D1 xxxx)
- หลังจากย้ายข้อมูลทั้งหมดออกมาจาก Onenote ไปยัง Odyssi ได้แล้ว ไล่เปิดดูก็อ่านได้เกือบหมด มีปัญหาบ้างในส่วนที่ไฟล์ใหญ่ๆ พวกไฟล์ pdf ที่ Export ออกมาแล้วขนาดใหญ่กว่า 2mb จะเปิดอ่านไม่ได้ ก็แก้ปัญหาไป ด้วยการแปลงไปเป็น iframe แล้วอ่านจาก base64/pdf นั่นแหละ แต่เปิดได้
- พบว่าหลังจากย้ายข้อมูลแล้ว ฟังก์ชัน Search ทำงานแปลกๆ เหมือนไปค้นหาใน base64 ด้วย ทำให้ผลการค้นหาไม่ตรง ทีนี้งานเข้า ต้องมาเขียน function ย้ายจาก Base64 ไปเซฟเป็นไฟล์ จะได้แยกกันในส่วนของข้อมูลที่ค้นหาได้ กับข้อมูลที่เป็นไฟล์ เพื่อให้ผลการค้นหาทำได้เร็วและถูกต้อง นั่งรัน script อยู่นานเลย
สุดท้ายก็ย้ายข้อมูลทั้งหมดจาก Onenote ออกมาได้ มีปัญหานิดหน่อยตอนเปิด Notebook ที่สร้างจาก Onenote version เก่าเช่น Onenote 2010 ถึงขนาดต้องไปโหลด Onenote 2010 เพื่อเปิด Notebook ที่มีปัญหาเพื่อ Export ข้อมูลออกมา จะว่าไปก็โชคดีหน่อยที่ย้ายตั้งแต่ตอนนี้ เพราะถ้าปล่อยไปอีกหลายปี อาจจะเปิดไม่ได้แล้วก็ได้ ย้ายเสร็จก็ลบ API ชั่วคราวออกจากโครงการ แล้วก็สามารถมาเปิดดูข้อมูลย้อนหลังได้ละ ถึงแม้ว่าพวกที่เป็นลายมือจะค้นหาไม่ได้ แต่ว่าพวกที่เป็นลายมือก็ค้นหาใน Onenote ไม่ตรงอยู่แล้ว
ตอนแรกคิดว่าจะทำ OCR ด้วยเพื่อให้ค้นหาได้ แต่ลองทำแล้วไม่ Work ไม่มีเครื่องมือไหนที่ OCR ลายมือภาษาไทยแล้วออกมาตรงพอจะใช้งานได้สักตัวเลย เลยต้องพับโครงการไป
ทั้งหมดนี้คงไม่เกิดขึ้น ถ้า AI ไม่ได้เขียนโค้ดเก่งขนาดนี้ ตอนนี้ที่ทำได้เพราะสามารถ Vibe ทั้งโปรเจคขึ้นมาได้โดยไม่ต้องเขียนเอง ถ้าหากมานั่งเขียนเอง ตอนนี้ก็คงจะบันทึกใน Onenote อยู่นั่นแหละ ถถถถ
