Android: gTraffic UK Update

Well, it’s been a while since I worked on my UK Traffic application. With the release of the Android 1.6 SDK I thought it was time I made some updates. There are a couple of cosmetic changes most significantly I have ‘thickened’ the timebar marker. Also I applied a filter to the timebar colour to give a blur effect. Nice.

Main

You can see this in the above screen-shot. The previous one didn’t stand out enough for my liking.

There are also a few changes under the hood. In particular the map API is slightly different so I had to refactor the code a little to bring it into line.

I’ve decided to go back to the traffic NY application as well and see if I can do something with it. There are still 200 active installs which is interesting. I occasionally boot the app up on my developer phone and the last time I looked all the NYSDOT data was out of date so I think I am going to have to look into what on earth is going on with their RSS feed. I did mail them before and got a reply when I was moaning about there roadworks feed so we’ll see.

Other news is that I emailed Palm developers about my development of the debugger plugin but so far I have had no reply. I was asking about using the Palm SDK jar files. Well it’s been a week and I thought I would at least have got a response (saying no way) but nothing. Oh well.

Development of this plug-in is (so far) for my own amusement. I was thinking that it might me something I could sell but I don’t think I will beat the Palm developers to it.

It looks to me that output of the debugger is in gdb format. This would make sense as the platform is Linux based. To this end I got thinking about Antlr and parsing the output. Searching for this stuff is hard! Not many references but I suspect I will have to write some Antlr grammar to extract the file references and methods from the debugger output.

WebOS: Mojo Plugin vars

The following screenshot shows the loop variable highlighted because it has changed since the last step.

Variables

The variable status is reset on user-pause or breakpoint.

So, I am getting towards some sort of state where I might have to think what to do with this software. I think what I’ll try to do is develop a Mojo Palm Pre application using it. I am expecting Palm are working on there own version. They certainly mentioned that developer tools were a high priority on their blog. When they release their own this will become completely redundant but we’ll wait and see. For the heck of it I am going to keep working on it now and then.

WebOS: Mojo Debugger Stable

It’s looking good. After a mammoth effort to get my head round the Eclipse debug support and User Interface messaging I think I have a fairly stable version of a debugger now.

This has breakpoint, step and simple local variable support. The feature set is kind of at the mercy of the WebOS debugger really as it is the one driving the back-end.

Variables

The screenshot shows the application sitting at a breakpoint. If you look at the variable output you will see from the variables that I have been stepping around inside the for loop.

WebOS:Android: Updates

I think I’ll have a break from trying to debug the Palm Pre Debugger plugin as it is doing my head in trying to track all the threads of execution. I need to roll back to a simpler version so I can make sure that is working properly first before trying to get the variable dump working.

Android 1.6 is out and I have been very neglectful recently with my applications on the app store. Would you believe the most popular application is the first one I wrote ‘Simple Weather’? The others have been trounced well and truly in the download stakes.

Variables

The app store is looking for screen shots. I sat down tonight and booted up the Android emulator only to realise I hadn’t a clue what I was doing. So, I think I should spend a few days getting back into the toolset.

WebOS: Mojo Debugger Local Variables

Local variables support added.

Variables

More complex objects are going to be a bit of a challenge.

I am going to go back through the code at this point and re-factor out some of the more ropey looking parts.

WebOS: Mojo Debugger Step Support

Step support has been added.

Step

You can set breakpoints, break, step over, into and out of your code and resume.

States

Next is processing the variables.

WebOS: Mojo Debugger Breakpoint

I have literally just got this working after spending the last two days trying to figure out how to link the breakpoint to the source code. It turns out the solution is the last thing mentioned in the ‘How to write a debugger’ article for Eclipse. You need to create a presentation object. This returns a reference to whatever file editor the javascript is associated with, which if you have the Aptana plugin is the Aptana editor.

Breakpoint

This is version 1.4.4 of the plugin showing a breakpoint in the preferences view of the newsReader sample application. Note, the stack dump but no local variables yet. Also note the application is called ‘Mojo App #1’ in the debug window. This is so I can keep track of the strings I am using. I will go back through this and fix all that stuff at some point.

So this is quite a major milestone. When I started this I visualised that this was what I wanted to see. A breakpoint in the editor with the stack dump. The only bit that’s missing is the variables, that’s another issue in itself. I always thought I could get this working but I also had my moments when I doubted myself. If it wasn’t so late I would pour myself a McCallan but I think I’ll savour this soberly and look at it again tomorrow.

WebOS: Mojo Debugger State Machine

An hour here an hour there does not make for great progress. I am not an expert in regex so I have resorted to writing unit tests to try and sort out the parsing issues I’ve been getting with the debugger output. Here is a diagram with the state machine for startup, run and pause on breakpoint. This works sort of.

Debugger

Debugging this is a bit of a chore as the inclusion of the Aptana plugin makes Eclipse really really slow to start up – and of course I am listening to the Aptana javascript editor for breakpoints so I do need it. There might be stuff I can switch off but I haven’t figured out what yet.

Hopefully this weekend I will get a better run and factoring out some of the problems. The good news is that you can set a breakpoint and when it hits the debugger picks this up, gets the stack trace, gets the local variables (or it would do but this state is empty for the moment) before waiting for you to resume. I haven’t put in the step functionality yet although it should be straightforward (in theory anyway).

I am still waiting for Palm to announce their own Eclipse debugger support any day now so I can stop this programming death march (only joking, I think). I guess I’ll just keep going until I get to the point where I get totally stuck.