<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JP&#039;s Blog-O-Matic &#187; Development</title>
	<atom:link href="http://www.viceclown.com/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.viceclown.com</link>
	<description>tecnology &#124; community &#124; stuff</description>
	<lastBuildDate>Sat, 10 Apr 2010 06:01:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Windows Shell Organization</title>
		<link>http://www.viceclown.com/2010/04/10/windows-shell-organization/</link>
		<comments>http://www.viceclown.com/2010/04/10/windows-shell-organization/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 05:52:51 +0000</pubDate>
		<dc:creator>JP Toto</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[cmd]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[powershell]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.viceclown.com/?p=162</guid>
		<description><![CDATA[If you use Microsoft Windows and you work in a shell or command prompt frequently then you probably have more than one shell window open at a time. On Microsoft Windows, I frequently have a regular cmd window, SSH Cygwin window, second cmd window for Git commands, and sometimes even a PowerShell window. This can [...]]]></description>
			<content:encoded><![CDATA[<p>If you use <!-- B:123LinkIt --><a class="123linkit" onclick="window.open(Url123LinkIt1);return false" onmousedown="this.href=Url123LinkIt1" onmouseout="this.href='/microsoft'" rel="nofollow" href="/microsoft"><!-- E:123LinkIt -->Microsoft<!-- B:123LinkIt --></a><!-- E:123LinkIt --> Windows and you work in a shell or command prompt frequently then you probably have more than one shell window open at a time. On Microsoft Windows, I frequently have a regular cmd window, SSH Cygwin window, second cmd window for Git commands, and sometimes even a PowerShell window. This can get confusing pretty quickly which makes it difficult to alt-tab back and forth between the shell windows I&#8217;m looking for. You get a mess like:</p>
<p style="text-align: center;">
<div id="attachment_163" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.viceclown.com/wp-content/uploads/2010/04/shell1.png"><img class="size-full wp-image-163  " title="Messy Shells" src="http://www.viceclown.com/wp-content/uploads/2010/04/shell1.png" alt="Messy Shells" width="500" height="300" /></a><p class="wp-caption-text">They all look the same!</p></div>
<p>That&#8217;s a mess and it drives me crazy. One nice way to organize your shells, at least by group, is to color code them so they stand out better. For example, I use the following color scheme for my typical shell groups:</p>
<ul>
<li>SSH: Green on black</li>
<li>Git: Purple on black</li>
<li>CMD: Yellow on black</li>
<li>PowerShell: Default white on blue</li>
</ul>
<p>I also use custom sizes and font setups so I can get a little real estate onto my shell rather than the default Microsoft setup. The basic 80&#215;25 default layout isn&#8217;t helping anybody!</p>
<p style="text-align: left;">
<div id="attachment_169" class="wp-caption aligncenter" style="width: 414px"><a href="http://www.viceclown.com/wp-content/uploads/2010/04/shell3.png"><img class="size-full wp-image-169 " title="Default Shell Layout" src="http://www.viceclown.com/wp-content/uploads/2010/04/shell3.png" alt="Default Shell Layout" width="404" height="205" /></a><p class="wp-caption-text">Default Shell Layout. Yuk!</p></div>
<p style="text-align: left;">Here are some simple steps to customize the font for your shell and color code them in a way that makes it easy to navigate to:</p>
<p style="text-align: left;">1. Left click the little icon in the top left corner of window and click on the &#8220;Properties&#8221; menu item. You will get the &#8220;Command Prompt Properties window as illustrated below.</p>
<p style="text-align: left;">2. Beginning with the color tab, select the screen text and background  you would like. I&#8217;m a sucker for the classic terminal black background  so I usually sticky with it. Try the green or yellow colors because they  stand out better against the black background.</p>
<p style="text-align: left;">
<div id="attachment_171" class="wp-caption aligncenter" style="width: 395px"><a href="http://www.viceclown.com/wp-content/uploads/2010/04/shell4.png"><img class="size-full wp-image-171" title="Command Window Properties" src="http://www.viceclown.com/wp-content/uploads/2010/04/shell4.png" alt="Command Window Properties" width="385" height="474" /></a><p class="wp-caption-text">Command Window Properties</p></div>
<p>3. Choose a layout that is suited for you. I&#8217;ve been using 90&#215;40 lately  so change the &#8220;Width&#8221; on the &#8220;Screen Buffer Size&#8221; and &#8220;Window Size&#8221; to  90 and the &#8220;Height&#8221; on the &#8220;Window Size&#8221; to 40. Leave the height on the  &#8220;Screen Buffer Size&#8221; at 300. This dictates how much scrollable vertical  area you can go back and review with the scrollbar on the right.</p>
<p style="text-align: left;">
<div id="attachment_172" class="wp-caption aligncenter" style="width: 392px"><a href="http://www.viceclown.com/wp-content/uploads/2010/04/shell5.png"><img class="size-full wp-image-172" title="Choose Layout" src="http://www.viceclown.com/wp-content/uploads/2010/04/shell5.png" alt="Choose Layout" width="382" height="475" /></a><p class="wp-caption-text">Choose Layout</p></div>
<p style="text-align: left;">4. The default font settings are a pretty chunky 8&#215;12. Recent versions  of Microsoft Windows have allowed for using True <!-- B:123LinkIt --><a class="123linkit" onclick="window.open(Url123LinkIt3);return false" onmousedown="this.href=Url123LinkIt3" onmouseout="this.href='/type-fonts'" rel="nofollow" href="/type-fonts"><!-- E:123LinkIt -->Type fonts<!-- B:123LinkIt --></a><!-- E:123LinkIt -->. You can  experiment with these a little to suit your needs. I use the <!-- B:123LinkIt --><a class="123linkit" onclick="window.open(Url123LinkIt2);return false" onmousedown="this.href=Url123LinkIt2" onmouseout="this.href='/lucida'" rel="nofollow" href="/lucida"><!-- E:123LinkIt -->Lucida<!-- B:123LinkIt --></a><!-- E:123LinkIt --> Console font with a size of 12.</p>
<p style="text-align: left;">
<div id="attachment_173" class="wp-caption aligncenter" style="width: 393px"><a href="http://www.viceclown.com/wp-content/uploads/2010/04/shell6.png"><img class="size-full wp-image-173" title="Font Settings" src="http://www.viceclown.com/wp-content/uploads/2010/04/shell6.png" alt="Font Settings" width="383" height="473" /></a><p class="wp-caption-text">Font Settings</p></div>
<p style="text-align: left;">Tada! Look how nice that new shell looks! The font is smaller and nicer  looking and you&#8217;ve got lots more real estate to issue and perform  commands! Below is an example of my cmd, ssh, PowerShell, and Git shells  all in one place but which are easily selectable because of the simple  color coding:</p>
<p style="text-align: left;">
<div id="attachment_174" class="wp-caption aligncenter" style="width: 475px"><a href="http://www.viceclown.com/wp-content/uploads/2010/04/shell7.png"><img class="size-full wp-image-174 " title="Completed Shell" src="http://www.viceclown.com/wp-content/uploads/2010/04/shell7.png" alt="Completed Shell" width="465" height="382" /></a><p class="wp-caption-text">Completed Shell</p></div>
<p style="text-align: left;">Try some experimentation with the fonts and colors to get a system that  works for you. You&#8217;ll only have to configure the properties one time and  will save LOADS of squinting while switching between windows!</p>
<p style="text-align: left;">
<div id="attachment_175" class="wp-caption aligncenter" style="width: 470px"><a href="http://www.viceclown.com/wp-content/uploads/2010/04/shell8.png"><img class="size-full wp-image-175 " title="SSH, Git, PowerShell, CMD" src="http://www.viceclown.com/wp-content/uploads/2010/04/shell8.png" alt="SSH, Git, PowerShell, CMD" width="460" height="321" /></a><p class="wp-caption-text">SSH, Git, PowerShell, CMD</p></div>
<p style="text-align: left;">
<p style="text-align: left;">
<p><!-- B:123LinkIt --><script type="text/javascript">// <![CDATA[
Url123LinkIt1='http://www.viceclown.com/wp-content/plugins/123linkit-affiliate-marketing-tool/links.php?vals=631,1807847,nwqQDSjfCk3JGu1R';Url123LinkIt2='http://www.viceclown.com/wp-content/plugins/123linkit-affiliate-marketing-tool/links.php?vals=631,1368118,nwqQDSjfCk3JGu1R';Url123LinkIt3='http://www.viceclown.com/wp-content/plugins/123linkit-affiliate-marketing-tool/links.php?vals=631,878047,nwqQDSjfCk3JGu1R';
// ]]&gt;</script><!-- E:123LinkIt --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.viceclown.com/2010/04/10/windows-shell-organization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing MVCMelee!</title>
		<link>http://www.viceclown.com/2010/03/07/announcing-mvcmelee/</link>
		<comments>http://www.viceclown.com/2010/03/07/announcing-mvcmelee/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 14:46:02 +0000</pubDate>
		<dc:creator>JP Toto</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[competition]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[mvcmelee]]></category>

		<guid isPermaLink="false">http://www.viceclown.com/?p=150</guid>
		<description><![CDATA[Today my friend Sara Chipps and I are announcing the creation of the MVC Melee! The contest will be a 48 hour competition where teams of ASP.NET MVC developers will have 2 days to come up with a rad web application idea and put it in action. The public will judge. Prizes will be given. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mvcmelee.com"><img class="size-full wp-image-149 alignleft" title="MVCMelee" src="http://www.viceclown.com/wp-content/uploads/2010/03/image.axd_.png" alt="MVC Melee" width="293" height="88" /></a></p>
<p>Today my friend <a title="Sara Chipps on Twitter" href="http://twitter.com/sarajchipps" target="_blank">Sara Chipps</a> and I are announcing the creation of the <a title="MVC Melee" href="http://www.mvcmelee.com" target="_blank">MVC Melee</a>! The contest will be a 48 hour competition where teams of <a title="ASP.NET MVC" href="http://www.asp.net/mvc" target="_blank">ASP.NET MVC</a> developers will have 2 days to come up with a rad web application idea and put it in action. The public will judge. Prizes will be given. Bragging rights will be secured.</p>
<p><strong>What the what?</strong></p>
<p>MVC Melee is based on the <a title="Rails Rumble" href="http://www.railsrumble.com" target="_blank">Rails Rumble</a> which has been going on for a couple years now. It&#8217;s a wonderful competition which has produced some amazing web sites. I tried last year to get a team together but couldn&#8217;t make it happen. After the rumble was over I wondered why we didn&#8217;t have a similar competition in the MVC space? Sara concurred and the MVC Melee was born! The Rails Rumble folks have been very <a title="Rails Rumble Blog Post" href="http://blog.railsrumble.com/2010/3/6/mvc-melee-is-rails-rumble-for-asp-net" target="_blank">supportive</a> so far which has been great!</p>
<p><strong>How&#8217;s it work?</strong></p>
<p>The <a title="MVC Melee Rules" href="http://www.mvcmelee.com/rules.html" target="_blank">rules</a> are pretty straight forward. We&#8217;ve launched an <a title="MVC Melee" href="http://www.mvcmelee.com" target="_blank">informational site</a> with the details of the competition, <a title="MVC Melee FAQ" href="http://www.mvcmelee.com/faq.html" target="_blank">FAQ</a>, etc. Naturally there is a <a title="MVC Melee Twitter Account" href="http://twitter.com/mvcmelee" target="_blank">twitter</a> account too. Teams should be 1 to 4 people and any resources you use for your site should be free. The constraints are very heavily based on the Rails Rumble rules but modified where applicable. This is our first time out so we have to be a little conservative about what&#8217;s allowed to be used. Future melees may be easier to open up to additional libraries such as home brew MVC frameworks.</p>
<p><strong>Lets get it on!</strong></p>
<p>We anticipate registration will open around May 1st so start thinking about web site ideas and team candidates! Aesthetics and usability are part of the judging criteria so think about having a designer on the team who can sling Photoshop and CSS like a ninja.</p>
<p>I&#8217;m REALLY looking forward to see what folks can come up with in 48 hours! Help us spread the word and join the <a title="MVC Melee" href="http://www.mvcmelee.com" target="_blank">melee</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viceclown.com/2010/03/07/announcing-mvcmelee/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hornget, Why I think it needs binaries</title>
		<link>http://www.viceclown.com/2009/11/01/hornget-why-i-think-it-needs-binaries/</link>
		<comments>http://www.viceclown.com/2009/11/01/hornget-why-i-think-it-needs-binaries/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 19:07:12 +0000</pubDate>
		<dc:creator>JP Toto</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[horn]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[packager]]></category>

		<guid isPermaLink="false">http://www.viceclown.com/?p=114</guid>
		<description><![CDATA[Today I learned about the Hornget project which is lead by Paul Cowan. Hornget attempts to solve the elusive &#8220;package manager for .NET&#8221; problem by creating a packager system for open source .NET projects. An interesting choice the Horn project team made was to keep the repository (not the design pattern, the actual place where [...]]]></description>
			<content:encoded><![CDATA[<p>Today I learned about the <a title="Hornget" href="http://hornget.net/packages/" target="_blank">Hornget </a>project which is lead by <a title="Paul Cowan" href="http://thesoftwaresimpleton.blogspot.com/">Paul Cowan</a>. Hornget attempts to solve the elusive &#8220;package manager for .NET&#8221; problem by creating a packager system for open source .NET projects.</p>
<p>An interesting choice the Horn project team made was to keep the repository (not the design pattern, the actual place where the project meta data is stored) building from source and eschew binary packages altogether. Paul actually makes a very compelling case for this choice in his <a title="Pauls talk at DSL Devcon" href="http://msdn.microsoft.com/en-us/oslo/dd727726.aspx" target="_blank">presentation at DSL DevCon</a>.</p>
<p>While I agree that having the build from source option available is a good idea, I don&#8217;t think it should be the default option. Or at least, I think that a binary install option of equal weight should be available.</p>
<p>The Horn dependency and package system is based, at least in part, on the <a title="Gentoo Linux" href="http://www.gentoo.org/">Gentoo Linux</a> Portage manager. When Gentoo first showed up on the linux scene I started using it as my linux desktop and server of choice.  The Portage system has awesome dependency resolution and listed the latest and greatest versions of packages like KDE, Gnome, and all the STABLE versions my favorite applications. I highlight stable because that&#8217;s what I like to use &#8211; the stable version &#8211; especially for important or production situations.</p>
<p>The thing I hated about Gentoo was waiting for packages and their dependencies to compile. Most small applications built fast. Most large ones, like x-org, Gnome, and KDE didn&#8217;t. The process usually went something like this: Start build, go to bed, wake up the next day and hope there were no build errors.</p>
<p>Now to be fair, there are no packages in Horn that will take all night to build. However&#8230;</p>
<div id="attachment_115" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.viceclown.com/wp-content/uploads/2009/11/log4net_build.PNG"><img class="size-medium wp-image-115" title="log4net Build Failure" src="http://www.viceclown.com/wp-content/uploads/2009/11/log4net_build-300x233.PNG" alt="log4net Build Failure" width="300" height="233" /></a><p class="wp-caption-text">log4net Build Failure</p></div>
<p>This is what happened when I tried to install log4net from source. The build failed. This happens more often than people may think. And it&#8217;s why I think a &#8220;install from binary&#8221; option is needed.</p>
<p>Pauls argument for building from source via his presentation goes something like this:</p>
<ol>
<li>All developers like to use the bleedingest edgiest version of a software package so we all download from trunk and compile.</li>
<li>Because of this, we have dependency issues during builds because the source from a dependent package may be out of date. Thus, that package also needs to have the freshest source pulled and built. (ie, dependency checking and resolution)</li>
</ol>
<p>I agree that these are issues. But only when building from source. The question then becomes, do most developers use the latest trunk builds of open source projects like Nhibernate, Castle Windsor, and MVCContrib?</p>
<p>Having spent a lot of time on both the MSDN and ALT.NET side of the developer camps, I&#8217;m comfortable saying that a lot of people don&#8217;t want to build from source. They don&#8217;t want to use the latest bleeding edge version. They just need the package to work stably and reliably. Horn pulls the source from the repository itself where the project is hosted. (so far only svn is supported but git is on the way) There is no gateway to be sure packages are stable and feature complete. Just because something builds doesn&#8217;t mean it&#8217;s ready to be tagged as the next version.</p>
<p>This raises some more questions which I haven&#8217;t been able to answer myself yet: Who decides what packages are inside of Horn right now? Presumably Paul and his team are playing things a little close to the vest right now, adding prominent open source projects to their repository, and making sure they build correctly.  And that&#8217;s the right thing to do. But who decides when the next version of a package is ready to be included in the repository? Does the original developer team have a say? If they commit each night and the Horn build &#8220;checker&#8221; doesn&#8217;t fail does this mean that a new build of a project is available each day? In the future, will I be able to add my own open source project to the Horn repository? Will I have any control over how often it&#8217;s versioned?</p>
<p>I&#8217;ve actually been thinking a lot about this problem over the last couple of months and I think I have a solution which I&#8217;ll detail in a future post.</p>
<p>For now, however, I really do wish the Horn project team well. I&#8217;ve already joined the Google Horn Developer Group to follow the goings on and will hopefully be able to inject some opinion about adding binary support.</p>
<p>Give the Horn project a look. It very well could be the future of .NET package management for community and open source projects!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viceclown.com/2009/11/01/hornget-why-i-think-it-needs-binaries/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Multipart Form Posts in .NET</title>
		<link>http://www.viceclown.com/2009/08/15/multipart-form-posts-in-net/</link>
		<comments>http://www.viceclown.com/2009/08/15/multipart-form-posts-in-net/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 20:12:23 +0000</pubDate>
		<dc:creator>JP Toto</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[post]]></category>

		<guid isPermaLink="false">http://www.viceclown.com/?p=91</guid>
		<description><![CDATA[Recently I decided I wanted to develop a small, lightweight Windows client to use for Baconfile, Leah Culver&#8216;s latest side project for easily uploading files to Amazon&#8217;s S3 service. Chris Wanstrath made a nice little Mac client and I thought Windows users might enjoy the same type of functionality. After deciding on how I wanted [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I decided I wanted to develop a small, lightweight Windows client to use for <a title="Bacon File" href="http://baconfile.com" target="_blank">Baconfile</a>, <a title="Leah Culver" href="http://leahculver.com/" target="_blank">Leah Culver</a>&#8216;s latest side project for easily uploading files to Amazon&#8217;s S3 service.<a title="Chris Wanstrath" href="http://defunkt.github.com/" target="_blank"> Chris Wanstrath</a> made a nice little <a title="Bacondrop" href="http://baconfile.com/defunkt/bacondrop/" target="_blank">Mac client</a> and I thought Windows users might enjoy the same type of functionality.</p>
<p>After deciding on how I wanted the app to look and feel, I got to work. At least, I tried to. Strait away I ran into issues in both trying to write a Windows Explorer extension in .NET and POSTing a multi-part form POST. I don&#8217;t want to devolve into too much of a rant but it IS 2009 and we STILL can&#8217;t write simple Explorer extensions using managed code which just reinforces my feeling that .NET programmers are second-class Windows citizens. Version 4.0 is around the corner and I still have to import kernel32.dll to perform some basic OS functions.</p>
<p>The other problem, POSTing a multi-part form POST turned out to be a little bit more surmountable an issue. The goal was to use the <a title="Baconfile API" href="http://baconfile.com/api/" target="_blank">Baconfile API</a> to upload a file. In other languages such as Ruby, constructing a multi-part form post is actually quite simple. In C# it is not. Between <a title="HttpWebRequest on MSDN" href="http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx" target="_blank">HttpWebRequest</a> and the <a title="WebClient on MSDN" href="http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx" target="_blank">WebClient </a>Upload method, there was no way to create a custom post whereby I added some arbitrary number of POST parameters.</p>
<p>After awhile I found<a title="Brian Ginstead" href="http://www.briangrinstead.com/blog/" target="_blank"> Brian Grinstead</a>&#8216;s <a title="Brian Ginstead - Multipart Form Post" href="http://www.briangrinstead.com/blog/multipart-form-post-in-c/comment-page-1#comment-242" target="_blank">post</a> about how he had constructed his own class that enabled users to create their own custom-formed multi-part form POST. Considering how often a function like this is used, especially on public APIs, I was as surprised as he was that this kind of functionality wasn&#8217;t in the .NET framework itself. His example class worked flawlessly.</p>
<p>I needed to add some tweaks such as basic http auth and so I created a <a title="Multi-part_form_poster GitHub project" href="http://github.com/jptoto/multipart_form_poster/tree/master" target="_blank">new GitHub project</a> to support the work.</p>
<p>I plan to add more functions such as a cookie container, ActiveDirectory auth, and whatever else seems logical. If I&#8217;ve missed something and there really IS an easy way to do this using out-of-the-box classes in the .NET framework, please let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viceclown.com/2009/08/15/multipart-form-posts-in-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Run Your Project Like You&#039;d Run a Business</title>
		<link>http://www.viceclown.com/2009/03/29/run-your-project-like-youd-run-a-business/</link>
		<comments>http://www.viceclown.com/2009/03/29/run-your-project-like-youd-run-a-business/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 16:40:11 +0000</pubDate>
		<dc:creator>JP Toto</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[customers]]></category>
		<category><![CDATA[johnresig]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[users]]></category>

		<guid isPermaLink="false">http://www.viceclown.com/?p=74</guid>
		<description><![CDATA[Treat your users like you'd treat your customers.

Being available to their users for help and advice is something that some, but sadly not all, product-based businesses understand. For project owners, this means being active on your wiki, your forums, and your email lists. John had a great anecdote about a help request he received to his personal email account. Instead of ignoring the user or reeling off a terse "RTFM" response, he exchanged a few messages with them and eventually got them sorted. It turns out this user was a head architect at Amazon. You never know who your users are - treat them all like customers. Satisfaction gaurenteed.]]></description>
			<content:encoded><![CDATA[<p>Last Thursday and Friday I attended the <a title="Philly Emerging Technologies" href="http://www.phillyemergingtech.com" target="_blank">Philly Emerging Technologies</a> conference in <a title="Conshohocken, PA" href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=conshohocken,+PA&amp;sll=40.121768,-75.388356&amp;sspn=0.009402,0.013883&amp;ie=UTF8&amp;z=14&amp;iwloc=addr" target="_blank">Conshohocken, PA</a>. I&#8217;m not going to rehash or summarize all of the talks I went to but I DO want to focus on one particular talk and that is John Resig&#8217;s &#8220;How to Run a Successful Open Source Project: The jQuery success story&#8221;.</p>
<p>For those who don&#8217;t already know, <a title="John Resig" href="http://ejohn.org/" target="_blank">John Resig</a> is the author, and primary maintainer of <a title="jQuery" href="http://www.jquery.com" target="_blank">jQuery</a>, one of the leading Javascript frameworks. Comparatively speaking, jQuery is newer than some of the other frameworks like <a title="scriptaculous" href="http://script.aculo.us/" target="_blank">script.aculo.us</a>, but has picked up enormous <a title="Microsoft adopts jQuery" href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx" target="_blank">adoption</a> in a fairly short amount of time. There is a reason for this. And it&#8217;s not JUST because jQuery is good.</p>
<p>As you might have guessed from the title of his session, John did not talk about how to use jQuery. This wasn&#8217;t a &#8220;kickstart&#8221; class. His talk was about how to treat your open source project, for lack of a better phrase, like a business.</p>
<p><strong>Make it SUPER easy to get started.</strong></p>
<p>One of the rules John went over was about making your project/product extremely easy to get started with. That means:</p>
<ol>
<li>Complete (and up to date) documentation.</li>
<li>Easy to read documentation.</li>
<li>Clear cut examples that actually WORK in practice.</li>
<li>Make it easy to download!</li>
</ol>
<p>If these all sound like no-brainers, it&#8217;s because they are. And you wouldn&#8217;t believe how many projects don&#8217;t follow any of these tenets.</p>
<p><strong>Treat your users like you&#8217;d treat your customers.</strong></p>
<p>Being available to their users for help and advice is something that some, but sadly not all, product-based businesses understand. For open source project owners, this means being active on your wiki, your forums, and your email lists. John had a great anecdote about a help request he received to his personal email account. Instead of ignoring the user or reeling off a terse &#8220;RTFM&#8221; response, he exchanged a few messages with them and eventually got them sorted. It turns out this user was a head architect at <a title="Amazon" href="http://www.amazon.com" target="_blank">Amazon.com</a>. You never know who your users are &#8211; treat them all like customers. Satisfaction guaranteed.</p>
<p><strong>Track your trends!</strong></p>
<p>The jQuery project makes HEAVY use of Google Analytics to track their adoption, usage, and attrition. Between the end of 2007 and beginning of 2008, the team saw a sharp drop in jQuery adoption and then a very gradual climb. Eventually they surmised that, for whatever reason, users and developers &#8220;forgot&#8221; what they were doing over their holiday break and came back to work in the new year with new priorities. To combat this anomaly, the team timed the most recent release of jQuery for the beginning of January 2009. The results showed that they still saw the usual post-holiday attrition but it was followed by a SHARP adoption which brought jQuery usage up to higher levels than before the holiday season. Some BUSINESSES don&#8217;t track usage trends this well! If this sounds a lot more like marketing, that&#8217;s because it is. People won&#8217;t come, and more importantly stay, just because you built it.</p>
<p><strong>Build a team.</strong></p>
<p>It may be surprising to learn that jQuery only has around 4 full time maintainers at any given time but the total team is comprised of about 25 people. The other 20 people complete the team and are what elevates the jQuery project to a level most open source projects don&#8217;t reach. There are dedicated documentation team members, evangelism folks, and example writers. There are people who monitor the forums, update the wiki, and keep the message of the benefits of jQuery fresh. One person can&#8217;t do it all. But a few dedicated people can make a HUGE difference in the &#8220;completeness&#8221; of your project.</p>
<p>Everyone has to start their project somewhere. However, if you are serious about improving the lives of your users, then treat your project like a product. Treat your organization like a business. Make it easy to adopt. Make the documentation and examples stellar. And above all, treat your users [customers] with respect and show them patience. It will pay dividends.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.viceclown.com/2009/03/29/run-your-project-like-youd-run-a-business/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
