Friday, October 20, 2006

IOC in Tapestry 5

ใน Tapestry 5 นี้
Howard (คนเขียน) เขาจะ implement IOC ขึ้นมาเอง
(เดิมใช้ Hivemind อยู่, ถ้าจะท้าวความให้ลึกอีกหน่อย
Hivemind เกิดขึ้นเพราะต้องการให้เป็น infrastructure ของ Tapestry)
ประเด็นก็คือ เขาไม่มีเวลาพอที่ maintain Hivemind ในรูป Generic IOC container
เพราะต้องการที่จะ customize IOC สำหรับ Tapestry โดยเฉพาะ

แนวของ IOC ตัวใหม่นี้ จะลดการใช้ XML ลง
ลองดูตัวอย่างการ inject แบบนี้ดู น่าสนใจดี
public static Indexer buildIndexer(
@InjectService("JobScheduler") JobScheduler scheduler,
@InjectService("FileSystem") FileSystem fileSystem)
{
IndexerImpl indexer = new IndexerImpl(fileSystem);

scheduler.scheduleDailyJob(indexer);

return indexer;
}


แน่นอน ข้างบนนี้เป็นทางเลือกแบบหนึ่ง
แบบที่คนจำนวนหนึ่งชอบ ก็คือ automatic wire โดยไม่ต้อง config เลย
ก็มีเหมือนกัน

Related link from Roti

ไปสัมมนา BiZIT

เมื่อวันพุธแอบเปลี่ยนบรรยากาศ แว่บไปงานสัมมนาของ BiZIT มา
ในงานก็เจอน้อง OHM ที่เปลี่ยนบรรยากาศมาจากโคราช
(เจอกัน เพราะเป็นพวกนั่งแถวหน้าเหมือนกัน เลยเจอกันง่ายหน่อย)

section ที่เข้าฟังก็มี
"IT Innovation for Business Empowering" ของ อาจารย์ยืน ภู่สุวรรณ
ที่ชอบสุดก็คือคำถามของ section นี้ มีคนถามประเด็นว่า
"ในยุคเริ่มต้นของ internet เรามี DNS เป็นตัว solve ว่าอะไร อยู่ที่ไหน
พอมาในยุค webservice เรามี UDDI ที่ใช้ solve เช่นกัน ว่าอะไรอยู่ที่ไหน
ที่นี้ ในยุคที่ platform เริ่มย้ายขึ้นมาอยู่บน web ,มันจะมีกลไกอะไรมาแบบนี้อีกไหม"
คำถามที่ดี คือคำถามที่ไม่มีคำตอบ

"บทบาทและทิศทางของ SOA ในองค์กร"
หัวข้อนี้ฟังแล้วเข้าใจแล้ว ว่า SOA คืออะไร,
SOA ก็คือ ดินแดนในฝัน(Utopia) ของพวกเราชาว IT
ถ้าใครอยากไปให้ถึงดินแดนนั้น
IBM มีแนวทางที่ถ้าท่านเลือกไปปฏิบัติแล้ว,
รับรองว่าจะเดินทางถึง SOA land แน่นอน.
Note: ไม่เลวร้ายขนาดนั้นหรอกนะ ผมแค่ล้อ IBM เล่น
ในการบรรยาย ก็มี issue ที่น่าสนใจเหมิือนกัน

"Digital Right Management on Multimedia Content"
อาจารย์พันธุ์ปิติ เปี่ยมสง่า แกพูดเก่งดีนะ
มีเสียงเล็กเสียงน้อย ฟังเพลินดี

"Multi-Threaded Chip Technology"
ฟังจบก็รู้ว่า มันน่าจะเร็ว
แต่ก็งงงวยเหมือนเดิมว่า multi thread ใน chip มันเป็นอย่างไร
(วิทยากรเขาเก่งนะ แต่เขาตั้งใจ จะไม่แตะด้าน technical มากเกินไป)

"RFID for Business Efficiency Improvement"
อ้า ฟัังแล้วได้ข้อสรุปว่า
RFID มันมีประเด็นเกี่ยวกับ characteristic ของ คลื่นวิทยุ
ความยากในการ implement ส่วนหนึ่งก็จะอยู่ที่ตรงนี้
เช่น align ของ เสาอากาศ ควรจะเป็นอย่างไร,
มีความชื้นสูง จะเกิดปัญหาอย่างไร

ปล.
ความรู้ที่ได้มากสุด ก็คือคุยกับ OHM แล้วล้วงเอาความลับ
ของการผลิต Harddisk ออกมา
(OHM เขาทำอยู่ seagate)
ใครที่ไปงาน blognone techday แล้วบังเอิญนั่งข้าง OHM
อย่าลืมชวนคุยเรื่อง Harddisk นะ
รับรองว่าได้ความรู้กลับมาเต็มที่แน่นอน

Related link from Roti

Pugs

Pugs คือ Perl6 ที่ implement ด้วย Haskell
มุมที่ผมสนใจ คงไม่ใช่เรื่อง perl6
แต่เป็นเรื่อง parser library ที่ Pugs ใช้
ซึ่งก็คือ Parsec กับ Happy

ในไทยมีคน blog เรื่อง Pugs แล้วด้วย
อ่านดูได้ที่นี่ Guruguru

Related link from Roti

Into the Ravines

Martin Fowler เขียน comment ดีๆไว้อีกแล้ว
คราวนี้เป็นเรื่องเกี่ยวกับ nature ของการเรียนรู้สิ่งใหม่ๆ
ImprovementRavine
แค่เปิดฉากเริ่มต้น ก็ชอบใจเสียแล้ว

If you care about what you do, you care about getting better at it.


The point is that when you try a new technique it'll often make you worse, at least initially. You have to work with something unfamiliar, perhaps also unlearn something else that gets in the way. During that period you performance has dipped. Only with perseverance can you get through this and reach a higher plateau.

Related link from Roti

Tuesday, October 17, 2006

Mercurial

ช่วงนี้มี project เล็กๆน้อยๆเต็มไปหมด
อยากทำ version control ได้
แต่ไม่อยากไปนั่ง create repository ที่ server
หรือลง subversion server ที่เครื่องตัวเอง
ก็เลยมองหา Revision Control ตระกูล Distributed มาลองใช้ดู

ลองใช้อยู่ 2 ตัวคือ Mercurial กับ Darcs
สุดท้ายก็ไปจบลงที่ Mercurial เพราะ
  • คำสั่งมันดูไกล้เคียงกับ svn ดี
  • เวลาจะ sync ข้ามเครื่อง
    ตัว Mercurial สามารถ start embed web server ได้เองเลย
    ไม่ต้องเสียเวลาไปทำ link ไว้ใน apache htdocs

Related link from Roti

Monday, October 16, 2006

คำชม

น่าสนใจนะ ระหว่างคำชม
"You are a good drawer" กับ
"You did a good job drawing"
อันไหนมี effect ต่อเด็กอย่างไร

Link

Related link from Roti

Migrator

ใครที่ได้ใช้ Rails แล้ว
เวลากลับมาใช้ Java ก็มักจะนำเอาบางอย่างติดมือกลับมาด้วย
อย่าง project Migrator นี้ก็เหมือนกัน
เกิดจากคนเขียนที่เคยใช้ Rails มาก่อน แล้วต้องกลับมาทำ java project

Project ที่แล้วของผม
ก็มีการนำเอา concept ของ Migration มา apply ใช้เหมือนกัน
เนื่องจากการพัฒนา ใช้ methodology แบบ Agile,
schema ของ Database จะค่อยๆ evolve
ก็เลยอยากให้สามารถเก็บ version ของ Database Schema ได้ด้วย
(เนื่องจาก script sql อยู่ใน codebase ที่เก็บลง version control)

Related link from Roti