<?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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Added To Stage</title>
	<atom:link href="http://addedtostage.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://addedtostage.wordpress.com</link>
	<description>Managing and developing Flash and beyond</description>
	<lastBuildDate>Sat, 27 Jun 2009 23:56:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='addedtostage.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Added To Stage</title>
		<link>http://addedtostage.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://addedtostage.wordpress.com/osd.xml" title="Added To Stage" />
	<atom:link rel='hub' href='http://addedtostage.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Basic Folder/Repo programming setup for new projects</title>
		<link>http://addedtostage.wordpress.com/2009/06/27/basic-folderrepo-programming-setup-for-new-projects/</link>
		<comments>http://addedtostage.wordpress.com/2009/06/27/basic-folderrepo-programming-setup-for-new-projects/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 23:56:12 +0000</pubDate>
		<dc:creator>chaszzzbrown</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[project organization]]></category>

		<guid isPermaLink="false">http://addedtostage.wordpress.com/?p=8</guid>
		<description><![CDATA[Our previous project management system had a number of problems for programmers; here I will propose a New Way Forward using git as our vcs.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=addedtostage.wordpress.com&amp;blog=8270606&amp;post=8&amp;subd=addedtostage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Summary</strong></p>
<p>Previously, our development used a centralized strategy, using an ad-hoc system to keep work in sync and backed up. This system had a number of problems; and here I will propose a New Way Forward using git as our version control system.</p>
<p>The main change from &#8220;the old way&#8221; are that source files will no longer be &#8220;directly visible&#8221; in the programming subfolder on the server; they will instead be stored in a compressed form in a database on the server (well, that&#8217;s one somewhat simplistic way to look at how git works, anyway!).</p>
<p>Instead of having all the source visible on the server, we will add a new subfolder called &#8220;release&#8221; to the programming folder, which will contain folders with only <em>the most current running version</em> of each sub-project for the overall project. This makes it easier for producers to get access to what they want &#8211; &#8220;the current version&#8221; &#8211; while promoting best practices for programmers for version control and backup.</p>
<p>In this initial example, I will assume that the project is written in Flash to be delivered as swfs; and that it does not require massive assets such as 100MB Quicktime .movs or the like. Other scenarios will be discussed in other articles.</p>
<p><strong>Basic Folder Organization &#8211; Server</strong></p>
<p>The typical project has a customer or project name such as &#8220;Anvil Museum&#8221;, which will usually have several sub projects such as &#8220;Anvilmania&#8221;, &#8220;BeatenFlatGame&#8221;, and so on.</p>
<p>When we get a go on such a project, the project producer creates a folder on our server named &#8220;AnvilMuseum&#8221; in the projects folder, which (typically) contains folders for art, design, content, project management, and so on. The folder of interest to the developer discussed here are:</p>
<p>//server/projects/AnvilMuseum/programming</p>
<p>The programmer should then create the following subfolders within programming/ (note the &#8220;.git&#8221; naming suffix):</p>
<p>programming/git/Anvilmania.git</p>
<p>programming/git/BeatenFlatGame.git</p>
<p>programming/git/ProjectClasses.git</p>
<p>That is, one folder for each of the projects to be programmed, as well as a &#8220;general&#8221; AS3 Classes folder that will contain the action script which will potentially be shared between the other projects for the Anvil Museum. These will become the bare repositories for the various aspects of the project.</p>
<p>Additionally, create the following folders in programming:</p>
<p>programming/release/Anvilmania</p>
<p>programming/release/BeatFlatGame</p>
<p>These folders will hold the &#8220;current release&#8221; of the projects: the most recent release that can be demoed or delivered, but <em>no</em> source code. These folders may or may not be git repos; but if they are, they won&#8217;t be bare repos, so they will contain the actual runtime release, and whatever assets (audio, video, images, xml) that are required to run the app.</p>
<p>There is also a folder in the standard folder heirarchy for the &#8220;development site&#8221; which is served over the web, standardly found at:</p>
<p>//server/projects/AnvilMuseum/http_served</p>
<p>where you may also want to place a &#8220;release&#8221; folder for projects which can be reviewed over the web; but details such as this will wait for another article.</p>
<p><strong>Basic Folder Organization &#8211; Developer&#8217;s System</strong></p>
<p>One the developer&#8217;s system, we want to somewhat mirror the organization on the server. A recommended initial setup is to create a folder RedHillDevelopment in some convenient place (e.g., on windows, as a subfolder in the &#8220;My Documents&#8221; folder); and then create two subfolders:</p>
<p>RedHillDevelopment/LibraryClasses</p>
<p>RedHillDevelopment/projects</p>
<p>The first folder will hold the shared actionscript classes in the com.redhillstudios.&lt;etc&gt; packages which will continue to be developed over the years at Red Hill, as well as any other shared libraries that span across multiple top level projects.</p>
<p>The second folder will contain the active projects the developer is working on. I&#8217;ll suppose for this example that only one of the projects (Anvilmania) is being worked on by the hypothetical developer; and so they would also add the following folders:</p>
<p>/RedHillDevelopment/projects/AnvilMuseum/programming/Anvilmania</p>
<p>/RedHillDevelopment/projects/AnvilMuseum/programming/ProjectClasses</p>
<p>(Note that the developer may want to create local folders for art, design, and so on; but these will typically not be managed as repos, and are more of a convenience than a neccessity).</p>
<p><strong>One time only per developer: Setting up the LibraryClasses folder</strong></p>
<p>Assuming you have not already done so, you should next get a clone (copy) of the AS3 classes used across all projects. This can be done either through the git-gui or the bash.</p>
<p>To do so from the bash:</p>
<ul>
<li>cd /RedHillDevelopment/LibraryClasses</li>
<li>git clone as3Classes //server/rhs/programming/FLASH/git/as3Classes.git</li>
</ul>
<p>This will create a folder /RedHillDevelopment/LibraryClasses/as3Classes/ containing the com.redhillstudios&#8230;. etc., etc., class heirarchy, which you will typically place in your class path when working on Flash apps.</p>
<p><strong>Initial set up of git repos</strong></p>
<p>Assuming that no one else has done so so far, the next step is to set up the bare repos with some content.</p>
<p>Here a git tip: <em>Always have a non-empty initial commit when you create a <strong>non-bare</strong> git repo. </em>It will save you from a little confusion (details elsewhere).</p>
<p>So start your work on the exciting Anvilmania game. When you have enough to consider worth saving it, initialize the repo, and connect it to the server as follows:</p>
<p>Using the bash (the command-line invocation of git), first create the bare repo for Anvilmaina:</p>
<ul>
<li>cd //server/projects/AnvilMusuem/programming/git/AnvilMania.git</li>
<li>git &#8211;bare init</li>
</ul>
<p>Next, create your local (non-bare) repo, and create your initial commit:</p>
<ul>
<li>cd /RedHillDevelopment/projects/AnvilMusuem/programming/AnvilMania</li>
<li>git init</li>
<li>git add .</li>
<li>git commit -m &#8216;Initial commit&#8217;</li>
</ul>
<p>Next, we need to tell the local repo where the &#8220;blessed&#8221; bare repo is, and give it the convenient name &#8220;origin&#8221;.</p>
<ul>
<li>git remote add origin //server/projects/AnvilMusuem/programming/git/AnvilMania.git</li>
</ul>
<p>The above is simply a convenience: certainly &#8220;origin&#8221; is a zillion times easier to write than the full path name.</p>
<p>Finally, we&#8217;ll copy the initial local content of the master branch (which is your only current branch) to the &#8220;blessed&#8221; bare repo:</p>
<ul>
<li>git push origin master</li>
</ul>
<p><strong>More anal details regarding the ProjectClasses folder</strong></p>
<p>First, your project may not even need a ProjectClasses folder. The files that go into this folder are those that are shared between 2 or more applications that fall into the same overall project; for example, if some sort of overall database interface is needed, or some particular device control is used by several apps, and so on.</p>
<p>So if there are actionscript files that are only used within one application, or there is only one application in the project, you might be better served by just keeping them in the specific project folder you are working on, either in the default package (i.e., at the same folder level as the associated fla) or in a subfolder found there.</p>
<p>The advantage of having a spearate ProjectClasses folder for the overall project is so that developers can keep changes in sync for shared code (ProjectClasses) without having to fetch the relatively large bandwidth changes from other projects that are associated with flas. So in our example, Anvilmania&#8217;s developer doesn&#8217;t really care about keeping up to date with BeatFlatGame&#8217;s changes, which may be a few megabytes to pull. But that developer does want to keep track of shared code changes, which in general are &#8220;cheap&#8221; to pull in comparison.</p>
<p>At any rate the rules for setting up the repo (if one is need) are the same as for the previous example: initialize the bare repo git/ProjectClasses.git on the server using git &#8211;bare init; initialize and perform an initial commit on the developer&#8217;s local version of ProjectClasses; add origin as as remote link to the server version; and then push the initial commit.</p>
<p><strong>Setting up the developer repos when the bare repos already exist</strong></p>
<p>If the bare repo (e.g., Anvilmaina.git on the server) was already set up by another developer, the developer should simply clone the existing repo. Another git tip: <em>git clone really wants to make the directory, so it can&#8217;t already exist</em>. So if you want to a clone of Anvilmania in your /RedHillDevelopment/projects/AnvilMuseum/programming folder, remove any emopty existing folder name &#8220;Anvilmania&#8221;, and then git bash as follows:</p>
<ul>
<li>cd /RedHillDevelopment/projects/AnvilMuseum/programming</li>
<li>git clone Anvilmania //server/projects/AnvilMuseum/programming/git/Anvilmania.git</li>
</ul>
<p>When you clone, git automatically adds a remote named &#8220;origin&#8221;, so now you are good to go!</p>
<p>Similar notes apply for when another developer has already intialized the ProjectClasses.git bare repo.</p>
<p><strong>Release the releases<br />
</strong></p>
<p>That&#8217;s the default git setup; you now fetch, merge, and push as you proceed with your development (don&#8217;t forget to keep track of the LibraryClasses repo, and to make sure to fetch and merge when informed of changes!).</p>
<p>That keeps your source happily in sync and also backed up. However, to the consternation of non-programmers such as clients and producers, there will be no actual &#8220;visible&#8221; files in the bare repos on the server; and so nothing for them to test or review. To handle this, keep a current &#8220;release&#8221; version of the software/assets in the server based /AnvilMuseum/programming/release/Anvilmania folder.</p>
<p><em>It is the responsibility of the <strong>developer</strong> to keep the release version on the server up to date! </em>So don&#8217;t complain when the producer says &#8220;Is that the most up to date version&#8221;!</p>
<p>Exactly how this release is managed will depend on the project. In some cases, it will be easiest to simply update it by hand, but there are more complicated but overall more convenient strategies involving using either git alone or git with hooks (automatically executed scripts) which will be examined in other articles.</p>
<p><strong>What next?</strong></p>
<p>You&#8217;ve got your repos set up; see other articles for the basics of using git in your day-to-day practices. The main things to learn first are: how and when to commit, the right way to &#8220;fetch/merge/push&#8221; to the server, and how to deal with merge conflicts (eek! &#8211; nah, it&#8217;s not so bad!).</p>
<p>Once you&#8217;ve learned to do those things, the next things to learn are setting TAGs and how and when to branch. Then you&#8217;ll be a git expert, man!</p>
<p>And once you&#8217;re an expert, then the next steps are to get with submodules and to learn about hooks to do things like automatically publishing your releases. Then you will be a truly insufferable git guru! You&#8217;re set for life!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/addedtostage.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/addedtostage.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/addedtostage.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/addedtostage.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/addedtostage.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/addedtostage.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/addedtostage.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/addedtostage.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/addedtostage.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/addedtostage.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/addedtostage.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/addedtostage.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/addedtostage.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/addedtostage.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=addedtostage.wordpress.com&amp;blog=8270606&amp;post=8&amp;subd=addedtostage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://addedtostage.wordpress.com/2009/06/27/basic-folderrepo-programming-setup-for-new-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f22550cfe2deed8d7e8d104f343281f8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chaszzzbrown</media:title>
		</media:content>
	</item>
		<item>
		<title>Dr.Strange-git or: How I learned to stop worrying and love the repo</title>
		<link>http://addedtostage.wordpress.com/2009/06/21/hello-world/</link>
		<comments>http://addedtostage.wordpress.com/2009/06/21/hello-world/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 21:35:31 +0000</pubDate>
		<dc:creator>chaszzzbrown</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[vcs]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Here are a few of my initial observations about using git for Flash deveopment.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=addedtostage.wordpress.com&amp;blog=8270606&amp;post=1&amp;subd=addedtostage&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Because of a recent project involving a Ruby backend, I&#8217;ve been exploring git as a version control system for a variety of our projects. Besides being SHINY!!! and super-buzz worthy, there are many reasons to love git, and to put up with its slightly arcane syntax and command set.</p>
<p>I&#8217;ll assume for the purposes of this post that the reader is at least somewhat familiar with these advantages; but I will note that for the types of projects I&#8217;m involved in, the distributed nature of git alone makes it a better choice for a vcs than centralized systems like SVN.</p>
<p>However, the main target audience for git is programmers (such as Linus Torvald Himself) who work almost exclusively with text files. But for those developing in Flash, this is only part of the problem. While most of the code written for Flash apps can (and I might argue should) be placed in external .as files, there are always those pesky .fla files which need to be shared, versioned, and controlled.</p>
<p>One reasonable approach is to use git to manage only .as files and other text resources such as XML; and let the binary files be fended for by some other method. But after using git to completely manage a project that I was sole developer on, I was surprised to find that most of my fears about using git for binaries ended up being unfulfilled; and resolved to attempt to adapt our workflow to see how it can be used on a team project.</p>
<p>So here are a few of my initial observations, and why I no longer fear git.</p>
<p><strong>git handles binaries like .flas with surprising efficiency<br />
</strong></p>
<p>My first and major fear was: OMGZ!! Teh file sizes!!! I&#8217;ll end up with terabyte repos will that take over the planet! However, this fear is needless, for two reasons.</p>
<p>First, without some sort of versioning system in place, one tends to use an ad-hoc versioning system by creating to create multiple named versions of .flas (&#8220;foo_v01.fla, foo_v02.fla, .., foo_v47.fla&#8221;) in case one needs to recreate one&#8217;s work in the event of a crash. I find it typical that at least 5 or so versions tend to be around at any given point of time; often living in folders called &#8220;older&#8221;, or &#8220;purgatory&#8221;.</p>
<p>The total size of these files must be taken into consideration when comparing this &#8220;ad-hoc&#8221; approach to the git approach; and anyone closing out a project has seen that the actual size of a development folder is already many times the size of the &#8220;latest version&#8221;.</p>
<p>Second, git&#8217;s binary diffing and compression scheme is surpisingly efficient. For an actual comparsion, on a project I am working on, I have a source directory with .fla files totalling about 45 MB. The total data storage for 28 commits on these files (after garbage collection) is 72 MB: less than twice the size of the .flas. I know that I would have <em>at the very minimum</em> three or four versions of each .fla file kicking around in the ad hoc versioning approach. So actually I am <em>saving </em>space by using git, while getting all the advantages of rolling back as needed, commenting of versions beyonda cryptic  &#8220;foo_(nn)&#8221;, and so on.</p>
<p>The take away: typically, in the ad hoc approach, you are already (quite prudently) storing 5, 10, or even more previous copies of your work. But git will take care of this for you, with compression.</p>
<p>Now perhaps after several thousand commits, we might end up with a repo that starts to get too large. But there are methods for dealing with this as well (to be detailed in other posts). But the nature of Flash work (at least the Flash work I engage in) is usually temporally limited: eventually, a Flash poduct reaches a &#8220;stable point&#8221; which is its final deliverable form, so there is some &#8220;final&#8221; version that is for all practical purposes the last commit that repo will take.</p>
<p><strong>git has fewer bugs and is far more stable than I thought at first<br />
</strong></p>
<p>If git was totally perfect, except for the fact that one commit in ten thousand caused your entire repo to become corrupt, it would be completely useless. And given that git is open-source, I was skeptical that it had reached even that level of stability.</p>
<p>And indeed, my first experiences with git-gui (version 1.5.x) were hardly reassuring. Various cryptic messages that ended with &#8220;fatal error&#8221; in red text made my hair stand on end.</p>
<p>But git-gui is not git; it&#8217;s what they call &#8220;porcelain&#8221; on top of git. Once I got more comfortable with using the command line version of git, I started to understand what those &#8220;fatal errors&#8221; meant: they were indications that git was helpfully (if also cryptically!) <em>preventing</em> me from accidentally damaging the integrity of the repository by doing something stupid.</p>
<p>I&#8217;ve had git-gui crash on me; or give alarming feedback that is not present when I quit and restart it. But most (not all!) of this behavior has been reduced in version 1.6.x; and in any case, the underlying repos have <em>never</em> been damaged or affected by these glitches in the gui.</p>
<p>It&#8217;s actually a bit difficult to do something that will actually <em>ruin </em>the repo; almost any stupid thing you do (short of directly deleting or otherwise changing the database files inside the .git folder itself) can be undone.</p>
<p>I might compare my confidence in git now to be about my confidence of using zip to compress a bunch of files and folders. Compression is s a very complicated process, but at a certain point I realized that zipping up a bunch of files is <em>reliable</em>:  sure, it might fail if my computer crashed during the zipping, or if the underlying media I was writing to was faulty, but it wasn&#8217;t going to just fail &#8220;by magic&#8221;.</p>
<p>As long as the usual backup startegies are followed, you aren&#8217;t going to lose anything permanently by using git: git is <em>reliable</em>. And because one typical creates multiple clones of a repository, git is actually <em>more </em>resistant to catastrophic hardware failures than simply &#8220;keeping a copy on the server&#8221;.</p>
<p><strong>git is cryptic but in the end you&#8217;ll get it</strong></p>
<p>Okay, the green-text-on-a-black-background of a command line interface is a bit intimidating. Didn&#8217;t we leave this stuff behind at Windows 3.1?</p>
<p>And there&#8217;s a whole new vocabulary to learn here: commits, branches, checkouts, HEADs, TAGs,  gah!!! And the on-line documentation isn&#8217;t always helpful: it assumes you already know what these terms mean, or else defines these terms by reference to other terms which are just as unfamiliar.</p>
<p>But once you learn a few basic use cases where the command line is useful (creating new repos, resolving binary merge conflicts, etc.), it really becomes very routine.</p>
<p>You can also do all sorts of fantastically convoluted tricks with it; and for that you&#8217;ll need to be much more familiar with the nuts-and-bolts. But mostly, you&#8217;re not doing some fantasically convoluted thing; you&#8217;re just using it to version, backup, and share your work. And that really isn&#8217;t all that difficult with a little practice.</p>
<p><strong>git handles merging of .flas and other binaries in an acceptable manner</strong></p>
<p>git lets multiple people work locally on a given project, and then ocassionally (frequently) &#8220;syncing up&#8221; their work with that of other team members.</p>
<p>The buzzword for this in git is &#8220;fetching&#8221; other people&#8217;s file changes, which you then &#8220;merge&#8221; into your own work. You then typically &#8220;push&#8221; the &#8220;merged&#8221; or combined result, storing it to a shared location so that everybody can sync up to the same &#8220;master&#8221; version.</p>
<p>Since git was written originally for text-based content (such as .as files) there are quite a few options and tools to make this process as painless as possible when the conflicting files are text files. But what about .flas and .swfs?</p>
<p>There are two issues here, really.</p>
<p>One issue is the technical end of resolving a merge conflict (e.g., a situation where two different versions of the same .fla are competing for being &#8220;the right version&#8221;).</p>
<p>The other issue is one of workflow: how do we organize our work so that the above sort of merge conflict happens rarely or never?</p>
<p>As far as the technical end is concerned:</p>
<p>The bad news (which isn&#8217;t that bad) is that git-gui is often less than helpful in this process for certain situations where these binaries get out of sync. The good news is that using the git command line interface to ultimately resolve these issues isn&#8217;t very hard for the most general types of problems; and the ability to merge .as and .xml files is very, very handy.</p>
<p>The workflow issue is more complicated, but solvable. In other articles, I&#8217;ll discuss some approaches to the problem, and report on how the different systems seem to play out in the development projects I manage.</p>
<p>But the need for a workflow plan in this case is no different than the need for a workflow in the ad-hoc case, or using any other version control strategy. There&#8217;s nothing inherent to git that makes working with .flas impossible or impractical; one simply needs to coordinate one&#8217;s work with that of others in a heads-up way.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/addedtostage.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/addedtostage.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/addedtostage.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/addedtostage.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/addedtostage.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/addedtostage.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/addedtostage.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/addedtostage.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/addedtostage.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/addedtostage.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/addedtostage.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/addedtostage.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/addedtostage.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/addedtostage.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=addedtostage.wordpress.com&amp;blog=8270606&amp;post=1&amp;subd=addedtostage&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://addedtostage.wordpress.com/2009/06/21/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f22550cfe2deed8d7e8d104f343281f8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">chaszzzbrown</media:title>
		</media:content>
	</item>
	</channel>
</rss>
