Of Code and Me

Somewhere to write down all the stuff I'm going to forget and then need

Speaking at JAX London 2011 October 1, 2011

Filed under: Android,guardian.co.uk,Java — Rupert Bates @ 5:15 pm

I am going to be giving a talk about the development of the recently released Guardian app for Android at the Jax 2011 conference.
The session is on the 2nd of November, more details here


Getting Json.Net and Gson json libraries to play nicely with dates using ISO formatting January 28, 2011

Filed under: C#,Java,Web,WebServices — Rupert Bates @ 2:38 pm

I am working on something at the moment where I have a service written in .net which serves json created using the Json.Net library. This is then consumed by a client app written in Java which uses the Gson library to deserialize that json into Java classes. This was all working fine except for dates which caused parse errors in Gson.

The solution I am using is:

use ISO time format when serializing with Json.Net

    string json = JsonConvert.SerializeObject(entry, new IsoDateTimeConverter());    

When Deserializing with Gson set the date format as follows:

        GsonBuilder b = new GsonBuilder();
        Gson gson = b.create();
        gson.fromJson(json, MyObjectType.class);

Error .apk.res not found In IntelliJ Idea Android project January 27, 2011

Filed under: Android,Error,Git,IntelliJ,Java — Rupert Bates @ 10:32 am

After pulling the latest source of an android project I am working on from GitHub I got the following error:

MyProject.apk.res not found. Try to rebuild project

But no amount of rebuilding would fix it.
It turned out that the problem was that somehow the Module had lost track of which Android platform it is targeted to. To fix it I did the following:

  1. Bring up the Project Structure dialog (File/Project Structure or ctrl+alt+shift+s)
  2. Make sure that Modules is selected in the Project settings pane (far left)
  3. Expand the node with the name of your project in the middle pane and click on the Android node underneath it. This selects the Android facet.
  4. At the top of the Facet pane there is a drop-down list which you can use to select your Android platform. If there are no entries in this you can create a new one by clicking ‘New’ and locating the directory your Android SDK is installed in.
  5. Click Ok and rebuild, the problem should now be fixed

It seems that the problem is caused by Git in some way, but I’m not exactly sure how yet. I’ll update here if I find out why.


How to add a project reference – an introduction to IntelliJ IDEA 9 for Visual Studio users October 9, 2010

Filed under: IntelliJ,Java,Visual Studio — Rupert Bates @ 1:19 pm

To add a reference to an external library (the equivalent of right clicking on project references and selecting ‘Add’ in VS):

  1. Goto Project structure dialog (File\Project structure or Ctrl+Alt+Shift+S)
  2. In the ‘Project settings’ pane select Modules
  3. Make sure your project is selected in the middle pane
  4. Click the dependencies tab in the right hand pane

You can now add and delete dependencies on libraries (equivalent to adding a project reference).

There are a number of different types of depency you can add, here they are with my best guesses at how they translate into Visual Studio terminology:

  1. Single entry module – a reference to a single jar file – same as adding a reference to a dll in VS
  2. Module library – a reference to a group of jar files (accessible only to this module?) – no real equivalent in VS
  3. Project library – a reference to a group of jar files (accessible to whole project?) – no real equivalent in VS
  4. Global library – a reference to a group of jar files (accessible to all projects?) – similar to adding a reference to a dll in the GAC
  5. Module dependency – a reference to another project – same as a project reference in VS