With my trusty E71 functioning as good as a mini-PC for all practical applications including Maps/GPS, Instant Messaging integrated with Google Chat and other IM services, Email, Twitter, and various other applications, and surviving a few very tough falls, I never thought I’d upgrade my phone in a long time.

At some point I purchased an Android phone (LG Optimus P500) for my wife, and then when finally a ‘key’ key of my E71 stopped working, I thought I’d borrow her phone as a stop gap till I get it fixed. Well… no prizes for guessing that I ended up holding on to it considering that I still haven’t fixed the E71…

Well to cut a long story short, here are the list of apps that I’ve installed on it, they can be searched for in the Android Market. Highly recommended marked in blue. Of course, I’d highly recommend all Mobile Study based applications by Specadel as well. But then that might be biased considering I consult here 😉 But then they have got a pretty good rating in the market, so you can consider checking them out as well.

continue reading…

A helicopter was flying around above Seattle yesterday when an electrical malfunction disabled all of the aircraft’s electronic navigation and communication equipment. Due to the clouds and haze the pilot could not determine his position or course to steer to the airport. The pilot saw a tall building, flew toward it, circled, drew a handwritten sign and held it in the helicopter’s window. The sign said “WHERE AM I ?” in large letters.
People in the tall building quickly responded to the aircraft, drew a large sign and held it in a building window. Their sign said, “YOU ARE IN A HELICOPTER.” The pilot smiled, waved, looked at his map and determine the course to steer to SEATAC (Seattle/Tacoma) airport and landed safely.
After they were on the ground, the co-pilot asked the pilot how the “YOU ARE IN A HELICOPTER” sign helped determine their position. The pilot responded, “I knew that had to be the MICROSOFT building because they gave me a technically correct but completely useless answer.”

I’d read this story over a decade ago during my college days, and never thought I’d experience it first hand 🙂 continue reading…

We often require the IP address of the current machine. If you’re tired of opening a DOS box and typing ipconfig, here’s a small tool that copies the IP address and puts it into the clipboard.

Just download the EXE file into your system path (eg %windir%\system32).

Then, go to Windows Start -> Run (Windows key + R) and type ipclip.

Here’s the source code…
continue reading…

Grails is pretty fast to get up and running. We mainly need to be clear about one main thing, the domain model. The primary task is to identify the entities in the system as domain classes, and then elaborate on them adding properties. Then define the relationships between them.

Once this is done, we get a ready-made application to start with. Now to really play around with this application, it helps to add some test data. This is also useful to do some initial testing of our domain model, before we add controller logic to it.

Using the CSVReader class outlined here earlier, its easy to add some test data.

continue reading…

After examining different approaches of drawing UML sequence diagrams, today I came across a good way of drawing class diagrams as well. I don’t know how I didn’t come across this site before! Its a similar concept to the websequencediagrams site, where we can specify in simple text notation and it generates a pretty good diagram from that!

Yuml.me allows us to create very cool looking class, activity and state diagrams using a very elegant text based notation!
continue reading…

Objective: to have a seperate logger exclusively for writing some special messages to a seperate file.

Usually log4j writes to logs based on package & class names, as covered by the Log4J Configuration Documentation (In fact, some things have changed since Grails 1.1)

But we sometimes need a logger for logging special messages, though we may log other messages to the usual log within the same class.
continue reading…

Here’s a useful class that reads a CSV file and returns each row of values. Its based on some regular expressions I found on the net (unfortunately URL got lost, but its a fairly straightforward one to fine). Call back functions to make it a convenient way to read the input CSV file.

// create the object with the input path
def csv = new CsvFileReader(inputFilePath))

//  define a closure that handles each row of data
//  returned as a map of column name (defined by header row)
csv.forEachRow () {
print (it['ColumnName']) }

Here’s the entire code…
continue reading…

Coming soon:

how to make best use of your Nokia E71. Most of this might apply to E63 and E72 as well…

For now…

Just a hurried note, will add more details soon, but this should have the relevant info…

On Nokia, set up, Mail For Exchange (from Ovi Store), and then visit this link on google:

Google Sync for Nokia S60 to link your phone to your calendar. I’ve set up the sync time as once every 12 hours, as this is sufficient for my purposes.

Then on Thunderbird, install the Google Calendar Provider Addon (simplest way is in Thunderbird, go to Tools -> Addons -> and enter this in the search box, to install directly). This allows you to connect to the Google Calendar from thunderbird.

Instead of a TODO list, I create an “Event” for each TODO item, and this allows me to set up a reminder and a date for each item, and also syncs across Thunderbird, Google Calendar and my phone!

Pixelpipe is no doubt one of the one of the best, most convenient software services I’ve ever seen, that integrates seamlessly with Nokia’s ShareOnline of Nokia E71. I can upload pictures and video and audio right from my mobile into my blog or any other pre-configured destination!

Suddenly yesterday, it started giving an error “One or more media items discarded because your service provider does not support them”

I googled and found that there were other’s who had a similar issue, even few months ago (so it wasn’t a sudden overnight change on some server). But no one really had any constructive suggestion for a solution. I did try updating the service but that hadn’t made any difference.

Finally the solution turned out to be to delete the Pixelpipe entry from Shareonline completely. I was concerned that this might affect my content already online (in case it results in deletion of my account as well!)

Still tried it out as there was no other option, and then visited the site http://m.pixelpipe.com/nokia with my mobile browser, and downloaded the configuration file again. Finally this worked fine and I’m into uploading again!