2 คะแนน โดย GN⁺ 2023-11-30 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Freetar เป็นฟรอนต์เอนด์ทางเลือกแบบโอเพนซอร์สสำหรับ Ultimate Guitar โดยทำหน้าที่กับแท็บและคอร์ดของ Ultimate Guitar ในแบบเดียวกับที่ Invidious ทำกับ YouTube
  • มาพร้อม ดีไซน์เรียบง่าย ไม่มีโฆษณา ป๊อปอัป AI หรือบล็อกเชน และเน้นความสามารถในการค้นหาและดูแท็บ
  • คอร์ดที่บันทึกเป็นรายการโปรดจะถูกเก็บไว้ใน session storage โดยไม่ต้องมีบัญชี ไม่ถูกส่งไปยังเซิร์ฟเวอร์ และมีโหมดมืด การเลื่อนอัตโนมัติ มุมมองคอร์ดสำหรับพิมพ์ และฟังก์ชันป้องกันหน้าจอดับด้วย WakeLock API
  • หลังติดตั้ง หากรันไฟล์ปฏิบัติการ freetar โดยไม่ใส่พารามิเตอร์ ระบบจะทำงานที่ 0.0.0.0:22000 และสามารถปรับพฤติกรรมการทำงานได้ด้วยตัวแปรแวดล้อม FREETAR_HOST, FREETAR_PORT, FREETAR_CACHE_TIMEOUT
  • งานในอนาคตประกอบด้วยการปรับปรุง UX บนมือถือ การแพ็กเป็น PWA การเก็บรายการโปรดแบบเข้ารหัสฝั่งเซิร์ฟเวอร์ และการแสดง QR code สำหรับแชร์แท็บ โดยแนะนำให้เสนอ issue ก่อนเพิ่มฟีเจอร์

Freetar ทำอะไร

ฟีเจอร์ที่มี

  • มี ดีไซน์เรียบง่าย ไม่มีโฆษณา ป๊อปอัป AI หรือบล็อกเชน
  • ค้นหาและดูแท็บได้
  • บันทึกคอร์ดที่ชอบเป็น favs ได้
    • ข้อมูลทั้งหมดถูกเก็บใน session storage
    • ไม่ถูกส่งไปยังเซิร์ฟเวอร์
    • ไม่ต้องมีบัญชี
  • รองรับ โหมดมืด
  • รองรับการเลื่อนอัตโนมัติ
  • มีประโยชน์สำหรับการพิมพ์คอร์ด
  • สามารถแสดงคอร์ดได้
  • ใช้ WakeLock API เพื่อป้องกันหน้าจอดับ

การติดตั้งและการรัน

  • เมื่อติดตั้งสำเร็จ จะมีไฟล์ปฏิบัติการ freetar อยู่ใน PATH
  • หากรันโดยไม่ใส่พารามิเตอร์ จะเริ่มฟังที่ 0.0.0.0:22000
  • สามารถเปลี่ยนโฮสต์และพอร์ตได้ด้วยตัวแปรแวดล้อม
    • FREETAR_HOST
    • FREETAR_PORT
    • FREETAR_CACHE_TIMEOUT: กำหนดเวลาที่จะแคชแท็บไว้ในหน่วยความจำ เพื่อลดการร้องขอไปยัง Ultimate Guitar
      • ค่าเริ่มต้นคือ 0
      • ค่าเริ่มต้นทำงานแบบแคชไม่จำกัดเวลา

วิธีเผยแพร่

  • ติดตั้งได้เป็นแพ็กเกจ PyPI
  • รันได้ด้วยอิมเมจ Docker
    • Image: https://hub.docker.com/r/kmille2/freetar
    • พอร์ตเริ่มต้นคือ 22000
    • ตัวอย่างการรันคือ sudo docker run -p 127.0.0.1:22000:22000 kmille2/freetar
  • ใช้ Docker Compose ได้เช่นกัน
    • sudo docker compose up -d
    • สามารถเปลี่ยน bind port ได้ด้วยตัวแปรแวดล้อม FREETAR_PORT
  • แทนที่จะดึงอิมเมจจาก Docker Hub ก็สามารถ build จากโลคัลรีโพสิทอรีแล้วรันได้
    • docker compose build
    • docker compose up -d

สภาพแวดล้อมการพัฒนาและงานในอนาคต

  • สภาพแวดล้อมการพัฒนาต้องใช้ uv
  • ตัวอย่างการรันสำหรับพัฒนาคือ FREETAR_CACHE_TIMEOUT=1 uv run freetar/backend.py หรือ FREETAR_CACHE_TIMEOUT=1 uv run freetar
  • ไฟล์สแตติกอยู่ที่ freetar/static/* และ HTML template อยู่ที่ freetar/templates/*
  • งานในอนาคตมีดังนี้
    • ปรับปรุง UX บนอุปกรณ์มือถือ
    • การแพ็ก Progressive Web App ที่ระบุไว้ว่า PGA
    • การเก็บ favs ด้วยวิธีเข้ารหัสฝั่งเซิร์ฟเวอร์
    • การแสดง QR code เพื่อแชร์แท็บได้รวดเร็ว
  • มีบางรายการที่ทำเสร็จแล้ว
    • การแชร์คอร์ดด้วย QR code เสร็จสิ้นผ่านฟีเจอร์ export/import ใน #12
    • ส่วนขยายเบราว์เซอร์แบบ Invidious Redirection เสร็จสิ้นใน LibRedirect browser extension issue
  • สามารถมีส่วนร่วมได้ แต่แนะนำให้สร้าง issue เพื่อเสนอฟีเจอร์ก่อน
    • ไม่ต้องการให้ UI หรือฟีเจอร์ บวมเกินไป

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

 
GN⁺ 2023-11-30
ความคิดเห็นบน Hacker News
  • ค่อนข้างดี และมีเครื่องมือที่เกี่ยวข้องอยู่เยอะแล้ว ผมคิดว่าในอนาคตการเข้าถึงแท็บจะถูกล็อกแน่นขึ้น เลยทำ เครื่องมือสำหรับดึงแท็บมาเก็บไว้ เองด้วย
    เป็นสมาชิก UG Pro ตลอดชีพ แต่พวกเขายังคงล้ำเส้นเพื่อหารายได้เพิ่มอยู่เรื่อย ๆ น่าเสียดายที่สายนี้แทบไม่มีทางไปสู่โอเพนซอร์ส เพราะแท็บมักมีผู้จัดพิมพ์ หรืออย่างน้อยศิลปินเป็นผู้ถือไลเซนส์ กรณี Oliver Tree แปลกมาก เพลงของเขามีแค่ระดับคอร์ด 4 คอร์ดต่อเพลง แต่ช่วงหนึ่งกลับทำให้แท็บส่วนใหญ่ถูกถอดลง เมื่อคิดว่าใคร ๆ ก็ฟังเพลงแล้วจดแท็บออกมาได้ สภาพปัจจุบันของวงการนี้จึงค่อนข้างน่าหงุดหงิด

    • กว่าสักโปรเจกต์โอเพนซอร์สจะชนเพดานข้อนี้คงใช้เวลานานพอสมควร โดยเฉพาะถ้าแท็บถูกกระจายแบบ Soulseek
      สงสัยว่ามีใครเคยลองอ้าง fair use เพื่อการศึกษาบ้างไหม แท็บดูใกล้เคียงกับคำแนะนำว่าเล่นเพลงหนึ่งให้ดีที่สุดอย่างไร มากกว่าจะเป็นงานสร้างสรรค์จริง ๆ และเนื่องจากไม่มีข้อมูลจังหวะ ปกติจึงแทบเป็นไปไม่ได้ที่จะกู้คืนเพลงจริงจากแท็บเพียงอย่างเดียว ส่วนคอร์ดยิ่งมีปริมาณข้อมูลน้อยกว่า การถอดคอร์ดกีตาร์อาจไม่เหมือนโน้ตที่เล่นจริงในบันทึกเสียงเลยก็ได้
    • เรื่อง Oliver Tree น่าเสียดายแฮะ ผมชอบคาแรกเตอร์นั้น แต่ไม่รู้ว่าเขาจริงจังกับดนตรีขนาดนั้น นึกว่าตั้งใจทำให้เรียบง่ายจนเกือบเหมือนล้อเลียนเสียอีก
    • นี่มันเศรษฐศาสตร์จุลภาคล้วน ๆ ผลิตภัณฑ์ไม่ได้ถูกปรับให้เหมาะกับผู้ใช้ แต่เป็นเครื่องมือสำหรับรีดเงิน
      ผมคิดว่าพวกเขาจะดันต่อไปเรื่อย ๆ จนถึงระดับที่ผู้ใช้พอทนได้แบบเฉียด ๆ หรือแย่กว่านั้นนิดหน่อย
    • หมายความว่าศิลปินหรือผู้จัดพิมพ์เป็นเจ้าของ แท็บทั้งหมด ที่ถูกทำขึ้นจากเพลงของตัวเองหรือ? อยากรู้ว่ามัน成立ได้อย่างไร
    • ก็มีพื้นที่ที่สำเนาฟรีของคอนเทนต์มีไลเซนส์แพร่กระจายกว้างขวางอยู่เหมือนกัน แน่นอนว่าผมไม่รู้อะไรเกี่ยวกับที่แบบนั้นหรอก แต่มั่นใจว่ามันน่าจะเป็นพลังที่ค่อนข้างมีประโยชน์ในการต้านทุนนิยม
  • ใช้ Ultimate Guitar มาตั้งแต่ต้นยุค 2000 และยังมีแท็บที่ผมทำเองเหลืออยู่ไม่กี่อัน ตอนนี้ลองเข้าไปดูแล้วเป็นโศกนาฏกรรมจริง ๆ เว็บไซต์เละเทะมาก เครื่องมือนี้ผมจะลองใช้แน่นอน

    • ในบรรดาของจากยุคนั้น สิ่งที่ไม่ได้แย่ลงอย่างโจ่งแจ้งก็คือสิ่งที่ยังคงเหมือนเดิม เช่น Craigslist
      เหตุผลที่อินเทอร์เน็ตยุคนั้นสวยงามคือมีหลายมุมที่การทำเงินจากมันไม่ง่าย หรือไม่ได้ถูกไล่ล่าอย่างจริงจัง จึงมีหลายสิ่งที่แค่อยู่ตรงนั้นได้ แต่ตอนนี้ไม่ใช่แล้ว
    • มันเศร้าจริง ๆ ที่ได้เห็นงานที่มอบให้ชุมชนฟรี ๆ ถูกนำไปใช้เพื่อเอาเปรียบคนเหล่านั้น
    • ผมก็เหมือนกัน ได้รู้จักเพื่อนออนไลน์จำนวนมากในฟอรัม และช่วงต้นถึงกลางยุค 2000 ที่นั่นคือฐานออนไลน์ของผม
      ยังจำ IRC channel ที่เคยไปสิงด้วยกันในแง่ดี น่าจะมีแท็บที่ผมอัปไว้บนเว็บสักอันสองอัน ช่วงหลายปีที่ผ่านมา ทุกครั้งที่กลับเข้าไปดูบ้าง สุดท้ายก็ต้องถอยห่างออกมาอีก
    • ขอไว้อาลัยให้ mxtabs แต่ข้อดีคือ UG ทำให้ผมได้เรียนรู้ การแกะเพลงด้วยหู
  • ฮาเลลูยา เมื่อก่อนผมซื้อแอปไว้เลยได้สิทธิ์สมาชิกตลอดชีพต่อมา ทำให้เลี่ยงการตลาดบางส่วนได้ แต่ UI ที่บ้าบอของมันมักทำให้การเล่นกีตาร์ยากขึ้นกว่าเดิม

  • จำ OLGA หรือ On-Line Guitar Archive ได้ ตอนสมัยวัยรุ่นในทศวรรษ 1990 ที่กำลังเรียนกีตาร์ OLGA มีแท็บแบบข้อความที่ผู้ใช้ทำขึ้นมากพอให้ผมเรียนเพลงแทบทุกเพลงที่เคยฟังหรืออยากเล่นได้ฟรี

    • คอนเทนต์หลักของ Ultimate Guitar มาจาก OLGA ดังนั้นการทำให้มันกลายเป็นของชนชั้นสูงแบบนี้จึงยิ่งดูไร้เหตุผลเป็นพิเศษ
  • ยอดเยี่ยมจริง ๆ ผมเรียนกีตาร์มาได้ประมาณ 15 เดือน และเกลียดโฆษณากับป๊อปอัปบนเว็บกีตาร์ส่วนใหญ่เหลือเกิน อันนี้สมบูรณ์แบบ เพราะมี อินเทอร์เฟซเรียบง่าย ที่ทำสิ่งจำเป็นโดยไม่เสียเวลา

    • @kmille ไม่มีฟีเจอร์จัดเรียงตาราง ผมเลยเอาโค้ดจาก Stack Overflow มาทำ pull request
      เพราะไม่ได้ใช้ jQuery อาจไม่ตรงกับแนวทางโค้ดเดิม แต่ถ้าช่วย merge และ deploy ให้ ก็จะดีเพราะจะได้มีฟีเจอร์จัดเรียง ขอบคุณอีกครั้งที่คิดและสร้างสิ่งนี้ขึ้นมา
  • ยอดเยี่ยม เว็บต้นฉบับเปลี่ยนไปเป็นมิตรกับผู้ใช้น้อยลงมากตลอดหลายปี โดยเฉพาะเมื่อคิดว่าคอนเทนต์ส่วนใหญ่ที่เป็นตัวตนของเว็บนั้น ผู้ใช้เป็นคนมีส่วนร่วมสร้าง จึงยิ่งยอมรับได้ยาก

  • มีสองเรื่อง อย่างแรก ยอดเยี่ยมจริง ๆ ผมลองหาแท็บที่เคยเพิ่มไว้บนเว็บ และมันแสดงผลได้ดีมาก ที่สำคัญที่สุดคือแสดงใน รูปแบบที่เหมาะสำหรับการพิมพ์
    อย่างที่สอง ถ้าคุณเล่นกีตาร์คลาสสิกหรือสนใจ ลองดูอัญมณีบนอินเทอร์เน็ตอย่าง https://www.classtab.org/ ด้วยก็น่าดู

  • ผมเคยทำเว็บแอปคล้าย ๆ กันเมื่อหลายปีก่อน คิดว่าสู้กับเครื่องมือนี้ได้ค่อนข้างดี มี syntax highlighting ด้วย :)
    https://tabviewer.app/

    • ดีเลย สงสัยว่าเป็นโอเพนซอร์สไหม ส่วนตัวสิ่งที่ยังขาดมีแค่ ตัวดูคอร์ด
    • เกี่ยวข้อง: https://github.com/tablature-viewer/tablature-viewer.github....
      พูดถึงคอมเมนต์พี่น้องและคำอธิบายว่า “คลิกเพื่อดู repository” ถ้าตอนนี้เราไม่ได้ยอมรับ "license":"ISC" ใน package.json อย่างเป็นทางการว่าเป็นไลเซนส์ที่มีผลทางกฎหมาย repository นี้ก็ไม่มีไลเซนส์
  • ซื้อ Pro แบบ 1 ปี แล้วขอคืนเงินโดยยอมขาดทุนหลังผ่านไป 24 ชั่วโมง เพราะสมัครด้วยรหัสโปรโมชันที่คืนเงินไม่ได้
    แอปมันใช้งานไม่ได้จริง ๆ เพลย์ลิสต์ไม่โหลดเพลงถัดไปจริงตามเวลาที่คาดไว้ การเปิดโน้ตเพลงหนึ่งใช้เวลานานเกินไป และในแต่ละเพลงของเพลย์ลิสต์ยังต้องกดไปที่ “chords” ใหม่ ทำให้โหลดเพิ่มอีก แค่ไม่โหลดสิ่งที่ผมไม่ต้องการเลยก็ประหยัดเวลาได้มหาศาลแล้ว แถมยังซิงก์เพลงเองเพื่อใช้ออฟไลน์ไม่ได้ ต้องกด favorite แล้วปล่อยให้ขึ้นกับตารางซิงก์ของพวกเขา

  • ผมทำ เครื่องมือ command-line สำหรับสิ่งนี้ไว้: https://codeberg.org/ltworf/ultimateultimateguitar