<?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/"
		xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Frank Carver&#039;s Punch Barrel &#187; git</title>
	<atom:link href="http://blog.punchbarrel.com/tag/git/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.punchbarrel.com</link>
	<description>Frank Carver&#039;s musings about software and life</description>
	<lastBuildDate>Thu, 08 Dec 2011 22:58:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<copyright>Copyright &#xA9; Frank Carver&#039;s Punch Barrel 2010 </copyright>
	<managingEditor>frank.carver@googlemail.com (Frank Carver&#039;s Punch Barrel)</managingEditor>
	<webMaster>frank.carver@googlemail.com (Frank Carver&#039;s Punch Barrel)</webMaster>
	<ttl>1440</ttl>
	<image>
		<url>http://punchbarrel.com/images/punchbarrel-144.jpg</url>
		<title>Frank Carver&#039;s Punch Barrel</title>
		<link>http://blog.punchbarrel.com</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>Frank Carver&#039;s musings about software and life</itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Society &#38; Culture" />
	<itunes:author>Frank Carver&#039;s Punch Barrel</itunes:author>
	<itunes:owner>
		<itunes:name>Frank Carver&#039;s Punch Barrel</itunes:name>
		<itunes:email>frank.carver@googlemail.com</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://punchbarrel.com/images/punchbarrel-144.jpg" />
		<item>
		<title>Using Markdown in GitHub Pages</title>
		<link>http://blog.punchbarrel.com/2011/03/10/using-markdown-in-github-pages/</link>
		<comments>http://blog.punchbarrel.com/2011/03/10/using-markdown-in-github-pages/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 10:23:23 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[github pages]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[markdown]]></category>
		<category><![CDATA[textile]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1629</guid>
		<description><![CDATA[I really like the idea of GitHub Pages, and the way that it helps to manage the documentation for a project, bringing it in line with the same practices and tools used to manage the software development process. Of course, I would have been slightly happier if GitHub had chosen to use my own broadly-equivalent [...]]]></description>
			<content:encoded><![CDATA[<p>I really like the idea of <a href='http://pages.github.com/'>GitHub Pages</a>, and the way that it helps to manage the documentation for a project, bringing it in line with the same practices and tools used to manage the software development process. Of course, I would have been slightly happier if GitHub had chosen to use my own broadly-equivalent site-generation tool &#8220;Site Grinder&#8221; rather than <a href="https://github.com/mojombo/jekyll/">Jekyll</a>, though <img src='http://blog.punchbarrel.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Most of the example sites linked from GitHub use html or textile for page layout, but I quite like Markdown, and wanted to use that instead. According to the Jekyll documentation, markdown is supported, but it took several attempts to get GitHub pages to recognize and transform my Markdown encoded project home page. The trick was to ignore the implication in the Jekyll documentation about file extensions. Example textile files have a &#8220;.textile&#8221; extension. Example HTML files have a &#8220;.html&#8221; extension, and so on. However, Markdown files only seem to work if they have a &#8220;.md&#8221; extension. Other common possibilities such as &#8220;.mkd&#8221; or &#8220;.markdown&#8221; are not recognised, and result in the raw file content being passed to the browser.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2011/03/10/using-markdown-in-github-pages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stringtree and Mojasef now on GitHub</title>
		<link>http://blog.punchbarrel.com/2011/03/08/stringtree-and-mojasef-now-on-github/</link>
		<comments>http://blog.punchbarrel.com/2011/03/08/stringtree-and-mojasef-now-on-github/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 16:08:23 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[stringtree]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[mojasef]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1626</guid>
		<description><![CDATA[It&#8217;s been a long time coming, but I have finally decided that the master source code of the Stringtree and Mojasef Java libraries will now be hosted at GitHub rather than Sourceforge. I have been using git to manage the rest of my software for a long time now, but my two main projects have [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a long time coming, but I have finally decided that the master source code of the Stringtree and Mojasef Java libraries will now be hosted at <a href="https://github.com/efficacy">GitHub</a> rather than Sourceforge.  I have been using git to manage the rest of my software for a long time now, but my two main projects have kept their place in subversion at Sourceforge. From now on, if you want the latest source code for either of these projects, please get it from <a href="https://github.com/efficacy">github</a>.</p>
<p>This move has several major advantages. The first is that you can now use GitHub&#8217;s &#8220;social coding&#8221; features to fork and modify the Stringtree and Mojasef code (and I&#8217;m always happy to discuss changes and improvements). The second advantage, and the one which tipped me over, is the ability to use git&#8217;s clever &#8220;submodule&#8221; support to include up-to-date Stringtree and Mojasef source code in other projects.</p>
<p>In the short term I will also be keeping the svn repositories up to date with significant changes. For now they are also the best place to find example code which uses Stringtree and/or Mojasef, but I plan to move all the examples over to GitHub in time.</p>
<p>Please let me know if you have any issues or questions about this move.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2011/03/08/stringtree-and-mojasef-now-on-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Assembla now offers free private svn and git repos</title>
		<link>http://blog.punchbarrel.com/2010/04/18/assembla-now-offers-free-private-svn-and-git-repos/</link>
		<comments>http://blog.punchbarrel.com/2010/04/18/assembla-now-offers-free-private-svn-and-git-repos/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 09:19:19 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[assembla]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[unfuddle]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1450</guid>
		<description><![CDATA[Just when I thought private project hosting choices had settled down in favour of Unfuddle, along comes a potentially game-changing announcement from Assembla. My big problem with Assembla has been that they equated one project (&#8220;space&#8221;) with one source repository, and charged extra for extra spaces. Each extra space gives extra issue tracking, documentation storage [...]]]></description>
			<content:encoded><![CDATA[<p>Just when I thought private project hosting choices had settled down in favour of <a href="http://unfuddle.com/">Unfuddle</a>, along comes a potentially game-changing <a href="http://blog.assembla.com/assemblablog/tabid/12618/bid/12217/April-14-Repo-Blitz-Free-unlimited-SVN-and-GIT-and-much-more.aspx">announcement</a> from <a href="http://www.assembla.com/">Assembla</a>. </p>
<p>My big problem with Assembla has been that they equated one project (&#8220;space&#8221;) with one source repository, and charged extra for extra spaces. Each extra space gives extra issue tracking, documentation storage and so on. This <em>might</em> make sense in a traditional centralised subversion model, but it&#8217;s completely alien to git, where a project is commonly represented by a network of repositories. </p>
<p>As of 14 April, Assembla now offers unlimited repositories with each space, allowing a single project to share issue tracking, documentation, activity notifications etc. across multiple repositories. If you don&#8217;t need the rest of the features, they also now offer basic private source repositories for free, presumably with the idea of up-selling the other services.</p>
<p>Assembla seem to have slightly better tools than Unfuddle, but its hard to tell as they still don&#8217;t offer a real, private, non-expiring, &#8220;try before you buy&#8221; like Unfuddle does. With Assembla you get a month&#8217;s usage before you have to start paying, and their cheapest plan is $24 per month, considerably more than Unfuddle&#8217;s &#8220;micro&#8221; plan of $9 per month.</p>
<p>Both services are free for open-source projects, but then so are plenty of others (<a href="http://sourceforge.net/">sourceforge</a>, <a href="http://github.com/">github</a>, and so on.)</p>
<p>For the moment, I am still happy with Unfuddle, but I&#8217;m keeping an eye on Assembla.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2010/04/18/assembla-now-offers-free-private-svn-and-git-repos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ruby, Sinatra, Dreamhost, Haml, git &#8211; a smooth web app workflow &#8230; eventually</title>
		<link>http://blog.punchbarrel.com/2009/10/21/ruby-sinatra-dreamhost-haml-git-a-smooth-web-app-workflow-eventually/</link>
		<comments>http://blog.punchbarrel.com/2009/10/21/ruby-sinatra-dreamhost-haml-git-a-smooth-web-app-workflow-eventually/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 15:51:08 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[haml]]></category>
		<category><![CDATA[issues]]></category>
		<category><![CDATA[mojasef]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[sinatra]]></category>
		<category><![CDATA[stringtree]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[tasks]]></category>
		<category><![CDATA[teams]]></category>
		<category><![CDATA[tracking]]></category>
		<category><![CDATA[unfuddle]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1409</guid>
		<description><![CDATA[I have spent many years developing web applications in Java for corporate clients. During that time I have used a wide range of frameworks, APIs and other useful stuff. I have written my own versions (sometimes several) of many of these components, learned the tools well, and become very productive and effective. However, it has [...]]]></description>
			<content:encoded><![CDATA[<p>I have spent many years developing web applications in Java for corporate clients. During that time I have used a wide range of frameworks, APIs and other useful stuff. I have written my own versions (sometimes several) of many of these components, learned the tools well, and become very productive and effective.</p>
<p>However, it has been almost impossible to take that expertise, hard work, and custom code and easily/cheaply turn it into usable web applications for general public use. Low-cost hosting providers have generally shunned Java support. The most reasonable one I have found is <a href="http://www.lunarpages.com/?id=efficacy/">LunarPages</a> who actually support both ad-hoc JSP and deployment of custom web applications as war files, even though you have to search pretty deep in their web site to find out, and pay an extra dollar or two a month for the privilege.</p>
<p>So for my own projects I have been looking for an alternative for a long time. A way of developing and testing web apps on my various development boxes (currently running Ubuntu, MacOS X and Windows XP) and easily deploying to a low-cost hosting provider.</p>
<p>By far the most popular web development language is PHP. It&#8217;s available pretty much everywhere. It&#8217;s so focussed on web app development that the primary unit of coding is the web page. Believe me, I have <em>tried</em> to like PHP, but it&#8217;s just so clumsy. After a few paces the application begins to get tangled, development speed drops, and bugs creep in. Its web focus makes it tricky to unit test, and end-to-end testing seems to require a full-fat HTTP server. Not for me.</p>
<p>Beyond the traditional stomping ground of PHP, perl, and other CGI fodder is the new range of &#8220;trendy&#8221; languages. Ruby, Python, Erlang and even the venerable smalltalk are trying to position themselves as the thinking-person&#8217;s web development tool.</p>
<p>Erlang syntax is a bit too odd for me right now, although I may come back to it later. Smalltalk is interesting, but carries with it so much history and is hardly a popular choice for low-cost hosting providers. That leaves a short-list of Python and Ruby.</p>
<p>As languages I like both Python and Ruby. They have broadly similar design goals, both have keen developer communities with plenty of open source resources, and both are commonly found on linux-based web hosts. In order to decide between them I took a look around their frameworks and APIs.</p>
<p>Python has Google on its side. It&#8217;s the &#8220;native language&#8221; of the hugely-scalable Google AppEngine. However, a scan around the web looking for ways of writing web applications led largely to two: Zope and Django. (for balance, there are <a href="http://wiki.python.org/moin/WebFrameworks">plenty of others</a>, but these are the standout examples). Zope is old and sprawling. It has some great ideas but is hardly an obvious choice for small, tactical web apps. Django is a bit lighter, but still seems to assume a lot and require a lot of relatively fiddly config.</p>
<p>In the Ruby world the blindingly obvious choice for a web application framework is Rails. Sometimes it seems as if &#8220;Ruby&#8221; is just another way of saying &#8220;Rails&#8221;. However Rails, like Django, assumes a lot about the eventual application. Rails also makes a lot of use of code generation, which I simply do not like. I would always prefer that a framework <em>eliminate</em> boilerplate rather than just generate it for me. Looking a little further beyond Rails I came across <a href="http://accidentaltechnologist.com/ruby/10-alternative-ruby-web-frameworks/">some really interesting alternatives</a>, and the one which really sparked my interest is <a href="http://www.sinatrarb.com/">Sinatra</a>. For me this one framework made the difference. It&#8217;s <em>so</em> streamlined that a basic web app is as simple as:</p>
<blockquote><p>
require &#8216;sinatra&#8217;<br />
get &#8216;/&#8217; do<br />
  &#8216;Hello world!&#8217;<br />
end
</p></blockquote>
<p>Best of all, simply running the above file using <code>ruby hello.rb</code> starts up a web server and begins serving pages on port 4567. No extra config or faffing.</p>
<p>Looking around for low cost hosting I found that the provider I already use (<a href="http://www.dreamhost.com/r.cgi?60867">Dreamhost</a>) supports Ruby web hosting using <a href="http://www.modrails.com/">Passenger</a>. An ssh to the Dreamhost server for &#8220;gem install sinatra&#8221; followed by a little bit of FTP and my first Ruby/Sinatra application was live!</p>
<p>A key part of any web application is the pages, and a key part of generating pages is a good template language. As a general-purpose templating language, I still prefer my own Stringtree Templater, part of the <a href="http://mojasef.stringtree.org/">Mojasef</a> Java framework. So far I have not found a similar templating solution for any other language. However, for the limited and specific requirement of generating web pages, I am becoming quite fond of <a href="http://haml-lang.com/">Haml</a>. It&#8217;s not at all a general templating solution, but it does massively simplify the generation of web pages.</p>
<p>Finally, after years of CVS and Subversion, I have made the jump to distributed version control. Not only is it more trendy, but the ability to work on multiple code branches, on multiple machines, with or without an internet connection, and easily share, identify and merge when necessary has been a key benefit.  Occasionally I wonder if one of the other distributed VCS (Mercurial, Bazaar, darcs, etc.) would have been a better choice, but I needed to settle on one and get to grips with it. So I chose <a href="http://git-scm.com/">git</a>.</p>
<p>There have been a few speed-bumps. Attempting to learn git from manual entries and simplistic tutorials gives very little help on deciding what is worth doing. After about a week of following the techniques in <a href="http://reinh.com/blog/2009/03/02/a-git-workflow-for-agile-teams.html">A Git Workflow for Agile Teams</a>, though, I began to get comfortable. Add to that some lovely web deployment tricks from <a href="http://joemaller.com/2008/11/25/a-web-focused-git-workflow/">A web-focused Git workflow</a> and a selection of GUI tools ( <a href="http://cola.tuxfamily.org/">Git Cola</a>, <a href="http://gitx.frim.nl/">GitX</a>, and <a href="http://pillowfactory.org/2008/09/11/git-awareness-week-git-gui/">Git GUI</a> ) to get round all that tedious &#8220;git add&#8221; stuff and simplify infrequent operations, and git becomes a very useful and productive tool.</p>
<p>The upshot is that I currently feel very productive. </p>
<p>My toolbox has a few other things in it, but they are still candidates for change if I find anything better. I am managing my projects and git repositories using <a href="http://unfuddle.com/">Unfuddle</a> but it has a few shortcomings including a ticket system which is a pale and clumsy cousin of bugzilla. For editing I use generic syntax-highlighting text editors (gedit on Linux, TextEdit on Windows and Smultron on Mac) but none of them have the nice autocompletion and refactoring tools I grew addicted to in Eclipse. Suggestions welcome!</p>
<p>Finally, a few spare links relating to the tools mentioned above.</p>
<p><a href="http://www.rubyinside.com/sinatra-29-links-and-resources-for-a-quicker-easier-way-to-build-webapps-1371.html">Sinatra: 29 Links and Resources For A Quicker, Easier Way to Build Webapps</a></p>
<p><a href="http://haml-lang.com/docs/yardoc/HAML_REFERENCE.md.html">HAML reference</a></p>
<p><a href="http://rack.rubyforge.org/">Rack</a></p>
<p><a href="http://www.hokstad.com/mini-reviews-of-19-ruby-template-engines.html">Mini reviews of 19 Ruby template engines</a></p>
<p><a href="http://www.infoq.com/news/2007/11/forgotten-ruby-web-frameworks">The Forgotten Ruby Web Frameworks</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2009/10/21/ruby-sinatra-dreamhost-haml-git-a-smooth-web-app-workflow-eventually/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Distributed Source Control as a tool for Set-Based Design</title>
		<link>http://blog.punchbarrel.com/2009/03/11/distributed-source-control-as-a-tool-for-set-based-design/</link>
		<comments>http://blog.punchbarrel.com/2009/03/11/distributed-source-control-as-a-tool-for-set-based-design/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 10:58:22 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[bazaar]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[dvcs]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[vcs]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1220</guid>
		<description><![CDATA[I&#8217;m currently spending a fair amount of time on evaluating distributed version control systems (DVCS) such as git, bazaar and mercurial. Some things which were easy using a centralized version control system such as subversion or cvs seem more complicated, but I am now starting to find ways of using DVCS to do things which [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently spending a fair amount of time on evaluating <a href="http://en.wikipedia.org/wiki/Distributed_revision_control">distributed version control systems</a> (DVCS) such as <a href="http://git-scm.com/">git</a>, <a href="http://bazaar-vcs.org/">bazaar</a> and <a href="http://www.selenic.com/mercurial/wiki/">mercurial</a>. Some things which were easy using a centralized version control system such as <a href="http://subversion.tigris.org/">subversion</a> or <a href="http://www.nongnu.org/cvs/">cvs</a> seem more complicated, but I am now starting to find ways of using DVCS to do things which the old systems simply could not manage.</p>
<p>It took me a whole evening of fiddling, but I have now <a href="http://joemaller.com/2008/11/25/a-web-focused-git-workflow/">set up git to allow me to make chanches to a local version of one of my web sites</a> and commit changes as I feel like it, then when I am happy, send the changes to the live web site with a single <tt>git push</tt>. This has been working well for a few days, so I plan to roll out a similar structure to the rest of my web sites soon.</p>
<p><a href="http://blog.franktrindade.com/2009/03/10/distributed-source-control-and-set-based-design/">Another interesting use for DVCS was pointed out by Francisco Trindade</a>. Distributed version control can help to enable &#8220;<a href="http://www.pslm.gatech.edu/events/frontiers2006/proceedings/2006-03-16-Frontiers2006-Paredis.pdf">set based design</a>&#8220;. This is a technique where a team samples a wide range of possibilities to converge on a &#8220;sweet spot&#8221; where market need, business value and manufacturing efficiency are balanced.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2009/03/11/distributed-source-control-as-a-tool-for-set-based-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>reliable web app deployment using git and Resin</title>
		<link>http://blog.punchbarrel.com/2009/02/25/reliable-web-app-deployment-using-git-and-resin/</link>
		<comments>http://blog.punchbarrel.com/2009/02/25/reliable-web-app-deployment-using-git-and-resin/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 16:58:56 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[caucho]]></category>
		<category><![CDATA[container]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[resin]]></category>
		<category><![CDATA[servlet]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1200</guid>
		<description><![CDATA[I have always liked the Resin application container. I often use it to develop servlet and J2EE applications, even ones which are eventually deployed on another server. Resin is fast, clean, and easy to manage. Its cool ability to run PHP as well as java is a bonus. Now it&#8217;s even cleverer, and it includes [...]]]></description>
			<content:encoded><![CDATA[<p>I have always liked the Resin application container. I often use it to develop servlet and J2EE applications, even ones which are eventually deployed on another server. Resin is fast, clean, and easy to manage. Its cool ability to run PHP as well as java is a bonus.</p>
<p>Now it&#8217;s even cleverer, and it includes a bit more trendiness.  Resin 4.0 supports a git repository as the underlying storage for web applications, with all the versioning and updating benefits which that implies.</p>
<p>Read more at <a href="http://blog.caucho.com/?p=155">Caucho Technology » Blog Archive » reliable deployment using .git</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2009/02/25/reliable-web-app-deployment-using-git-and-resin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some decent looking project hosting candidates at last</title>
		<link>http://blog.punchbarrel.com/2009/02/06/some-decent-looking-project-hosting-candidates-at-last/</link>
		<comments>http://blog.punchbarrel.com/2009/02/06/some-decent-looking-project-hosting-candidates-at-last/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 00:09:10 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[assembla]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[trac]]></category>
		<category><![CDATA[unfuddle]]></category>
		<category><![CDATA[vcs]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1158</guid>
		<description><![CDATA[As you may recall from a previous post, I am looking for some decent project hosting both for my open source software and for some business ideas. I want a single point of contact which offers as a minimum: version control, wiki, bug/ticket tracking, calendar and tasks/todo. Nice to haves include time-tracking, collaborative planning and [...]]]></description>
			<content:encoded><![CDATA[<p>As you may recall from <a href="http://blog.punchbarrel.com/2009/01/02/searching-for-the-perfect-project-hosting/">a previous post</a>, I am looking for some decent project hosting both for my open source software and for some business ideas. I want a single point of contact which offers as a minimum: version control, wiki, bug/ticket tracking, calendar and tasks/todo. Nice to haves include time-tracking, collaborative planning and continuous integration.</p>
<p>Eventually I have found two likely candidates: <a href="http://www.unfuddle.com/">unfuddle</a> and <a href="http://www.assembla.com/">assembla</a>. Both offer most of what I want, but with a few differences.</p>
<p>Unfuddle is probably the simpler of the two. It offers subversion and git hosting, a kind of wiki called &#8220;Notebook&#8221;, a kind of low-rent bulletin board called &#8220;Messages&#8221; for discussions, deadline management using simple text milestones, and bugs/tickets using Trac. It also provides RSS and iCal feeds of workspace events and upcoming milestones. With increased monthly payment you can also get time tracking and file attachment storage for messages.</p>
<p>Assembla offers subversion, mercurial and git hosting (and can integrate with remote subversion and github repositories), a wiki with extensions to directly reference tickets, bugs, software versions etc., similar &#8220;messages&#8221; to unfuddle but with file attachment storage included, bugs/tickets using trac or a proprietary alternative, similar milestones to unfuddle (but I can&#8217;t find any iCal feeds which is a shame), time recording, scrum-style progress reporting, and a few other options such as a &#8220;chat&#8221; facility and a specialist repository for storing and annotating images. It can provide updates of events using twitter or by HTTP call-outs, which seems pretty flexible.</p>
<p>Neither one seems to have a very sophisticated calendar, so no arranging meetings etc. Neither one has any significant collaborative planning in the vein of Mingle or <a href="http://www.toolsforagile.com/">Silver Catalyst</a>. Neither supports recording of anything other than time (money spent on each task would be very useful, for example.) And neither supports continuous integration as such (although it could probably be hacked together using Assembla&#8217;s HTTP call-outs.)</p>
<p>Pricing seems roughly similar, although calculated differently. </p>
<p>Unfuddle offers five price bands (free for open source, $9, $24, $49, and $99 per month). Each band offers larger quantities of storage, numbers of participants and projects etc. The $9/month plan offers 512MB of storage for 10 people on 4 projects, so for an example small private team of three developers the cost would be $9/month</p>
<p>Assembla determines pricing per user per &#8220;space&#8221; (a space seems roughly to equate to a single project). Free for public spaces. For private ones, each user/space is $2/month, and $3 per gigabyte of storage per month. So for the same small private team of three developers the cost would also be $9/month but for more features and more storage. The down side is that adding any new team member, even one who only needs occasional access, costs extra.</p>
<p>I have registered for free accounts on both systems and have started to try out everything I can. I&#8217;ll report back soon on my findings.</p>
<p>In the meanwhile I&#8217;d love to hear from anyone with any other suggestions for project hosting services along the lines of these two.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2009/02/06/some-decent-looking-project-hosting-candidates-at-last/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>GIT 101</title>
		<link>http://blog.punchbarrel.com/2009/02/03/git-101/</link>
		<comments>http://blog.punchbarrel.com/2009/02/03/git-101/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 06:47:50 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[vcs]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1081</guid>
		<description><![CDATA[A collection of useful links and tutorials about using the git version control system. GIT 101 &#124; Xebia Blog]]></description>
			<content:encoded><![CDATA[<p>A collection of useful links and tutorials about using the git version control system.</p>
<p><a href="http://blog.xebia.com/2009/01/26/git-101/">GIT 101 | Xebia Blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2009/02/03/git-101/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Searching for the perfect project hosting</title>
		<link>http://blog.punchbarrel.com/2009/01/02/searching-for-the-perfect-project-hosting/</link>
		<comments>http://blog.punchbarrel.com/2009/01/02/searching-for-the-perfect-project-hosting/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 10:35:21 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[brasspyramid]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[mingle]]></category>
		<category><![CDATA[poker]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[tracking]]></category>
		<category><![CDATA[vcs]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=961</guid>
		<description><![CDATA[I&#8217;m still searching for decent project hosting. I now have several projects on the go, and several others bumping around in my head, and the fuss and bother of tying together all the various bits of a distributed software project development is making my head hurt. All the bits I need are available separately, but [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m still searching for decent project hosting. I now have several projects on the go, and several others bumping around in my head, and the fuss and bother of tying together all the various bits of a distributed software project development is making my head hurt.</p>
<p>All the bits I need are available separately, but so far I have not been able to find any single provider (free or paid for) which offers the combination of features I need. Essentially these are:</p>
<ul>
<li>Version control. Ideally git, but at a pinch one of the other distributed VCS tools or even subversion would probably do if everything else was in place. <a href="http://github.com/">GitHub</a> seems good for this.</li>
<li>A project wiki. Using any other system for project docs just seems so clumsy. There are plenty of these; I use <a href="http://www.wikidot.com/">WikiDot</a> for one project.</li>
<li>Sensible bug/feature tracking. This is a bit more tricky &#8211; there is plenty of bug-tracker software, but not much that works equally well for managing unimplemented feature stories and associated tasks. Ideally this should link in with the version control, allowing code and change metadata to be updated in one go. <a href="http://trac.edgewall.org/">Trac</a> seems a possibility for this.</li>
<li>Calendar management. For recording and communicating meetings, deadlines etc.. Something which works well with calendar syndication, so that anyone working on the project can see project events in with the rest of their appointments. Plenty of these: <a href="http://www.google.com/calendar">Google calendar</a>, <a href="http://30boxes.com/welcome.php">30 boxes</a>, etc. They all have their quirks, though.</li>
<li>Task (todo) management. I find it amazing that task management is so poor in on-line calendars. There are standalone task tools such as <a href="http://www.rememberthemilk.com/">Remember The Milk</a>, but it is integration which is needed.</li>
</ul>
<p>There are also a few other features which are definitely in the &#8220;useful to have&#8221; category, but I&#8217;m practical enough to use manual or off-line tools if necessary.</p>
<ul>
<li>Effort recording, tracking and reporting. For velocity tracking, process improvement, and even billing.</li>
<li>Collaborative planning and prioritisation. <a href="http://studios.thoughtworks.com/mingle-agile-project-management">Mingle</a> tries to simulate a task wall, but is somewhat clumsy and irritatingly expensive; I have heard of <a href="http://www.planningpoker.com/">on-line tools to run &#8220;Planning Poker&#8221; sessions</a>, but as usual, not integrated with anything else.</li>
<li>Continuous Integration. I&#8217;m not aware of any really smart tools to make use of distributed version control for this, yet. Our <a href="http://cruisecontrol.sourceforge.net/">Cruise Control</a> installation just stops and complains when something breaks, for example, but it should be possible to just &#8220;park&#8221; the failing patch and continue building with others in a real dvcs-based approach.</li>
</ul>
<p>If anyone has any suggestions &#8211; or wants to build a product which does all this stuff &#8211; please let me know!</p>
<p>For interest, here are a few associated links.</p>
<p><a href="http://www.cuberick.com/2009/01/distribute-your-software-just-like.html">Cuberick: Distribute Your Software Just Like Ubuntu With Launchpad</a></p>
<p><a href="http://en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities">Comparison of open source software hosting facilities: Wikipedia</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2009/01/02/searching-for-the-perfect-project-hosting/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using GitHub as a blog</title>
		<link>http://blog.punchbarrel.com/2008/12/15/using-github-as-a-blog/</link>
		<comments>http://blog.punchbarrel.com/2008/12/15/using-github-as-a-blog/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 13:50:25 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=884</guid>
		<description><![CDATA[What a cool idea. Using GitHub as a blog. raganwald&#8217;s homoiconic at master — GitHub]]></description>
			<content:encoded><![CDATA[<p>What a cool idea. Using GitHub as a blog.</p>
<p><a href="http://github.com/raganwald/homoiconic/tree/master">raganwald&#8217;s homoiconic at master — GitHub</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2008/12/15/using-github-as-a-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.759 seconds -->

