NJUG (Narisa Java User Group) ครั้งที่ 5

พฤษภาคม 11, 2008 ที่ 11:51 pm | เขียนใน บันทึกงานสัมนา | 4 ความเห็น
ป้ายกำกับ:

พึ่งได้รับเมล์แจ้งงานสดๆ ร้อนๆ เมื่อวานนี้ ก่อนหน้านี้ไม่รู้เลยว่ามีงานแบบนี้ด้วย narisa ก็ไม่ได้เข้ามานานมากแล้ว เหอๆ ตอนแรกเห็นจั่วหัวว่า Java ก็เริ่มคิด “จะไปดีไหมวะ” ฮ่าๆ พอดีมีเทอมที่แล้วเรียน stuts มาแล้วไม่ค่อยปลื้มกับมันซักเท่าไหร่ ฮ่าๆ เหลือบไปดูหัวข้ออีกที่ “JRuby, Groovy, Ajax Coldfusion” เอาวะ ไปหน่อยดี น่าจะดี (เอิ๊กๆ) และแล้วกระผมก็กลายเป็นสาวก Ruby ไปเต็มตัวซะแล้ว เอิ๊กๆ 😀

วันนี้ออกจากบ้าน 8 โมงเช้า ไปถึง 9 โมงพอดีเพราะรถไม่ติด ถึงเร็วที่คาดไว้ ไปถึงต้องไปช่วยเค้ายกโต๊ะ โดยผู้จัดงานคุณ roofimon มีคติว่า “บริการตนเอง” สำหรับผู้เข้าร่วมงาน เหอๆ อันนี้ไม่ว่ากัน มีงานคุยกันฟรีๆ ก็แค่ไหนแล้ว 😀 หลังจากยกโต๊ะเสร็จ 9 โมงครึ่งก็แนะนำตัวกันเล็กน้อยโดยเขียนชื่อ username ในบอร์ด narisa ลงสติ๊กเกอร์แล้วแปะบนเสื้อเเพื่อให้รู้จักกัน ไอ้เราพอบอกว่ามาจากเกษตรเท่านั้นแหละ “เป็นลูกศิษย์ sugree รึเปล่า” ท่าจะดังจริงแฮะ พี่คนนี้ 😀 เป็นที่กล่าวขานและโจทย์จันกันมากจริงๆ เลยตอบไปว่า “ไม่เป็นลูกศิษย์ sugree แต่เป็นลูกศิษย์อาจารย์ภุชงค์ครับ” หุหุ เท่าที่ฟังโดยรวมเป็นนิสิตปริญญาตรีแค่ 30% ที่เหลือทำงานแล้วไม่ก็ปริญญาโท,เอก โอ… ยังเด็กเนอะเรา 😀 และพี่ roof แกก็บอกว่าที่ห่างหายจากครั้งที่ 4 มานานก็เพราะเืมียท้อง ต้องดูแลเมีย เหอๆ (แต่ครั้งที่ 4 ไอ้เรายังไม่ติดตามข่าว ฮ่าๆ) และสุดท้ายก้อแจกไม้บรรทัด UML ที่เจาะรูไว้วาด UML Diagram ต่างๆ ได้ (เท่ห์โคตร 😀 ชอบๆ ขอบคุณครับ ^^)

หลังจากนั้นประมาณ 9.45 คุณ roofimon ก็เริ่มพูดเรื่อง JRuby โดยเท้าความก่อนว่าภาษา script มีประวัติความเป็นมาอย่างไร ก็พึ่งรู้เหมือนกันว่าแบ่งประเภทได้ดังนี้
– shell script – พวกรวมชุดคำสั่ง execute ใน command line
– application script – macro ใน microsoft office ทั้งหลายนั่นเอง
– Web application script – php, asp บลาๆ
– General script – อันนี้ script ครอบจักรวาล สากกระเบือยันเรือรบ 😀 ได้แก่ python และ ruby นั่นเอง เขียนได้ตั้งแต่ desktop app ยัน web app

ต่อมาก็ประวัติภาษา ruby ก็ฟังเพลินดี สรุปง่ายๆ ว่าคนสร้าง ruby ที่เป็นชาวญี่ปุ่นเนี่ยเค้าเซ็งที่ perl 5 ไม่ออกซักที และไม่มี script ที่เป็น Object Oriented ดีๆ ซักกะตัว เลยเขียนเองซะเลย และต้องเป็นอัญมณีต่อจาก perl ด้วย(นั่น) เลยตั้งชื่อว่า ruby ซะเลย เหอๆ Ruby เขาว่าเป็นภาษาที่เน้นออกแบบออกมาให้อ่านง่าย สั้น กระชับ แต่ข้างในซับซ้อนมาก มีวิธีแก้ปัญหาเดียวกันได้มากมายหายวิธี จนกล่าวได้ว่าถ้าเอา code คนอื่นมาอ่าน ถึง code จะน้อยแต่มันซับซ้อนในความน้อยของมันนั่นเอง (อ่าวกรรม)

ส่วน Jruby สรุปง่ายๆ ว่าใช้ syntax ภาษา ruby เขียน code ออกมาแล้ว compile เป็น .class ใน java นั่นเอง ซึ่งก็คือ Java virtual machine (มันจะกลายเป็น .net เหมือนกันไหมเนี่ย เขียนภาษาอื่น compile เป็น .class ของ Java) และสามารถใช้ library ครอบจักรวาลที่มีหมดทุกอย่างของ java มาเขียนร่วมด้วยโดยคงความสวยงามของภาษา Ruby ไว้ 😀 เรียกว่า syntax เหมือนกัน แค่ compiler คนละตัว

ต่อไปเป็น list จุดเด่นของ Jruby ที่ผมจดสรุปมา
– copy code rails ไปรันบน JRuby on Rails ได้เลยโดยตรง โดยไม่ต้องแก้ code ใดๆ
– เรียก interface Java ได้โดยตรง
– มี function แปลงไปแปลงกลับระหว่างตัวแปรของ JRuby, Java
– เอา Java มาใช้ใน JRuby จะง่ายมาก แต่ในทางกลับกัน ถ้าจะเอา JRuby ดึงไปใช้ใน Java นี่ทำได้แต่โคตรยาก – -”
– เช่นกันเดียวกันถ้าเอา JRuby มาเขียน bean ละก็…
– ด้วยเหตุผลข้อเมื่อกี้เลยมีการออกแบบกรณีพิเศษ ถ้าเป็น Spring 2.0 จะมีตัวช่วยให้ดึง JRuby มาใช้ได้เลย รวมถึง Groovy ด้วย
– ปกติ Spring refresh controller ได้ยาก แต่ถ้าใช้ JRuby เป็น Controller แทนจะง่ายกว่ามาก
– ใช้คุณสมบัติ Open ของ Ruby ช่วยเขียน Method เพิ่มเองใน primitive class ได้
– แน่นอนว่าเมื่อก่อนช้า(โคตร) แต่เดี๋ยวนี้เร็วขึ้นแล้ว 😀

ต่อมา 10 โมงครึ่งมั้งเป็นเรื่อง Groovy ของคุณ CBlue (พึ่งรู้จักมันก็วันนี้แหละ)
Groovy ถูกออกแบบมาเป็นภาษา script ที่ใกล้เคียง java มาก (มีส่วนคล้าย javascript นิดนึงแต่เหนือกว่ามาก) ภาษานึงโดยที่ลดการพิมพ์ code ลงไปได้มากเช่นเดียวกับ JRuby เพื่อให้เหมาะสมกับการเขียน code แบบ agile จะลดความเข้มงวดของ syntax ลงมาก โดยคนที่จะมาศึกษา JRuby แต่ยังเสียดาย Java ที่เชี่ยวชาญมาก่อน ก็ใช้ตัวนี้เขียนแทน JRuby ได้เลย เพราะมัน compile เป็น .class ของ java เช่นกัน มันถูกออกแบบมาโดยเพื่อแข่งกะ JRuby โดยเฉพาะ เอิ๊กๆ มีจุดเด่นดังนี้
– มีคุณสมบัติ meta programming คือสามารถเพิ่ม method ขณะ runtime ได้เช่นเดียวกับ JRuby รวมไปถึงเพิ่ม method ให้ primitive class
– GDK (library ที่เพิ่มจาก java เพื่อภาษานี้โดยเฉพาะนั้นแหละ) ให้ method ตัวช่วยเพิ่มศํกยภาพจาก Java มาก
– ไม่จำเป็นต้องระบุ type ตัวแปร (แต่จริงๆ จะระบุก็ได้) อันนี้คุณสมบัติทั่วไปของภาษา script
– ถ้าเร็วไม่พอสามารถแปลงให้เป็น Java แล้วใช้งานโดยตรงได้เลย (อันนี้ขั้นตอนเป็นไงไม่รู้)
– ไม่บังคับประกาศ Exception (เย้ๆ :D)
– เพิ่มตัวแปรชนิด List, Map และคุณสมบัติ Operator Overload (เย้ๆ กำจัดจุดอ่อน Java ที่ด้อยกว่า C# :D) แต่พี่เค้าดันบอกใช้มากจะงง เหอๆ
– มีตัวช่วย parseXML ได้ง่ายมากๆ ประมาณว่าโหลดไฟล์ XML มาแล้วใส่ dot ซ้อนๆ กันตามลำดับ hierarchy ของ tag ที่ซ้อนกันได้เลย (ดูดีๆ)
– สามารถกำหนดภาษาประหลาดๆ เป็น command ได้เช่นภาษาไทย (!!!) “โปรด”, “ถ้า แล้ว” ฯลฯ (คำสั่งอาจผิดเพราะจำไม่ได้) แต่จะทำไปเพื่อ – -” (พี่เค้าบอกว่าเพื่อให้ customer อ่าน code แล้วพอรู้ว่ามันคืออะไรด้วย เหรอวะ – -“)
– ปัจจุบัน Groovy เร็วกว่า JRuby (เมื่ออาทิตย์ที่แล้วยังช้ากว่าอยู่ ฮ่าๆ พึ่งออกเวอร์ชั่นใหม่หลังงาน JavaOne)
– มีการทำ GRails เป็น Framework ที่ลอกแบบมาจาก Ruby on Rails เป๊ะๆ คุณสมบัติเหมือนกันทุกอย่าง แต่ base on Groovy แค่นั้นแหละ เหอๆ

อ้อ แล้วก็พี่ roofimon กะ CBlue จะกัดกันเรื่อยๆ เรื่อง Groovy เจ๋งกว่า Jruby หรือ JRuby เจ๋งกว่า Groovy บ่อยๆ 😀 รวมไปถึง Netbean (พี่ roofimon เป็นสาวก) กะ Eclipse (พี่ CBlue เป็นสาวก) ก็ยกออกมากัดกันเรื่อย – -” ส่วนเราก็สาวก Eclipse เนอะ 😀

ก่อนกินข้าวไปทักทายพี่ป๊อก (ppthera) หลังจากงาน Asia Open Source Software 2007 ก็ไม่เจอแกอีกเลย (เพราะ Barcamp ก็ไม่ได้ไป ติดงาน ฮ่าๆ) เม้าส์กะพี่แกสนุกๆ ขำๆ โม้เรื่องโปรเจคจบอาจารย์ภุชงค์ แล้วก็ไปกินข้าวถามพี่ CBlue ต่อให้อธิบายเรื่อง AOP ฟังรู้เรื่องนิดนึง(อีกส่วนมากที่ยังไม่รู้เรื่อง ฮ่าๆ) เค้าว่าให้นึกถึง Sequence Diagram ที่จะมีการวิ่งไปแล้ววิ่งกลับ AOP(Aspect Object Programming) ก็คือการจับหาตัว bar ของ sequence ให้เจอแล้วยัด event ว่าจะทำอะไรเข้าไปก่อนหรือหลัง bar นั้นนั่นเอง สรุปว่าเป็นการแก้ไข code ที่มีอยู่แล้วเพื่อเหตุผลอาไรซักอย่าง ฮ่าๆ ช่างมัน

ช่วงบ่ายฟังพี่ xcaliber พูดเรื่องเทคโนโลยีใหม่ๆ ช่วงแรกพูดเรื่อง Web as Service พวกบริการ online ทาง web service ได้แก่
– Amazon S3 – Storage online รับส่งข้อมูลผ่าน webservice ด้วยราคาถูกแสนถูก
– Amazon EC2 – Cloud Computing ก็ตัวช่วยประมวลผล คิดราคาตามการใช้งาน CPU จริง
– Amazon SimpleDB – Database นั่นแหละ คิดตามการ query ใช้จริงเช่นกัน
– Google App Engine – Database เช่นกัน แต่ใช้ฟรี แต่จำกัดที่ต้องเป็นภาษา python เท่านั้น และไม่ยืดหยุ่นเท่า SimpleDB

หลังจากนั้นเป็นข่าว Java เริ่มแอบหลับเพราะเสียงนุ่มเกินไป เหอๆ ตื่นอีกทีตอนดูวิดีโองาน JavaOne ที่เด่นๆ ก็
– โชว์ลาด Applet ออกจาก web browser มาแปะที่ Desktop ได้เลย และ applet ยังสามารถรันได้แม้ปิด Browser ไปแล้ว (Wow!) เห็นว่าเป็นการนำ Applet กะ Java Web start (ใช่ป่าวหว่า) มารวมกันเลยทำได้แบบนี้ ไม่ได้ใช้ของใหม่อะไร เค้าเลยว่า Applet กำลังจะคืนชีพ (รึเปล่า โปรดติดตามชมตอนต่อไป…)
– โชว์ JavaFX รวมทั้งความสวยงามของ interface ที่สามารถทำได้เทียบเท่า Flex/AIR แล้ว แต่ยังขาด Editor lnw อย่าง Flex Builder ที่ยังคงพัฒนาอยู่ (โปรดติดตามชมตอนต่อไปเช่นกัน)
– โชว์พลังการ render 3D (เฉยๆ แฮะ)

ช่วงต่อมาก็ ColdFusion 8 โดย iporsut จาก ii-studio (ที่ๆ เราหลอกไอ้ปลั๊กไปฝึกงานได้สำเร็จนั่นเอง ฮ่าๆ)
Coldfusion คือภาษา script อย่างนึงที่ออกแบบมาคล้าย HTML แต่มีอะไรหลายอย่างมากกว่านั้น แน่นอนว่ามันเคยเกือบจะตายไปครั้งหนึ่งแล้ว แต่ถูก Adobe จับมาปัดฝุ่นใหม่ และดัดแปลงให้ทำงานกับ flex ได้อย่างง่ายดาย เลยยังมีชีวิตรอดอยู่ได้เหมือนคืนชีพใหม่อีกครั้ง 😀 ดูจุดเด่นกันเลย
– มี component auto-suggest ให้เอง โดยการส่งตัวแปรชนิด list เข้าไปใน input textbox มันจะ gen script ให้เอง แล้วจะเหมือน google suggest
– มี grid ให้โดยโยนตัวแปรเข้าเช่นกัน (จาก Extjs ที่ผนวกรวมเข้าไป)
– สร้าง Class ให้อัตโนมัติ ทำให้ javascript สามารถสร้าง instance จาก class นั้นๆ เรียก method ที่สร้างด้วย ColdFusion ได้เลย
– รวม FCKeditor เป็น component richTextEditor tag ให้เรียกใช้ได้เลย
– มี tag ไว้ช่วยจัดการเรื่อง layout ให้ทุกอย่าง
– สรุปว่าเขียนเสร็จจะ gen javascript และ css ที่จำเป็นต้องใช้ให้เอง และ(น่าจะ) cross browser ให้เองอัตโนมัติอันเนื่องมาจาก component แต่ละตัวที่มันดึงมาใช้มัน cross browser ให้อยู่แล้ว
– สรุปว่า ColdFusion เป็นเหมือน framework ตัวนึงที่มี syntax เป็นของตัวเองนั่นเอง (แต่เสียตังซื้อนะจ๊ะ)

เรื่องสุดท้ายเกี่ยวกะ VOIP โดยพี่โดม อันนี้ไม่ขอเขียนถึงเนื่องจากความรู้ไม่มี และพี่แกพูดเร็ว(โคตร) แต่ฮามาก 😀 มีโทรศัพท์เข้ามาพี่แกรับสายแล้วพูดว่า “ตอนนี้พูดอยู่ เดี๋ยวโทรกลับนะ” แล้ววางหูบรรยายต่อเฉย นับถือในสปิริตพี่แกจริงๆ 😀

สุดท้ายก่อนกลับมีถ่ายรูปหมู่ และผมได้เดินเข้าไปหาพี่ป๊อกเพราะอยากขอนามบัตร แต่พี่แกบอกว่าไม่มี แล้วก็มือถือพี่แกก็ไม่มีเช่นกัน บอกว่าไม่จำเป็นต้องใช้ ไม่เห็นต้องมีเลย (อ้าว???)
ผม : “แล้วพี่ไม่ต้องมีโดนโทรตามเหรอครับ”
พี่ป๊อก : “อ่อ อันนั้นไม่จำเป็นหรอก คนโทรมาโวยเพราะโปรแกรมติด bug ก็ไม่มี”
ผม : “แสดงว่าโปรแกรมไร้ bug 100% เลยเหรอครับ”
พี่ป๊อก : ยิ้มๆ

พี่แกนี่เยี่ยมจริงๆ ฮ่าๆ

สุดท้ายงานนี้ได้ความรู้ไปเต็มๆ นับว่าได้ความรู้มากที่สุดงานนึงในบรรดางานสัมนาที่ไปมาเลยทีเดียว ขอบคุณพี่ๆ ทุกคนครับ ^^

Advertisements

4 ความเห็น »

RSS feed for comments on this post. TrackBack URI

  1. ไหนๆก็สาวก ruby ลองเข้าไปดู บล็อกของพี่ @punneng ดูนะ http://weblog.punneng.com

    ว่างๆก็แวะมาเล่นๆกะปลั๊กได้นะที่ ii-studio อิอิ แหล่งมั่วสุมของแปลก ที่ชาวบ้านเขาไม่ค่อยจะรู้จักกัน

  2. เขียนได้ละเอียดจริงๆ

  3. เขียนได้ละเอียดมาก เหมือนกับเป็นเครื่องบันทึกเสียงเลย… สุดยอด

    ผมสงสัยว่า อาจารย์ที่เกษตรฯ บรรยายเก่ง และ เร็วมากนะครับ ลูกศิษย์ เลย สามารถเก็บรายละเอียดได้เยอะ โดยไม่ตกหล่นเลย

    ขอบคุณครับสำหรับบทสรุป ที่ผมสามารถส่งให้น้องและเพื่อนๆ อ่านได้อย่างเห็น ภาพ

  4. พอดีเป็นหัวข้อที่สนใจอยู่แล้วครับ เลยตั้งใจฟัง แล้วจดๆ สรุปมาด้วย บวกกับความบ้าส่วนบุคคล อันไหนที่พิมพ์น้อย แสดงว่าสนใจน้อยครับ เหอๆ 😛


ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

บลอกที่ WordPress.com .
Entries และ ข้อคิดเห็น feeds.

%d bloggers like this: