JavaCamp #2
Yup, it’s time for another JavaCamp “review”.
This time I was able to attend the whole thing, and didn’t miss the pizza – well, I just got one slice since we were so busy talking about Google’s Android with other programmers… ;-) The agenda was shorter than last time, but it still “had it’s moments”:
Łukasz Lenart – “Google AppEngine – chmura na Ja(v)wie”
Łukasz, from the Warsaw JUG, was talking about Google’s AppEngine – it’s baisically Just Another Servlet Container but since it’s in a Cloud, it’s (potentially) easy to scale an application deployed on it… But the biggest benefit of deploying to the AppEngine is in my opinion: free java hosting. If our app doesn’t exceed some specyfic quotas (most importantly is smaller than 500MB – concerning the Data/Blob Stores) we don’t have to pay Google for the hosting. You could call this a free cloud for beginners, and if your app gets bigger, you’re kinda trapped in this clound, and then have to pay google some fees for the extra bandwidth etc.
Sadly not everything is “allowed” and we are restricted by a Java Class WhiteList. Also, there is no Relational Database available for us on the AppEngine – instead we can use the “DataStore” with GQL (or JDO or JPA) and for files there is the (now in “beta” status) BlobStore – the name explaing everything I guess… ;-) Another “restriction” would be not being able to access the filesystem. I can only guess why, but it would seem that this would make the AppEngine easier to scale… (sadly I’m not an AppEngine Developer so that’s just my wild guess). Ok, but why did I put the word “restriction” in quotes? Because I don’t think this “restriction” is that much of a hurdle… We can always use resources from inside our WAR by using Class.getResource() (I didn’t test this on the AE, but it sounds plausible and should work) and for uploaded files there’s the BlobStore. There are some more “services” like simplified threading (normal java threads wouldn’t be easy to controll by the AppEngine I guess, so that’s why they introducet this option) and some more – there’s XMPP, Mailing support etc…
All in all, I wasn’t a big fan of cloud’s to begin with, and even though the AppEngine seems like a nice place to Deploy, I’m not really convinced to go with it. The presentation was all right and I did learn some thing’s about the AE I didn’t know before – and the “show what doesn’t work and not what does work out of the box” apparoch Łukasz took, was really nice much more interesting than just “click… yay it’s working” – as it doesn’t go like that IRL most of the time…
That said, I’ll stick with a Tomcat server for my GWT-Crossword.
Oh, and the slides are available here and the source code of the demo (“Struts2 on AppEngine”) he showed can be pulled from mercurial by:
hg clone https://lukaszlenart-wjug.googlecode.com/hg/ gruuf-done
Miroslav Kopecky – “Outlook to Android Application Development” (yup, another Google product today)
I own an Android powered (and there for Linux powered :-)) HTC Hero since two days, but am not “new” in the Android API as I’ve been reading quite a bit about it since it was announced alongside with the G1 (or was it announced before the phone..? hmm…). Mirek’s presentation was an introduction into the Android Platform, or as we noticed “Framework”, as coding Android apps feel’s very much like using an framework (yes, every API is more or less something like a framework, but the “feel” here is really framework-ish, with lot’s of method overriding etc.). After some introduction into an Android Apps structure, Mirek went on and showed 4 application demos. They were using simple layouting, Contact access and at the end event Google Maps. It may have been hard to follow for people not accustomed to Android and wasn’t all too in depth, but the overall idea most probably came through.
I’ll write some Android App for sure in some time – first I’ll have to quickly finish my GWT-Crossword… It’ll probably be a ContactMerger – something that’s clearly missing in all google apps and is constantly nagging me. That is, an app to easily merge contact duplicates into one contact. This could be really nicely automated, and when some conflicts are detected a normal 3-diff-like dialog would be enough to quickly merge a few contacts into one… Sadly my HTC Hero still has the uber-old Android 1.5 and the contact’s access API has significantly changed since then… I think that by the time I’m ready to code for android the 2.1 ROM Upgrade for my Phone should be available… So I’m focusing just on the “Level 7″ API (“level 7″ means “android 2.1″, whereas “level 3″ means “android 1.5″).
Piotr Maj – “Jak czerpać przyjemność z programowania w świecie krótkich terminów i parcia na słupki”
This presentation really stood outfrom the rest, it was fun and while not really tech focused, quite interesting. Piotr started out with some awesome [plastelina] figures that his wife made esspecially for this presentation: a “Garniturek” (Marketing Guy), an Programmer and an Evil Looking Tester. The figures were really hilarious… :-) Anyways, he started out with showing sources of [depresion] bad feelings in our day to day jobs, and pointing out that if we do something again and again, and still are doing it the same way – something’s not right, we don’t evolve if we code like that… Then he went on with introducing the Tester figure and some scenarios of a Tester humiliating Programmers. A few words about Selenium and then we were talking about how writing tests it both necessary and potentially really interesting. So in the end, we ended up talking about Unit/Functional Testing and Test Coverage – who would have thought, by the title of the presentation I was expecting something else, but it was a really plesant presentation nonetheless, and the need of testing code can’t be stressed enough I guess – maybe I’ll start to have a major test coverage of my code thanks this constant nagging about them ;-)
Pizza Time
During the pizza-break we had a long talk with Miroslav, and people could play around with the Nexus One he brought especially for this presentation. It’s interesting to hear out other developers views on some API. I for example find the Android API quite nice. The “J2ME Hell” I have been coding some stuff for burns even fiercer now that I have the option to choose another Mobile Java Platform – at last with cool things like SQLite, Widgets and Easy Touch Responsiveness – oh an the BackGroundTasking is a great feature – something J2ME never had I think, on the other hand, what good stuff did basic J2ME have? Yeah there were some JSRs that made life not so painful on ME, but on most of my phones there always were problems with them – MMAPI for example, where you sometimes had to code something SE or NOKIA specific – so where is that “write once” gone on ME eh…? Later on we talked with Miroslav and it seems that he’ll be at our SFI next month – yet another great conference… :-)
One of the developers had an Motorola DROID, which I have considered buying but decided for the HERO – for money reasons… The DROID’s (MILESTONE’s) phicical keyboard really sucks, by the way. That, plus the fact of how awesome the on-screen-keyboard of Android is made me not regret buying a phone without phisical keyboard… ;-)
Marcin Kalas – “Java/JEE Performance Test Planning – How To Plan Successful Performance Tuning of Java/JEE applications”
I had really high hopes for this presentation, as I’m currently doing JMeter Load Testing on MySQL engines at my University. Sadly this wasn’t a “practical” or “hands-on” presentation. Yeah, I understand that it’s really hard to show this kind of stuff in such a short period of time, nonetheless I hoped for some more “tricks and advices”. The some tips about the JVM and multiple GC Strategries were quite interesting, but that’s something I’ll need to lookup and read about when I’m going to need it as it’s clearly a very big topic.
Marcin surely has a lot of experience in performance tuning apps that’s clear and it was really interesting to see some people (Java Gurus) from the audience throw some interesting stuff into the presentation. Real JEE apps are really something amazing, I hope I’ll be able to code and work with such apps in my future, it’s an amazing world full of Gigantic DataCenters and Techniques no small app would ever find any use for… For now I’ll have to get good at the basic stuff I guess, I’ve still got some time. What I found very interesting were the Load/Stress “Patterns” Marcin displayed. For example if your application is always busy, or strangely idle – even with lots of request’s comming in etc. It’s something that really makes you think about the app/server and bottlenecks… Sadly I can’t seem to find anything similar about those online – maybe I’m just not searching well enough. I hope to see some of those behaviours while testing our databases, we don’t have multiple application layers in these tests and finding bottlenecks should be easy – it should be, right? ;-) Anyway, I hope to have some fun experiments with our mini-server.
GeeCON 2010
The whole event was also a small GeeCON campain. People got some stickers and [smycze] with GeeCON branding. I’m planing to go there as it seems like an very amazing event… This year it’s in Poznań, and it’s being organized with cooperation of the Poznań and Polish JUGs. I’ll keep you up to date about upcomming Java Events – the next being SFI and then *something special* in April :-) Well then… “Let’s move the Java World!”


February 20th, 2010 at 07:58
Hi, your description is very detailed … I decided to not create other one (link to yours) I missed my time and I post my today. I only described my feeling from as I had only 2 pieces of pizza ;)
Cheers,