Voice in the Gentle Wind

ตุลาคม 2, 2007

Java SE 6 update N (Consumer JRE) เปิดให้เข้าถึงล่วงหน้า

Filed under: java, javaFX — deans4j @ 3:14 am

โครงการ Java SE 6 update N หรือชื่อเดิม Consumer JRE (เปลี่ยนชื่อได้เห่ยมาก) เปิดให้เข้าถึงกันล่วงหน้าแล้ว ตามหมายแล้ว 6uN จะออกเมื่อ N == 4 (update : n มีความเป็นไปได้ว่าจะเป็น 5) ตอนนี้เลยเปิดให้ผู้ที่สนใจลองเข้าใช้ดูก่อน

ฟีเจอร์ในตัว 6uN ผมพูดถึงบ่อยแล้ว แต่มีอีกเรื่องที่ไม่ค่อยได้พูดเท่าไหร่คือ ใน 6uN น่าจะเปิดความสามารถ Hardware Acceleration มาแต่ต้น ซึ่งตั้งแต่ JavaSE 6 ออกมา จาวามีฟีเจอร์ต่อท่อ OpenGL pipeline ให้การ์ดจอช่วยประมวลผลการแสดงผลอยู่แล้ว แต่ไม่ได้เปิดไช้เป็นค่าตั้งต้น สาเหตอาจเป็นเพราะ Direct3D pipeline ขณะนั้นยังไม่เสร็จก็เป็นได้ แต่ใน 6uN Direct3D pipeline จะเสร็จสมบูรณ์ แล้วน่าจะถูกตั้งค่าให้พร้อมใช้ตั้งแต่ติดตั้ง โปรแกรม Swing หรือแอพลิเคชัน 2D และ 3D จะได้รับผลประโยชน์เต็มๆ จากการโยนหน้าที่การประมวลผลการแสดงผลให้การ์ดจอแบ่งเบาภาระ

ใครมีเครื่องว่างไม่ได้ใช้จาวาทำงานหาเงินลองโหลดมาเล่นได้แล้ว

ที่มา – OpenJDK

Advertisements

กันยายน 30, 2007

ฮา …

Filed under: java — deans4j @ 5:39 am

การ์ตูน 4 ช่อง จะให้ขำต้องรู้ที่มาที่ไปนิดนึง

ซันประกาศระบบปะรูรั่วแบบใหม่ในจาวา

Filed under: java — deans4j @ 4:01 am

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

ความสามารถใหม่จะประกอบไปด้วยสองส่วนหลักด้วยกัน

  • ระบบประสานการปะรูรั่วตลอดทั้งแพลตฟอร์ม
  • ระบบแจ้งเตือนอัปเดตสู่ผู้ใช้ล่วงหน้า

โดยปกติแล้วซันแนะนำให้ผู้ใช้ทั่วไปใช้จาวารุ่นล่าสุดอยู่แล้ว ซึ่งจะได้รับประโยชน์จากระบบที่สเถียร มั่นคง เร็ว และการแสดงผลที่ดีกว่ารุ่นก่อน แต่ในการใช้งานระดับโปรดักชั่นหลายๆ ที่ยังคงติดกับจาวารุ่นก่อนๆ อยู่ การมาของระบบประสานการปะรูรั่วนี้จะยังประโยชน์โดยตรงกับระบบงานดังกล่าวเพื่อให้ได้ระบบความปลอดภัยที่เทียบเท่ากับแพลตฟอร์มล่าสุด โดยแพลตฟอร์มที่เข้าร่วมได้แก่ Java 6, 5, 1.4.2 ส่วนรุ่น 1.3 ยังอยู่ในแผนเช่นเดียวกัน แต่จะตามมาทีหลัง ความสามารถนี้จะมาใน Java 6 update 3 (พรุ่งนี้ออก), Java 5 update 13 และ Java 1.4.2_21

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

ที่มา – Sun Security Blog

กันยายน 25, 2007

เหนื่อย

Filed under: java — deans4j @ 12:53 am

แรงหมดยังไงไม่รู้ หมดแรงจะทำสิ่งนั้นสิ่งนี้ที่ตั้งใจ อย่าว่าแต่เขียนบล่อกตัวเองเลย อัตราการอ่านบล่อกของชาวบ้าน + ข่าวก็ลดลงฮวบน่าใจหาย (เป็นตัววัดที่บอกนัยสำคัญที่ขำดี)
ดูแลสุขภาพตัวเองกันด้วยนะครับ

กันยายน 11, 2007

ซันเตรียมประกาศโอเพนซอร์ส JDK 6

Filed under: java — deans4j @ 4:03 am

จากที่ซันประกาศโอเพนซอร์ส JDK 7 ไปเต็มตัวแล้ว ดูเหมือนซันต้องการเร่งมือให้เกิดผลผลิตจากการโอเพนซอร์สเร็วขึ้นกว่าเดิม โดยคาดว่าจะเอาโค้ดใน OpenJDK 7 มาแปลงกลับเป็นฐานใน OpenJDK 6 บนสัญญาอนุญาต GPLv2 เช่นเดียวกัน

OpenJDK 6 จะได้ประโยชน์จากโค้ดที่สดสะอาดกว่าของ OpenJDK 7 ส่วนผู้ใช้น่าจะได้เห็นผลผลิตจาก OpenJDK 6 ในรุ่นอัปเดตข้างหน้าสักระยะหนึ่ง โดยรุ่นอัปเดตอันใกล้นี้จะยังอยู่บนพื้นฐานโค้ดเก่าอยู่ อันจะต้องรอให้งานที่อยู่ในระหว่างดำเนินการบนโค้ดเก่า เช่น Consumer JRE เรียบร้อยซะก่อน วิศวกรของซันบอกใบ้ว่าน่าจะได้เห็น OpenJDK 6 ทันงาน JavaOne 2008 ปีหน้า

ซันคาดการณ์ว่าการสร้าง OpenJDK 6 จะส่งผลให้เมื่อถึงเวลา กระแสการตอบรับ OpenJDK 7 จะเป็นไปอย่างลื่นไหลมากยิ่งขึ้น นับเป็นก้าวที่ฉลาดทีเดียว เพราะจากสเปก Java 7 ที่มีแนวคิดและความสามารถต่างจากเดิมค่อนข้างมาก น่าจะกินเวลาในการสร้างพอสมควร กอปรกับการปรับเปลี่ยนวิธีการทำงานให้เป็นแบบโอเพนซอร์สทำให้กำหนดการต้องเลื่อนออกไปอีก การสร้าง OpenJDK 6 ชุมชนจะได้มีอะไรที่ใช้ได้จริงขั้นเวลาไปพลาง และอย่างน้อยซันจะได้ซาวเสียงผลตอบรับจากประสบการณ์การใช้งานของชุมชนไปในตัว อีกเหตผลนึงคือธรรมชาติของการใช้งาน JDK/JRE ในงานธุรกิจสำคัญมักหลีกเลี่ยงความเสี่ยงไปใช้ JDK/JRE รุ่น n-1 เสมอ ต่อให้ JDK 7 ออกมาซันก็ยังเก็บเกี่ยวผลประโยชน์จาก JDK 6 ได้เลย ไม่เช่นนั้นอาจต้องรอ OpenJDK 8 ออกมาก่อนซึ่งอาจไม่ทันการณ์

ที่มา – infoQ

กันยายน 10, 2007

Nimbus จะเสร็จแล้ว

Filed under: java, swing — deans4j @ 3:30 am

Jasper Potts รายงานควาบคืบหน้า Swing Look & Feel ตัวใหม่ Nimbus (ของแท้ไม่มุก) ว่าเสร็จไปส่วนใหญ่แล้ว ที่เหลือคือขั้นตอนขัดเงาทำให้มันสวย โดยคราวนี้มีการพูดถึงเทคโนโลยีที่ถูกใช้ไปในการสร้าง L&F ตัวใหม่นี้ด้วย

  • 2D Vector – ทุกส่วนใน Nimbus นั้นถูกเรนเดอร์ด้วยภาพเวกเตอร์ ทำให้ขนาดของตัว L&F เมื่อประกอบลง jar เล็กมาก เพียง 56K เท่านั้นเอง
  • HD Ready – ด้วยความที่ทำงานอยู่บนพื้นฐานเวกเตอร์ ทำให้สามารถขยายภาพโดยไม่ขึ้นกับความละเอียดของหน้าจอ
  • สร้างจากพื้นฐาน Painter Interface ใน SwingX ส่งผลให้แนวคิดของการ reuse หน้าตาและเอฟเฟกต์จาก Nimbus เป็นไปได้
  • ปรับแต่งได้หมด รายละเอียดของคอมโพเนนต์ต่างๆ ถูกบันทึกค่าไว้ในคลาส UIDefaults จึงทำให้การปรับแต่งหน้าตาทำได้โดยตรงจากการแก้ไขค่าตั้งต้นที่กำหนด
  • ส่งผลให้ 3-rd party คอมโพเนนต์สามารถปรับแต่งให้หน้าตาสอดคล้องกับ Nimbus ได้
  • และที่(เค้าว่า)เจ๋งที่สุด คือ Nimbus ถูกวาดขึ้นจากเครื่องมือที่สร้างขึ้นใหม่เพื่อการณ์นี้โดยเฉพาะ โปรแกรมมีลักษณะคล้ายๆ Photoshop หรือ Illustrator ขนาดย่อม โดยคนวาดจะวาดภาพเวกเตอร์ตามสถานะของคอมโพเนนต์ต่างๆ แล้วภาพนั้นจะถูกคอมไพล์แปลงเป็นโค้ดที่ใช้ Java2D ภายในคลาส Painter อีกที โดยทำมารองรับความสามารถระดับสูงเช่นการทำ sub-pixel การไล่สี gradient แบบซับซ้อน การทำเลเยอร์และเอฟเฟกต์ต่างๆ เช่นการเงาพื้นหลัง เป็นต้น ซึ่งเครื่องมือตัวนี้คาดว่าคงจะโอเพนซอร์สแน่นอนในอนาคต คนใช้นอกจากจะสามารถเอาไปใช้สร้าง Look & Feel ใหม่ๆ ของตัวเอง ยังเป็นเครื่องมือดีๆ เอาไว้สร้าง Painter เอฟเฟกต์ได้ด้วย

ที่มา – Jasper Potts’s Blog

เรื่อง Painter ใน SwingX ถ้าสนใจต้องเข้าไปอ่านที่ SwingLabs นะครับ มาแน่ๆ ใน JDK 7.0 อธิบายแบบสั้นๆ คือต้องการสร้างแนวคิดในการ reuse เอฟเฟกต์ให้เป็นไปได้ข้าม L&F ซึ่งปัจจุบันทำได้ยากเพราะมันผูกกับหน้าตา L&F ต้องแฮกกันเอาเองถึงจะใช้ได้

กันยายน 7, 2007

Timing Framework 1.0 ออกแล้ว

Filed under: java, swing — deans4j @ 3:31 am

Chet Haase สถาปนิกซอฟต์แวร์คนดังของซันเจ้าของร่วมผลงานหนังสือ Filthy Rich Client ปล่อย Timing Framework 1.0 ออกมาแล้ว

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

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

ฟีเจอร์อื่นๆ ที่สำคัญที่เฟรมเวิร์กสามารถคำนวณและจัดสรรให้เราเช่น แนวคิด key frame และการใส่ความเร่งให้กับการเคลื่อนที่ นอกจากนี้ยังมีฟีเจอร์ trigger ทัมักใช้เป็นกลไกในเริ่มหรือหยุดอนิเมชั่นตามเหตการณ์สำคัญที่เกิดขึ้น

ที่มา – Timing Framework Project

สิงหาคม 27, 2007

Java Kernel มีความเป็นไปได้จะโผล่ใน Java 6 update 4

Filed under: java — deans4j @ 5:36 pm

จาก bug หมายเลย 6585322 บอกใบ้ในตัวว่ามีความเป็นไปได้ว่า Java Kernel จะโผล่ใน Java 6 update 4 (ปัจจุบัน update 2)

ที่มา – Java Bug Database

สิงหาคม 10, 2007

ซันอนุญาตการเข้าถึง TCK เฉพาะตัวที่ใช้ OpenJDK เป็นฐาน

Filed under: java — deans4j @ 3:46 am

จากรณี Apache Harmony ที่เคยเป็นข่าวไม่พอใจการเข้าถึงการใช้งาน TCK ที่ไม่เป็นมิตรเท่าไหร่  เมื่อวานนี้ซันประกาศแล้วว่าโครงการ JDK ใดๆ หากต้องการใช้งาน TCK แบบฟรีๆ นั้นต้องพื้นฐานตัวเองอยู่บนโครงการ OpenJDK เท่านั้น

TCK เป็นชุดทดสอบความเข้ากันได้ของ JDK ใดๆ ว่าผ่านเกณฑ์ที่กำหนดตามสเป็กไว้หรือไม่ หาก implementation ใดๆ ผ่านก็มีสิทธิ์จะใช้โลโก้และชื่อ Java ได้ฟรี

แม้การประกาศครั้งนี้เหมือนจะช่วยเพิ่มช่องทางให้โครงการโอเพนซอร์สอื่นๆ ได้รับประโยชน์มากขึ้น แต่อย่างไรก็ตาม Harmony ก็ไม่ได้รับประโยชน์จากการจัดโปรแกรมนี้อยู่ดีเพราะไม่ได้มีพื้นฐานอยู่บน OpenJDK แต่อย่างใด แต่โอกาสของ Harmony ก็ยังไม่หมดซักทีเดียวนัก เพราะยังพอมีทางใช้ TCK ได้แบบฟรีๆ ผ่านทางโปรแกรมขอทุนที่ซันจัดไว้ให้ กระนั้นปัญหาของ Harmony อยู่ที่ว่าจะยอมรับหรือเปล่า

ที่มา – C|net News

กรกฎาคม 26, 2007

กูเกิลโอเพนซอร์ส Google Singleton Detector

Filed under: java — deans4j @ 5:02 pm

กูเกิลโอเพนซอร์สเครื่องมือตัวใหม่เพื่อช่วยให้นักพัฒนาค้นหา Singleton Pattern ภายในโค้ดจาวา เพื่อเป็นเครื่องมือช่วยให้นักพัฒนารู้ตัวว่ากำลังทำงานอยู่กับ Singleton

Singleton เป็นหนึ่งใน design pattern ของ Gang of 4 ที่ถูกใช้กันอย่างผิดๆ และมากจนเกินเลย ข้อผิดพลาดส่วนใหญ่มาจากผู้ที่ไม่เข้าใจแนวคิด OOP อย่างดีพอ

Singleton จัดเป็น pattern ที่สร้างง่าย แต่มีอันตรายมาก ผู้ที่คุ้นเคยภาษาดั้งเดิมที่มีคอนเซปต์ตัวแปร global มักจะหลงรัก pattern นี้ได้ง่ายและใช้มันอย่างผิดวิสัยที่ GOF ตั้งใจ

หลายๆ ทีที่ Singleton มีผลร้ายมากกว่าผลเสีย และมักพบปัญหาตามมาที่หลัง เช่น

  • ทำให้ในแต่ละหน่วยเสีย modularity ลง
  • การ test โปรแกรมเกิดข้อผิดพลาดเนื่องจากไม่รู้ว่าภายในมีการเรียกใช้ Singleton ส่งผลให้แต่ละ unit test เกิดการขึ้นต่อกันอย่างไม่ได้ตั้งใจ (ซึ่งมันผิดหลักของ unit testing)
  • ผู้ใช้ไม่สามารถหลีกเลี่ยงการ unit test โดยไม่ test Singleton ไปด้วย
  • ใน Test Driven Development มองว่า Singleton เป็นสิ่งชั่วร้ายเลยด้วยซ้ำ
  • ปัญหาการ subclass คลาส Singleton ที่จะไม่ใช่ Singleton อีกต่อไปสร้างปัญหาอย่างมาก เนื่องจากผิดเจตนารมณ์ของผู้สร้าง และเป็นกับดักที่ซ่อนตัวอย่างแนบเนียนซะด้วย
  • Singleton สร้างปัญหาให้สถาปัตยกรรมยุ่งยากขึ้น เมื่อผู้ออกแบบเบื้องต้นไม่ได้คำนึงถึงจะมีการเรียกใช้ผ่านการทำ concurrent programming

ปัจจุบันโปรแกรมเมอร์ที่ดีมักจะผลักภาระนี้ไปให้ IoC Container ทั้งหลายเป็นผู้บริหารการแจกจ่าย Singleton object ให้กับผู้ที่ต้องการจริงๆ แทนที่จะ hard code ลงไปในสถาปัตยกรรม

ในโปรแกรมของคุณมี Singleton กันกี่ที่เอ่ย?

ที่มา – Google Code Blog

« Newer PostsOlder Posts »

บลอกที่ WordPress.com .