วันจันทร์ที่ 17 ธันวาคม พ.ศ. 2555

ขี่จิงโจ้ รอบที่ 3-- มาแก้ไขโค้ดเพื่อให้ได้เวปอย่างที่คุณต้องการกันเถอะ ตอนที่ 1

ทิ้งค้างกันไว้นานเลยนะคะ จากบทความ Spring Roo ครั้งที่แล้ว คราวนี้คิดว่าจะพยายามหาเวลาว่างเขียนบล็อกให้ได้อาทิตย์ละครั้ง ก็เลยอยากมาต่อเรื่องที่ติดค้างไว้ซักหน่อยค่ะ

จากครั้งที่แล้วได้โชว์ชุดคำสั่ง 14 คำสั่ง ที่ใช้สำหรับสร้างเวปอย่างง่ายๆ บน Spring Framework กันไปแล้ว จุดประสงค์ก็เพื่อต้องการให้เห็นว่า แม้ Java เองก็มี scaffold มารองรับ ทำให้สร้างเวปได้ง่ายขึ้นเหมือนๆกับ dynamic language ภาษาอื่นๆเหมือนกันค่ะ (แต่เอาเข้าจริง Java จะค่อนข้างซับซ้อนกว่านะคะ)

หลังจากที่รัน 14 คำสั่งพื้นฐานเสร็จแล้ว เราก็จะได้เวปที่มีหน้าตาสีเขียวตาม Template ที่เค้าให้มา และก็อาจจะมีอีกหลายๆจุดในเวปที่ยังไม่ตรงกับความต้องการของเราจริงๆใช่มั้ยคะ
เริ่มต้น จะเห็นว่า Spring Roo สร้างโฟลเดอร์และไฟล์ต่างๆให้เราอัตโนมัติตามรูปนี้ค่ะ

 ทีนี้เราจะเริ่มมาปรับปรุงแก้ไขกันทีละจุด (อย่างง่ายๆ) เพื่อให้เหมาะกับการสร้างเวปอย่างง่ายนะคะ
1. ถ้าหากต้องการเปลี่ยนหน้าตา template / theme ของเวป เราก็คงต้องการเปลี่ยนไฟล์ CSS ที่ใช้ใช่มั้ยคะ สำหรับไฟล์ที่ทำหน้าที่เกี่ยวกับการแสดงผลหน้าตาของเวปนั้น จะอยู่ในโฟลเดอร์ WEB-INF/layouts ค่ะ


จะเห็นว่าในโฟลเดอร์ layouts มีไฟล์ default.jspx กับไฟล์ layouts.xml อยู่ซึ่งไฟล์ .jspx ก็คือไฟล์ theme ในเวปนั่นเองค่ะ ส่วนไฟล์ .xml จะเป็นไฟล์ที่กำหนดโครงสร้างว่า theme เวปเนี่ยจะมีไฟล์ .jspx อะไรบ้างที่จะเอามาใช้
เริ่มจากดูที่ไฟล์ layouts.xml ก่อนนะคะ ก็จะเห็นว่า โครงสร้างของ theme เวปแบ่งเป็นสองส่วนค่ะ คือ body กับ menu ไฟล์ .xml เนี่ยก็จะระบุว่า ส่วนของ body จะใช้ .jspx อะไร และส่วน menu ใช้ .jspx อะไร ซึ่งเราก็จะสามารถเปลี่ยนไฟล์ .jspx ที่ใช้ตามที่เราออกแบบได้ค่ะ

สำหรับไฟล์ default.jspx ก็จะเป็นรายละเอียดส่วนของ theme ในหน้าเวปทั้งหมด ซึ่งจะสามารถเพิ่มลิงก์ไฟล์ CSS และ Java Script ได้ค่ะ จะเห็นว่า Syntax ที่ใช้นั้นเป็น spring tag ดังนั้น เราจะต้องใช้ <spring:url> เพื่อกำหนดที่อยู่ลิงก์ของไฟล์ CSS / Java Script ก่อนที่จะ เพิ่มเข้าไปในหน้าเวป หากจะเพิ่มหรือเปลี่ยนไฟล์ CSS แก้ตรงคำสั่ง <link rel="stylesheet">
หากจะเพิ่มหรือเปลี่ยนไฟล์ Java Script ก็แก้ตรงคำสั่ง <script >
ส่วน Syntax อื่นๆทั่วไปก็เป็น HTML ธรรมดา ซึ่งสามารถที่จะปรับเปลี่ยนได้ตามใจเราต้องการ

อ่านต่อได้ที่ มาแก้ไขโค้ดเพื่อให้ได้เวปอย่างที่คุณต้องการกันเถอะ ตอนที่ 2

วันพุธที่ 5 ธันวาคม พ.ศ. 2555

รีวิว BB10 OS จากงาน BB Jam Asia 2012 และจาก Alpha B Device

คราวนี้มาพูดถึงรายละเอียดเนื้อหาในงานกันบ้างนะคะ เนื่องจากว่าไม่ได้จดรายละเอียดไว้มากนัก ก็จะขอเล่าแบบคร่าวๆเท่าที่พอจำได้ดีกว่า

ในส่วนของ General Session นั้นก็ พูดถึงแนวทางของ BB10 OS ที่เรียกได้ว่าเป็นไพ่ตายใบสำคัญของ RIM แล้วล่ะค่ะ เพราะทุ่มเทสุดๆเพื่ออนาคตของบริษัท ซึ่งทั้ง OS ตัวเต็มและ Device ก็เตรียมจะออกมาให้ยลโฉมกันเดือน ก.พ. ปีหน้านี้

สำหรับ Developer ก็มีทั้งโปรแกรม 10k commitment ซึ่งคือการที่ให้เหล่า developer ส่งโปรแกรมขึ้น app world ภายใน deadline ที่กำหนดไว้(ต้องลงทะเบียนว่าเราจะเข้าร่วมโปรแกรมนี้ก่อน) แล้วถ้าหากไม่สามารถทำรายได้ถึง 1,000$ ในหนึ่งปี ทาง RIM ก็จะจ่ายชดเชยส่วนที่ขาดให้ค่ะ

ต่อมาก็เรื่อง BB10 Gold SDK คือตัว API ฉบับสมบูรณ์สำหรับนักพัฒนาบน BB10 ที่จะออกมาให้เหล่า developer ได้ใช้กันในเดือน ธันวาคมนี้ และก็ยังมี Alpha C device ที่ถ้าใครลงทะเบียนขอไว้และสามารถส่ง application เข้า app world ได้ตามเงื่อนไขที่กำหนด ก็จะได้รับไปค่ะ

รายละเอียดเพิ่มเติม
https://developer.blackberry.com/builtforblackberry/commitment/
https://developer.blackberry.com/devalphac/

มีโปรแกรม appgenerator ที่จะทำการดึงข้อมูลจาก blogspot, facebook, twitter จาก account ของเรามาเป็นแอพให้อ่านกันผ่านมือถือได้อย่างง่ายๆด้วยค่ะ (อย่างบล็อกนี้ก็ดูผ่านมือถือที่เป็น BB ได้นะคะ โหลดมาฟรี ชื่อแอพ Ant-share ค่ะ)
เพิ่มเติม http://www.blackberryappgenerator.com/blackberry/

ซึ่ง RIM ยืนยันความรักที่มีต่อ developer ด้วยเพลงนี้


ถึงแม้ตัวเพลงกับทำนองถึงจะร็อคไปหน่อย แต่ความหมายฮาและน่ารักน่าหยิกเลยทีเดียว (เค้าจะมีอีกเพลงออกมา วันเปิดตัว BB10 ปีหน้าค่ะ)

ส่วนรายละเอียดเกี่ยวกับ BB10 คร่าวๆคือ รองรับคีย์บอร์ดภาษาไทยแน่ๆ สามารถพิมพ์ได้หลายภาษาในข้อความ และเพิ่ม keyboard layout ได้สูงสุด 3 ภาษา
ส่วนของ word suggestion ที่จะแสดงคำที่คาดเดาว่าเราจะพิมพ์นั้น ทำได้น่าสนใจมาก เพราะจะมีคำเพราะแทนที่เราจะกด space bar จะกลายเป็นใช้นิ้วปัดคำที่เราเลือกแทนค่ะ
พอพิมพ์ตัว g ก็จะเห็นว่ามีคำแนะนำปรากฎบนแป้น ดังรูป มีคำว่า Get, Good, Glad ถ้าเราชอบคำไหนก็แค่ใช้นิ้วปัดตรงแป้นคำนั้นแทนการกด space bar อย่างใน ios / android ค่ะ

พอปัดคำว่า Good ก็ได้จะแบบในรูป เสร็จแล้วก็จะมีการแนะนำคำต่อไปอย่างที่เห็นค่ะ

ตัว social application เองก็มี Social Hub ซึ่งเป็นการรวมเอา social network รายใหญ่ทั้ง 4 account มาใส่ไว้ใน BB10 แล้วก็แทนที่เราจะต้องพิมพ์ข้อความด้วยการล็อกอินเข้า app จริงๆก็สามารถทำผ่าน BB Social Hub ได้เลย รวมถึง notification และ message ต่างๆก็ทำผ่านโปรแกรมนี้ได้ค่ะ
ส่วนของ UI ก็คล้ายๆกับ playbook แต่ว่าเป็น UI สไตล์ที่เราชอบนะคะ เพราะว่า concept คือไม่ต้องกดปุ่ม back  เริ่มตั้งแต่ การเข้าหน้า home ก็ใช้ slide ขึ้นค่ะ ถ้าสไลด์เฉียงจะได้ คีย์บอร์ด ถ้าสไลด์ลงจะได้ระบบการโทรฯ เวลาเราเข้าไปในแอพต่างๆ จะกลับไปแอพอื่นๆ ก็ใช้สไลด์หมดเลย
รู้สึกว่ามันสะดวกต่อการใช้งานมาก
อย่างรูปนี้ พอเปิดเครื่องมาจะได้เป็นหน้าแรกก็ใช้นิ้วลากขึ้นบน

จะเห็นว่า ภาพค่อยๆเปลี่ยนไปเป็นหน้าแรกที่เก็บเมนูต่างๆ  สวยตรงที่ภาพค่อยๆเปลี่ยนทับจากเลเยอร์เดิม ทำให้เห็น 2 screen ซ้อนกัน

จนสุดท้ายก็จะได้เป็นหน้าหลักแบบนี้ค่ะ
ที่ชอบมากๆอีกอย่างคือ แนวคิด Flow ของเค้า ซึ่งมันก็คือ UI ที่ออกมา แสดงให้เห็นว่ารองรับ multi tasking อย่างแท้จริง เราสามารถเปิดแอพ stand by ไว้ได้สูงสุด 8 แอพ และถ้าเราเลื่อน screen ของหน้าที่เปิดใช้งานอยู่ จะเห็นว่ามันซ้อนทับกับ screen ของอีกหน้าจริงๆค่ะ
อันนี้เปิดส่วนของ Social Hub ไว้ก่อน แล้วจะกลับมาหน้าหลักก็แค่เลื่อนมาทางขวาค่ะ

อันนี้เป็นแอพที่ถูกเปิด stand by ไว้ ในหนึ่งหน้าจะมี 4 ไอคอนค่ะ มีได้สูงสุด 8 แอพ
สำหรับ session ย่อยๆ ส่วนใหญ่แล้วเราจะเข้าฟัง Native SDK ค่ะ ก็คงขอเว้นไว้ไม่เอามาอธิบาย เพราะเป็นเทคนิคย่อยๆของหมวดหมู่ต่างๆ ไม่ว่าจะเป็น PIM, Push otification, Camera and Video, Network connection, etc.
อ้อ ในตัว BB10 นี้จะไม่รองรับ JAVA API แล้วนะคะ แต่ก็สามารถ port แอพที่พัฒนาบน andriod มาใส่ใน  BB10 ได้ตามปกติ แล้วก็รองรับนักพัฒนา HTML5 , Adobe AIR ค่ะ

สรุปว่า ใครที่สนใจจะ develop แอพบน BB10 ก็สามารถอ่านรายละเอียดต่างๆได้ที่ https://developer.blackberry.com/
ส่วนใครที่เล็งๆอยู่ว่าจะใช้ BB ดีมั้ย เค้าก็จะมีขายเครื่องทั้งแบบมีปุ่มกด และไม่มีนะคะ แล้วก็โฆษณาว่าจะเปิดตัวด้วย app world ที่มีแอพเยอะมากเลยล่ะค่ะ อันนี้ก็ต้องรอดูกันต่อไป แล้วก็ไปลองใช้ BB10 OS ดูก่อนว่าชอบใจ ใช่แนวหรือเปล่า รอทดสอบกันได้เดือน กุมภาพันธ์ปีหน้านี้แล้วค่า

เข้าร่วมงาน BB Jam Asia 2012 ที่กรุงเทพฯ

ได้มีโอกาสเข้าร่วมงาน Blackberry Jam Asia เป็นครั้งแรก ก็เลยอยากมาแชร์ประสบการณ์ ก่อนอื่นต้องขอบคุณ SIPA ที่ให้โอกาสลงทะเบียนได้ฟรีนะคะ เพราะปกติแล้วงานนี้จะต้องเสียค่าลงทะเบียน ประมาณ 20$ แต่มีส่วนลดสำหรับคนที่เคยเข้าร่วมงานมาแล้ว หรือคนที่เป็นนักศึกษาอาจารย์ค่ะ

จริงแล้ว งาน Blackberry Jam นี่จะวนไปจัดตามประเทศต่างๆเป็นตัวแทนของแต่ละทวีป ซึ่งปีที่แล้วประเทศไทยน้ำท่วมเลยต้องไปจัดที่สิงคโปร์ ปีนี้ก็เลยจัดที่เมืองไทยของเราตามสัญญา งานก็มี 2 วัน คือ 29-30 พ.ย. ไปกันตั้งแต่เช้าจนเย็นค่ำไม่อยากจะกลับกันเลยทีเดียว

งานนี้เป็นงานที่จัดขึ้นเพื่อรวบรวมเอานักพัฒนาแอพพลิเคชั่นบน BB platform มาเจอกัน ซึ่งจะมี General session ที่พูดถึงเรื่องรวมๆเกี่ยวกับแผนการผลิตภัณฑ์ของ BB เอง และแนวทางต่างๆ ต่อจากนั้น ก็จะแบ่งเป็นห้องๆ ที่จะมีวิทยากรมาพูดแบ่งตามหัวข้อต่างๆ ซึ่งจะลงรายละเอียดถึงโครงสร้างของการพัฒนาแต่ละจุดใน BB  และถึงแม้ใครจะไม่ใช่ BB developer ก็ยังสามารถเข้าร่วมได้นะคะ เพราะว่าหัวข้อที่พูดบางหัวข้อก็เป็นแบบพื้นฐานทั่วๆไป หรือใครที่มีพื้นอยู่แล้วก็เข้าฟังหัวข้อที่เป็นขั้นสูง หรือเข้าห้องแลปเขียนโค้ดกันก็ได้

สำหรับรูปแบบการจัดงาน ต้องขอชมเชยว่าจัดได้ดีมากเลย ตั้งแต่ระบบการลงทะเบียนออนไลน์ การให้เราสามารถเลือก session ที่เข้าฟังได้ออนไลน์(เป็นการจองที่นั่ง) เรียกว่าจัดตารางการเข้าร่วมงานของตัวเองได้ตามใจชอบก่อนจะถึงวันงานจริง และก็แม้กระทั่งวันงานเองก็แค่ล็อกอินเข้าระบบก็ถือว่าลงทะเบียนเรียบร้อยแล้ว รับป้ายชื่อ เสื้อแจกฟรี(ที่เป็นธรรมเนียมของงานเหล่าๆนี้ไปแล้ว) ทำให้รวดเร็วทันใจดีจริงๆ และที่พิเศษคือมีการแจก BB Alpha B device ให้กับ developer ที่มีคุณสมบัติผ่านตามเกณฑ์ ซึ่งก็คิดว่าน่าจะคัดมาจากประวัติในใบลงทะเบียนนั่นเอง

แม้กระทั่งภายในงานเอง การเข้าฟังแต่ละ session ก็สะดวก มีการสแกนบาร์โค้ดที่ป้ายชื่อทำให้รู้ว่าใครเข้าฟังห้องไหน(มีห้องสำหรับฟังเลคเชอร์ทั้งหมด 4 ห้อง และแลป 2 ห้อง) ถ้าใครจองที่นั่งไว้ก็จะเข้าได้เลย แต่คนที่ไม่ได้จองที่นั่งไว้จะต้องรอจนกว่าจะถึง 5 นาทีก่อนเริ่มพูด ถึงจะเข้าห้องได้ค่ะ ในห้องจะมีกระดาษกับดินสอเตรียมไว้ให้สำหรับคนที่ต้องการจด

ส่วนเรื่องการเลี้ยงรับรอง เรียกว่างานนี้ไม่ท้องแตกไม่เลิกกิน เพราะอาหารกลางวันเป็นบุฟเฟต์ มีทั้งอาหารฝรั่ง ไทย ญี่ปุ่น คาวหวาน มากันครบ ช่วงพักเบรกก็มีอาหารว่าง น้ำผลไม้สดๆ ให้ทานกันตลอด รวมถึงในห้องที่ฟังเลคเชอร์แต่ละห้องก็จะมี น้ำดื่มแบบขวด วางไว้ให้หยิบดื่มแก้กระหายกันตลอดทั้งงาน ซึ่งตอนเย็นของวันแรกจะมีปาร์ตี้ด้วยค่ะ (แต่เราไม่ได้เข้าร่วม เสียดายง่ะ T T)
มุมโปรดที่เราฟาดเรียบทุกวัน
หลังจากงานจบ ก็จะมี online survey ให้เราทำการประเมินมีทั้งประเมินในแต่ละ session ที่เราได้เข้าฟัง รวมถึงประเมินการจัดงานด้วยค่ะ ในวันที่สองนี้ พอเราทำประเมินเสร็จเค้าก็จะแจกของที่ระลึกให้
รวมมิตรของฝากจากงาน BBJam Asia มี Mobile alpha device , Funduino microcontroller board,  ปากกา และลูกบอลคลายเครียด (จริงๆได้ บัตรรถไฟ MRT มูลค่า 150 บาทมาด้วยล่ะ)


สรุปการเข้าร่วมงานนี้ โดยส่วนตัวขอบอกว่าประทับใจมาก แต่ก็ต้องบอกก่อนว่าไม่เคยเข้าร่วมงานใหญ่ๆอย่างนี้มาก่อน งานอื่นที่เคยไปมาก็คิดว่าเล็กกว่า และจัดรูปแบบได้แตกต่างออกไป ที่ประทับใจไม่ใช่แค่ของหวาน ที่กินจนพุงกางนะคะ ^ ^ แต่ว่าประทับใจระบบการจัดงานที่จัดการได้ดี รวดเร็ว สะดวกต่อการให้บริการ และการดูแลผู้เข้าร่วมงานที่ดีของ staff ทุกๆท่าน เพราะมี staff ทุกจุด มีการสอบถามเราก่อนที่เราจะเอ่ยปากถามด้วยค่ะ service ดีจริงๆ

ที่สำคัญ แค่ความรู้ๆต่างๆที่ได้ ก็คุ้มค่ามากแล้วค่ะ เพราะวิทยากรส่วนใหญ่เป็นระดับมืออาชีพจาก RIM เองทั้งนั้น อีกทั้งยังแบ่งหัวข้อที่พูดตามระดับความยากง่าย ทำให้เราเลือกฟังได้เหมาะสมตามพื้นความรู้ของเราค่ะ
ครั้งหน้าถ้ามีโอกาสได้เข้าร่วมงานนี้อีก คิดว่าเราคงไม่พลาดแน่นอนค่ะ :)

สำหรับใครที่สนใจอยากรู้ว่า สรุปเนื้อหาที่พูดในงานมีอะไรบ้าง รออ่านบล็อกหน้านะคะ รู้สึกว่าบล็อกนี้จะยาวไปแล้ว

วันจันทร์ที่ 14 พฤศจิกายน พ.ศ. 2554

มือใหม่หัดปั้นบัวลอยเบญจรงค์

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

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

วันต่อมา... ยายกับเราสองคนก็ปิ๊งไอเดียอยากทำขนมบัวลอยไว้กินกัน ที่สำคัญต้องเป็นบัวลอยไข่เต่าด้วย ไปซื้อของมาเตรียมไว้เสร็จสรรพ แต่...ดูทีท่าเหมือนว่าจะได้กินนาบกระทะอีกวัน
แม่เรายังถามว่า จะหัดทำไปทำไมขนมบัวลอย เหอๆๆ คงรู้ว่าจะไม่สำเร็จ (จริงๆแม่เราทำบัวลอยอร่อยนะ)

แต่โชคยังเข้าข้าง เมื่อน้าของเราซึ่งมีฝีมือในการทำขนมอย่างมาก มาทำธุระที่บ้านพอดีก็เลยขอให้น้าเป็นครูสอนทำขนมบัวลอยซะเลย
เราลืมคิดไปว่าจะมาโพสลงบล็อค เลยไม่ได้ถ่ายขั้นตอนการทำเอาไว้ และไม่ได้จัดใส่ถ้วยแก้วให้ดูสวยงาม มีแต่รูปจากถ้วยที่เรากินนี่แหละ ฟาดไปสองวัน วันละสามมื้อหลังอาหาร ลืมอ้วนกันเลยทีเดียว

ที่เราทำเป็นขนมบัวลอยเบญจรงค์นะคะ ก็คือมีห้าสี และเป็นบัวลอยไข่เต่า เพราะยัดไส้ถั่วลิสงคั่วลงไปด้วย

ขั้นตอนการปั้นเม็ดบัวลอย
  1. เทแป้งข้าวเหนียวลงในภาชนะใหญ่ๆ นำหัวกะทิเทลงไปผสมทีละนิดๆ เราใช้หัวกะทิเพราะจะทำให้แป้งนิ่ม นวดไปจนแป้งนิ่มได้ที่พอสำหรับปั้นเป็นเม็ด ไม่ให้แป้งเหลวหรือแข็งเกินไป
  2. ถ้าหากจะผสมสี ก็ใส่ในขั้นตอนนี้ เราใช้สีเขียว คั้นน้ำจากใบเตย สีฟ้าจากน้ำดอกอัญชัญ สีชมพูจากน้ำเฮลบลูบอย ส่วนสีเหลือง เราเอาฟักทองนึ่งมาตักเอาแต่เนื้อแล้วบดผสมลงในแป้ง   (ถ้าใครจะผสมเนื้อฟักทอง หรือเนื้อเผือกลงไป อย่าผสมเยอะนะคะ เพราะจะทำให้เหลวเกินไป ไม่มีแป้ง ใส่พอประมาณกับปริมาณแป้ง)
  3. ปั้นให้เป็ดเม็ดกลมๆ ขนาดไม่เล็กเกินไป เพราะเวลาต้มจะเละ และไม่ใหญ่เกินไปเพราะจะต้มไม่สุก 
  4. ถ้าหากจะทำบัวลอยไข่เต่า ให้คั่วถั่วลงสงรอไว้ก่อน คั่วให้สุกหอมดี แล้วเวลาปั้นเม็ดบัวลอย ก็ยัดไส้ด้วยถั่วลิสงหนึ่งซีก
ขั้นตอนการทำน้ำกะทิ

  1. ต้มหางกะทิให้เดือด เติมน้ำตาลทรายลงไป ชิมให้หวานพอชอบใจ เติมเกลือนิดหน่อย
  2. ถ้าหากจะใส่ไข่ ให้ตอกไข่ใส่ในขั้นตอนนี้
  3. เติมหัวกะทิลงไปในหม้อ พอเดือดยกลง (ถ้าใครชอบหอม ก็ใส่ใบเตยลงไป)

ตรงน้ำกะทิ จะต้องหวานมันกำลังดี ถ้ากะทิน้อยจะขาดความมัน ขนมจะไม่อร่อย

ขั้นตอนการต้มเม็ดบัวลอย

  1. ต้มน้ำเปล่าพอเดือด นำเม็ดบัวลอยที่ปั้นไว้ใส่ลงไป
  2. ใช้กระชอนคนเรื่อยๆไม่ให้ติดกะทะ แล้วเมื่อเม็ดขนมลอยขึ้น แสดงว่าสุกดี ก็ใช้กระชอนตักเม็ดขนมขึ้นมา ราดด้วยน้ำเปล่าอุณหภูมิห้องหรือน้ำเย็นหนึ่งครั้ง (ใครจะแช่น้ำเลยก็ได้) ก่อนจะนำไปเทใส่หม้อน้ำกะทิที่ทำไว้

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

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

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

นั่งเงียบๆกัน จนเวลาผ่านไปสักพัก
ยาย:        หิวแล้ว ไม่มีของหวานๆอะไรเลย ทำนาบกระทะกินกันเหอะ ง่ายดีเร็วด้วย กล้วยสุกบ้านเรามีหลายลูก
สุดท้ายก็ได้กิน ขนมนาบกระทะ เหอๆๆ

วันพุธที่ 21 กันยายน พ.ศ. 2554

ขี่จิงโจ้ รอบที่ 2 -- โชว์ขั้นตอนการสร้างเวปอย่างง่าย

ทีนี้เราจะมาดูขั้นตอนการสร้างเวปใน 5 นาทีกันนะคะ กับ 14 command line ที่ให้ไว้เมื่อรอบที่แล้ว
สำหรับรูปที่จะนำมาโชว์เนี่ย จะเป็นรูปจากการพัฒนาบน Spring Source Tool Suite  (STS) นะคะ ซึ่งก็คือ eclipse เวอร์ชันสำหรับ Spring นั่นเองค่ะ

สำหรับใครที่ยังไม่มีอุปกรณ์ในการขับขี่เจ้า Roo ก็อย่าลืมไปโหลดมาไว้ในเครื่องนะคะ ก็มี 5 อย่าง คือ

  1. Java 6 JDK
  2. Apache Maven
  3. Spring Roo
  4. Spring Source Tool Suite (STS)
  5. Database Management Tool (ในที่นี้ใช้ Microsoft SQL Server 2008 นะคะ)
สำหรับ STS จะไม่ใช้ก็ได้ค่ะ เพราะเราสามารถใช้ command line ของเจ้า Roo ผ่านหน้า Dos ดำๆก็ได้ แล้วก็ค่อย export มันเพื่อไปใช้กับ eclipse อีกทีก็ได้ค่ะ แต่ถ้าจะให้ดี แนะนำว่ามีดีกว่า เพราะมันครบเครื่องกว่าเยอะค่ะ อิๆๆ เมื่อพร้อมแล้วเราก็มาจัดการใช้งานเจ้า Roo กันได้เลยค่ะ

เริ่มจากการสร้าง Roo project ใน STS




พอสร้างเสร็จก็จะมี Roo shell ขึ้นมาให้เราใช้ command line กันได้แบบนี้


จากรอบที่แล้ว ให้ command line ไว้ 14 คำสั่งใช่มั้ยคะ ซึ่งคำสั่งแรกจะเป็นการสร้างโปรเจคค่ะ ดังนั้น เราก็ตัดออกไปได้เลย ทีนี้เราจะมาจัดการกับ 13 คำสั่งที่เหลือแทนค่ะ

persistence setup เป็นคำสั่่งในการสร้างตัวกำหนดเงื่อนไขการติดต่อฐานข้อมูลนะคะ ในที่นี้เราเลือกติดต่อกับ Microsoft SQL Server ค่ะ ก็จะเห็นว่าเป็น MSSQL
และเราก็เปิดไฟล์ database.properties มาแก้ไขรายละเอียดในการติดต่อกับฐานข้อมูลกันค่ะ

เมื่อเราใช้คำสั่ง entity --class ก็จะเป็นการสร้างคลาสใหม่ ซึ่งตอนนี้เราสร้างคลาส ExpenseCategory ก่อนนะคะ
เมื่อสร้างคลาสเสร็จเราก็ใช้คำสั่ง field สร้างตัวแปรเพื่อเก็บข้อมูลชื่อของหมวดหมู่รายการที่จ่าย ชื่อ name เป็นชนิด string จากสองคำสั่งนี้จะเห็นว่า เจ้า Roo สร้างไฟล์ .java ที่เป็นคลาสให้กับเราและมีตัวแปรตามที่เรากำหนดไว้นะคะ
เช่นเดียวกันค่ะ เราก็ทำกับตารางเก็บข้อมูลรายจ่ายบ้าง ก็สร้างคลาส RecordExpenses ด้วยคำสั่ง entity --class และสร้างตัวแปรด้วยคำสั่ง field ซึ่งก็จะเห็นว่าชนิดของตัวแปรแตกต่างกัน มีทั้ง String , number ส่วน reference นั่นคือการบอกว่าตัวแปรนี้อ้างอิงกับคลาสอีกคลาสนึง (ซึ่งก็คือ ExpenseCategory)
นี่คือรูปร่างหน้าตาของคลาสที่สร้างขึ้นมาโดยอัตโนมัติ ด้วยฝีมือเจ้า Roo ค่ะ
เมื่อเรามีคลาสและตัวแปรไว้ใช้รองรับการเก็บข้อมูลแล้ว เราก็จะมาสร้างหน้าเวปกับส่วนคอนโทรลกันค่ะ ด้วยคำสั่ง controller ซึ่งในที่นี้เราใช้ all เพื่อจะบอกว่าให้สร้างเวปสำหรับทุกคลาสเลยค่ะ
เพิ่มระบบความปลอดภัยนิดนึงด้วยการใช้คำสั่ง security setup ก็จะทำให้เราได้หน้า login เพิ่มขึ้นมา และนอกจากนี้เรายังกำหนดได้ด้วยนะคะว่าจะให้ผู้ใช้คนไหนมีสิทธิได้เท่าไหร่ เข้าหน้าเวปไหนได้บ้าง ด้วยการกำหนดที่ path ที่ไปยัง controller ต่างๆค่ะ แก้ไขได้ที่ไฟล์ applicationContext-security.xml
หลังจากนั้นก็ใช้คำสั่ง perform tests เพื่อสร้างคลาส test และทดลอง build นะคะ ถ้าเรียบร้อยดีแล้วเราก็มาดูผลงานกันได้เลยค่ะ
อันนี้เป็นหน้าแรกของเวปนะคะ 
ทดลองเพิ่มหมวดหมู่รายการที่ซื้อซักหน่อย
วันนี้กินผัดไทยหมูแดง อร๊อยอร่อย ราคา 30 บาทเอง ต้องบันทึกซักหน่อยแล้วล่ะ

แสดงรายละเอียดได้ครบถ้วน และถูกต้อง เก่งมากเจ้า Roo
ถึงตรงนี้ ถ้าดูจากรูปอาจจะสงสัยว่าเอ๊ะ แล้วหน้า login หายไปไหนล่ะ แล้วทำไม category ถึงไม่แสดงแต่ชื่อหมวดหมู่ว่า อาหาร จะโชว์ id กับ version ทำไม 

อย่าเพิ่งใจร้อนนะคะ ไว้ครั้งหน้าเราจะมาดูกันว่า การปรับเปลี่ยนจากหน้าเวปที่ได้มาพื้นฐานแบบนี้ จะให้เป็นตามใจฉันอีกที ต้องทำอะไรตรงไหนบ้าง
สำหรับวันนี้ไปนอนก่อนแล้วค่ะ ง่วงมากมาย ฝันดีนะคะ :)

ขี่จิงโจ้ รอบที่ 1 -- โชว์การเขียนเวปใน 5 นาที

กว่าจะอัพบล็อกวันนี้ได้เหนื่อยแฮก ต้อง capture screen เพียบเลย บวกกับความรู้อันน้อยนิดของเรา ทำให้เราต้องไปจัดการเซฟรูปในโปรแกรม Paint ค่ะ (ขอขอบคุณ paint อย่างมากที่ช่วยชีวิตไว้) แต่ว่ารู้สึกว่ามันไม่ค่อยสะดวกเลย ใครมีคำแนะนำบ้างมั้ยคะ (photoshop ไม่มีในเครื่องนะคะ อิๆ)

ตอนนี้พร้อมแล้วค่ะที่จะมาขี่จิงโจ้โชว์ เป็นการยั่วใจกันก่อน ต้องทำการเรียกผู้ชมให้หลงผิด(เอ้ย ม่ายช่าย)  และพระเอกของวันนี้ชื่อ Roo1.02 ค่ะ  ฮ่าๆๆ เก่าได้ใจมั้ยคะ อันที่จริงตอนนี้ก็น่าจะเป็น 1.1.5 แล้วล่ะค่ะ แต่เราอนุรักษ์ความโบราณเอาไว้ (อันที่จริง ได้ข่าวว่าขี้เกียจโหลดมาใหม่นะเรา)

สำหรับวันนี้จะยังไม่ขออธิบายในรายละเอียดโครงสร้างของเจ้า Roo นะคะ จะขอแค่มาโชว์เดี่ยวอย่างเดียวก่อน เพราะอยากให้เห็นถึงความเร็วก่อนค่ะ ส่วนไอ้เรื่องยากๆ เอาไว้ท้ายๆดีกว่า ฮ่าๆๆ

วันนี้เราจะสร้างเวปสำหรับบันทึกรายจ่ายประจำวันกันค่ะ (เงินทองต้องใส่ใจใช่มั้ยคะ) เอาเป็นระบบง่ายๆก่อนละกันนะคะ อย่างในรูปนี้


ก็จะเห็นว่าเราจะทำการสร้างฐานข้อมูลที่มีตารางเก็บข้อมูลสองส่วน คือ
หมวดหมู่ของรายการที่จ่าย (Expense Category)
กับบันทึกรายจ่ายประจำวัน (Record Expenses)

และเราก็จะต้องมีหน้าเวปที่สามารถเพิ่มบันทึกรายจ่ายประจำวันได้อย่างในรูป
และแน่นอนค่ะ สูตรสำเร็จพื้นฐานของการสร้างเวปแอพพลิเคชั่น ก็คือ จะต้องมี ส่วนของการ เพิ่ม แก้ไข ลบ และเรียกดู ข้อมูล อย่างแน่นอน

ทีนี้เราก็จะมาดูกันว่า Roo จะทำทั้งหมดนี้ให้เราได้อย่างไร

อย่างที่บอกว่าวันนี้จะมาโชว์อย่างเดียวนะคะ ดังนั้น เราจะโชว์การสร้างเวปจากโจทย์ข้างบนอย่างง่ายๆภายใน 14 คำสั่งนี้กันค่ะ

project --topLevelPackage antshare.tutorial.expenses
persistence setup --provider HIBERNATE --database MSSQL
entity --class ~.domain.ExpenseCategory --testAutomatically
field string --fieldName name --notNull --sizeMin 2 --sizeMax 255
entity --class ~.domain.RecordExpenses --testAutomatically
field date --fieldName recordDate --notNull --type java.util.Date
field reference --fieldName category --type ~.domain.ExpenseCategory
field string --fieldName name --notNull --sizeMin 2 --sizeMax 255
field number --fieldName number --notNull --type java.lang.Integer
field number --fieldName price --notNull --type java.lang.Float
field number --fieldName total --notNull --type java.lang.Float --transient
controller all --package ~.web
security setup
perform tests
ใช้เวลาในการรันคำสั่งทั้งหมดนี้ไม่เกิน 5 นาที เราก็จะได้เวปสำหรับบันทึกรายจ่ายในชีวิตประจำวันอย่างง่ายๆแล้วล่ะค่ะ




สำหรับรายละเอียดรูปภาพในการทำแต่ละขั้นตอน เดี๋ยวอธิบายใน โชว์รอบที่ 2 นะคะ รูปเยอะมากๆค่ะ ^^

วันเสาร์ที่ 17 กันยายน พ.ศ. 2554

Spring Roo ผู้ช่วยให้การเขียนเวปบน Java เป็นเรื่องง่าย

หลังจากที่ได้ปลุกปล้ำถลำลึกกับการทดลองของเล่นน้องใหม่ ในตระกูลจาวามาได้ปีกว่าๆ เราก็คิดว่า เอาหละ มันถึงเวลาแล้ว ที่ควรจะบันทึกเรื่องราวดราม่าอันเข้มข้น ของ Spring Roo ออกสู่สายตาประชาชนชาวไทยเสียที (อิๆ อันนี้ก็เวอร์)
[ที่มา รูปภาพ http://www.springsource.org/roo ]

เรื่องของเรื่อง ก็คือว่า เราอยากแบ่งปันและแลกเปลี่ยนความรู้มากกว่าน่ะค่ะ เพราะว่าเราเองก็ไม่ได้เชี่ยวชาญอะไรนัก แต่ก็รู้สึกว่า เจ้า Roo นี่มันก็ดีใช้ได้ ก็เลยคิดว่าจะเริ่มเขียนบทความเกี่ยวกับสิ่งที่ตัวเองรู้มาจากเจ้า Roo เนี่ยแหละค่ะ ที่สำคัญมันก็ได้กลายเป็น document ภาษาไทยชั้นดีสำหรับตัวเราเองด้วย

สำหรับท่านใดที่อ่านบทความเกี่ยวกับเจ้า Roo แล้วรู้สึกว่ามีตรงไหนที่ผิดพลาด หรือควรแก้ไข หรืออยากแบ่งปันความรู้กัน หรือมีข้อแนะนำดีๆ เรายินดีรับฟังนะคะ เพราะอย่างที่กล่าวไว้ตั้งแต่แรกว่า ตัวเราเองก็เป็นแค่มือใหม่หัดขี่เจ้า Roo ค่ะ

เห็นเราเรียกเจ้า Roo คงจะสงสัยว่าทำไมมันขี่ได้ใช่มั้ยคะ ก่อนอื่นอยากจะเกริ่นนิดๆ พอเป็นน้ำจิ้มก่อนว่าเจ้า Roo เนี่ยมันเป็นใคร 

จริงๆแล้ว ทีมนักพัฒนาเค้าตั้งชื่อเต็มๆให้มันว่า Spring Roo ค่ะ และคำว่า Roo เนี่ยก็มาจาก Kangaroo ที่แปลว่า จิงโจ้ นั่นแหละค่ะ ทีนี้ก็เดาได้เลยใช่มั้ยคะว่า เจ้า Roo เนี่ยเกิดที่ไหน แต่นแตนแต๊น... แน่นอนค่ะว่า ประเทศไทยนี่เอง เอ้ย..ไม่ช่ายยยย (มันจะตลกไปแล้วหล่ะ)

ทีนี้ความสามารถของมันเป็นอย่างไร ชื่อมันคงไม่สามารถบอกอะไรได้ใช่มั้ยคะ เจ้า Roo เนี่ย ถูกพัฒนาขึ้นมา เพื่อช่วยให้การเวปด้วยภาษาจาวา บน Spring Framework เป็นเรื่องง่ายขึ้น และไม่ใช่แค่เพียงเท่านั้น เมื่อคุณใช้ Roo วันนี้ คุณจะพัฒนาเวปบน Spring Framework ได้เร็วขึ้นกว่าเดิมอีกหลายเท่าตัวเลยทีเดียว

ประโยคคุ้นๆเหมือนโฆษณาพวก direct sale มั้ยคะ อิๆ แต่ว่า...เราไม่ได้พูดเกินจริงเลยค่ะ เจ้า Roo เนี่ยช่วยให้เขียนเวปด้วยจาวาได้เร็วขึ้นจริง  ถ้าหากใครเคยพัฒนา Ruby on Rails ที่ว่าเร็ว และแรง หรือจะเป็น Python on Django ที่ทำให้คุณติดใจกันมาแล้ว วันนี้ Spring Roo จะเข้ามาอยู่ในอ้อมอกอ้อมใจของคุณได้ไม่ยากเลยค่ะ (ถ้าไม่เกลียดจาวามาก่อนนะคะ)

แต่ว่า...ถ้าใครที่อาจจะรู้สึก เอ๊ะ!! อยู่ในใจ เราก็อยากจะบอกว่า ที่เขียนมาไม่ได้จะบอกว่าใครดีกว่าใครนะคะ Ruby, Python, Spring etc. ต่างก็มีข้อดีข้อเสียของตัวเองทั้งนั้น ไม่อยากเปรียบเทียบให้ขัดใจกันหรอกค่ะ แต่ที่ต้องการสื่อจริงๆก็เพียงว่า ความซับซ้อนในการเขียนเวปด้วยจาวาทั้งปวง เจ้า Roo มันช่วยปกปิดไว้ ทำให้เราเขียนเวปได้เร็วขึ้นเท่านั้นเองค่ะ


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

เอาหละ เราขอโปรยคำโฆษณาอันสวยหรูไว้แค่นี้ก่อนนะคะ แล้วครั้งหน้า เราจะมาให้ข้อมูลเพิ่มเติมว่า เจ้า Roo นี้กระโดดได้เร็ว และขี่ได้ง่ายสมคำชมหรือเปล่าค่ะ บ๊ายบาย