Software Engineering

ช่วงนี้ผมกำลังย้ายบ้าน ไม่มีเวลาตอบคอมเมนต์มากนัก เดี๋ยวสถานการณ์ลงตัวแล้วจะมาตอบให้ ตอนนี้เอาประเด็นทางเทคนิคที่น่าสนใจจาก feed ที่อ่านไปก่อน (จริงๆ คือจดให้ตัวเองตามมาอ่านเมื่อมีเวลา)

Software Engineering

  • Songbird path to Agility Part II พูดถึงการนำวิธี Agile มาใช้ในโครงการ Songbird มีกราฟประกอบด้วย (แปลว่า Agile วัดได้นะครับ) มีภาคแรกด้วยแต่ไม่น่าสนใจเท่าภาคสอง

Chrome

  • เท่าที่ดูจาก Planet Mozilla คนของ Mozilla กลัว Chrome กันมาก ออกมาสยบความเคลื่อนไหวกันใหญ่ ในบล็อก 10 Reasons Firefox won’t be worried about Chrome ข้อที่ผมว่าน่าสนใจคือข้อ 10 เพราะจากที่ติดตามทั้ง Firefox และ OpenOffice มา การสร้างแอพพลิเคชันใหญ่ระดับนี้ให้ออกมาดีบน 3 แพลตฟอร์มพร้อมกัน เป็นเรื่องไม่ง่ายเลย ขนาดทั้ง Google Earth หรือ Google Talk เอง กูเกิลยังไม่ประสบความสำเร็จนักที่จะออกให้ครบทั้ง 3 แพลตฟอร์ม ขนาด Firefox เวอร์ชันก่อนๆ บนแมคกับลินุกซ์ก็ตามหลังวินโดวส์มานาน (ตอนนี้ยังตามหลังอยู่แต่ดีขึ้นมาก) คงต้องใช้เวลาและทรัพยากรพอสมควร

Firefox

  • Feedly น่าสนใจดี
  • หลังจาก Chrome ออก ประเด็นที่พูดกันเยอะทั้งบน Blognone และฝรั่งทั่วไป คือเรื่องฟีเจอร์ว่าใครทำอะไรได้บ้าง/ไม่ได้บ้าง ผมพบว่าเสียงของฝ่าย “Opera มีมานานแล้วเฟ้ย” มีเยอะกว่าที่คิดมาก (หรือว่าชาว Opera เสียงดังกว่าก็ไม่ทราบ)​ และมีคนที่นิยม approach แบบ “ฟีเจอร์ครบครัน” มากพอสมควร หลังจากอ่าน Firefox can become Google Chrome เลยรู้สึกว่า อีกไม่นานจะมีคนทำดิสโทรสำหรับ Firefox ที่รวมเอา extension ต่างๆ มาพร้อมสรรพเพื่อแข่งกับ Opera และ Chrome อาจใช้ชื่อ Firefox Extreme Edition อะไรแบบนี้
  • เรื่องดิสโทร Firefox เคยมีบ้างแล้ว เช่น Firefox Campus Edition เมื่อปี 2007 (ตอนนี้เหมือนลิงก์จะหายไปแล้ว) หรือจะนับ Flock ด้วยก็ได้
  • ด้วยจำนวนคนทำคนใช้ extension ในปัจจุบัน (ตัวอย่างดูจำนวนสคริปต์ของ GreaseMonkey ซึ่งเป็นแค่ extension เพียงตัวเดียว) ทำให้เบราว์เซอร์กลายเป็น ecosystem เหมือนกับดิสโทรไปแล้ว

Ubiquity

  • Ubiquity กำลังได้รับความสนใจอย่างมากในโลกของ Mozilla นักพัฒนาหลักคือ Jono (ตัวจริงโคตรฮา ตอนพูดใส่ชุด Firefox ขึ้นไปบนเวที) เขียนบล็อกประเด็นด้าน usability ของ Ubiquity อย่างละเอียดหลายตอน สำหรับคนที่สนใจอนาคตของ Ubiquity แนะนำให้อ่าน Language-Based Interfaces, Part 2: Where do we stand now? กับ Language-Based Interfaces, part 3: Report Card for Ubiquity 0.1.1

Usability

ตามอ่านบล็อกของ Jeff Walcot ที่ Acquia (Confessions of a Drupal Convert) ไปยังบทความของ Kurt Cagle บน O’Reilly (Drupal as Open Architecture) แล้วน่าสนใจมาก

Cagle อ้างสไลด์ของ Roy Fielding ที่งาน OSCON 2008 (Open Architectures at REST (PDF))

Fielding เป็นคนคิดคำว่า REST โดยพัฒนาแนวคิดนี้ลงในวิทยานิพนธ์ปริญญาเอกของเขา ในสไลด์อันนี้ Fielding กำลังไปพัฒนาโครงการ Apache Sling สไลด์อันนี้จึงเป็นการโฆษณา Sling เป็นหลัก

แต่จุดน่าสนใจอยู่ในครึ่งแรกของสไลด์ ซึ่งเป็นแนวคิดที่ Fielding นำมาเป็นโมเดลให้กับสถาปัตยกรรมของ Sling นั่นคือแนวคิด Open Architecture ซึ่งในที่นี้มีความหมายในเชิง software engineering

อ่านบล็อก GullFOSS เขียนโดยวิศวกรของซันที่ทำ OpenOffice.org ว่าด้วยเรื่อง Experimenting with Agile software development

ติดใจย่อหน้านี้

We found out that an agile development style has high requirements on the building infrastructure:

  • New builds are needed at least daily, usually more often.
  • Builds need to run absolutely unattended, without any need for human interaction.

This is challenging, when not only compiling and linking, but as well installing an Office, installing an extension, running smoketest, unit tests and other automated tests - and all those on several platforms.

ผมมีประสบการณ์ในสาย Software Engineering มาน้อยมากๆ แต่ที่จับทางได้ก็น่าจะเป็นแบบที่เน้นไว้ คือใช้ automated tools ให้เยอะที่สุดเท่าที่เป็นไปได้ (เพื่อเอาแรงคนไปทำอย่างอื่น) รวมถึงออกแบบ process การทำงานให้ automatic/semantic ด้วยเช่นกัน

บ้านเรายังไม่ค่อยเน้นเรื่องนี้กันเท่าไร (เห็นแต่เถียงกันว่า IDE ของใครเจ๋งกว่า) ที่เห็นเริ่มใช้กันบ้างก็พวก Revision Control แต่อย่าง Bug Tracking, Branch Commit Tracking, Automated Testing Suite, Regression, Build Farm, QA นี้ยังไม่มากนัก มันน่าจะลงทุนสูงแบบในบล็อกข้างต้นว่าไว้ แต่ถ้าผลงานออกมาดีมันก็น่าจะคุ้มไม่ใช่หรือ?