Wednesday, June 27, 2007

Vandals

It was 11:30. Someone, male, college age, started drumming outside our bedroom window. I asked him to stop, to which I received a barrage of expletives. I mentioned that he just woke us up, to which I received "Big deal, there's no school tomorrow". I said I was going to call the cops, thinking I would call the noise police (S.N.A.P.). 30 seconds later, we had a beer bottle through the bedroom window. Lame-o.
That was the first time I called 911. They were very fast and very polite, even super nice. Go SLOPD.
Oh, We close our escrow on Friday. I guess we're going to have to have the window fixed a.s.a.p.

Wednesday, June 13, 2007

Two weeks on GWT

So far using GWT has been a mixed bag. I am familiar with the typical GUI programming frameworks like Swing, and GWT fits right in with that model. Here's my quick pros and cons list after my short introduction to the framework.

Pros:
  • GWT programming feels right at home for someone familiar with Swing.
  • Having used Dojo and GWT for AJAX, I much prefer GWT because of its seamless feel. Programing both the client and the server in a single language against similar interfaces just feels right.
  • Your IDE helps you along the way (most of the time). For the most part GWT integrates well with typical IDE features like "find usages of this class" etc.
Cons:
  • The GWT compiler wants access to all source involved in the client side compilation. It is not sufficient to have the compiled class files available, GWT wants the original java source. This makes working with value objects from a service interface awkward since I typically do not package my service source for consumption by a later stage of the build. I cannot think why GWT needs the source, since all the necessary info should be available in the bytecode (especially since GWT does not support 1.5 features).
  • The service call requires two interfaces, an async interface that the client interacts with and the sync version of the same interface that the service side implements. This reminds me of the EJB days with interfaces that had to mirror each other but were not connected. I complete understand why they did things the way that they did, but it just does not smell right. I think I would have rather had the service side implement the async interface.
  • GWT does not support java 1.5 features. This includes the new(er) for loop construct! I think this problem would be solved if GWT operated off of the byte code, since much of java 1.5 was semantic sugar.

Wednesday, June 06, 2007

GWT and long types

I've been digging in further with GWT. I ran across an interesting situation with the support for the java primitive type of long. In my case, I wanted to communicate an identifier (ultimately an id from the database). Typically, I use longs for these ids. However, once I sent the id from my service to the GWT code I would lose precision on the id. For example, the id would be 1131768484235521818 but the GWT client would see the id as 1131768484235521000. The key difference here is that the last three digits were rounded off.

The GWT documentation does warn about this, I just hadn't read this particular part. In my case, this issue was solved by converting the long to a String before sending it to the GWT code in the browser.

Monday, June 04, 2007

I haven't forgotten

I'm still working out some of the kinks on the maven-spring-gwt integration. There have been a few bumps, mostly with preconceived notions about how I want things to work. After going through this integration project, I think my top items from a technology wish list point of view are:
  1. Better Maven documentation. I love Maven. Version 2.0.6 seems to be working better than ever. The downside is that some features just aren't that well documented. At one point I wanted a project that resulted in building both a .war and .jar file. The war file would be the complete web application whereas the jar file would be just the java code. I didn't find an easy way to do this. Anybody know how?
  2. GWT widget mapping. I have several pages on my application that already contain forms and form validation functionality. What I really want to do is add a GWT widget to the page that can respond to keyboard events on the form. I'm sure there's a way to do this, but I was hoping it would be as simple as creating a textbox widget and configuring it to map to a textbox already rendered on the page. I will definitely circle back on this issue.
I have everything basically working now, it will only be a little while longer before I start posting my tutorial.

Monday, May 28, 2007

Happy Memorial Day

I think I've got the blog layout dialed in for now. I'm going to stop fidgeting with it and get some work done. Happy Memorial Day all! I'll be back soon.

Sunday, May 27, 2007

Welcome back

After three years away from the blog, I'm back. We'll see how this goes this time around. Professionally, I've been working with Spring and Maven building websites. I plan on running a series of how-to posts describing the interesting nuggets of information I've found along the way.

First up, I will be doing a step-by-step walk through on integrating GWT into an existing Spring web application built with Maven.

Oh, by the way, the local Honda dealer did take care of our car.

Tuesday, April 27, 2004

Cracked Manifold

More on the Honda Civic problem. We most definitely have a crack in the exhaust manifold. It's very easy to remove the cover and see the crack.

About getting it taken care of... Before Honda USA will even consider fixing it for us, the vehicle must be visually inspected by the dealer. We got that taken care of today. The dealer was nice, but removing the manifold cover on a HOT engine was a pain! More on Honda USA later...