January 16th, 2009
TarTool is a tiny windows command line tool to extract tar gzip (tar.gz or tgz extension) files.
You can download TarTool , unzip and run TarTool.exe as a command line executable.
I wanted to play around with the Microsoft Shared Source CLI SSCLI. The download is only available as a tgz extension. Imagine that
After searching the interwebs for tools that would extract tar gzip files , I was disappointed since there was no simple tool to extract tar gzip files on my windows machine.
There are a few tools out there like WinRAR etc., but they were bloated.
So I wrote a little tool using SharpZipLib, the open source Zip, GZip, Tar and BZip2 library (great job guys, BTW).
SharpZipLib does most of the heavy lifting so the core of TarTool is less than ten lines of C#. I can host the source code if there is enough interest.
Enjoy!
Update (05/06/2009 17:00 CST) :
TarTool now has an addtional option to untar tar file formats.
TarTool -x sample.tar temp
will untar the sample.tar contents into the temp folder.
Stumble it!
Posted in C#, Programming, software | 2 Comments »
January 6th, 2009
I found this excellent post Toward a better UI programing model with pointers to various UI programming models.
Web designers are forced to think within the constraints of the web browser when it comes to user interaction design.
The post above discusses more general approaches to user interaction design and not just within the context of the web browser.
Since I am mostly involved in web UI interactions these days this post was very refreshing as it brought a new perspective to me.
While developing the UI for a web app recently I realized that the web design world is in the search-discovery cycle of “patterns” that guide user interactions. Patterns in user interactions has the dual benefit of helping both designers and users. Much like the “guidelines” on Windows ( Windows User Experience Interaction Guidelines ) or Mac (Apple Human Interface Guidelines ) development platforms that help Windows or Mac application developers respectively while standardizing the user interactions of the applications developed on those platforms. These guidelines ensure strict quality, improves user experience and makes the life of designers easier.
There are plenty of resources that discuss “web ui interaction patterns” .
Designing Interfaces is a good resource if you are designing web user interactions. Rob Adams one of the core developers of Adobe’s Flex has an excellent set of introductory articles which not only apply to designing user interfaces using Adobe’s Flex but applies to user interface design in general. I especially liked the Structuring your Application part.
Everyone loves the web, even if there are a few frustrations that we still have to overcome
Happy Surfing !
Stumble it!
Posted in Programming, Technology, Uncategorized, Web Development, software | No Comments »
December 18th, 2008
>git branch -a
* development
mylocal-branch
origin/development
>git status
# On branch development
nothing to commit (working directory clean)
>git merge mylocal-branch (you want to merge from mylocal-branch to development branch )
> git push <repository | origin> development
Works if the remote branch ‘development’ has no simultaneous commits from a co-worker, say.
But fails with the following messages if there were simultaneous commits on the remote branch ‘development’
! [rejected] development -> development (non-fast forward)
error: failed to push some refs to ‘<your repository name>’
Here is how to fix this scenario,
> git pull <repository | origin> +development:development
The ‘+’ option fast forwards the local ‘development’ branch to the remote ‘development’ branch
> git merge mylocal-branch
At this point you have changes from the remote and local ‘development’ branches merged
> git push <repository | origin> development
The changes were now pushed to the repository without being rejected. This is one scenario where you can use fast forward to merge changes and bring local and remote branches upto date.
Stumble it!
Posted in Programming, Uncategorized, git, repository, software | No Comments »
November 11th, 2008
There is a PHP Predefined constant PHP_EOL that allows you to print a newline character if you are running php CLI or if you are outputting text to an error log file.
Apparently, it is also cross platform compatible.
For a long time I was using print statements to throw debug output and had a hard time reading the blob of text output that was getting spit out.
Now my log output and debug output are much more readable 
Stumble it!
Posted in PHP, Programming, Uncategorized | No Comments »
October 25th, 2008
Regex for URI
var uri_re = /^(?:(?:[^:\/?#]+):)?(?:\/\/(?:[^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/;
Stumble it!
Posted in Uncategorized, software | No Comments »
October 23rd, 2008
While waiting for my car to be fixed at the dealership, I was browsing through the day’s local newspaper.
This ad on the business section of the paper caught my eye,
“Great Minds Gathering on Oct 7 - Don’t miss it. Today’s date Oct 23 2008.”

Quite entertaining
With all the doom and gloom, market crashes and poor earnings reports, this is the only thing on the business page that brought a smile.
Stumble it!
Posted in Personal | No Comments »
August 20th, 2008

MPLS ALT .NET
Yesterday was the first ever MPLS ALT.NET get together at the Bulldog N.E Thanks Ira Mitchell and Jim Swanson for hosting. Judging by the turnout at the initial meet one can easily tell that there is a great enthusiasm for alt .net in Minneapolis.
Jim and Ira do a better job of explaining What ALT .NET is all about.
The folks at Redmond, WA do a great job trying to build awesome tools for developers but often times committing resources to every available tool in the open source community is not possible. Filling this gap is where a community like ALT .NET can help.
The state of Microsoft and the OSS community is better explained by Ayende Rahien.
I hope that this community becomes successful and brings in the best of the OSS, Java and RoR communities into the .NET world.
Stumble it!
Posted in Microsoft, Technology, Uncategorized | 1 Comment »
August 11th, 2008
Update:
If you are using Fiddler 2 follow the instructions in the Fiddler FAQ
Why don’t I see traffic sent to http://localhost or http://127.0.0.1?
Fiddler does not capture packets sent to the localhost URL which makes debugging web applications hosted in your local machine painful.
Here is how I configured Fiddler to debug web applications hosted in your local machine,
Lets say your application is accessed using the URL http://localhost:8090/MySpiffyApp/default.aspx. To make fiddler capture the HTTP requests sent to this URL, all you have to do is edit the HKCU\Software\Microsoft\Fiddler\ReverseProxyForPort and set the decimal value to 8090. This tells fiddler to proxy all traffic sent to HTTP port 8888 (default proxy port) to HTTP port 8090. Now access the application using the fiddler proxy port
http://localhost:8888/MySpiffyApp/default.aspx
and you should be able to see the packet trace in Fiddler.
If you see the page below instead of your application then try restarting Fiddler and make sure the registry key name matches exactly as above.
GET / HTTP/1.1 Host: localhost:8888 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cookie: ASPSESSIONIDAADBDSRQ=NJJLKNGCKNJMNIIFAIDFCEIB Cache-Control: max-age=0
If you’d like to configure Fiddler as a reverse proxy instead:
- Set the HKCU\Software\Microsoft\Fiddler\ReverseProxyForPort registry DWORD to the local port you’d like to route inbound traffic to
- Restart Fiddler
Let me know if this didn’t work for you or if you have another way of debugging web applications hosted on your local machine.
Stumble it!
Posted in Debugging, Microsoft, Technology, Web Development | No Comments »
August 3rd, 2008
A cool rap video about the Large Hadron Collider (LHC) caught my attention and I shared it with some of my old buddies.
I received a few encouraging words mostly in jest about how I should be involved with something revolutionary like the LHC project and drew a few sarcastic comments too.
The email responses from my friends inspired me to write this post and made me understand the significance of the LHC project a little better and also made me realize how we may be overlooking great revolutions happening around us.
Here is my email response,
Dear XYZ,
Thanks for the encouraging words and I enjoyed the sarcasm too…
Revolutions don’t happen overnight… rather they reach a crescendo at the right moment or they erupt from their simmering state into an eruption almost overnight. The trouble with revolutions, too is that you don’t know when they are happening.
The point of sharing that video was to show, how serious research can be presented in a light manner.
And personally, it had a context to me since I recently read this article, Surfer dude rewrites Physics ?that made references to the Large Hadron Collider.
If you do not have the time to read the whole article , here is a snippet that references the Large Hadron Collider,
“…The ultimate proof, or disproof, could then come when the world’s most powerful particle accelerator, the Large Hadron Collider, begins operating later this year in Switzerland. It is widely anticipated that the LHC will lead to the discovery of new subatomic particles, and string theorists are also betting on it to validate some of their ideas…”
In short, the assumptions we are making about how we are held together in one piece can be shattered by this collider.
This my friend is an example of a revolution in progress since it can explain among other truths the beginning(s) and the end of time…
-Senthil
Stumble it!
Posted in Uncategorized, physics, science | No Comments »
August 1st, 2008
Sometimes you should never understate the obvious. You have to overstate the obvious.
For example here are some obvious Smart people traps and yet they need to be overstated.
I particularly liked the following observations,
..in order to change the world through politics, you must gain power, and the game of gaining power will fuck you up for sure.”
“…They leave school thinking that the way to be useful and show your smarts is to point out why things won’t work, rather than using some of those smart to find a way forward.”
Can you think of more smart people traps like these?
Stumble it!
Posted in lifehack | 1 Comment »