เรื่องของ GotoKnow Monitor (2)

Conductor

GotoKnow Monitor เป็นโปรแกรมที่จัดสร้างขึ้นมาเพื่อแบ่งเบาภาระการทำงานของ GotoKnow

เป้าประสงค์ 

  • พยายามให้ข้อมูลแก่ผู้ใช้ว่าข้อความไหนน่าสนใจ โดยไม่ต้องให้ผู้ใช้ต้องไปอ่านข้อความทั้งหมดเอาเอง กล่าวคือให้เลือกคลิกเฉพาะที่คิดว่าน่าสนใจ จากบันทึกใหม่ ชื่อผู้เขียนข้อความนั้น ชื่อบล๊อก และส่วนหัวของข้อความ (ถ้ายาวพอ)
  • ตัดภาระในการติดตามความเปลี่ยนแปลงเรื่องข้อความ (บันทึกและความคิดเห็น) จาก GotoKnow; เมื่อจะดูว่าอะไรเปลี่ยนแปลงไป จะต้อง refresh หน้าจอ GotoKnow ซึ่งเป็นการเพิ่มภาระแก่ database; GotoKnow Monitor ติดตามความเปลี่ยนแปลงบน GotoKnow ทางด้านข้อความทั้งหมดแทนผู้ใช้ โดยแยกสถานะการเปลี่ยนแปลง ออกมาอยู่ในเครื่องแม่ข่ายภายนอกระบบ GotoKnow เมื่อผู้ใช้เรียกดูความเปลี่ยนแปลง จึงไม่เป็นการเพิ่มภาระแก่ GotoKnow
  • เปลี่ยนแปลงสถานะบนจอภาพให้เอง ผู้ใช้ไม่ต้อง refresh
  • ให้ข้อมูลอื่นๆ ที่สำคัญต่อชีวิตประจำวัน

การออกแบบ และการทำงาน

GotoKnow Monitor แบ่งการทำงานเป็นสามส่วนคือ

  1. โปรแกรมอ่านสถานะล่าสุดจาก GotoKnow อยู่บนเครื่องแม่ข่าย monitor.gotoknow.org
    • อ่านจาก RSS และอ่านจาก database โดยตรง หากไม่มี RSS ให้
    • โปรแกรมส่วนนี้ อ่านข้อมูล แล้วแปลงเป็น HTML segment แบบที่ต้องการให้ปรากฏในเบราเซอร์
    • เมื่อแปลงข้อมูลให้อยู่ในรูปแบบที่ต้องการแล้ว เขียนลงใน memcached เช่นเดียวกับ GotoKnow แต่ใช้ memcache คนละชุดกัน เนื่องจากไม่ต้องการไปเบียดบังทรัพยากรอันมีค่า ซึ่งมีไม่พออยู่แล้ว
    • โปรแกรมเขียนด้วย PHP แต่สามารถเขียนด้วยภาษาอะไรก็ได้ที่สนับสนุน libevent เช่น Perl PHP Python Ruby Java C# C Postgres หรือจะภาษาอื่นๆ
  2. ฝั่งเบราเซอร์ เป็น Ajax (HTML + JavaScript) ใช้ prototype.js เป็นหลักเช่นเดียวกับ GotoKnow พร้อมกับ library อื่นๆ
    • design เป็น multi-tab application ในขณะนี้ แยกเป็น
      • บันทึกล่าสุด -- อ่านตรงจาก database ปรับปรุงข้อมูลทุก 5 นาที
      • ความคิดเห็นล่าสุด (ต่อบันทึก คำถาม และไฟล์) -- อ่านตรงจาก database ปรับปรุงข้อมูลทุก 4 นาที
      • บันทึกสุ่มแสดง -- อ่านผ่าน RSS บันทึกสุ่มแสดง มีประโยชน์ในการช่วยให้รู้จักบล๊อกเกอร์ใหม่ๆ ที่อยู่นอกวงของคนคุ้นเคย ปรับปรุงข้อมูลทุก 5 นาที
      • ค้นหา -- ใช้ Google search API ซึ่งทำการค้นหาหกชนิดพร้อมกันคือ
        • ค้นบน GotoKnow.org
        • ค้นเว็บอื่นๆ ทั่วโลก
        • ค้นในบล๊อกทั่วโลก
        • ค้นในคำบรรยายรูปทั่วโลก
        • ค้นข่าวจากแหล่งข่าวทั่วโลก
        • ค้นในหนังสือ/สิ่งตีพิมพ์ซึ่ง Google ได้สแกนไว้แล้ว
      • ลิงก์สำคัญ -- เป็นลิงก์ไปยังคู่มือ การใช้งาน ตลอดจนข้อความสำคัญต่างๆ เพื่อที่การใช้งาน GotoKnow จะเป็นไปด้วยประสิทธิภาพสูงสุด
        • เปิดศูนย์รวมข้อมูลของสมาชิก
        • ติดตามข้อความล่าสุดของสมาชิก
        • ติดตามความเปลี่ยนแปลงในแพลนเน็ตของสมาชิก
      • เครื่องมือ -- เป็นโปรแกรมบริการที่มีประโยชน์ในเวลาที่ต้องการ แต่มีขนาดใหญ่และไม่ได้ใช้บ่อย เพื่อให้ GotoKnow Monitor ทำงานได้รวดเร็วที่สุดเท่าที่จะเป็นไปได้ จึงแยกเครื่องมือเหล่านี้ออกไป
        • {สนทนากลุ่ม} ยังเป็นเรื่องที่ทดลองอยู่-อาจเปลี่ยนแปลงในอนาคต -- ตั้งใจจะให้เป็นแหล่งที่สมาชิกและผู้ใช้ ได้แลกเปลี่ยนความคิดเห็นกันอย่างทันใจ เพื่อที่ข้อความเฉพาะกาล เช่นการนัดกัน การปรึกษาหารือเรื่องเหตุการณ์เฉพาะหน้า จะได้ไม่ต้องเขียนเป็นบันทึกหรือความคิดเห็น ซึ่งจะไปกินกำลัง GotoKnow -- ในรุ่นปัจจุบัน สามารถสร้างห้องสนทนาได้เอง ให้เป็นห้องสาธารณะก็ได้ เป็นห้องส่วนตัวที่ต้องใช้รหัสผ่านเข้าก็ได้ มีบันทึกการสนทนาให้ดาวน์โหลดด้วย
        • {เหตุการณ์สำคัญ/ปฏิทิน GotoKnow} แสดงเหตุการณ์ต่างๆ ที่เกิดขึ้นบน GotoKnow นับตั้งแต่เริ่มเปิดบริการ -- เครื่องมือนี้เป็นต้นแบบสำหรับการทำปฏิทินกิจกรรมสำหรับสมาชิก
        • {ลมฟ้าอากาศ} แสดงสถานะของสภาพลมฟ้าอากาศ น้ำ พายุ คลื่นลม เหตุการณ์ปัจจุบัน การเตือนภัยพิบัติ ฯลฯ
    • source code สามารถเรียกดูได้ผ่าน View source ในเบราเซอร์ครับ skeleton เขียนทื่อๆ ไม่มีอะไร
  3. โปรแกรมอ่านข้อมูล -- อยู่บนฝั่งเครื่องแม่ข่าย ทำงานเมื่อเบราเซอร์ ขอข้อมูลใหม่มาทุกช่วงเวลาที่ตั้งไว้
    • โปรแกรมเขียนด้วย PHP; เลือก PHP เพราะ memcache library เขียนด้วย C ซึ่งเร็วมาก
    • อ่านข้อมูลจาก memcached แล้วส่งข้อมูลออกไปทั้งดุ้น โดยไม่แก้ไขอะไรเลย
    • หาผู้ใช้ refresh เบราเซอร์ โปรแกรมส่วนนี้ ก็จะอ่านข้อมูลจาก ทำmcached ส่งไปใหม่ และจะให้ข้อมูลล่าสุดจาก memcached เสมอ
    • การอ่านข้อมูลจาก memcached ไม่ว่าจะอ่านกี่ครั้ง ก็จะไม่ไปดึงข้อมูลใหม่จาก GotoKnow เพราะการอ่านข้อมูลจาก GotoKnow เป็นโปรแกรมส่วนที่ 1 ข้างบน เป็นคนละส่วนกับการส่งข้อมูลให้เบราเซอร์ในส่วนนี้

ดังนั้น การใช้ GotoKnow Monitor จึงไม่เพิ่มภาระให้ GotoKnow และในขณะเดียวกัน ข้อมูลเพียงชุดเดียว ถูกส่งให้ผู้ใช้ทุกคนได้รับเหมือนกัน

ในขณะนี้ ได้กลายพันธ์มาเป็น Learners Monitor แล้ว ซึ่งทำงานด้วยหลักการเดียวกัน

บันทึกนี้เขียนที่ GotoKnow โดย  ใน ตามใจฉัน

คำสำคัญ (Tags)#gotoknow.org

หมายเลขบันทึก: 122120, เขียน: 26 Aug 2007 @ 02:27 (), แก้ไข: 11 Feb 2012 @ 20:03 (), สัญญาอนุญาต: สงวนสิทธิ์ทุกประการ, ความเห็น: 11, อ่าน: คลิก


ความเห็น (11)

เมื่อคืน ผมเติมคุณลักษณะติดตามข้อความล่าสุดเข้าไปใน GotoKnow Monitor ครับ คุณลักษณะนี้ เป็นการติดตามข้อความที่บล๊อกเกอร์แต่ละท่านเขียนในช่วง 96 ชั่วโมงหรือ 4 วันที่ผ่านมา

ใช้ 96 ชั่วโมงเผื่อเสาร์อาทิตย์สองวัน และเผื่อวันจันทร์งานยุ่ง ให้อ่านในวันอังคาร ถ้าเกิน 96 ชั่วโมง คงไม่ใช่แฟนประจำแล้วหรอกครับ

วิธีใช้:

  1. เปิด GotoKnow Monitor
  2. คลิกแท็ป ลิงก์สำคัญ
  3. จะ เห็นช่องให้กรอกชื่อบัญชีผู้ใช้ (username) ซึ่งไม่ใช่ชื่อที่ปรากฏในบันทึกและความคิดเห็น แต่เป็นชื่อที่ใช้ในการเข้าระบบ หรือชื่อที่เห็นเป็นพยางค์สุดท้ายใน address bar เวลาเปิดดูประวัติ เช่นของ อาจารย์เม้ง ก็เป็น mrschuai แทนที่จะเป็น เม้ง สมพร ช่วยอารีย์
  4. จากนั้นมีปุ่มให้เลือกคลิกสองอัน
    • ถ้าคลิกเปิดศูนย์รวมข้อมูล GotoKnow Monitor ก็จะเปิดศูนย์รวมข้อมูลของสมาชิกที่ระบุบัญชีผู้ใช้ไว้
    • ถ้าคลิกติดตามข้อความล่าสุด GotoKnow Monitor ก็จะแสดง บันทึก ความคิดเห็นที่ให้ไว้ในบันทึก ความคิดเห็นที่ให้สำหรับคำถาม และความคิดเห็นที่ให้ไว้สำหรับไฟล์อัลบั้ม
  5. การแสดงผล แสดงตามลำดับที่เกิดขึ้นความขึ้น (เรียงตามเวลาจากก่อนไปหลัง) เพื่อให้เห็นกิจกรรมที่เกี่ยวกับการ ลปรร. แม้จะไม่เขียนบันทึก
  6. โปรแกรมนี้ ไม่อัพเดตจอให้ใหม่ ถ้าอยากได้ข้อมูลล่าสุด ให้ refresh เอาเองครับ

เมื่อครู่ไปลองเล่นมาดูแล้วค่ะ พบว่าดีมากค่ะ ถ้าอยากติดตามว่าใครไปไหนมาไหน ทิ้งรอยไว้ที่บันทึกใดบ้าง แต่คงต้องไปค้นมาก่อนว่า login คนโปรดของเราคืออะไร ซึ่งก็ไม่ยากเย็นนัก.. 

สรุปแล้ว เจ๋งดีค่ะ ^ ^  ขอบคุณอีกครั้งค่ะ 

สวัสดีครับพี่

  ดีมากเลยครับ เข้าถึงได้ดี รวดเร็วทันใจ ตามหารายการทางเดินที่ไปแสดงความเห็นไว้ แล้วคลิกเข้าไปตอนที่จะย้อนกลับในช่วงสี่วันย้อนหลังได้ดีครับ

  ขอบคุณมากครับ
 

ดีใจที่เป็นประโยชน์ครับ

ยังเป็นกังวลเรื่อง error handling เช่นใส่ชื่อ username ไม่ถูกต้อง หรือ GotoKnow มีปัญหาเรื่องโหลด เพราะพอเขียนมาถึงตอนนี้ สมองไม่แจ่มใส (ง่วง) แล้วครับ

ทุกอย่างใน GotoKnow Monitor บริจาคให้ GotoKnow/KnowledgeVolution ครับ 

P

Conductor

อ่านมาถึงข้อความที่ว่า...

ทุกอย่างใน GotoKnow Monitor บริจาคให้ GotoKnow/KnowledgeVolution ครับ 

กตกมฺมํ สาธุ โหตุ กรรมอันท่านกระทำแล้ว จงเป็นกรรมยังประโยชน์ให้สำเร็จ

ขออนุโมทนา สาธุ

เจริญพร 

คืนนี้ GotoKnow Monitor เพิ่ม tab ใหม่เรื่อง {ลมฟ้าอากาศ} ครับ

คิดว่าสิ่งนี้ น่าจะมีประโยชน์ในวงกว้างเพราะวิถีชีวิตคนไทย ผูกพันกับลมฟ้าอากาศอยู่มากทีเดียว

หากท่านใดมีหรือต้องการให้เพิ่มข้อมูลใด แจ้งได้ที่นี่ครับ ผมไม่อยากได้ข้อมูลละเอียดที่สุด แต่อยากเห็นข้อมูลที่มีความหมายต่อผู้ใช้ (พร้อมลิงก์ที่ให้เจาะลงไปในข้อมูลละเอียด หากว่าสนใจจะศึกษา) -- การเลือกใช้ข้อมูลใด ขึ้นกับความหมายของข้อมูลนั้น บวกกับว่าสามารถเขียนโปรแกรมไปเชื่อมโยงได้หรือไม่

เมื่อคืนนี้ เพิ่มเครื่องมือใหม่ ซึ่งคิดว่าจะทำเป็นปฏิทินกิจกรรมสำหรับสมาชิก

ปฏิทินนี้ เลื่อนซ้ายขวาได้ เมื่อเลื่อนแถบหนึ่ง อีกแถบหนึ่งจะเลื่อนตามไปด้วย + สามารถคลิกดูรายละเอียดได้

อาจมีการปรับปรุงอีกในอนาคต (เช่นใช้สามแถบ แทนสองแถบ, ให้สมาชิกใส่รายการได้เองไม่ต้องขอให้ทีมงานช่วย) เมื่อใช้ได้แล้ว จะส่งโปรแกรมไปรวมใน KV

sasinanda
IP: xxx.121.235.2
เขียนเมื่อ 

ได้ไปลองเล่นแล้วค่ะ ใช่ได้ดีค่ะ

ขอบคุณค่ะ

คืนนี้ได้เพิ่มการเปิดแพลนเน็ตของสมาชิก ขึ้นมาอีกในแท็บที่ 5 (ลิงก์สำคัญ) ครับ อันนี้เป็นไปตามความเห็นของอาจารย์กมลวัลย์

วิธีใช้ก็ทำตามความเห็นอันแรกของบันทึกนี้ คือใส่ชื่อบัญชีผู้ใช้ (username) ลงไปในช่องที่ให้ใส่ จากนั้นคลิกที่ปุ่ม "เปิดแพลนเน็ต" Monitor ก็จะแสดงแพลนเน็ตทั้งหมดของสมาชิกท่านที่ระบุนั้น

ในหน้าแสดงรายการ จะแสดงแพลนเน็ตละบรรทัด ประกอบด้วยสองส่วนคือ [ติดตามการเปลี่ยนแปลง] แล้วตามด้วยชื่อแพลนเน็ตที่สมาชิกที่เราใส่ชื่อข้างบนเป็นเจ้าของ (เป็นผู้จัดการแพลนเน็ต)

ถ้าคลิก [ติดตามการเปลี่ยนแปลง] Monitor จะแสดงความเปลี่ยนแปลงเกี่ยวกับข้อความทั้งหมดในแพลนเน็ตนั้น ซึ่งรวมทั้งบันทึกใหม่และความคิดเห็นทั้งหมด จากทุกบล๊อก/ทุกบันทึกภายใต้แพลนเน็ตนั้น ที่เกิดขึ้นใน 24 ชั่วโมงที่ผ่านมา

ถ้าคลิกที่ชื่อแพลนเน็ต ก็จะเห็นแพลนเน็ตนั้น

การจัดรูปร่างยังไม่ค่อยเรียบร้อยครับ แต่ลองเล่นแล้วสนุกดี ได้ประโยชน์ทันที ก็เลยตัดสินใจเอามาบอกเลย -- ถ้าเข้ามาทุกวัน เรียกตรงนี้ก็จะเห็นหมดว่าในแพลนเน็ตมีการเปลี่ยนแปลงอะไรบ้าง สามารถ bookmark ไว้ได้

เมื่อกี้นี้มีผู้ที่ผมนับถือบอกมาว่า ลิงก์สีน้ำเงินกับลิงก์สีม่วงนั้น มีสมาชิกบางท่านรู้สึกว่าผมพยายามจะแอบดูว่าใครทำอะไร

เรื่องนี้เคยอธิบายไปแล้วครับ ว่าลิงก์สองสี เกิดจากความที่ไม่ต้องการให้ไปอ่านลิงก์ที่เคยอ่านแล้ว ลิงก์ที่ยังไม่เคยอ่านเป็นสีน้ำเงิน ส่วนลิงก์ที่เคยอ่านแล้วเป็นสีม่วง (เป็นพฤติกรรมปกติของเบราเซอร์ และใช้เป็นพฤติกรรมมาตรฐานของ Monitor ด้วย)แม้กระนั้น ถ้าอยากจะอ่านซ้ำ ก็คลิกได้ครับ ตำรวจไม่จับ

เบราเซอร์เป็นตัวกำหนดว่าลิงก์นั้นจะเป็นสีอะไร ถ้าอยากให้ทุกลิงก์เป็นสีน้ำเงินหมด ให้ลบ history ในเบราเซอร์ แต่ถ้าอยากให้เป็นสีม่วงทั้งหมด ให้ไล่คลิกทุกลิงก์ครับ

สวัสดีค่ะ

การใช้งานปกติ มักใช้จากGotoKnow Monitorค่ะ ที่นี่ มีของเล่นเยอะดีค่ะ มี 5 แท็บ

 ของเล่นใหม่นี้ ไปลองดูแล้วค่ะ สนุกดี ไม่เสียเวลา ต้องไปไล่หาอะไรมากด้วยค่ะ

ที่G2Kนี่ มีอะไรใหม่ๆ มาให้เรื่อยเลยนะคะ ...ดีค่ะดี

เมื่อคืนที่ผ่านมา ได้แยกการค้นหาออกเป็นอีกโปรแกรมหนึ่ง ซึ่งจะช่วยให้โหลด GotoKnow Monitor ได้เร็วขึ้น (โดยเฉพาะอย่างยิ่งหากเชื่อมต่อผ่านวงจรความเร็วต่ำ หรือผ่านผู้ให้บริการที่ไม่มีความเร็ววงจรระหว่างประเทศอย่างเพียงพอ)

นอกจากนั้นก็ยังมีการเปลี่ยนแปลงในแง่ที่ไม่ว่าจะเรียกใช้ฟังก์ชั่น ติดตามข้อความ หรือ ติดตามความเปลี่ยนแปลงในแพลนเน็ต ก็จะมีจุดเชื่อมโยงกลับไปยังประวัติ ศูนย์รวมข้อมูล และการติดตามความเปลี่ยนแปลงในแพลนเน็ต/ข้อความ ของบล๊อกเกอร์ท่านนั้นด้วยครับ