Wednesday, October 01, 2008

Chrome rocks!

Chrome rocks absolutely!

It is blazingly fast, and feels ultra light weight. After using it for a few weeks now, I am totally addicted.

The landing page which shows snapshots of all pages recently viewed, is very convenient to start off and I feel great to just be able to click on a thumbnail and get to the site with out examining the url on my url bar or clicking on a bookmark. In fact the landing page is something that has really made a lot of difference in my browsing experience. I don't get lost as often as I used to and it saves me a lot of time and effort.

I love the incognito mode which allows me to login simultaneously as different users, even into web applications which use permanent cookies. This is great for developers testing web applications.

I like the ability to drag a tab and create its own window and vice versa.

Space usage on chrome is very efficient and the concept of getting rid of the windows title bar is a very good one. The concept of showing page popups as part of the same tab but hidden down below is also quite useful.

Honestly speaking I don't care much about being able to type the search terms or url into a single box. Surprising that Google talks about that more than the other features.

My default browser was Firefox, but now I am converted.

Sunday, August 31, 2008

Sahi V2 20080831 Released

After close to a month of development, Sahi V2 20080831 has been released today. (http://sahi.co.in/w/)

This release uses Rhino as the scripting engine, thus moving most of the script execution to the proxy. This should go a long way in simplifying Sahi scripts. Scripts now execute on the proxy, and only stuff that needs to execute on the browser is sent to the browser. Thus scheduler functions are sent to the browser for execution. One change which has come in is that custom functions which may have been added for identification of browser elements, now need to be wrapped in a <browser></browser> tag so that they are also sent to the browser.

This build also has some important changes to the SocketPool which will fix issues related to too many sockets being used and errors due to BindExceptions. Suite execution has been changed such that even if the browser crashes, the suite will continue with the next script and thus not hold up a build. DB methods now close connections properly.

There will still be a few rough edges and I hope users will report bugs so that they are easily fixed. Meanwhile, help spread the message through your blogs or email forums.

Sahi V2 20080831 Released

After close to a month of development, Sahi V2 20080831 has been released today. (http://sahi.co.in/w/)

This release uses Rhino as the scripting engine, thus moving most of the script execution to the proxy. This should go a long way in simplifying Sahi scripts. Scripts now execute on the proxy, and only stuff that needs to execute on the browser are sent to the browser. Thus scheduler functions are sent to the browser for execution. One change which has come in is that custom functions which may have been added for identification of browser elements, now need to be wrapped in a tag so that they are also sent to the browser.

This build also has some important changes to the SocketPool which will fix issues related to too many sockets being used and errors due to BindExceptions. Suite execution has been changed such that even if the browser crashes, the suite will continue with the next script and thus not hold up a build. DB methods now close connections properly.

There will still be a few rough edges and I hope users will report bugs so that they are easily fixed. Meanwhile, help spread the message through your blogs or email forums.

Thursday, August 21, 2008

Sahi - Latest developments

Copy of post on forum: http://sahi.co.in/forums/viewtopic.php?id=261

I had not been active on the Sahi forums (http://sahi.co.in/forums) for sometime. Thanks a ton to StringyLow, tinchie8, lepierrot, pankaj.nith and others for keeping this forum active, and replying to posts.

Meanwhile I have been working on a version of Sahi which attacks one of the basic problems with Sahi.
Scopes of variables, scheduler and normal functions and the the way steps are queued and executed and the way their integrity needs to be maintained across page loads.

The problem had been that the scripts (after parsing) were executed on the browser itself, and when a page unloads, the state of the script's execution needed to be persisted on the proxy and then resurrected when the next page loaded. While this allowed the ease of using javascript for scripting, when scripts became bigger, the browsers and the proxy had to do a lot more persisting and resurrecting.

As the logical next step, I wanted to move this script execution to the proxy. I now use Rhino, an excellent javascript engine, to execute the scripts on the proxy. Only steps that need to be executed on the browser are sent to the browser. Javascript can still be used for Sahi scripting. Even though the script still is parsed, it is much simpler to understand script execution than it was before. Rhino also comes with a debugger which can prove useful to Sahi script debugging.

The version is slated to be released soon. I am looking for volunteers to test and give me feedback about the new version. If you have existing scripts, the scripts may need to be modified a little to make it work with the new version.
If you are interested, please post back or email me at narayan at sahi.co.in.

Tuesday, August 12, 2008

Viewing cookies in IE

There are times during development when you wish to see the cookies of a particular site, but do not know how to view them. You can use this simple solution to view cookies.

Drag this link to the Bookmarks toolbar on firefox. (Enable the toolbar by: View -> Toolbars -> Bookmarks Toolbar)
Show Cookies

On IE, right click on link, "Add to Favorites", Create In -> "Links". (Enable toolbar via Tools -> Toolbars -> Links)

Once you have this link on the toolbar, you can navigate to any site and click it to see the cookies.

Of course there are plenty of cookie viewing techniques and tools around, but this is a very easy and handy way of checking cookies quickly.

The html of the link above looks like this:
<a href="javascript:alert(document.cookie)">Show Cookies</a>

Bookmarlets like these can be really useful at times. For example in my newly launched http://www.househunt.in website, I have a bookmarklet which helps me gather relevant links from a builder's site. All I need to do is navigate to the builder's website, click a bookmarklet on my browser and it injects javascript into the page to collect all relevant links and display a popup page. I then just add some more information and submit. This ease has helped more than 400 projects in Pune to be added within a short span of time.

Monday, August 11, 2008

Launching HouseHunt.in

While looking for houses I needed an easy way of searching and shortlisting properties in Pune. So wrote this web application over the past few weeks. It is ready for use now.

The url is http://www.househunt.in

For the geekily oriented, this app is built and deployed on the Google App Engine platform (http://code.google.com/appengine/).

It is written in python using some features of the django framework and uses Google's BigTable instead of a regular database.

Tuesday, April 15, 2008

Unicode encode decode error in python email

Been bothered with these on and off errors in our application while sending email via python:
File "/usr/lib/python2.4/email/Generator.py", line 182, in handletext self._fp.write(payload)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2014' in position 4986: ordinal not in range(128)

The reason is that Python's email module needs some information about charset used when a MIMEText object is created.

Here is a link which explians how to solve this:
http://mg.pov.lt/blog/unicode-emails-in-python


Links to understand unicode in Python:

http://effbot.org/zone/unicode-objects.htm
http://www.amk.ca/python/howto/unicode

Monday, February 11, 2008

Enduro3

So we competed in and completed the Enduro3 race. Sujoy, Sunil and I cycled some 45 kms over mud tracks and hilly roads, trekked another 50, and eventually survived the adventure race unhurt, and still friends. We started around 10:30 am on Friday and finished around 6:30 pm on Saturday, having slept some 4 hrs in between.

The race:
Cycling:
From Paud Road to NDA.
On some muddy terrain inside NDA. Was good fun.
Back on the road, up and down, up and down and up up - ending at Panshet Water Sports Center.
(One of us and his cycle have since been divorced.)

Trekking:
Start from Panshet, walk along the ridge, get totally lost for a couple of hours, reach one end of the lake. (9:30pm)
Stop for the night.
Do river crossing. Only one in the team had to and Sujoy, you rocked then!
Sleep till 2 am. Trussed up in a dryfit t-shirt, the poncho, a full cotton t-shirt, a nice jacket, a monkey cap and inside a sleeping bag. felt good.
Wake and start trekking around 3 am.
Sleep again from 5 to 6 am because we got lost.
Wake (6 am) and trek trek around the lake, on the road, up koshimgarh and trek trek along the ridge till we reached Panshet WSC. (6.30 pm)

The lake and mountains were beautiful. The morning trek was quite refreshing and we saw a lot of birds. The sudden burst of wings from a group of quails from under my feet took me totally by surprise. So close were they, our bodies could feel the drumming vibrations of the frantic wing beats. Also saw a hovering black shouldered kite, a grey jungle fowl, a large green barbet(?), loads of red whiskered/vented bulbuls, purple sunbirds, some flowerpeckers, puff throated, jungle babblers, magpie robins, and rufous backed shrikes.

The race was tiring, and we lost our way more than once. But it was a lot of fun and it definitely tested our endurance and it feels good to have completed the race and be writing this blog.


Information for the next time (IT category):
Water was available at a lot of places and was not a problem.
Even though the race director laughs at you in the briefing session when you ask him about carrying sleeping bags, know that they are absolutely needed.
Do NOT expect flags where you need them.
Finish cycling as fast as possible so that you can navigate properly in daylight on the trek. On a moonless night like we had, it was impossible to look at the lake's shape and find our bearings from the map.
The river crossing is in a deep part of the lake and you have to swim (and not wade) across. You get a life-vest so you won't drown and there are ropes at water level to pull yourself along. The water is placid and does not have a current. The distance is around 100m I think.
The river crossing and rifle shooting timings are only useful when you have a tie. So really don't bother much with these.
The rifle shooting was dropped for our event because of time constraints(?).
Glucose is the best. Food may be taken but you would be better off with chocolate bars and energy bars.
Carry a couple of 1L water bottles per person.
Practise with your own cycle, and from well in advance. Don't fatigue your muscles just a day or two before the race.