<?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>Jay R. Wren - lazy dawg evarlast</title>
	<atom:link href="http://jrwren.wrenfam.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://jrwren.wrenfam.com/blog</link>
	<description>babblings of a computer loving fool</description>
	<lastBuildDate>Mon, 26 Nov 2012 21:09:33 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>xpath from command line</title>
		<link>http://jrwren.wrenfam.com/blog/2012/10/03/xpath-from-command-line/</link>
		<comments>http://jrwren.wrenfam.com/blog/2012/10/03/xpath-from-command-line/#comments</comments>
		<pubDate>Wed, 03 Oct 2012 19:54:28 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/?p=1079</guid>
		<description><![CDATA[I&#8217;m curious how often someone has written the equivalent of this. I wonder why there isn&#8217;t just some tool, and yes, I&#8217;ve used xmllint shell to do the same thing. 1 using System; 2 using System.Xml; 3 4 public class Program { 5 public static int Main(string[] args) { 6 var doc = new XmlDocument(); [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m curious how often someone has written the equivalent of this. I wonder why there isn&#8217;t just some tool, and yes, I&#8217;ve used xmllint shell to do the same thing.</p>
<pre><span class="lnr"> 1 </span><span class="Statement">using</span> System;
<span class="lnr"> 2 </span><span class="Statement">using</span> System.Xml;
<span class="lnr"> 3 </span>
<span class="lnr"> 4 </span><span class="Type">public</span> <span class="Type">class</span> Program {
<span class="lnr"> 5 </span>    <span class="Type">public</span> <span class="Type">static</span> <span class="Type">int</span> Main(<span class="Type">string</span>[] args) {
<span class="lnr"> 6 </span>        var  doc = <span class="Statement">new</span> XmlDocument();
<span class="lnr"> 7 </span>        doc.Load(args[<span class="Constant">0</span>]);
<span class="lnr"> 8 </span>        <span class="Statement">foreach</span> (XmlElement n <span class="Statement">in</span> doc.SelectNodes(args[<span class="Constant">1</span>])) {
<span class="lnr"> 9 </span>            Console.WriteLine(n.InnerXml);
<span class="lnr">10 </span>        }
<span class="lnr">11 </span>        <span class="Statement">return</span> <span class="Constant">0</span>;
<span class="lnr">12 </span>    }
<span class="lnr">13 </span>}</pre>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2012/10/03/xpath-from-command-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When Reversing the Interview Process becomes How Would You Do Fun Things in C</title>
		<link>http://jrwren.wrenfam.com/blog/2012/09/19/when-reversing-the-interview-process-becomes-how-would-you-do-fun-things-in-c/</link>
		<comments>http://jrwren.wrenfam.com/blog/2012/09/19/when-reversing-the-interview-process-becomes-how-would-you-do-fun-things-in-c/#comments</comments>
		<pubDate>Wed, 19 Sep 2012 16:50:39 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/?p=1061</guid>
		<description><![CDATA[My boss&#8217;s boss&#8217;s pals wrote this: http://blog.exodusintel.com/2012/09/18/reversing-the-interview-process/ Its a story about how someone was asked a crazy fun C question in an interview and how the new team decided to try it. After reading this and discussing it with coworkers, I decided to try it and of course the first thing that came to my [...]]]></description>
				<content:encoded><![CDATA[<p>My boss&#8217;s boss&#8217;s pals wrote this: http://blog.exodusintel.com/2012/09/18/reversing-the-interview-process/</p>
<p>Its a story about how someone was asked a crazy fun C question in an interview and how the new team decided to try it.</p>
<p>After reading this and discussing it with coworkers, I decided to try it and of course the first thing that came to my mind was a way to use tail recursion to do it.</p>
<pre><span class="lnr"> 1 </span><span class="PreProc">#include </span><span class="Constant">&lt;stdio.h&gt;</span>
<span class="lnr"> 2 </span>
<span class="lnr"> 3 </span><span class="Type">int</span> c;
<span class="lnr"> 4 </span><span class="Comment">//auto func0 = [&amp;] () -&gt; int { c++; _strlen(s+</span><span class="Constant">1</span><span class="Comment">);};</span>
<span class="lnr"> 5 </span><span class="Comment">//auto funcn = [&amp;] () -&gt; int { return c; };</span>
<span class="lnr"> 6 </span><span class="Type">int</span> rs(<span class="Type">char</span>* s);
<span class="lnr"> 7 </span><span class="Type">int</span> go(<span class="Type">char</span>* s) { c++; <span class="Statement">return</span> rs(s+<span class="Constant">1</span>); }
<span class="lnr"> 8 </span><span class="Type">int</span> ret(<span class="Type">char</span>* s) { <span class="Statement">return</span> c; }
<span class="lnr"> 9 </span><span class="Type">int</span> rs(<span class="Type">char</span>* s) {
<span class="lnr">10 </span>    <span class="Type">int</span> (*func[<span class="Constant">2</span>]) (<span class="Type">char</span> *s) = {ret,go};
<span class="lnr">11 </span>    <span class="Type">char</span> i = (*s&gt;&gt;<span class="Constant">7</span> | *s&gt;&gt;<span class="Constant">6</span> | *s&gt;&gt;<span class="Constant">5</span> | *s&gt;&gt;<span class="Constant">4</span> | 
        *s&gt;&gt;<span class="Constant">3</span> | *s&gt;&gt;<span class="Constant">2</span> | *s&gt;&gt;<span class="Constant">1</span>) &amp; <span class="Constant">1</span>;
<span class="lnr">12 </span>    <span class="Statement">return</span> func[i](s);
<span class="lnr">13 </span>}
<span class="lnr">14 </span><span class="Type">int</span> _strlen(<span class="Type">char</span>* s) {
<span class="lnr">15 </span>    c = <span class="Constant">0</span>;
<span class="lnr">16 </span>    <span class="Statement">return</span> rs(s);
<span class="lnr">17 </span>}
<span class="lnr">18 </span>
<span class="lnr">19 </span><span class="Type">int</span> main(<span class="Type">int</span> argc, <span class="Type">char</span>* argv[]) {
<span class="lnr">20 </span>    printf(<span class="Constant">"_strlen(</span><span class="Special">%s</span><span class="Constant">): </span><span class="Special">%d</span><span class="Special">\n</span><span class="Constant">"</span>, argv[<span class="Constant">1</span>], 
        _strlen(argv[<span class="Constant">1</span>]));
<span class="lnr">21 </span>    <span class="Statement">return</span> <span class="Constant">0</span>;
<span class="lnr">22 </span>}</pre>
<p>After writing it, I went and looked at the other fella solutions for the second time. I should also mention that I haven&#8217;t written C on the job in 11 years, and when I did then, it was one tiny program which was quickly replaced with perl. I have never been anything other than an intro beginner C programmer.</p>
<p>Things I noticed after going back is that my solution is somewhat similar to Brandon and Zef&#8217;s solution, but I think both my use of function pointers and bit shifting are more elementary. I&#8217;m still not sure about how some parts of their solution works.</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2012/09/19/when-reversing-the-interview-process-becomes-how-would-you-do-fun-things-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing iWork09 from CD without a Mac</title>
		<link>http://jrwren.wrenfam.com/blog/2012/04/21/installing-iwork09-from-cd-without-a-mac/</link>
		<comments>http://jrwren.wrenfam.com/blog/2012/04/21/installing-iwork09-from-cd-without-a-mac/#comments</comments>
		<pubDate>Sat, 21 Apr 2012 17:02:50 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[iwork]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/?p=1062</guid>
		<description><![CDATA[You&#8217;d think you could just use Apple&#8217;s nice CD Sharing program, aka Remote Disc http://support.apple.com/kb/HT1777?viewlocale=en_US But sadly, the iWork09 CD is not an iso9660 disc. Instead it has an Apple style partition table, which was not readable by fdisk and crashed parted in linux, with an HFS+ filesystem. When you insert the disc into a [...]]]></description>
				<content:encoded><![CDATA[<p>You&#8217;d think you could just use Apple&#8217;s nice CD Sharing program, aka Remote Disc http://support.apple.com/kb/HT1777?viewlocale=en_US</p>
<p>But sadly, the iWork09 CD is not an iso9660 disc. Instead it has an Apple style partition table, which was not readable by fdisk and crashed parted in linux, with an HFS+ filesystem. When you insert the disc into a Windows PC it simply will not read it.</p>
<p>So, I booted to Linux, used dd to rip the cd and started analyzing the contents of the disc. What I came up with was a way to extract the HFS+ filesystem from the disc image. Since I don&#8217;t really care about the filesystem being perfect &#8211; I only care about being able to install iWork on a new Mac Book Air &#8211; I only care about where it starts and I run a fsck tool to repair the end of filesystem.</p>
<p>The filesystem begins at an offset of 72blocks (36864bytes):<br />
$ if=iwork09.img bs=512 skip=72 of=iwork09-1.img</p>
<p>Repair the filesystem:<br />
$ fsck.hfsplus iwork09-1.img</p>
<p>Mount it and copy the iWork directory or install it from there<br />
$ mount -t hfsplus iwork09-1.img /mnt</p>
<p>A little extra work, but it beats a trip to the Genius Bar.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2012/04/21/installing-iwork09-from-cd-without-a-mac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up a new mac&#8230;</title>
		<link>http://jrwren.wrenfam.com/blog/2012/03/07/setting-up-a-new-mac/</link>
		<comments>http://jrwren.wrenfam.com/blog/2012/03/07/setting-up-a-new-mac/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 19:47:42 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/?p=1037</guid>
		<description><![CDATA[3 months ago I started using OSX full time. Today I found myself setting up a new mac. I wished that I had a checklist of my personal must haves. This is that list. XCode (from AppStore) Firefox Aurora Chrome dev channel EnvyCodeR font iTerm2 (and configure with EnvyCodeR font) twitter (only in AppStore) brew [...]]]></description>
				<content:encoded><![CDATA[<p>3 months ago I started using OSX full time. Today I found myself setting up a new mac. I wished that I had a checklist of my personal must haves. This is that list.</p>
<p>XCode (from AppStore)<br />
Firefox Aurora<br />
Chrome dev channel<br />
EnvyCodeR font<br />
iTerm2 (and configure with EnvyCodeR font)<br />
twitter (only in AppStore)<br />
brew &#8212; /usr/bin/ruby -e &#8220;$(curl -fsSL https://raw.github.com/gist/323731)&#8221;<br />
KeePassX<br />
growl<br />
MenuMeters<br />
copy my ssh keys and load them into my ssh-agent<br />
copy my .vimrc and .vim dir<br />
copy my .bash{rc,_profile}<br />
Squeezeslave</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2012/03/07/setting-up-a-new-mac/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Storyboard Custom Segue For Custom PushViewController Animation</title>
		<link>http://jrwren.wrenfam.com/blog/2012/02/01/storyboard-custom-segue-for-custom-pushviewcontroller-animation/</link>
		<comments>http://jrwren.wrenfam.com/blog/2012/02/01/storyboard-custom-segue-for-custom-pushviewcontroller-animation/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 19:08:22 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/?p=1045</guid>
		<description><![CDATA[While there are a lot of google hits when searching for custom pushViewController Animation, I found nothing regarding use of a Custom Segue to make it reusable and I also found a lot of misinformation like &#8220;it can&#8217;t be done with the default UINavigationController.&#8221; It can. From your Button, View, Gesture Recognizer or whatever, instead [...]]]></description>
				<content:encoded><![CDATA[<p>While there are a lot of google hits when searching for custom pushViewController Animation, I found nothing regarding use of a Custom Segue to make it reusable and I also found a lot of misinformation like &#8220;it can&#8217;t be done with the default UINavigationController.&#8221; It can.</p>
<p>From your Button, View, Gesture Recognizer or whatever, instead of dragging from Push, drag from Custom.</p>
<p><a href="http://jrwren.wrenfam.com/blog/wp-content/uploads/2012/01/StoryBoardSegues-2012-01-27_14-25-24.png"><img class="alignnone size-full wp-image-1046" title="StoryBoardSegues-2012-01-27_14-25-24" src="http://jrwren.wrenfam.com/blog/wp-content/uploads/2012/01/StoryBoardSegues-2012-01-27_14-25-24.png" alt="" width="259" height="94" /></a></p>
<p>Then select the Segue that is created and type in a class name the custom Segue.</p>
<p><a href="http://jrwren.wrenfam.com/blog/wp-content/uploads/2012/01/StoryBoardSegue2012-01-27_14-28-43.png"><img class="alignnone size-full wp-image-1047" title="StoryBoardSegue2012-01-27_14-28-43" src="http://jrwren.wrenfam.com/blog/wp-content/uploads/2012/01/StoryBoardSegue2012-01-27_14-28-43.png" alt="" width="259" height="100" /></a></p>
<p>Now we can create the FromTopReplaceSegue class. Use Add File or however you like to create new classes in XCode.</p>
<blockquote><p>//FromTypeReplaceSegue.h</p>
<p>#import &lt;UIKit/UIKit.h&gt;<br />
@interface FromTopReplaceSegue : UIStoryboardSegue<br />
@end</p>
<p>//FromTypeReplaceSegue.m</p>
<p>#import &#8220;FromTopReplaceSegue.h&#8221;<br />
@implementation FromTopReplaceSegue<br />
-(void)perform{<br />
UIViewController *dst = [self destinationViewController];<br />
UIViewController *src = [self sourceViewController];<br />
[dst viewWillAppear:NO];<br />
[dst viewDidAppear:NO];</p>
<p>[src retain];</p>
<p>[src.view addSubview:dst.view];</p>
<p>CGRect original = dst.view.frame;</p>
<p>dst.view.frame = CGRectMake(dst.view.frame.origin.x, 0-dst.view.frame.size.height, dst.view.frame.size.width, dst.view.frame.size.height);</p>
<p>[UIView beginAnimations:nil context:nil];<br />
dst.view.frame = CGRectMake(original.origin.x, original.origin.y, original.size.height, original.size.width);<br />
[UIView commitAnimations];</p>
<p>[self performSelector:@selector(animationDone:) withObject:dst afterDelay:0.2f];<br />
}<br />
- (void)animationDone:(id)vc{<br />
UIViewController *dst = (UIViewController*)vc;<br />
UINavigationController *nav = [[self sourceViewController] navigationController];<br />
[nav popViewControllerAnimated:NO];<br />
[nav pushViewController:dst animated:NO];<br />
[[self sourceViewController] release];<br />
}<br />
@end</p></blockquote>
<p>In this CustomSegue not only are we doing custom animation from Top to Bottom (just like the default push navigation of Right to Left) but instead of pushing, we are replacing the top view controller.</p>
<p>In my current project I have a nearly identical FromButtomReplaceSegue that does the replace but animates from Button. I hope for a library of these with varying animation transitions and Push/Replace variants of each. Then anytime you want to use a different animation you can simply use a Custom Segue instead of writing a bunch of code in ViewDidLoad or wherever. Hurray Storyboard!</p>
<ol>
<li>http://stackoverflow.com/questions/2215672/how-to-change-the-push-and-pop-animations-in-a-navigation-based-app</li>
<li>http://stackoverflow.com/questions/5878732/how-to-create-uinavigationcontroller-animation-top-to-bottom</li>
<li>http://dmunsie.wordpress.com/2009/08/07/custom-animations-between-uiviewcontrollers/</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2012/02/01/storyboard-custom-segue-for-custom-pushviewcontroller-animation/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Scala 2.9.1 on Fedora 16</title>
		<link>http://jrwren.wrenfam.com/blog/2012/01/31/scala-2-9-1-on-fedora-16/</link>
		<comments>http://jrwren.wrenfam.com/blog/2012/01/31/scala-2-9-1-on-fedora-16/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 18:43:37 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/?p=1042</guid>
		<description><![CDATA[yum install scala on Fedora will grab all the dependencies, including a JVM, but its a pretty old scala. Luckily it is pretty easy to install scala-2.9.1 by snagging it from rawhide, but just the RPMS only get you so far. Fedora seems to be changing their JAVA_HOME in 17. A little hack, and you [...]]]></description>
				<content:encoded><![CDATA[<p>yum install scala on Fedora will grab all the dependencies, including a JVM, but its a pretty old scala.</p>
<p>Luckily it is pretty easy to install scala-2.9.1 by snagging it from rawhide, but just the RPMS only get you so far. Fedora seems to be changing their JAVA_HOME in 17. A little hack, and you are off and running.</p>
<ol>
<li>sudo yum install scala</li>
<li>sudo curl -O http://mirror.us.leaseweb.net/fedora/linux/development/rawhide/x86_64/os/Packages/j/jline2-2.5-5.fc17.noarch.rpm</li>
<li>sudo curl -O http://mirror.us.leaseweb.net/fedora/linux/development/rawhide/x86_64/os/Packages/s/scala-2.9.1-3.fc17.noarch.rpm</li>
<li>sudo yum install jline2-2.5-5.fc17.noarch.rpm scala-2.9.1-3.fc17.noarch.rpm</li>
<li>rpm -ql scala | grep bin | xargs sudo perl -pi.orig -e &#8216;s@JAVA_HOME=/usr/lib/jvm/java-1.6.0/@JAVA_HOME=/usr/lib/jvm/jre-1.6.0/@&#8217;</li>
</ol>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2012/01/31/scala-2-9-1-on-fedora-16/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ubuntu testdrive networked to your LAN</title>
		<link>http://jrwren.wrenfam.com/blog/2012/01/30/ubuntu-testdrive-networked-to-your-lan/</link>
		<comments>http://jrwren.wrenfam.com/blog/2012/01/30/ubuntu-testdrive-networked-to-your-lan/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 18:14:55 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/?p=1040</guid>
		<description><![CDATA[testdrive uses the -net user feature of kvm by default, which is really cool because it becomes a lan client and magically gets internet via proxy. If you want to test server software, you probably want your testdrive VM directly on the same LAN as your host OS. In my case I already had a [...]]]></description>
				<content:encoded><![CDATA[<p>testdrive uses the -net user feature of kvm by default, which is really cool because it becomes a lan client and magically gets internet via proxy. If you want to test server software, you probably want your testdrive VM directly on the same LAN as your host OS.</p>
<p>In my case I already had a bridge setup so it was as simple as changing the -net option on my kvm command line.</p>
<blockquote><p>kvm -m 1024 -smp 2 -cdrom /home/jrwren/.cache/testdrive/iso/ubuntu_precise-desktop-amd64.iso -drive file=/home/jrwren/.cache/testdrive/img/testdrive-disk-43F4RO.img,if=virtio,cache=writeback,index=0,boot=on -usb -usbdevice tablet -net nic,model=virtio -net tap -soundhw es1370 -vga cirrus -vnc 127.0.0.1:1 -k en-us</p>
<p>&nbsp;</p></blockquote>
<p>brctl will now show you the new tap device added to your bridge.</p>
<blockquote><p>bridge name     bridge id               STP enabled     interfaces<br />
br0             8000.001fd085d98b       no              eth0<br />
eth2<br />
tap0<br />
tap1</p></blockquote>
<p>The only drawback is that kvm has to be run as root. There is a way around that by specifying a network interface start script which would be suidroot, but for a personal system or testing development system, I find that overkill. I let her run as root.</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2012/01/30/ubuntu-testdrive-networked-to-your-lan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu testdrive as a base for a Fedora test</title>
		<link>http://jrwren.wrenfam.com/blog/2012/01/27/ubuntu-testdrive-as-a-base-for-a-fedora-test/</link>
		<comments>http://jrwren.wrenfam.com/blog/2012/01/27/ubuntu-testdrive-as-a-base-for-a-fedora-test/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 18:14:49 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/?p=1038</guid>
		<description><![CDATA[Ubuntu testdrive is AWESOME. In my words, testdrive lets you test the next version of ubuntu in a VM with a single command. testdrive ultimately just creates a disk image and runs a virtual machine for you, lets you step through the install from the nightly CD, and then lets you continue to run that [...]]]></description>
				<content:encoded><![CDATA[<p>Ubuntu <a href="https://launchpad.net/testdrive">testdrive</a> is AWESOME. In my words, testdrive lets you test the next version of ubuntu in a VM with a single command.</p>
<p>testdrive ultimately just creates a disk image and runs a virtual machine for you, lets you step through the install from the nightly CD, and then lets you continue to run that VM. I decided to use the exactly same disk image and vm command line to testdrive fedora.</p>
<ol>
<li>Download fedora cd image :<br />
curl -O http://download.fedoraproject.org/pub/fedora/linux/releases/16/Live/x86_64/Fedora-16-x86_64-Live-Desktop.iso</li>
<li>copy a disk image : cp .cache/testdrive/img/testdrive-??????.img fedora16.img</li>
<li>start the install : kvm -m 2048 -smp 2 -cdrom Fedora-16-x86_64-Live-Desktop.iso -drive file=fedora.img,if=virtio,cache=writeback,index=0,boot=on -usb -usbdevice tablet -net nic,model=virtio,macaddr=DE:AD:BE:EF:A8:CC -net user -soundhw es1370 -vga std -vnc 127.0.0.1:0 -k en-us</li>
</ol>
<p>Some details:</p>
<ul>
<li>That copy a disk image step could probably be done much better by creating the qcow2 file yourself, but this worked for my immediate need.</li>
<li>The differences in the command line from a testdrive command line, on my system, are memory size (1024/2048) and -vga cirrus v. -vga std.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2012/01/27/ubuntu-testdrive-as-a-base-for-a-fedora-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CodeMash 2012 Changed Me</title>
		<link>http://jrwren.wrenfam.com/blog/2012/01/17/codemash-2012-changed-me/</link>
		<comments>http://jrwren.wrenfam.com/blog/2012/01/17/codemash-2012-changed-me/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 17:05:51 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/?p=1035</guid>
		<description><![CDATA[Every CodeMash has changed me. This CodeMash was no different. I&#8217;ve attended every codemash. Each is unique and special. I have memories from each that I can point to and say &#8220;This is when I realized&#8230;&#8221; and it is something significant that changed who I am or what I am doing or how I approach [...]]]></description>
				<content:encoded><![CDATA[<p>Every CodeMash has changed me.</p>
<p>This CodeMash was no different.</p>
<p>I&#8217;ve attended every codemash. Each is unique and special. I have memories from each that I can point to and say &#8220;This is when I realized&#8230;&#8221; and it is something significant that changed who I am or what I am doing or how I approach code and life.</p>
<p>This year I feel the focus of change was definitely softer. It was not some deep technical conversation that I had at the attendee party with someone able to explain to me something in a way which I can see applicability for myself like it has been in most years past. This year I didn&#8217;t focus on the mash part of CodeMash.</p>
<p>CodeMash, to me, has always been about learning from outside your normal circles. If you are a .NET person, go learn something about the ruby world. If you are a Ruby person, go learn something about Java (assuming you&#8217;ve never lived in that world). If you are a Java person, find a PHP or Perl session (there weren&#8217;t too many this year). &#8216;Mash not bash&#8217; has always been the underlying philosophy that CodeMash has taught me to adopt.</p>
<p>I&#8217;m done mashing for a while. I&#8217;ve been doing C# for day work for 7 yrs. Of course, to me, mashing that also meant making sure things would run on Mono. I&#8217;ve explored Ruby and Rails for at least 6 years now. I pay attention to the Ruby world. In fact, I have more Ruby podcasts in my subscription than I do .NET (or any other). I watch the Java world (to not do so as a .NET dev is foolish IMO). I long for Akka in .NET (although I think Stact and MassTransit might get me there). I long for&#8230; Heroku. I long for.. I mash&#8230; I long for&#8230; many things.</p>
<p>This year I didn&#8217;t mash at CodeMash, and I didn&#8217;t miss it. Ok, sure, I did a javascript precompiler where I felt like I finally understand JS as a language. I finally grasp the deceptive simplicity of prototypical inheritance. But beyond that, I went to C# and .NET sessions. I loved seeing Bill Wagner and John Skeet present some deep inside and outside C# async. I loved seeing PhatBoyG present Stact.</p>
<p>During his keynote, I believe I heard Barry Hawkins say &#8220;Depth trumps breadth&#8221;. Its not that I don&#8217;t feel some depth in some areas in which I play, but I want more. I feel like I have enough breadth.</p>
<p>So I leave CodeMash, like I do every year, with new direction and a new sense of purpose which I hope to utilize to become a new person. I want to be a different person than I wanted to be a year ago&#8230; again. </p>
<p>I cannot overstate one influencing factor which has had a profound effect on me coming to the above determination. Leon Gersing. I met Leon 4 or so years ago at a Columbus Day of Dot Net event. Of course even then I thought, &#8220;What a cool guy.&#8221; But if you have known Leon for that long (and I don&#8217;t know him very well) you know that Leon too has changed over the years. At the GANG 10 yr anniversary event, I got to listen to Leon give a talk on the topic of &#8220;You&#8221;. It was similar to the short and less serious topic he gave as Pecha Kucha on &#8220;Love&#8221;. I think a lot of the underlying message is the same and so I&#8217;m walking away with that on my mind.</p>
<p>CodeMash 2012 was huge win. It was also HUGE! I know that there were people there, who I know, who I did not see the whole time! Scott and Gary are a couple guys I didn&#8217;t see until the after party! So if I missed you, lets hope we run into each other next year. I&#8217;ll be the guy who is a little different than last year.</p>
<p>Thanks for the great conference, CodeMash!</p>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2012/01/17/codemash-2012-changed-me/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSX /private/var/vm disk usage</title>
		<link>http://jrwren.wrenfam.com/blog/2011/12/16/osx-privatevarvm-disk-usage/</link>
		<comments>http://jrwren.wrenfam.com/blog/2011/12/16/osx-privatevarvm-disk-usage/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 13:41:57 +0000</pubDate>
		<dc:creator>jrwren</dc:creator>
				<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://jrwren.wrenfam.com/blog/?p=1032</guid>
		<description><![CDATA[TL;DR see last paragraph. I googled around for this answer and found nothing, so THEN I read the man page. This felt backward for OSX answers. My Mac gave me warning that I was almost out of disk space recently. I ran du -kx / &#124; sort -nr &#124; less and noticed the biggest offender [...]]]></description>
				<content:encoded><![CDATA[<p>TL;DR see last paragraph.</p>
<p>I googled around for this answer and found nothing, so THEN I read the man page. This felt backward for OSX answers.<br />
My Mac gave me warning that I was almost out of disk space recently. I ran du -kx / | sort -nr | less and noticed the biggest offender with nearly 10% of my disk space was /var/private/vm, so I started digging.<br />
It turns out this is where OSX stores its swap files if it needs them.<br />
OSX dynamically grows its swap files by adding new files, not by resizing an existing file. It starts off with very small files and as it needs a new one it creates a large one until it gets to 1GB file size and then it continues making 1GB swap files. The process dynamic_pager manages this.<br />
In my case the 5GB of swap didn&#8217;t seem like that much until you consider that I have a 64GB MacBook Air. That is a large piece of the disk.<br />
I told the dynamic_pager to clean up after itself, if it could, by running this command:</p>
<blockquote><p>sudo dynamic_pager -L 1073741824</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://jrwren.wrenfam.com/blog/2011/12/16/osx-privatevarvm-disk-usage/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
