Google Finance bookmarklet

I use Google Finance to track stock/fund portfolios. Many of these portfolios track some investment policies and I enter the actual trades in there too. But the portfolios keep showing the old (i.e. closed) positions in the table making it look cluttered. I checked on their product blog/forum and this seems to be requested by some people (and ignored). Here is a small bookmarklet which will do this. You will need to drag the link to your bookmarks bar (Tested only with google chrome). Next, when you are on the google portfolio page, just click on the bookmark and it will hide all the closed positions! Woohoo!

Drag this link to Bookmarks bar: GFinance: Hide Closed Positions

P.S. If there is interest, I can turn this into a google chrome extension (greasemonkey) so this gets done automatically when you go to google portfolios page.

RSS Feeds for Indian Columnists

Frustrated by Indian Express’s inability to provide individual syndication feeds for its columnists, I have written scripts to parse the HTML pages and generate the feeds myself.

Here are the feeds for
Shekhar Gupta
Tavleen Singh.
R. Jagannathan (DNA India)
Arun Shourie
Sudheendra Kulkarni
Ila Patnaik
Pratap Bhanu Mehta

If you want this for another columnist, let me know and I will add that too. This is very easy to do for Indian Express columnists as I already have the script, but I can also help with other websites.

P.S. The script is in ruby and I will release the source after I fix some things and clean it up some more.

Update: May 29, 2009
Added new feeds for Arun Shourie, Sudheendra Kulkarni and Ila Patnaik

Update: June 22, 2009 – Added columns feed for R. Jagannathan of DNA India

Update: August 11, 2009 – Feeds for C. Rajamohan , Harsha Bhogle , Shailaja Bajpai.

Update: Sept. 10, 2009 – You can use my shared page from Google Reader to see all the new posts from all of these columnists on a single page.

Update: July 18, 2011 – Added Karan Thapar.

Simple way to share files on intranet.

If you want to download files from machine A to machine B and have python installed on machine A, here is a very simple way to do it:

On machine A, open a command window and change directory to where the files are and run this command:

python -m SimpleHTTPServer

This command starts a web server serving files from that directory.

On machine B, just open a browser and type the ip address of machine A and port 8000 and you can see all the files. When the transfer is done, simply press control-C in the command window. A simple way to temporarily share your files across the network!

Fix maharashtratimes.com font problems on firefox

Maharshtratimes.com (or maharashtratimes.indiatimes.com) is a marathi news website using unicode fonts. But it does not display correctly on firefox browser. The problem is because of a single HTML div which uses justified font style. It displays correctly on IE (which is why it is not getting fixed) – this could be because of firefox’s buggy implementation of “align: justify” or that IE simply ignores that style (likely).

Anyway, here is a javascript one liner that you can bookmark and once the page is loaded, click on it to fix your font problem.

Fix Ma. Ta. — Drag this link to your bookmarks.

I tried to create a greasemonkey script to do this automatically, but it’s not working for some reason…

Update: Apparently it *is* a mozilla/firefox bug open for 4+ years. See here and here.

Update2: Here is a greasemonkey script by Saravana Kumar to fix this issue. Caution: you might want to change the included domains carefully (it by default runs on all http and https sites!)

Update3: Here is my greasemonkey script specific for maharashtratimes. Enjoy!

Update4: (2009-02-16) The original site seems to have removed this style attribute now. So the above post is now only for posterity.

Using Ruby for integer format conversions

Here are some recipes for interpreting stream of bytes as different C types. I will keep adding more to this as I go…

Convert a byte stream (embedded in a string) into 1 byte signed integers:
“\xfc\xfd\xfe\xff”.unpack(“c*”)
=> [-4, -3, -2, -1]
Convert a byte stream (embedded in a string) into 1 byte unsigned integers:
“\xfc\xfd\xfe\xff”.unpack(“C*”)
=> [252, 253, 254, 255]