<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:posterous="http://posterous.com/help/rss/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" version="2.0">
  <channel>
    <title>beardsoft.com</title>
    <link>http://blog.beardsoft.com</link>
    <description>Most recent posts at beardsoft.com</description>
    <generator>posterous.com</generator>
    <link xmlns="http://www.w3.org/2005/Atom" href="http://posterous.com/api/sup_update#40434cafc" type="application/json" rel="http://api.friendfeed.com/2008/03#sup" />
    
    
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/beardsoft" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="beardsoft" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://posterous.superfeedr.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc/2.0/</creativeCommons:license><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">beardsoft</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
      <pubDate>Sat, 19 Dec 2009 06:18:47 -0800</pubDate>
      <title>Node FTP Server - Initial Release</title>
      <link>http://blog.beardsoft.com/node-ftp-server-initial-release</link>
      <guid>http://blog.beardsoft.com/node-ftp-server-initial-release</guid>
      <description>&lt;p&gt;
	&lt;div class="posterous_bookmarklet_entry"&gt;
      &lt;p&gt;Have done an initial release of my FTP Server in node.js. still a lot
of work to do (like maybe some error handling?!) but i have the basic
functionality working pretty seamlessly with filezilla client.&lt;/p&gt;
&lt;p&gt;It works fine with large files (200MB+) and have managed to push it to
50k+ concurrent logged in connections (all idle - things get a bit
hairy when they are all sending and receiving messages).... Seems to
use up about 3-4k per active connection on average.&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;Git Repo is &lt;a href="http://github.com/billywhizz/nodeftpd" target="_blank"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It has only been tested against node release 0.1.21 so far.&lt;/p&gt;
&lt;p&gt;When i run the included test script, i get the following after 50000
connections:&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;FTP Return Codes:
&amp;quot;220&amp;quot;:50002,
&amp;quot;230&amp;quot;:50002,
&amp;quot;257&amp;quot;:50002,
&amp;quot;331&amp;quot;:50002,

Memory Usage (MB):
&amp;quot;RSS&amp;quot;:139,
&amp;quot;VSZ&amp;quot;:164,

Connection Info (Connected, Errors, EOF events, Close events, Timeout
events):
&amp;quot;CON&amp;quot;:50002,
&amp;quot;ERR&amp;quot;:0,
&amp;quot;EOF&amp;quot;:0,
&amp;quot;CLO&amp;quot;:0,
&amp;quot;TIM&amp;quot;:0&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;feel free to provide some feedback if you have a chance to have a look
at it.&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;
NOTE: Will only work in ACTIVE mode (set your FTP client to use active
connections). PASSIVE mode only works with a patch to the node code.
As far as I know Ryan is adding the functionality to allow retrieval
of an assigned ephemeral port in a listen event on the TCP Server, but
this is not in the latest node release yet. If you really want to test
out Passive mode, you can apply &lt;a href="http://gist.github.com/260085" target="_blank"&gt;these patches&lt;/a&gt; to node release
0.1.21:&lt;/p&gt;

    &lt;p&gt;&lt;/p&gt;&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.beardsoft.com/node-ftp-server-initial-release"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.beardsoft.com/node-ftp-server-initial-release#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/beardsoft?a=4AZlqvRDI6w:7zDVxSVeOUY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beardsoft?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beardsoft?a=4AZlqvRDI6w:7zDVxSVeOUY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beardsoft?i=4AZlqvRDI6w:7zDVxSVeOUY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beardsoft?a=4AZlqvRDI6w:7zDVxSVeOUY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beardsoft?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beardsoft?a=4AZlqvRDI6w:7zDVxSVeOUY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beardsoft?i=4AZlqvRDI6w:7zDVxSVeOUY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/338831/naked.gif</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/3sDtHgN0isg1</posterous:profileUrl>
        <posterous:firstName>Andrew</posterous:firstName>
        <posterous:lastName>Johnston</posterous:lastName>
        <posterous:nickName>billywhizz</posterous:nickName>
        <posterous:displayName>Andrew Johnston</posterous:displayName>
      </posterous:author>
    </item>
    <item>
      <pubDate>Wed, 16 Dec 2009 12:14:00 -0800</pubDate>
      <title>youtube server in node.js</title>
      <link>http://blog.beardsoft.com/billywhizzs-scratch-at-master-github</link>
      <guid>http://blog.beardsoft.com/billywhizzs-scratch-at-master-github</guid>
      <description>&lt;p&gt;
	&lt;div class="posterous_bookmarklet_entry"&gt;
&lt;p&gt;&lt;a href="http://github.com/billywhizz/scratch" target="_blank"&gt;This&lt;/a&gt; is my first attempt at a project with &lt;a href="http://node.js" target="_blank"&gt;node&lt;/a&gt;.&amp;nbsp; Am trying to build a youtube server that will perform downloads of flv files from youtube as well as provide a web interface for viewing your downloads.&lt;/p&gt;
&lt;p&gt;Usage is pretty straightforward, just require yuserv.js and set values for ip, port, files directory and a unique url to pass to youtube when downloading as follows:&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&lt;a href="http://gist.github.com/258127.js?file=yutest"&gt;http://gist.github.com/258127.js?file=yutest&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;the yuserv.get lines just set up the server to handle specific requests. it could be easily extended to add lots more functionality.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.beardsoft.com/billywhizzs-scratch-at-master-github"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://blog.beardsoft.com/billywhizzs-scratch-at-master-github#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/beardsoft?a=gvLpSzTwxnM:psOX5RMWPvM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beardsoft?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beardsoft?a=gvLpSzTwxnM:psOX5RMWPvM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beardsoft?i=gvLpSzTwxnM:psOX5RMWPvM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beardsoft?a=gvLpSzTwxnM:psOX5RMWPvM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beardsoft?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/beardsoft?a=gvLpSzTwxnM:psOX5RMWPvM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/beardsoft?i=gvLpSzTwxnM:psOX5RMWPvM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/338831/naked.gif</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/3sDtHgN0isg1</posterous:profileUrl>
        <posterous:firstName>Andrew</posterous:firstName>
        <posterous:lastName>Johnston</posterous:lastName>
        <posterous:nickName>billywhizz</posterous:nickName>
        <posterous:displayName>Andrew Johnston</posterous:displayName>
      </posterous:author>
    </item>
  </channel>
</rss>

