Tuesday, February 26, 2008

รีวิว Adobe AIR/Ajax (เกือบจะได้ต่อกับ Grails)

ตอนแรกกะไว้ว่าจะทดสอบการใช้งานร่วมกันระหว่าง Adobe AIR/Ajax กับ Grails เนื่องจากตัวเต็มของ AIR เพิ่งออกไปเมื่อวันที่ 25 ที่ผ่านมา แต่พอผมติดตั้ง AIR runtime ขนาด 11 MB แล้วลองเปิดหาแอพพลิเคชั่นตัวอย่างมารันดู ก็ไปเจอ time tracker เล็ก ๆ ตัวนึง เห็นเจ้าของเขาบอกว่าใช้ ExtJS ทำ UI ก็คิดว่านะจะเล็กดีและพอที่จะลองได้

ผมใช้ Firefox browse ไปที่แอพพลิเคชั่นตัวนั้น (.air) แล้ว AIR runtime ก็ทำการติดตั้งลงไปในเครื่อง - แค่ตอนเปิดก็รู้สึกตะหงิด ๆ นิดนึงแล้วครับว่าไม่ค่อยเป็นไปอย่างที่คิด คือ เปิด ติดตั้ง แล้วก็รัน เหมือนการลงแอพพลิเคชั่นปกติ และถ้าไม่ได้ sign digital signature ไว้ มันก็จะมีการฟ้องแบบเดียวกันกับ Java Web Start และ ActiveX (ถ้าเป็น security model ของ Google Gears จะเบากว่านี้เล็กน้อย)

พอเปิดใช้งานตัวโปรแกรม หน้าตาการ render ของ WebKit (HTML renderer ที่ AIR ใช้) ทำให้ตัวโปรแกรมที่เคยดูดีในวิดีโอสาธิต ดูแย่ไปเลย icon ที่มากับ ExtJS มันแตก ๆ ยังไงไม่รู้ การ render font ก็ดูแปลก ๆ ตัวหนังสือไม่เรียบ แถม Ext JS ที่เร็วใน Firefox กลับช้าอืด ๆ ใน WebKit

ผมเลยถอดใจ จะเอามันออกแล้วโปรแกรมตัวนี้ ก็หาที่ uninstall ไม่ได้อีก

ปิดท้ายว่า ถ้าอยากทำ desktop app ด้วย HTML + Ajax รอ Mozilla Prism แล้วใช้ Google Gears เป็นตัวเก็บข้อมูล น่าจะดีกว่า Adobe AIR/Ajax หลายขุม

ไม่ประทับใจ เลยไม่ทันจะได้ลองเอามาต่อกับ back-end ที่เป็น Grails ครับ
(เหลือ AIR/Flex อีกตัว หน้าตาคงออกมาสวยงามกว่า ถ้ามีใครรีวิวแล้วบอกกันหน่อยนะครับ จะตามไปอ่าน)

Monday, February 25, 2008

วิธีการใช้ Grails และ Acegi จาก InfoQ

Fadi Shami เขียนบทความบน InfoQ แนะนำการใช้งาน Grails และ Acegi อย่างเป็นลำดับ โดยในบทความอ้างอิงการใช้ปลั๊กอิน Acegi รุ่น 0.2 ครับ

ที่มา: infoq.com
ผ่านทาง aboutGroovy

Saturday, February 23, 2008

ทดสอบระบบ iPaper : แนะนำเฟรมเวิร์คเกรลส์

Read this doc on Scribd: grails thai

Wednesday, February 20, 2008

เกรลส์และ Flex

Maarten Winkels เขียนเกี่ยวกับการใช้เกรลส์และ Flex โดยการสร้างหน้าจอ master-details ใน Flex และใช้เกรลส์เป็นฝั่ง server โดยตัวอย่างของเขานั้นเน้นการ binding วัตถุฝั่ง Java ใน Flex อีกทั้งยังมีการใช้ JMS เพื่อส่งข้อความไปหาโปรแกรม Flex ตัวอื่น ๆ อีกด้วยเมื่อตัวใดตัวหนึ่งมีการอัพเดตข้อมูลมาที่ฝั่งเกรลส์ น่าสนใจทีเดียวครับ

ที่มา blog.xebia.com
ผ่าน aboutGroovy

Thursday, February 14, 2008

การเติบโตของกลุ่มผู้ใช้เกรลส์ในไทย

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

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

ส่วนข้อมูลจำนวนการดาวน์โหลดรวม เท่าที่นับได้เฉพาะจาก mirror ของผม 2 server
(ไม่รวมจาก grails.org เพราะผมไม่รู้)
- distribution .zip มากกว่า 20,000 ครั้ง
- ตัวติดตั้ง 2,300 ครั้ง

Sunday, February 10, 2008

Groovy และภาษาไทย

ผมเคยลองคอมไพล์โปรแกรมภาษา Java ที่ตั้งชื่อคลาสเป็นภาษาไทยไปเมื่อหลายเดือนก่อน และจากนั้นก็ได้ทดลองไปอีก 2-3 ครั้งกับ Groovy แต่ไม่สำเร็จ วันนี้ลองดูอีกรอบหลังจากอ่านเรื่อง easyb

รอบนี้ไปเจอว่าเป็นความสะเพร่าเองที่ไม่อ่านดูให้ดี ๆ ว่าเราสามารถระบุ encoding ให้ groovy และ groovyc ได้จาก command line
$ groovy --encoding UTF-8 Test.groovy

แล้วใน Test.groovy มี class ที่มีชื่อและ method เป็นภาษาไทย ปรากฎว่าทำงานได้ปกติเช่นเดียวกับ Java ครับ

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

การพัฒนาที่ขับเคลื่อนด้วยพฤติกรรม (BDD) ด้วย easyb

easyb พัฒนาโดย Andrew Glover ซึ่งเป็นผู้แต่งร่วมของ Groovy in Action เป็นเฟรมเวิร์คสำหรับการพัฒนาที่ขับเคลื่อนด้วยพฤติกรรม - behaviour driven development หรือ BDD โดยแนวคิดก็คือทำให้ ข้อกำหนด ทำงานได้

easyb ใช้ภาษาเฉพาะทางที่พัฒนาบน Groovy ครับ ในตัวอย่างบนเวบไซต์จะเห็นว่ามีการ generate เรื่องที่เป็นภาษาอังกฤษออกมาจากโค้ดของ easyb ได้ด้วย (คิดว่า rspec ก็คงทำได้แบบเดียวกัน)

ในโลกของ Groovy มี easyb ให้ใช้แล้ว การทวนสอบข้อกำหนดกับลูกค้าเมื่อพัฒนาแอพพลิเคชั่นด้วย Groovy และ Grails คงจะทำได้สะดวกมากขึ้นทีเดียวครับ

Saturday, February 9, 2008

ประมวลเหตุการณ์หลังออก Grails 1.0

ก่อนอื่นต้องของแสดงความยินดีกับ Grails ที่ออกรุ่น 1.0 แ้ล้วครับ :-)

หลังจากชุลมุนกันอย่างหนักในช่วง Grails 1.0 ออก เนื่องจากมีคนพยายามจะ download Grails กันมากเสียจน server Codehaus รับไม่ไหว (ตอนหลังการรีลีส แม้แต่ กิลโยม ลาฟอร์จ ก็บอกว่าโหลดไม่ได้ รอบหน้าสงสัยคงต้องนัดกันก่อนนะครับ) กว่าจะได้ zip และ tar.gz ของ bin มาทำ mirror ก็ resume ด้วย wget -c ไปหลายรอบครับ

พอโหลดเสร็จ ผมก็เป็นคนแรกที่โพสต์ mirror ที่ไม่ broken หลายคนได้ binary ไปแล้วก็ mirror กันต่อ แล้วหลังจากนั้นทุกอย่างก็ไปได้อย่างราบรื่น

อีกไม่ถึงชั่วโมง ผมก็ build ตัว installer เสร็จ พอดีมีคนเอา reference ของ Grails 1.0 ใน format .CHM มา post แทนที่จะได้ release เลย ผมก็ไปขอไฟล์เขามารวมในตัว installer ด้วย แล้วก็ build อีกรอบ
เสร็จแล้วก็แอบเอาลิงค์ไปปะไว้ในหน้า thai grails user ก่ิอนพร้อม ๆ กับ binary หลัก (บางท่านอาจจะแอบเห็น) แ้ล้วก็ติดต่อไปหา กิลโยม เพื่อให้โพสต์ลิงค์เข้าหน้าหลัก คิดว่าตอนนั้น เกรมคงแอบไปหลับแล้วเพราะเงียบไปเลย
;-)

จริง ๆ ก็กะไว้แล้วว่าจะวุ่น แต่ไม่คิดว่าจะวุ่นขนาดนี้
พอไปดูใน stat ของ server จำนวนคน download จาก mirror ผม ก็ปาเข้าไปเป็นพันในช่วงวันเดียว (ถึงวันนี้ 4583 + ~600 ของ installer for Windows และเพิ่มขึ้นเรื่อย ๆ) ก็เลยสรุปว่าได้คร่าว ๆ ว่าทั้งหมดอยู่ในระดับหมื่น download แล้วแน่ ๆ ครับ

สรุปว่า Grails 1.0 เปิดตัวได้ค่อนข้างแรง
บั๊กเล็ก ๆ น้อย ๆ หลุดออกมาบ้าง (ผมเก็บไป 2 แล้ว) แต่คิดว่า 1.0.1 จะออกมาแก้ไขในเวลาไม่นานและตัว snapshot ของ 1.0.1 ก็เสถียรมากด้วยครับ เพราะ feature frozen ไปแล้ว