Eclipse Helios is here! (Eclipse 3.6)

ต้องยอมรับว่าหลังๆผมมีโอกาสได้ใช้ Eclipse น้อยมาก ณ ปัจจุบันผมยังใช้ Ganymede (3.4) อยู่เลยเนื่องด้วยจำเป็นต้องใช้ Plugins หลายตัวที่ยังไม่รองรับ Galileo (3.5) เช่น Flex3, Force.com IDE เรียกได้ว่าผมไม่เคยใช้ Galileo กับงานจริงเลยก็ว่าได้แม้ว่าอยากจะใช้มากก็ตามที แต่ก็ยังแอบลุ้นว่าในอนาคตจะได้ใช้มันมากขึ้น โดยเฉพาะกับงานทางด้าน Java อย่างที่ผมเคย tweet เมื่อนานมาแล้วว่าเขียนภาษาอะไรก็ไม่มันส์เท่าเขียน Java จริงๆ แต่ไม่ว่าจะอย่างไหร่ก็ตาม ทาง Eclipse Foundation ก็ยังคงออกตามแพลนที่วางไว้คือ Eclipse จะมี release ทุกปี โดยการรวบรวมโปรเจคในรอบหนึ่งปีนั้นๆมารวมกัน โดยปีนี้ชื่อของมันคือ Helios สิ่งที่น่่าสนใจของ Helios ไม่ใช่เรื่อง Feature ใหม่ๆ (ซึ่งสามารถดูรายละเอียดได้จาก link ด้านล่าง) แต่เป็นความน่าจะเป็นที่ Eclipse และ NetBeans (ที่เพิ่งออก 6.9) มีโอกาสจะได้ join…

ทุกอย่างที่คุณควรรู้กับ Java เมื่อกษัตริย์คืนบัลลังก์

ไม่มีอะไรมากครับ ตั้งชื่อล้อหัวข้อข่าวของ mk ณ Blognone เท่านั้นเอง เรื่องของเรื่องคือ แม้ว่าความนิยมของ Java จะลดลงเรื่อยๆ ถึงขนาดเมื่อเดือนก่อน (May 2010) ก็หล่นจากบัลลังก์มาอยู่อันดับ 2 แต่เดือนนี้แม้ % ความนิยมจะยังลดลงต่อเนื่อง แต่เมื่อเทียบกับคู่แข่งแล้วก็ยังสามารถกลับมาอยู่อันดับ 1 ได้ และคาดว่าคงจะขึ้นๆลงๆแบบนี้อีกหลายรอบซะด้วย สำหรับคนที่ใช้ Java อยู่ไม่ต้องกังวลนะครับ ว่าภาษาจะล้มหายตายจากไปในเร็ววันนี้ Java ยังคงได้รับความนิยมอยากมากในงาน Enterprise เนื่องจากการพลักดันของยักษ์ใหญ่ในวงการ ไม่ว่าจะเป็น IBM, Oracle, SAP เป็นต้น หรือวงการ Open source ก็ยังมีการใช้ Java อีกมากเช่น Apache, Eclipse, Spring, หรือแม่กระทั่ง Google หรือแม้แต่ Mobile App อย่าง Android หรือ Blackberry ก็ยังใช้ Java…

Playing with Google App Engine (Java API)

บันทึกไว้ซะหน่อยว่าเล่นอะไรไปกับ Google App Engine ในส่วนของ Java API บ้าง 1. URL Fetch Service มีข้อจำกัดว่า timeout นั้นสูงสุดที่ 10 seconds และต้อง set ค่าทุกครั้ง เพราะ default คือ 5 seconds 2. JDO รายละเอียดเยอะ แต่เอกสารของ Google ทำได้ดีในระดับหนึ่ง และดูเหมือนว่า Google แนะนำให้ใช้ JDO มากกว่า JPA 3. Local Admin Console ถ้าอยากดูว่าใน Local Datastore มีอะไรอยู่บ้างให้เปิดไปที่ http://localhost:8080/_ah/admin โดยสามารถแสดงรายการ กับลบ entities ได้เท่านั้น ไม่สามารถ เพิ่ม, แก้ไข, หรือแม้แต่ search…

System Properties in Google App Engine (GAE)

เมื่อ Google ยอมให้เราเขียนโปรแกรมใน Infrastructure ของ Google ได้ ถือเป็นโอกาสอันดี ที่จะดูว่า Google มีการกำหนด System Properties ไว้อย่างไรบ้าง com.google.apphosting.runtime.jetty.APP_VERSION_CONTEXT_ATTR=com.google.apphosting.runtime.AppVersion@b9b67b org.mortbay.jetty.webapp.NoTLDJarPattern=start.jar|ant-.*\.jar|dojo-.*\.jar|jetty-.*\.jar|jsp-api-.*\.jar|junit-.*\.jar|servlet-api-.*\.jar|dnsns\.jar|rt\.jar|jsse\.jar|tools\.jar|sunpkcs11\.jar|sunjce_provider\.jar|xerces.*\.jar java.specification.version=1.6 java.vendor=Sun Microsystems Inc. line.separator= java.class.version=50.0 java.util.logging.config.file=WEB-INF/logging.properties java.specification.name=Java Platform API Specification java.vendor.url=http://java.sun.com/ java.vm.version=1.6.0_13 os.name=Linux java.version=1.6.0_13 java.vm.specification.version=1.0 user.dir=/base/data/home/apps/xxx/1.335216823617058489 java.specification.vendor=Sun Microsystems Inc. java.vm.specification.name=Java Virtual Machine Specification java.vm.vendor=Sun Microsystems Inc. file.separator=/ path.separator=: java.vm.specification.vendor=Sun Microsystems Inc. java.vm.name=Java HotSpot(TM) Client VM file.encoding=ANSI_X3.4-1968

Galileo Is Here (Eclipse 3.5)

หนึงปีผ่านไปสำหรับ Ganymede ก็ได้เวลาของ Galileo แล้วครับ eclipse ปีนี้เน้น social แฮะ มีทั้ง twitter tag ที่ใช้คือ #eclipse35, มีทั้ง blog a thon, มี concept “Friend of Eclipse”, และยังมี virtual conference อีกด้วย มีอะไรใหม่ก็ไปดูที่ New and Noteworthy กันได้ เรื่องการ download นั้นสามารถเลือกแบบ Package หรือ แยก Projects ก็ได้ครับ ดูชาว twitter ที่ใช้ Galileo ป.ล. ผมละชอบ Logo ของปีนี้จริงๆ สีสวยมาก

BarCamp Bangkok 3 – My first BarCamp

ทำตามกฏครับ 2nd Rule: You do blog about BarCamp เนื่องด้วยเพิ่งขายกล้องตัวเก่งของตัวเองไป งานนี้เลยไม่มีรูปมาประกอบเลย มีถ่ายนิดๆหน่อยด้วยมือถือ ขอแบบคร่าวๆนะครับ เพราะงานรัดตัวจนพุงจะหดหมดแล้ว – วันแรก ผมเน้น Agile Series อย่างเดียวเลย ประกอบไปด้วย Due Date The Root Of All Evils, The Heart Of Agile, Pair Programming – พักเที่ยง กินข้าวกับ @9aum @FordAntiTrust @sixhead @tvchampion คุยกันหลายเรื่อง ทั้งเรื่องที่เอาไปพูดต่อได้ และไม่ได้ เหอๆ – กลางคืน ออกไป BeerCamp กับ @nuboat @punneng @dekpump @somkiat @rawitat @bact…

Oracle and her Sun

ถือเป็นข่าวใหญ่ในวงการ Computer เลยทีเดียวเมื่อ Oracle กำลังบรรลุสัญญาในการซื้อ Sun (จากข่าวที่หน้าเว็บของทั้งสองคิดว่าจะเสร็จได้ภายใน Summer นี้) ตอนได้ข่าวนี้ครั้งแรก รู้สึกแปลกใจเล็กน้อย ว่า IBM ปล่อยให้ Sun หลุดมือไปได้ยังไง เพราะจะเห็นว่าในสงคราม Java นั้น IBM ดูเหมือนกำลังจะก้าวขึ้นมาเป็นผู้นำแบบเต็มตัว จากความนิยมของ IDE อย่าง Eclipse หรือ Commercial Version อย่าง WSAD, RAD หรือ App Server อย่าง Web Sphere ที่แม้จะอ้วนมากๆ แต่ก็ได้รับการตอบรับที่ดีในภาคธุรกิจ สิ่งที่ขาดไปก็คือ Database ที่ DB2 ดูจะได้รับความนิยมลดลงเรื่อย ซึ่งถ้าได้ MySQL มา คงมาเติมตรงนี้ได้ (หลายคนอาจเถียงว่าในอดีต IBM ซื้อ Informix ไปดอง) การที่ Oracle…

Java's Biggest Long-Term Problem

ตามไปอ่าน บทความนี้ จาก TheServerSide.com อีกที อ่านจบแล้วก็คิดว่าน่าจะนำมาแชร์ให้เพื่อนที่ใช้ Java ได้อ่านกัน (Java ในที่นี้คือ Platform ไม่ใช่ Programming Language) โดยสรุปก็คือผู้เขียนบอกว่าปัญหาของ Java อยู่ที่ความซับซ้อน ซึ่งเป็นกำแพงสำหรับคนหรือธุรกิจที่อยากจะเปลี่ยนมาใช้ Java นอกจากนี้ผู้เขียนยังแนะนำ Sun ให้ปรับปรุงอีกสองเรื่อง คือ Hosting และ Web Framework สำหรับความคิดเห็นส่วนตัว: เรื่อง  Hosting นี่เห็นเป็นปัญหามานาน ตั้งแต่ Tomcat ออกใหม่จนถึงทุกวันนี้ก็ต้องบอกว่าเรื่อง Java กับ Web Hosting นี่มันเป็นปัญหาคาราคาซังจริงๆ ทุกวันนี้ Java ไม่ได้อยู่ใน Standard Package ของ  Web Hosting เหมือน PHP, Perl, ASP หรือ  ASP.NET เรื่องต่อมาเรื่อง Web…

MySQL: Packet for query is too large

เมื่อวานเจอปัญหานี้ เลยถือโอกาสนำมาแชร์ที่นี่ด้วย สำหรับใครที่ใช้ MySQL โดยเฉพาะกับ Java อาจจะมีโอกาสได้เจอกับ Exception แบบด้านล่างนี้ com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1267737 > 1048576). You can change this value on the server by setting the max_allowed_packet’ variable. at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2648) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1597) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1708) at com.mysql.jdbc.Connection.execSQL(Connection.java:3249) at com.mysql.jdbc.Connection.execSQL(Connection.java:3178) at com.mysql.jdbc.Statement.execute(Statement.java:711)