<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Pumanchu</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/" />
    <link rel="self" type="application/atom+xml" href="http://skull.piratehaven.org/~epu/atom.xml" />
    <id>tag:skull.piratehaven.org,2008-05-25:/~epu/1</id>
    <updated>2011-12-06T20:16:06Z</updated>
    <subtitle>a little pu for you</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.23-en</generator>

<entry>
    <title>Focus on forward</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2011/12/focus-on-forward.html" />
    <id>tag:skull.piratehaven.org,2011:/~epu//1.159</id>

    <published>2011-12-06T20:03:43Z</published>
    <updated>2011-12-06T20:16:06Z</updated>

    <summary>&apos;Forward&apos; is Wisconsin&apos;s motto. I&apos;m doing my best to take that to heart, since the recent Day 1 Studios layoffs....</summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        <![CDATA['Forward' is Wisconsin's motto. I'm doing my best to take that to heart, since the recent <a href="http://www.gamasutra.com/view/news/38934/Major_Layoffs_As_Day_1_Studios_Loses_Konami_Publishing_Deal.php">Day 1 Studios layoffs</a>.]]>
        <![CDATA[<p>I found out on Friday afternoon after lunch, then had a weekend full of awesome busy family events.</p><p>My brain digested the results, and there's a couple of hard realities to adapt to:</p><ul><li>There isn't as much game production in Chicago as there used to be (it was slim to begin with).</li><li>The weekly expected hours of labor for in-the-trench video game work is at direct odds with having a family.</li></ul><p>With these two facts firmly in mind, I've been considering work outside my focus on games in order to stay local, and I've been considering work in games outside of Chicago.</p><p>The first two days of unemployment have been amazingly busy and rewarding, and I'm really looking forward to new challenges and opportunities. It remains to see how the family handles everything.</p><p>Thanks for your support, and wish me luck!</p>]]>
    </content>
</entry>

<entry>
    <title>Fantasy football 2010 winds up!</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2010/08/fantasy-football-2010-winds-up.html" />
    <id>tag:skull.piratehaven.org,2010:/~epu//1.158</id>

    <published>2010-08-14T16:20:41Z</published>
    <updated>2010-08-14T16:34:05Z</updated>

    <summary>I won&apos;t lie, I am very excited about the upcoming FF season. Here&apos;s what I&apos;ve got going on, and why I think it&apos;s going to be a better year than the last one....</summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    <category term="fantasyfootball" label="fantasy.football" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        I won&apos;t lie, I am very excited about the upcoming FF season. Here&apos;s what I&apos;ve got going on, and why I think it&apos;s going to be a better year than the last one. 
        <![CDATA[<font style="font-size: 1.5625em;">Re-subscribed to <a href="http://www.thehuddle.com/">thehuddle</a>.</font><br />FF is all about your intel, making better decisions before your peers. This is especially important before the draft. When draft day comes, I like knowing that I've got my huddle cheat sheet built around their knowledge and my league rules.<br />I don't know about you all, but I play like 3 or 4 leagues a season. Each league has different co-workers and buddies, and each draft is slightly different, and nobody scores the same. Huddle will let you customize a cheat sheet with each league's rules.<br /><font style="font-size: 1.5625em;">Making sure I can make each draft.</font><br />I used to just schedule my drafts, but this year, I'm reminding Carrie about them. Making your draft is the number one thing you can do to make sure you aren't dead last in your league. A bad draft is really hard to recover from. I'm in one 10 player league with a very deep bench, and it's tough to make it up with rookies and injuries alone during the season.<br />Also, showing up early doesn't hurt. It once took me 35 minutes to get into a draft, and I got there in the 8th round. Needless to say, the bot made some really bad picks (a defense in the 3rd round, and back-to-back horrible tight end picks). Geez Louise.<br /><font style="font-size: 1.5625em;">Making sure I customize my picks each draft.</font><br />Most of my games this year are through a system that rhymes with atchoo. I'm demoting those who have disappointed me in the past, and banning those with known injuries. If a build robot is going to try to 'help' me pick, it had better not be able to make the worst possible mistakes.<br /><font style="font-size: 1.5625em;">Emergency picks via smart phone.<br /></font>Cpu will be so happy to hear that on some days, I will be monopolizing her Android phone on the weekends. Let's hope I don't need to. But I've also got the netbook just in case.<br /><font style="font-size: 1.5625em;">HUGE WIDESCREEN LCD TV!</font><br />ZOMG best birthday fathersday gift ever. &lt;3&lt;3&lt;3<br /><br />Now, I just have to avoid rookie mistakes and trust my FF studs to do the right thing. And avoid stupid Porter, Brady, and any over-the-hill ex-studs. And not play like a GB fanboy. Aaron Rogers is pretty high on the list! And make all my lineups.<br />]]>
    </content>
</entry>

<entry>
    <title>hudson on kubuntu</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2010/07/hudson-on-kubuntu.html" />
    <id>tag:skull.piratehaven.org,2010:/~epu//1.157</id>

    <published>2010-07-11T04:36:51Z</published>
    <updated>2010-08-14T16:18:50Z</updated>

    <summary>The interesting features of a network of build machines actually need such a network.I already have a VirtualBox kubuntu instance running, let&apos;s see about setting up a hudson node there....</summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    <category term="hudsonsoftware" label="hudson software" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        <![CDATA[The interesting features of a network of build machines actually need such a network.<div><br /></div><div>I already have a VirtualBox kubuntu instance running, let's see about setting up a hudson node there.</div>]]>
        <![CDATA[<div><ol><li>Since I knew I had hudson deployed in tomcat, I fired up kubuntu Software Management control panel and searched for it. It turns out, once you install tomcat6, you also want tomcat6-admin. But tomcat manager installation through apt-get doesn't prompt you for a manager username and password. You'll need to reconfigure the users and add a manager role and set a user up as the manager. Slightly different from tomcat7, I would add.</li><li>Once you can get into the manager, you can <a href="http://hudson-ci.org/debian/">follow these steps</a> to eat a custom hudson deb. It will print a warning on omplete installation because tomcat is sitting on port 8080. That's ok. With the deb placing hudson.war on your machine and handling its updates, you could symlink it into place in tomcat. I just installed it using the web manager war copy deploy.</li><li>Browsing to http://localhost:8080/hudson throws a huge callstack. It turns out, tomcat is <a href="http://testinfected.blogspot.com/2009/01/hudson-gets-accesscontrolexception-when.html">preconfigured with java security enabled</a>, which breaks hudson. Turn it off and restart the init.d/tomcat6.</li><li>Damn. Get there, and it can't create HUDSON_HOME.&nbsp;Unable to create the home directory. Boo. Web suggests setting hudson environment variables in java options for the tomcat container.</li><li>So, this is like the opposite of most debian-based distro software configurations. Usually apt-get has you covered. Maybe I absolutely don't want tomcat installed. But I go, add the HHUDSON_HOME to /etc/tomcat6/context.xml as describe in a useful post at http://malor.se/blog/?p=57, set the permissions on /var/lib/hudson to tomcat.adm, and set the UTF-8-ness again. UTF isn't sticking.<br /></li><li>So, after more doc reading, it becomes clear that you don't need to run your slaved node in a container, but rather spawn as a windows service (untested), or login from the slave and run the slave applet from the main hudson server. So I tried this from the vm, but it exploded when running from hudson, because I don't have dns working on my home machines and hudson doesn't gracefully work between resolved names and the ip address. The stacktrace reads something like "java.net.UnknownHostException: &lt;hostname&gt; at&nbsp;java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)". Spent a few minutes making sure home machines have reserved dns leases, and then set up bind9 to resolve fully qualified dns names. Maybe now running the slaved java applet will work.</li><li>No, clicking the slave spawning button on the slave machine just starts a mysterious window with picture of hudson in it, which fails to start the slave with no diagnostic info. Maybe because I already installed a master on the vm? I halt tomcat instance. No go. I uninstall the deb and try again. No go. Geezus. I guess Cruise has a leg up on the 'easy deployment' over Hudson. Seems like if they go to the trouble of making a hudson deb, they should just rename it to hudson master and make a hudson slave deb, prompting you for the master url in config step. Srsly.</li><li>Get distracted and do a dist-upgrade on the intended slave. Also find that kubuntu dist upgrade does not invoke an editor for merging changes. Weak. Oh well, see you tomcat config. I don't really need you for the slave instance (that I know of). Maybe I can deploy the slave in tomcat and document that. It kinda seems like that should be part of a client installer.</li><li>It seems like this is a lot harder than it needs to be. Whomever rebuilds a hudson master/slave installer for windows would probably get a lot of traction. It seems like it's possible, just taking so darn long it's not quite worth it.</li></ol>Well, that's as far as I'm going to take that. Clearly, as usability goes, hudson has some room for improvement. On the other hand, it's not any different from our current home brew software, since we just spawn links on individual build machines with build steps.<br /></div>]]>
    </content>
</entry>

<entry>
    <title>hudson revisited</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2010/07/hudson-revisited.html" />
    <id>tag:skull.piratehaven.org,2010:/~epu//1.156</id>

    <published>2010-07-07T03:00:19Z</published>
    <updated>2010-07-11T03:21:20Z</updated>

    <summary>Since I recently revisited cruise, I wondered how the other engines I previously used would fare in a revisit. Let&apos;s take another look at Hudson....</summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    <category term="hudson" label="hudson" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        <![CDATA[Since I <a href="http://skull.piratehaven.org/%7Eepu/2010/06/cruise-still-frustrating.html">recently revisited cruise</a>, I wondered how the other engines I previously used would fare in a revisit. Let's take another look at <a href="http://wiki.hudson-ci.org/display/HUDSON/Meet+Hudson">Hudson</a>.]]>
        <![CDATA[It's not as cut and dried as <a href="http://stackoverflow.com/questions/604385/what-is-the-difference-between-hudson-and-cruisecontrol-for-java-projects">stackoverflow</a>&nbsp;users might make out; the last time I set up Hudson, it took some time to manually configure the build machine, similar to our home-grown system at work. I was able to configure some shell tasks, but the interface wasn't nearly as slick or easy to work with as <a href="http://www.atlassian.com/software/bamboo/">Bamboo</a>, or pleasing to the eye as&nbsp;<a href="http://www.thoughtworks-studios.com/cruise-release-management">Cruise</a>.<div><br /></div><div>But since I've already done up nullDC, let's see how getting it set up goes. I'll compare in a follow-on post.<br /></div><div><br /></div><div><ol><li>The hudson website says the best configuration on windows is to install <a href="http://en.wikipedia.org/wiki/Apache_Tomcat">tomcat</a> and <a href="http://wiki.hudson-ci.org/display/HUDSON/Tomcat">configure it to load the hudson .war</a>. I have no idea what that means. I think tomcat serves up java modules as objects that return web or data requests, possibly in combination with apache httpd. Turns out, you don't need apache httpd. On win32 (xp) last time I set this up, I had no trouble configuring xampp and installing tomcat from an extra xampp package. But on Windows 7 x64, xampp was busted from the installer. There's an <a href="http://tomcat.apache.org/download-70.cgi">x86/x64 windows service installer for tomcat 7.0</a>. Let's do that, since it's the newest.&nbsp;Tomcat requires a <a href="http://www.java.com/en/download/manual.jsp">64 bit jre</a>, which I have. It also wants to use port 8080, which is fine.</li><li><a href="http://hudson-ci.org/latest/hudson.war">Download the latest hudson .war</a>&nbsp;and try to follow the instructions. There's no %TOMCAT_HOME% environment variable configured with the windows service installer for tomcat 7. Browsing to http://myhost/hudson doesn't show anything. Go to restart the windows service. Also try http://myhost:8080/hudson and http://myhost:8080/. Nothing. Try to use the tomcat manager, and get 403 access denied. Change my manager user and pass to something retarded simple and impossible to typo. Nothing. Time to uninstall and deselect the manager, methinks. Apache Tomcat doesn't say it's an apache publisher product in the remove programs control panel, and it leaves a zombie instance of its uninstall registry when it's done. I notice that a bunch of hudson files were created in the directory as it uninstalls.</li><li>Reinstall of tomcat shows the web manager is unusable in its default install state. Blah. Try escalating the user it runs as to an admin, no luck. Everything useful about the page results in a 403 error. Uninstall and try tomcat 6.0 just in case? Confirm that hudson is extracted all over the webapp/hudson directory tho. Find this web post, <a href="http://issues.hudson-ci.org/browse/HUDSON-6738">7.0 is bugged</a>, but they claim as designed. Apply the single-character config fix, and hudson says it's loading.</li><li>Read the docs, and start by setting environmnet variable to move hudson's root directory&nbsp;<span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Helvetica,Arial,sans-serif; font-size: 13px; line-height: 17px;">HUDSON_HOME to different disc. Restart tomcat service.</span></li><li><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Helvetica,Arial,sans-serif; font-size: 13px; line-height: 17px;">Find the <a href="http://hudson-ci.org/download/plugins/mercurial/">mercurial plugin</a>&nbsp;but not sure how to install it. Ah, the docs say the manage page has a plugins view. That didn't load before, but does now. Also warns about no utf-8 encoding. Reconfigure and restart tomcat, and go back to http://myhost:8080/hudson/pluginManager/</span></li><li><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Helvetica,Arial,sans-serif; font-size: 13px; line-height: 17px;">Hey! There's updates to plugins I already have installed. That's cool. Holy crap, there's so many plugins in the list that it's hard to see what other cool stuff I can do. But I see copying artifacts from other Hudson instances (ala cruise fetchartifact xml config lines), and guess there's plenty of configuring ahead. It would be nice to repackage hudson on windows to install into tomcat, or offer a 'make hudson installer package from this configuration' link.</span></li><li><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Helvetica,Arial,sans-serif; font-size: 13px; line-height: 17px;">Poke around, and find the email configuration options. Can't authorize against my yahoo smtp service because hudson gui doesn't allow me to set username and password to auth with, nor the smtp port. There's a way to <a href="http://markmail.org/message/qndvdog3coumg2st#query:set%20hudson%20smtp%20port+page:1+mid:f7j2ododhtptvuna+state:results">configure it in the config file</a> apparently. Leave this alone for another time. ZOMG, the mercurial plugin didn't install. The install button is tiny, and way at the bottom of the page, so I hadn't found and hit it. Needs some stylesheet love to fold up all the damn sections; under google chrome, it seems like some things fold, and some don't unfold. [2010/07/10] Found the advanced button in the hudson configuration that lets user set advanced details like auth and port.<br /></span></li><li><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Helvetica,Arial,sans-serif; font-size: 13px; line-height: 17px;">Blargh. Skipped email config and went to bed. Woke up, and configured build steps for SDL, copying the work from cruise. Build steps fail because sh is not on path. Really? Can it not tell that I am running windows and it needs to run command? Fah. It could come bundled with msys/mingw, with a nice nullsoft installer. Or because it's windows, it could just switch from sh to cmd.<br /></span></li><li><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Helvetica,Arial,sans-serif; font-size: 13px; line-height: 17px;">It turns out, there's a built-in windows batch command builder step I should have used instead. Hudson doesn't currently figure out to hide sh commands on windows. It would be cool if it came with sh.exe or removed it from the dropdown. Creating all-new steps to use batch commands fails on unquoted strings with spaces, and succeeds finally. Artifacts are downloadable individually or all in a zip. The zip includes the full path to the artifact, instead of tidying the paths flat similar to cruise. Different, not bad.</span></li><li>Notice the success icon is a blue ball. Should be green, methinks. Someone already made a plugin to fix that. Install that and something else that catches my eye, and get tired of restarting tomcat instead of restarting hudson within tomcat. Finally go reconfigure tomcat users, which the windows installer for 7.0 doesn't correctly configure - it added the manager role, but really, you need manager-gui and a couple other roles. Restart tomcat, and finally get into the web manager. Feature request - Hudson to restart itself if it knew it was within tomcat and had its own user.</li><li>Green balls plugin sort of works, sort of not. Chrome has cached the image, so in pages viewed before, it shows up as blue. But if you open the image elsewhere, it shows up green.</li><li>Include folder as artifact doesn't work the first way I configured it. web shows t<a href="http://www.tikalk.com/alm/2-ways-archive-artifacts-hudson">he right way to get the entire contents</a> is to use directory/file wildcards like path/to/folder/**/*. Except, then the UI forces you to browse the entire artifact dir. What I want to see is some libs, and an include directory. I guess I could bundle files myself, or put them into a published structure and artifact that.<span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Helvetica,Arial,sans-serif; font-size: 13px; line-height: 17px;"></span></li><li>While waiting, discover that cctray input from hudson <a href="http://www.lostechies.com/blogs/stevedonie/archive/2009/02/09/cctray-with-hudson.aspx">looks like this</a>. Wonder why work goes through the trouble of making their own cctray, when they could just format the build output correctly. That would be minus one app to make, less code in the tree.</li><li>Try the msbuild builder, which is currently invoked from the command line. Maybe it's awesome. No, not really. it allows for the user to configure specific msbuild to run, but nothing that the command line can't handle. Doesn't have the awesome edit text box bottom sizer that the cmd text has, so I can't read all the args. Scratch that change to config.</li><li>Clone the SDL project to make one for Winpcap. But hudson's getting a second copy of the same code to build everything. annoying! Now I have extra copies of the source repo, again. These can run from the same code base, and can run at the same time (in parallel), because the tasks do not intersect.</li><li>Not being able to change the cwd for a task to run is starting to drag. Reconfigure so include file batch runs correctly in winpcap.</li><li>Trying to figure out how parallel builds can go off before the dependent build. <a href="http://hudson.361315.n4.nabble.com/queueing-project-dependencies-td1594989.html">This post</a> recommends <a href="http://wiki.hudson-ci.org//display/HUDSON/Join+Plugin">Join</a> or Locks and Latches plugins. Docs for join are there, I go read Locks. Bah. Locks looks abandoned and incomplete, whereas join was modified recently and has pretty pictures of configuring. Looks like it will require some noop stages. or some dependency configuring.</li><li>Make nullDC trigger on SDL or winpcap rebuild complete, instead of on SCM changes. These two build on source control rev changes, so if either changes, we rebuild. SDL currently runs from DEEPWATER, but that's sub-par. It should run from my local SDL clone. winpcap is part of SHARKBAIT, which DEEPWATER was cloned from. If source in SHARKBAIT changes, we definitely want to rebuild winpcap and nullDC. So I think this is suitable. But how do I get the artifacts which I did easily with cruise? Oh hey look. There's a fetch artifact plugin. Awesome.</li><li>Yay. The steps are drag-and-drop in the web ui. That's nice, because I defined them out of order and now they are in order. SDL headers and libs go where we want. Now to figure out the best way to get winpcap output where it should end up.</li><li>A bit more artifact and fetch artifact configuring, and headers, libs show up, and nullDC builds. Add remaining files from WorkDir to the artifacts it publishes, and it's like I have a nearly-ready-to-redistribute zip file!</li></ol>So there we go. Most of the work from setting up cruise, I was able to replicate simply in Hudson.<br /><br />The benefits now that I'd like to set up are a linux port using other instances of slaved hudson on virtual machines, and going back to build from clean source mercurial repo (SHARKBAIT) instead of the one I had to pollute to get it to work under the cruise crippleware free license (DEEPWATER).<br /><br />It looks like Hudson has all the parts I need to make a distributed build that can fork and join status across multiple instances, but it needs some installer repackaging before I could deploy it at work. Some kind of uber installer that drops in tomcat, hudson, reconfigures each, and installs the base plugins I want to use.<br /><br />If hudson could already be packaged for easy windows installs, and prompt the user on install for the default plugins to activate on windows, I'd say it'd be pretty lively and easy to deploy.<br /><br />I prefer this to the cripple ware cruise, but more about that later.<br /></div>]]>
    </content>
</entry>

<entry>
    <title>cruise still frustrating</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2010/06/cruise-still-frustrating.html" />
    <id>tag:skull.piratehaven.org,2010:/~epu//1.155</id>

    <published>2010-06-13T16:24:21Z</published>
    <updated>2010-07-03T04:27:58Z</updated>

    <summary><![CDATA[Cruise&nbsp;(from thoughtworks, the authors of CCNet)had an update that said they had better perforce integration. I decide it's time to revisit.Last visit to cruise, we passed on it. It had nice dependency and build machine farm setups for cascading builds...]]></summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    <category term="sdl" label="SDL" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="continuousintegration" label="continuous integration" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="cruise" label="cruise" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mercurial" label="mercurial" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="nulldc" label="nullDC" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perforce" label="perforce" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="software" label="software" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="visualstudio" label="visual studio" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="winpcap" label="winpcap" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        <![CDATA[<a href="http://www.thoughtworks-studios.com/cruise-release-management">Cruise</a>&nbsp;(from thoughtworks, the authors of CCNet)had an update that said they had better <a href="http://www.thoughtworks-studios.com/company/23-03-2010-thoughtworks-studios-and-perforce-add-cruise-integration-to-scale-large-distributed-enterprise-agile-program">perforce integration</a>. I decide it's time to revisit.<div><br /></div><div>Last visit to cruise, we passed on it. It had nice dependency and build machine farm setups for cascading builds and queueing blocks of commands between machines, but it always did a full&nbsp;<a href="http://www.perforce.com/perforce/doc.current/manuals/cmdref/sync.html">'p4 sync'</a>&nbsp;to a temp client spec, and couldn't use multiple clients from different p4 servers. This was a blocker, because at work, art data and code files live in different repositories. It would also probably eventually clutter p4 metadata beyond belief.</div><div><br /></div><div>Let's see if things have improved.</div>]]>
        <![CDATA[<div><ol><li>Installed <a href="http://www.thoughtworks-studios.com/cruise-continuous-integration/1.3.2/help/installing_cruise_agent.html">client</a>&nbsp;and <a href="http://www.thoughtworks-studios.com/cruise-continuous-integration/1.3.2/help/installing_cruise_agent.html">server</a> on win7 and <a href="http://www.kubuntu.org/getkubuntu/download">kubuntu</a>. Petty easy on both, even though I can't test the license across the <a href="http://www.virtualbox.org/wiki/Downloads">virtualbox </a>virtual machines. IIRC, the cruise trial license used to allow multiple machines with test license, but doesn't now. It's a licencing restriction of the <a href="http://www.thoughtworks-studios.com/user/register&amp;destination=forms/form/cruise/download">10 user evaluation version</a>.</li><li>Documentation mismatch. Claims that installer will prompt you to select artifact directory. Does not actually do this on win7 x64. Had to figure out <a href="http://www.thoughtworks-studios.com/cruise-continuous-integration/1.3.2/help/configuration_reference.html#server">where in the server config</a> to change this. One thing that's great about cruise is that the coordinating server stores everything, the build logs, the build output you care about, test results. And each thing can be fetched back with specific html pages.</li><li>Set service user to a local admin so it can do everything. This is pretty standard, since it will be running a compiler on a win7 machine with <a href="http://en.wikipedia.org/wiki/User_Account_Control">UAC</a> enabled.</li><li>Found a project to build, <a href="http://code.google.com/p/nulldc/">nullDC</a>, a dreamcast emulator. Uses <a href="http://tortoisesvn.net/downloads">svn</a>, a <a href="http://www.thoughtworks-studios.com/cruise-continuous-integration/1.3.2/help/configuration_reference.html#svn">supported source control repo</a>.</li><li>Made a new pipeline, but svn can't be found. Needed to reinstall. I keep PATH really short, so I re-edited the batch wrapper and confirmed it worked. Using <a href="http://www.sliksvn.com/en/download">Sliksvn</a> this time.</li><li>Repo can't connect in the pipeline. Cruise is trying to invoke svn.exe over PATH, but I have svn.cmd. WTF. This is not how Windows does things. I see a post on the cruise support forums after 15 mins searching that says <a href="http://community.thoughtworks.com/posts/87dc2eb8c6">doing this is not supported</a>. Really? Make my path filthy with additional directories.</li><li>I test the connection, and see that cruise is trying to send username and pass arguments all the time. If they're empty, couldn't it skip that? I set user to 'anonymous' and password to my email address. Luckily, that works. Supposing it didn't though.</li><li>I make a build robot email alias, and get stuck trying to get yahoo mail to forward from a new address. Swell. Eventually I get the new address approved by yahoo.</li><li>I go to set the pipeline defaults, chose 'exec' maker, and set 'make' as the placeholder command. Poke through the cruise UI pages, and I see the repo history. I get a red box in a little while, and my firewall notifies me that cmd is being launched. Wait, I haven't asked it to build yet, have I? Visiting the pipeline page has tripped a build somehow. Not what I was expecting, since I'm not done configuring yet.</li><li>Go to fetch the other components like winpcap and sdl. Where is the nice guided UI for adding pipeline parts? Fiddle around, and it turns out you can only invoke the text editor of the xml config file for the server, or create a pipeline from a web form. Nothing in the middle. <a href="http://www.kinook.com/VisBuildPro/">VisualBuild is superior</a>, at this point.</li><li>Find that compile requirements include Microsoft Visual Studio C++ 2010. Boo. <a href="http://www.microsoft.com/express/downloads/#2010-All">Download the Express iso image</a>.</li><li>A modern dxsdk is required. Download the Feb 2010, because instructions are non-specific. It later turns out that include paths are hardcoded to April in the projects, instead of using the DXSDK_DIR environment variable. Unlike all the other installers I get, this stupid installer must validate that 'windows is genuine' to download the dxsdk. I suck down another cd-sized installer from the 'net. This DSL speed is pretty lame. Idly dream about fiber, and remember seeing Oak Park's South Blvd. painted up for street maintenance with fiber in orange spraypaint next to triangular figure-eight shapes.</li><li>Grab the win7 .net 4 sdk, another CD-sized installer, because the express edition probably does not come with it. No 'genuine' requirement there, do you hear me dxsdk team?</li><li>Thinking about it, I probably don't want to constantly suck my code from google to do clean builds. I want a local mirror, or known versions of code and binaries that are stable or tagged. I look into <a href="http://josephscott.org/archives/2010/01/setting-up-svnsync-and-svn-notify/">svnsync</a>.</li><li>Instead, I follow the <a href="http://hgbook.red-bean.com/read/migrating-to-mercurial.html">mercurial handbook</a>&nbsp;and <a href="http://www.svnforum.org/2017/viewtopic.php?p=15167&amp;sid=40c7b13e4609ddfa50e411aac1e544bc">mirror the svn repo</a>. Will need to hook this up to a mercurial repo that's tracking the mirrored changes, since we'd prefer to commit changes without being approved, and push them wherever we want.</li><li>Install visual studio express, which actually only installs the prereqs and prompts for reboot without scheduling the install I really do want. Run the dxsdk installer, and realize visual studio is nowhere to be found. Re-run the installer to get visual studio, and re-install dxsdk.</li><li>Realize only the web installer for the windows sdk was downloaded, track down the iso.</li><li>Download and install <a href="http://bitbucket.org/tortoisehg/stable/wiki/download">mercurial</a>, one of the 4 supported source control systems (svn, git, hg, p4). fix up the old python26 batch wrapper in c:\bin to point to the right place.</li><li>Try to authorize visual studio 2010 express, but the email never arrives. Change email to my gmail, because yahoo trashes the inbound mail.</li><li>Try to 'hg convert repo' but svn bindings aren't installed with the win32 build of hg. Seriously? just shove them in there. The workaround from stackoverflow - <a href="http://stackoverflow.com/questions/1657918/subversion-python-bindings-could-not-be-loaded">install and use tortoiseHg instead</a>.</li><li>Confirm the reinstall of dxsdk set the include/lib project paths, only to discover that they are not set anymore, the dialog claims the option is deprecated in favor of project settings. Great - the one thing I've had to configure in Visual Studio since 2001 has changed. Let's hope it's for the good.</li><li>The tortoiseHg installer was win32, not the x64 I need. Wargh! Suppose my browser would have to leak my architecture in order to provide preferred arch for downloads. Wish for a package manager for windows, again. <a href="http://store.steampowered.com/">Steam</a> people, are you listening?!</li><li>Turns out I need TortoiseHg with the bindings, AND the mercurial dist with convert included, and to set tortoise first in PATH. Seriously, would it have been easier to get python and build? Probably I would need mingw and msys, and then where would I be?</li><li>Ok, with convert working, I now have an 'svnsync sync', 'hg convert', and 'hg pull' pipeline for getting new changes from svn. The first two create a converted mirror for hg, and the last creates my local branch for edits. Things like installers or integration with 3rd party apis. Fixes. We're going to build my branch of course.</li><li>Oh god. Now to configure the local repo url. '<a href="http://mercurial.selenic.com/wiki/hgserve">hg serve</a>' will suffice. Lots of options, but no way to make it run as a windows service? Web says <a href="http://bitbucket.org/tortoisehg/stable/issue/1245/configure-hg-serve-to-run-as-a-windows-service-from">bitbucket has a request for this</a>, so I sign up and +1 for it. I try the 'sc' command. I get the windows server 2003 toolkit. But, all of this doesn't help, so I fall back to scheduled task to fire up the repo with 'hg serve'. Waste of time. But there are the files.</li><li>Ok, so now I make a new pipleline, because that's the only way to get the web form to do data entry and modification. But, the free edition throws red up on the UI, because you can't have more than one pipeline group in the free version. And, embarrassingly, <a href="http://community.thoughtworks.com/posts/eabdb3df5c/comments">there's no way to delete the pipeline from the UI</a>. So, how am I supposed to get this working? What is the web UI for, if not to work with configuring the builds?!</li><li>While I'm in there, I find cruise has saved my email smtp password stored in plain text in the config file. That is not a real good idea. #insecure</li><li>Open up the .sln in express, and discover release doesn't build. How have the authors of nullDC made their dxsdk directory paths show up? If they are now properties of projects, should those changes not be checked in? Or does windows write the settings out to some local temp file, which isn't part of a project any more? Not having default include paths is going to bite.</li><li>It's not that bad to add dx to the projects. Some web searching reveals why the .res files don't compile; no MFC headers nor resource editor come with this free-as-in-beer compiler, and Platform SDK doesn't seem to be part of Windows7 SDK. I switch some defines. Now PuruPuru and nullExtDev don't compile, one is missing maybe libpcap, and one SDL? Good lord, there's no solution nor project for SDL bundled. Maybe I can make a makefile project.</li><li>Fetch winpcap source from the web and add to hg source repo because it comes from a zip, instead of a repo proper. Added the target directory 'make headers' batch file, and figured out how to use cruise to stash build artifacts. But, headers don't work without libs, and it's an old vc2005 project, so it needs converting to vc2010, needs some tweaks to .rc files and the finished .vcxproj, and needs a global .sln that builds the required files. Got this done for release target, sort of. TODO: check in changes, get SDL fetched, built.</li><li>Fixed winpcap vc2010 .sln and hunted for command line builder. MSBuild it is. You can dump out html and xml log files easily. That might be nice for a cruise tab representing the build log, instead of straight text. Build with options ok and add to pipeline. It would be great to have the msbuild as a builder in the dropdown, and reuse the CCNet xml plugin or a pre-existing xml report / logger, so a cool tab could be made with build report.</li><li>Quoting properties in cruise with spaces is non-obvious. and it's impossible to view the actual command passed in the exec without echoing the entire thing yourself. For example, you need to use xml-entities for quotes and ampersands. If you put the quotes in the wrong place, they get doubled up or duped. You can't '/property:foo="bar with spaces"', it gets mangled into '"/property:foo=""bar with spaces". Boo. Instead, we quote the entire arg "/property:foo=bar with spaces" and msbuild figures out what we want. It would be really nice if this echoed the command line in the log instead of printing the xml of the command, and echoed it every time it ran something.</li><li>Starting computer from sleep, cruise complained about server being over its remote license quota. Restarted the agent, and started working again. The server/client had different IP versions because a tornado reset of the network equipment.</li><li>Forgot to mention, set the headers and libs up as artifacts. Cruise stages can be configured to fetch them from other collected artifacts on the build server, if you use the fetchartifact block or use wget or curl with the correct urls. It would be great to get a remote agent going to get simul linux builds up, to make sure I can keep the project building across multiple architectures. Some cruise thread on support page about using port forwarding to make it appear you have a remote agent also locally. interesting, but confused. What, would you disable one and then the other. Even having a secondary win32 xp virtual machine to build or run simple tasks on would prove whether or not cruise was interesting.</li><li>With CCNet, the project was available for public use and contributing. Without cruise source and more features, fewer places to adopt the product. Work less likely to invest, since core source is not open.</li><li>Cruise has the bamboo-like feature for guessing when product would be built based on metrics of build stats. The progress bar with estimated time to completion was nice. Wonder if it works per-host-per-task. Curious if this is hudson or cruisecontrol java under the hood, since each have the feature.</li><li>Used the build properties url of latest cruise pipeline build, and artifacts url of latest build to view downloadable artifacts. Cute. Annoying, now that I've set up tasks that might work well across a farm, to not be able to make a farm to test development and features of cruise. Might still pull back the binaries into the build workspace to inspect. Wonder if there is a non-latest url that is the last successful binaries/headers from that stage.</li><li>Fix some missing include file dir for winpcap. Make it relative to the Include dir, since that's sort of the standard. Add additional header and lib dirs, and make dxsdk_dir paths instead of April dxsdk paths. Release now builds using cruise, except for purupuru, which needs SDL. Which I don't even have time to make a builder for tonight. Except, I think, I made a mistake; the .vcxproj now expects the files in the right place, but nothing makes them there. I've made a (bad) dependency for the project, since no lib/header are available unless you run the magic steps first (make header, and make modified winpcap vc10 sln. sounds lame, but additional users won't be using cruise, right?</li><li>Realize it's checking into mercurial that's tripping the build. It's on continual integration mode, right? you have to select manual staging if that's what you want (if you need human triggering or approval). Will have to figure that out another time.</li><li>Figuring out how to get the artifacts from one stage to another wasn't too bad, but picking the right dirname or filename was difficult at the root level, since cruise wanted to include the artifact root directory in its destination, and didn't offer the same wildcard expansion for fetching them as it did for selecting them. Also, setting an attribute to an existing stage or pipeline name is impossible without tabs in the browser, because there's not a UI-driven pickbutton, and while the edit text box is active, other properties of the page are inactive.</li><li>Now that everything but purupuru builds, time to investigate pulling SDL down. Yay! Its repo is already Hg. Boo - apparently we can only have one source control per cruise pipeline block, trying to figure out if it's per-pipeline, or per-task-chunk. Ok, no. It's like it will pull each one, as long as the destination is just one place. Not sure I like this, since I really want to pull all of SHARKBAIT, not some of this and some of that. Going to init a pull to SHARKBAIT of SDL 1.2, and if it's not awesome, try 1.3</li><li>The pull was no problem, but now the msvc 2010 building requires unzipping, possibly converting or upgrading the sln/vcproj, and then stashing the .dll and headers. todo another day when more stamina is available. Interesting that commercial SDL development is in Sam's future. Nice going, Sam! Must be nice being an (ex?) WoW developer, hopefully making bank! Long time since wizport.</li><li>Hey? Where are my emails from the build robot? My build is still busted, but there's no emails in my inbox. Do I have to subscribe to them or something? The 'test your smtp server' emails come in ok.</li><li>Yep, reading the docs, you have to enable authenticated users. There's no default admin email.</li><li>Add the extract zip with 7z to the stages. Still need to convert and build.</li><li>Email mercurial list, because the documented hgwebdir.cgi doesn't exist, and I want to publish both local repos over http using it. Its wiki seems to tout this as the right way to do things.</li><li>Reply from list comes back: hgweb.cgi had hgwebdir.cgi folded into it. It's not clear how to use this, and the comments in hgweb.cgi are broken: #Path to repo or hgweb config to serve (see 'hg help hgweb')'. This command doesn't exist, so I check help on 'hg help serve'. Perfect. Another arg to use, and I've got SDL and SHARKBAIT repos shown.</li><li>Hey, VSUpdate.exe can update the SDL visual studio 2008 project on the command line, and msbuild can bake it! YAY! I don't need to modify the repo, I just need to run commands on it. Sweet.</li><li>Except, why does the pulled version of SDL-1.2 auto expand the VisualC.zip for me into VisualC/ directory? I was trying to do that manually with 7z.exe. Delete that block, and setup include/ directory as artifact, Release/SDL.dll as artifact. Excellent. Maybe there's some kind of built in hook or functionality. I ignore this, and go with the flow.</li><li>The SDL cruise pipeline is building stage SDL-1.2 at random interval. I need SHARKBAIT/nullDC to build after it completes. I set the nullDC pipeline to depend on materials from SDL, as suggested from the help files, and add fetchartifact blocks to pull the SDL include and lib dirs. Epic fail: licensing restrictions of cruise free edition prevent the user from using multiple repo materials, and stages from cruise count as a repo. I could check all of SDL into SHARKBAIT for no good reason, to work around this. I email thoughtworks and ask for a 1 year license instead. The nullDC stage hangs, pending license restriction fix.</li></ol><div>Is it an improvement? Over the last version of cruise, sure. The documentation is there, and the product seems more intuitive than Bamboo.</div></div><div><br /></div><div>Is it something I can convince work to switch to? Unknown. The license is not open source, the price is not opaque (they create customized quotes, usually synonymous with robbing you blind). We've certainly rejected software on these criterion.</div><div><br /></div><div>But it has its charms, and it seems like it might scale well. With the restrictions, it's not really possible to evaluate past the good feel.</div><div><br /></div><div>Give it a try, and see if you don't agree!</div><div><br /></div><div>I'll follow up if I get a chance to test the other features.</div><div><br /></div><div>[2010/07/02 update]</div><div><br /></div><div>Fetched some new source with mercurial, and was confused about where my files went to after an 'hg pull'. Nothing but deleted files disappearwhen you 'p4 integrate', so this was a little spooky. And annoying to see cruise building away with invisible missing files. After 'hg merge', everything went back to normal. Would be good to block builds of incomplete integrations. I mean merges.</div><div><br /></div><div>So everything builds. No storage support for the build software configurations. Doesn't one typically want to check these in?</div><div><br /></div><div>Talked to Tim Mensch a little about git, which he says is goofy on windows when cygpath and path collide. I'm more of an msys/mingw guy, will have to investigate. He's using bzr for his own things, which jives with my anti-TLA rant. Not like I don't have half-a-dozen things on my local box under darcs, hg, bzr, and p4. This fragmentation of source control is both interesting and stupid. Not having access to source means I'm unlikely to extend cruise to support my distributed revision control flavor of the month.</div><div><br /></div><div>If there's a reasonable way to export my perforce tree of binary video game source files to mercurial or git, let's hear it - git fast-export of //data...#head sounds promising. I tried hg convert, but at the 500 changelist, it was completely painful and I killed it. We have so many changes and revisions, we'd need something fast to try any kind of switch.</div>]]>
    </content>
</entry>

<entry>
    <title>New year, new fax machine, new resolutions</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2010/01/new-year-new-fax-machine-new-r.html" />
    <id>tag:skull.piratehaven.org,2010:/~epu//1.154</id>

    <published>2010-01-01T16:35:44Z</published>
    <updated>2010-01-01T17:04:13Z</updated>

    <summary>Happy new year!The family and I attended an awesome roll-your-own sushi new year&apos;s party (thanks guys!), and we&apos;re recovering.We had a year-end flex spending crisis, we used our new all-in-one fax machine, and we have some goals for the new...</summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    <category term="resolutionsepsonworkforcefitnessspending" label="resolutions epson workforce fitness spending" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        <![CDATA[Happy new year!<br /><br />The family and I attended an awesome roll-your-own sushi new year's party (thanks guys!), and we're recovering.<br /><br />We had a year-end flex spending crisis, we used our new all-in-one fax machine, and we have some goals for the new year.<br />]]>
        <![CDATA[We didn't spend enough of our flex spending allowance. That whole system is a sham. Any tax savings is balanced by the 'use-it-or-lose-it' mentality. It's like gambling on who's getting sick, only if you don't bet under, you lose to the house. Hey! Federal government! Listen up. You can't keep our money to fund a system that doesn't work. Let's hope, in the new year, we manage to craft a new system where the money is set aside, is rolled over, or is completely covered by the government in the first place.<br /><br />We were able to put our new epson workforce 610 to good use over the break. Powered it up, hooked it up to the phone line, gave it some wireless settings, and off it goes! It's loud when it's feeding the paper, but otherwise silent. The only trick? Finding out its mac address so I could add it to the filters. Unlike every other networked device I've ever bought, there's no sticker with the address printed on it. To find it, print a network report page. Let's also hope, in the new year, that epson learns to add a mac address sticker to their networked devices.<br /><br />The fax machine allowed us to send in all our remaining medical receipts, so the annual end-of-year spending crunch won't be so tight this year. We made a series of year end purchases to spend through the surprisingly high remainder. Things like glasses, eligible over-the-counter items, and prescription refills.<br /><br />I would like to point out that CVS is great about procuring your family's
prescription purchase history. We got individual reports per family member from the pharmacy, and were able to verify that we had deducted all of our prescriptions. Dominicks' pharmacy would have required an in-person visit, but CVS had it prepared for us over the phone.<br />
 <br />Which brings me to the resolutions for the new year.<br /><br /><ol><li>keep medical spending records in convenient place and fax them in throughout the year. This will prevent the year end flex spending holocaust.<br /></li><li>eat reasonably. My doctor says that not only is my blood pressure high, but so is my bad cholesterol. I'm cutting out cheese and beer (yikes to both - I'm from Wisconsin originally!), and signed up for Weight Watchers online to track my eating habits and get some guidance.</li><li>exercise moderately. Starting with 30 minutes a day, as recommended by my doctor for the cholesterol. She says it should up the 'good' cholesterol level. There should be great gym membership deals in the new year, but I shouldn't need one.</li><li>get home on time. Then I get to see the kids and help out enough around the house.</li></ol>Sounds pretty average, right? But I've got reason to believe in success: I've already got Cpu helping cut out cheese and provide sparkling water (in place of beer), I've got great incentives to return home daily (thanks fam!), I've got a scale on route via ebates and buy.com. <br /><br />Let's do it!<br />]]>
    </content>
</entry>

<entry>
    <title>Thanksgiving for cygnative</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2009/12/thanksgiving-for-cygnative.html" />
    <id>tag:skull.piratehaven.org,2009:/~epu//1.153</id>

    <published>2009-12-03T04:23:40Z</published>
    <updated>2009-12-03T04:32:39Z</updated>

    <summary>Well, I was thankful for turkey and friends and family. And thanks go out to the author of cygnative! More than a year ago, I ranted about cygwin and plink not playing nicely. Just before the holiday, I was having...</summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    <category term="cygwin" label="cygwin" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="plink" label="plink" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rsync" label="rsync" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="software" label="software" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        <![CDATA[<p>Well, I was thankful for turkey and friends and family. And thanks go out to the author of <a href="http://diario.beerensalat.info/2009/03/12/rsync_does_work_with_plink_part_2.html">cygnative</a>!</p>
<p>More than a year ago, I ranted about <a href="http://skull.piratehaven.org/~epu/2008/04/no-plink-rsync-for-you.html">cygwin and plink not playing nicely</a>. Just before the holiday, I was having trouble getting cwRsync and openssh to transfer files reliably. I vaguely remembered trying plink before, and with a little research found his awesome (and terse!) utility. Working fine.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Erick Wujcik is Still Dead</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2009/08/erick-wujick-is-dead.html" />
    <id>tag:skull.piratehaven.org,2009:/~epu//1.100</id>

    <published>2009-08-10T11:51:07Z</published>
    <updated>2009-08-10T11:52:24Z</updated>

    <summary>I had a sad day at work, more than a year ago. I learned, from a Michigan-based interview candidate, that Erick Wujcik had died....</summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    <category term="adrpg" label="ADRPG" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="games" label="games" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        <![CDATA[I had a sad day at work, more than a year ago. I learned, from a Michigan-based interview candidate, that <a href="http://en.wikipedia.org/wiki/Erick_Wujcik">Erick Wujcik</a> had died.<br />]]>
        <![CDATA[It was a strange interview lunch to begin with: the candidate was interviewing for a design position, and I'm not normally on the loop with them. I had little to talk about, but eventually, we started talking about user contributed content.<br /><br />It was then that I started blabbing about the Amber Diceless RPG, and how ahead of the curve Wujcik had been. Users contributing to their characters, campaign details to the GM, and being given their own free time to roleplay with other characters or fill in backstory, really took the GM off the hook for long periods of time. Everyone became invested, and the GM focused on the work of coordinating play, not coming up with every detail or moment.<br /><br />Our candidate revealed that Wujcik had been employed in Shanghai (hey, I used to work in China) and that he had spent much of the last few years in San Francisco (hey, I just moved from SOMA!). I really wanted to identify with Erick (hey, we have similar names!).<br /><br />This guy was a huge impact on me: TMNT and Rifts and the other Palladium RPG books were well thumbed and soda-stained. The GenCon ADRPG session before the book release. The funny black leather cap.<br /><br />A belated goodbye Mr. Wujcik; thanks for the games, the freedom from dice, and a host of good ideas.<br />]]>
    </content>
</entry>

<entry>
    <title>Daggerfall</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2009/07/daggerfall.html" />
    <id>tag:skull.piratehaven.org,2009:/~epu//1.152</id>

    <published>2009-07-14T01:51:22Z</published>
    <updated>2009-07-14T01:57:40Z</updated>

    <summary>The shuttle XPC runs too hot for a video card, so I&apos;ve been retro gaming the last year. Daggerfall was released last week for free, so I spent a little while getting it running....</summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    <category term="daggerfall" label="daggerfall" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="games" label="games" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="software" label="software" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        The shuttle XPC runs too hot for a video card, so I&apos;ve been retro gaming the last year. Daggerfall was released last week for free, so I spent a little while getting it running. 
        <![CDATA[<ol><li>Got dosbox and installed, following the instructions.</li><li>Keymapping didn't work (mapper.txt came out with some unbound keys).</li><li>Snagged the source for DOSBox and its prereqs and built it with mingw. Used unicode support with pdcurses.</li><li>Bug seems gone, rebound keys.</li><li>Made new shortcut to dosbox that runs custom config with batch commands to run the game.</li></ol>Getting ready to play tonight while mommy and baby are asleep! More on the baby in a bit.<br />]]>
    </content>
</entry>

<entry>
    <title>SET</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2009/05/set.html" />
    <id>tag:skull.piratehaven.org,2009:/~epu//1.151</id>

    <published>2009-05-18T05:49:02Z</published>
    <updated>2009-05-18T05:54:27Z</updated>

    <summary>With the dawning of the new year, I did my best to wrangle once-a-week board game lunches at work. I missed all of April, but May has been SET...</summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    <category term="games" label="games" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        <![CDATA[With the dawning of the new year, I did my best to wrangle once-a-week board game lunches at work. I missed all of April, but May has been <a href="http://www.boardgamegeek.com/boardgame/1198">SET</a>]]>
        <![CDATA[Set is fun, in a nerdy Mensa sort of way. As the owner of the game put it, it's definitely a party-killing game. Everyone gets super quiet as they scan the cards for potential sets.<br /><br />The play is simple, the competition is fun, and you can get through the deck several times in an hour. Also, any number of people watching can compete.<br /><br />This would make a pretty good video game for one of them bar-top units; we got a bunch of pickup players as people went past and asked what we were playing, and the pickup players played with us the following weeks.<br />]]>
    </content>
</entry>

<entry>
    <title>Do it: start using SHA256 gnupg signatures</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2009/05/do-it-start-using-sha256-gnupg.html" />
    <id>tag:skull.piratehaven.org,2009:/~epu//1.150</id>

    <published>2009-05-18T05:36:15Z</published>
    <updated>2009-05-18T05:47:49Z</updated>

    <summary>Following some crypto conference news and common sense (even the US government is halting use of SHA1 signatures), this debian admin put together a good howto on upgrading and configuring your keys....</summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    <category term="privacy" label="privacy" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="software" label="software" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        <![CDATA[Following some crypto conference news and common sense (even the US government is halting use of SHA1 signatures), this debian admin put together a good howto on <a href="http://www.debian-administration.org/users/dkg/weblog/48">upgrading and configuring your keys</a>.<br />]]>
        <![CDATA[With very little deviation from the howto, I was able to get this going during some spare time today.<br /><br />My windows experience was a little different though. The gpg.conf lives in win32's "Application Data\gnupg" folder, so my prefs didn't stick initially. And I had some trouble getting enigmail to prefer the new key and digest format, so I forced the extra options "-u KEYID --digest-algo SHA256".<br />]]>
    </content>
</entry>

<entry>
    <title>BANG!</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2009/03/bang.html" />
    <id>tag:skull.piratehaven.org,2009:/~epu//1.149</id>

    <published>2009-03-14T01:55:15Z</published>
    <updated>2009-03-14T02:00:12Z</updated>

    <summary>With the dawning of the new year, I did my best to wrangle once-a-week board game lunches at work. March has been BANG!...</summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    <category term="cards" label="cards" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="games" label="games" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        <![CDATA[With the dawning of the new year, I did my best to wrangle once-a-week board game lunches at work. March has been <a href="http://www.boardgamegeek.com/boardgame/3955">BANG!</a> ]]>
        <![CDATA[This game started out a little slow as we were learning the rules, but after only the second week, we can already play two rounds during our one hour lunch break. It seems fun so far with five-to-seven players.<br /><br />There's a nice balance of being all sneaky and table talking, and the bilingual cards lend a nice frontier old-west atmosphere.<br /><br />The unfortunate side of things is that some times, a new player struggles to learn all the rules, and gets blown up by dynamite or put in prison, and never gets a turn.<br />]]>
    </content>
</entry>

<entry>
    <title>DOMINION</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2009/03/dominion.html" />
    <id>tag:skull.piratehaven.org,2009:/~epu//1.148</id>

    <published>2009-03-02T05:28:53Z</published>
    <updated>2009-03-02T05:41:03Z</updated>

    <summary>With the dawning of the new year, I did my best to wrangle once-a-week board game lunches at work. The first month was Cthulu Munchkin once a week, and February it was DOMINION....</summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    <category term="cards" label="cards" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="games" label="games" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        <![CDATA[With the dawning of the new year, I did my best to wrangle once-a-week board game lunches at work. The first month was <a href="http://www.boardgamegeek.com/boardgame/25071">Cthulu Munchkin</a> once a week, and February it was <a href="http://www.boardgamegeek.com/boardgame/36218">DOMINION</a>.<br /> ]]>
        <![CDATA[It turns out that with 4-6 players and a bag of Cheetos, Munchkin is
easy enough to play, but takes more than 1 hour of lunch break
typically. This is after 4 weeks of play, so we mostly have the rules
down. The cultist rules actually took awhile to sink in: you don't
always become a cultist - and when you stop being a cultist, you have
to preserve the special stack of cultist cards. In the end, we ignored
the rules and just became cultists whenever we wanted. <br /><br />Of
note: Cthulu was nullified each time he came up, even when we switched
to Star Munchkin. And jokes, card reading, tended to stretch out the
time.<br /><br />DOMINION worked out much better: only the first game had
to go over 1 hour, and the following games had a newbie each week, and
were as long or as short as we wanted to play. Dominion turns out to be
incredibly fun and rewarding, and very easy to pick up. Not
particularly easy to master combos of cards, but fun getting there. <br /><br />I
wouldn't hesitate to recommend either of these games, with DOMINION
winning by an edge: it has a very
Cosmic-Encounter-meets-Magic-the-Gathering vibe, where each game
differs by which cards are in use, and how they are played, without the
complications of either (most rules available on the cards themselves).]]>
    </content>
</entry>

<entry>
    <title>Feedburner trimmed back?</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2009/01/feedburner-trimmed-back.html" />
    <id>tag:skull.piratehaven.org,2009:/~epu//1.147</id>

    <published>2009-01-28T03:20:41Z</published>
    <updated>2009-01-28T03:36:05Z</updated>

    <summary>Feedburner, which I use to manage and follow my non-existant readership, has recently prompted me to convert to feedburner.google.com. Apparently though, I don&apos;t get to keep my per-page stats. And other users have been reporting their own issues.So where I...</summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    <category term="blog" label="blog" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="feedburner" label="feedburner" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="google" label="google" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        <![CDATA[Feedburner, which I use to manage and follow my non-existant readership, has recently prompted me to convert to feedburner.google.com. Apparently though, I don't get to keep my per-page stats. And other users have been <a href="http://www.nevillehobson.com/2009/01/23/is-there-an-alternative-to-feedburner/">reporting their own issues</a>.<br /><br />So where I used to be able to use Feedburner to figure out what pages were getting hits, I am unable to see that kind of stat on the new feedburner.google.com.<br /><br />Do I really need to run multiple stat engines, google peeps? What gives? For the moment, I'll have to look into my own aggregating and so-on. It could be that something django/rails-y could get whipped together to aggregate my own feeds and stat count. And there's always StatCounter.<br /> ]]>
        
    </content>
</entry>

<entry>
    <title>Peace, man.</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2009/01/peace-man.html" />
    <id>tag:skull.piratehaven.org,2009:/~epu//1.145</id>

    <published>2009-01-09T02:48:37Z</published>
    <updated>2009-01-13T06:00:35Z</updated>

    <summary>What, you ask, is the best Christmas / anniversary gift combo gift ever? Babysitting our girls for a week-long vacation in Mexico (pics)!Since it is snowing outside and I am trying to finish working from home and avoid shoveling, let...</summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    <category term="diary" label="diary" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="lapaz" label="la paz" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="travel" label="travel" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        <![CDATA[What, you ask, is the best Christmas / anniversary gift combo gift
ever? Babysitting our girls for a week-long <a href="http://www.flickr.com/photos/epu/sets/72157612460099163/">vacation in Mexico (pics)</a>!<br /><br />Since it is <a href="http://www.chicagobreakingnews.com/2009/01/possible-blizzard-bitter-cold-in-forecast.html">snowing outside</a> and I am trying to finish working from home and avoid shoveling, let me instead tell you about the first evening Cpu and I spent in Mexico, La Paz, Baja California Sur! ]]>
        <![CDATA[<font style="font-size: 1.25em;">Planning? What planning?</font><b><br /></b><font style="font-size: 1em;">Cpu: Think our parents would watch the girls so we can go on vacation before the baby comes?<br />Epu: Call over there and see. You know what I've always wanted to do since we lived in San Francisco? Go to <a href="http://en.wikipedia.org/wiki/Baja_California_Sur">Baja</a> and get sick on <a href="http://en.wikipedia.org/wiki/Taco#Types">fish tacos</a>.<br />Cpu: Hey, we have <a href="http://en.wikipedia.org/wiki/AAdvantage#AAdvantage">frequent flier miles</a> enough to get a last-minute trip <a href="http://www.loscabosguide.com/airlines.htm">direct to Cabo</a>.<br />Epu: Do it. But we probably want to find someplace further away.<br />Cpu: There's this city, <a href="http://www.bajatravel.com/guidebook/lapaz/">La Paz</a>, a short drive away. Lots of marine life. Snorkeling. Kayaking.<br />Epu: I'm not ever <a href="http://www.google.com/search?q=mexico+driving+horror+story&amp;btnG=Search">driving a car in Mexico</a> again.<br />Cpu: We can take a <a href="http://answers.yahoo.com/question/index?qid=20061217173148AAoJrX0">3-hour bus</a> from Cabo.<br />Epu: Sold! Where should we stay?<br />Cpu: I have some e-mails out. Hey, the German dude e-mailed me back already!<br />Epu: Great!<br />Cpu: Oh-oh, these reviews about him make him sound crazy.<br /></font>Epu: Skip that place.<br />Cpu: Ok, here we go. Kayak trips arranged from a <a href="http://posadalunasol.com/">clean, nice hotel</a>. 65$ bucks a night.<br />Epu: We love kayaking! Where's the travel scrabble?<br /><br /><font style="font-size: 1.25em;">Show time.<br /><font style="font-size: 0.8em;">Cpu and I arranged a hand-off of the kids and packed our things. Everything but my <a href="http://zeta.zappos.com/search?department=&amp;term=birkenstocks&amp;=">Birkenstocks</a>. I have wide feet, so this was to prove my undoing.</font></font> It all fit into our carry-ons. I strongly felt the absense of a <a href="http://www.lonelyplanet.com/">Lonely Planet guide book</a>, which we probably had on all our other trips. I actually have a strategy for not carrying the damn things.<br /><br />Irony strikes: our stupid iPod docking alarm clock is now incapable of setting its alarm time, just like the last iPod docking alarm clock. I set the cel phone to wake us in time for a cab. I still can't find my Birks.<br /><br />Uneventful cab drive. We get dropped off at Internation terminal. After a quick scan of all the lines in international, we note that our airline is not represented. This actually happens a lot, Mexico flights out of domestic boarding area. Cpu tries to call the cab company to get the driver back to take us to our actual terminal. I note the tram on the floor below us, and manage to argue a cranky-morning Cpu into riding the inter-terminal tram just before its departure. Literally, its door closes on my arm. The tram flies to our terminal in under 2 minutes.<br /><br />We are befuddled by our airline's handling of our flight. None of the self-checkin kiosks will allow us to check into an international flight. After 15 minutes, we find a line where we can enter our information in and check in, and the kiosk prompts us to wait for someone to look over our travel documents (passports). This mysterios someone never arrives, and eventually the kiosk goes blank and resets itself. WTF?!<br /><br />Eventually, we get it out of the local airline rep that we should move over to the First Class line, which he asserts is also configured to handle international passengers. No kidding? They should put up a sign for that. Unfortunately, there is a long line. Cpu complains to a desk person, who has already had enough before we got there. We end up moving through the line anyways. We get a great clerk who gets us booked just fine. Move through the security line, which is much shorter over here by First Class. Thank god for the early arrival at the airport.<br /><br />Cpu dumps me off at a bench at our gate with the luggage. I am no good within airports, where I specialize in preparation to ignore the entire trip. She comes back with sandwiches, coffee, a <a href="http://www.powells.com/biblio/1-9781740597449-4">Lonely Planet: Mexico guide book</a>, and noise-cancelling headphones complete with airplane adapters. Sweet. We mock the 'COBY' brand headphones, logotype all-caps and cast in the same font as SONY. Someone is bringing his dog to Cabo with him. Nice. We talk about going to La Paz, which he says we will love.<br /><br />Once on the plane, the carry-on luggage fits without any problem. We'll find out later that apparently international flights will allow you to check 2 bags per person for free (whereas all the signs are telling us that we need to pay per-bag). Cpu fits the battery into her headphones. We joke about needing the noise cancelling, because we are right next to the engines in the tail of the plane. It turns out, there are no in-flight movie players built into this plane. And no head phone jacks either. We are seated together though, unlike the couple split behind and next to us. Nice. <br /><br />I tear into my on-flight book <a href="http://www.powells.com/biblio/1-9781594201721-0"><i>Remix</i></a>, and Cpu starts to watch the climatic ending of her thriller movie <i><a href="http://www.imdb.com/title/tt0309698/">Identity</a></i>. Lessig's book turns out to be an extremely well-thought-out (but sometimes mis-argued) look at what's wrong with American Copyright, and what lawyers and politicians can do to fix it. Someone should send Obama administration a copy, or better yet, send Lessig to make his points in brief. I ignore the rest of the flight, with the exception of filling out our emigration cards. We land, our approach just above a highway, as we hit some kind of mesa and the flaps kick in and roar. We deplane, down the ramp, outside, in full 78 degrees daylight. No snow.<br /><br />It turns out, if you want to pee in the line before you are officially in Mexico, you are forced to the end of the line. We witness such a pee event, and decide against it ourselves. Our agent used to live in Milwaukee. It must be a sign. Our bags X-rayed again, Cpu makes a break for the potty. <br /><br />We make it to the shuttle vans, paying in dollars. Take us to the bus station please! And they do. I note the van driver's pictures of his kids. Our kids would love this. Where are our kids?! I sorely feel the absence of any kind of foreign language training that would equip me for reading, listing to, or speaking Spanish. I took the communist combo of German, Russian, and Chinese. At least I speak travel.<br /><br /><font style="font-size: 1.25em;">El Aguila</font><br />Cpu buys the bus tickets to La Paz in dollars. We are getting between 10 and 12 pesos to the dollar. I park myself with the stuff again, while she seeks food and water for the trip. She returns with water and goes out again for food. The outbound bus arrives, but Cpu is nowhere to be found. Long minutes go by, but we haven't boarded yet anyways. She shows up, and we all board the coach bus.<br /><br />We find some seats, move the window shades aside, and tear into giant bagel ham-and-cheese sandwiches. With freshly fried thick-cut potato chips. Apparently, our options were between these expensive for-foreigners-sandwiches or gut-wrenching buffet food packed into a go box. I think she chose well, but lament the lack of actual Mexican food. <br /><br />I begin to relax, and take in the magnificent big-box-ification of a once-small resort town. At first it looks only like local Mexican chains, but it doens't take long before the string of American stores kick in. The last day of our trip in San Jose del Cabo, an old-timer expat tells us that 15 years ago, there were only 5 flights a week into the airport (one a business day). Today, he claims, there are more than 100 a day. <br /><br />Once the bus makes it to the coast and I can see the ocean, I forget all about the chain stores. There are huge manicured golf courses just out of view, and cool grey skies above grey ocean. On the other side, the brown October hills of Sunnyvale have materialized here in Mexico. Only they are full of cacti and rocks.<br /><br />In Cabo San Lucas, I learn through my listening and pointing skills, that our bus tickets have assigned seats. The lady demurs and takes another seat. A handicapped woman with crutches takes our assigned seats. We feel justified.<br /><br />The bus gets moving, and the sun gets low. An amazing blare of a movie wakes me from my stupor. <a href="http://en.wikipedia.org/wiki/An_American_Tail:_Fievel_Goes_West">Fievel Goes West</a>. By the end of the movie, I get it. Fievel lives in the desert, has friends who are cowboys, and he wants water. It's a story that's been appropriated by the residents. Now I'm thirsty. Luckily, by design the bus stops here and there to pick up passengers and let passengers get refreshments.<br /><br />It's pitch black outside by the time we roll into the outskirts of La Paz. I get ancy anticipating the transfer from Bus to who-knows-what. We pass the giant big-box-store district and movie megaplex. We arrive at the bus terminal; it's painted a cad yellow heavy on the titanium white, no glaze. Taxi to the hotel, 50 pesos. It's probably walkable, but who wants to walk with their suitcases and bags in the dark through a strange town?<br /><br />We pull into an alley, and I am like, what the hell? Cpu has read up, and knows that the hotel is tucked away the block, only accessible by a pair of alleys. Our night shift hotel guy -- Hugo -- checks us in, and we grab some water. The room is clean. We unpack, and hit the sack.<br />]]>
    </content>
</entry>

</feed>

