Posted
September 14, 2008
at
Grails66
Quickpod ตอนที่ 9: แนะนำ BDD ลิงค์ที่เกี่ยวข้อง BDD บน wikipedia http://easyb.org/ ดาวน์โหลด mp3 โทรเข้ามาฝากข้อความแสดงความคิดเห็นผ่านระบบ voicemail ของ Skype ได้ที่ chanwit.kaewkasi หรือคลิ๊กที่ไอค่อนโทรศัพท์ครับ สำหรับท่านที่ไม่มีหรือไม่สะดวกที่จะใช้ Skype สามารถโทรศัพท์มาได้ที่ +1-650-209-6449 (California, USA) แนะนำให้ใช้ 009 ครับเพื่อความประหยัดครับ
Posted
September 16, 2008
at
Grails66
วันนี้ผมลองนั่งดูการจัดการเกี่ยวกับเวลาใน Groovy ซึ่งพบว่าสามารถใช้ความสามารถ operator overloading ได้ง่าย เช่น ผมต้องการเพิ่มวันจากเวลาปัจจุบันไป 2 วัน ก็ทำได้ง่ายๆ ดังนี้ def current_date = new java.util.Date( System.currentTimeMillis() ) current_date += 2 ผลลัพธ์ที่ได้ Result: Thu Sep 18 18:25:48 GMT+07:00 2008 นั่งๆ เขียนไปไม่รู้อะไรมาดลใจ ให้ไปนึกถึง slide ที่คุณ @cblue ในงาน NJUG 5 เรื่องของการใช้งาน category มาช่วย ซึ่งจะทำให้ code นั้นอ่านง่ายและ เข้าใจได้ง่าย เช่นต้องการรู้คำนวณวินาทีจาก 3 hours + 20 minutes = 3*60*60 + 20*60 [...]
Posted
September 16, 2008
at
Grails66
Quickpod ตอนที่ 10: เทียบ BDD กับ TDD ดาวน์โหลด mp3 โทรเข้ามาฝากข้อความแสดงความคิดเห็นผ่านระบบ voicemail ของ Skype ได้ที่ chanwit.kaewkasi หรือคลิ๊กที่ไอค่อนโทรศัพท์ครับ สำหรับท่านที่ไม่มีหรือไม่สะดวกที่จะใช้ Skype สามารถโทรศัพท์มาได้ที่ +1-650-209-6449 (California, USA) แนะนำให้ใช้ 009 ครับเพื่อความประหยัดครับ
Posted
September 17, 2008
at
Grails66
Meera Subbarao เขียนบทความเรื่องนี้ไว้บน Groovy DZone ครับ http://groovy.dzone.com/articles/is-easyb-easy ลองอ่านกันดูแล้วจะรู้ว่า easyb ง่ายอย่างที่ชื่อเขาบอกไว้หรือไม่
Posted
September 17, 2008
at
Grails66
DSL คือ Domain specific language หรือภาษาเฉพาะทางครับ เราเห็นกันบ่อย ๆ จากหลาย ๆ ส่วนของเกรลส์ ผมก็ทำให้ดูบ้างแล้วในเอนทรีก่อน ๆ รวมทั้งคุณ @up1 และ @virasak ก็เคยทั้งโพสต์และแสดงความเห็นไว้เหมือนกัน รวมทั้ง easyb ที่พูดถึงกันในสัปดาห์นี้ก็เป็น DSL สำหรับสนับสนุน behaviour-driven development นั่นเองครับ ภาษาเฉพาะทางภายใน หรือ internal domain specific language จะเป็นสิ่งที่เรากำลังพูดถึงกันอยู่ครับ เพราะ Groovy อนุญาตให้เราสร้าง language construct หรือโครงสร้างทางภาษาใหม่ ๆ ขึ้นมาได้ โดยมีข้อจำกัดก็แต่เพียงว่ามันจะต้องถูกต้องตามไวยากรณ์ของ Groovy ซึ่งเป็นภาษาหลัก (host language) กิลโยม ลาฟอร์จไปพูดเรื่องนี้ที่ JavaZone conference ครับ เพิ่งได้ tweet มาวันนี้เองก็เลยเอามาให้ดูกัน
Posted
September 19, 2008
at
Grails66
หัดเล่น method_missing ใน Groovy Version พอไปอ่าน entry method missing ของ Rails66 แล้ว จึงคิดว่าการทำงานของ Dynamic finder ใน GORM มันน่าจะใช้แนวคิดเดียวกัน ??? ผมจึงไปค้นหาข้อมูลใน Groovy ก็เจอเอกสารอธิบายการใช้งาน methodMissing และ propertyMissing โดยความสามาถเหล่านี้จะเรียกว่า Dynamic Groovy ซึ่งประกอบไปด้วย - Dynamic Method Invocation - methodMising - MetaClass - ExpandoMetaClass มันมีหลายตัวแต่ใน entry นี้จะพูดถึง Dynamic Method Invocation และ methodMising ครับ มาเริ่มกันเลย ….. 1. Dynamic Method Invocation คือ สามารถเรียกใช้ method ที่ไม่รู้จักชื่อในขณะ [...]
Posted
October 02, 2008
at
Grails66
Sky Television เป็น service ที่ให้บริการ Broadcasting ชื่อดังค์ของอังกฤษ เป็นผู้ให้บริการ satellite network ที่ใหญ่ที่สุดในประเทศอังกฤษ (เหมือน UBC บ้านเรา ฟุตบอลในประเทศส่วนใหญ่ถ้าจะดูต้องซื้อ license จากทาง sky ) โดยเว็บ sky.com มีคนเข้ามากกว่าล้านครั้งต่อวัน และเว็บไซต์ลูก ๆ ของทาง sky เองก็พัฒนาด้วย Grails เช่น * Sky Movies * Sky TV * Sky1 Channel Site * Sky Showbiz ก็พัฒนาด้วย [...]
Posted
October 02, 2008
at
Grails66
ตอนนี้ Sun Microsystems มีคอร์สสำหรับสอน Groovy และเกรลส์แล้วครับ ชื่อคอร์สคือ G and G Primer: Rapid Web Development with Groovy and Grails เป็นการเทรนระยะสั้น 1 วันเพื่อปูพื้นฐานเกี่ยวกับ Groovy และเกรลส์เบื้องต้น รายละเอียดอ่านเพิ่มเติมได้ที่ลิงค์ด้านล่างครับ http://www.sun.com/training/catalog/courses/DTW-2200.xml ซันประเทศไทยสนใจมั้ยครับ แถวนี้มีมือโปร Groovy และเกรลส์เยอะแยะ
Posted
October 03, 2008
at
Grails66
ใน rails มี entry เกี่ยวกับ looping Loop 9 แบบบน ruby แล้ว grails66 จะยอมน้อยหน้าได้อย่างไร ดังนั้นมาดูกันว่า Looping ใน Groovy สามารถเขียนอย่างไรได้บ้าง ลอกจากเอกสารของ Groovy มาตรงๆ และแก้กันหน้าด้านๆ เลยครับ ขอเน้น coding นะครับ ไม่เน้นอธิบาย เพราะว่า code อธิบายตัวเองอยู๋แล้ว ^_^ 1. While loop while( ) { } เช่น def x = 0 while( x++ < 5 ) { println x } 2. For loop Syntax ที่เป็นพื้นฐานสุดๆ คือ for( ค่าเริ่มต้น; เงื่อนไขการทำงาน; [...]
Posted
October 07, 2008
at
Grails66
ตอนนี้ทางผู้พัฒนา groovy ได้ทำการ upload groovy snapshot เวอร์ชัน 1.5.7 และ 1.6-beta-2 [ Griffon project ใช้ groovy version 1.6-beta2] สามารถ download ได้ที่นี่ http://dist.groovy.codehaus.org/distributions/temp/ ถ้าใคร download มาใช้แล้วเกิดปัญหาต่างๆ สามารถรายงานไปทางทีมพัฒนาได้ครับ ที่มา :: Groovy Zone
Posted
October 09, 2008
at
Grails66
ตามบล่อกของคุณ up1 มาติด ๆ แบบหมาด ๆ ตอนนี้ Groovy 1.5.7 และ 1.6-beta-2 ออกมาให้ใช้กันแล้วครับ 1.5.7 เป็นรุ่น maintenace ไม่หวือหวาอะไร มี backport จาก 1.6 มาพอสมควร แต่เจ้า 1.6-beta-2 นี่มาพร้อมกับ feature ใหม่หลายตัวครับ ดาวน์โหลดได้จาก http://groovy.codehaus.org/Download สำหรับรายละเอียดของ 1.6-beta-2 อ่านได้จากบล่อกของกิลโยมครับ
Posted
October 10, 2008
at
Grails66
AST Transformation หรือการแปลง AST เป็นฟีเจอร์ของ Groovy ที่จะทำให้ชีวิตเราง่ายขึ้นไปอีกระดับครับ การแปลง AST จะใช้ annotation (ซึ่งมากับ Java 5) ในการกำหนดความหมายของสิ่งที่ต้องการแปลง โดยขั้นตอนในการคอมไพล์จะเป็นประมาณนี้ครับ source code เดิม -> ตรวจสอบ annotation -> แปลง AST -> source code ใหม่ -> สร้างเป็น .class -> เอาไปใช้งาน ในเอนทรีนี้ผมยกตัวอย่างการใช้ @Singleton เป็นตัวแรกครับ โดย @Singleton นั้นแสดงถึงการกำหนด Singleton Pattern ให้กับคลาส ในกรณีที่เราต้องการ share วัตถุของคลาสดังกล่าวกับทุก ๆ reference (ผมไม่เชี่ยวชาญด้าน Design Pattern มากนัก การอธิบายความหมายอาจจะไม่ตรงเป๊ะ ๆ นะครับ) คราวนี้มาดูกันว่า @Singleton ใน [...]
Posted
October 10, 2008
at
Grails66
JSR 166y กับ Groovy 1. JSR 166y คืออะไร jsr166y adds a lightweight task framework known as ForkJoin (FJ) to the Java platform. It is targeted for Java 7. 2. ForkJoin (FJ) คืออะไร ถ้าอธิบายง่ายๆ คือ - แบ่งงานกันทำ - รอจนทุกงานสำเร็จ - รวมผลลัพธ์จากการทำงานเข้าด้วยกัน Algorithm ที่ผู้พัฒนาเขาเขียนไว้เป็น pseudocode ดังนี้ Result solve( Problem problem ) { if( problem is small ) { directly solve problem } else [...]
Posted
October 16, 2008
at
Grails66
Blognone ลงข่าวเกี่ยวกับเรื่องนี้ไว้ โดยแหล่งข่าวคือ CIO.com ครับ และก็มี Groovy อยู่ในรายการของ 6 ภาษาที่น่าจับตามอง ผมไล่ย้อนไปดูที่ต้นเรื่อง เขาเขียนเกี่ยวกับ Groovy ไว้ประมาณ 3 ย่อหน้าสั้น ๆ จุดที่บทความเขียนไว้ก็คือ Groovy กำลังแย่งพื้นที่ของภาษาในชุมชนผู้ใช้ภาษาจาวา ตัวนิยามของภาษา Groovy ก็คือภาษาไดนามิคบน JVM ที่มีความแข็งของจาวารวมกับฟีเจอร์เชิงภาษาที่นำมาจาก Python, Ruby และ Smalltalk ฟีเจอร์เด่นของ Groovy ที่กล่าวไว้ในบทความ ซึ่งอ้างอิงถึงความเห็นหนึ่งจาก Slashdot คือ 1. ความสามารถในการคอมไพล์เป็น bytecode แล้วใช้ร่วมกับจาวา 2. คอมไพเลอร์ของ Groovy สามารถคอมไพล์ภาษาจาวาได้ และอีกกรณีนึงคือใช้ความสามารถของจาวา (ผมคิดว่าเขาพูดถึง รันไทม์ - chanwit) ได้เต็มที่โดยไม่ต้องยุ่งยากกับไวยากรณ์ของภาษาจาวา และ 3. ความเห็นนั้นก็ยังบอกไว้ว่าไม่แปลกใจเลยถ้าจะเห็น Groovy เข้ามาแทนที่ Python หรือ [...]
Posted
October 23, 2008
at
Grails66
จริง ๆ ก็ไม่ใช่ใครที่ไหนครับ NetBeans 6.5-RC1 นั่นเองครับ อย่างที่ทราบกันอยู่พักนึงแล้วว่า NetBeans 6.5 จะมาพร้อมกับการสนับสนุน Groovy และเกรลส์ Geertjan หนึ่งในทีมพัฒนา NetBeans เอาการใช้งานร่วมกันของ Groovy กับการพัฒนา Java Swing application ใน RC1 ของ NetBeans มาโชว์ให้ดูครับ เป็นคลิปความยาว 2 นาที ผมไม่ได้เป็นแฟน NetBeans เห็นแล้วยังประทับใจเลย งานนี้คอ NetBeans ห้ามพลาดครับ ที่มา Geertjan’s blog
Posted
October 30, 2008
at
Grails66
เป็นสัญญานที่น่าสนใจครับ blog ของซันตอนแนะนำ Java 6 update 10 ว่าทำงานกับ scripting language ได้สารพัด แต่เขาไม่ระบุ Groovy ลงไปครับ ไม่ใช่การลืมแน่ ๆ เพราะ ซัน ส่วนอื่นเช่น NetBeans, training ก็รักกันดีกับ Groovy และ Grails ผมมองต่อว่า อาจจะเป็นเพราะ Groovy + Swing Builder มัน simplify syntax ได้มากกว่า JavaFX รึปล่าว ซันเลยมอง Groovy เป็นคู่แข่งสำหรับฝั่ง desktop application ไปแล้วถึงขนาดไม่ยอมพูดถึงใน blog ? หมายเหตุ: Scala และ JRuby นั้นแทบจะไม่มีผลกระทบอะไรเลยกับ JavaFX ครับ เพราะไม่ได้เตรียม builder pattern ไว้ให้เลยแบบที่ Groovy [...]
Posted
November 11, 2008
at
Grails66
ซื้อกันไปแล้วครับ Grails66 ของแสดงความยินดีกับ Groovy และ Grails ในการเข้าเป็นส่วนหนึ่งของ Spring community ไว้ ณ โอกาสนี้ด้วย ที่มา http://www.springsource.com/g2one
Posted
December 02, 2008
at
Grails66
ใครใช้อยู่ update กันได้เลยครับรุ่นล่าสุดสนับสนุน Groovy 1.5.7 ครับ จาก James Ervin blog ลิงค์ update site สำหรับ Ecipse
Posted
December 02, 2008
at
Grails66
เป็น trick ที่น่าสนใจทีเดียวครับสำหรับการประกาศให้ class สนับสนุน iterator ในตัง Ted Naleid บล่อกแนะนำเรื่องนี้ไว้ โดยเขามีตัวอย่างการประกาศ class สำหรับเลขคู่ (Evens) ให้ตัว class นั้นสนับสนุน iterator ในตัวเลย ตามนี้ครับ class Evens { private numbers = [2,4,6] Iterator iterator() { return numbers.iterator() } } และเมื่อเราเขียน def e = new Evens() เราจะสามารถเรียกใช้ closure เช่น e.each { println it } ได้โดยตรงเลยครับ อ่านตัวเต็มได้จากที่นี่ครับ
Posted
December 17, 2008
at
Grails66
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 - [...]