แล้วไงต่อ

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

So what else ?

PAW is a great concept to convince that people should be able to have more than one programming skills. If you look at the root of the word Polyglot, it is from Multilingualism, which refers to people who can communicate with multiple languages. In terms of software development, this concept means we should not limit ourselves to only a programming language or technology. Limiting ourselves that way may make us go against the world. I think the concept of PAW helps us embrace new technologies, and lead to collaborative opportunities for continuous invention.

Feed aggregator

Panasonic พยายามแก้ปัญหาของ Remote Control

planet.paw66.com - 32 min 6 sec ago
แม้ว่าจะไม่ได้แก้ปัญหา Remote หาย แต่น่าจะแก้ปัญหาเรื่องปุ่มมากมายบน remote ได้ เห็นถึงความพยายาม แต่ถ้าทำเป็น wii remote หรือไม่ต้องมีปุ่มเลยน่าจะดีกว่ามากทีเดียว ที่มา: งาน Japan CEATEC 2008

สวัสดีครับ สปริง หกหก

planet.paw66.com - 9 hours 17 min ago
ได้เวลาไล่ตาม seam เสียที ที่สำคัญตอนนี้ปัญหาเรื่อง OpenID ที่คาราคาซังมานานก็แก้ได้แล้วครับ คาดว่าจะตาไป update เวบสหาย 66 ทั้งหมดให้เสียทีครับ ผมรัก Spring เข้าเลือดเลย แต่ทั้งนี้ทั้งนั้นเราอาจจะพูดถึง spring ในเรื่องของการทำ services และ การทำ integration เสียมากนะครับ ส่วนในเรื่องของการทำ presentation นั้นเป็นเรื่องที่ต่างคนต่างใช้ตามถนัดน่าจะดีนะครับ

สร้าง Spring Project แรกด้วย Maven

planet.paw66.com - 9 hours 17 min ago
การเรียนแบบ Learning By Doing น่าจะเป็นการเีรียนรู้ที่ไม่น่าเบื่อที่สุดสำหรับการเรียนเรื่อง Development Framework ดังนั้นบทความใน series นี้จะเป็นเรื่องของการสอน spring แบบสนุกๆกันเพื่อให้ทุกคนสามารถเข้าใจ spring ได้ง่ายขึ้น โดยที่เรามากำหนด environment พื้นฐานกันก่อนว่าการเรียนการสอนของเราจะใช้อะไรบ้าง jdk 1.5 ขึ้นไป maven2 ขึ้นไป netbeans6.1 ขึ้นไป (แต่อันนี้แล้วแต่สะดวกนะครับ) spring2.5 ขึ้นไป ก่อนอื่นใครไม่รู้จัก Maven ขอให้ไปอ่านทำความเข้าใจที่เวบของ Maven เองนะครับ โดยการใช้ Maven จะช่วยเหลือเรามากๆในเรื่องของการบริหาร project structure และเรื่องของ library dependency ที่เป็นเรื่องที่น่ากลัวมากสำหรับคนที่เขียน Java ไม่คล่องเพราะมันจะใช้ Library เยอะมากจนน่าปวดหัวแถมมีหลาย version ด้วย ดังนั้นการใช้ Maven จะทำให้เราลืมเรื่องพวกนี้ไปได้เลย เริ่มด้วยการสร้าง Project แบบว่างๆโล่งก่อนนะครับ โดยให้ทุกท่านพิมพ์คำสั่งนี้ลงไปในที่ที่ต้องการ mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.spring66.tutorial -DartifactId=spring66-app จากนนั้นเราจะได้โปรเจคชื่อ spring66-app มาพร้อมทั้งมี packeage [...]

Product ต่างๆในสายสปริง

planet.paw66.com - 9 hours 17 min ago
ก่อนอื่นก่อนที่จะเข้าเนื้อหาจริงๆของ spirng เราควรรู้จัก product ในสายสปริงให้หมดก่อนว่ามอะไรบ้าง แต่ละตัวมีความสามารถอะไรบ้างพอสังเขป เนื่องจากข้อมูลเหล่านี้จะได้เป็นประโยชน์กับเราในการตัดสินใจใช้งาน product แต่ละตัวได้อย่างถูกต้อง จากข้อมูลปัจจุบันนั้นผลิตภัณท์ของ spirngsource นั้นมีด้วยกันทั้งหมด 16 ตัว(ทางการ) และรอเข้าคิวเปิดตัวอยู่อีกสองสามตัว เริ่มจากที่เป็นทางการก่อนแล้วกันครับ   Spring Framework พี่ใหญ่ของเรา IOC container ที่ได้รับการยอมรับว่าดีที่สุดในโลกสามารถเอาทุกอย่างมาแปะติดเป็น service ได้เกือบหมดโลก ช่วยให้เราเขียนโค้ดได้ง่ายขึ้นมากๆ Spring Web Flow เป็นส่วนต่อเติมของ Spring MVC ที่ช่วยใ ห้เtราสามารถสร้าง Controllers ที่มีความสามารถใuนการใsช้งาน domain-specific-language. โดยที่ DSL นี้ถูกออกแบบมาใ ห้ผู้ใlช้สามารถสร้างระบบที่มี state ที่ซับซ้อนไ ด้อย่างง่ายดายแnละสะดวกขึ้น Spring BlazeDS Integration เป็นส่วนเติมเต็มของ spring ในการทำ Rich Internet Application ด้วย Flex และสามารถทำงานร่วมกับ Adobe BlazeDS ได้อย่างดี Spring Web Services [...]

Inversion Of Control และ Dependency Injection

planet.paw66.com - 9 hours 17 min ago
เอกสารนี้เขียนไว้ที่ thaidev.org ครับเมื่อประมาณสี่ปีที่แล้วเป็นจุดเริ่มต้นที่ผมเริ่มศึกษาสปริง เนื่องจากทุก IOC คือแก่นของสปริงดังนั้นใครจะใช้สปริงไม่รู้เรื่อง IOC เนี่ยโคตรบาป ขอเอามาแปะในนี้ต่อนะครับ Inversion of control or Dependency Injection เอกสารนี้มีต้นตอมาจาก http://martinfowler.com/articles/injection.html ครับ เนื่องจากปัจจุบันมีการกล่าวขวัญถึง Lightweight Container กันมากขึ้นในกลุ่มผู้ใช้จาวาและมีการสร้าง container แบบนี้หลายโปรเจคแต่จริงๆแล้วโปรเจคเหล่านี้ได้ทำตามแนวคิดของ Design Pattern ที่ชื่อ Dependency Injection หรือ Inversion of Control แนวคิดต่างๆนี้พรั่งพรูออกมาในกลุ่มคนชอบเปิดเผย (Open Source) เพื่อที่จะหาทางเลือกอะไรสักอย่างที่สามารถเข้ามาแทนผลิตภัณฑ์หลักที่แสนจะซับซ้อนของ J2EE แนวคิดหลักๆคือจะรวมเอาองค์ประกอบหลักๆของการทำเวบที่ต่างกันเข้าด้วยกันได้อย่างไรยกตัวอย่างเช่นจะรวมเอาเวบคอมโปเนนท์ กับเดต้าเบสคอมโปเนนท์ที่ทำมาจากเทคโนโลยีที่ต่างกันเข้าได้อย่างไร บางโปรเจคไม่สามารถแก้ไขปัญหานี้ได้แต่ในทางกลับกันบางโปรเจคสามารถแก้ไขปัญหานี้ได้ด้วยความสามารถในการรวมคอมโปเนนท์ต่างๆเข้าด้วยกันเป็นชั้นๆไปเช่น PicoContainer หรือ Spring Component และ Service ก่อนที่จะเข้าสู่เรื่องของ Inversion Of Control จะขอทำความเข้าใจความแตกต่างระหว่าง Component และ Service ในมุมมองของ Martin Fowler เสียก่อน จริงๆแล้วทั้งสองอย่างเหมือนกันตรงที่ต่างเป็นก้อนของซอฟท์แวร์ที่ทำหน้าที่ใดหน้าที่หนึ่งโดยเฉพาะและไม่สามารถหรือยากที่จะเปลี่ยนแปลง แต่สิ่งที่ทำให้สองสิ่งแตกต่างกันคือ [...]

กลุ่มเป้าหมายของ KDE

planet.paw66.com - Tue, 01/06/2009 - 03:00
KDE แบ่งกลุ่มผู้ใช้ออกมาแบบนี้ทำให้การสนทนาผ่าน Mailing list ง่ายขึ้นมากทีเดียว เพราะสามารถบอกได้ว่าข้อเสนอนั้นเหมาะกับ A และต้องแก้ไขอย่างไรเพื่อให้เหมาะกับกลุ่ม B ผมตามอ่าน Usability ของ Gnome มาพักใหญ่ ข้อถกเถียงทุกอันต่างมีเหตุผล และมีข้อดีข้อเสีย แต่การให้คะแนน หรือแบ่งกลุ่มข้อดีข้อเสียกลับทำได้ยากมาก ทำให้สุดท้ายต้องตัดสินใจด้วยความรู้สึก หรือให้คนที่มีผลงานมากที่สุดตัดสิน การที่ KDE ตั้งตุ๊กตาของกลุ่มเป้าหมายเป็น 5 กลุ่ม จะเหมือนการสร้างคำศัพท์ขึ้นมาเพื่อใช้อ้างอิงตอนคุยกัน นับว่าเป็นแนวคิดที่ฉลาดมากทีเดียว แต่ปัญหาใต้น้ำที่โผลออกมาทันทีที่ตั้งตุ๊กตา 5 ตัวนี้ขึ้นมา คือความแตกต่างอันมากมายของตุ๊กตาแต่ละตัว Office Worker ไม่ชอบความตื่นเต้น Student ของง่ายๆ ควรง่าย Recreational User ปรับแต่งได้ตามใจ Decision Maker ผมเลือกใช้ของดี Geek หงุดหงิดที่อยากลอง แต่ทำไม่ได้ การจะเอาใจ Office Worker และ Geek ไปพร้อมๆ ต้องใช้ความพยายามเป็นหลายเท่า เพราะต้องมีของอยู่บนหน้าจอให้น้อยที่สุดเพื่อให้ Office Worker เข้าใจการทำงานของระบบให้เร็วที่สุด แต่นั่นทำให้ Geek หงุดหงิดทันทีเพราะสิ่งที่เขาอยากให้มีจะไม่มี หรือต้องคอยเปิดขึ้นมาเมื่อต้องการใช้ เหมือนการเอา [...]

ZK: What It Is

planet.paw66.com - Sat, 01/03/2009 - 18:30
ZK เป็น framework แบบ event-driven และ component-based ช่วยในการสร้าง rich user interfacs สำหรับ Web applications. ZK ประกอบด้วย AJAX-based event-driven engine , XUL และ XHTML components และ markup language ที่เรียกว่า ZUML (ZK User Interface Markup Language) ด้วย ZK เราสามารถสร้าง rich interface ได้ด้วย XUL และ XHTML components และ จัดการมัน โดยขึ้นอยู่กับ event ที่ ผู้ใช้งาน กระทำกับ แอพพลิเคชั่น แบบเดียวกับ เดสท็อป แอพพลิเคชั่น ไม่เหมือนกับ [...]

User Interface with out Interface

planet.paw66.com - Fri, 01/02/2009 - 11:00
ไปเจอ video เรื่อง Multi-touch ของ Autodesk Labs ครับ เป็น Interface แบบไม่มีเครื่องมีใดๆ อยู่บนหน้าจอ ให้เอานิ้วลองจิ้มๆ เดาๆ เอาเอง ถ้ามี iPhone Jumbo ออกมา โลกคอมพิวเตอร์คงเปลี่ยนไปน่าดู ไม่รู้ว่าผู้ใช้จะรับได้หรือเปล่า แต่น่าจะช่วยให้งานหลายๆ อย่างง่ายขึ้นอย่างเหลือเชื่อเลยล่ะครับ เพื่อนๆ ที่เจอ video ดีๆ เอามา Review กันได้นะครับ เขียนอยู่คนเดียว เหงาน่าดู

ความหมายของปุ่มในตำแหน่งที่ต่างกัน

planet.paw66.com - Fri, 01/02/2009 - 00:00
สวัสดีปีใหม่ครับ ขอให้ทุกคนมีความสุขในการออกแบบ Application ตลอดปี 2009 นะครับ ก่อนวันหยุดยาวปีใหม่ผมบังเอิญต้อง Update Host ให้กับ User ของ Mysql ผ่าน Mysql-Admin ทำให้เจอบางอย่างน่าสนใจเข้า ผม Add New Host ให้กับ User คนหนึ่งในระบบ หลังจากที่ผมเห็น Host ปรากฏอยู่ใต้ชื่อ User ก็สบายใจปิดโปรแกรมไป แต่กลายเป็นว่า User คนนั้นยังไม่ได้รับสิทธิ์ มาตรวจสอบอีกทีกลายเป็นว่าต้องกดปุ่ม Apply ก่อน รูปด้านบนแสดงตำแหน่งของปุ่ม Apply ของ Mysql Admin Version Widows (ผมลืมภาพ Version Linux ไว้ที่ office ขอเอาที่หาได้บน google มาแสดงไปก่อน) ปัญหาของปุ่ม Apply ใน Version Linux และ Windows คือมันสื่อความหมายไม่ครอบคลุมพื้นที่ด้านซ้ายมือ ดังนั้นผู้ใช้อย่างผม [...]

เรียงลำดับความสำคัญในโปรแกรม

planet.paw66.com - Sat, 12/27/2008 - 00:00
ส่วนของการ Prioritizing design decisions เป็นส่วนที่ผมชอบมากอีกส่วนหนึ่งใน Apple Human Interface Guideline เพราะมันช่วยในการตัดสินใจยากๆ ทำได้อย่างเป็นระบบ ก็การตัดสินใจที่จะตัด feature เจ๋งๆ ออกจากโปรแกรมมันทำได้ยากจริงๆ นะครับ ใน HIG เค้าแบ่งความสำคัญออกเป็นสามระดับ โปรแกรมที่รองรับความต้องการพื้นฐานของผู้ใช้ก่อน จึงจะถือว่าเป็นโปรแกรมที่ใช้งานได้ แต่ไม่ได้หมายความว่าโปรแกรมนั้นจะรองรับความต้องการที่ผู้ใช้คาดหวังไว้ หากไม่เป็นไปตามที่ผู้ใช้หวัง จะส่งผลให้โปรแกรมไม่ได้รับความนิยม และสร้างความภักดีกับผู้ใช้ไม่ได้ หรือเรียกว่าสร้าง Brand Royalty ไม่สำเร็จ ความคาดหวังของผู้ใช้เป็นจุดชี้วัดความสำเร็จของโปรแกรม การวิเคราะห์ความคาดหวังของผู้ใช้จึงเป็นสิ่งจำเป็นสำหรับคนที่กำลังออกแบบโปรแกรม หากเราต้องตัดสินใจตัดหรือเพิ่มอะไรในโปรแกรมของเรา ผมคิดว่าแนวทางต่อไปนี้จะช่วยได้มากทีเดียวครับ 1. Meet Minimum Requirement ใน Apple HIG จะพูดถึงการที่โปรแกรมมีความสามารถพื้นฐาน ของ OS เช่นสามารถใช้ Copy & Parse รองรับ Clipboard ของระบบ มีการใช้ Dock และการใช้ Standard controls แต่ผมอยากให้มองอีกมุมหนึ่ง ว่าโปรแกรมของเรารองรับความต้องการพื้นฐานที่โปรแกรมของเราเป็นหรือไม่ [...]

Grails 1.1 beta 2 ออกแล้วจ้า

planet.paw66.com - Fri, 12/26/2008 - 19:30
ทางทีมพัฒนา Grails และ SpringSource ได้ปล่อย Grails 1.1 beta 2 ออกมาติดๆ สามารถ Download ได้ที่นี่ ส่วน Features ใหม่ๆ สามารถอ่านได้จากที่นี่ ผมทำการสรุป Features ใหม่ๆ บางส่วนมีดังนี้ครับ 1. GORM มี features เพิ่มเติมดังนี้ - เพิ่ม GORM Event เข้ามาคือ afterInsert, afterUpdate และ afterDelete - ในการ join table สามารถใช้ String, Integer [ ชนิดข้อมูลทั่วไป ] เช่น class Person { static hasMany = [...]

[issue] สำหรับใครที่ลง debian package 1.0.4 แล้วเจอเลข version เป็น [null]

planet.paw66.com - Thu, 12/25/2008 - 10:00
ใครที่่ใช้ linux ที่เป็น debian-based แล้วต้องการจะทดลอง Grails 1.0.4 โดยการไป download ตัว deb package จาก Grails.org แล้วติดตั้งบนเครื่องของท่าน อาจจะเจอปัญหาว่าไม่สามารถสร้าง controller ได้เพราะ version conflict ระหว่าง null กับ null ให้ลองเช็คดูว่า ไฟล์ deb package ใช่ไฟล์ grails_1.0.4-1_all.deb หรือไม่ ถ้าใช่แสดงว่าตัว debian package ที่ไปโหลดมาไม่มีไฟล์ build.properties ให้เรา download ตัว debian package ตัวใหม่กว่า โดยลองดูจากรายการ download จะมี grails ล่าสุดอยู่ ติดตั้งไฟล์ใหม่แล้วลองสร้าง controller ดู จะพบว่าใช้ได้แล้วนะครับ เผื่อว่าใครเจอปัญหาเดียวกันจะได้ไม่ต้องติดอยู่นานครับ

Merb gets merged into Rails 3!

planet.paw66.com - Wed, 12/24/2008 - 06:00
มีของขวัญวันปีใหม่+คริสต์มาสมาฝากครับ Merb 2.0 และ Rails 3.0 จะกลายเป็นสิ่งเดียวกัน ผู้พัฒนาทั้งสองฝั่ง คือ Merb กับ Rails ตัดสินใจ ที่จะพัฒนา framework ทั้งสองตัวนี้ร่วมกัน โดยจะเอาของดีหลักๆ ของ Merb ไปใส่ใน Rails คือ Agnosticism - คือการไม่ยึดติด เช่น ไม่ชอบ AcitveRecord เอาตัวอื่นได้ไหม Modularity - คือการแยกเป็นส่วนๆ แยกไปเลยเป็น module ไว้ทำอะไร เวลาเขียน code ก็อย่าให้มันตีกัน Improved performance - แน่นอน ประสิทธิภาพดีขึ้น เร็วขึ้น Public API - บังคับให้คนใช้ คือบางกรณี ดันไปเรียก method ที่ protected/private(ไม่เห็นใน API) ไว้ แต่ถ้าที่ protected/private นั้น มีการ update ล่ะ [...]

ObjetDirect announces a new release of Tatami Toolkit.

planet.paw66.com - Tue, 12/23/2008 - 12:00
สำหรับแฟน Dojo ตอนนี้ได้ทดลอง Tatami Toolkit version ใหม่แล้ว คุณสมบัติใหม่ - License switched from LGPL only to LGPL or Apache License or BSD - Now relies on latest Dojo 1.2.3 release - Charting support - Tree Widget - Dojo drag and drop can now be used in Tatami - The border container has been ported, advantageously replacing both GWT DockPanel and SplitPanels - Relies on custom [...]

Seam 2.1.1 GA ออกแล้ว เพิ่มการรองรับ OpenID

planet.paw66.com - Tue, 12/23/2008 - 09:30
ในรุ่นนี้เน้นการแก้บั๊กและปรับปรุงเรื่องประสิทธิภาพความเร็วเป็นหลัก ครั้นกระนั้นจากครั้งก่อนเคยพูดไว้แล้ว Seam 2.1 นั้นได้เพิ่มฟีเจอร์ใหม่เข้ามาพอสมควร หนึ่งในเรื่องใหญ่ที่สุดก็เรื่อง Seam Security ดูแลทั้งเรื่อง Authentication และ Authorization เรียกได้ว่าปั้นมาเพื่อเป็นมวยชนกับ Spring Acegi ก็ว่าได้ การรองรับ OpenID เป็นหนึ่งในเรื่องที่ถูกใส่เข้าไปไม่ทันในกำหนดการออก 2.1 GA ดังนั้นมันเลยเป็นความสามารถใหม่ที่โผล่เข้ามาใน Seam 2.1.1 GA ครั้งนี้แทน ฟีเจอร์ย่อยๆ ที่ถูกปรับปรุงเพิ่มเติมอีกส่วนหนึ่งก็คือตัว seam-gen อีกแล้ว เวลาสั่ง seam-gen สร้างโปรเจกต์ใหม่จะรองรับการเปิดโปรเจกต์นั้นด้วย IntelliJ IDEA ด้วย เพราะในขณะนี้ IntelliJ IDEA 8 ได้เพิ่มการรองรับ JBoss Seam ไว้แล้วอย่างเป็นทางการ สามารถดาวน์โหลด Seam 2.1.1 GA ได้ที่นี่

JPA 2.0 : ลุ้น Criteria API แบบ typesafe

planet.paw66.com - Mon, 12/22/2008 - 11:00
สำหรับแฟน Hibernate คงรู้จักว่าอะไรคือ Query by Criteria อยู่แล้วนะครับ เพราะเป็นฟีเจอร์ที่มีอยู่นานแล้ว แต่ฟีเจอร์นี้ไม่ได้ถูกครอบคลุมใน JPA 1.0 พอมาถึงคราวจะออก JPA 2.0 ก็มีการถกกันเพื่อนำฟีเจอร์นี้เข้ามาเป็นมาตรฐานเสียที ก่อนจะถกต่อเรื่อง Criteria แบบ type-safe อธิบายสั้นๆ ว่า Criteria API จะมีประโยชน์อย่างไรบ้าง ปกติแล้ว ทั้ง Hibernate/JPA ก็มี HQL/JPAQL ให้ใช้ในการ query ข้อมูลที่อยู่ในมุมมองเชิงออบเจ็กอยู่แล้ว แต่วิธีนี้เหมาะกับกรณีที่เรารู้ล่วงหน้าว่าคำสั่ง query คืออะไร อาจมีส่วนที่ต้องไดนามิกบ้างก็เฉพาะค่าพารามิเตอร์บางตัวที่ส่งเข้ามา ซึ่ง HQL/JPAQL ก็รับใช้เราได้ดีในจุดนี้ แต่ก็มีบางกรณีเช่นกันที่เราแทบไม่มีคำใบ้ใดๆ ให้เราเลยว่าคำสั่ง query เหล่านั้นจะหน้าตาเป็นเช่นไร หรือไม่ก็ sample space มันใหญ่จนการเตรียม query ไว้ล่วงหน้าไม่เอื้อต่อการปฏิบัติได้จริง กรณีนี้ความไดนามิกมีสูงกว่ากรณีแรกมาก ถ้าปราศจาก criteria API แล้ว ลำบากเราที่ต้องเผชิญกับ if-else สารพัดและการต่อ String [...]

Review :: HTTPBuilder for groovy

planet.paw66.com - Wed, 12/17/2008 - 17:00
Groovy :: HTTPBuilder module HTTPBuilder คือ module ที่ wrapper ของ Apache HttpClient ด้วยภาษา Groovy โดย module นี้ได้แนวคิดเรื่อง request/response model มาจาก prototypejs โดย module ตัวนี้เป็นเพียง beta version เท่านั้นเนื่องจากมีอีกหลายๆ ส่วนที่ยังไม่อ่านการทดสอบ ดังนั้น ถ้าใครคิดจะเอาไปใช้งานก็ต้องพิจารณาความเสี่ยงด้วยครับ แต่ผมเอามา overview ให้ดูก่อน เนื่องจากผมก็เป็นคนหนึ่งที่ใช้งาน Apache HttpClient อยู่ประจำเช่นกัน พอเขียนด้วย Groovy แล้วมันจะง่ายกว่าเก่าเยอะครับ มาดู Feature ของ HTTPBuilder ประกอบไปด้วย - จะมี Parser ที่สนับสนุน XML, JSON และ HTML - สนับสนุน GZIP and Deflate content-encoding - [...]

BAD for Better Application Design ตอนที่ 5

planet.paw66.com - Mon, 12/15/2008 - 02:30
ไม่ได้เขียนมาพักใหญ่ เนื่องจากต้องเร่งส่งงาน ตอนนี้ส่งเรียบร้อยไประดับหนึ่ง จึงมีเวลาเอาสิ่งที่อยากเขียนมาเขียนซะที วันนี้อยากพูดถึงเว็บไซต์ gotoknow.com ครับ เว็บนี้ผมเข้ามาอ่านประจำแต่พึ่งมีโอกาสได้เขียน comment เมื่อไม่กี่วันมานี้เอง พอเริ่มใช้ฟอร์มใส่ comment ทำให้สัมผัสได้ถึงปัญหา แต่ยังไม่รู้ว่าปัญหาอะไรเลยลองวิเคราะห์ดู ผมพบว่าฟอร์มนี้ประกอบด้วยสี่ส่วน 1. ส่วนระบุตัวตนของคน comment 2. ส่วนของข้อความที่จะ comment 3. ส่วนยืนยันว่าผู้ถามเป็นคน 4. ปุ่มกดเพื่อบันทึก หรือยกเลิก พอแยกเป็นช่องๆ ทำให้เห็นว่ากลุ่มแรกระบบ label เป็นแบบซ้ายไปขวาหมด แต่กล่องที่สองและสาม ไม่ได้เป็นแบบเดียวกัน สีเขียวของผมคือเส้นสายตาที่คาดว่าผู้ใช้จะมองตามนี้ label อันที่ 1 กับ 2 อยู่ในที่ตาม concept ครับ ถึงแม้คำว่าชื่อจะอยู่ห้างจากตัว text box ทำให้เล็งยาก แต่เป็นหัวแถวเลยไม่มีปัญหา label อันที่ 3 จะเหมือนโดนสับขาหลอก เพราะมี label แต่ไม่มีช่องให้กรอก คาดว่าผู้พัฒนามองเป็นอีก attribute หนึ่ง และไม่อยากเอามาไว้ใต้ email เพราะจะทำให้ดูเป็นตัวขยายชุด email ไปซะ อีกปัญหาของ label [...]

เว็บ Django Site of the Week

planet.paw66.com - Sun, 12/14/2008 - 17:00

ประชาสัมพันธ์เว็บ Django Site of the Week เป็นเว็บที่คลอดลูกคลอดหลานมาจากเว็บ Django Sites เป็นเว็บที่เลือกเว็บสุดยอดที่พัฒนาด้วย Django สัปดาห์ละเว็บ พร้อมด้วย บทสัมภาษณ์ทีมนักพัฒนา โดยสัปดาห์แรกเริ่มที่เว็บ Disqus ที่เป็นเว็บให้บริการระบบ comment สำหรับ blog หรือเว็บอื่น ๆ

JBoss adopts GWT (Google Web Toolkit)

planet.paw66.com - Sat, 12/13/2008 - 22:30
เป็นการประกาศที่น่าสนใจที่เดียว เนื่องจาก JBoss เองก็มีสนับสนุน JSF ซึ่งเป็น UI Framework พื้นฐานที่ทำงานร่วมกับ SEAM อยู่แล้ว ซึ่งก็เป็นที่ทราบกันเช่นกันว่า JBoss เองได้มีการใช้งาน GWT ในโครงการ JBPM และ Drools มาได้ระยะเวลาหนึ่งแล้ว คงต้องคอยดูว่าพี่ใหญ่คนนี้จะให้ความสำคัญและสนับสนุน GWT ต่อไปอย่างไร ที่มา http://blog.softwhere.org/archives/567
Syndicate content


*Except where otherwise noted, content on this site is licensed under a Creative Commons
Attribution 3.0 License

*สัญญาอนุญาตสร้างสรรค์ร่วมกันครีเอทีฟคอมมอนส์

Join the Blue Ribbon Online Free Speech Campaign

*defending free speech, privacy, innovation, and consumer rights
*สนับสนุนเสรีภาพในการแสดงออก

Powered by Drupal, an open source content management system