Google IO 2008

I’m glad I live in the Silicon Valley! The best part about living here is the opportunity to mingle with like minded people. Since its the summer and classes are over(yippie!), I went to the Google IO conference, google’s developer event at San Francisco’s Moscone West Center.It was 2 days of extensive coverage of various aspects of google’s technologies. This year, the emphasis seemed to be on:
1. Google App Engine(Duh!)
2. Android
3. Open Social.
4. Google Web Toolkit
5. Google API’s like the maps API, etc.

The talks I attended over the 2 days were:

1. Client, Connectivity, and the Cloud – Vic Gundotra :- The keynote session was called “Client, Connectivity and the Cloud” and Vic spoke about how Google, being primarily an internet based company, cares about moving the internet forward. This benefits both Google and us, the users of the internet. Fair enough.

Vic announced a few things about the Google app engine’s tentative pricing model, new release of the google web toolkit, which is now compatible with Java 5 and a few announcements about Google gears and the OpenSocial API. Check this blog for details about the announcements.

2. Painless Python for Proficient Programmers – Alex Martelli :- This was a 2 session talk, part 1 was a basic introduction to the python syntax, books about Python, Python in comparison with Java and C++, and so on.
Session 2 was a little more technical and was pretty interesting for me, probably because I don’t know python :-), I’m sure someone who knew python would get bored, as Alex himself announced at the beginning of the talk.

Python seems to have a command line interpreter as well to crank out quick implementations and test out ideas, which is really useful. After being exposed to a similar interpreter with Scala, I was curious why Java doesn’t have a similar interpreter, turns out there is one, called “bean shell” . I highly recommend this to smart programmers who don’t want to go through the pain of creating a class, typing the lousy public static void main blah blah just to try out some string manipulation, etc.

3. Open Source is Magic – Chris DiBona :- Chris’ talk was a general one, but really funny. Chris is a personality for sure! Chris has a long history of being involved with open source projects and is now the Open Source program manager at Google. He spoke about how open source works at Google and why Google supports Open Source. Also, he also spoke about the Summer of Code program at Google and a similar program for high school kids called “Google Highly open Participation contest“. Interesting talk over all. Also, Chris was the Principal Speaker at out Department’s Convocation this month. I wasn’t there though :-).

4. Underneath the Covers at Google: Current Systems and Future Directions – Jeff Dean :- This was a really fascinating talk. Rarely do we get to hear detailed descriptions about Google’s infrastructure and how they handle massive requests the way they do. Jeff Dean has been at Google since 1999 and has done a lot of amazing work.
He covered a lot of fascinating topics like Google’s implementation of Mapreduce and BigTable, how new employees at Google get comfortable with the infrastructure, the programming languages used at Google, etc. A detailed description is available here.

5. Monetizing Application Traffic On Social Network – Sourabh Niyogi :- This talk by one of the founders of Social Media was not at all what I expected out of the talk. I went in thinking that this would be a generic talk where the focus would be on monetizing strategies for a person who has an application which is social networking oriented, but this talk turned out to be basically on the lines of ” if you develop apps for facebook, myspace or hi5, come to us and we’ll put ads on your application and send you a check every month” which was pretty lousy.  What sucks more is this was my first talk for Thursday and all I could think of sitting in the talk is, how much longer until lunch time !?

6. GWT Extreme – Ray Cromwell :- Ray spoke about some of the advantages of GWT over regular Javascript, for those who dont know, GWT(Google Web TOolkit) is a web framework which compiles to highly optimized Javascript and makes it very easy to write fast, ajax based applications. The code looks like the code one would normally write for a swing based application and being so, programmer productivity is pretty high.
Ray compared JQuery with GWTQuery and showed how GwtQuery uses annotations and compilation to get a 7:1 code size decrease when compared to jQuery. GWT also uses deferred binding like Ruby which is pretty cool. I’ve really liked everything I’ve seen and heard about GWT and probably will be my framework of choice for any application I develop next for personal use.

I didn’t attend as many talks as I’d have liked because I spent most of my time playing foosball! Believe it or not, this is my first time playing foosball and I loved it! Although I still suck as a player, I loved every minute of it. I also made a lot of good friends while playing, so I had a good crowd to hang out with during the evening’s party on day 1.

My Foosball Friends

The party itself was so much fun, disco lights! Video games! Lots of food and alcohol! I got my fair share of all the action :-). The concert by Flight of the conchords started around 8.00 pm and went on for a couple hours. I love the funny lyrics the band has, although its not really my kind of music, but it was fun nonetheless.

Also, with the mention of Google comes the recollection of the fact that the people there eat all kinds of awesome food! Life was good at the Moscone west center too! They had three types of menus, The Deli Menu, The Grill Menu and the Mexitali Menu. Did I also mention that they had snacks available all day long?! Fun Fun!

Finally, Thursday was mainly all about the talks, I went to a couple of them but mainly played intense foosball! and it ended around 4.15 in the afternoon and I left feeling really happy about being in the Silicon Valley :-).

Photos from the event on

Day 4 ! Last day at Java One!

I decided to go although I saw the email alert about the Stomach Flu virus at the Moscone Center. I didn’t want to miss the last day of the conference because of a stupid flu, but it did affect a lot of people at the conference, including Joshua Bloch! Yue and I left really early, around 7 am to attend the General Session with James Gosling, so starting with that, the talks I attended for Day 4 were:
1. Extreme Innovation – James Gosling :- During this talk, Gosling presented a lot of really cool technologies like the pulse pen, the intelligent car, Javascript support in Netbeans, and project Darkstar

2. More “Effective Java”- Joshua Bloch :- This talk was a repeat for me, but Yue missed out on tuesday and wanted to listen and I went along. Joshua Bloch had the stomach flu, and I’m not sure if its because of that, but this talk was pretty broken compared to the same talk on tuesday.

3. Comparing JRuby and Groovy – Neal Ford :- Neal Gave an excellent talk comparing Ruby/JRuby with Groovy, and looks like Ruby beans Groovy hands down in most places. More interesting aspects of the talk for me was the demonstration of how one can write unit tests really easily for Java code with Groovy, exploiting some kind of access protection bug in Groovy. The slides for the talk are available here.
Personally, I’m more interested in using ScalaCheck for unit tests. Tony Morris has blogged about this here.

4. Rich Internet Applications with Adobe Flex and Java™ Technology:- This talk by Tony Constantinides was a big dissappointment for me, this talk was more an advertisement for Flex in terms of “buy the kit, pay! pay! pay!” than what it could do and how it could be integrated with the Java Webapps we write daily. I walked out after 30 mins of the torture.

5. Integrated Web Testing With Selenium :- This was the last talk of Javaone 2008 for me! Talk was about Selenium as a helper tool for Javascript programming and it was an unbiased talk( they promoted firebug too!). Funny part was that they didnt do live demos, they’d seen all the bad demos during the conference and decided to do it offline, record it and play the clips for the audience. Funny, but it worked out well. What I liked about Selenium, and which would make me want to use it is that you can record everything you have done and play it back, so that you know exactly what happened to get the point where you are at in the page. Good stuff!

Before the Selenium talk, Yue and I bought the Second edition of the Effectiva Java book and had it signed by Joshua Bloch! We got a really good discount on it too, so I’m really happy about it! Always wanted to have my own copy of the book(I borrowed and read the first edition), so am glad I got the new one.

After the talks, we hung around the place for a while, and drove back home to San Jose, sad that it was all over for this year! I loved the whole experience though and am definitely going back next year(err, if I get a free student pass!). Thank you Sun!

Day 3 of JavaOne!

Day 3 was a short one for me, I had a project to present in the evening for my Web Intelligence class.
I went with my classmate Glenn on this day, I attended only 3 talks this day:
1.Using FindBugs in Anger – Bill Pugh :- This talk by the creator of findbugs was pretty good, he spoke about using findbugs on large projects. My take away from the talk was how to configure findbugs to report bug patterns you want to see, etc.

2. Mylyn: Code at the Speed of Thought – Mik Kersten :- This talk was awesome! Mik leads the Mylyn open source project, which I have always been interested in. I loved the way he started and ended the talk, he hit the sweet spot for every developer, the lure of the “zen programmer’s mind”. That state of mind where code just seems to flow, where we make no mistakes and are invincible! He then presented mylyn as an aid. Really cool.

3. Programming with Functional Objects in Scala :- This talk by Martin Odersky was very good again, but after learning scala all semester as a part of my Programming Languages course under Dr.Horstmann, I was left wanting more from the founder himself! I’m really happy the langauge is being appreciated by a lot of the big names in the industry and I hope it gets used a lot more. I’m sure it will once the IDE support for Eclipse, IDEA and Netbeans gets better.

Martin Odersky

Dr. Horstmann with Martin Odersky after the Scala talk.

Other interesting things from the day was the afternoon chat between Dr.Horstmann and Joshua Bloch which I was fortunate to be around. Joshua bloch was showing code examples which used the new closures proposal and the possible confusions which could come from the new proposed syntax. Dr.Horstmann was still pro BGGA closures, but he sees how the new syntax can definitely be confusing and lead to problematic code. After sitting around listening to them for a while, we went to the room where the Scala talk was meant to be, and I continued talking with Dr.Horstmann about Closures, Scala and other programming topics, which was really interesting.

Dr. Horstmann chatting with Joshua Bloch at the booth
After the scala talk, I headed back home, the project presentation on my mind! Oh and it went really well 🙂 😀

Day 2 of JavaOne!

My day two was the best day the week! Left really early with Yue because we both wanted to attend the Closures talk by Neal Gafter. We have been studying both the BGGA and CICE proposals for Java 7 extensively in our Advanced Programming Language Principles class, and we had even attended a talk by James Gosling about the Future of Java. I have blogged about that visit to Sun Microsystems earlier.
The closures talk was very very good, Neal Gafter made it look very easy, and yes, I find it to be fairly easy, although I personally feel that it would complicate the language needlessly. I like what closures can do, but I dont know the added complexity the syntax seems to add, and Joshua Bloch feels the same way about the BGGA proposal about how return statements, etc from closures could lead to confusion and buggy code.
Other talks I attended on wednesday:
The Minion Search Engine : I loved this talk, I am really interested in data mining, and I have worked with Apache Lucene before, and I was interested in what Sun has come up with for this product which is a direct competitor and I was very impressed. I still feel that I’d continue using Lucene because of all the additional things I can get it to do, although head to head, Minion seems to be better, Lucene has a much better developer community, and there’s all kinds of workarounds to get it to do whatever I want.

Minion Search Engine

Boldly Go Where the Java Programming Language Has Never Gone Before :- This talk from Geert Bevin was again fascinating, he spoke about ,Terracotta, Google web toolkit, Continuations in Java(RIFE), the Android SDK and various other topics. Makes me want to give GWT a try for my own web application development. Read this blog for a better description of the talk.
The JavaScript Programming Language for Enterprise Application Scripting: by Olivier Modica and Zack Roadhouse, this was again a useful talk about various aspects of Javascript and its various libraries and I just wanted to sit in because I am fascinated by Javascript and one of the main goals I have for myself over the next 6 months is to use it wherever possible.

Yue and I ran around the company stalls getting our free stuff 🙂 and talking to people. We had our picture taken with the JavaDuke!

we also got free movie tickets! to the Ironman movie at the Oracle stall! The show was at 7 pm so we got out around 5.30 pm and grabbed a bite and hung around before getting to the theatre at 7 pm. The theatre was full of people with pink oracle tickets and it was funny as hell to see everyone enjoying their free popcorn, soda and running around to get good seats! We sat around passing sarcastic comments about everyone :-).

It was a long drive back at 10 pm to San Jose, and I had to get up early the next day, I wanted to be there for Bill Pugh’s talk at 9.30 am about using FindBugs in anger!

First day of Java One

Day one at Java one!
Caltrain again to reach there on time, the talks I attended were:
1. JRuby – why, what, how…do it now – This session was primarily a JRuby introduction and being such, it was pretty good.

2. More Effective Java – Joshua Bloch – Everybody wanted to be at this talk! With all the buzz about the new Effective Java book’s second edition coming about and Joshua Bloch being who he is, attracted a lot of people to the talk. The talk was just OK in my opinion, the beginning and the end was interesting, but the middle part of the talk where he focussed primarily on Enums and EnumSets made it really boring for me.

He introduced a nice way of remembering when to use ? extends versus ? super and called it PECS(Producer extends, Consumer Super), that is, if the code produces something, use ? extends and if the code consumes something, use ? super. Neat.

3. JavaScript- The language everybody loves to hate – This talk covered more of the technical aspects of Javascript and how its really cool, not just for client side stuff, but the intrinsic features of the language itself. The speaker covered a few of the popular Javascript variants out there like Jmaki, etc and also mentioned what not to do in Javascript which a java programmer would try to do.

4. Developing in JRuby using Netbeans – Ugh, was supposed to be a good talk, and I know the speaker is really talented and famous and one of the main committers for the JRuby project, but the demos just sucked and he just kept running into trouble and it made it very boring.

5. Defective Java code – Turning WTF code into a learning experience-William Pugh(creator of the Findbugs tool) – This was for me, the best talk of the day, the speaker used various code examples to highlight defects in them and also discussed the various ways of overriding the equals method and the subtleties behind using instanceof and getClass. He also took examples from the, which is pretty fun and a staple for many developers i think.

After this talk, Cal train! Here I come! Dr. Moh wanted me to be there for his class so I had to leave early on Tuesday. Missed Brian Goetz’s talk on concurrency! Dammit! There was quite a few other good sessions that day, I just need to get a hold of the slides/videos for those talks when they become available.

Community one Experience

My first time at Community one!
I arrived around 10 am, I was not interested in the keynote speeches which started quite early.
Since I was registered for both Community One and Java One, I picked up my badge for both together and then I was told to go pick up my free stuff! The most exciting part of the day :-).
Me and Yue(my classmate) picked up our free backpack, t shirt(s) and conference guide, along with a free Opensolaris cd, and then went straight to the first talk we planned on attending.
The talk was about “Java Script and Dom Design Patterns“, this was a pretty good talk and I plan on using the patterns discussed during the talk. The slides from the talk can be found here.
Next 2 talks I attended were about JavaFx, and since Sun is promoting it in a big way, I was curious to know what it was all about, and although it seems nice and useful, it seems primarily geared towards Rich Internet Applications for the Desktop, which is not something I am interested in. I was primarily interested in technologies to deliever rich content applications in the browser.
After that, I attended 2 talks about Ajax, the first talk was by 4 Sun Engineers who demonstrated how ajax based applications can be written in Netbeans and over all, the talk was pretty useful. The next talk was about Asynchronous Ajax and again, I really liked this talk and plan to use for my own applications. One of the speakers from the first talk has some useful stuff from the talk up on his blog here here .
The last talk I attended was one about “The Java™ Persistence API in the GlassFish™ V3 Application Server with EclipseLink“, I expected to find some kind of a demo about programming with the Java Persistance API + glassfish server using some kind of a neat Eclipse Plug-in which I didn’t know about, but apparently its a product on its own and has nothing to do with Eclipse. Yet the talk was pretty well presented and useful.
So, my day passed with a few nice but over all a mediocre set of talks, but the best was yet to come!
The evening “party”/community reception was something I didn’t expect!dancing girls! Free beer!! for some eye candy :-), check out this link for photos from the party!
Just as I was about to leave, I saw people lining up to roll inside the giant ball(don’t know what its called!) and I decided to try! If I was going to make a fool of myself, I’d rather have it done in front of a complete set of strangers! Great fun!
After that, I headed back home on a really slow cal train headed to San Jose. Eventful day 1!

2 Screens at last!

I kept wanting to get a second screen for a long time! Finally its here!My workstation!

Now, I can keep my code up on the bigscreen while i do all the smaller tasks on my laptop window. I’ve been wanting to get one ever since I read this research:

Researchers at the University of Utah tested how quickly people performed tasks such as editing a document and copying numbers between spreadsheets while using different computer configurations: one with an 18-inch monitor, one with a 24-inch monitor and one with two 20-inch monitors. Their finding: People using the 24-inch screen completed the tasks 52% faster than people who used the 18-inch monitor; people who used the two 20-inch monitors were 44% faster than those with the 18-inch screens.

So, now that I have a 20 inch screen( couldnt afford a bigger one!), lets see how much my “productivity” goes up :-).