<?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>psych0tik</title>
	<atom:link href="http://blog.psych0tik.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.psych0tik.net</link>
	<description>Use a hammer</description>
	<lastBuildDate>Tue, 15 May 2012 00:54:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>richo is now richo in one more place</title>
		<link>http://blog.psych0tik.net/2012/05/richo-is-now-richo-in-one-more-place/</link>
		<comments>http://blog.psych0tik.net/2012/05/richo-is-now-richo-in-one-more-place/#comments</comments>
		<pubDate>Fri, 11 May 2012 15:54:58 +0000</pubDate>
		<dc:creator>richo</dc:creator>
				<category><![CDATA[psych0tik News]]></category>

		<guid isPermaLink="false">http://blog.psych0tik.net/?p=1240</guid>
		<description><![CDATA[My github username has changed, so if anyone is linking to my repos: 1. Tell me, I can fork the project to richoH to keep the links working for now 2. Fix the link! Just change richoH to richo]]></description>
			<content:encoded><![CDATA[<p>My github username has changed, so if anyone is linking to my repos:</p>
<p>1. Tell me, I can fork the project to richoH to keep the links working for now<br />
2. Fix the link! Just change richoH to richo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.psych0tik.net/2012/05/richo-is-now-richo-in-one-more-place/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>threaded mutt on OSX</title>
		<link>http://blog.psych0tik.net/2012/04/threaded-mutt-on-osx/</link>
		<comments>http://blog.psych0tik.net/2012/04/threaded-mutt-on-osx/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 14:43:05 +0000</pubDate>
		<dc:creator>richo</dc:creator>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Hax]]></category>
		<category><![CDATA[homebrew]]></category>
		<category><![CDATA[mutt]]></category>
		<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://blog.psych0tik.net/?p=1232</guid>
		<description><![CDATA[Just a warning- brace yourselves. I&#8217;m back on OSX as a result of the new job, and so a slew of &#8220;OSX is dicks&#8221; posts is probably on the horizon. First up- homebrew is actually not all that bad. It &#8230; <a href="http://blog.psych0tik.net/2012/04/threaded-mutt-on-osx/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just a warning- brace yourselves. I&#8217;m back on OSX as a result of the new job, and so a slew of &#8220;OSX is dicks&#8221; posts is probably on the horizon.</p>
<p>First up- homebrew is actually not all that bad. It only took me a weekend to get a workableish environment up with recent versions of everything I need. One thing that irked me to no end though, was lack of support for threading conversations like I used to get in Debian.</p>
<p>After quickly cloning the Debian repo and building it on OSX.. no dice. So evidently it&#8217;s some unique combination of the Debian patchset and the correct compile options. This managed to take me 3 days, by the time I worked out the correct options, got it to build with clang, shuffled a patch around to unbreak some inlined functions (No idea how that ever built in the first place, actually..)</p>
<p>The short version though, is that if you want your very own mutt that threads messages, it&#8217;s as simple as</p>
<p><code>brew install --HEAD https://raw.github.com/richo/homebrew/f35164afb848d5fd856233fca69662b55fdf2740/Library/Formula/mutt.rb</code></p>
<p>Which pulls from the <a href="https://github.com/psych0tik/mutt">psych0tik clone of mutt</a> (I&#8217;m slowly moving all of the packages available in the psych0tik apt repo to the psych0tik GH account) </p>
<p>Ninja edit:</p>
<p>It&#8217;s more than likely that you want the latest version of this brew which does a lot more to make sure it&#8217;ll actually work. I suggest fetching the features/upstream_mutt branch from github.com/richo/homebrew</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.psych0tik.net/2012/04/threaded-mutt-on-osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Oauth outside of the webapp domain</title>
		<link>http://blog.psych0tik.net/2012/03/using-oauth-outside-of-the-webapp-domain/</link>
		<comments>http://blog.psych0tik.net/2012/03/using-oauth-outside-of-the-webapp-domain/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 17:50:55 +0000</pubDate>
		<dc:creator>richo</dc:creator>
				<category><![CDATA[psych0tik News]]></category>

		<guid isPermaLink="false">http://blog.psych0tik.net/?p=1220</guid>
		<description><![CDATA[Recently at work we had a R&#038;D day during which Josh Benham and I worked on a cli interface to github. We knew immediately that we didn&#8217;t want to use basic auth, obviously preferring the oauth library which is significantly &#8230; <a href="http://blog.psych0tik.net/2012/03/using-oauth-outside-of-the-webapp-domain/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently at work we had a R&#038;D day during which <a href="http://github.com/joshbenham" target="_blank">Josh Benham</a> and I worked on a cli interface to github.</p>
<p>We knew immediately that we didn&#8217;t want to use basic auth, obviously preferring the oauth library which is significantly more secure, but upstream requiring a callback uri is very impractical in the case that you don&#8217;t have one available.</p>
<p>The solution in the end wasn&#8217;t as complex as I thought it would be. Basically, I wrote a webservice that the client connects to, which gives it a unique URL. We then use the URL we&#8217;re given as a redirect URL.</p>
<p>At this stage it&#8217;s realistically only sensible to use it as a proof of concept, as it gives you the token in plaintext and doesn&#8217;t have SSL.</p>
<p>For version 2 I&#8217;d like to export the SSL to the client, and merely relay the encrypted packets. I&#8217;d also like to have the whole thing http encapsulated, for now synchronicity complaints (and if we&#8217;re honest, the fact that I just wanted the damn thing working) meant that I wrote it with a vaguely flawed thread spawning model and not a lot of protection against DDoS attacks.</p>
<p>If none of this scares you off though, it&#8217;s currently running at oauth.psych0tik.net</p>
<p>The procedure is:</p>
<p>Connect on port 2000<br />
recieve your 128 byte callback ID<br />
Send http://oauth.psych0tik.net/callback/[callback ID] as your callback ID to the oauth endpoint<br />
recieve your token from the original connection</p>
<p>Call it a day!</p>
<p>Source is on my <a href="http://github.com/richoH/oauthproxy" title="oauthproxy on github" target="_blank">github account</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.psych0tik.net/2012/03/using-oauth-outside-of-the-webapp-domain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac-tacular backups, Apple, and OSX</title>
		<link>http://blog.psych0tik.net/2012/03/mac-tacular-backups-apple-and-osx/</link>
		<comments>http://blog.psych0tik.net/2012/03/mac-tacular-backups-apple-and-osx/#comments</comments>
		<pubDate>Sun, 18 Mar 2012 04:24:53 +0000</pubDate>
		<dc:creator>samurai</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Guides]]></category>
		<category><![CDATA[Hax]]></category>
		<category><![CDATA[dd]]></category>
		<category><![CDATA[file system]]></category>
		<category><![CDATA[FileVault]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[psych0tik]]></category>

		<guid isPermaLink="false">http://blog.psych0tik.net/?p=880</guid>
		<description><![CDATA[This post started out as a bit of a rant about back-ups I needed to make, due to a dieing Mac Book Pro.  Over the course of writing it, I&#8217;ve come across a few other issues and have looped in &#8230; <a href="http://blog.psych0tik.net/2012/03/mac-tacular-backups-apple-and-osx/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This post started out as a bit of a rant about back-ups I needed to make, due to a dieing Mac Book Pro.  Over the course of writing it, I&#8217;ve come across a few other issues and have looped in some old notes I have about working with OSX.  I&#8217;m not really an Apple guy, but I do have a pair of Mac Book Pros that I&#8217;ve used for a couple of years.  I&#8217;ve come across a few issues with OSX and had to find solutions, so I figured I&#8217;d dump a list of tips/tricks I&#8217;ve discovered in here, along with a few small rants.</p>
<p>The newer of my two Mac Book Pros is a 2011 model, which seems to be a very buggy version of the hardware.  I&#8217;ve had two logic boards completely fail, within a few months of getting the device new.  After those were replaced, and continued to fail, the device was deemed a lemon &#8211; and replaced in whole.  The new Mac worked fine for almost a year, but is now having issues with the RAM controller, where only the top slot works.</p>
<p>While dealing with these issues, I&#8217;ve been to the Apple store a few times.  One of their more obnoxious policies is that repairs cannot be done with out all of the original hardware installed.  So if you&#8217;ve upgraded a hard drive, you&#8217;ve got to downgrade things.  In my case, they wanted to RMA the entire device, including a hard drive that contained my personal information.</p>
<p>They do offer the service to migrate your files and applications in the store (probably using the same tool that does it on first boot), but if you tend to encrypt your home directory, even with FileVault, it throws off this process (presumably because it cannot access configuration files in your homedir needed to enumerate what to copy.)</p>
<p>This left me with 2 options: tell the Apple Geniuses my password (sort of defeats the purpose of encrypting, eh?), or get the drive from them to suss out backing up on my own.  Needless to say, I went the later route.</p>
<p>I happened to have an extra Mac, a SATA to USB enclosure, and a 3TB external drive on hand to handle and test the copy.  I also pulled in a generic linux box for fdisk and other toos, to do some of the heavy lifting as I don&#8217;t particularly like OSX&#8217;s disk management tools and I don&#8217;t want my drive to end up HFS.  My plan was to make 2 different backups: a copy of the homedir and a dd of the full disk (call me paranoid, but I like being sure I didn&#8217;t forget something.)</p>
<p>I immediately ran into issues when I found that fdisk and diskutility don&#8217;t play nicely together.  If one partitions the drive, the other can&#8217;t read or use it (the same goes for mounting), which is probably a result of the EFI setup used by OSX.  Additionally, in their infinite wisdom, Apple decided that the only truly cross-platform file system they support would be Fat32, which won&#8217;t support large files (like a 500G dd.)   As I didn&#8217;t want to leave my Mac tethered to some USB drives for 25 hours, this caused a real headache.</p>
<p>Originally, I had a rant here to the effect of &#8216;Apple|Microsoft &#8211; y u no hav better FS support&#8221;, but I decided to do a bit of digging to sort that out.  From what I&#8217;ve read, OSX doesn&#8217;t include support for things like Ext3/Ext4 due to GPL issues and their lack of desire to publish code.  As far as I can tell, Microsoft is simply ignoring filesystems they&#8217;ve got no stake in.  Neither of these reasons really help us, but I suppose when running a business you&#8217;ve got to prioritize.  In my research efforts, I did come across a particularly good post on adding support via FUSE drivers and the like &#8211; <a href="lifehacker.com/5702815/the-complete-guide-to-sharing-your-data-across-multiple-operating-systems">lifehacker</a>.</p>
<p>I ended up reformatting the 3TB external drive with diskutil, so that it was usable with my other Mac, and then hooked up the old drive via the USB-&gt;SATA converter.  At this point I started looking at the attached hard drive from the old Mac Book Pro, to ensure I could work with everything in the way I expected.  Part of this involved dealing with the encrypted partition of the drive using FileVault.</p>
<p>While playing with FileVault a discovered two things.  The first is that diskutil reports FileVault volume sizes incorrectly.  I spent a couple hours very confused on why my homedir was 200Gigs larger than the physical disk.  The second is a bit concerning, when I connected the old Mac hard drive and mounted the FileVault volume, it was able to decrypt this with the new Mac&#8217;s sudo password.  I&#8217;m not sure yet how that works, but I&#8217;d assume that the password is stored somewhere that&#8217;s root-accessible in a reversible (or decrypted?) format.  Somewhat concerning for a tool that you expect to protect your privacy.</p>
<p>Ultimately,  the transfer took so long I ended up convincing Apple to simply take the trade in with the promise of giving them the old drive.  I&#8217;m sure someday I&#8217;ll get a call about that&#8230;</p>
<p>My other Mac Book Pro has suffered significantly less, with the only real problem being somewhat dodgy internal fans.  I&#8217;ve had both fail to date.  After the headache of getting the first fan replaced, when the second fan bailed, I decided to skip the hassle and simply pull it out and run the machine without.  That&#8217;s worked &#8220;fine&#8221; for about a year, minus the box getting a little warm.  As it turns out, the fan is important (but apparently not important enough to use a quality part) and months of Texas heat and no internal fan have caused the display to fail to work.</p>
<p>Luckily for me, the video output from the laptop continues to work.  So I&#8217;ve simply hooked it up to my KVM and now have a shiny new &#8216;desktop.&#8217;  The only problem I&#8217;ve run into using this setup, is that the MBP doesn&#8217;t seem to have an option to run with the lid closed.  The only work around I&#8217;ve found is to power the machine on and, nearly instantly, close the lid.  This seems to work, tho as I switch between ports on my KVM the box occasionally loses track of the keyboard.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.psych0tik.net/2012/03/mac-tacular-backups-apple-and-osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Displaying the current repo in your prompt</title>
		<link>http://blog.psych0tik.net/2012/03/displaying-the-current-repo-in-your-prompt/</link>
		<comments>http://blog.psych0tik.net/2012/03/displaying-the-current-repo-in-your-prompt/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 03:32:07 +0000</pubDate>
		<dc:creator>richo</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[prompt]]></category>
		<category><![CDATA[zsh]]></category>

		<guid isPermaLink="false">http://blog.psych0tik.net/?p=1210</guid>
		<description><![CDATA[I tend to nest repos a lot in my usual workflow (The common elements are generally ~/code/ext/[repo], but with the pull_ext infrastructure I wrote, >5 levels of nesting are not uncommon). To work around this, I wanted my prompt to &#8230; <a href="http://blog.psych0tik.net/2012/03/displaying-the-current-repo-in-your-prompt/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I tend to nest repos a <em>lot</em> in my usual workflow (The common elements are generally ~/code/ext/[repo], but with the pull_ext infrastructure I wrote, >5 levels of nesting are not uncommon).</p>
<p>To work around this, I wanted my prompt to hilight the root of the current repository and also tell me what type of repo it is.</p>
<p>vcs_info does this, but I find the configuration quite inflexible, and some of the tests are quite expensive so I decided to quickly hack something together.</p>
<p>I arrived at</p>
<div id="gist-2041695" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="c">#!/usr/bin/env zsh</span></div><div class='line' id='LC2'><span class="k">function </span>__richo_pwd<span class="o">()</span></div><div class='line' id='LC3'><span class="o">{</span></div><div class='line' id='LC4'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nb">local </span><span class="nv">current</span><span class="o">=</span><span class="nv">$PWD</span></div><div class='line' id='LC5'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nv">richo_prompt</span><span class="o">=</span>no</div><div class='line' id='LC6'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="o">[</span> -e <span class="s2">&quot;.svn&quot;</span> <span class="o">]</span>; <span class="k">then</span></div><div class='line' id='LC7'><span class="k">        </span><span class="nb">export </span><span class="nv">richo_prompt</span><span class="o">=</span><span class="s2">&quot;⚡&quot;</span></div><div class='line' id='LC8'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">fi</span></div><div class='line' id='LC9'><span class="k">    while</span> <span class="o">[</span> <span class="s2">&quot;$current&quot;</span> !<span class="o">=</span> <span class="s1">&#39;/&#39;</span> -a <span class="nv">$richo_prompt</span> <span class="o">=</span> <span class="s2">&quot;no&quot;</span> <span class="o">]</span>; <span class="k">do</span></div><div class='line' id='LC10'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="c"># for n in n; do</span></div><div class='line' id='LC11'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="o">[</span> -e <span class="s2">&quot;$current/.git&quot;</span> <span class="o">]</span>; <span class="k">then</span></div><div class='line' id='LC12'><span class="k">            </span><span class="nb">export </span><span class="nv">richo_prompt</span><span class="o">=</span><span class="s2">&quot;±&quot;</span></div><div class='line' id='LC13'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nb">break</span></div><div class='line' id='LC14'><span class="nb">        </span><span class="k">fi</span></div><div class='line' id='LC15'><span class="k">        if</span> <span class="o">[</span> -e <span class="s2">&quot;$current/.hg&quot;</span> <span class="o">]</span>; <span class="k">then</span></div><div class='line' id='LC16'><span class="k">            </span><span class="nb">export </span><span class="nv">richo_prompt</span><span class="o">=</span><span class="s2">&quot;☿&quot;</span></div><div class='line' id='LC17'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nb">break</span></div><div class='line' id='LC18'><span class="nb">        </span><span class="k">fi</span></div><div class='line' id='LC19'><span class="k">        if</span> <span class="o">[</span> -e <span class="s2">&quot;$current/.bzr&quot;</span> <span class="o">]</span>; <span class="k">then</span></div><div class='line' id='LC20'><span class="k">            </span><span class="nb">export </span><span class="nv">richo_prompt</span><span class="o">=</span><span class="s2">&quot;⤴&quot;</span></div><div class='line' id='LC21'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nb">break</span></div><div class='line' id='LC22'><span class="nb">        </span><span class="k">fi</span></div><div class='line' id='LC23'><span class="k">        </span><span class="nv">current</span><span class="o">=</span><span class="nv">$current</span>:h</div><div class='line' id='LC24'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">done</span></div><div class='line' id='LC25'><span class="k">    if</span> <span class="o">[</span> <span class="nv">$richo_prompt</span> !<span class="o">=</span> <span class="s2">&quot;no&quot;</span> <span class="o">]</span>; <span class="k">then</span></div><div class='line' id='LC26'><span class="k">        if</span> <span class="o">[</span> <span class="s2">&quot;$current&quot;</span> <span class="o">=</span> <span class="s2">&quot;$HOME&quot;</span> <span class="o">]</span>; <span class="k">then</span></div><div class='line' id='LC27'><span class="k">            </span><span class="nv">repo</span><span class="o">=</span><span class="s2">&quot;~&quot;</span></div><div class='line' id='LC28'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nv">suff</span><span class="o">=</span><span class="k">${</span><span class="nv">PWD</span><span class="p">##</span><span class="nv">$current</span><span class="k">}</span></div><div class='line' id='LC29'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nb">export </span><span class="nv">richo_pwd</span><span class="o">=</span><span class="s2">&quot;$PR_BRIGHT_WHITE${repo}$PR_BRIGHT_BLUE$suff&quot;</span></div><div class='line' id='LC30'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">else</span></div><div class='line' id='LC31'><span class="k">            </span><span class="nv">pref</span><span class="o">=</span><span class="nv">$current</span>:h</div><div class='line' id='LC32'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nv">suff</span><span class="o">=</span><span class="k">${</span><span class="nv">PWD</span><span class="p">##</span><span class="nv">$current</span><span class="k">}</span></div><div class='line' id='LC33'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nv">repo</span><span class="o">=</span><span class="nv">$current</span>:t</div><div class='line' id='LC34'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nv">richo_pwd</span><span class="o">=</span><span class="s2">&quot;$pref/$PR_DULL_WHITE${repo}$PR_BRIGHT_BLUE$suff&quot;</span></div><div class='line' id='LC35'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nb">export </span><span class="nv">richo_pwd</span><span class="o">=</span><span class="k">${</span><span class="nv">richo_pwd</span><span class="p">/</span><span class="nv">$HOME</span><span class="p">/\~</span><span class="k">}</span></div><div class='line' id='LC36'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">fi</span></div><div class='line' id='LC37'><span class="k">    else</span></div><div class='line' id='LC38'><span class="k">        </span><span class="nb">export </span><span class="nv">richo_prompt</span><span class="o">=</span><span class="s1">&#39;%#&#39;</span></div><div class='line' id='LC39'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nb">export </span><span class="nv">richo_pwd</span><span class="o">=</span><span class="s2">&quot;${PWD/$HOME/~}&quot;</span></div><div class='line' id='LC40'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">fi</span></div><div class='line' id='LC41'><span class="o">}</span></div><div class='line' id='LC42'>__richo_pwd</div><div class='line' id='LC43'>add-zsh-hook chpwd __richo_pwd</div><div class='line' id='LC44'><span class="nv">PS1</span><span class="o">=</span><span class="s2">&quot;${SHELL_COLOR}%(?.%m.\$(__richo_host) $PR_BRIGHT_RED%?)%b $PR_BRIGHT_BLUE\$richo_prompt $PR_RESET&quot;</span></div><div class='line' id='LC45'><span class="nv">RPS1</span><span class="o">=</span><span class="s2">&quot;$PR_BRIGHT_BLUE\$richo_pwd &quot;</span></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/2041695/8a2d30f9d8272988797b86b78ed459d522688e9a/.zshrc" style="float:right;">view raw</a>
            <a href="https://gist.github.com/2041695#file_.zshrc" style="float:right;margin-right:10px;color:#666">.zshrc</a>
            <a href="https://gist.github.com/2041695">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>

<p>Which recurses back from the current directory, looks for the metadata for the 4 VCS systems that I use, and exports a character for my prompt and for the colored PWD.</p>
<p>Then I only run this on directory changes to keep things quick (Which does mean that `git init .` won&#8217;t update the prompt until you shuffle about a bit.</p>
<p>The net result is this</p>
<p><img src="http://natalya.psych0.tk/~richo/branch.png" alt="repo aware prompt" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.psych0tik.net/2012/03/displaying-the-current-repo-in-your-prompt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Openbox gets a faux-Divvy mode</title>
		<link>http://blog.psych0tik.net/2012/02/openbox-gets-a-faux-divvy-mode/</link>
		<comments>http://blog.psych0tik.net/2012/02/openbox-gets-a-faux-divvy-mode/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 22:17:41 +0000</pubDate>
		<dc:creator>richo</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[divvy]]></category>
		<category><![CDATA[openbox]]></category>
		<category><![CDATA[window management]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blog.psych0tik.net/?p=1197</guid>
		<description><![CDATA[Openbox For some time now I&#8217;ve used openbox as my WM of choice (I worked it out the other day, it&#8217;s about a year since I migrated) and apart from needing to add one feature, it meets my needs pretty &#8230; <a href="http://blog.psych0tik.net/2012/02/openbox-gets-a-faux-divvy-mode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h1>Openbox</h1>
<p>For some time now I&#8217;ve used openbox as my WM of choice (I worked it out the other day, it&#8217;s about a year since I migrated) and apart from needing to add one feature, it meets my needs pretty perfectly.</p>
<h1>Divvy</h1>
<p>One thing I did learn during the epic OSX wager though, was that divvy is a cool idea. Having the idea to quickly snap windows to segmented regions of your display can be a boon for people sitting between the floating and tiling models. I did feel that the Divvy implementation was a bit clumsy though, which meant I should&#8230;..</p>
<h1>Them codes</h1>
<div id="gist-1944801" class="gist">

        <div class="gist-file">
          <div class="gist-data gist-syntax">
              <div class="highlight"><pre><div class='line' id='LC1'><span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;W-Escape&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC2'>&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;q&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC3'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Close&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC4'>&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC5'>&nbsp;&nbsp;<span class="c">&lt;!-- Keybindings for resizing, ala divvy --&gt;</span></div><div class='line' id='LC6'>&nbsp;&nbsp;<span class="c">&lt;!-- 30% --&gt;</span></div><div class='line' id='LC7'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;C-h&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC8'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC9'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;x&gt;</span>0<span class="nt">&lt;/x&gt;</span></div><div class='line' id='LC10'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>98%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC11'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>34%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC12'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC13'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC14'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC15'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;C-j&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC16'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC17'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;y&gt;</span>-0<span class="nt">&lt;/y&gt;</span></div><div class='line' id='LC18'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>34%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC19'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>100%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC20'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC21'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC22'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC23'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;C-k&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC24'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC25'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;y&gt;</span>0<span class="nt">&lt;/y&gt;</span></div><div class='line' id='LC26'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>34%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC27'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>100%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC28'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC29'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC30'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC31'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;C-l&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC32'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC33'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;x&gt;</span>-0<span class="nt">&lt;/x&gt;</span></div><div class='line' id='LC34'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>98%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC35'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>34%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC36'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC37'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC38'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC39'>&nbsp;&nbsp;<span class="c">&lt;!-- 50% --&gt;</span></div><div class='line' id='LC40'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;h&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC41'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC42'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;x&gt;</span>0<span class="nt">&lt;/x&gt;</span></div><div class='line' id='LC43'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>98%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC44'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>50%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC45'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC46'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC47'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC48'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;j&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC49'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC50'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;y&gt;</span>-0<span class="nt">&lt;/y&gt;</span></div><div class='line' id='LC51'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>50%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC52'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>100%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC53'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC54'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC55'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC56'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;k&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC57'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC58'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;y&gt;</span>0<span class="nt">&lt;/y&gt;</span></div><div class='line' id='LC59'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>50%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC60'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>100%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC61'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC62'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC63'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC64'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;l&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC65'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC66'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;x&gt;</span>-0<span class="nt">&lt;/x&gt;</span></div><div class='line' id='LC67'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>98%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC68'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>50%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC69'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC70'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC71'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC72'>&nbsp;&nbsp;<span class="c">&lt;!-- 66% --&gt;</span></div><div class='line' id='LC73'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;S-h&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC74'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC75'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;x&gt;</span>0<span class="nt">&lt;/x&gt;</span></div><div class='line' id='LC76'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>98%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC77'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>66%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC78'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC79'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC80'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC81'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;S-j&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC82'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC83'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;y&gt;</span>-0<span class="nt">&lt;/y&gt;</span></div><div class='line' id='LC84'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>66%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC85'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>100%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC86'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC87'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC88'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC89'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;S-k&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC90'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC91'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;y&gt;</span>0<span class="nt">&lt;/y&gt;</span></div><div class='line' id='LC92'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>66%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC93'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>100%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC94'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC95'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC96'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC97'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;S-l&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC98'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC99'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;x&gt;</span>-0<span class="nt">&lt;/x&gt;</span></div><div class='line' id='LC100'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>98%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC101'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>66%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC102'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC103'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC104'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC105'><br/></div><div class='line' id='LC106'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">&lt;!-- Corners --&gt;</span></div><div class='line' id='LC107'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;b&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC108'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC109'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;x&gt;</span>0<span class="nt">&lt;/x&gt;</span></div><div class='line' id='LC110'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;y&gt;</span>-0<span class="nt">&lt;/y&gt;</span></div><div class='line' id='LC111'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>50%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC112'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>50%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC113'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC114'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC115'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC116'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;n&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC117'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC118'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;x&gt;</span>-0<span class="nt">&lt;/x&gt;</span></div><div class='line' id='LC119'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;y&gt;</span>-0<span class="nt">&lt;/y&gt;</span></div><div class='line' id='LC120'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>50%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC121'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>50%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC122'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC123'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC124'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC125'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;y&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC126'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC127'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;x&gt;</span>0<span class="nt">&lt;/x&gt;</span></div><div class='line' id='LC128'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;y&gt;</span>0<span class="nt">&lt;/y&gt;</span></div><div class='line' id='LC129'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>50%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC130'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>50%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC131'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC132'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC133'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC134'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;u&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC135'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC136'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;x&gt;</span>-0<span class="nt">&lt;/x&gt;</span></div><div class='line' id='LC137'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;y&gt;</span>0<span class="nt">&lt;/y&gt;</span></div><div class='line' id='LC138'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>50%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC139'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>50%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC140'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC141'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC142'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC143'><br/></div><div class='line' id='LC144'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="c">&lt;!-- TinyCorners --&gt;</span></div><div class='line' id='LC145'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;C-b&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC146'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC147'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;x&gt;</span>0<span class="nt">&lt;/x&gt;</span></div><div class='line' id='LC148'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;y&gt;</span>-0<span class="nt">&lt;/y&gt;</span></div><div class='line' id='LC149'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>34%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC150'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>34%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC151'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC152'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC153'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC154'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;C-n&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC155'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC156'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;x&gt;</span>-0<span class="nt">&lt;/x&gt;</span></div><div class='line' id='LC157'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;y&gt;</span>-0<span class="nt">&lt;/y&gt;</span></div><div class='line' id='LC158'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>34%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC159'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>34%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC160'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC161'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC162'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC163'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;C-y&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC164'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC165'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;x&gt;</span>0<span class="nt">&lt;/x&gt;</span></div><div class='line' id='LC166'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;y&gt;</span>0<span class="nt">&lt;/y&gt;</span></div><div class='line' id='LC167'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>34%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC168'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>34%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC169'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC170'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC171'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC172'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;C-u&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC173'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;MoveResizeTo&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC174'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;x&gt;</span>-0<span class="nt">&lt;/x&gt;</span></div><div class='line' id='LC175'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;y&gt;</span>0<span class="nt">&lt;/y&gt;</span></div><div class='line' id='LC176'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;height&gt;</span>34%<span class="nt">&lt;/height&gt;</span></div><div class='line' id='LC177'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;width&gt;</span>34%<span class="nt">&lt;/width&gt;</span></div><div class='line' id='LC178'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/action&gt;</span></div><div class='line' id='LC179'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;Warp&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC180'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC181'><br/></div><div class='line' id='LC182'>&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;f&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC183'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;ToggleMaximizeFull&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC184'>&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC185'>&nbsp;&nbsp;<span class="nt">&lt;keybind</span> <span class="na">key=</span><span class="s">&quot;S-f&quot;</span><span class="nt">&gt;</span></div><div class='line' id='LC186'>&nbsp;&nbsp;&nbsp;&nbsp;<span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">&quot;ToggleFullscreen&quot;</span><span class="nt">/&gt;</span></div><div class='line' id='LC187'>&nbsp;&nbsp;<span class="nt">&lt;/keybind&gt;</span></div><div class='line' id='LC188'><span class="nt">&lt;/keybind&gt;</span></div></pre></div>
          </div>

          <div class="gist-meta">
            <a href="https://gist.github.com/raw/1944801/50bbcd3bd79ef1fffd16adba5f9a1e1aa035bb4c/openbox_divvy.xml" style="float:right;">view raw</a>
            <a href="https://gist.github.com/1944801#file_openbox_divvy.xml" style="float:right;margin-right:10px;color:#666">openbox_divvy.xml</a>
            <a href="https://gist.github.com/1944801">This Gist</a> brought to you by <a href="http://github.com">GitHub</a>.
          </div>
        </div>
</div>

<p>This creates a set of bindings rooted off a modifier key (I used Windows+Escape because it&#8217;s a natural shape for my hands but far away from something I can hit by accident) and then used the nethack vi bindings because they&#8217;re drilled deep into my brain.</p>
<p>You&#8217;ll also see the `Warp` action attached to all of them.. if you&#8217;re not running my fork (which is still unmerged upstream, my fault) you&#8217;ll want to remove them unless you want to hear openbox be /very/ noisy about it.</p>
<p>From this you can do `W-Esc l` to place the current window on the right 50% of your screeen, `W-Esc y` for the top left, etc.</p>
<p>I think implemented modifiers, Shift for 66% and Ctrl for 34% for balanced splits. Tiling window managers (and even tmux, via the `next-layout` and `previous-layout` commands) support these, but I still need floating window support for the most part.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.psych0tik.net/2012/02/openbox-gets-a-faux-divvy-mode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>psych0tik mirrors raspberry pi</title>
		<link>http://blog.psych0tik.net/2012/02/psych0tik-mirrors-raspberry-pi/</link>
		<comments>http://blog.psych0tik.net/2012/02/psych0tik-mirrors-raspberry-pi/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 01:46:02 +0000</pubDate>
		<dc:creator>richo</dc:creator>
				<category><![CDATA[psych0tik News]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[mirror]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[raspberri pi]]></category>

		<guid isPermaLink="false">http://blog.psych0tik.net/?p=1192</guid>
		<description><![CDATA[Anyone who&#8217;s spoken to me in person knows that I&#8217;m really excited about the upcoming release of Raspberry PI. I&#8217;ll keep the speil to a minimum, but a $35 ARM SoC with ethernet, USB and enough hardware onboard to decode &#8230; <a href="http://blog.psych0tik.net/2012/02/psych0tik-mirrors-raspberry-pi/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Anyone who&#8217;s spoken to me in person knows that I&#8217;m <em>really</em> excited about the upcoming release of <a href="www.raspberrypi.org/" title="raspberry pi homepage">Raspberry PI</a>.</p>
<p>I&#8217;ll keep the speil to a minimum, but a $35 ARM SoC with ethernet, USB and enough hardware onboard to decode 1080p video on 1 watt.. you can see why I&#8217;m pretty stoked.</p>
<p>Recently, there was a call for mirrors and psych0tik raised our hands, we&#8217;re mirroring any and all content (presently, debian 6 iso&#8217;s) needed to get your pi up and running, though unfortunately only for those of you with ipv6 access at this stage.</p>
<p>Point your (ip6 capable) browser at <a href="http://alura.psych0tik.net/rpi" title="psych0tik rpi mirror">alura.psych0tik.net/rpi</a> to get the images!</p>
<p>EDIT: For anyone having issues with their system giving preference to A records, I have removed the A record from alura.psych0.tk</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.psych0tik.net/2012/02/psych0tik-mirrors-raspberry-pi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git stashing, and why you do it too much</title>
		<link>http://blog.psych0tik.net/2012/01/git-stashing-and-why-you-do-it-too-much/</link>
		<comments>http://blog.psych0tik.net/2012/01/git-stashing-and-why-you-do-it-too-much/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 02:27:17 +0000</pubDate>
		<dc:creator>richo</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[source control]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blog.psych0tik.net/?p=1175</guid>
		<description><![CDATA[First of all, this workflow depends entirely on an (rarely un)spoken rule in my repositories- if it&#8217;s in the wip/ or trash/ tree, don&#8217;t touch it. I&#8217;m planning on rebasing with impunity. I stash a lot at work, especially when &#8230; <a href="http://blog.psych0tik.net/2012/01/git-stashing-and-why-you-do-it-too-much/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>First of all, this workflow depends entirely on an (rarely un)spoken rule in my repositories- if it&#8217;s in the wip/ or trash/ tree, don&#8217;t touch it. I&#8217;m planning on rebasing with impunity.<br />
I stash a lot at work, especially when I shouldn&#8217;t.</p>
<p>Generally, stashing occurs when I&#8217;m working on something that&#8217;s not ready for production or even feature complete enough to warrant publishing, and I need to rebase or start on something else. Nearly always I stash it and forget about it (even though my prompt <a href="https://github.com/richoH/dotfiles/blob/7624cdb421acbfae91787481dfc6310c665978f7/zshrc#L320-349" title="zshrc snippit for git status" target="_blank">yells at me when I have stashes</a>)</p>
<p>The alternative is to check it into a wip/ or trash/ branch (depending on how confident I feel about the change in question being a Good Idea). This is useful for a stack of reasons:</p>
<ol>
<li>It preserves some history about the idea (what else I was doing at the same time)</li>
<li>It makes tracking what you&#8217;re doing a lot simpler (because the stash stack is a pain at the best of times)</li>
<li>Most importantly, you can keep branching</li>
</ol>
<p>The last one is the most relevant, a stash isn&#8217;t rooted to any particular point on the tree which means if you make an invasive change you&#8217;re going to struggle (which is a pain when the patch in question alters some core behaviour and was only barely working to start with)</p>
<p>If I know it&#8217;s going to be a problem that I take a lot of stabs at I&#8217;ll generally make it a branch like wip/ideas/short_description_of_approach for simplicity to begin with; and this will only get better in git 1.7.9 which adds a description attribute for branches.</p>
<p>Stashes are awesome for getting a clean tree so you can rebase or do some non-trivial merging, but for keeping ideas straight it&#8217;s a pain; to the point where I&#8217;m considering a hook to delete my stashes after a week so that I can just be rid of them.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.psych0tik.net/2012/01/git-stashing-and-why-you-do-it-too-much/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Convert iterm color file to Xdefaults</title>
		<link>http://blog.psych0tik.net/2012/01/convert-iterm-color-file-to-xdefaults/</link>
		<comments>http://blog.psych0tik.net/2012/01/convert-iterm-color-file-to-xdefaults/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 12:20:05 +0000</pubDate>
		<dc:creator>richo</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[colorschemes]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[terminal emulator]]></category>

		<guid isPermaLink="false">http://blog.psych0tik.net/?p=1172</guid>
		<description><![CDATA[My favourite colorscheme for vim (Jellybeans.vim recently had a pull request submitted including a colorscheme for iTerm2, a terminal emulator for OSX. Not wanting to go back to OSX after finally getting my encryption key back and being back in &#8230; <a href="http://blog.psych0tik.net/2012/01/convert-iterm-color-file-to-xdefaults/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My favourite colorscheme for vim (<a href="https://github.com/nanotech/jellybeans.vim" title="Jellybeans.vim" target="_blank">Jellybeans.vim</a> recently had a pull request submitted including a colorscheme for iTerm2, a terminal emulator for OSX.</p>
<p>Not wanting to go back to OSX after finally getting my encryption key back and being back in linux, I set about converting it to RGB values that urxvt can understand.</p>
<p>I realised two things while doing this-</p>
<p>1. plists are flaming piles of horror. Someone at Apple took bad acid.<br />
2. Ruby is cool for bashing up quick scripts.</p>
<p>The results are up on github as <a href="https://github.com/richoH/itermcolors2xdefaults" title="itermcolors2xdefaults" target="_blank">itermcolors2xdefaults</a> and it seems to work reasonably well.</p>
<p>The scheme in question was very feint so I added an option to multiply all the colors, but by and large it does what it says on the tin.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.psych0tik.net/2012/01/convert-iterm-color-file-to-xdefaults/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>~/.subversion in svn</title>
		<link>http://blog.psych0tik.net/2012/01/subversion-in-svn/</link>
		<comments>http://blog.psych0tik.net/2012/01/subversion-in-svn/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 01:01:35 +0000</pubDate>
		<dc:creator>richo</dc:creator>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[Hax]]></category>
		<category><![CDATA[home directory]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://blog.psych0tik.net/?p=1167</guid>
		<description><![CDATA[I have to do this way more often than I&#8217;d like, my home directory lives in svn, and my svn config comprises part of my home directory. The upshot is that subversion likes to make blank data if none already &#8230; <a href="http://blog.psych0tik.net/2012/01/subversion-in-svn/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have to do this way more often than I&#8217;d like, my home directory lives in svn, and my svn config comprises part of my home directory. The upshot is that subversion likes to make blank data if none already exists, and then falls in a heap if the path it&#8217;s trying to create is already there.</p>
<p>This gets worse if you already have config you like and goes totally sideways if you actually depend upon some of it to get a clean checkout.</p>
<p>The solutions isn&#8217;t complex- but isn&#8217;t obvious either. Most solutions I&#8217;ve seen involved invoking svn, then trying to throw it in the background after it creates metadata but BEFORE it begins creating files, and then nuke the files. Kludgy at best- I much prefer this approach.</p>
<p><code>#!/bin/sh<br />
cd ~<br />
mv .subversion _subversion<br />
svn --config-dir _subversion up<br />
echo "You must now merge _subversion into .subversion"</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.psych0tik.net/2012/01/subversion-in-svn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

