แฮนด์ออนเทเบิล (Handsontable)

Handsontable คือ เครื่องมือที่พัฒนาด้วย Javascript ที่ทำงานฝั่งไคลเอนต์ (Client) มีหน้าที่แสดงรายการข้อมูลในรูปของตาราง หรือกระดาษทำการ (Spreadsheet) ที่แสดงผลคล้ายกับ MS Excel ซึ่งนำมาพัฒนาต่อยอดได้ง่าย รองรับการประมวลผลที่ยืดหยุ่น ใช้ข้อมูลรูปแบบ JSON เข้ากันได้กับเฟรมเวิร์ก (Framework) ที่เป็นที่นิยม เช่น Angular, Vue และ React เป็นต้น

พบว่า ถูกนำมาใช้โดย ศูนย์กลางข้อมูลเปิดภาครัฐ (Open Government Data) ภายใต้ชื่อ “data.go.th” เพื่อพรีวิวข้อมูล สำหรับข้อมูลส่วนที่สามารถแสดงได้กลุ่มหนึ่งจากข้อมูลที่มีทั้งหมด 5,843 ชุดข้อมูล (10 เมษายน 2565) สำหรับการใช้งานข้อมูล สามารถศึกษาเพิ่มเติมได้จาก คู่มือการใช้งานระบบศูนย์กลางข้อมูลเปิดภาครัฐ ที่เตรียมเอกสารโดย Witwisit Kesornsit ตั้งแต่รุ่น 0.1 เมื่อ 24 มกราคม 2563 โดย คู่มือฉบับล่าสุด รุ่น 3 เผยแพร่ ธันวาคม 2564 ของ สถาบันนวัตกรรมและธรรมาภิบาลข้อมูล มีข้อมูล preview ในหน้า 13 ที่อธิบายว่า “ระบบจะแสดงการ preview ชุดข้อมูลในแบบตาราง data explorer อย่างอัตโนมัติ” ซึ่งตารางที่ปรากฎในรูป คือ ผลของการใช้ Handsontable นั่นเอง

http://www.thaiall.com/json/

http://www.thaiall.com/jslibrary/

โครงการห้องเรียนที่ดี (Good Classroom) : 50 คลิปวิดีโอ
https://www.thaiall.com/education/indexo.html

เราสามารถค้นหาข้อมูลใน profile ของเรา หรือของเพื่อนได้

นุษย์เราตอนมีชีวิตอยู่ จะมีอดีต ทั้งสวยงาม และเศร้าสร้อยให้หวนระลึกนึกถึง ช่วงนี้มีเพื่อนในเฟสบุ๊ค มักโพสต์เรื่องสัตว์เลี้ยงบ่อย ๆ เช่น #สุนัข หรือ #แมว ทำให้ผมนึกถึงสุนัข ที่ผมเคยเลี้ยงไว้ตัวหนึ่ง เมื่อหลายปีมาแล้ว จำได้ว่าที่บ้านได้สุนัขตัวเล็กมาแบบไม่คาดคิด หลังจากนั้นหลายปี เค้าได้จากไปแบบไม่คาดฝัน เลี้ยงไว้หลายปี มีอาหารที่ดี มียากันเห็บ มีน้ำให้อาบ มีแชมพู มีกรงสวย ในพื้นที่ปลอดภัย แล้วอยู่มาวันหนึ่งเค้าก็ได้จากไปอย่างกระทันหัน ก็ต้องเศร้าเป็นธรรมดา ทุกอย่างที่เคยสร้างให้เค้า ต้องทิ้งบ้าง ขายบ้าง เหลือไว้เพียงภาพและคลิปความทรงจำ ในใจก็บอกตนเองว่า ไม่อยากสูญเสีย และเศร้าแบบนั้นอีก เคยเล่าไว้ใน facebook profile และเราสามารถเข้าไปค้นคืนอดีต และความทรงจำได้จากเฟสบุ๊ค ในยุคที่คนเราอายุยืน สมองมักเสื่อมในวัยอันควร ความทรงจำบางอย่างค้นคืนได้จากเฟสบุ๊ค ไปส่องเฟสบุ๊คตัวเองแล้วทำให้เห็นเรื่องราวในอดีต

source code

http://www.thaiall.com/facebook/

ใช้อาร์เรย์เก็บข้อมูล เพื่อตอบตาม index

function to create array
function to create array

อ่านแฟ้มแบบตัวอักษรมาเก็บในอาร์เรย์ เพื่อใช้ตอบการร้องขอข้อมูลตาม index

กรณีแรก ..
ในทางทฤษฎีเราใช้ระบบฐานข้อมูลสำหรับเก็บข้อมูล และใช้คำสั่ง SQL ที่เรียกว่า query ด้วยคำสั่ง select ถามหาข้อมูลที่ต้องการ ซึ่งมีประสิทธิภาพทำงานได้อย่างรวดเร็ว สมเป็นมืออาชีพ แต่ในทางปฏิบัติอาจไม่เป็นเช่นนั้นเสมอไป
เช่น กองฉลากเคยเก็บข้อมูลในระบบฐานข้อมูล ชาวไทยต้องการตรวจผลรางวัลก็กรอกข้อมูลแล้วระบบก็ส่ง query เข้าไปสอบถามจากเครื่องบริการ เป็นเช่นนี้อยู่ระยะหนึ่ง ต่อมาเห็น sanook.com ให้บริการตรวจฉลากกินแบ่ง โดยนำข้อมูลตัวเลขมาเก็บในแฟ้ม html แล้วใช้ javascript เป็นตัวตอบคำถาม ภาระในการสืบค้นการถูกรางวัลกลายเป็นของ script + browser ฝั่งผู้ใช้ ที่ทำงานได้รวดเร็วที่สุดในโลก
ปัจจุบันกองฉลากก็ใช้เทคนิค javascript ทำให้ตรวจฉลากหลายสิบใบได้เร็วมาก เพราะทั้งหมดแทบจะทำงานที่ฝั่งผู้ใช้ ยกเว้นการเปิดเว็บไซต์ในครั้งแรก เพื่อร้องขอการดาวน์โหลดข้อมูลมาไว้ในเครื่องผู้ใช้ที่เกิดขึ้นในครั้งแรก

กรณีที่สอง ..
ข้อมูลปริมาณมาก ย่อมต้องใช้ระบบฐานข้อมูล เพราะมีระบบบริหารจัดการ และค้นคืนได้อย่างมีประสิทธิภาพ แต่ถ้ามีข้อมูลไม่กี่สิบระเบียน ก็ไม่จำเป็นต้องใช้งานระบบฐานข้อมูล เพราะระบบฐานข้อมูลนั้นจำเป็นต้องมีโปรแกรมทำงานที่หลากหลาย แต่ถ้าเก็บข้อมูลในอาร์เรย์ หรือเก็บใน text file แล้วอ่านมาไว้ในอาร์เรย์ ก็จะทำให้เรียกใช้ข้อมูลได้ง่าย และเร็ว เหมือนการทำงานของ cache หรือ ram หรือ harddisk ที่ทำงานได้เร็วกว่า external harddisk สำหรับตัวอย่างนี้ มีข้อมูลใน text file แล้วอ่านมาเก็บใน array โดยกำหนด index ให้แต่ละสมาชิก เมื่อต้องการข้อมูลก็เรียกสมาชิกตาม index ได้ทันที ซึ่งประมวลผลได้เร็ว และไม่เป็นภาระกับระบบฐานข้อมูล โดยฟังก์ชันเขียนให้รองรับการคืนค่าของสมาชิก เช่น ชื่อ-สกุล หรือ ชื่อ-ชื่อกลาง-สกุล หรือ ชื่ออย่างเดียว เมื่อส่งรหัสเข้าไปเรียกจากอาร์เรย์

Source code
$ar_advisor = array();
$ar_advisor = create_ar_advisor(“advisor”,”0″,”1-2″);
echo $ar_advisor[“5601”];
function create_ar_advisor($filename,$f_key,$f_val) {
$ar = array();
$fileaddr = “/data/”. $filename . “.csv”;
$fn = file($fileaddr);
$get_k = split(“-“,”$f_key”);
$get_v = split(“-“,”$f_val”);
foreach($fn as $v) {
$r = split(“\t”,”$v”);
$rk = “”; $rv = “”;
foreach($get_k as $kv) $rk .= $r[intval($kv,10)];
foreach($get_v as $vv) $rv .= $r[intval($vv,10)].” “;
$ar[$rk] = $rv;
}
return $ar;
}