_____ปกติผมพยายามจะตั้งใจอ่าน paper ที่สนใจให้ได้อย่างน้อยวันละ 1 paper ตั้งใจทำอย่างนี้มาสองเดือนแล้วครับ แต่ก่อนก็อ่านแต่เป็นแนวอ่านทีเดียวรวด เจออันไหนดี save เก็บไว้แต่พอไปได้ฟังนักวิจัยท่านหนึ่งพูดไว้ถึงเรื่องการพัฒนาความรู้ และวิธีการจัดการองค์ความรู้ผมจึงเริ่มเปลี่ยน ตั้งใจอยากจะสร้างกิจวัตรเสียใหม่ ไม่ใช่พอจะต้องเขียน paper ก็โหมอ่านทีละหลายสิบ paper ผลเสียที่ต้องยอมรับคือไม่อิน ไม่สามารถเก็บรานละเอียดได้ดี แต่แล้ววันนี้ก็ไม่ได้อ่านอะไรใหม่ เพราะมัวแต่นั้งแปล TIMEs online ตอนแรกว่าจะไม่อ่านจนจบเอาเข้าจริงๆมันอินเลยเสียเวลานั่งอ่านซะ จริงๆแล้วก็กลัวว่าจะไม่มีเรื่องไปโม้กับคนอื่น ส่วนเนื้อหาเป็นอย่างไรอยากรู้เอาไว้คุยกันหลังไมค์จะดีกว่า
______แวะเข้ามาเรื่องของเราบ้างดีกว่าก่อนที่จะออกเขมรไปซะก่อน ตั้งใจจะแวะเอาข่าวของ Google Javascript toolsbox ที่วันนี้ google ได้ปล่อยเวอร์ชั่น opensource มาแล้ว จากเดิมที่เป็น compression javascript สำหรับนักพัฒนา web application ที่ต้องใช้ ajax แล้วยังไม่มี lib คู่ใจผมว่า google js นี้ก็ไม่เลยนะครับ เร็วและใช้งานได้ดีทีเดียวและเป็นไลบารีตัวเดียวกับที่ google ใช้ใน application หลายตัว js lib ที่ว่านี้เรียกว่า Closure ผมชอบในเรื่องของการประมวลผล xml แบบ DOM และส่วนของ การทำงานกับ json มาก และความสามารถ cross-browser compatible ท่านที่สนใจแวะไปดาวน์โหลด code ได้ที่ http://code.google.com/p/closure-library/source/checkout แต่ผมไม่แนะนำให้แกะเพราะมันซับซ้อนมากจริงๆ ถ้ามีเวลาว่างมากก็น่าจะลอง หรือท่านสามารถใช้ความสามารถของ closure-compiler ในการ optimze javascript เพื่อให้เล็กและเร็วได้อีกด้วย
_______ตัวอย่างผมมี code ภาษา javascript สำหรับ process ข้อมูล Geojson ด้วย ajax ยาวประมาณ 100 บรรทัด ผมลอง compress เหลือประมาณ 30 บรรทัด

_____ส่วนการใช้งานของ Closure ก็ไม่ยากครับ สไตล์ API แบบ Google Map ผมมีตัวอย่าง code ง่ายจาก doc ของ google มาฝากครับ
| <html> | |
| <head> | |
| <title>goog.ui.Checkbox</title> | |
| <script src=”../base.js“></script> | |
| <script> | |
| goog.require(‘goog.dom’); | |
| goog.require(‘goog.events’); | |
| goog.require(‘goog.ui.Checkbox’); | |
| goog.require(‘goog.ui.Checkbox.State’); | |
| </script> | |
| <link rel=”stylesheet” href=”css/demo.css“> | |
| <link rel=”stylesheet” href=”css/checkbox.css“> | |
| </head> | |
| <body> | |
| <h1>goog.ui.Checkbox</h1> | |
| <p>This is a tri-state checkbox.</p> | |
| <div><span id=”all”></span>root</div> | |
| <div style=”margin-left: 1em;”> | |
| <div><span id=”leaf1″></span>leaf 1</div> | |
| <div><span id=”leaf2″></span>leaf 2</div> | |
| </div> | |
| <script> | |
| var all = new goog.ui.Checkbox(); | |
| all.decorate(goog.dom.$(‘all’)); | |
| all.setLabel(all.getElement().parentNode); | |
| var leaf1 = new goog.ui.Checkbox(); | |
| leaf1.decorate(goog.dom.$(‘leaf1′)); | |
| leaf1.setLabel(leaf1.getElement().parentNode); | |
| var leaf2 = new goog.ui.Checkbox(); | |
| leaf2.decorate(goog.dom.$(‘leaf2′)); | |
| leaf2.setLabel(leaf2.getElement().parentNode); | |
| function rootChanged(e) { | |
| leaf1.setChecked(all.getChecked()); | |
| leaf2.setChecked(all.getChecked()); | |
| } | |
| function leafChanged(e) { | |
| var same = leaf1.getChecked() == leaf2.getChecked(); | |
| all.setChecked(same ? leaf1.getChecked() : | |
| goog.ui.Checkbox.State.UNDETERMINED); | |
| } | |
| goog.events.listen(all, goog.ui.Component.EventType.CHANGE, rootChanged); | |
| goog.events.listen(leaf1, goog.ui.Component.EventType.CHANGE, leafChanged); | |
| goog.events.listen(leaf2, goog.ui.Component.EventType.CHANGE, leafChanged); | |
| </script> | |
| </body> | |
| </html> |
อ้างอิงจาก

โพสต์โดย pkgis2007 
โพสต์โดย pkgis2007 
โพสต์โดย pkgis2007 



















ตัวอย่างแปลงที่ดินบน google map
ตัวอย่างการ report problem แจ้งข้อผิดพลาดของข้อมูล








