Trip to Chelavara Falls, Igguthappa Temple, Iruppu Falls and Nagarhole National Park

This is a continuation of an earlier post: Trip to Dubare, Pollibetta, Talakaveri and Bhagamandala.

The next day we started at around 8:30am after a good sleep for more than 10 hours.

We had already booked the jeep the previous day to go to 3 places: Igguthappa Temple, Nalknad Palace and Chelavara Falls. The jeep guy appeared right on time and we had a quick breakfast and were on our way.

The previous night we had taken the same route but we didn’t know what we had missed. The landscape was really amazing – the hills were green and the weather was awesome.

[ad name=”blog-post-ad-wide”]

Continue reading Trip to Chelavara Falls, Igguthappa Temple, Iruppu Falls and Nagarhole National Park

Trip to Dubare, Pollibetta, Talakaveri, Bhagamandala

After the wonderful trip to Mandalpatti, Madikeri – Coorg and Bylakuppe a week prior, we thought of going on a second trip to cover the other places in Coorg.

After considering several options, we finally narrowed down to a 2 day trip, covering the following places: Dubare, Pollibetta, Talakaveri, Bhagamandala, Igguthappa temple, Nalknad palace and Chelavara falls.

Continue reading Trip to Dubare, Pollibetta, Talakaveri, Bhagamandala

Trip to Mandalpatti, Madikeri, Dubare and Bylakuppe

After a really long period of about 5 months I went on a short 2 day trip to Coorg. The last decent trip was to Ettina Bhuja and Ombattu Gudda in February.

We started at about 6 in the morning and went to Madikeri. We stopped a few times on the way to click snaps.

[ad name=”blog-post-ad-wide”]

We left to Mandalpatti post lunch. Mandalpatti is known for its scenic beauty and is close to Abbey Falls.

Unfortunately this is not a good time to visit unless what you are looking for is an adventure. We were not prepared for what we were about to encounter. There are 2 routes to Mandalpatti – one which shares its route with Abbey Falls, the other which goes via Makkandur. The route via Makkandur is a bit longer but I would easily advise it over the other. The first route is extremely treacherous and there were quite a few places where the road was slushy causing the car to skid and scrape over moderately huge stones. The roads are very narrow and there were small water streams across the road. We had to stop several times to avoid brake-shoe or engine overheating.

[ad name=”blog-post-ad-wide”]

Continue reading Trip to Mandalpatti, Madikeri, Dubare and Bylakuppe

The power of Ubuntu – showing dynamic messages in your desktop background!

I worked on this cool hack to dynamically show Twitter messages embedded into the desktop background. The basic idea is to have some dynamic text (which could be fetched from the web) embedded in an SVG image, which is set as the desktop background. The SVG image contains the actual wallpaper that we intend to use.

[ad name=”blog-post-ad-wide”]

Here are the steps:

  1. We first start by creating an SVG template file called wall-tmpl.svg with the following contents and saving it in the Wallpapers directory (let’s say it is ~/Theme/Wallpapers):
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "" [
    <!ENTITY ns_imrep "">
    <!ENTITY ns_svg "">
    <!ENTITY ns_xlink "">
    <svg xmlns="" xmlns:xlink="" width="1280" height="1024" viewBox="0 0 1280 1024" overflow="visible" enable-backgroun
    d="new 0 0 132.72 127.219" xml:space="preserve">
    <image xlink:href="~/Theme/Wallpapers/-your-favorite-wall-paper-" x="0" y="0" width="1280" height="1024"/>
    <text x="100" y="200" fill="white" font-family="Nimbus Mono L" font-size="14" kerning="2">%text</text>
  2. Next we create a script to fetch the most recent Twitter message and then embedding it in the image. The script is called change-wallpaper and is placed in the bin directory. It has the following:
    text=`python -c "import urllib;print eval(urllib.urlopen('').read().replace('false', 'False').replace('true', 'True
    ').replace('null', 'None'))['results'][0]['text'].replace('\!','').replace('/','\/')"`
    cat ~/Theme/Wallpapers/wall-tmpl.svg | sed "s/%text/$text/g" > ~/Theme/Wallpapers/wall.svg
  3. We then add the following entry to crontab to fetch Twitter messages every minute:
    # m h dom mon dow command
    * * * * * ~/bin/change-wallpaper
  4. Run the script once, it will create a file called wall.svg in your Wallpapers directory. Set this as your desktop background and watch the background change every minute!

You could get very creative with this. You could have your calendar reminders embedded directly into your desktop background or you could have dynamically fetched background images with your own random fortune quote. The possibilities are enormous!

Why Google AppEngine still sucks

Last June, when I built the Twitter Trending Topics app using Google AppEngine, I had mentioned quite a few issues with the application building in Google AppEngine. After giving it about 9 months to mature, I thought I will take a look at it again with a fresh perspective on where it stands.

The first thing that I wanted to try was to revive my old application. The application has been inactive because it has surpassed the total stored data quota and I never managed to find time to revive it.

One of the biggest issues that I mentioned last time, was the ability to not be able to delete data from the application easily. There is an upper limit of 1GB on the total stored data. Considering that the data is schema-less (which means that you need more space to store the same data when compared to Relational Databases), this upper limit is severely restrictive when compared to the other quota limits that are imposed. There were about 800,000 entries of a single kind (equivalent of tables) that I had to delete!

So I started looking for ways to delete all the data available and came across this post. I decided to go with the approach mentioned here. The approach still seems to be to delete data in chunks and there is no simple way out. The maximum number of entries allowed in a fetch call is 500, which means I require 1600 calls to delete all the data.

Anyway, so I wrote a simple script as mentioned in the post above and executed it. I experimented with various chunk values and saw that 300 was the size that worked optimally; anything more either seemed to take a lot of time or actually timed out.

Here is the code that I executed:

from google.appengine.ext import db
from <store> import <kind>

def delete_all():
   i = 0
   while True:
   i = i + 1
   print i

saved this file as and executed it as:

$ python twitter-trending-topics
App Engine interactive console for twitter-trending-topics
>>> import purger
>>> purger.delete_all()

A seemingly simple script, but after about a couple of hours of execution (after having deleted roughly 200,000 entries), I started seeing a 503 Service Unavailable exception. I thought this was to do with some network issues, but realized soon that this was not the case. I had run out of my CPU time quota!

To delete 200,000 entries the engine had taken up 6.5 CPU hours and this it managed to do in less than 2 hours! It had, according to the graphs, assigned 4 CPU cores to the task and executed my task in the 2 hours. At this rate, it will take me 4 days to just delete the data from my application. The Datastore CPU time quota is 62.11 hours but there is an upper cap of 6.5 hours on Total CPU time quota – the Datastore CPU Time quota is not considered separate. I am not sure how this works!

[ad name=”blog-post-ad-wide”]

As seen in the screenshot above, the script executed for about 2 hours before running out of CPU. There was no other appreciable CPU usage in the last 24 hours. Considering that there was no other task taking up CPU, the 6.42 hours of Datastore CPU time seems to be included in the 6.5 hours of Total CPU time. So how am I supposed to utilize the rest of the 55 hours of Datastore CPU time?

I am not sure if I am doing something wrong but considering that there are no better ways of doing things here are my observations:

  • It is easy to get data into the system
  • It is not easy to query the data (there is an upper limit of 500 and considering that joins are done in code, this is severely restrictive).
  • There is a total storage limit of 1GB for the free account
  • It is not easy to purge entities – the simplest way to delete data is to delete them in chunks
  • Deleting data is highly CPU intensive – and you can run out of CPU quota fairly quickly.

So what kind of applications can we build that is neither IO intensive nor CPU intensive? What is Google’s strategy here? Am I missing something? Is anything wrong with my analysis?

A review of the Sony Digital Reader (PRS 600BC)

Update (Sep 29, 2011): With Amazon having released quite a few devices, more recently, the Kindle Fire, this post seems very old.

After having used the Sony Digital Reader Touch Edition (PRS600BC) for almost 2 months now, I think I am ready to give a comprehensive review of the features of this wonderful device.

When I bought the Sony Reader (PRS600BC), I didn’t put much thought into it. I compared it only to the other well-known reader at the time – the Amazon Kindle – and decided without doubt that I am going for the Sony reader. Frankly, I didn’t research for other options and I wasn’t even aware of the other readers in the market.
So if you ask me, how does this compare to, say the Nook, or other digital readers in India that use e-ink or the tons of other Chinese digital readers that can be hacked, I don’t have an answer. What I can do tell you is why I made this choice and what I feel after having used it for a couple of months.

So let’s begin with the choice: Between the Sony readers and the Kindle, the choice for me was obvious. Even if the Kindle was dirt cheap and had better look and feel and amazing features, I would still go with the Sony reader at this point in time, for the simple reason that the Sony reader supports EPUB, and the Kindle does not (read the disclaimer below). As the DRM debates are on, I felt that the Amazon Kindle does not have EPUB support and I was not sure what documents would work without issues on the Kindle and what would not. It made no sense to me to have to pay Amazon (howerver few a cents) or let Amazon decide what is and what isn’t appropriate to upload into the Kindle (read disclaimer below). On the other hand, the Sony reader has no such reservations – connect the reader, allow the device to mount, drag and drop your documents and you will be reading your book on the reader in less than a minute. Now, when I talk about open formats, people automatically assume that it means I can copy pirated versions of books into the reader and that’s the reason why the Sony reader is favored, but I think the reason is slightly different. Let us look at it in a little more detail. Here is the definition of open format from We will say that a file format is open if the mode of presentation of its data is transparent and/or its specification is publicly available.Why is it so important? Well, the fact that the reader supports open formats means that I can think of tons of uses for my reader. I can use it not only to read my books, but I can also create documents in the format that it supports and then upload them into the reader. What the document is – is totally up to me to decide. For example, suppose I find an interesting website/blog which has some content that I intend to read on my reader, I can just fetch the website contents using wget, and then use html2epub to convert them into an EPUB document and upload it to my reader in minutes. Is it as simple in a Kindle? How is the support in Linux? I was not sure. You may now say, “But that’s for geeks; how about the non-geeks? How do they benefit by going with the Sony reader?”. This is where tools like Calibre come into picture. Calibre provides an easy interface for users to sync their documents and news feeds with the reader. It also has the feature of syncing Google Reader content with your reader. All this is possible, because of one decision that Sony made – to support open formats. So for me, the decision was simple – if the reader does not support open formats I would not go with it. Enough of the comparison, so what should I expect in a reader? A reader is an equivalent of a book. It is designed to as closely match a real book as possible. So expect any feature that you would have in a regular book and you wouldn’t be disappointed. Note taking, ability to bookmark pages etc are natural to expect in a reader. If your expectations however are closer to that of a cell phone and you say, “Does this play movies? Does it record video?”, my only answer is, “Cummon guys, it’s a reader!” Of course, there are certain things that you could expect in a e-reader, for eg: bluetooth that allows a simple sync of documents. The reader has the ability to play music (or I would say play audio-books), and also display photos, but I am not a big fan of it – I always believe in buying a device which does one thing well – the reader is meant to do everything with e-books, and do it well. So now to the actual features and what I liked and what I disliked: The pros:

  • Boots in less than a second and takes you back to where you left – the Sony reader remembers where you stopped reading a book and takes you to the same page the next time you open the book.
  • The touch screen is cool and extremely useful – the coolest use of this is I can double-tap on any word and its meaning appears in the bottom of the screen. I am so used to this feature now that I sometimes find myself tapping a word in an actual book and expecting its meaning to appear in the bottom! (I am not kidding). Another use of this is to take notes – just bring up the note taking feature and just select the words using the stylus. You can even use the draw mode to circle words and then write your note next to it! Double-tap the right corner of the screen and it bookmarks the page.
  • The battery backup is amazing – I am not sure how many times I have charged the reader in the last 2 months, but I can tell you its not a whole lot.
  • The reader is able to render PDFs with images and size does not seem to be an issue – I have tried uploading PDFs of 150MB and more and the reader effortlessly rendered it.
  • The reader auto-flows documents at various zoom sizes – once you get comfortable at a certain font size, you can ensure that every document you read is of the same font size so that you can read documents extremely fast.
  • Enough space – with 512MB of memory, the reader has sufficient space to store tons of books. But if you think you are short of space, you have the option of popping in a SD card. I am yet to find the need to do that.

The cons:

  • The contrast could have been better – a common complaint with Sony readers. The e-ink technology seems to increase the contrast with light so the contrast is a problem in low light.
  • The glare – another common complaint with Sony readers – the touch screen creates a glare and so can hurt your eyes if not held the right way. It took me some time to get used to this but I don’t see it as a problem now.
  • No backlight – this is a problem which has been solved in the next version of the reader, Sony Digital Reader – PRS700BC, but the PRS 600 BC does not have a backlight making it tough to read books in low light.
  • The touch screen makes the reader look like a page behind a glass – making it look unnatural.
  • The music player seems to suck up a lot of power.
  • Software bugs: Considering that it has been only 2 months since I bought the reader, I have run into quite a few bugs already. Here are a few:
    1. The most disturbing one of all is the reader seems to reboot when it runs into an issue in some EPUB documents. Sometimes it just hangs and you need to hard-reset the reader and a couple of times even do a catastrophic failure recovery. I am not sure if the issue is with the reader or the document converter, but I would expect the reader to not fail horribly in any case.
    2. The dictionary does not work on some words and there is no way to look up some word in the dictionary except to tap on some other word, bring up the dictionary and then change the word. I think the Sony reader requires more usability tests.
    3. Tapping on a word in the dictionary should take me to the meaning of that word – many a times I find myself not knowing the meaning of some word in the meaning provided. And the only way for me to look this up is to remove the current word and look up the new word manually.
    4. The note format is confusing – the notes are stored as XML documents, but the format that is used to identify the words is confusing. I was not able to decode it.
    5. Usability issues with images in documents: The reader is excellent for reading novels but falls a little short of expectations when it comes to reading research papers with images and equations in them. The reader does render the document pretty well, but I have seen cases where images are not rendered or it is difficult to read. There is a zoom feature which allows you to zoom into documents and then drag the document around but this is quite unusable because of the delay in rendering.

All in all, I would say, Sony has made an excellent effort at building an e-reader. It would take another couple of releases before we can expect it to mature, but I would say I am pretty content with what it already has and I don’t mind waiting a couple of years before upgrading. Disclaimer: A few of these words may already be outdated considering that Kindle may support drag and drop of documents and have some form of ePub support (or a official converter) soon. Further, the DRM debates are still on, discussing trade-offs between piracy and usability. Update: Here is a better and more accurate description of why I am reluctant to buy a Kindle: Amazon’s Kindle Swindle.

Sunset at Sankey Tank

After spending an evening in Lalbagh, it was time to visit Sankey Tank. The sunset at Sankey Tank had amazed me the last time I was there in the evening. I did make a trip to the place early in the morning in May last year and although I had planned to click landscapes, I ended up using my telephoto to capture birds. So I had decided that I will visit the place again to click landscapes especially in the evening.

I reached the place around 5pm and had expected it to be the right time. It was quite sunny and hot until 6pm and I was not able to get good snaps as I was directly facing the sun. It was a clear bluish sky and I couldn’t see any interesting patterns in the sky. I was disappointed. There were hoards of pigeons near the entrance and it was quite a sight to see them fly but I didn’t manage to get a sharp snap of a pigeon in flight.

I waited until the sun descended behind the buildings and then managed to get a few snaps of the sunset with the reflection in the water.

One of the other reasons to go to Sankey Tank in the evening was to check out the musical fountain which was a recent addition to Sankey Tank. I was all prepared and I had taken my tripod with me. The show started around 7pm.

Although it wasn’t as good as I had expected it to be, I managed to get a few long exposures of the fountain and returned back content.

An evening in Lalbagh

Lalbagh offers the perfect spot not only for families who want a spot for the weekend, but also for shutter-bugs who want a place to get inspired.

I had never visited the Lalbagh lake side after I bought my SLR so, since we didn’t have any major plans for this weekend, I thought I will see what I can get spending an evening beside the lake in Lalbagh. I wasn’t disappointed.

I started off with my wide angle clicking snaps of the trees. The sizes of some of these trees amazed me – huge would be an understatement. They seemed easily a 100 years old if not more. I felt bad considering that the government could be reckless in allowing the Metro Rail Corporation to acquire parts of Lalbagh and cut down trees in the name of development.

Anyway, politics apart, I continued along the walking path. Most benches were taken by couples and there were a few people walking/running along the path. There were a few feeding whatever they could to the ducks in the lake and a few others returning with boxes of grapes from the ‘Drakshi Mela (Grape fest)’. A few workers were on to their routines of cleaning up the place and watering the plants.

And then there were squirrels, which were half-alarmed by the humans, but half-curious to see what they can get. The dogs seemed to enjoy it too – and were playing beside the walking path.

I also got to see quite a few water birds. It seems strange that these birds are generally not visible to the casual visitor but if you have a camera in your hand you tend to spot quite a few of them. There were egrets, pond herons, ducks, mynas, kites and other birds that I don’t know the names of. There was a huge pelican too and it was quite a sight to see it fly.

I clicked a few snaps and waited until sunset and returned back home content with my visit.

Trek to Ettina Bhuja and Ombattu Gudda – Day 2 experiences

This is a continuation of a previous post. Read day 1 experiences in the post titled: Trek to Ettina Bhuja and Ombattu Gudda – Day 1 experiences.

So with the experience from day 1, our spirits were low. Our guide who had been in this place for more than 20 years, didn’t know the exact route. People rarely visit Ombattu Gudda and of the people who do, most go via Gundya, and hardly anyone ever does both Ettina Bhuja and Ombattu Gudda together.

So we decided to take a slightly shorter path than the one which was decided earlier.

We started off early in the morning. We went towards Bhairaveshwara temple and met some local people and asked them for the route. The routes here are usually forest landmarks and needless to say there are no other signs. We started moving towards one of the hills as per the instructions of a person we met on the way. We were out of water and we had decided to fill up on the way. This, in hindsight was a bad decision – and in future I will always remember to always keep my bottles full whenever I come across a water source. It is a tradeoff – more the water, heavier the rucksack, but I guess it is better to be with water than without.

We asked the guide if he is aware of any water source on the way – we were noticing small streams of water as we walked – so he said there should be a bigger stream somewhere on top, so we decided to continue. When we started climbing the hill, we decided to take some water from a small stream there, just in case we don’t find a larger source further up. The water was very slow moving. We had chlorine tablets – so we decided to use them and fill up our bottles. This in hindsight was a really good decision as we would be without water for the next 10km until we reached Lakshmi Estate.

We also had some quick breakfast to recharge our batteries since we had a steep climb ahead. The climb was the steepest in the entire trip – but it was quite short. As we finished this, we could see the legendary jeep track that most people know of (who have done this trek). The scene from here was really good – there were hills on all sides and of varying sizes. The jeep track that we see in the shot below is what we had to take and the place where it disappears is somewhere were Ombattu Gudda summit would be.

[ad name=”blog-post-ad-wide”]

As you can see, there are hardly any trees on the way and it was extremely hot and humid and we had limited supply of water. We started following the jeep track.

You think that on day 2, since we have a lesser stock of food, it will be less treacherous – but you are wrong. You have all the tiredness from day 1 and so that compensates the decrease in weight.

As we moved towards what we thought was the summit, the guide was still clueless as to how much of the distance was remaining. The water stock was very low – we hardly had a liter of water per person. Suddenly I noticed that my phone had signal – so we decided to call a person who could help us out. We described our current position and I am not sure if he misunderstood our position, but he said that we were in the wrong path. He asked us to retreat back 1km and take an alternate path. We decided to do that and realized that the alternate path was a dead-end. At this point, we lost hope – it would be extremely dangerous to continue with no hope of finding water and not knowing how much of the distance remains. The guide also seemed exhausted. So we took the decision to retreat.

We had to go about 7km back to Lakshmi estate – I found this very tough because of the heat and the humidity. I also twisted my ankle a couple of times because of the heavy rucksack and the uneven roads. We were exhausted by the time we reached Lakshmi estate. We drank as much water as we could and rested for a while. We realized that we were just a km away from the summit. 🙁

The people at Lakshmi estate agreed to cook food for us. Meanwhile, we wanted to have a bath and what is a better place than a small waterfall nearby! It was a heavenly experience after all the things we had been through. Post that, we had a wonderful meal and rested a bit more.

We then had to go another few kilometers to the gate where our driver was to pick us up. When we sighted the Tempo Traveler we were shouting – it was a sigh of relief that all went well and we were heading home!

Trek to Ettina Bhuja and Ombattu Gudda – Day 1 experiences

It had been over a year since I did some major trek. The last one I did was to Kalawara Betta (Skandagiri) in Feb last year.

So when Manja asked me if I wanted to come for a trek to Ettina Bhuja and Ombattu Gudda, I was in 2 minds. On one hand, this is an opportunity not to miss. It had been a long time since I had gone on a trek and I didn’t want to miss this opportunity. On the other hand, both Ettina Bhuja and Ombattu Gudda are moderately tough treks and require the help of guides. In fact, Ombattu Gudda is known for people getting in and never coming back, and then being found unconscious. There have been incidents of snake bites, and people getting lost forever. In fact, most of the people who had come with us on the trip had gone to Ombattu Gudda just a couple of weeks back and had lost their way in the woods. Thankfully they found their way out to tell us the story. They said even the GPS was useless because of the dense vegetation. This time, not only were they planning to go again, but take an altogether different route which was seldom taken. Further, it was 2 treks in 2 days. To add to it, I was kind of busy with my office work and the fact that it had been a year since I did a trek made me a bit uncomfortable. It is in these situations where the decision that you take in the moment makes a difference. I decided to go.

[ad name=”blog-post-ad-wide”]

Continue reading Trek to Ettina Bhuja and Ombattu Gudda – Day 1 experiences