<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:wfw="http://wellformedweb.org/CommentAPI/"
     >
  <channel>
    <title>Niall O'Higgins</title>
    <link>http://niallohiggins.com/</link>
    <description></description>
    <pubDate>Tue, 03 Apr 2012 18:02:45 GMT</pubDate>
    <generator>Blogofile</generator>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Py Web SF: The San Francisco Python & Web Technology Meet-up</title>
      <link>http://niallohiggins.com/2009/07/24/py-web-sf-the-san-francisco-python-web-technology-meet-up/</link>
      <pubDate>Fri, 24 Jul 2009 19:29:47 PDT</pubDate>
      <category><![CDATA[Technical]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[UNIX]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Windows]]></category>
      <guid>http://niallohiggins.com/?p=563</guid>
      <description>Py Web SF: The San Francisco Python & Web Technology Meet-up</description>
      <content:encoded><![CDATA[
Last month I started <a href="http://pywebsf.org">Py Web SF</a>, the San Francisco Python & Web Technology meet-up.  The idea is 1-2 conversation-style presentations of about 30 minutes with a group of 10-20 people.  My hope is to have a more intimate group than the very good <a href="http://www.baypiggies.net/">Bay Piggies</a> (which I highly recommend).  With a small group, it is possible to have more interaction, discussion and collaboration.  In a typical lecture/audience format, people unfortunately tend to switch into "passive listener" mode.

<p>
<a href="http://pywebsf.org"><img src="http://niallohiggins.com/wp-content/uploads/2009/07/pywebsf.png" alt="pywebsf" title="pywebsf" width="321" height="156" class="aligncenter size-full wp-image-566" /></a>
</p>

<p>
<strong>June meet-up</strong>
<br/>

Anyway, the first meet-up went extremely well - we had 15 people show up, which was a perfect number for the space.  <a href="http://jjinux.blogspot.com/">Shannon -jj Behrens</a> gave an excellent talk on <A href="http://www.pywebsf.org/2009/06/24/shannon-jj-behrens-techniques-for-building-third-party-restful-web-services/">building RESTful Web services</a> and <a href="http://monkey.org/~marius">Marius Eriksen</a> - in fact a colleague from the <a href="http://www.openbsd.org">OpenBSD project</a> - gave an <a href="http://www.pywebsf.org/2009/06/24/marius-a-eriksen-geodjango-a-world-class-geographic-web-framework/">awesome talk on GeoDjango</a>.  Slides for both talks are online, of course.
</p>

<p>
<strong>July meet-up</strong>
<br/>

<a href="http://www.pywebsf.org/2009/07/21/py-web-sf-2-july-28th-6pm-sf-main-public-library%e2%80%99s-stong-room/'>This month's meet</a> should be equally good.  We have two great talks lined up - Aseem Mohanty, a colleague of mine from <a href="http://www.metaweb.com">Metaweb Technologies</a> presenting a comparison of Django and Pylons.  Then we have Alec Flett, another Metaweb'er, speaking about all the issues involved in scaling Python web applications.
</p>

<p>
<strong>Check it out</strong>
<br/>

If you are interested in checking out the event, its <b>July 28th, 6pm @ SF Main Public Libraryâ€™s Stong Room</b>.  Full details can be found <a href=" http://www.pywebsf.org/2009/07/21/py-web-sf-2-july-28th-6pm-sf-main-public-library%E2%80%99s-stong-room/">at pywebsf.org</a>. Or if you are interested in giving a talk, <a href="mailto:niallo@pywebsf.org">just let me know</a>.
</p>
]]></content:encoded>
    </item>
    <item>
      <title>Windows, P2P, network freezes and the TCP `half-open' state</title>
      <link>http://niallohiggins.com/2009/05/18/windows-p2p-network-freezes-and-the-tcp-half-open-state/</link>
      <pubDate>Mon, 18 May 2009 21:27:23 PDT</pubDate>
      <category><![CDATA[Technical]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[BitTorrent]]></category>
      <guid>http://niallohiggins.com/?p=474</guid>
      <description>Windows, P2P, network freezes and the TCP `half-open' state</description>
      <content:encoded><![CDATA[
Have you ever tried to run a very network-intensive P2P application on Windows XP SP2 or higher?  If so, you may have encountered very strange behaviour with the Windows TCP/IP network stack.  Specifically, you won't be able to open any new TCP/IP connections, so web-browsing, email checking, SSH, etc will all be basically unusable.  At the same time, P2P transfers might be running fine for all you can tell.

I spent some time trouble-shooting all aspects of my set up including testing the router, my Internet connection, and even re-installing Windows a couple of times - all to no avail.  Finally I figured out the source of the problem, and how to fix it!

It turns out that this behaviour is due to a feature introduced in Windows XP Service Pack 2 which limits the number of TCP/IP sockets you can have in the 'half-open' state to 10.  A connection in the <a href="http://en.wikipedia.org/wiki/Half-open_connection">TCP half-open</a> state means that one side of the socket has disappeared and stopped responding, without properly notifying the other side.  After 10 such connections, the Windows kernel queues up all new socket connection attempts and you will experience this network "freeze" behaviour.  Apparently the reason for Microsoft having this low default is to slow the spread of virii and limit infected hosts from participating in DoS attacks etc.  

Unfortunately, P2P applications in particular are very negatively affected by this low default, because they are constantly opening new connections to peers, they very quickly fill up the default limit of 10 half-open connections.  

<a href="http://half-open.com/home_en.htm"><img src="http://niallohiggins.com/wp-content/uploads/2009/05/half-open_limit_fix_en.png" alt="half-open_limit_fix_en" title="half-open_limit_fix_en" width="346" height="329" class="aligncenter size-full wp-image-475" /></a>

The good news is that once you realise this is the problem you are encountering, its trivial to fix.  There is a <a href="http://half-open.com/home_en.htm">very simple patch</a> which raises this default to any value, with a recommended setting of 100.  I have used this patch a couple of times, setting the default to 100, and it has completely solved the issue for me.  Yet another annoying, niggling thing to install on a fresh Windows system!  Oh well.]]></content:encoded>
    </item>
    <item>
      <title>Mount remote filesystems via SSH on Windows with free software</title>
      <link>http://niallohiggins.com/2009/05/12/mount-remote-filesystems-via-ssh-on-windows-with-free-software/</link>
      <pubDate>Tue, 12 May 2009 20:06:44 PDT</pubDate>
      <category><![CDATA[Technical]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[UNIX]]></category>
      <guid>http://niallohiggins.com/?p=444</guid>
      <description>Mount remote filesystems via SSH on Windows with free software</description>
      <content:encoded><![CDATA[
I often use Windows as a terminal to my various UNIX systems.  Sometimes its helpful to run proprietary software - and I don't have time/inclination to mess around with half-baked emulators/ports/binary blobs/whatevers under Linux.  I either run a completely open system like <a href="http://www.openbsd.org">OpenBSD</a> or I run Windows.

<a href="http://dokan-dev.net/en/"><img src="http://dokan-dev.net/en/wp-content/uploads/2007/11/dokan.png" /></a>

Anyway, I never use Windows to do any real work.  I always shell into a remote system to actually get things done.  Either <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a> or - if you prefer real <a href="http://www.openssh.com">OpenSSH</a> like me - <a href="http://www.cygwin.com/">OpenSSH via Cygwin/X</a> work fine for getting a terminal.  <a href="http://winscp.net/eng/index.php">WinSCP</a> or Cygwin's OpenSSH for scp(1) are good for file-transfer under most circumstances.  However, one of the nice things about Windows is the Explorer shell.  It - and its <a href="http://www.kde.org">KDE knock-off</a> - are useful for certain file management operations.  Why not leverage it?

So I started looking for a way to mount remote filesystems via SSH, so that they appear as native Windows volumes.  And I found a way to do it, for free.

<b>Dokan user mode filesystem for Windows</b>

<a href="http://dokan-dev.net/en/">Dokan</a> is basically <a href="http://fuse.sourceforge.net/">FUSE</a> for Windows.  That's all dandy and there are <a href="http://dustfs.zekjur.net/">plenty of useful FUSE filesystems out there, like this one which uses my BitTorrent implementation</a>.  Whats cool about Dokan is they also do an <a ref="http://dokan-dev.net/en/docs/dokan-sshfs-readme/">SSH FS implementation</a>.

<a href="http://dustfs.zekjur.net/"><img src="http://niallohiggins.com/wp-content/uploads/2009/05/logo3.png" /></a>

<b>Is it hard to set up</b>

I figured this thing was surely going to be a PITA and probably not work to boot.  In fact, you just install three things - some Microsoft runtime library, the main Dokan library, and Dokan SSHFS - and there you go.  There is simple GUI app to set up remote mounts that supports all the things you'd expect, saving sessions, both password and public key authentication.

<b>Does it actually work</b>

Yes, although it doesn't seem to support symlinks.  A symlink to a directory on a remote system appears as a file under Dokan.  So no $HOME/public_html for you - oh well.

<b>Final thoughts</b>

Its fun to look at your horribly un-organised UNIX home directory in Windows, and see just how messy it is.  Almost makes me want to start cleaning things up.  But then I remember I know how to use locate(1) and find(1).]]></content:encoded>
    </item>
  </channel>
</rss>

