เรื่องของ 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)

Conductor
เขียนเมื่อ 03 Sep 2007 @ 12:28

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

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

วิธีใช้:

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

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

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

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

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

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

Conductor
เขียนเมื่อ 03 Sep 2007 @ 13:39

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

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

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

BM.chaiwut
เขียนเมื่อ 04 Sep 2007 @ 01:05
P

Conductor

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

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

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

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

เจริญพร 

Conductor
เขียนเมื่อ 23 Sep 2007 @ 02:10

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

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

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

Conductor
เขียนเมื่อ 31 Dec 2007 @ 22:44

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

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

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

sasinanda
IP: xxx.121.235.2
เขียนเมื่อ 04 Jan 2008 @ 20:58

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

ขอบคุณค่ะ

Conductor
เขียนเมื่อ 15 Jan 2008 @ 02:47

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

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

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

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

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

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

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

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

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

Sasinand
เขียนเมื่อ 15 Jan 2008 @ 08:36

สวัสดีค่ะ

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

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

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

Conductor
เขียนเมื่อ 29 Jan 2008 @ 20:45

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

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