Setting up JIRA plugin project in NetBeans IDE

Next CodeGeist competetition is most likely just around the corner so now it is good time to sharpen your axes and setup your coding equipment. It’s pretty clear that developers at Atlassian are using IntelliJ IDEA as they have pretty complete documentation how to build plugins with it. I also love IDEA but I also have strong feelings towards NetBeans IDE.

This is a tutorial how you can setup a new project in NetBeans IDE to start developing outstanding plugins for JIRA, the issue management software.

Read ahead if you want to know more…

Continue reading

Twim with Unicode support

I added UTF-8 encoding support to the Twim application. In case you didn’t know, Twim is Twitter client software that runs on all phones that support J2ME. With the latest version you should be able to see correct characters in tweets if your phone has required fonts available. Here’s for example my test tweet containing simplified Chinese characters:

This was rather easy to implement since we can define encoding when constructing stream reader from input stream:

  1. public void doStuff(InputStream stream) {
  2.   try {
  3.  
  4.     // Try to initialize reader with UTF-8 encoding
  5.     reader = new InputStreamReader(stream, "UTF-8");
  6.  
  7.  
  8.     // Device doesn’t support UTF-8, use default
  9.     reader = new InputStreamReader(stream);
  10.  
  11.   }
  12.   // …read data and do stuff…
  13. }

This version also has a new feature for refresing the feed without the need for restart. You can download the application from Phoload page or from here.

OpenStreetMap Surveyor Feature

Mobile Trail Explorer v1.13 contains a new feature which is called OpenStreetMap Surveyor. With this feature all you OSM users can add common places to your OSM trails very easily. This is how you can active this feature:

  1. Choose “Keys” section from Settings menu
  2. Choose which key you want to configure, # or *
  3. Choose “Surveyor” action for selected key

Now you can activate the feature by clicking the selected key while you are recording your trail. When key is clicked you are shown a list of predefined placemarks from which you can select correct entry. This way it is quite easy to add bus stops etc. while you are walking, biking or driving around.

Surveyor Display

Surveyor Display

Nokia E71 and new Twitter client

I finally upgraded my phone from N80 to E71. The new Nokia E71 is a really nice. Even the Symbian S60 feels much better now that the phone has enough memory to run it. Operating system still has not changed that much compared to my first smart phone, Nokia 7650 which I had in 2002. This phone is still the best one I have ever had. Even Joel Spolsky is using it.

Twim on Nokia E71

Twitter Client Twim running on Nokia E71

The new phone got me inspired to improve my Twitter client, Twim. I fixed a few bugs like showing the replies feed. I also added a new feature for displaying public feed in own tab. You can download the JAR and JAD files from the Twim page or directly from these links:

Twim v1.2: Twim.jar and Twim.jad

Drawing scalable numbers with J2ME

One of the users suggested that Mobile Trail Explorer (MTE) should have a speedometer screen which shows current speed with large numbers so that it could be used as a normal speedometer while driving a bike. One of the challenges is that MTE runs on different devices and therefore on different screen resolutions. For example my Nokia N80 has a very large resolution of 352 x 416 while latest N series devices are usually running with 240 x 320 and older devices are using smaller 176 x 208 resolution.

Using the bitmap fonts would have been a solution but that would require us to store bitmaps for every resolution and that would eat up a lot of valuable memory. I have used bitmaps fonts on SubOthello game. I think that it suits really well for mobile games which are targeted and built separately for different devices.

Trail Explorer Speedometer

To solve this more generic way, I created a NumberArea class for, which This is used to draw an area into Canvas where numbers such as speed and distance are rendered with basic Graphic methods such as fillRect(…) and fillRoundRect(…). If you are interested you can take a look into a source code.

On a side note: We are now on feature freeze with MTE so that we can release the v1.11 within a week or so.