<?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>2013-01-28T04:44:37Z</updated>
    <subtitle>a little pu for you</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.23-en</generator>

<entry>
    <title>Gearing up for development: jira/greenhopper</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2013/01/gearing-up-for-development-jir.html" />
    <id>tag:skull.piratehaven.org,2013:/~epu//1.162</id>

    <published>2013-01-26T17:41:16Z</published>
    <updated>2013-01-28T04:44:37Z</updated>

    <summary>Virtual machine snapshotted; time to download and install jira, with fisheye and greenhopper. From the license page, there&apos;s a download link. You have to dig around separately to find the instructions for installation (it&apos;s not an easy link from the...</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[<p>Virtual machine snapshotted; time to download and install jira, with fisheye and greenhopper. </p><p>From the license page, there's a download link. You have to dig around separately to find the instructions for installation (it's not an easy link from the download). There's also not much help here with regards to selecting a version, so at this point, a little manual reading is required.</p><p>Since it's going on a linux VM where I just patiently installed oracle java, I'm going to use the linux tarball instead of the binary. Otherwise, the docs say that jira is going to install yet another jvm. Boo. Wget and tar xfz that beast. Moved to /home/jira/version-number, made /home/jira/data and chmod -R the data folder to www-data. The docs say the app shouldn't need www-data permissions (it never writes it).</p><p>Another instance of software that doesn't have an init.d script setup for it. Luckily we just did something like that, and can crib a new one. Just set the JIRA_HOME there, and replace the start/stop script line with the jira one from <a href="https://confluence.atlassian.com/display/JIRA052/Installing+JIRA+from+an+Archive+File+on+Windows%2C+Linux+or+Solaris">the install guide</a>, and re-initialize the startup sequence.<br /></p><p>Rats. When I start up the daemon, it can't write to 3 directories inside the application directory. Sure enough, the instructions say to chown the subdirectories for temp, work, and log to the jira user. Surely it would be better for them to move this stuff out into JIRA_HOME so that the permisisons for changed data all live in one place? Whatever. Fixed.</p><p>After starting the daemon up, it appears you can at least move temp by setting CATALINA_TMPDIR to somewhere elsse. But that means work and log are still screwed.</p><p>For kicks, I tail the catalina.out log. It looks like there's another secret directory, conf, that it expects to create. I'm just going to change the group for the whole directory to www-data and write it off.</p><p>Restart again, and it looks like the jenkins instance of tomcat is hogging port 8080. Grumble. The conf directory that jira couldn't make before now has a server.xml in it. That has the port numbers in it. Modify to recommended ones in the manual and reboot. Looks ok. Web configuration now possible</p><p>Huh. The first option, selecting a database type, defaults to 'internal' which they say is never for production use. When you change the radio button to external and select 'mysql', you are warned that you need a jira mysql driver. Am I supposed to make the tables myself ahead of time? Yes.</p><p>Time to apt-get install mysql-server-5.5, but there are broken packages. The update/upgrade dance begins! The best I can do with squeeze it looks like, is eat mysql 5.1 components. After installing mysql 5.1, added phpmyadmin. I had to symlink its apache conf as <a href="http://wiki.phpmyadmin.net/pma/Debian">described here.</a></p><p>The next evening we finally get around to creating Jira tables with phpmyadmin. Then there's the download of the mysql Connector-J java connector. With this in place, we should be able to complete the setup wizard. Restart the jira service, and browse to the web page. Set options to use mysql user and db, and a test of the connection goes ok. SMTP configured ok. Handy warning shows me I need to reconfigure tzdata package so I can fix my timezone. Done. I skip the wizard step to make a project so I can snapshot the machine.</p><p>Sheesh. That's like a whole 'nuther evening configuring and downloading and stuff.<br /></p>]]>
        
    </content>
</entry>

<entry>
    <title>Gearing up for development.</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2013/01/gearing-up-for-development.html" />
    <id>tag:skull.piratehaven.org,2013:/~epu//1.161</id>

    <published>2013-01-25T04:49:37Z</published>
    <updated>2013-01-25T06:35:45Z</updated>

    <summary><![CDATA[Nutmeg needs a game. She's got a plan, but I need some tools and training. Tools, I'm down with. Here's the proposed dev stack.Perforce for source control. Already installed locally, I did a backup and updated to 2012.2 new hotness.&nbsp;I'm...]]></summary>
    <author>
        <name>Epu</name>
        <uri>http://skull.piratehaven.org/~epu</uri>
    </author>
    
    <category term="jiragreenhopperatlassianperforceteamcity" label="jira greenhopper atlassian perforce teamcity" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        <![CDATA[<p>Nutmeg needs a game. She's got a plan, but I need some tools and training. Tools, I'm down with. Here's the proposed dev stack.</p><ul><li>Perforce for source control. Already installed locally, I did a backup and updated to 2012.2 new hotness.&nbsp;I'm stoked to check out the git fusion integration, and/or git-p4. Hopefully I don't need to switch to a mac environment and have this working. If I do, I'm going to have to move everything to a virtual machine.</li><li>Jira/Greenhopper for issue tracking and sprint burndown. It turns out, you can get a 10 seat license for a self install for 10 bucks, with 10 per add-on. So, 20 bucks. I need to buy and install. I got a debian squeeze VM I'm going to throw this onto.</li><li>TeamCity for builds. I've been meaning to check it out after good words from David Nelsen. I use Jenkins at work, this should be an easy way to do a comparison. I'll put this up on the VM, take a snapshot, and I have a ready-to-customize helper box to recycle.</li></ul><p>From an organization standpoint, it should be easier to install all this crap in windows, but I'm both a glutton for punishment, and uber organized. And sometimes, the best features work only in linux.</p><p>Downloaded the cheap license (free as in beer) of TeamCity with wget. Brought up the manual. Requires/recommends Oracle java. </p><p>Crap. Debian starts with open java. Google links suggested using some random dude's launchpad bootstrap. No thanks. I don't trust it and don't have time to read it. I went with the next least crazy suggestion from the googles, <a href="https://www.linuxquestions.org/questions/blog/craigevil-176422/howto-install-oracle-java-on-debian-34567/">generating a java .deb from the binary package</a>. Then select it as the preferred java.</p><p>Next we find someone who's set up teamcity on a debian distro before. <a href="http://jorudolph.wordpress.com/2011/06/18/teamcity-server-on-ubuntu/">Like this guy</a>. I used this a crib sheet, putting in the directory I wanted, and adding the<a href="http://confluence.jetbrains.net/display/TCD7/Installing+and+Configuring+the+TeamCity+Server#InstallingandConfiguringtheTeamCityServer-InstallingTeamCitybundledwithTomcatservletcontainer(Linux%2CMacOSX%2CWindows)"> recommended headless java startup option</a> to another exported variable, and left myself a link to the original article in a comment. (memo to self: make a git repo for config changes).<br /></p><p>Crap. There's a warning in the step that declares that the init.d script is missing LSB tags and overrides. What the hell are those? <a href="http://forums.debian.net/viewtopic.php?f=5&amp;t=77993">Huh</a>. Ok. Add some template crap to the top and make it teamcity-specific. No more warning.</p><p>Crap. Now, where do I find the server? I've forgotten how it does local DNS. Oh yeah. It's on servername.local, the mDNS/bonjour protocol. Ok. Port discovered. Yay! Server is up, but freshly installed / empty. There's some kind of wizard page. Checking the manual. Should in theory be safe to step through? TeamCity docs are about java memory settings, nothing describes the setup wizard content. I do see that my x64 vm is going to almost double its teamcity memory usage. Thanks for writing it in java, assholes.<br /></p><p>I press the OK button, and teamcity sits there, throbbing. But Dave says it's pretty good, so we're going to hold out. Memo to self: snapshot the machine once the bare install is up.</p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="teamcity_throbber.png" src="http://skull.piratehaven.org/~epu/teamcity_throbber.png" width="596" height="173" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></span><br /><p>Time to buy jira. Ok, throw in fisheye and greenhopper. Apparently I can't buy it without coming up with an organization name. It would be great if I had an LLC, but I don't yet. Once I get Jira installed, I'll make a jira for it. Thirty bucks is pretty reasonable for an entire stack of code/task management software, for a company of any size. For 70+ monthly, I could have it hosted and skip the self-setup/maintenance.</p><p>Jira would be bought, 10 minutes later, but they've declined my credit card. WAT? Teamcity server is still chugging. Maybe it needs more ram. I will have to reconfigure the VM if that's true. (funny story, I tried to buy this last night, but clicking on buy took me to an unavailable page. Apparently the shopping cart is back.)</p><p>I go get another credit card, chat with my wife, pour some scotch, and come back to the computer. Apparently the other card is fine. Order processed. Still no team city love yet. Maybe I should spawn a new window. Oh, great. The new window pops up a license agreement. Has it been waiting all this time? Ok. Well, license accepted. Off I go. Admin user created. Looks like it's ready to configure. Time to snapshot this beast and install jira.</p><p>Apparently, atlassian made me an account and forwarded me some login details. Sweet. That's enough for this 1.5 hour session of 'setup-my-software'.</p>]]>
        
    </content>
</entry>

<entry>
    <title>game developing with minors</title>
    <link rel="alternate" type="text/html" href="http://skull.piratehaven.org/~epu/2012/12/game-developing-with-minors.html" />
    <id>tag:skull.piratehaven.org,2012:/~epu//1.160</id>

    <published>2012-12-08T23:47:27Z</published>
    <updated>2012-12-08T23:53:17Z</updated>

    <summary>Nutmeg and I jammed out the idea for a game the other weekend.Today, we spent time watching giant squid videos on you tube. We learned about the physiology of the giant squid, and downloaded Unity 3d Free edition. Nutmeg also...</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" />
    <category term="neptune" label="neptune" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="nutmeg" label="nutmeg" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://skull.piratehaven.org/~epu/">
        <![CDATA[Nutmeg and I jammed out the idea for a game the other weekend.<div><br /></div><div>Today, we spent time watching giant squid videos on you tube. We learned about the physiology of the giant squid, and downloaded Unity 3d Free edition. Nutmeg also let me know that we're going to start with a fixed camera for side scrolling action.</div><div><br /></div><div>Working name for this venture? Neptune: the Kraken. You'll control the Kraken on screen (which, makes you Neptune). You'll use the Kraken to smash boats, collect gold and gems and treasure chests, and you'll be running away from scientists. You'll have to wiggle your way through giant kelp. And like Temple Run or Run Kitty Run (or R-Type), you will keep scrolling.</div>]]>
        
    </content>
</entry>

<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>

</feed>
