Friday, 26 June 2009

Welcome Galileo!!!

Another June, another release of Eclipse. Finally downloaded Galileo and give a try. Eclipse is doing an amazing job releasing new versions of a great project set every year. Galileo hosts 33 projects with over 23 million lines of code all around the world and had a development cycle of a year. Just look at the release dates below and see how perfect the cycle goes;
2004 – June 28th (Eclipse 3.0)
2005 – June 28th (Eclipse 3.1)
2006 – June 30th (Callisto)
2007 – June 29th (Europa)
2008 – June 25th (Ganymede)
2009 – June 24th (Galileo)

There are many new features and enhanchments but what i really wonder is what will the next releases name since the Galilean moons are exhausted.
Welcome Eclipse Galileo, thanks to all eclipse community!

p.s. Ok I got the tip from Ian Skerrett next release which will be on june 2010 will be named Helios :)

Saturday, 13 June 2009

JavaOne 2009

I am so sad it is finished and need to wait next year. Just after Google I/O as I was organising my notes, Moscone north&south was dressing up for JavaOne. JavaOne is great! Imagine a conferess where Sun, Oracle, IBM and Microsoft can be on stage. It is the united nations of software world developers who left Sun and join rivals such as Google and Adobe have sessions and they still perform the best ones. Just like someone i really respect told me, if you are going to attend one go to JavaOne...
Everything started on monday at CommunityOne where any one can attend sessions for free and listen the footsteps of JavaOne. There are quite nice sessions in CommunityOne too so i really suggest you to attend even not going to JavaOne. Of course the real fun started on June 2, tuesday. As the doors open Chris Melissinos, this years host welcomed us all. Everyone was expecting to hear some news about the Oracle but it was more than that very soon Larry Ellison was on stage declaring his support on Java, community and specially JavaFX! He even asked the team to rewrite OpenOffice with JavaFX. Larry stated the only going to change in Java world would be the funds they are going to inject, and they will never change the structure of Java. If he is honest i think this deal can be a new age for Java.
As the key note ends we started running to our sessions. Here are some favourite topics from this year;
JavaFX, well after Larry's support everyone can be more focused on JavaFX. Actually i am very suprised to see hot the tools got mature. It seems Netbeans getting much better with JavaFX, the photoshop plugins is ready, Authoring tool which seems amazing is on the way. There was even non Sun tools for JavaFX such as JavaFX Builder from Reportmill which is just web start application and works great! JavaFX may not be all complete and very mature but its definitely going great and the progress lately is worth to mention.
Cloud is everywhere, before i went I had heard San Francisco is called the Fog City but what I saw was a city in cloud. Amazon is hiring people for their EC2, Google is promoting the App Engine and they are quite confident. Finally Sun also introduced their own Cloud which looks very promising but sadly it is just really in the clouds now...
The topics for the enterprise world is of course Spring 3, EJB 3.1, Seam, Servlet 3.0 and of course JPA 2.0.
Here are some more in details from the sessions I joined;

Monday June 1: CommunityOne
OpenSSO seems interesting, I will consoder giving a try if I have chance. Peronally I used CXF more than Metro but always knew they offer the best compability with Microsoft. Metro team mentioned the same thing. Actually they accepted they highlighted the compability so much that people only consider them for MS integration, which is a fault i did too. Well they are also shortlisted.
Jersey is very fun to use and very flexible. I was using it to provide services for a mobile project but I had chance to see much more in detail.
JPA 2 makes the API really complete, now you can really use JPA annotations instead of vendor specific ones, glad to see the changes, well done guys.

Tuesday June 2: JavaOne 1st day
JavaOne started as i mentioned, after watching Larry on stage telling us not to worry but i still wonder what will happen to Netbeans and MySql.
(TS-4605) Enterprise JavaBeans™ 3.1 (EJB™ 3.1) Technology Overview
Ok my first session on JavaOne. EJB 3.1 is quite nice move, the new features choosen in a nice way. EJB lite and removal of local interfaces are nice features and they will provide faster development.
(TS-3790) Java™ Servlet 3.0: Empowering Your Web Applications With Async, Extensibility and More
Servlet 3.0 really makes me excited. Biggest change is the async calls which is a great feature. I think servlet days are definitly back.
(TS-5577) Introduction to the JavaFX™ Technology-Based API (Graphics and Animation)
JavaFX doing great progress in tool support, preparing Flash type time based animations. You may say why to use it since there is flash. Ok here the output is pure JavaFx code and offering good integration with existing Java stuff. Even you prefer to continue Flash, it is very nice to have a competitor and a different approach in case you need.
(TS-5225) Spring Framework 3.0: New and Notable
Spring 3 looks very well planned and organised. Annotation support is at the maximum and the framework evolved in such a good way. They had a very nice presentation showing how to build a project with their web framework. Result is fast, easy to code and very clean. Although i prefer using spring just for backing services, what they can provide is much more than that and i will keep that in mind :). They strongly encourage you not to use XML anymore
(TS-4640) A Complete Tour of the JavaServer™ Faces 2.0 Platform
JSF is getting much much better but to be honest it is still boring when compared spring web, gwt or rich clients like flex and javaFx. If you are a fan of JSF you will definitely be happy, if not then this wont convert you to be a fan.
Actually I as registered for 3 BOF sessions but I was invited to JCP party so missed them. The Java Community Process Party was fun too, saw some friends from google, met some guys from europe and of course had JCP wine. I return back to Moscone and attended 1-2 more sessions. Well if you are interested JavaOne offers you sessions even after party hours.

Wednesday June3:
Second day started with the keynote from Sony Ericsson. Well I can't it is very inspiring. They brought a guy on stage to code a twitter app on Sony Ericsson's platform. It was far from being impressive, they claim he is writing the code on stage but we did not see the whole code so doesnt mean that their platform is very easy, I mean what if he is just a genious writing code like no one else can... then what does this demo mean?? we employ such people.. come on Sont find a better idea. Actually we even barely see him coding since his screen was a small picture in picture image in the main screen. So even he was pasting some code probably we wouldn"t notice. Well the second part was even worse, a guy came up to the stage with a brand new phone with a menu (XMB) stolen from Playstation 3 and PSP and they wanted to show us how they connect from phone to ps3 and watch a video. The thing is they couldn't. They couldn't play, even see anything and I can't really imagine they play games on it. The point is they are 30 cm away from ps3 but can not make it work while they are telling us it work somewhere aroung the cith just on mobile data line and they blame so many people using twitter that the network is down. Come on guys you re building a twitter app then balme twitter for second part... So will u stop everyone twitting when u release the phone???
(TS-4514) Building Rich Internet Applications with the JavaFX™ Programming Language
(TS-4069) JavaFX™ Technology in Action: From Design Tool to Desktop, to Mobile Device
Ok JavaFx again, but must admit it is fun and looks great. Mobile device shows were also fun but I hope sun realises if vendors such as Nokia, Ericsson etc does not want JavaFx on their device there is nothing they can do. Again I must mention, tool support getting much much better on JavaFX side. The generated code is not hard to understand and can be easily modified by hand. Using css based declaration instead of xml based declaration of rivals Flex and Silverlight makes the output in less characters and mostly less confusing. However, sometimes the output can become a bit complicated and harder to follow than xml. Oh one more think another tool for JavaFX, JavaFX Studio Plugin from Exadel... worth to try...
(TS-5217) "Effective Java": Still Effective After All These Years
This is a classic, going JavaOne and not attending is a sin. Oh let me tell you one thing when you watch Joshua on stage you feel like standing next to God of Software, although when you see and talk to him face to face you can' t believe how gentle and modest person he is. He clearly shower great examples to follow and not to follow on stage. When you watch him you really feel like you are a beginner getting lessons. End of session he magically disappeared and apperaed in the bookshop. Of course I wouldn' t mind buying a copy of "Effective Java" to get his sign, eventhough i used to have the book and read it many times before. Next year if you will be there please do not miss him!
(TS-5214) Java Persistence API 2.0: What's new?
What is new? all the missing features seem so complete now. I remember how JPA annotations were not enough and we need to use hibernate specific annotations in previous projects. JPA really become a complete abstraction layer at last. Validation, ordered lists, embeddables, and much much better inheritance mapings are some of the new features. Criterias and Examples are a part of JPA now and it also supports optimistic and pessimistic aproaches.
(TS-5418) Building Commercial-Quality Eclipse Plugins: By the Guys Who Wrote the Book
Well actually should be one of the guy who wrote the book since only Dan Rubel was there. This is also one of the best sessions you can ever watch. It was a very detailed session on commands, how to build the menu contribution, how to save your plugins state on exits, perspectives, handlers... As much can fit in the time. It is so hard to not to buy the book after you watch the session which s available at Java Bookstore (of course if you are not lucky enough to get a free on from him). Dan really showed detailed stuff and gave good information about how plugin engine works, I wish he had more time to show more stuff.
(BOF-1304) Google App Engine: Java Technology in the Cloud
Clouding is one the most popular topics, and GAE is a promising one. Actually if you want to use GAE you must accept some limitations; it uses google stardart apis, limited to 30 sec http requests, no serer push, read only file system, no threads, runs on jetty based server but doesn't supprt jetty specific features, no tework connections, no 2d, no native code, restricted reflection, doesn't have a full relational sql database with joins! Sounds scary, no... Actually it is great all those features are what google label as bad, evil and causes poor performance. They offer alternatives for anythong they don't support. First they ask you to design a denormalised database not relying on joins on BigTable. What they ask makes sense, they say they use this in all google projects runs fast and can be used in this way if you change your design perspective. It doesn't have schema or global transitions but it is naturely partioned, hierarchical datastore with full JPA/JDO support. No threads or server push but they have webhooks, so for example you can callback when an email comes. No java 2d but they have an images API. They support guice, spring, aspectj, blaze (which i had some problems), grails, gwt, tapestry, jrucy, jython with a full servlet 2.5 container and this all comes for free as startup and everything is configured out of the box. Give it a try!

Thursday June 4:
Ok I started feeling sad since we pass the half way. Started posting twitter messages like "Can please someone extend JavaOne" but no one cared... Thursday was an important day in the history of JavaOne. It was the day where Microsoft was on stage for the opening keynote. They try to convince us how they work for compability, how they support open platforms.. etc. I hope they are honest, but i really feel like Microsoft started loosing in all fileds. Everyone in the confrence (not only presenters!) use mac books or linux pcs even on Sun terminals which people use to check mails, do registration people choose to run on ubuntu instead of windows 7 (during boot you given chance to choose between ubuntu 8.04 and windows 7). Microsoft is a key player I hope they just don't fade away... It was nice to see dteails of project Stonehenge, whichs is for interoperability between Java and .net.
(TS-4839) Enterprise Integration Patterns in Practice
This session was much more than I expected. It was about Apache Camel and Project Fuji. While Bruce Snyder showed us how to use Apache Camel and reduce Enterprise Integration codes dramatically, Andreas Egloff recreate the same solution on Project Fuji. Both look nice and easy to use. Apache Camel offers very easy and nice way to script and route messages where Fuji offers a web based UI to draw for similar purpose. I just feel like Camel is a bit more stable but i think easier to do wrong stuff since Fuji offers graphical UI.
(TS-5205) Writing Killer JavaServer Faces 2.0 UI Components
I am not a fan of JSF and the progress made in JSF 2.0 is not enough to convert me as a fan. Frankly I will consider either rich clients like Flex or JavaFX, or will just use GWT. However I must admit JSF going great, the new features are well choosen. This session was ok, but most of the examples didn't work but at least we have seen the error messages are more clear.
(TS-4086) Visual JavaFX Techology Based Design with JFX Builder
Go download and give it a try! It is a web start application (actually a full IDE) which lets you build JavaFX just the way you build Flash and it is free. The generated code is not hard to understand and seems portable. I am very suprised to see such a product from a third party. It is one of the very few icons on my desktop!
(TS-4351) Building Facebook and OpenSocial Applications with Java Technology
Interested in how to build apps for social sites? this was a session for you. Differences between facebook and open social containers, types of datas and actions, how to integrate, use services and buils your UI...
Sadly I missed (BOF-4548), (BOF-4870) to attend After Dark Bash Party at Marrion. The band was nice also the food. Met with some friendly Indian guys who offered me a seat and even their drink tickets.
(BOF-4844) Java and JavaFX technology and the Nintendo Wiimote: Just How Much Fun Can You Have
It was worth leaving the party early to join this session. I've always enjoyed watching sessions of Java Evangelists Angela Caicedo and Simon Ritter, this time it was much more than enjoying. First Simon gave some technical details about the setup. It is very interesting to learn Nintendo's wiimote has a horizontal sensor covering more area on right side than left, wonder if this is racisim against lefties :). Actually I tried to work with wiimote using WiiRemoteJ but of course they went much far than me. Ohh by the way this impressive show was a sneak peak of the following days key note; Gosling's Toy Show...

Friday June 5:
Godfather of Java is on the stage, this is the long waited show by might James Gosling. I have seen him several times during JavaOne but still seeing him that close on the stage is great. This was the best keynote in JavaOne, its is both fun and showing good uses of Java (such as health and education).
(TS-4564) Gaming Package for Java Technology on TV: Solving the Gaming Problem
A session about basics of gaming concepts, actually I was expecting more. Seems like either the presenters or the Java is not really prepared for the new age HD TVs.
(TS-5307) Building Next Generation Web Applications with the Spring 3.o Web Stack
First of all SpringSource Tool Suite is free! and you dont need to have a seperate download just start your eclipse and add the update link. Spring is very inspirational and doing great, I can't imagine where would Entreprise Java be today if they weren't existed. Spring 3.o has great improvements and features and will be available soon. The other news is (which I had been using for a long time) BlazeDS integration. Spring accepts and integrates BlazeDS as a core component which makes Spring as the best choice for Java-Flex integration. It was nice to meet Jeremy who is the project lead of Blaze integration, although did not have much time to talk.
(TS-5485) Case Study: Automating Financial Services, Using a Java Technology-Based Enterprise Server Bus, Flex and PDF
A very interesting session showing how Business Process Management would be with Adobe tools. Integration wirh Flex and PDF offers the most impressive UI both for the user and the development process. Well they promise us to send education DVDs, still waiting.
(TS-4644) Move Your Users: Animation Principles for Great User Experiences
This was the best session I watched at JavaOne. Romain Guy of Google and Chet Haase of Adobe (who used to be in swing team and wrote the great book Filthy Rich Clients) made a great show about how to design and animate user interfaces based on the basic animation rules of Walt Disney. The rules, the slides, the examples and how they present it was just great!
(TS-4062) Building Java Technology-Based Web Apps with Google Open-Source Technology
Thats what they call Googley Java. Google doing great with Java and likes to show off how they do it. Want to build a web application? Use Guice, design with GWT, use runAsync methods for performance (how to use? just watch story of the compiler session at Google I/O) and test with webDriver. Great session also showing how MVC should be.

The bookstore was looking so attractive and charming. The ones I bought? ok here is the list;
Effective Java 2nd edition, Bloch (signed :) )
Essential JavaFX, Anderson Anderson
Eclipse Plugins 3rd edition, Clayberg Rubel
iPhone in Action, Allen Appelcline (actually I was looking for another one, but i always like in action series)
GWT in Action, Hanson Tacy (after so much google and GWT stuff so hard not to buy)
Beginning JSF2 and JBoss Seam, Tong (Gift from Apress, Thanks!)
Web 2.0 Architectures (Gift from Duane Nickull from Adobe, Thankss)
Adobe AIR for Javascript Developers (Gift from Adobe)

Well thats the end... at least for this year. After this session I sit around for a long time and didn't want to leave Moscone. Than I realise people carrying boxes, lcds around and instead of carried out I left the place.
Thanks for the magic show Sun, see ya next year...

After Google I/O 2009

This year Google I/O held on may 27-28 at Moscone West. The registration was closed over a week before and there was more 4000 attendees which I was also luckly in them. Actually my San Francisco trip started a day before joining Google Technology User Group Party at San Francisco where I also had a small presentation.

Google I/O started great, google managed to build so many products and made so many API's available that they really had much to show us. The keynote started with the demonstrations from Google App Engine, GWT2, HTML5 and of course the Android. Actually the moment they mention about Android they also offered us free HTC Magic Android phones so that we wont suffer with emulators. Google is really very generaus and bold in such stuff. Actually when they say that they have more suprises for the next day expectations are set to so high, I was expecting a free macbook to make us work on GWT2, some other people were expecting them to hire us all.
The food, bewerages and the party were all great. When you are in a google organised event you always feel the 'unlimited'. Coffee? it was like a local starbucks inside the moscone operating all the time (unlike javaOne), food? no one asks for a ticket like javaOne you can eat as much and many times as you want. Drinks all unlimited. Even the confrence guide, google announced the will only provide soft copies to be environment friendly but you need a hard copy? they have more printers than a big office building to let you print your own copy in color! When they do that they really make you feel they do it for the environment not to cut down the costs for the conference (i am sure printing one for everyone would cost much less then setting and operating individual printers). Thats the way, the details Google makes you feel they are not evil and honest.
Here are some key points from the conference;

HTML5, seems great! You want to play a video? no need for flash player or jvm or anything just use the new Video tag and let your browser to do the job. The new browsers will also have ability to use hardware components such as GPU! In keynote google demonstraed a 3D application which is directly using the GPU letting the CPU stay as low as %5-10. Seems like with HTML5 need for Javascript will be much less with the new tags and fuctionalities.
Google App Engine, finally got the Java support and out of beta stage. Actually i also published stuff on app engine's java support and it looks really promising. To use app engine the first thing you must consider is to denormalise your database and use Google's BigTable. According to google joins are the main problem for the performance so to get rid of them you must implement BigTable's approach. When people ask about BigTable's performance, scability..etc, Google's answer was simple and fair enough... "we indexed the world with BigTable, all our apps use bigTable, just use it and leave the rest to us...".
GWT team will release version 2 soon and the improvements are awesome! async loading and detailed compiler reports let you know which packages loaded when so that you can fine tune and lower the startup sometimes much more than 10 times less! Results are great, and google also introduced us the Google Wave to prove us that big projects can be built with GWT. As someone who is interested, working, presenting and even teaching on Rich Client platforms, I must admit Google is really make me questioning my beliefs. They are doing great with simple html and javascript on GWT which is now as good as any rich client platform like JavaFX, Flex... etc.
Chrome is a great browser! It is my first choice as long as I work on windows but since I use either MacOS or linux there is no way i can use it. Even in presentations at I/O most of the presenters were using mac books so they used other browsers instead. Come on Google it can't be that hard, I am really waiting for Chrome for Mac!
Android, is really out and ready to rock! As a iphone user I will be very cruel to critisize android, it is definetly not a iphone but definitely the most closest thing ever and can really offer much more time to time. The app market is getting more advanced and soon will attrach more developers. Thanks to google I had the opportunity to use a HTC Magic running Android with unlimited call and data plan during my visit. Want to know where is best buy located in San Francisco just type "best buy san francisco" to the google search boc on the desktop, the browser opens automatically with best buy"s link with an option of "get directions". Just click that and maps application is triggered from the browser and shows you the way! Find the product you are looking for buy not sure if it is the cheapest one? scan the barcode using the cam and the barcode app triggers the browser directly searching for only the barcodes and showing you all matching products. This barcode application was also used during the conference to scan each others conference badge to get others contact details directly to the phonebook. The integration is great! Since apple is using such a closed box principle and not letting running apps background I can't even imagine such a functionality on iphone! iphone is still more capable with thanks to hardware but I believe with a such a open and flexible operating system, very soon more Android compatible phones will be out and as the hardware evolves one day we can really see the real iphone killer. For now Android devices are great compatitor but iphone is easier and may be a little more fun.
Guice, is very fun and easy to use and if you are on app engine just take it without even questioning! As their session name in JavaOne, Enterprise Java is fun again with Guice!
...and finally the Google Wave, for the ones who didn't watch the presentation, Wave is what email would be if it was designed today. It is built with GWT, letting fast startup and incredible rich interfaces and functionality. Can it replace email? well the question should be: does google want to replace email? if they do, yes wave can replace email, social sites, blogs, office and even ms project! and the most dangerous part for the competitors is google can replace each of them by offering great compability and integration but in long term this great integration and compabilty can really make other producuts to become useless and dissolve.
Sometimes I feel like Google is taking over the world just like in the SkyNet does in Terminator movies (I am not saying this in a bad way or sayingthey are evil or bad). They have so many products, apis, tools and services all look like just a small or medium sized fun project but actually is a part of a very big huge project and just acting its part (such as Guice). They didn't buy youTube to make profit on that, they needed the services for other products so they have it now. I really feel like when morning i will wake up and see from my phone to my computer everything would be running on and connected to Google services. As long as they keep the "Don't be Evil" promise (and give away free phones :) ) actually I am ok with them to control everything.
Every session I attended or didnt because it clashes with another is available online! Just go and watch, you will definetly like it!
Oh Microsoft you are in much more trouble than you think you are :) Great job Google!

ps. any one interested in joining Goggle Technology User Group Istanbul? go and get subscribed!