jueves, 25 de septiembre de 2008

Google Developer Day Madrid (GDDM2008)

This is the second time Google organizes an event here in Madrid. The first time it took place in parallel in several parts of the world and Google was very aware of this and released several tools just on time. We had, for example, a really interesting conference on Google Gears from the project's lead developer. I'm not sure about the new (first) Android phone but Chrome was not launched with this event in mind, that's for sure! The highlights for this year are OpenSocial, Chrome, Geo and, of course, AppEngine. The most interesting for me would be the last one but given that right now only Python is available and I don't know a word in the language I won't attend the session.

Thumbs up for the warm up. Good coffee and muffins :-). The introduction was mildly interesting, at least this time we didn't have online connections to other locations (and that accounts for something I guess).

So onto the first workshop! It was about OpenSocial. From a personal point of view I really dislike these so called "social sites" but talking as a developer..there's a lot of money lying around here. And that might interest you! Unfortunately the workshop was a complete waste of time. We received a brief introduction in Spanish (I rather go with English if the speaker just can barely talk in the native language) but later we had to suffer two presentations from a couple of OpenSocial sites. I call that advertisement and I came unprepared. Shit! Finally we were able to proceed to the coding which amounted doing the OpenSocial tutorial. I don't want to be harsh but someone at Google should realize that I can do that at home. I just need to follow 10 steps which can be summarized in one, cut&paste. I will add that we had to work in complete darkness as the building was not suited for the task (Madrid's Amusement Park)! All in all, this was an utter disappointment.

Time for lunch and again Google surprised me. I can't say anything but good about the meal. Well done here!

The next session is about start-ups. It should be helping developers to launch theirs. At least that's what everybody was expecting. The sad truth is it was about product development IN start-ups and they were showing Maps mash-ups. I decided this wasn't for me at all and jumped to one revolving Android development. In the end, I didn't learn anything about Android development beyond that it uses an Eclipse based development environment and some XMLs. I was able to see a couple demo applications but if you have an iPhone, well, seeing a couple mobile apps is not worth your time. It wasn't for me. It's pretty clear that if anything Google has really good people putting names here..

Half the day has already passed and I'm worried by now. The next talk is about AppEngine. May be this will be the one? Heck, if not, may be I should be packing. Fortunately, it was. The speaker (a guy from Mountain View) was not shy to recognize the limitations AppEngine has today (Python, the query language et al) and how to overcome some of them (sharding, memcached). He got the obvious "and what about Ruby/Java?" questions but he did not a give us any clue. Actually I asked about what type of Java support we could get (SE, servlet, complete EE) but he kindly refused to answer anything meaningful :-)

They announced a new Android session and I (crazily) decided to stay. This one was being given by an American as well (a New Yorker?). This time around it was meaningful. Less marketing crap and some insights on the platform. I was happy with it but it extended beyond time so I had to run to the next room.

Being a DWR committer how could not I attend the GWT talk? The speaker was good but just too fast. Speaking in English that fast is an unforgivable sin in this country though. You could tell by looking at the faces. The presentation was good but he spent 25 slides telling us the beauties of GWT. He forgot to mention that GWT is the most invasive and non-portable way to build a web app nowadays. That is, utter crap. Despite that I don't regret going to the talk. It was enlightening.

I couldn't assist to the wrap up and thus I missed the party as well (Google Spain was celebrating their fifth year in addition) but I guess it was good. Parties is just something we know how to do around here ;-)

In summary:
  • The pros
    • The effort
    • The organization (in every aspect)
    • The technical sessions
    • The foreign speakers
    • The party (I guess)
    • Food & beverages
    • The day off..
  • The cons
    • The workshop which is supposed to be the most fun was horrid (by so many factors!). Something that needs to be corrected for the next time
    • The marketing (just cut it!)
    • The mouth of the speakers was full of Openness but their speech was undoubtedly biased towards their own products (understandable?)
In the end, they managed to save the day and I returned home happy. I'll attend next year if I'm invited. Thanks Google!

sábado, 13 de septiembre de 2008

IWebMvc2 on the way

So, I've started what I said I wouldn't do, that is, a new version of IWebMvc. In fact, IWebMvc2 won't be a new version but a complete rewrite, from scratch. And why did I take this decision? There were many reasons but the most important is that I wasn't happy with the result and I knew I could do better. I don't want to be harsh on myself but IWebMvc was rushed because I was starting a new job and the quality suffered. In addition, it was a one man project which means that all the ideas and code came from the same source and, heck, it was my first try!

So here's a list of things that are going to change for the next release:
  • Project organization
    This was my main area of dissatisfaction. The code structure was a mess. The demo application was so entangled with the core of IWebMvc that it was difficult for me and impossible for others to separate them cleanly. The new release will clearly separate IWebMvc in three parts (sub-projects/jars), core, model & UI. The demo application will be stripped and available as a fourth project.
  • CSS
    I've never been a good designer and given that I was in a rush I wasn't worried in the least about presentation but, honestly, you cannot have faith in a framework that positions the labels using <br/> tags, can you? All widgets will, from now on, have cssClass and cssStyle attributes per inner component (label, input, button...) making the look&feel work bearable. I'll put some extra effort to generate good markup.
  • Extensibility
    Framework and application contexts will be independent. Framework services will be available to the lower layers but won't pollute the configuration files of the applications.
  • Better third party integration
    When I started IWebMvc Spring Webflow & Spring Security were not even in beta. JAWR was a last minute addition. And DWR3 was just beginning to get shape. Today, I've worked extensively with both SWF and SS2 in several other projects. I'm talking to JAWR lead developer to cover some IWebMvc needs (like dynamically generated JS files or double configuration for framework and application). I'll be using his i18n JS support as well. Finally, DWR3 today includes many many features that were detected while developing IWebMvc like wildcarding, annotations, multiple context support, remoting of lazy init beans or the included JSP tag or dojo datastore. Hibernate validators come to my mind as well..
  • Help is welcome!
    Last but not least, right now the project is in its infancy. There's a lot of room for improvement in many many areas (I don't want to name documentation but that's an obvious one). If you want to help now is the moment! Ideas, design considerations, code..whatever! Just let me know.
There's not much more that I can say for now. The task has just started. But be sure that IWebMvc2 will improve the existent version in every aspect. The goal is to compete with each of the other popular framework out there :-)