1 คะแนน โดย GN⁺ 2023-07-09 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • รวบรวมบล็อกส่วนตัวจากเธรด Hacker News Ask HN: Could you share your personal blog here? และนำเสนอในรูปแบบ OPML ที่นำเข้าไปยังโปรแกรมอ่าน RSS ที่ใช้อยู่ได้ง่าย
  • วิธีใช้งานคือดาวน์โหลด list.opml แล้วนำเข้าไปยังโปรแกรมอ่าน RSS ส่วนบล็อกที่ถูกเพิ่มเข้ามาหลังจากส่งโพสต์บน HN แล้ว จะมีให้แยกต่างหากใน listx.opml
  • ตอนสร้างรายการจะตัดผู้ใช้ที่มี karma ไม่เกิน 1 ออก โดยใช้เป็นเกณฑ์เพื่อพยายามมองข้ามบัญชีสแปมหรือบัญชีที่สร้างมาใช้ครั้งเดียว
  • รายการถูกจัดเรียงตาม karma ของผู้ใช้ Hacker News โดยบล็อกช่วงต้นรายการคือบล็อกของผู้ใช้ที่มี karma สูงที่สุด
  • ผู้ใช้สามารถแก้ไขรายการในเอดิเตอร์เพื่อคงไว้เฉพาะ 10 หรือ 100 บล็อกแรก หรือลบบล็อกที่ไม่สนใจออกได้
  • ไม่สามารถดึง URL บล็อกจากทุกคอมเมนต์ได้ และพาร์สเฉพาะ URL ที่ตรวจพบได้อย่างถูกต้อง ดังนั้นรายการจึงไม่สมบูรณ์
  • บางบล็อกอาจไม่มี RSS feed หรืออาจตกหล่นเพราะไม่มี RSS feed อยู่ในแท็ก <link rel="alternate" type="application/rss+xml" href="...">, <link rel="alternate" type="application/atom+xml" href="...">
  • ผลลัพธ์คือรวบรวมได้มากกว่า 1100 บล็อก โดยยังไม่ได้ตรวจสอบคุณภาพเนื้อหาของบล็อก ความปลอดภัยในการเปิดดูระหว่างงาน หรือภาษาที่ใช้
  • การสร้างรายการใหม่รันด้วย go run ./main.go | tee > console.log และใช้เวลาพอสมควร เพราะต้องดึง karma ของผู้ใช้แต่ละคนและ RSS feed ของแต่ละบล็อก
  • วิธีมีส่วนร่วมคือเพิ่มบล็อกด้วยตนเองใน listx.opml โดย list.opml จะถูกเขียนทับ จึงไม่ได้ออกแบบให้เพิ่มโดยตรง
  • ไลเซนส์คือ MIT

1 ความคิดเห็น

 
GN⁺ 2023-07-09
ความคิดเห็นบน Hacker News
  • น่าจะดีถ้าดูเธรดเก่า RSS Renaissance ควบคู่ไปด้วย: https://news.ycombinator.com/item?id=16907298
    หวังว่ารายการนี้จะได้รับการดูแลและอัปเดตต่อไป และอยากได้คำแนะนำ RSS reader ดี ๆ ที่จัดการไฟล์ OPML นี้ได้อย่างถูกต้องด้วย
    ลองใช้ Omea Reader แล้ว แต่นำเข้าฟีดจำนวนมากไม่ได้

    • ถ้าอยากเริ่มแบบเบากว่าการใส่ฟีด 600 รายการลงใน reader โดยตรง ตัวเลือกฟีดของ IndieBlog.page ก็ใช้ได้
      นอกจาก URL 600 รายการจากเธรดล่าสุดแล้ว ยังมีบทความสุ่มรายวันจากเธรดคล้าย ๆ กันเมื่อเดือนเมษายนปีที่แล้วและจาก แหล่งอินดี้ หลายแห่งด้วย: https://indieblog.page/rss
    • ใน Inoreader นำเข้ารายการนี้ได้ง่าย
  • บล็อกของผมอยู่ในเธรดมาพักหนึ่งแล้ว แต่ดูเหมือนจะไม่ถูกใส่ในผลลัพธ์คอนโซลเลย: https://news.ycombinator.com/item?id=36596022
    รู้ว่าคาร์มาของผมไม่พอ แต่ถ้าเป็นอย่างนั้นก็น่าจะมีบันทึกไว้ใน log output อย่างน้อยว่าด้วยเหตุผลนั้น
    สงสัยว่าสำหรับเกณฑ์กันสแปม จะพิจารณา อายุบัญชี แทนคาร์มาได้ไหม ผมแอบอ่านที่นี่มานานพอสมควร และคิดว่าคนแบบผมคงไม่ได้หายากนัก

  • ช่วงหนึ่งผมลองเล่น Node-RED[1] อยู่ และเพราะชอบ Node-RED เลยลองสร้างสิ่งนี้ใหม่ด้วย Node-RED
    flow[2] หรือก็คือโค้ด สามารถดูออนไลน์และแก้ไขได้ แต่ deploy ไม่ได้ ฟีด[3] จะถูกแคชและรีเฟรชประมาณทุกชั่วโมง
    เป็นเซิร์ฟเวอร์ Heroku ตัวเล็ก ๆ เลยรับประกันไม่ได้ว่าอาจล่มอยู่หรือใกล้พัง
    เอาไอเดียมาจาก codebase เดิมเยอะมาก :)

    [1]=https://nodered.org

    [2]=https://demo.openmindmap.org/omm/#flow/a8d90fc15ab6990b

    [3]=https://blog.openmindmap.org/example/hacker-news-personal-bl...

  • No feed: [https://tommasoamici.com](<https://tommasoamici.com>;) by tommasoamici ( 216 ) no feed found for [https://tommasoamici.com](<https://tommasoamici.com>;)
    เห็นอันนี้แล้วถึงรู้ว่าตอนย้ายบล็อกล่าสุดไป Astro ผมลืมใส่ ลิงก์ RSS feed ไว้ในแท็ก head ตอนนี้แก้แล้ว

    • สำหรับคนที่เจอปัญหาคล้ายกัน ผมเขียนเอกสารไว้ใช้เป็นเช็กลิสต์การเผยแพร่ฟีด: https://kevincox.ca/2022/05/06/rss-feed-best-practices/
    • ผมเองก็เพิ่งทำ RSS เอง และเอกสารนี้ช่วยให้รู้ว่าลืมอะไรไป
  • ดูเหมือนว่ามี URL ที่จัดรูปแบบผิด อยู่บ้าง

    • น่าเสียดายที่นี่เป็นปัญหาฝั่ง u/ntietz ดู https://ntietz.com แล้วด้วยเหตุผลบางอย่างเขา encode ค่า href ไว้
  • เห็นว่ามีรายการรูปแบบ [https://url.com//feed.xml](<https://url.com//feed.xml>;) เยอะ น่าจะต้องปรับ ตรรกะการ scrape
    แค่เอา [https://url.com/](<https://url.com/>;) มาต่อกับ /feed.xml หรือเปล่า?

    • ผมกำลังดึง URL จากลิงก์ alternate ใน HEAD ของเว็บไซต์บล็อก
      ปัญหาคือบางคนเขียนเป็น //example.com/feed.rss บางคนเป็น feed.rss หรือ /feed.rss
      เลยทำตรรกะแปล URL ที่ค่อนข้างโง่ขึ้นมา ทั้งที่จริง ๆ ควรใช้ ResolveReference ของ Go runtime รายการรอบสุดท้ายจะแก้ปัญหานี้แล้ว
    • วิธีนั้นก็ไม่ดีเหมือนกัน https://andinfinity.eu/ มี header ดังกล่าว และชี้ชัดว่า RSS feed อยู่ใน index.html
      น่าจะเป็นพฤติกรรมมาตรฐานของ Hugo
  • พลาดเธรดต้นทางไป แต่ก็อยากให้รวมบล็อกของผมด้วย
    RSS Feed (en): https://backendhance.com/en/blog/index.xml
    RSS Feed (de): https://backendhance.com/blog/index.xml

  • ผมติดตั้ง แอป RSS reader 5 ตัว บน Linux Mint เพื่อทดสอบ OPML แล้ว 4 ตัว ได้แก่ Thunderbird, Liferea, Quitrss และอีกตัวที่จำชื่อไม่ได้ นำเข้าไฟล์ไม่สำเร็จ
    Gnome RSS นำเข้าได้ แต่ช้าและมีบั๊กเยอะขึ้น
    ดูเหมือนไฟล์จะยาวเกินกว่าที่แอป RSS ทั่วไปจะจัดการได้ และบางแอปแจ้งข้อผิดพลาด “incorrect format” เลยอาจมีปัญหาเรื่องฟอร์แมตอยู่บ้าง Thunderbird ก็เป็นหนึ่งในนั้น
    ตอนนี้กำลังลอง CPod อยู่และให้เวลามันสักหน่อย หวังว่าประมาณ 20 นาทีแล้วจะทำงานได้
    สงสัยว่า RSS reader แบบเว็บจะจัดการไฟล์นี้ได้ดีกว่าหรือเปล่า

    • ลองนำเข้าที่ feedbin.com แล้ว จากทั้งหมด 598 รายการ มี 524 รายการ เข้าไปสำเร็จ
      รายการที่ล้มเหลวมีทั้งหาไม่เจอ ข้อผิดพลาดการเชื่อมต่อ และข้อผิดพลาด URL ไม่ถูกต้องบางรายการ
    • ใน sfeed ไม่มีปัญหา ดาวน์โหลดได้จาก https://codemadness.org
    • ผมรัน freshrss อยู่ และสามารถนำเข้าไปที่นั่นได้
      สงสัยเหมือนกันว่าตอนนำเข้ามี error ขึ้นไหม
      XML นี้อาจไม่ valid ก็ได้ เดี๋ยวอีกไม่กี่นาทีจะสร้างใหม่
  • ขอคาร์มาอีกแค่ 20 ก็พอ แต่ไม่ค่อยรู้ว่าจะเก็บคาร์มาใน Hacker News ยังไง
    บางทีอาจต้อง fork แล้วให้ผู้ใช้กำหนด คาร์มาขั้นต่ำ ที่ต้องใช้สำหรับบันทึกบล็อกเองได้

    • ผมจะสร้างรายการใหม่โดยใช้เกณฑ์ คาร์มา 2 ขึ้นไป
      น่าจะปล่อยให้ผู้ใช้ตัดสินเองว่าชอบหรือไม่ชอบ 100 เป็นตัวเลขที่ตั้งแบบสุ่ม ๆ โดยไม่รู้ว่าอะไรดีหรือไม่ดี
  • มีวิธีง่าย ๆ ในการสร้าง ฟีดของฟีด ที่รวมฟีดเหล่านี้ไหม? หมายถึงดูทั้งหมดเป็น RSS feed เดียว

    • เพิ่งทำอะไรคล้าย ๆ กัน แต่ขนาดฟีดเกือบ 100MB เลยต้องแบ่งตามปี: https://news.ycombinator.com/item?id=36643086
    • เป็นไอเดียที่ดี แต่ถ้าจะอัปเดต RSS feed จริง ๆ ก็ต้องรันเซิร์ฟเวอร์หรือ GitHub Actions ไว้ อาจลองทำภายหลัง