<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:siddhesh</id>
  <title>Hell Oh World!</title>
  <subtitle>siddhesh</subtitle>
  <author>
    <name>siddhesh</name>
  </author>
  <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom"/>
  <updated>2009-11-14T16:05:19Z</updated>
  <lj:journal userid="12027496" username="siddhesh" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://siddhesh.livejournal.com/data/atom" title="Hell Oh World!"/>
  <link rel="hub" href="http://pubsubhubbub.appspot.com/"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:18265</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/18265.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=18265"/>
    <title>git branching awesomeness</title>
    <published>2009-11-14T14:39:12Z</published>
    <updated>2009-11-14T16:05:19Z</updated>
    <category term="git branch merge awesomness new_toy"/>
    <content type="html">&lt;p&gt;Branching in cvs was always a bit of a black art to me. I always had to plan in advance, think twice and generally breathe heavily before I attempted to create a branch. The workflow would be&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check out a fresh copy of the code&lt;/li&gt;
&lt;li&gt;cvs tag -b mybranch&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And then continue using that copy for your branch-specific changes. So the tag was the branch... or something like that. Anyway, you maintain a different tree for your HEAD too and will have to generally go through a lot of pain to merge patches from HEAD to branch or vice versa.&lt;/p&gt;

&lt;p&gt;Now here's how you branch in git:&lt;/p&gt;

&lt;pre&gt;git branch mybranch&lt;/pre&gt;

&lt;p&gt;Yes, that is it. You have created a branch. Congratulations! Oh ok, you want to work on it?&lt;/p&gt;

&lt;pre&gt;git checkout mybranch&lt;/pre&gt;

&lt;p&gt;Do your foo and generally have fun with that branch. Oops, look! A patch that needs to go into HEAD:&lt;/p&gt;

&lt;pre&gt;git checkout master&lt;/pre&gt;

&lt;p&gt;And go ahead and apply your patch into HEAD. Time to push all the stuff into your public repository?&lt;/p&gt;

&lt;pre&gt;git push --all&lt;/pre&gt;

&lt;p&gt;And watch everything, including your branch changes get pushed seamlessly.&lt;/p&gt;

&lt;p&gt;I'll say it again, this is one tool that seriously fits me like a glove. Simply awesome! The one thing left is now the merge back of the branches. I won't get there for another few weeks I guess, but from the docs, it seems as simple as:&lt;/p&gt;

&lt;pre&gt;git merge mybranch&lt;/pre&gt;

&lt;p&gt;Sweet!&lt;/p&gt;

&lt;h4&gt;Update&lt;/h4&gt;

&lt;p&gt;I just did a merge now to see what git can do. I made some changes in master and decided to merge those changes into my new xmpp branch just for kicks. I have to admit that the merge did not have any conflicts, but here's how it went:&lt;/p&gt;
&lt;pre&gt;
[siddhesh@spoyarek ayttm]$ git checkout xmpp
Switched to branch 'xmpp'
[siddhesh@spoyarek ayttm]$ git merge master
Merge made by recursive.
 libproxy/proxy.c                         |   41 ++++++++----------------------
 modules/aim-oscar/aim-oscar.c            |    7 +---
 modules/aycryption/select-keys.c         |    2 +-
 modules/importers/import_gnomeicu.c      |    1 -
 modules/importers/importicq.c            |    4 +--
 modules/importers/importlicq.c           |    1 -
 modules/irc/irc.c                        |   12 ++++----
 modules/irc/libirc/irc_message.c         |    4 +-
 modules/irc/libirc/libirc.c              |   10 +++---
 modules/irc/libirc/libirc.h              |    2 -
 modules/utility/autotrans.c              |    4 +-
 modules/utility/rainbow.c                |    4 +-
 modules/yahoo2/libyahoo2/libyahoo2.c     |    4 +--
 modules/yahoo2/libyahoo2/yahoo_httplib.c |    2 +-
 modules/yahoo2/yahoo.c                   |   16 +----------
 src/add_contact_window.c                 |    6 +++-
 src/edit_local_accounts.c                |    4 +-
 src/file_select.c                        |    1 -
 src/main.c                               |    4 +--
 src/message_parse.c                      |    3 --
 src/service.c                            |    2 +-
 src/smileys.c                            |    2 +-
 src/smileys.h                            |   12 ++++----
 src/sound.c                              |    6 +++-
 src/speech.c                             |    2 +-
 src/status.c                             |    5 ---
 src/trigger.c                            |    3 --
 27 files changed, 56 insertions(+), 108 deletions(-)
&lt;/pre&gt;
&lt;p&gt;Yes, that is all! Here are the &lt;a href="http://ayttm.git.sourceforge.net/git/gitweb.cgi?p=ayttm/ayttm;a=shortlog;h=refs/heads/xmpp"&gt;results of the merge&lt;/a&gt;. And here is the &lt;a href="http://ayttm.git.sourceforge.net/git/gitweb.cgi?p=ayttm/ayttm;a=shortlog;h=refs/heads/master"&gt;master branch&lt;/a&gt;&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:18133</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/18133.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=18133"/>
    <title>Ayttm 0.6.1 &amp;mdash; The work starts now</title>
    <published>2009-10-30T13:57:41Z</published>
    <updated>2009-10-30T13:57:41Z</updated>
    <category term="ayttm"/>
    <category term="0.6.1"/>
    <content type="html">&lt;p&gt;Just did an &lt;a href="http://ayttm.sourceforge.net"&gt;ayttm release&lt;/a&gt;. This is to lay groundwork for xmpp rewrite, which Piotr will be doing after I lay down the framework. The idea is to make a clean and light xmpp framework and then have even lighter plugins on top of it for gtalk, jabber, etc. Usability and extensibility FTW!&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:17909</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/17909.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=17909"/>
    <title>Ayttm Workout proposal at FOSS.in/2009</title>
    <published>2009-10-21T10:51:26Z</published>
    <updated>2009-10-21T10:51:26Z</updated>
    <category term="ayttm"/>
    <category term="foss.in/2009"/>
    <category term="workout"/>
    <content type="html">&lt;p&gt;I just submitted an &lt;a href="http://community.livejournal.com/ayttm/10165.html"&gt;ayttm workout proposal&lt;/a&gt; for FOSS.IN/2009. Hopefully it will get accepted this time and we get some real work done. I want to get a 0.6.1 and 0.6.2 out before the event begins so that there is a nice clean base for people to work on.&lt;/p&gt;

&lt;p&gt;I hope the workout gets accepted.&lt;/p&gt;
&lt;p&gt;I hope we get worthwhile contributions.&lt;/p&gt;
&lt;p&gt;I hope they have the cold caffeine too this time :D&lt;/p&gt;
&lt;p&gt;Free food ftw!&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:17543</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/17543.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=17543"/>
    <title>Who the hell invented the blink tag?</title>
    <published>2009-10-10T08:03:06Z</published>
    <updated>2009-10-10T08:03:06Z</updated>
    <category term="blink not"/>
    <content type="html">&lt;p&gt;&lt;a href="http://passport.gov.in/cpv/wheretoapply.htm"&gt;Look&lt;/a&gt; what your invention has done to the interweb :(&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:17398</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/17398.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=17398"/>
    <title>Getting a little loud</title>
    <published>2009-10-04T19:13:44Z</published>
    <updated>2009-10-04T19:13:44Z</updated>
    <category term="software amplifier mplayer gmplayer ster"/>
    <content type="html">&lt;p&gt;Me and me missus settled down to watch a movie (300) yesterday only to realize that the volume of the movie was considerably low. All controls on alsa mixer were jacked up to full and it wasn't related to any of the default volume level bugs; I had done an alsamixer -c0 to jack up the volume levels. I have only one audio card.&lt;/p&gt;

&lt;p&gt;I searched on the interwebs for a software mixer program that could give me something a little more audible, no matter even if it was slightly screechy. I found nothing worthwhile and was about to give up. Then on a whim I opened up the movie on mplayer instead of the default totem (I rarely need to do that I must say) and started looking at what I could jack up there. Lo and behold, there was a slider in &lt;strong&gt;Preferences &amp;gt; Audio tab&lt;/strong&gt; called &lt;strong&gt;Stereo boost&lt;/strong&gt; (or something like that; it's on the other laptop and I'm too lazy to look it up now), which worked for me. I turned it all the way up and was finally able to understand the dialogue. It's a different thing that the movie turned out to be mostly about people cutting up other people (of course, that was fun too ;) ) so my efforts were worthwhile only for the first few minutes of the movie.&lt;/p&gt;

&lt;p&gt;That said, this does not work for all kinds of movies since it seems to turn up the volume only on a specific channel. Due to this, on another movie, the dialogue was drowned out by traffic noise due to this stereo boost being jacked all the way up. Anyway, the point of the post was to say that there is in fact a way to (sort of) amplify sound in software.&lt;/p&gt;

&lt;p&gt;Also, it looks like alsa does not quite seem to give the same kind of output that the audio subsystem on windows would give. Maybe this is specific only to certain types of cards.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:16970</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/16970.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=16970"/>
    <title>git FTW!</title>
    <published>2009-09-25T20:48:11Z</published>
    <updated>2009-09-25T20:48:11Z</updated>
    <category term="git scm"/>
    <content type="html">&lt;p&gt;I started using git with ayttm only a week ago and I'm loving it already. I love the fact that I can commit multiple fixes to my repository and then push them out all together with a single command. Everything remains well sorted out without me having to break my flow to commit changes into the central repository. It's either that or committing a huge chunk of code, and I would regularly choose the latter.&lt;/p&gt;

&lt;p&gt;The central repository on SF was a bit difficult to set up especially since it was my first time with git and there was a lot I needed to learn about the system. Add to it the pain of migrating the cvs repository contents to git. But once I figured out the stuff, it all seemed to fit in so beautifully. I know I've only scratched the surface of its power but it just feels good to use. Few programs have given me this wow! feeling since some time now. I guess it's all about individual preference though.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:16663</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/16663.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=16663"/>
    <title>Moving Ayttm to git</title>
    <published>2009-09-19T11:40:22Z</published>
    <updated>2009-09-19T11:40:22Z</updated>
    <category term="ayttm"/>
    <category term="git"/>
    <content type="html">&lt;p&gt;I am importing the ayttm cvs repository to git as I write this. This was something I had thought of earlier, but never had any motivation to do so since things just worked without it anyway. It was &lt;a href="http://kushaldas.in"&gt;Kushal&lt;/a&gt; who made the suggestion to me, saying that it would be easier for the Fedora guys to keep in sync with development upstream. I take it from this that the Fedora community will contribute some code to ayttm in the future, which I will be able to pull in easily in the future.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:16453</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/16453.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=16453"/>
    <title>Size does matter</title>
    <published>2009-09-15T16:18:56Z</published>
    <updated>2009-09-15T16:18:56Z</updated>
    <category term="ayttm puppy linux"/>
    <content type="html">&lt;p&gt;The packages we released for ayttm 0.6.0 were around 1.52 MB with bzip2 compression. The guys at puppy Linux built ayttm optimized for size and they were able to reduce the package size to half with it! Here's the &lt;a href="http://murga-linux.com/puppy/viewtopic.php?search_id=1491358618&amp;amp;t=42959"&gt;forum post&lt;/a&gt; for those interested.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:16317</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/16317.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=16317"/>
    <title>The journey so far, and ahead</title>
    <published>2009-09-14T17:41:00Z</published>
    <updated>2009-09-14T17:41:00Z</updated>
    <category term="ayttm future"/>
    <content type="html">&lt;p&gt;The last six months have been quite big for ayttm, and for me too. We did on last Friday, what was probably our biggest release in ayttm. Well, it's a bit subjective I guess, because I felt that way even when I did the gtk2 port release. And the IRC release. But this one was really big. Check out the release notes and you'll know. When asked about ayttm a few months ago, I had said to &lt;a href="http://sankarshan.randomink.org/blog/"&gt;Sankarshan&lt;/a&gt; that I would be done with yahoo and msn support by next year. I'm really happy that we've managed to get it done way before time. There is yet another goal I had mentioned to him then &amp;mdash; making ayttm stable.&lt;/p&gt;

&lt;p&gt;We're still not as stable as we'd like to be. There was one completely random crash that Minto (package maintainer for Fedora) came across and showed me at work today. We were not able to reproduce it the second time. We need to iron out these things. My next focus is going to be the chat window/room stuff. The code is almost completely duplicated, so I'm going to make something uniform out of it, focussing more on separating the UI from the core. This will hopefully result in much cleaner code.&lt;/p&gt;

&lt;p&gt;Once this is done, the ugly xpm smileys will have to go. I'm thinking of using a subset of the protocol smileys instead, especially the PNGs on the website. The website needs a lot of updating too. &lt;a href="http://ftbfs.wordpress.com/"&gt;Kartik&lt;/a&gt; has volunteered to do the online manual and the new screenshots when he has time, so that should be done pretty soon.&lt;/p&gt;

&lt;p&gt;There are a few people at work who are wondering if we would do voice support. Maybe.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:15970</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/15970.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=15970"/>
    <title>Ayttm progress</title>
    <published>2009-08-24T12:30:44Z</published>
    <updated>2009-08-24T12:30:44Z</updated>
    <category term="ayttm"/>
    <category term="ymsg16"/>
    <category term="msnp15"/>
    <content type="html">&lt;p&gt;Right now, the cvs version of ayttm looks pretty good. We've been able to get in YMSG16 support, MSNP15 support and a lot of fixes in the GUI and jabber. I finally got rid of the custom dialogs code in ayttm and Piotr has done a lot of work with the state/status messages. The netv2 code also seems to be looking quite good since nothing seems to be breaking in it of late.&lt;/p&gt;
&lt;p&gt;There are a few filler functions that remain to be implemented in MSN so that it does not crash. Also, both yahoo and msn need file transfer and invitations -- I am not done with that either. I have been threatening to do a release for some time now, so I might just act out that threat in the coming weeks. So these are busy days.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:15780</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/15780.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=15780"/>
    <title>Ayttm updates</title>
    <published>2009-07-11T12:13:38Z</published>
    <updated>2009-07-11T12:13:38Z</updated>
    <category term="ayttm"/>
    <category term="ymsg16"/>
    <category term="netv2"/>
    <category term="yahoo"/>
    <content type="html">&lt;p&gt;First goal of getting yahoo working on YMSG16 is done. Read more about it in the &lt;a href="http://community.livejournal.com/ayttm/8515.html"&gt;ayttm journal&lt;/a&gt;. Roadmap for yahoo support is now:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fix the little things&lt;/li&gt;
&lt;li&gt;File Transfer&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
That will come in later. Most likely once netv2 merges into trunk. Now I will be shifting focus to MSN and other tiny protocols (livejournal, smtp, etc.) on netv2.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:15527</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/15527.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=15527"/>
    <title>Sweating it out on YMSG16</title>
    <published>2009-07-02T14:05:51Z</published>
    <updated>2009-07-03T08:09:30Z</updated>
    <category term="wireshark"/>
    <category term="ayttm"/>
    <category term="ymsg16"/>
    <category term="auth"/>
    <content type="html">&lt;p&gt;
I finally finished writing a working implementation of the YMSG16 authentication as described in &lt;a href="http://www.carbonize.co.uk/ymsg16.html"&gt;this article&lt;/a&gt;. The authentication seems to be working quite well, but nothing else does. The server still does not respond to the older binary type messages. So the next thing I tried was to wireshark the windows based yahoo messenger ( my employer provided the windows box for me :D ) and I found out two things:
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Authentication probably is what is described in the carbonize site, but there looks to be a different way to get the initial challenge string&lt;/li&gt;
&lt;li&gt;All messages go to and from one server in the form of HTTP POST and responses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
There some more cookies involved as well, which is what Adrian was probably talking about in the comment to my previous post. Thankfully, since ayttm is on YMSG12, we are still online unlike pidgin, so no need to rush in a fix for this just yet. That said, the popup says I have until August 15th till YMSG12 dies too. I need to see how pidgin has fixed this. Maybe  the fix is much simpler than revamping everything to do what the windows YMSGR is doing.
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;Update:&lt;/b&gt; I was wrong. I sent the wrong message to the server after authentication &amp;mdash; forgot to add the challenge digest, which is why it barfed on me. Work is on now for stuff after the auth :)
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:15325</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/15325.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=15325"/>
    <title>What do we need for YMSG15?</title>
    <published>2009-06-18T19:42:47Z</published>
    <updated>2009-06-18T19:42:47Z</updated>
    <category term="ayttm"/>
    <category term="ymsg15"/>
    <category term="libyahoo2"/>
    <content type="html">&lt;p&gt;
Ayttm needs to go on to YMSG15. So I decided to do a small test to see what could break if we just change the protocol version sent to Yahoo. So I advanced the protocol version from 0x00000c to 0x00000f in libyahoo2. Also, I enabled debugging in libyahoo2 so that it could dump packets that it did not recognize. Here's my brain dump of the little experiment:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Some packet numbered as 0xef. Don't know what that is&lt;/li&gt;
&lt;li&gt;File transfer will change, as I had seen from the last time I had fixed file transfer for YMSG12&lt;/li&gt;
&lt;li&gt;Gennady Feldman had added some service codes into the libyahoo2 for YMSG13, which seem to be coming in due to the move to YMSG15. The 0xf0 and 0xf1 above are a result of that. Also, messages to rename groups and move contacts between groups seem to have changed&lt;/li&gt;
&lt;li&gt;I got a 0xf0 message, which seems to be a list of buddy statuses, including mine&lt;/li&gt;
&lt;li&gt;A 0xf1 message, which seems to be the complete list of buddies. So I don't really need to fetch them from cab.yahoo.com, do I?&lt;/li&gt;
&lt;li&gt;Another thing that seems changed but did not affect me this time around seems to be the login procedure. I'm planning to move to YMSG16 for that since I have &lt;a href="http://www.carbonize.co.uk/ymsg16.html"&gt;more complete information&lt;/a&gt; on how it can be implemented.&lt;/li&gt;
&lt;li&gt;To get YMSG16, I need SSL. To get SSL, I need to update libyahoo2 to move to netv2. So obviously this needs to go into the netv2 branch&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
netv2 does not seem to be ready just yet, Philip had problems getting gmail to work with netv2. There's a bit of tightrope walking with multiple threads and SSL. Hopefully I can figure out what the deal is since almost everything is starting to use SSL. Does anyone want to get their hands dirty on netv2?
&lt;/p&gt;
&lt;p&gt;
But couldn't I just open up libpurple and get that stuff in? Yes, but it won't be fun enough would it? :)
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:14920</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/14920.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=14920"/>
    <title>[Solved (I think)] MSEB Online Payment</title>
    <published>2009-04-28T14:06:19Z</published>
    <updated>2009-04-28T14:06:19Z</updated>
    <category term="networking"/>
    <category term="mseb"/>
    <category term="mtu"/>
    <content type="html">&lt;p&gt;Finally! Here's how I went about it:&lt;/p&gt;
&lt;p&gt;First, I wrote a simple program that downloads a page from &lt;a href="http://billing.mahadiscom.in"&gt;http://billing.mahadiscom.in&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;
#include &amp;lt;sys/types.h&amp;gt;
#include &amp;lt;sys/socket.h&amp;gt;
#include &amp;lt;netdb.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;unistd.h&amp;gt;
#include &amp;lt;string.h&amp;gt;

#define BUF_SIZE 2048

int main(int argc, char *argv[])
{
	char *host="billing.mahadiscom.in";
	char *port="80";

	int n=0, iter=0;

	struct addrinfo hints;
	struct addrinfo *result, *rp;
	int sfd, s;
	char buf[BUF_SIZE];

	memset(&amp;amp;hints, 0, sizeof(struct addrinfo));
	hints.ai_family = AF_INET;
	hints.ai_socktype = SOCK_STREAM;
	hints.ai_flags = 0;
	hints.ai_protocol = 0;

	s = getaddrinfo(host, port, &amp;amp;hints, &amp;amp;result);
	if (s != 0) {
		fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(s));
		exit(EXIT_FAILURE);
	}


	for (rp = result; rp != NULL; rp = rp-&amp;gt;ai_next) {
		sfd = socket(rp-&amp;gt;ai_family, rp-&amp;gt;ai_socktype, rp-&amp;gt;ai_protocol);
		if (sfd == -1)
			continue;

		if (connect(sfd, rp-&amp;gt;ai_addr, rp-&amp;gt;ai_addrlen) != -1)
			break;	/* Success */
		else
			perror("connect");

		close(sfd);
	}

	if (rp == NULL) {	/* No address succeeded */
		fprintf(stderr, "Could not connect\n");
		exit(EXIT_FAILURE);
	}

	freeaddrinfo(result);	/* No longer needed */

	if(write(sfd, "GET /billinfo.php HTTP/1.1\r\n", 
			strlen("GET /billinfo.php HTTP/1.1\r\n") ) &amp;lt; 0 )
		perror("write1");

	if (write(sfd, "Host: billing.mahadiscom.in\r\n", 
			strlen("Host: billing.mahadiscom.in\r\n") )&amp;lt;0)
		perror("write2");

	if(write(sfd, "\r\n", strlen("\r\n") )&amp;lt;0)
		perror("write3");

	memset(buf, 0, BUF_SIZE);

	while((n = read(sfd, buf, BUF_SIZE-1)) &amp;gt;0) {
		printf("%s\n\n==========================\n\n"
			"%d bytes received (Iter %d)\n\n"
			"===============================\n\n", 
			buf, n, ++iter);
		memset(buf, 0, BUF_SIZE);
	}

	if (n&amp;lt;0)
		perror("error");

	return 0;
}
&lt;/pre&gt;
&lt;p&gt;
On first run, data came in at 1448 bytes per burst and then hung up in about 3 bursts. Then I connected to the UK based VPN and tried again. This time data came in at 1360 bytes per burst and the entire page got downloaded. I discussed this with Ranjith Rajaram at work and he told me about MTU, which affects this window size.
&lt;/p&gt;
&lt;p&gt;
Sure enough, tun0 was configured with an MTU of 1412 while eth0 had an MTU of 1500. I modified the MTU for eth0 and presto! It worked! I'm still wondering how this works for Windows systems without any such interference.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PS:&lt;/strong&gt; Yes, the code's really dirty... but that's not the point.
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:14806</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/14806.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=14806"/>
    <title>Suspicious site?</title>
    <published>2009-04-20T09:47:04Z</published>
    <updated>2009-04-21T06:07:56Z</updated>
    <content type="html">&lt;p&gt;Firefox (or is it google?) seems to think that ceo.maharashtra.gov.in is a &lt;a href="http://safebrowsing.clients.google.com/safebrowsing/diagnostic?client=Firefox&amp;amp;hl=en-US&amp;amp;site=http://ceo.maharashtra.gov.in/pclist09.html"&gt;suspicious site&lt;/a&gt;. It apparently hosts malicious software which gets installed without user content.
&lt;/p&gt;
&lt;p&gt;The site runs on Linux, so surely it couldn't be ActiveX stuff right? Or maybe google going bonkers.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; Someone &lt;a href="http://siddhesh.livejournal.com/14806.html?thread=6870#t6870"&gt;pointed out&lt;/a&gt; that I'm an idiot and I need to double-check facts before I post. I agree with him/her.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:14457</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/14457.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=14457"/>
    <title>Gnome Terminal --tab</title>
    <published>2009-04-14T18:27:20Z</published>
    <updated>2009-04-14T18:27:20Z</updated>
    <category term="notayttm"/>
    <category term="patch"/>
    <category term="gnome-terminal"/>
    <content type="html">&lt;p&gt;So I wrote my first upstream patch for &lt;a href="http://bugzilla.gnome.org/show_bug.cgi?id=83203"&gt;something that is not ayttm&lt;/a&gt; ;) Let's see if it gets accepted though -- the issue has been rotting for seven years now.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:14321</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/14321.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=14321"/>
    <title>Online Payment on Mahadiscom and SBI card</title>
    <published>2009-03-31T04:44:38Z</published>
    <updated>2009-03-31T04:44:38Z</updated>
    <category term="mseb"/>
    <category term="online payment"/>
    <content type="html">&lt;p&gt;The &lt;a href="http://billing.mahadiscom.in"&gt;MSEB billing site&lt;/a&gt; opens only when I access it from a UK based proxy. It does not work when I access it from home -- be it from my Airtel connection or from Sify. The same was true for SBI card today, although it is normally accessible from home; unlike MSEB, where I have been trying to pay my bills online unsuccessfully for months before I stumbled on to a UK proxy.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:14002</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/14002.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=14002"/>
    <title>Well fed -- RSS Feeds</title>
    <published>2009-03-10T17:22:27Z</published>
    <updated>2009-03-10T17:23:27Z</updated>
    <category term="net4"/>
    <category term="rss"/>
    <content type="html">&lt;p&gt;
&lt;a href="http://net4.in"&gt;My web host&lt;/a&gt; finally got its act together after telling me that RSS feeds not showing up on my website were a programming fault and opened up outgoing connections from my site to my journal. They were quite active in following up -- they even called back when my call got dropped. Quite nice.
&lt;/p&gt;
&lt;p&gt;
Yes, I'll stop with my silly sense of humour now.
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:13571</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/13571.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=13571"/>
    <title>The making of libnet? libaynet? libnetwork?</title>
    <published>2009-03-09T18:27:10Z</published>
    <updated>2009-03-09T18:27:10Z</updated>
    <category term="glib"/>
    <category term="gthread"/>
    <category term="networking"/>
    <category term="threads"/>
    <content type="html">&lt;p&gt;
I was finally able to commit what I started thinking about and working on during FOSS.in back in November last year. Ayttm now starts its connections in a different thread. This eliminates the hang-ups that one may experience when the application is looking up a hostname. The proxy code was also not really with it. I wonder if anyone has tested to see if it works in the first place. For that matter, after I'm done with it, I hope someone tests it as well ;)
&lt;/p&gt;
&lt;p&gt;
So here's what I did. Every time a connection is requested, The connector creates a gthread for the connection and then adds an idle function source (see g_idle_add() in glib) to see if that connection has completed or not. once the connection thread returns, the idle handler continues and calls the connection callback, thus returning control to the connection requestor.
&lt;/p&gt;
&lt;p&gt;
Like that made a lot of sense ;)
&lt;/p&gt;
&lt;p&gt;
The bigger goal is to make this into a more serious networking wrapper library. Next step now is to add SSL support into the library. Then instead of linking it statically, I wonder if it would be a good idea to make it a separate module altogether. It might be necessary since nothing in the core uses SSL, so statically linking libproxy into the core won't work at all. 
&lt;/p&gt;
&lt;p&gt;
Oh, and the name libproxy just doesn't cut it anymore. I guess it should be called libnet or something once I'm through with it :)
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:13355</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/13355.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=13355"/>
    <title>Starving -- RSS Feeds</title>
    <published>2009-03-06T19:40:10Z</published>
    <updated>2009-03-06T19:40:10Z</updated>
    <category term="webhosting"/>
    <category term="rss"/>
    <content type="html">&lt;p&gt;
I finally shelled out some money for web hosting and I already feel like I've wasted it. &lt;a href="http://www.net4.in"&gt;My web hosts&lt;/a&gt; seem to have outgoing connections blocked, due to which this journal feed is still not visible on the site.
&lt;/p&gt;
&lt;p&gt;
I looked around and figured that I could do the RSS in JavaScript as well. Should have looked harder before I shelled out 2500 Rs :(
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:13150</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/13150.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=13150"/>
    <title>First commit from work...</title>
    <published>2009-02-13T19:27:24Z</published>
    <updated>2009-02-13T19:27:24Z</updated>
    <category term="ayttm"/>
    <category term="redhat"/>
    <category term="updates"/>
    <content type="html">&lt;p&gt;Yes, I can now work on ayttm at my workplace as well. I joined Red Hat last month :D&lt;/p&gt;
&lt;p&gt;I had to replace gtk_tool_item_set_tooltips() function in various places since it is broken in the latest libgtk. Anyways, it has been deprecated since some time now, so no harm in that. The only big effect is that I had to bump up required gtk version to 2.12.&lt;/p&gt;
&lt;p&gt;Anyways, once I get my bearings right at work, I should be able to contribute more regularly :)&lt;/p&gt;
&lt;p&gt;Also, we need to push ayttm into Fedora.&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:12861</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/12861.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=12861"/>
    <title>FOSS.in</title>
    <published>2008-11-28T14:38:35Z</published>
    <updated>2008-11-28T14:38:35Z</updated>
    <category term="ayttm"/>
    <category term="foss.in"/>
    <content type="html">&lt;p&gt;
A great event to go to if you want to know exactly how many and how much Indians are contributing to FOSS. Major contribution seems to be coming on the KDE and the Linux kernel front. 
&lt;/p&gt;
&lt;p&gt;
Workouts must have been great -- didn't get a chance (nor was I adequately prepared) to go to any of them since I was busy with my own little workout -- trying to get asynchronous connection going on ayttm. It's almost working now, except for SSL stuff. It has nothing to do with connection management really. It has something to do with threads, callbacks and the main loop. If you look into the implementation of eb_do_no_callback_dialog () and imagine it to be in a different thread than that in the main loop, you'll have an idea of what I'm talking about. I hope I'll have it fixed before I leave for Mumbai on Monday.
&lt;/p&gt;
&lt;p&gt;
Oh, and met &lt;a href="http://bluesmoon.info"&gt;Philip&lt;/a&gt; for the first time in person. We had an ayttm BoF session today, in which I struggled with the SSL stuff and Philip and Pradeep tried to get ayttm to compile on Pradeep's laptop.
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:12750</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/12750.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=12750"/>
    <title>@FOSS.in</title>
    <published>2008-11-25T08:49:27Z</published>
    <updated>2008-11-25T08:49:27Z</updated>
    <category term="async connect"/>
    <category term="foss.in"/>
    <content type="html">&lt;p&gt;
I'm at FOSS.in right now, listening to Rahul Bhalerao and hacking at ayttm till my laptop charge lasts (which is another 40 minutes now... must learn to conserve better). 
&lt;/p&gt;
&lt;p&gt;
Right now I'm trying to do fully asynchronous connects for ayttm. Currently, DNS lookups are synchronous and will hang up whenever there's no network and no cached DNS. It's worse with proxy -- the whole thing is synchronous.
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:12343</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/12343.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=12343"/>
    <title>Lenovo 3000 G410</title>
    <published>2008-10-30T17:42:06Z</published>
    <updated>2008-10-30T17:42:06Z</updated>
    <content type="html">&lt;p&gt;
That's my new weapon, which I've finally got working amidst the usual Diwali fever; shuttling between Kharghar and Mira Road and generally trying to get my home in shape for our first Diwali. Anyways, on to the weapon in question:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Processor: Intel Dual core 1.86 GHz&lt;/li&gt;
&lt;li&gt;Memory: 2 GB&lt;/li&gt;
&lt;li&gt;HDD: 160 GB&lt;/li&gt;
&lt;li&gt;Network: Ethernet, Wireless, Bluetooth&lt;/li&gt;
&lt;li&gt;Looks: Boxy, the kind most think looks ugly. Works for me though as long as it does what I want it to do.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The entire package cost only 29000 INR from Croma and I slapped on 999 INR for an HP PSC. A discount on being a Tata employee meant that the PSC was effectively free :)
&lt;/p&gt;
&lt;p&gt;
Tried Mandriva, Fedora and then finally went back to Debian because I didn't want to waste time trying to stumble around another distro. Yes, I've been too long on Debian (6 years) and every other distro seems to me as being deficient in some way or the other. Mandriva is too much GUI; it's almost as if it doesn't care about anything else. Fedora is really good, but just not Debian. It puts too much into the default install and seemed to want to connect to the internet each time I search for package descriptions on the package manager. Anyways, my opinion in this case is probably slanted because I tried Fedora only for a couple of hours, enough to download a Debian Netinstall CD image ;)
&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:siddhesh:12258</id>
    <link rel="alternate" type="text/html" href="http://siddhesh.livejournal.com/12258.html"/>
    <link rel="self" type="text/xml" href="http://siddhesh.livejournal.com/data/atom/?itemid=12258"/>
    <title>Exhausting week... with a hopeful end</title>
    <published>2008-09-11T18:34:27Z</published>
    <updated>2008-09-11T18:34:27Z</updated>
    <category term="projectday"/>
    <category term="ayttm"/>
    <category term="bangalore"/>
    <category term="foss.in"/>
    <content type="html">&lt;p&gt;
It's been (and continues to be) an exhausting week at work. I've been away from home from 6:00 AM to around 11:00 PM everyday and been buried upto my my brow in production problems, UAT releases and the "Why the hell is this written like this". Yahoo, MSN File Transfer have taken a reluctant back seat.
&lt;/p&gt;
&lt;p&gt;
Between all this I got a response (two actually) to my request to my employers to sponsor my trip to Bangalore for &lt;a href="http://foss.in"&gt;FOSS.in&lt;/a&gt; if I get a chance to talk on Ayttm. I had made the request two weeks ago and finally got an encouraging response. Turns out that we have an "Open Source Group" and their Head seemed to be all for it.
&lt;/p&gt;
&lt;p&gt;
Now waiting for FOSS.in/2008 to open up registrations so that we can propose a Project Day for Ayttm.
&lt;/p&gt;</content>
  </entry>
</feed>
