Content is King

*([first published on Facebook and Google+](https://plus.google.com/u/1/108003073552145737788/posts/BounCteizkv))*

ผมไม่เชื่อคำว่า content is king ดูอย่าง Facebook Twitter บริษัทเค้ามี content อะไรของตัวเองบ้างล่ะ?

สิ่งที่ผมเชื่อคือ system is king

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

ถามว่าเว็บที่ Content is King มีมั้ย มีจริง อย่าง Blognone นี่ไง ผมก็อ่าน
แต่มันอ่านแล้วก็ปิดแท็บไป มันก็เหมือนเวลาเขียนสเตตัสแล้วผ่านตาเพื่อนในเฟสเป็นร้อย แต่ไม่มีใครกด like คิดว่าประสบความสำเร็จมั้ยล่ะแบบนี้?

แต่ก็ไม่ได้หมายความว่า content 0 เลยจะรอด Mark Zuckerberg ก็อัพสเตตัสของเขา อัพรูปของเขา นั่นคือมันทำให้เกิด Network effect แต่พอถึงจุดนึง เค้าจะเริ่มหายไปจากหน้าจอของคนส่วนมาก ตอนนี้หลายๆ คน ไม่มี Larry Page, Mark Zuckerberg อยู่ใน wall อีกแล้ว เพราะเค้าก็เป็นผู้ใช้คนหนึ่งในระบบ ไม่ใช่ผู้สร้าง content ให้กับ Facebook หรือ Google+ อีกต่อไป

คำว่า content is king คงจะมาจากยุค Web 1.0

Real Time Web: Next generation website

เคยทวิตไว้นานแล้วครับ เกี่ยวกับเรื่อง Real Time Web เลยขอเก็บมาเขียนบล็อคเดี๋ยวจะกลายเป็นบล็อคอนิเมะไปซะได้ (ที่ BG เป็นรูปอนิเมะเนื่องจากผมต้องการผูก [menome profile](http://menome.sunburn.in.th/whs)​ โปรเจกท์ใหม่ของผม เข้ากับบล็อคครับ สักพักคงจะกลับมาเป็นแบบธรรมดาๆ)

Web 2.0 คงจะได้นิยามเป็น Web+Social ครับ เราผลัดจากการเป็นผู้ผลิตเนื้อหา เป็นผู้ผลิตแพลตฟอร์มสำหรับเนื้อหา ผมเองก็ใช้แนวคิดนี้กับ menome “Social+anime” เรามี Wiki ให้ผู้ใช้สามารถจัดการอัพเดตได้ (แต่ต้องอนุมัติก่อนอยู่ดี) แต่บางจุดพื้นฐานอย่างการเพิ่มอนิเมะก็ต้องมีแอดมินที่ทำหน้าที่ตรงนี้ เพื่อไม่ให้เกิดปัญหาเน่าเสียแบบ foursquare แต่เว็บทุกวันนี้เราก้าวไปด้วย HTML5 แล้ว อะไรละคือยุคถัดไป?

คำตอบของผมคงจะเป็น Real-time web ครับ อาจจะว่า เอ๊ะ มันมีคนใช้หรอ? ที่เราเห็นชัดเจนคงเป็น Twitter นั่นแหละครับ วันแรกที่ผมสัมผัส user stream มันว้าวววมาก (ผมเขียน client เองเลยได้ใช้ก่อนคนอื่นหลายเดือน) จากที่เราต้องรอตอบเมนชั่นสามนาที ห้านาที สิบนาที นั่งกดรีเฟรชรอคำตอบ เราสามารถจะตอบสนองกันได้ทันที ทุกวันนี้เราก็คงเคยชินกับ real-time web ใน notification ของเฟสบุ๊คแล้ว ไม่ต้องนั่งรีเฟรชแค่เปิดเว็บทิ้งไว้ก็ไม่พลาดอัพเดต

ถามว่า เอ๊ะ แล้วเว็บไซต์ทั่วไปจะได้ใช้หรอ? ผมว่าถ้าเว็บที่เป็น 2.0 อยู่แล้วได้ใช้อยู่แล้วครับ การเคลื่อนไหวมันเร็ว น่าจะต้องกระจายออกไปให้ผู้ใช้เร็วขึ้น

หรืออย่างบล็อคผมเนี่ยครับ ก็ใช้ [pubsubhubbub](https://code.google.com/p/pubsubhubbub/) protocol (ลองอ่านชื่อเร็วๆ สิบรอบดู) ถ้า feed reader ใครรองรับก็จะพบว่าพอผมอัพบล็อคจะขึ้นอัพเดตในทันทีเลย ซึ่งใน menome ผมก็ implement pubsubhubbub ไว้ อย่างบล็อคผมนี้เวลาอัพแล้วใน menome ก็จะขึ้นอัพเดตในทันที ทำให้คนอ่านไม่ต้องมานั่งเข้าบล็อคผมทุกวันๆ เพื่อหาข่าว และยังประหยัดเวลา polling ด้วย​ (menome poll blog 30 นาทีครับ)

สำหรับใน HTML5 เองก็มี WebSocket ที่มาตอบโจทย์นี้ครับ เซิร์ฟเวอร์สามารถพุช event เข้ามาหาผู้ใช้ได้ในทันที และแน่นอนคำว่าทันทีคือทันทีจริงๆ ครับ ไม่มี delay จาก polling interval ต่างๆ เลย ใน [live.bd2.in.th](http://live.bd2.in.th) ก็ใช้ websocket ในการอัพเดตข่าว DJ ครับ เมื่อ DJ กด enter แทบจะเรียกได้ว่าวินาทีเดียวกับที่ดีเจได้รับข้อความว่าอัพเดตเรียบร้อยแล้ว ฝั่งคนฟังก็สามารถเห็นข้อความนั้นได้ทันทีแล้วครับ

ปัญหาของ Realtime Web ตอนนี้คือการ implement ไม่ง่ายครับ Apache แสดงอายุมันออกมาแล้วโดยเฉพาะ connection นานๆ แบบนี้ถ้าไม่ใช่ event based คงไม่รอด ฝั่ง nginx เองก็มี plugin ที่ทำงานนี้ครับ (รู้สึกว่าจะไม่ใช่ WebSocket อยู่ดี) แต่ที่มาแรงตอนนี้เลยคือ [nodejs](http://nodejs.org) ครับ ใน bd2.in.th ก็ใช้

แน่นอน nodejs ไม่ใช่ภาษาที่คุ้นเคยแบบ PHP ครับ มันเป็น JavaScript แถมเป็น Async อีก (ลองหา mongodb driver ใน nodejs driver สิครับ แล้วจะรู้ว่า async นรกมาก) ฉะนั้นคนใช้เลยน้อย ของ menome ผมเองยังบอกเลยว่าไม่ทำ websocket ใช้ poll 60 วิแทนเพราะไม่ได้ไหลเร็วขนาดนั้น และก็ขี้เกียจเขียนหลายตัว ขี้เกียจเปิดพอร์ตเพิ่ม

อีกอย่างนึงคือผมเห็นใจคนที่ใช้แชร์โฮสต์ด้วยแหละครับ ในอดีตเรามีฟรีโฮสต์ เอา HTML ไปฝากก็พอ ใครใช้ CMS นั่นกระแดะ ยุคต่อมาใน 2.0 PHP เป็นสิ่งสำคัญที่ขาดไม่ได้ และนั่นคือแชร์โฮสต์ แต่ในยุค 3.0 แบบนี้ nodejs ไม่ใช่จะจัดการง่ายแบบ Apache PHP แล้วครับ คงต้องเพิ่มไปถึงขั้น VPS และ VPS เองก็เป็นปัญหาการจัดการทั้งผู้ดูแล (ที่ต้องเรียนวิธีใช้ลินุกซ์ แถมจ่ายแพงกว่าแชร์โฮสต์อีก) จนไปถึงผู้ให้บริการ (เพราะก็ต้องหาเครื่องมาทำ VPS ที่กินทรัพยากรมากขึ้น) ซึ่งแชร์โฮสต์เองมีมานานแล้ว แต่ VPS นี่ก็เพิ่งได้รับความนิยมครับ

(จริงๆ แล้วโฮสต์ node จริงๆ จังๆ ก็มีเช่น heroku/Joyent แต่พวกนี้ใช้ระบบของตัวเองครับ ใครจะเปิดก็ต้องไปลงทุน R&D มาทำให้ราคามันยังแพง)