<?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>Outside the Rabbitt Hole &#187; Miscellaneous</title>
	<atom:link href="http://www.tranquillo.net/category/miscellaneous/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tranquillo.net</link>
	<description>Currently adventuring in Norwalk, CT (USA)</description>
	<lastBuildDate>Fri, 05 Mar 2010 00:30:33 +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>Better Branching in Subversion</title>
		<link>http://www.tranquillo.net/2010/03/04/better-branching-in-subversion/</link>
		<comments>http://www.tranquillo.net/2010/03/04/better-branching-in-subversion/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 00:30:33 +0000</pubDate>
		<dc:creator>Rabbitt</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[branching]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://www.tranquillo.net/?p=14</guid>
		<description><![CDATA[There are many perils involved with grafting your toes to your armpits. First of all, toes are meant to be connected to your feet - not placed in your armpits where it is both uncomfortable, and smelly. Aside from the olfactory stink, you also lose the benefit of being able to maintain good balance while walking. What might have seemed like a good idea at first is obviously a bad bio-engineering decision.]]></description>
			<content:encoded><![CDATA[<p>There are many perils involved with grafting your toes to your  armpits. First of all, toes are meant to be connected to your feet &#8211; not  placed in your armpits where it is both uncomfortable, and smelly.  Aside from the olfactory stink, you also lose the benefit of being able  to maintain good balance while walking. What might have seemed like a  good idea at first is obviously a bad bio-engineering decision.</p>
<p>Grafting another arm onto your torso might have some merit as it  isn’t just a sub-subsection of a given trunk (read: your leg); it’s  actually a full trunk unto itself, which means you get more use out of  it. About now you might be wondering what grafting of toes and arms has  to do with tech. Besides the nifty bio-tech opportunities, it serves as a  good metaphor for branching practices in Subversion.</p>
<p>I’m sure by now most of you have had an opportunity to create a  branch and work with it. It’s a pretty simple affair; nothing more than a  copy of one directory in subversion to another. For example:</p>
<p><code>svn copy trunk branches/branch-name</code></p>
<p>Subversion branches are great because they are <em><strong>cheap</strong></em>.  Not cheap like the US Dollar; we’re talking practically free. Whether  you are branching a deep tree or a shallow tree, it’s all the same (<em>cheap</em>)  operation to subversion.</p>
<h3>Branching Correctly and Why it Matters</h3>
<p>The temptation with using branches is to only branch the directory  that you are going to be working in instead of the complete trunk  directory. While that might seem like a great idea, it really isn’t. By  doing so, you make it much more difficult to merge safely. More  importantly, you lose valuable contextual data.</p>
<p>Let’s say you want to work only in the <em>/baz</em> sub-directory  of <em>../trunk/foo/bar</em> (i.e., <em>../trunk/foo/bar/baz</em>). If you branch only that directory,  you have created two problems:</p>
<ol>
<li><em>/baz</em> loses its context within the <em>/trunk/foo/bar</em> codebase. This means that it would not be immediately clear to someone  looking at your branch <em>where</em> it was branched <em>from</em>. (note: there are means of figuring it out, but that&#8217;s not the point)</li>
<li>if you find you need to make changes above <em>/baz</em>,  you’ll have to create a new, independent branch.</li>
</ol>
<p>This is where the value of cheap branching becomes clear. When you  branch, subversion doesn’t actually copy any files, all it does is note a  new directory in the branches directory and that it should contain the  same data as the directory you branched from (effectively, it&#8217;s like a symlink in unix land). From there on out any  change you make is stored against that branch, but only just changes.  This is why branching is cheap; it doesn’t take up physical space until  you make changes.</p>
<p>Perhaps you’re thinking, “I don’t care about how much space it takes  up &#8211; I just don’t need to deal with the extra directories under trunk!”  While that is a valid argument, keep in mind that what you gain in  perceived simplicity, you lose in both flexibility and context.</p>
<h3>Making Branches Work For <em>You</em></h3>
<p>We know it’s probably not a good idea to branch a sub-directory of  the trunk; but, that still doesn’t help us when we only want that  sub-directory. Have no fear; there is a simple solution: After branching  off of the trunk directory, checkout the sub-directory you want from  the branch.</p>
<p>As an example, say we want to create a branch of <em>/trunk</em> called “<em>foo-widget</em>”  but we only want the <em>/trunk/foo/bar</em> sub-directory to work in.  Here’s how you would do that:</p>
<blockquote>
<pre><code>svn copy https://domain.tld/svn/trunk https://domain.tld/svn/branches/foo-widget
svn co https://domain.tld/svn/branches/foo-widget/foo/bar bar</code></pre>
</blockquote>
<p>This would first create a branch of the trunk directory called  “<em>foo-widget</em>” and then checkout the sub-directory <em>/foo/bar</em> from the “<em>foo-widget</em>” branch into a local directory called  ‘bar’. This  allows maximum flexibility to switch gears and work on a different path  in the branch should the need arise, while maintaining the simplicity  you are looking for; and, more importantly, the desired consistent contextual path information for everyone who might look at this branch.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tranquillo.net/2010/03/04/better-branching-in-subversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVN and Automatic Keyword Expansion Setup</title>
		<link>http://www.tranquillo.net/2010/03/04/svn-and-automatic-keyword-expansion-setup/</link>
		<comments>http://www.tranquillo.net/2010/03/04/svn-and-automatic-keyword-expansion-setup/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 00:15:51 +0000</pubDate>
		<dc:creator>Rabbitt</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[keywords]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://www.tranquillo.net/?p=4</guid>
		<description><![CDATA[So in order to ensure that $Id$ keyword expansion happens on new files that enter subversion, it’s necessary to make some configuration changes to your subversion client.]]></description>
			<content:encoded><![CDATA[<p>So in order to ensure that $Id$ keyword expansion happens on new files that enter subversion, it’s necessary to make some configuration changes to your subversion client. Those people using TortoiseSVN can change their svn config file by doing the following:</p>
<ol>
<li>Right click on any Windows Folder</li>
<li>Select TortoiseSVN-&gt;Setting</li>
<li>Click on the ‘Edit’ for Subversion configuration file (which will open the configuration up in Notepad, or something similar).</li>
</ol>
<p>Unix users can find their config file located in $HOME/.subversion/config and can use any of vim, emacs, nano or pico to edit the configuration (or whatever your personal flavor of editor is).</p>
<p>In either case, once you have opened the file, search for the sections [miscellany] and [auto-props] and then use what follows to make your configuration look similar.</p>
<blockquote><p><code><br />
[miscellany]<br />
enable-auto-props = yes</code></p>
<p>[auto-props]<br />
*.php = svn:eol-style=native;svn:keywords=Id<br />
*.pl  = svn:executable;svn:keywords=Id<br />
*.sh = svn:eol-style=native;svn:executable;svn:keywords=Id<br />
*.txt = svn:eol-style=native<br />
*.png = svn:mime-type=image/png<br />
*.jpg = svn:mime-type=image/jpeg<br />
*.gif = svn:mime-type=image/gif<br />
*.xml = svn:eol-style=native<br />
*.xsl = svn:eol-style=native<br />
*.xsd = svn:eol-style=native<br />
*.html = svn:eol-style=native<br />
*.css = svn:eol-style=native;svn:keywords=Id<br />
*.js  = svn:eol-style=native;svn:keywords=Id</p></blockquote>
<p>This sets a couple of svn properties when adding files of the types listed above:</p>
<ul>
<li>Adds keyword “Id” (aka $Id$ expansion) to .css, .js, .pl, and .sh files (we can do this for more files if you guys want).</li>
<li>Set’s the end of line style (CRLF for windows, LF for *nix) to native for every textual file listed (meaning when a windows user checks out the file, they get it normalized to CRLF and a nix user get’s normalized to LF &#8211; the normalization happens transparently by your subversion client and internally in the repository they are stored using LF).</li>
<li>Some files are automatically marked as executable (perl and shell script files)</li>
<li>Images have their mime-type set appropriately so that subversion knows that files containing those extensions (.gif, .png, .jpg) are binary type files. This has an added benefit of allowing the subversion apache module to send the correct Content-Type header for the file without having to guess.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tranquillo.net/2010/03/04/svn-and-automatic-keyword-expansion-setup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Private vs. Protected Members/Properties</title>
		<link>http://www.tranquillo.net/2006/03/24/protected-vs-private/</link>
		<comments>http://www.tranquillo.net/2006/03/24/protected-vs-private/#comments</comments>
		<pubDate>Fri, 24 Mar 2006 21:48:22 +0000</pubDate>
		<dc:creator>Rabbitt</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.tranquillo.net/?p=3</guid>
		<description><![CDATA[So it&#8217;s been a while since I last posted anything and I just found this interesting page with an algorithm for choosing the correct scope for a class member/property &#8211; figured I&#8217;d share it for anyone interested: Pretty much every object oriented programming language let&#8217;s you set the visibility of object members. Usually it defaults [...]]]></description>
			<content:encoded><![CDATA[<p>So it&#8217;s been a while since I last posted anything and I just found this interesting page with an algorithm for choosing the correct scope for a class member/property &#8211; figured I&#8217;d share it for anyone interested:</p>
<blockquote><p>Pretty much every object oriented programming language let&#8217;s you set the visibility of object members. Usually it defaults to public. That means everybody can access that member. Of course often you don&#8217;t want to [allow] other objects to access certain parts of your object. This is where private or protected come in to play.</p></blockquote>
<p> &#8212; see: <a href="http://elmuerte.blogspot.com/2004/12/private-vs-protected.html"> Michiel &#8220;El Muerte&#8221; Hendriks </a> for more&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tranquillo.net/2006/03/24/protected-vs-private/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Strange way to start off&#8230;</title>
		<link>http://www.tranquillo.net/2005/07/25/strange-way-to-start-off/</link>
		<comments>http://www.tranquillo.net/2005/07/25/strange-way-to-start-off/#comments</comments>
		<pubDate>Mon, 25 Jul 2005 09:54:06 +0000</pubDate>
		<dc:creator>Rabbitt</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://blog-india.tranquillo.net/?p=2</guid>
		<description><![CDATA[    It's amazing how adept we are at burying those feelings, all the while believing that we have "moved on." It's moments like this when we truly understand how deep-rooted our grief is and how entangled in it's growth we have become. ]]></description>
			<content:encoded><![CDATA[<p> <img src="http://www.tranquillo.net/images/kristin.jpg" style="float: left; margin-right: 5px; border: 2px; border-color: #33abc1;" alt="Kristin (1998)" />   They caught the bastard! After five long years of waiting, Kristin&#8217;s murderer has been found. Apparently he has been rotting in some Montana prison since 2001 or so, after murdering some homeless person. I know this is probably an unusual way to start off my new blog, especially given the  theme (my travels in India) but, considering this was the single most earth changing event in my life to date, I think it is important to give it it&#8217;s due.</p>
<p>    The past five years have been gradually less difficult &#8211; each year offering up a whole new set of memories to hide those less comfortable. To say that the pain goes away would be a disservice to not only myself but the memories I shared with her.  That&#8217;s not to say that it doesn&#8217;t become easier to manage &#8211; no, I&#8217;m far to gifted a male at times to say that. However, all throughout these five long  years, there have always been those little things that would remind me of her &#8211; the sounds, smells, and visuals that would bring her close to heart and mind, eliciting a moment of pause and reflection &#8211; and with that, grief.</p>
<p>    It&#8217;s amazing how adept we are at burying those feelings, all the while believing that we have &#8220;moved on.&#8221; It&#8217;s moments like this when we truly understand how deep-rooted our grief is and how entangled in it&#8217;s growth we have become. </p>
<p>    When I first read about Kristin&#8217;s murderer being found I was, to say the least, shocked. At first I couldn&#8217;t believe it &#8211; I literally had to reread the paragraph that explained the situation three times. Then it all just hit me. I was overcome by the sheer enomority of it &#8211; I mean, this person &#8211; no, this freak of nature &#8211; this insult to humanity I had long sought to confront, was finally found. The many nights I lay awake at night wishing with every ounce of my being to be transported back in time to shoot him dead; the many nights I lie awake at night dreaming of the chance to scream &#8220;WHY!!?!?!!?&#8221; at this beast as I beat him senseless &#8211; and finally, he has a face.</p>
<p>    How interesting that I find myself now in India, a land so foreign in it&#8217;s customs yet so pure in it&#8217;s heart, as I begin this long path towards closure. In spite of it&#8217;s strangeness, I find solace in this land &#8211; in these people. I oft recall the many dreams Kristin had of travelling abroad to Africa &#8211; of helping those less fortunate than herself. How it pains me so that she would never live those dreams &#8211; yet, how happy I am knowing that I take her with me, in some small part, on my adventure. </p>
<p>    Kristin, wherever you are, you will never be forgotten and will live on in the hearts and minds of those who know you forever. Until my last breath, I will carry you with me and I pray that you may now find the peace that you have long wished for.</p>
<p>    In loving memory, Kristin Ann Laurite, January 28th, 1975 &#8211; August 25th, 2000</p>
<p>(Link to article detailing the findings: <a href="http://www.kristinlaurite.org/modules.php?op=modload&#038;name=News&#038;file=article&#038;sid=37&#038;mode=nested&#038;order=1&#038;thold=-1">Kristin&#8217;s Killer Found &#8211; www.kristinlaurite.org</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tranquillo.net/2005/07/25/strange-way-to-start-off/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
