<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3084962857261588123</id><updated>2012-01-30T06:11:54.589-06:00</updated><category term='business'/><category term='whinge'/><category term='virtualization stuff'/><category term='books'/><category term='weight loss'/><category term='haha'/><category term='game business'/><category term='games'/><category term='xna'/><category term='hacking'/><category term='wow'/><category term='geek'/><category term='woodwork'/><category term='nerd'/><category term='polecats'/><category term='misc'/><category term='playing'/><category term='creative stuff'/><category term='SHARK'/><category term='nerdrage'/><category term='delusional'/><category term='python'/><category term='rss'/><category term='software engineering'/><category term='forest for the trees'/><category term='music videos'/><category term='game dev'/><category term='woodwork\'/><category term='kudos'/><category term='ham'/><category term='app engine'/><category term='multitouch'/><category term='science'/><category term='google'/><title type='text'>Spoonerisms</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default?start-index=101&amp;max-results=100'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>170</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-1649113507938171916</id><published>2012-01-30T05:58:00.000-06:00</published><updated>2012-01-30T05:58:26.368-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>if it ain't documented, it ain't permanent</title><content type='html'>&lt;div&gt;On the matter of README files... (caution: it's a long one)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Back around the turn of the century during the dotcom bubble, I found myself working for a certain hosting company. &amp;nbsp;I started work on a gloomy day in mid December, 1999 and from the moment I showed up I had no idea just what exactly I was supposed to be doing there. &amp;nbsp;My previous job had been building a Linux distribution, so I spent a week trying to scramble to find a niche I could fill with my skill of wedging device drivers into an installation disk and rebuilding RPMs. &amp;nbsp;After my first week, I was thinking to myself "Oh God... they're going to fire me because I can't do anything useful!"&lt;br /&gt;&lt;br /&gt;As luck would have it, one of the founders handed me a floppy disk that they had tried to use to do automated installs for RedHat 5.2 systems, and asked me to try and set something up for the upcoming 6.1 release. &amp;nbsp;I'd gotten that done, made up some new floppies and handed a stack of them out to our datacenter crew to use to build new servers. &amp;nbsp;Then two important things happened: &amp;nbsp;1) &amp;nbsp;the hosting company decided to buy a new SCSI RAID controller that the stock RedHat installer didn't support, and 2) I overheard some of support staff complaining about how they were having to recompile PHP and kernels to enable some high inode deal that some e commerce package was recommending. &amp;nbsp;Pretty soon I had rebuilt the kernel RPMs to add in support for a new driver, and rebuilt PHP so that our servers were optimized out of the box. &amp;nbsp;Then I wedged them into a new install pool I'd setup on an NFS server. &amp;nbsp; While I was at it, I fixed a bug (actually a misconfig) in the RH installer that brought the install time down from around 20 mins to 7 mins.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As time went on, I started creating more and more custom RPMs based on customer demand that filtered in to me from the support folks, and I added in support for more and more funky hardware. &amp;nbsp;I eventually heard about PXE booting from a new guy who was all hardcore about server hardware, and moved the system over &amp;nbsp;to it so I wouldn't have to worry about someone accidentally using an old floppy image. &amp;nbsp;Pretty soon, all our datacenter folks needed to do was plug a server into the network, boot it up, and they would be given a prompt for a customer identification number. &amp;nbsp;After adding in some mojo to pull down configuration information from our customer information system, I was able to create an install system that could handle any combination of RedHat release versions and optional 3rd party packages (such as our custom tape backup scripts, shopping carts, control panels, etc) based solely on the customer identification number.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The benefit of the system was pretty huge. &amp;nbsp;We were able to insert security and driver updates into our provisioning process instantly. &amp;nbsp;All of our installs were centralized on a single server, so migrating the system to new datacenters on remote continents became a breeze. &amp;nbsp;Integrating 3rd party software at install time became simple. &amp;nbsp;Our techs could assemble an enterprise class server in under 20 minutes... combined with a sub 10 minute install, we gained the option of being able to provision a server in under 30 minutes. &amp;nbsp; Servers were going online on an unprotected public network with the most recent security patches and we had a searchable record of the software that was installed so that when a vulnerability was discovered we knew exactly who was at risk.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We then started trying to expand the system. &amp;nbsp;I added in support for FreeBSD, and while we weren't quite able to add in support for Windows 2K, we were able to use PXE to boot strap the install image and have the installer write important versioning information back to the install server.&lt;br /&gt;&lt;br /&gt;While setting up and maintaining an automated provisioning system wasn't particularly difficult or challenging, it did become tedious after 4 years. &amp;nbsp;Each new operating system we added just added in another permutation into possible configurations and drove up complexity. &amp;nbsp;It quickly got to a point where I was overwhelmed by having to backport patches and rebuild RPMs: a single kernel vulnerability meant having to rebuild at least 2 (usually 3) kernel packages, and each those meant having to patch in specific driver versions for hardware we were using. &amp;nbsp;We grew 3 more datacenters, which meant I now had 3 sets of hardware distributors to cover. &amp;nbsp;It got kind of rough, and I started getting crabby as I had to spend more and more time nursing the system and couldn't spend time talking to the support folks who were on the front lines or the datacenter folks whose lives I was supposed to be making easier. &amp;nbsp;I started whining about getting some help and after a brief 18 months, reinforcements finally arrived.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The upside is that during those 18 months, I was able to create some very simple documentation on how the whole install system worked. &amp;nbsp;The original intent for documenting it was to transfer knowledge to other people in case something happened to me: &amp;nbsp;Here's what The Machine does, why I built it, and what I hope to do with it in the future. &amp;nbsp;In the fine tradition of Dr. Moreau and Dr. Frankenstein, I had left blueprints for my monster along with a chronicle of my madness. &amp;nbsp;It wasn't exactly complete, but it was sufficient to train my first replacement well enough that he was able to jump ship and pick up a gig at RedHat after a few months. &amp;nbsp;My second replacement picked it up well enough to add in support for Debian's FAI stuff... and that was around the time someone up above me got the bright idea to rip me out of a development role and stick me in the IT department. &amp;nbsp;Around a year later, I'd leave the company and go try out some other stuff.&lt;br /&gt;&lt;br /&gt;It made me proud to hear that even a couple years after I'd moved on, the provisioning system I'd setup was still in place and had been passed on to a 3rd and then 4th generation of techs. &amp;nbsp;I usually keep an eye on job ads just as a way to get hints on what various people are doing, and it was kind of cool to see job postings for a role I had created. &amp;nbsp;A role that didn't exist before 2000.&lt;br /&gt;&lt;br /&gt;And unfortunately no longer exists. &amp;nbsp;Which is the whole point of this post.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It seems that one of the groups that came after me decided to rewrite the scripts that glued the installer together. &amp;nbsp;I'll admit to some wounded pride, but hey... progress happens. &amp;nbsp;What that group failed to do, however, was document what they did, how it worked, and why they did what they did. &amp;nbsp;As key developers of the group moved on to other jobs (both inside the company and out), institutional knowledge not only of the solution but the problem itself was lost. &amp;nbsp;My old documentation and the notes that had been added to it were chucked because they were obsolete and could only provide a brief glimpse of what we trying to do 10 years ago. &amp;nbsp;None of it applied to the new stuff. &amp;nbsp;Eventually, the hosting company was left with a system that had stopped making it nimble and able to accommodate customer needs and had turned into this ticking time bomb that no one understood or could understand without some major league code archaeology expeditions. &amp;nbsp;To make it worse, the people with the skills to run those archaeology expeditions were busy doing other things that were vastly more exciting and interesting; the people who could defuse the bomb had better, safer stuff to do than defusing bombs.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In short, an asset soured into a liability. &amp;nbsp;Eventually the company figured out that the old way wasn't going to work any more. &amp;nbsp;They had grown large enough to demand that their vendors make the necessary changes to the operating system before buying the hardware. &amp;nbsp;The responsibility of the job was moved from the company I used to work for up to its vendors. &amp;nbsp;The job role I had created was outsourced because no one left anything behind to explain WTF they were thinking or why they were doing it. &amp;nbsp;I'll leave it up to the biz guys to argue whether or not that was a Good Thing(tm) as far as the P&amp;amp;L sheets are concerned, but I think it's Bad(tm) because a tactical ability was lost that provided a strategic advantage.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As an not-quite-greybeard, I'm finding that the idea behind the code is much, much more valuable than the code itself especially if you are trying to do something strange/unique/innovative. &amp;nbsp;A quick README file explaining what you're trying to do can be more informative than a 40 page essay on the clever use of language idioms or circular documentation comments on all the methods in your classes (ie, def Defrobnify( self ): &amp;nbsp; # defrobnifies the object). &amp;nbsp;If our jobs as developers are to solve problems, then we ought to be making some notes to help us remember the how and why we got the answers.&lt;br /&gt;&lt;br /&gt;Show your work, or be forgotten.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-1649113507938171916?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/1649113507938171916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=1649113507938171916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1649113507938171916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1649113507938171916'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2012/01/if-it-aint-documented-it-aint-permanent.html' title='if it ain&apos;t documented, it ain&apos;t permanent'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-5185327135960833724</id><published>2011-08-29T06:37:00.000-05:00</published><updated>2011-08-29T06:37:50.761-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='woodwork'/><title type='text'>shaker furniture</title><content type='html'>After I got back home, I made a quick to the library and ended up picking up way too many books. &amp;nbsp;One of them was&amp;nbsp;&lt;a href="http://www.amazon.com/Build-Shaker-Furniture-Thomas-Moser/dp/0806983922"&gt;How to Build Shaker Furniture&lt;/a&gt;&amp;nbsp;by Thos. Moser. &amp;nbsp;The book has turned out to be a pretty good catalog of different joinery types, how to use fasteners, a good reference on stuff like types of wood, tools, etc. &amp;nbsp;Although I'm probably not patient or skilled enough to start in on some of the designs he's got, there are some pretty good inspirations in there. &amp;nbsp;I'm thinking this book needs to be on the bookshelf more permanently.&lt;br /&gt;&lt;br /&gt;I also snagged&amp;nbsp;&lt;a href="http://www.amazon.com/Making-Elegant-Custom-Tables-Stowe/dp/1558705651/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1314617672&amp;amp;sr=1-1"&gt;Making Elegant Custom Tables&lt;/a&gt;&amp;nbsp;by Doug Stowe. &amp;nbsp;While this book didn't have much in the way of plans and it was meant to be more of a pictorial survey of some of the author's work, it did have some nice explanations of the techniques he used (like how to build pedestals) and some of the tools he crafted (like a cylinder lathe).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-5185327135960833724?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/5185327135960833724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=5185327135960833724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5185327135960833724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5185327135960833724'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2011/08/shaker-furniture.html' title='shaker furniture'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-325769385278443196</id><published>2011-08-27T05:38:00.001-05:00</published><updated>2011-08-29T06:28:43.072-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='weight loss'/><title type='text'>weight loss update</title><content type='html'>Bottom line is that I'm down around 40lbs since I started the I-Can't-Believe-It's-Not-Atkins diet. &lt;br /&gt;&lt;br /&gt;&lt;i&gt;upd&lt;/i&gt;ate on 08/29/11: &lt;i&gt;make that 41.2lbs officially. &amp;nbsp;\o/&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There wasn't much loss over the past 6 weeks because I was out of town, staying with my brother. &amp;nbsp;Carbs were consumed. &amp;nbsp;:( &amp;nbsp;However, there was some offset because we were doing physical work (building a shed, yardwork, etc) and he's pretty hardcore about sugar-free stuff (even his sandwich bread). &amp;nbsp;From a diet standpoint, Atkins was wrecked by Powerade (we were working out in a heatwave that kept temps around 100F), a weekly pizza, and I'd guess about 3-4 nights a week involved carb-loaded dining choices (ie, chinese food, subs, burgers, etc).&lt;br /&gt;&lt;br /&gt;The end result is that I didn't lose much weight over the course of the trip. &amp;nbsp;However, I didn't gain any either. &amp;nbsp;There were some physical changes, though, and folks are saying I look like I've lost weight in addition to clothes fitting better. &amp;nbsp;I suspect that I did lose some fat, but gained some muscle along the way, too. &amp;nbsp;I'm now comfortably wearing clothes a size smaller than I was in April, and I'm able to squeeze into clothes 2 sizes smaller than April (although it's not pretty by any means). &amp;nbsp;A belt I bought before the trip and was fastening at the second notch is now down to the fourth, and we're getting close to taking it down to the fifth notch. &amp;nbsp;Another interesting bit: I was able to get up on ladders to do some construction work without having to worry about the sucker collapsing on me.&lt;br /&gt;&lt;br /&gt;I'm averaging about 10lbs a month, and if this rate continues (which is a big if... I'm expecting it to flatten out here pretty soon), then I'll be back to the weight I was at after my freshman year of college shortly after Halloween, my high school football weight by my birthday. &amp;nbsp;If we just drive full speed into fantasy land and assume the trend continues into next summer, then I'd be at what I'd consider my athletic weight (basically, the point where I can start doing pullups and dips again).&lt;br /&gt;&lt;br /&gt;One problem that is emerging is saggy skin. &amp;nbsp;It's not really noticeable at the moment, but there are places where you can pinch the skin and see it. &amp;nbsp;I have to admit that I'm worried about that aspect of weight loss and the fact that even after dropping the weight it's going to be another 2-3 years for the skin to reabsorb back, but ah well. &amp;nbsp;Hopefully I can minimize the impact by resuming some athletic activity and drop the tobacco usage. &amp;nbsp;To be honest though, I think I can hide saggy skin better than I can a body by Dominos, so although it is a concern it doesn't outweigh the desire to keep losing the weight.&lt;br /&gt;&lt;br /&gt;Another issue I've been having to deal with is impatience. &amp;nbsp;I like to see results fast, and while 10lbs a month is a pretty good clip, it's not moving as quick as I'd like. &amp;nbsp;I have to remind myself it took me about 15 years to pack the weight on gradually, so in the Big Picture losing weight at this rate is actually pretty good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-325769385278443196?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/325769385278443196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=325769385278443196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/325769385278443196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/325769385278443196'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2011/08/weight-loss-update.html' title='weight loss update'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-8626514788811193207</id><published>2011-08-05T22:50:00.000-05:00</published><updated>2011-08-05T22:50:40.196-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='woodwork'/><title type='text'>experimenting with lap joins</title><content type='html'>So, for the shed project I'm working on, we've gotten to the point where we need some doors on this sucker.  I tried making a couple by simply screwing some 2x4's together like they were studs, but we quickly discovered that without a diagonal brace it's not stable.  So unstable, in fact, that simply sinking a second screw at a corner could pull it out of shape.  The diagonal worked, but it was a major pain to make adjustments to the door: finding out you need to shave off 1/8" means having to basically take the door apart to do the cut.  There's also the problem that it's kind of hard to find threshhold flashing that's 3 3/4" wide.&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-ZEczWsBrdUQ/TjywNIQ7JVI/AAAAAAAAAHo/sKUykCzqszI/s144/IMG_20110805_203526.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-ZEczWsBrdUQ/TjywNIQ7JVI/AAAAAAAAAHo/sKUykCzqszI/s200/IMG_20110805_203526.jpg" width="150" /&gt;&lt;/a&gt;&lt;br /&gt;So, I decided to finally try out a lap join and just turning the 2x4's so their faces were to the front.  It's a heck of a lot more work and takes longer, but holy cow was it worth it.  I basically ended up with a much thinner door (1 1/2") that fits the flashing perfectly, is much lighter, doesn't need another brace, and is dead simple to get to 90 degrees in the corners.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The technique I used was pretty caveman-style.  Basically just measured the boards to fit (no need to knock of 3/4" on the ends since we're going to lap them), cut, and then marked off 3 3/4" back on the board.  I then set the circular saw to 3/4" depth and just made a bunch of cuts across each end of the board that needed a lap, knocked out the remaining wafers with a hammer, and planed down the lap to get it as close to 3/4" thick as I could.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-NoJ5TbMPXK4/TjywNCCv9nI/AAAAAAAAAHo/LrkMUTWlYxA/s1600/IMG_20110805_203426.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="150" src="http://1.bp.blogspot.com/-NoJ5TbMPXK4/TjywNCCv9nI/AAAAAAAAAHo/LrkMUTWlYxA/s200/IMG_20110805_203426.jpg" width="200" /&gt;&lt;/a&gt;The board on the left is what it looks like after planing, the right side is the before photo. &amp;nbsp;I did just enough for the lap to kind of "feel" smooth, but as you can see it's still got the marks from the circular saw in there. &amp;nbsp;I tried using a chisel to clean up the lap, but I found that just using the plane got the job done quicker and avoided the risk of gouging deeper into the wood.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-_FmILppTVYE/TjywNJwGchI/AAAAAAAAAHo/7PERBCxYTho/s1600/IMG_20110805_203541.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="150" src="http://4.bp.blogspot.com/-_FmILppTVYE/TjywNJwGchI/AAAAAAAAAHo/7PERBCxYTho/s200/IMG_20110805_203541.jpg" width="200" /&gt;&lt;/a&gt;After cleaning out the laps, the last step was simply to assemble the boards. &amp;nbsp;What I did for that was to simply lay the stiles (sides) of the door down on their backs, and put the rails (top and bottom) across the laps. &amp;nbsp;I started at one corner with a 1" screw in the center, used a speed square to make sure it was 90, and then sunk in a second screw in to lock the join in place.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In the end, it was a wash in terms of the time it took to make the frame. &amp;nbsp;The lap join took a lot less time (and frustration) to assemble, but also took a lot more time to prepare the materials. &amp;nbsp;And a lot of that time was spent with the ciruclar saw (ow, my ears). &amp;nbsp;There's probably an easier, more efficient way to do the lap cuts, but for a first stab at it worked out pretty well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-8626514788811193207?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/8626514788811193207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=8626514788811193207' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/8626514788811193207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/8626514788811193207'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2011/08/experimenting-with-lap-joins.html' title='experimenting with lap joins'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ZEczWsBrdUQ/TjywNIQ7JVI/AAAAAAAAAHo/sKUykCzqszI/s72-c/IMG_20110805_203526.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6161130498687699331</id><published>2011-06-24T19:14:00.001-05:00</published><updated>2011-06-24T19:14:31.340-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music videos'/><title type='text'>but i know what you want me to do</title><content type='html'>Been a while, but here we go.  The Heavy - No Time:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="425" height="349" src="http://www.youtube.com/embed/XWHiiaL1buU" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6161130498687699331?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6161130498687699331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6161130498687699331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6161130498687699331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6161130498687699331'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2011/06/but-i-know-what-you-want-me-to-do.html' title='but i know what you want me to do'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/XWHiiaL1buU/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-1365749439160059461</id><published>2011-06-23T01:32:00.000-05:00</published><updated>2011-06-23T01:32:15.577-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='weight loss'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>the lost month</title><content type='html'>So, not quite a month since my post about weight loss, but figured that I'd go ahead and update anyway.&lt;br /&gt;&lt;br /&gt;As we pushed on into June, I had managed to drop to 355 (lost around 30lbs in 2 months) and was feeling kind of cocky.  On the 10th, I took a 3 day trip to the beach and induldged in carbs.  When I got back home, I found I was at 370 and got pretty disheartened about the whole deal.  It wasn't until earlier this week that I started getting back on the low carb regimen, and I'm now down to 362.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, that means a net loss of a measly 2 lbs since June.&lt;br /&gt;&lt;br /&gt;My theory to explain the rapid weight gain during the vacation is that I was drinking a lot of sugary beverages (since I was out in the sun) as well as eating poorly (pancakes, chocolate cake, and "a couple" of beers).  I suspect that the change to diet caused some water retention which made the weight gain seem a lot worse than it really was.  In the week and a half following the trip where I was still eating poorly (but not as poorly as on the trip... much less caloric intake) the weight seemed to maintain itself.&lt;br /&gt;&lt;br /&gt;Basically, I'm blaming it on Gatorade in the afternoon and cake at night.  :)&lt;br /&gt;&lt;br /&gt;I'm also finding that I'm losing weight with a double/double (toss the bun), french fries, and sweet tea from whataburger... around 1lb a day on the days I've had it as a meal.  This implies that going over the carb limit for Atkin's induction isn't the end of the world.  Finally, I'm also wondering if the Zone's idea of the glycemic index might not have some validity.&lt;br /&gt;&lt;br /&gt;But the important thing:  I still don't feel like I'm on a "diet".  I haven't had to suffer any hunger pangs or low blood sugar days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-1365749439160059461?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/1365749439160059461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=1365749439160059461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1365749439160059461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1365749439160059461'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2011/06/lost-month.html' title='the lost month'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-1135584924391447761</id><published>2011-06-15T01:16:00.000-05:00</published><updated>2011-06-15T01:16:11.965-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>maybe that's why it's called spooky</title><content type='html'>So, I've been reading this quantum mechanics for idiots book recently, mainly because I'm a nerd but also because everyone time I've tried to talk with someone In the Know(tm) about QM I get a "don't worry about it" in response.  The book I'm reading is &lt;a href="http://www.amazon.com/Quantum-Perplexed-Dr-Jim-Al-Khalili/dp/1841882380"&gt;&lt;i&gt;Quantum: A Guide for the Perplexed&lt;/i&gt;&lt;/a&gt; by Jim Al-Khalili and it does a pretty good job of both not descending too far into the mathematics and acknowledging that basically everything is counterintuitive and the natural response is to say "no wai!  lies!".&lt;br /&gt;&lt;br /&gt;Any rate, my big epiphany was that everything at the atomic level appears to be indeterministic.  Which is highly unsettling because all that stuff we learned in high school is based on the assumption that we live in a deterministic universe: that you can know everything about anything and make predictions accordingly.  We've used these tools to split the atom, go to the moon, approximate how long ago dinosaurs roamed the earth, hurl data around the globe, and create machines that can peer inside your head and let a doctor see if blood vessels in your brain are healthy or not.&lt;br /&gt;&lt;br /&gt;And it's basically all been an approximation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-1135584924391447761?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/1135584924391447761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=1135584924391447761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1135584924391447761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1135584924391447761'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2011/06/maybe-thats-why-its-called-spooky.html' title='maybe that&apos;s why it&apos;s called spooky'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-2729039470141937713</id><published>2011-06-03T00:52:00.000-05:00</published><updated>2011-06-03T00:52:47.458-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='woodwork'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>laser table mark iii</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://a7.sphotos.ak.fbcdn.net/hphotos-ak-snc6/251315_1950126107028_1058875191_2223561_674748_n.jpg" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"&gt;&lt;img border="0" height="270" width="360" src="http://a7.sphotos.ak.fbcdn.net/hphotos-ak-snc6/251315_1950126107028_1058875191_2223561_674748_n.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;So, I've mostly completed the frame for the "Mark III" version of the laser table.  I decided not to use the previous version because of a change in options to mount the lasers.  The drafting table just didn't have enough space for the flush mounts.&lt;br /&gt;&lt;br /&gt;The features of the new table are:&lt;br /&gt;&lt;br /&gt;* built from 2x4s so it's sturdier (but also heavier)&lt;br /&gt;* the table top is hinged and has legs built in so it can be used flat or lifted to be an angled surface&lt;br /&gt;* used pocket screws to hold stuff together... looks less "engineery" while joins are stronger&lt;br /&gt;&lt;br /&gt;What remains to be done:&lt;br /&gt;&lt;br /&gt;* figure out some way to mount stops for the tabletop legs to hold it at an angle &lt;br /&gt;* cut some mounting rabbets out of moulding to hold the plexiglass surface just below the center of the laser beam&lt;br /&gt;* cut the plexiglass down to fit in the rabbets :)&lt;br /&gt;* mount the flush mounts at the correct angle to cover the entire surface&lt;br /&gt;* rejigger electrical stuff to run off floppy disk power lead&lt;br /&gt;* see if running lasers in series will work better than in parallel (currently using the parallel setup)&lt;br /&gt;* wax paper on acrylic and see if the projector works&lt;br /&gt;&lt;br /&gt;Then I can start on the software phase.  &lt;br /&gt;&lt;br /&gt;I should probably also think about attaching a trap for the laser light at the edge of the tabletop, but for right now I just want this sucker to work.&lt;br /&gt;&lt;br /&gt;Way more info after the jump.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why The New Design&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;With the previous "drafting table" style setup, I was going to need to find a way to mount the lasers so that they could be calibrated to keep the beam sweeping just across the top of the plexiglass.  I found some cheap speaker mounts at Altex that were almost perfect for hanging the laser's tube off of and could be swiveled around to any angle, but it was starting to look (and feel) super hackish at that point.  While pondering what to do about it, I found out &lt;a href="http://www.aixiz.com/"&gt;Aixiz&lt;/a&gt; has now started selling laser table kits for $65 or so and they sell mounting brackets for their lasers for $4 each.&lt;br /&gt;&lt;br /&gt;One of the biggest problems with the first test version of the table was getting the laser to line up in the right planes.  A flush mounted laser would basically remove the hassle  of trying to get the x and z factors right and leave only the rotation of the laser itself to worry about (assuming you mount it at the correct angle) in the y plane.&lt;br /&gt;&lt;br /&gt;In short, it'd make it so easy a caveman could do it.&lt;br /&gt;&lt;br /&gt;But the drafting table's edges were too narrow to handle the width of the mount.  So I decided to just put the plywood top back in and use it as a drafting table.  :)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Features and ToDo&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;As mentioned above:&lt;br /&gt;&lt;br /&gt;* it's built out of 2x4's (sturdier, but heavier). Using 2x4's for the top enclosure gave me enough space for the mounts, plus it allowed me to rip 1" legs from the side supports and put a hinge on them.&lt;br /&gt;&lt;br /&gt;* hinge at the front of the table top so you can swing it up to whatever angle you want, but the lasers will hold their calibration.  I imagine that adjusting the web cam and the projector is going to be a pain in the ass, however.&lt;br /&gt;&lt;br /&gt;* made use of pocket screws with a jig from Kreg.  This made joining pieces a freaking snap, and I believe they are stronger joins than what I got from using carriage bolts and wood screws previously.  Although the table frame would benefit from braces, it's sturdy enough that I'd trust it with about 75lbs on the tabletop and there's no wobble.&lt;br /&gt;&lt;br /&gt;* actually sanded this one, so less splintery ouchy action!&lt;br /&gt;&lt;br /&gt;As for the ToDo, there's only a little bit of carpentry-pretend left to play:&lt;br /&gt;&lt;br /&gt;* cut some supports for the plexiglass out of molding to hold it up just below the plane of the lasers&lt;br /&gt;&lt;br /&gt;* cut the plexiglass down a little in width to fit the table I goofed up the calculation for the width of the tabletop, so the whole thing ended up being exactly 2' wide (rather than 2' 2").&lt;br /&gt;&lt;br /&gt;The rest is getting is the hard part:&lt;br /&gt;&lt;br /&gt;* rewire lasers to run in series, and figure out how to power it all off a floppy disk power lead (5V.. only need 3.2V)&lt;br /&gt;&lt;br /&gt;* figure out where to put projector+camera and if there's anything I can make to help in calibration of those suckers.&lt;br /&gt;&lt;br /&gt;* building a PC from scrap parts and getting the software up and running&lt;br /&gt;&lt;br /&gt;So, basically, got a lot done, but we're far from finished.  :(&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Woodworking Lessons&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I think the big takeaway is that pocket screws are pretty damned awesome, and that you should avoid using larger lumber than you need to use.  I could have probably gotten away with using some 1x4's instead and just turning them on their sides for the tabletop frame in order to get the space I needed for the laser mounts.  However, the 2x4 came in handy when making the fold down legs for the tabletop.&lt;br /&gt;&lt;br /&gt;The other big thing I learned was to stop sweating the measurements so much.  Although I did start off with a rough sketch of what I wanted in order to calculate how much lumber I'd need, I didn't worry about figuring out every single cut to the 1/32nd of an inch like I did for the drafting table.  I also would use a piece I cut (such as the first leg) to measure the cut for the next leg, rather than pre-marking everything out on a board and losing accuracy to the kerf.&lt;br /&gt;&lt;br /&gt;And this bears repeating: the pocket screws are damned awesome.  I was able to accomplish all the joins single-handedly.  The only thing I needed an extra set of hands for was to hold the tabletop frame upright while I was screwing in the hinges.  They also let me get away with using less hardware (2 pocket screws are lighter than 2 carriage bolts), and use less lumber (no need for weird supports).&lt;br /&gt;&lt;br /&gt;There were some disadvantages, though.  Once the screw is in, you aren't getting it back out without destroying either the screw or the wood (and it'll most likely be the wood).  The Kreg screws also use a funky square head... not a problem since the jig kit I bought came with an attachment, but still.  Finally, if you're going to use this setup, be sure to rip the boards to 90 degrees.  Having the rounded ends of the 2x4's didn't create too many problems, but things didn't sink together as snugly as they could have while I was lining up the boards to be clamped.&lt;br /&gt;&lt;br /&gt;Finally, I'd like to say:  Sanding.  It's not just a good idea.  It's the law.  I used 120 grit (also had some 320 but that turned out to be wishful thinking) and hand sanded the table.  I've learned my lesson and will hunt for a belt sander or something... but the wrenched shoulder was worth it.  The el-cheapo stud wood I was using is pretty much splinter and snag free, and I was able to get most of the "hello I'm a n00b and bought stud 2x4s for a furniture project" tell-tale stampings rubbed off.  Probably would have been much better if I'd cut the 2x4's square before using them, but oh well.  Lesson learned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-2729039470141937713?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/2729039470141937713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=2729039470141937713' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2729039470141937713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2729039470141937713'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2011/06/laser-table-mark-iii.html' title='laser table mark iii'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6169005699760553709</id><published>2011-05-25T20:35:00.009-05:00</published><updated>2011-06-23T01:32:41.724-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='weight loss'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>a month of data</title><content type='html'>A month ago, I made some changes to my diet after my doc ominously dropped the D word.  Basically, I've started doing an Atkins-like program... still trying to keep carbs to 20g or less per day, but I haven't been following it as strictly as I could have.  End results is that I've lost around 18.2 pounds in a month's time.  &lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript" src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js"&gt; {"dataSourceUrl":"//spreadsheets.google.com/spreadsheet/tq?key=0AuQR_0LcL7judDhISGxyT0VYNzZtemFmLUNkZkQ4TGc&amp;transpose=0&amp;headers=-1&amp;range=A1%3AE31&amp;gid=0&amp;pub=1","options":{"displayAnnotations":true,"showTip":true,"dataMode":"markers","fontColor":"#fff","midColor":"#36c","pointSize":0,"colors":["#3366CC","#DC3912","#FF9900","#109618","#990099","#0099C6","#DD4477","#66AA00","#B82E2E","#316395"],"headerColor":"#3d85c6","smoothLine":false,"lineWidth":2,"maxColor":"#222","headerHeight":40,"labelPosition":"right","is3D":false,"fontSize":"14px","displayRangeSelector":true,"hasLabelsColumn":true,"wmode":"opaque","hAxis":{"maxAlternation":1},"maxDepth":2,"allowCollapse":true,"minColor":"#ccc","displayZoomButtons":true,"mapType":"hybrid","width":575,"height":300},"state":{},"chartType":"AnnotatedTimeLine","chartName":"Chart 1"} &lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Naturally, I saw the biggest loss while working outside in the heat.  I was drinking around 4-6 liters of water a day but still losing 4-6 lbs.  Those losses were temporary, however, and after the brush clearing had ended the weight went back up to where it was when I started the work.&lt;br /&gt;&lt;br /&gt;I'm also finding that while a minor deviation from the carb limit has a small effect of either arresting weight loss or even adding a pound or two, a major lapse can have a huge, huge impact.  For example, a PBJ sandwich probably means no progress the next day, but a pizza could cost up to 7 lbs (depending on how much I pig out).  The good news is that, like losses from working out, the weight gain appears to be mostly temporary.  My supposition is that the increase in complex carbs (and sodium) causes the body to retain more water the next day.&lt;br /&gt;&lt;br /&gt;So.  General conclusions:&lt;br /&gt;&lt;br /&gt;* heavy physical activity (although you need to do it for overall health) is only a temporary weight loss... stop working out or reduce the activity and the weight comes back&lt;br /&gt;* the amount of complex carbs seems to play a bigger role than calories&lt;br /&gt;* sodium can jack up the equation (ie, a Coke Zero has no calories or carbs, but it does have sodium that can prevent you from losing water weight) unless you're sweating it out&lt;br /&gt;* occasional small cheating a couple of times during the week is better than one big mega-cheat once every two weeks&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6169005699760553709?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6169005699760553709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6169005699760553709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6169005699760553709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6169005699760553709'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2011/05/month-of-data.html' title='a month of data'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-7248220711070697703</id><published>2011-05-18T21:26:00.002-05:00</published><updated>2011-06-03T00:53:34.031-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='woodwork\'/><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>MT table Mark II</title><content type='html'>Okay.  So my last swipe at this wasn't technically a table, but give me a break.  I got busy and couldn't find spare time for... 18 months.  /o\&lt;br /&gt;&lt;br /&gt;Any rate, I've been on a kick lately and I'm moving away from doing stuff on my computers and moving more towards the analog method of designing stuff:  grabbing a damned pencil and a sheet of paper and just sketching it out.  I don't know why, but when I write/draw something I seem to retain it for a much longer time than if I type it up.  Part of this has led to a desire to get a good old drafting table.  But why buy a solid pre-built one when you can build a shaky, hideous one from scratch and save $20?&lt;br /&gt;&lt;br /&gt;So I set about designing a drafting table, and about halfway through it occurred to me that I could also fashion it so that I could remove the plywood table top and slide in a sheet of plexiglass later on to easily convert it to a multitouch table later on.&lt;br /&gt;&lt;br /&gt;Since it's been 18 months... &lt;a href="http://spoonix.blogspot.com/search/label/multitouch"&gt;here's a link to previous multitouch posts&lt;/a&gt;  (read from bottom up for chronological order).&lt;br /&gt;&lt;br /&gt;And &lt;a href="http://www.facebook.com/media/set/?set=a.1920276920817.112328.1058875191"&gt;here is a link to the Mark II&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It's not as perfectly aligned as I would like it, but I don't think it's half bad for my first woodworking project EVAR and it's sturdy enough I can lean on it.  More thoughts after the jump.&lt;br /&gt;&lt;br /&gt;If anyone is interested in plans (although it's not that complicated) or has questions about the construction.. hollah.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First thing, some notes on the construction.  Materials:&lt;br /&gt;&lt;br /&gt;about 6 or 7 1x4x8' boards&lt;br /&gt;pack of 100 6-1 1/4" wood screws&lt;br /&gt;sheet of 4x2 oak plywood (for table top)&lt;br /&gt;8 1/4" carrier bolts (around 2" long, with washers and hex nuts)&lt;br /&gt;&lt;br /&gt;If I had this to do over again, I probably would have gone with 20 carrier bolts and put 2 in each board I used them on to provide little more stability and less insanity when trying to get everything lined up.&lt;br /&gt;&lt;br /&gt;Tools I used:&lt;br /&gt;&lt;br /&gt;* table saw (absolutely key for the 30 degree cuts.. would hate to try it with a circular saw)&lt;br /&gt;* drill with a 7/16" bit (for pre-drilling for wood screws) and 1/4" bit (for carrier bolts)&lt;br /&gt;* at least 3 clamps... helps if 2 of them have a wide gripping surface&lt;br /&gt;* 90 degree clamp for the legs&lt;br /&gt;* builder square and board square&lt;br /&gt;* philips head screw driver&lt;br /&gt;* ratchet wrench with a 5/8" head for the carrier bolts&lt;br /&gt;* pencil&lt;br /&gt;* and, of course, a humble tape measure&lt;br /&gt;&lt;br /&gt;The legs are basically held together with wood screws at 90 degree angles.  You'll want 30 degree cuts at the top of them to make sure the table top is flush.  Due to inaccuracies in measuring and some slight misalignments when bolting everything together, the legs are about 1/32" off from each other, and the inside leg on the front appears to be cut at a slightly higher angle than 30 degrees (probably a mistake when I ran it through the table saw).  The important thing is that the tabletop is pretty darn close to being a perfect 3x2' rectangle.&lt;br /&gt;&lt;br /&gt;While the table relies on the lower side and back trim for stability, it was really hard to keep all the angles squared up during assembly.  This result in varying measurements for the tabletop that drove me nuts trying to figure out... I finally put 2 shorter boards inside the top of the frame to hold the damned thing close to square while I put the top trim on.  Unfortunately, since I only used one screw on each end of those boards, it only helped mildly and there was still some last minute tweaking to be done when putting the upper trim on.&lt;br /&gt;&lt;br /&gt;The upper trim sides and front are actually pushed up 1/2" to accomodate the thickness of the plywood, while the back is pushed down to be flush with the back of the legs.  This lets gravity cradle the plywood and hold it in place without needing to screw it down.  This should also let me use a thicker piece of plexiglass, or possibly 2 pieces with something to catch the projected image wedged in between, yet still leave room to catch the laser beams when I get around to installing them.&lt;br /&gt;&lt;br /&gt;As for converting it to a laser table, I think I'm only going to use 2 lasers at the top corners and see how that works out.  I'm not sure how I'm going to handle mounting (or aligning) them yet, though... but it seems patent that clay and craft glue isn't going to hack it this time.  :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-7248220711070697703?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/7248220711070697703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=7248220711070697703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7248220711070697703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7248220711070697703'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2011/05/mt-table-mark-ii.html' title='MT table Mark II'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-2327919394777584038</id><published>2011-04-20T03:52:00.000-05:00</published><updated>2011-04-20T03:52:47.192-05:00</updated><title type='text'>the 2 minute offense</title><content type='html'>I was once watching a game with a friend who was new to (American) football who overheard the commentator use the phrase "2 minute offense" and wondered what it was.  Being more interested in the game, I brushed it off with the quick explanation: it's an offensive play scheme designed to move the ball down the field as fast as possible so you can score before the end of the quarter.&lt;br /&gt;&lt;br /&gt;My friend waited for the play to run and then asked, "So why wouldn't you do that for the other 13 minutes in the quarter?  Isn't the point of the game to score the most points?"&lt;br /&gt;&lt;br /&gt;On the surface, it's a good question, but when the theory is reduced to application we find that it's a bad idea because it's resting on some very, critically, super star-level bad assumptions that you made when trying to think about the problem in the abstract.&lt;br /&gt;&lt;br /&gt;The truth is that the 2 minute offense can be a wise gamble, but it's a poor standard operating procedure for the same reasons that "crunch time" is a bad thing for software development.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The first killer assumption is: Every 2 minute offense will result in a score.&lt;br /&gt;&lt;br /&gt;This is obviously not true.  Ask Peyton Manning if being under time pressure prevents throwing interceptions.  Moving fast and throwing for big yardage doesn't come with a guarantee that a receiver won't drop the ball.  There are a lot of things that can happen to stop the momentum of an offensive drive and can result in you losing the chance to score.&lt;br /&gt;&lt;br /&gt;The second killer assumption is: Plays run during a 2 minute offense cost the same as plays run "normally".&lt;br /&gt;&lt;br /&gt;Also not true.  In a 2MO, you are emphasizing speed over safety.  Your players are rushing to try and claw out as much yardage on each play as they can possibly get.  At the very least, they are going to tire out much, much quicker.  In the best case, your linemen aren't paying attention and accidentally jump offsides costing you both a down and yardage.  Worse than that, the quarterback could make a poor decision and accidentally lob the ball straight into the waiting arms of the other team's safety.  Maybe the offensive line starts dragging a little bit, and all of a sudden defensive linemen are able to start sacking your quarterback.  The end result is you are increasing your chance for failure by stupid mistakes made due to fatigue.&lt;br /&gt;&lt;br /&gt;Worst of all is that someone could get hurt:  maybe a sneaky defensive lineman finds the hole that your offensive linemen are too tired to cover, or maybe your all star receiver doesn't see the cornerback coming at him so he ends up taking the blow standing straight up. Either way, not only have you failed to score, but you've also potentially lost a multi-million dollar employee because you made a reckless strategic decision.&lt;br /&gt;&lt;br /&gt;The third and worst killer assumption is: Everything will be ok.&lt;br /&gt;&lt;br /&gt;When the game moves into the high intensity phase of a 2MO, the chances for people getting hurt go up dramatically.  Tired players do unsafe things or put themselves into dangerous positions.  Receivers stand up when they make the catch and leave themselves exposed to bone shattering hits from the secondary.  Running backs plant their feet and try to cut upfield in the wrong way, wrenching their ankles and knees.  Even if the players don't sustain an injury that immediately takes them off the field, they can rack up micro injuries (hairline fractures, sprains, etc) that will impact their performance for the majority of the season.&lt;br /&gt;&lt;br /&gt;In short, you can't use the 2MO for all 15 minutes of a quarter because 1) the penalty for making a mistake is magnified, 2) the chance of making any mistake is magnified, and 3) people are going to burnout under the load.&lt;br /&gt;&lt;br /&gt;I bring all this up because I've recently tried to explain to someone why, as a manager, you should absolutely loathe "crunch time" development.  It's usually a better idea to spend the other 13 minutes of a quarter slowly and steadily racking up points than it is to try and rush to cram them all into the last 2 minutes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-2327919394777584038?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/2327919394777584038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=2327919394777584038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2327919394777584038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2327919394777584038'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2011/04/2-minute-offense.html' title='the 2 minute offense'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-196254044505346267</id><published>2011-03-31T03:47:00.000-05:00</published><updated>2011-03-31T03:47:29.699-05:00</updated><title type='text'>back to the gym</title><content type='html'>I lead a pretty sedentary life, and thanks to OpenVPN and being able to work from home, it's gotten even more sedentary since at least work has stairs you have to go up.  While I knew I needed to do something, it wasn't until I got winded heading up the apartment stairs with some laundry on Sunday that I realized it was go time.  On Monday, I swung by &lt;a href="http://www.anytimefitness.com/en-us"&gt;Anytime Fitness&lt;/a&gt; took a quick tour, and signed up for the month-to-month plan... end results is that it's around $43/month, but I have 24 hour access to the gym via nifty key fob you swipe at the door.  After a month or so, databases get sync'd up and the fob will work for any AF gym in the US.  Pretty slick.&lt;br /&gt;&lt;br /&gt;This isn't the first time I've tried to get back into a gym, but it's the first one where I'm not trying to think up a reason to procrastinate going until it's too late.  I've also made a few changes to my approach for getting back into the swing of things that I think are helping.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The first big thing is my goal for working out.  Instead of "I want to lose weight" or "I want to look better", my goal is simply to regain lost power (or as much as I can being in my 30's now).  I've discovered that I still have the strength I worked to achieve with the Bigger Faster Stronger program back in my football days, but I've lost anything resembling stamina.  I can probably still pick up 400lbs, but carrying a 40lb box up a flight of stairs is a wipe out.  I can shuffle through a mile, but it becomes absolute murder with a 25lb laptop bag on my back.  I simply want to get to a point where these things are no longer "*wheeze*wheeze*Gimmesome*wheeze*Gatorade*wheeze*" events.  More info on my plan for that below.&lt;br /&gt;&lt;br /&gt;The second thing is: I realize I suck now.  Whenever I'm doing a lift and I feel like my muscles are turning to Jello, it's time to stop.  Period, end of story.  Yes, it's good to push through the pain... after you're in shape and the body is used to repairing the damage.  Right now, though, it's just going to hurt you and put you further behind schedule.  In fact, if you get to that point, you've overestimated yourself and need to scale back the weight for your next workout (because, I like I said, you're done for today because you're hurt).  Yes, I feel like an absolute pansy doing squats with a 20lb dumbbell.  No, I don't care because 1) I'm able to walk the next day, and 2) I'll be up to big boy weight in a few weeks as long as I don't get hurt.&lt;br /&gt;&lt;br /&gt;I really can stress how much the second point is against my nature, but I've come to understand just how important it is.&lt;br /&gt;&lt;br /&gt;Any rate.  The Plan(tm).  Everyone's got their own work outs that they'll tell you is the best.  For me, the general workout I've had the most success with is a short, simple workout based on the BFS system I used back in football days.  Basically lifting 3 times a week (Monday, Wednesday, and Friday) and doing the 3 core lifts (legs, chest, other) in either 3x8, 3x12, or 3x15.  MWF starts off with 20 minutes of cardio, TRS are only 20 minutes of cardio.. no lifting.&lt;br /&gt;&lt;br /&gt;Core lifts are supposed to be:&lt;br /&gt;M - bench, squat, military press&lt;br /&gt;W - dips, dead lift, power cleans&lt;br /&gt;F - towel bench, box squat, behind the neck press&lt;br /&gt;&lt;br /&gt;Unfortunately... towel bench and box squat means moving massive amount of weight around and requires some strong spotters, so I just replace those with normal bench and squats.  I also exchange leg press in for dead lifts simply because, again, dead lift is a lot of weight to be moving without people you know nearby.  Dips also come off the table for now because, well, body by Dominos, knowwottamean Verne?&lt;br /&gt;&lt;br /&gt;The big thing is to get the cardio done first before lifting.  If you get your heart rate up to the 75% mark, then you get "extra credit" from your metabolism... each minute you spend at 75% gives you another minute that you can do an anaerobic exercise (like lifting weights) but you still burn energy as if it was an aerobic exercise.  If you don't waste time screwing around, you can get the core lifts done in 20 minutes.&lt;br /&gt;&lt;br /&gt;For now, I'm using a combo of 2km on a rowing machine, and making up whatever remainder of time I need for the 20 mins on a treadmill.  My first time back, the performance on the rowing machine was horrible... 17 minutes for 2km, and I was basically stopping every 500m.  2nd time worked better: 11:05, only took 4 breaks.  The grand ultimate goal is 8 mins for 2km on the rowing machine, and 1.5 miles on the treadmill in 12 mins.&lt;br /&gt;&lt;br /&gt;For lifting, I've gone with extremely light weights, high reps.  Simply trying to knock out 3x15s with bench, dumbbell squats, and an overhead press.  Managed to get the bench press fully done, but wussed out on the last set of squats with only 12.  I'm hoping to get the full reps in on Friday, and move on to the overhead presses.  Monday will try to add in some sort of rowing lift (lat pull downs or something), and one final optional lift on Wednesday.&lt;br /&gt;&lt;br /&gt;I figure if I can hang in there for the first 2 weeks, I can start ramping up the weights after my body realizes that this isn't going to stop.&lt;br /&gt;&lt;br /&gt;In the meantime, I'll be eating aspirin like skittles and drinking lots of orange juice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-196254044505346267?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/196254044505346267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=196254044505346267' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/196254044505346267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/196254044505346267'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2011/03/back-to-gym.html' title='back to the gym'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-586289824596897577</id><published>2010-09-24T15:04:00.000-05:00</published><updated>2010-09-24T15:04:26.542-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><category scheme='http://www.blogger.com/atom/ns#' term='whinge'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>hi clear, bye clear</title><content type='html'>A few months ago, I had to cancel my home internet service with Time Warner.  It turns out, TWC was executing a telemarketing campaign with some severely broken equipment.  This meant random calls to my cellphone that never left a message and in the off chance I did manage to answer I was promptly hung up on.  TWC left no way to get in touch with anybody who might be responsible for the calls, and letters I wrote asking them to stop went unanswered, so after two weeks I finally told them to cancel service.&lt;br /&gt;&lt;br /&gt;To replace home connectivity, I went out and snagged a 4G wireless modem from Clear.  The prospect of 6MB that I could take on the road with me for less than TWC was charging me sounded like a good deal, and for the past 3 months it's been everything I'd hoped for.  Less downtime, and waaaaay less harrassing phone calls.&lt;br /&gt;&lt;br /&gt;However, earlier this month (last Friday in fact), Clear instituted some mechanism that attempts to rate limit users who pass an unspecified bandwidth usage threshold. If you trip their bandwidth-hog alarm, your connection drops from 6Mb to 0.25Mb download speeds, and this makes doing pretty much anything relatively impossible... the speed is basically bumped below the throughput of a dialup modem from 1999.  It is impossible to watch Netflix movies uninterrupted, and it's introduced some real problems when I try to play games or use VoIP services.&lt;br /&gt;&lt;br /&gt;The intent is pretty obvious.  Rather than scale up their bandwidth to accomodate a large influx of customers, they have chosen to ration out access.  They were clearly assuming people would only be using the service to check email or maybe listen to a few mp3's... fools burning 30 hours a week on movies and video games will quite easily wreck that business model.  The problem is that rather than cap me at the speed I've paid for, they serve up more than I paid for (12Mb) until I hit this limit, and then slap on a draconian limit to punish me for the amount of traffic I've pushed.  From my point of view, I have very little to show for it since most of the bandwidth is from dynamic services (ie, Netflix and WoW) rather than from downloading files.&lt;br /&gt;&lt;br /&gt;It's basically akin to flipping on the TV to discover that the cable company is only going to let you watch public access channels and CSPAN because you've spent entirely too much time watching HBO this month.&lt;br /&gt;&lt;br /&gt;This is a total deal breaker for me.  I don't really care about throughput so long as it's greater than 1Mb.  I'd be happy taking a price break and using the slower service to having my provider suddenly and without any warning yank my leash for violating rules I don't understand and have no way of monitoring.  Unfortunately for Clear, the faster (and cheaper) solution is to just cancel the account and install DSL service rather than give them "a month" to iron out the bugs in their rate limiting ubersystem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-586289824596897577?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/586289824596897577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=586289824596897577' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/586289824596897577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/586289824596897577'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2010/09/hi-clear-bye-clear.html' title='hi clear, bye clear'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-3789168836896999408</id><published>2010-07-04T04:25:00.000-05:00</published><updated>2010-07-04T04:25:02.247-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='whinge'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='nerdrage'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>uml deadend or why your proprietary file format is a really, fantasically bad idea</title><content type='html'>So, I'm working on a project.  Pretty big SQL setup, lots and lots of complexities.  Good news is that the whole thing is described well with a "UML" document.  There is also a tool in place to generate SQL-like stuff for MS SQLServer, but it takes advantage of some of MS SQL's quirks in the code it generates.&lt;br /&gt;&lt;br /&gt;What I'd like to do is take the UML document as input, and have it spit out a bunch of ORM files for me in another language and just let the ORM's framework worry about the messy SQL details for whichever database ends up being used.  Not only would this be (slightly) less tedious than manually building up the objects by hand, it would have the benefit of making the UML document a single point where the database could be managed in the abstract and I could get on with doing the stuff that's more computer sciencey and less data enterishy.&lt;br /&gt;&lt;br /&gt;But.  I can't.  Because the UML file was created with a very feature rich UML editor that lets you draw really nice and really well annotated diagrams, but locks it all up inside of a very non-UMLish file format.  And for the icing on the cake, the company that made the editor closed up shop in May and has decided to not only stop taking orders for their software but providing the free evaluation download as well.&lt;br /&gt;&lt;br /&gt;From my point of view, this makes the file just as programmatically useful as a jpeg picture of a diagram of the database layout.  The tedious grunt work of examining the diagram and manually hacking it all together is unavoidable, which means that now we've introduced the chance of documentation skewing away from the implementation.  Inadvertent forks from last minute bugfixes or poorly communicated design changes are now on the table.&lt;br /&gt;&lt;br /&gt;All because a software developer thought his method for storing UML data was better than just using simple UML, and that his clever method would assure him of job security.  &lt;br /&gt;&lt;br /&gt;Wrong on both counts, mang.&lt;br /&gt;&lt;br /&gt;And now we're both hosed.&lt;br /&gt;&lt;br /&gt;Just stick with the standards, people.  Please?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-3789168836896999408?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/3789168836896999408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=3789168836896999408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/3789168836896999408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/3789168836896999408'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2010/07/uml-deadend-or-why-your-proprietary.html' title='uml deadend or why your proprietary file format is a really, fantasically bad idea'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-4562567127400499868</id><published>2010-05-28T01:44:00.000-05:00</published><updated>2010-05-28T01:44:13.285-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='whinge'/><category scheme='http://www.blogger.com/atom/ns#' term='nerdrage'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>screw you, firefox tab complete!</title><content type='html'>&lt;p&gt;For some reason that is completely unfathomable to me, the URL that's shown as hilighted in firefox's URL window can get out of sync with options that show up in the drop down menu of possible alternatives, yet firefox gives preference to the drop down menu when you hit the TAB key to complete.&lt;br /&gt;&lt;p&gt;Case in point:  I want to go to gmail.  I start typing in "http://www.g" and the drop down shows up.  The first thing its got highlighted is "http://www.google.com/", which makes sense.  I next hit "m" (so what I got in the URL window is "http://www.gm")... the text in the URL window goes ahead and auto-completes out to "http://www.gmail.com", &lt;b&gt;BUT&lt;/b&gt; the drop down highlight remains on "http:"//www.google.com/").&lt;br /&gt;&lt;/p&gt;&lt;p&gt;So when I hit ENTER, I'm being queried for a search string instead of looking at my inbox.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I sigh and once again curse my blazing fast touch typing skills and lightning quick ENTER key pressing reflex.  So I go fumble around for the mouse, point the stupid pointer over the URL, double click to highlight the entire URL, hit BACKSPACE, and... we go back to where I said "Case in point:" up above.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Repeat 3-4 times until I finally am able to remember to force myself to stop and wait for the drop down to catch up and get to my email so I can read the latest chain letter my old high buds have forwarded to me.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;KAAAAAAAAAAHHHHHHHHHHHHHHHHNNNN!  \o|&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-4562567127400499868?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/4562567127400499868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=4562567127400499868' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4562567127400499868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4562567127400499868'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2010/05/screw-you-firefox-tab-complete.html' title='screw you, firefox tab complete!'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-759534116742492567</id><published>2010-05-03T08:41:00.003-05:00</published><updated>2010-05-03T09:32:15.584-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><category scheme='http://www.blogger.com/atom/ns#' term='creative stuff'/><title type='text'>the science of chords</title><content type='html'>So I just got finished watching "It Might Get Loud" (trailer below) on Netflix's Watch Instantly deal.  It was interesting to see representatives of 3 different generations of rock talking about what motivated them, what their journey to where they are was like, how they view the craft of making music, and hints at some of the tricks they use.&lt;br /&gt;&lt;br /&gt;&lt;object height="289" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/m4EvZtsXz7w&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/m4EvZtsXz7w&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="289" width="480"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The guy I was most interested in hearing from was "The Edge".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The reason I'm fascinated by The Edge isn't because I think he's one of the all time greats of guitardom, but rather because he's quite clearly a techfreak.  He's playing his effects pedals and system just as much as he is playing the guitar.  Whenever you see him play one of his songs, you'll always notice the fscking cabinet with 10 million dials behind him.&lt;br /&gt;&lt;br /&gt;An example is the effect used in "Where the Streets Have No Name" where the he basically has the note he plays echoed back a half beat late and at a slightly lower tone to create the sound that two guitars are playing off each other.&lt;br /&gt;&lt;br /&gt;One of the epiphanies I found in there was when he mentioned that in order to get a distinctive sound with all the effects going on when he played a chord, he had to "change how he played the chord".  Specifically, instead of just playing a full chord and hitting all 4-6 notes in it, he would drop certain notes that weren't needed in order to fully express the chord.  By omitting the extra notes, he was able "to be more aggressive" with what he could do with the effects.&lt;br /&gt;&lt;br /&gt;Or, to put it another way, you know how playing an add9 is just like playing the regular chord but adding in the 9th semitone from the chromatic progression?  He's doing the same thing, but instead of adding he's subtracting.&lt;br /&gt;&lt;br /&gt;Bass players use the same process to spell out a chord and play it a single note at a time over the course of a bar.  There's no graceful (well, easy at least) way to get the 6 notes in G chord wedged into 4 beats, so we just hit the important 3 (root, 3, and 5) and either rest on the 4th beat or play another note twice.&lt;br /&gt;&lt;br /&gt;Take a step back even further, you realize that the "forget the unimportant notes" approach is the foundation for the guitar itself as there's a whole world of add11's that would break your wrist on a 6 string but are quite doable on a piano keyboard.&lt;br /&gt;At the end of the day, less appears to be more as long you understand the relationship between how all the pieces fit together.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-759534116742492567?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/759534116742492567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=759534116742492567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/759534116742492567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/759534116742492567'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2010/05/science-of-chords.html' title='the science of chords'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-2838422054632120154</id><published>2010-04-12T03:56:00.004-05:00</published><updated>2010-04-12T04:25:47.475-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='forest for the trees'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>tunnel vision</title><content type='html'>The other day I was browsing around on a professional networking site and came across a post in one of the forums from a guy asking for help on solving a monitoring problem.  The problem was that when the servers got under a heavy enough load they would become unresponsive to his monitoring systems and the page would light up like a Christmas tree.  He was looking for suggestions to relax the monitoring thresholds so the alerts wouldn't bug him.&lt;br /&gt;&lt;br /&gt;/o\&lt;br /&gt;&lt;br /&gt;The problem is not that the monitoring system is doing its job.  The problem is that the servers are under such high enough load that they can't respond to simple "Are you still alive?" queries from a monitoring system.  The correct solution is to either add hardware to the cluster and distribute the load or find some way to refactor the code so that it's more efficient.&lt;br /&gt;&lt;br /&gt;More alarming was the fact that a bunch of people weighed in before I got there with various suggestions on how to increase timeouts, drop SNMP monitoring, etc.  In a week, none of them said, "Hey, maybe the server being in distress is like, bad."&lt;br /&gt;&lt;br /&gt;In the tech world, we fall prey to tunnel vision a lot.  We become willing to push an incorrect solution to a problem so far that we will layer bad idea after bad idea on to a system, which in turn just keeps bringing in more and more points of failure.  Pretty soon, you end up with a shaky, complex Akira style thing that is impossible for anyone else to understand or modify that does nothing but create unnecessary work for you.&lt;br /&gt;&lt;br /&gt;The more I look around at my colleagues and talk with them about the battles they're fighting daily, the more I start to wonder if anyone else understands why the bearded Unixy elders held elegance in such high regard.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-2838422054632120154?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/2838422054632120154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=2838422054632120154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2838422054632120154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2838422054632120154'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2010/04/tunnel-vision.html' title='tunnel vision'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-3079783263660236409</id><published>2010-01-13T21:18:00.003-06:00</published><updated>2010-01-13T21:32:24.735-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='whinge'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>win32 c++</title><content type='html'>So I was presented with a situation where I needed a binary to simply run some predetermined commands on Windows.  I said, "Why, this is a simple fork/exec under Linux.  How hard could it be in Windows?"&lt;br /&gt;&lt;br /&gt;Turns out, a lot fscking harder than it needs to be.&lt;br /&gt;&lt;br /&gt;The primary problem stems from the way Windows "attempts" to support multibyte characters.  Or rather, the way&lt;strong&gt;S&lt;/strong&gt; it supports multibyte characters... you have a choice of the ANSIish widechar that can do UTF-8, or the one that MS Visual Studio defaults to LPWSTR for UTF-16.  The Windows libraries helpfully provide replacement functions for stuff like sprintf() and such, but the common and well known string functions are cut off from you.  Worse, some wrappers to system calls like GetCurrentDirectory() will only return LPWSTR and only take LPWSTR args, and because these are differently sized types you can't just cast your out of the problem.&lt;br /&gt;&lt;br /&gt;Oh, and stuff like malloc()/calloc() doesn't appear to work with the macros, either.  Or at least I didn't have the time to unravel what the correct way to use them were in the time I had alotted.&lt;br /&gt;&lt;br /&gt;In the end, I used something like:&lt;br /&gt;&lt;br /&gt;wchar_t* thing[SIZE];&lt;br /&gt;&lt;br /&gt;and just used a typecast whenever I needed to move into or out of the variable:  (LPRWSTR) thing, like when using _stprintf() to build up these strings.&lt;br /&gt;&lt;br /&gt;So, basically, I ended up being corralled into doing freshman level C just to get stuff working.&lt;br /&gt;&lt;br /&gt;What I've taken away from this experience is that I absolutely, positively, 100% don not ever want to do any serious Win32 C/C++ development.  Ever.  EVER.  And if I do have to go down that road, then I'm going to try and stick with ANSI... maybe even to the point of using cygwin exclusively to avoid getting sucked into this nightmare again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-3079783263660236409?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/3079783263660236409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=3079783263660236409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/3079783263660236409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/3079783263660236409'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2010/01/win32-c.html' title='win32 c++'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-4584071349945495839</id><published>2010-01-13T21:07:00.002-06:00</published><updated>2010-01-13T21:18:24.092-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>kindle 2 weeks later</title><content type='html'>I still like what I said before about the Kindle, but the one thing it hasn't done is spurred my recreational reading.  Yeah, I can rip through books quicker, but having trouble finding the time to actually commit to reading.  Suspect this is work related, since I'm basically learning (or relearning) tech just about each day.&lt;br /&gt;&lt;br /&gt;I tried out the magazine and newspaper subscriptions, but I found that even those weren't enough incentive to turn the sucker on each morning.  I also found that periodicals who are publishing their content in Kindle format are playing this weak game of not including everything and instead reserving that for customers who have paid for subs to their website (or ordered the dead tree version).  Same money, less content?  No, but thanks anyway.&lt;br /&gt;&lt;br /&gt;I'm also discovering that anything beyond new releases is going to be kind of hard to find kindlefied.  An elusive book that has remained on my Stuff To Read list for way too long is When Harlie was One... but it's been out of print for nearly decades.  The only way I'm likely to see it is if I can track it down at the library or maybe stumble across it in the Half Price Bookstore.  Chances of getting via kindle (legally) are pretty low.&lt;br /&gt;&lt;br /&gt;In other news, I've discovered that if you put the text to speech feature on it's fastest setting and use the female voice, it does a passable job of reading flowing prose to you at a rate that doesn't require too much attention.  Was able to drive with it going on.&lt;br /&gt;&lt;br /&gt;Bottom line: it's by no means perfect, but it's got enough bonuses to justify purchase.  And those are mainly, 1) text to speech, 2) ability to convert your own material to kindle format, and 3) the fact that I won't have another 5 boxes of books to pack up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-4584071349945495839?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/4584071349945495839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=4584071349945495839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4584071349945495839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4584071349945495839'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2010/01/kindle-2-weeks-later.html' title='kindle 2 weeks later'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-8274385504025367377</id><published>2009-12-29T15:05:00.002-06:00</published><updated>2009-12-29T15:16:35.995-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>[books] ragamuffin</title><content type='html'>I'd heard about &lt;a href="http://www.tobiasbuckell.com/"&gt;Tobias Buckell&lt;/a&gt; when he showed up on &lt;a href="http://www.deadrobotssociety.com/"&gt;Dead Robots Society&lt;/a&gt; to do a podcast episode, and from the interview he sounded like exactly the kind of creative little monkey that makes stuff I like reading about.  He'd mentioned a couple of his books, but the one that stuck out in my mind was "Ragamuffin".&lt;br /&gt;&lt;br /&gt;As a result, that was the first I ended up snagging after I got my Kindle online.&lt;br /&gt;&lt;br /&gt;It turns out that this is book two in a series that has 3 entries so far ("Crystal Rain" being the first, and "Sly Mongoose" being third) which means I've once again been introduced to a universe in the middle of the story.  But the way the book is structured, you're eased into the history of the universe while being started off with some pretty brutal action in the story.  I also really enjoyed the pace of the story and found it to be pretty well crafted overall.&lt;br /&gt;&lt;br /&gt;I'd highly recommend this book, and have already snagged the other two in the series.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-8274385504025367377?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/8274385504025367377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=8274385504025367377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/8274385504025367377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/8274385504025367377'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/12/books-ragamuffin.html' title='[books] ragamuffin'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6251703580944136705</id><published>2009-12-29T14:57:00.002-06:00</published><updated>2009-12-29T15:05:11.609-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='nerd'/><title type='text'>now with 20% more kindle flavor</title><content type='html'>I scored a Kindle for Christmas, and have been busy catching up on a bunch of reading that I have neglected.  Most of it is sci-fi stuff so far, but I'm also planning on ganking stuff from &lt;a href="http://www.gutenberg.org/"&gt;Project Gutenberg&lt;/a&gt; (as in "printing press", not "Police Academy") and some other interesting/educational texts.&lt;br /&gt;&lt;br /&gt;The big hassle is that the Kindle's PDF reader is kind of limited.  Specifically, it can't resize fonts at all, which makes reading some of the books I've got rather difficult.  I've snagged Mobikit's Creator Publisher version and managed to convert both &lt;a href="http://www.spoonix.org/downloads/books/ranger_handbook/ranger_kindle.zip"&gt;The US Army Ranger Handbook&lt;/a&gt; and all 24 of the &lt;a href="http://www.spoonix.org/downloads/books/NEETS/neets_kindle.zip"&gt;NEETS&lt;/a&gt; modules into kindle format.  Conversion seems to do great for text, but messes up formatting of stuff like tables and the placement of artwork.&lt;br /&gt;&lt;br /&gt;Pretty slick stuff so far.  Amazon did a good job of integrating their store with it and making it easy to acquire content.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6251703580944136705?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6251703580944136705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6251703580944136705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6251703580944136705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6251703580944136705'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/12/now-with-20-more-kindle-flavor.html' title='now with 20% more kindle flavor'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-5764570647683796959</id><published>2009-12-15T05:57:00.003-06:00</published><updated>2009-12-15T06:23:04.337-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>ebox</title><content type='html'>Ok, so mentioned it briefly in another vanity tool that allows self-promotion 140 characters at a time, but I didn't get around to writing up anything on it here.  Time to fix that.&lt;br /&gt;&lt;br /&gt;At my orc place, we recently had a few folks move to Windows Vista (now 7) desktops at home.  This was ok, until they attempted to connect to the VPN only to discover that it no longer worked.  The problem is that Microsoft removed support for the MS-CHAPv1 protocol and only MS-CHAPv2 is available, but the VPN appliance we were using doesn't speak MS-CHAPv2.  One option was to setup L2TP on the appliance, but that ended up being all kinds of fail due to some funky routing stuff that had to be preserved and was beyond my capabilities (the best I can do is smash the device with a hammer and swear a blood oath to track down all those responsible for producing it).&lt;br /&gt;&lt;br /&gt;So.  Fsck it all to hell.  We started looking at Linux based solutions that could handle L2TP, and that's when I stumbled across &lt;a href="http://www.openvpn.net/"&gt;OpenVPN&lt;/a&gt; (which supports Mac/Win/Lin).  Easy enough to setup, but at the last minute got the added constraint that the solution should be generic enough that someone else could manage it (ie, the company could find a networking monkey to come in and make sense of it).  &lt;br /&gt;&lt;br /&gt;While getting ready to install it on an Ubuntu box, I noticed that they had "ebox-openvpn" and did some digging on that.&lt;br /&gt;&lt;br /&gt;It turns out the &lt;a href="http://www.ebox-platform.com/"&gt;eBox&lt;/a&gt; is one of those "appliance distros".  It's based on ubuntu, and comes with a web config utility which seemed to satisfy the "normal people can use it" requirement.  We ended up just downloading the distro that eBox offers up on their website and installing that without any major hassles.&lt;br /&gt;&lt;br /&gt;eBox is actually a pretty cool little distro you should check out if you need a small intranet server for a hub office or a small, decentralized startup.  It comes with not only a well laid out iptables system and OpenVPN, but also includes stuff like a mail virus/spam filter, file server, and ability to do the BC thing for active directory with samba/kerberos/ldap.  Handiest of all, though, is that it's got a certificate management system that lets you setup your CA, and issue X.509 certs pretty easily.&lt;br /&gt;&lt;br /&gt;There are some rough edges, though.  Because it's an appliance distro, it's guilty of the same thing stuff like Plesk is guilty of.  It considers its own internal database to be authoritative for all configurations on the system:  if you hack a config file by hand, prepare for the changes to get blown away when the service or server is next restarted.  That wouldn't be a problem, except for the fact that the web interface is by no means comprehensive when it comes to configuring the services.  For example, we needed to add in some extra options to OpenVPN to tell it to force the client to set default route to the VPN, who the WINS and DNS servers, etc... fairly straightforward to do in the openvpn.conf, but there wasn't anyway to set those in eBox.  Finally, my last gripe is that you have to "save" all changes before you can exit a config screen.  This makes mass tweaking of the interface kind of tedious and slow going.&lt;br /&gt;&lt;br /&gt;There was also a problem with the client openvpn package that ebox generated for us.  The zip file had the right certificate, but the client didn't work.  We ended up having to replace it with the .exe directly from openvpn's site.&lt;br /&gt;&lt;br /&gt;As for solving the original problem, I'd suggest just nutting it up and learning how to deal with openvpn through it's config file.  The config is actually pretty straightforward (and short).  The main reason we decided to keep eBox installed and in place, however, was because of the certificate management feature and because we didn't want to spend anymore time re-installing a distro onto the server.&lt;br /&gt;&lt;br /&gt;I'm not sure I'd recommend eBox for a large, more established network, but it definitely seems like the way to go if you need to get a small shop up and online in a couple of hours.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-5764570647683796959?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/5764570647683796959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=5764570647683796959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5764570647683796959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5764570647683796959'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/12/ebox.html' title='ebox'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-1858452062330306754</id><published>2009-11-16T04:39:00.003-06:00</published><updated>2009-11-16T04:56:50.801-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><title type='text'>moar laz0rs</title><content type='html'>So, got the table bits lashed together and working properly now.  Ugly end product that looks like a 7th grader put it together:&lt;br /&gt;&lt;br /&gt;&lt;img width="320" height="240" align=center src="http://www.spoonix.org/downloads/pics/table/prototype-1.jpg"&gt;&lt;br /&gt;&lt;br /&gt;And the end result is thus:&lt;br /&gt;&lt;br /&gt;&lt;img align=center src="http://www.spoonix.org/downloads/pics/table/prototype-2.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately, one of the lasers is misaligned, so you still get bright light shining off your thumb when it's not touching the screen unless your hand is at a (completely unnatural) 90 degree angle to the table.&lt;br /&gt;&lt;br /&gt;Support is the next thing to work on, then it's time to look at the projection stuff.  Ouch.&lt;br /&gt;&lt;br /&gt;What I ended up doing:&lt;br /&gt;&lt;br /&gt;1) just using the clay to hold the laser and adjust the pitch and yaw, then striped some hot glue across the top to control roll.&lt;br /&gt;2) stapled the wires up along the sides to the top of the frame&lt;br /&gt;3) hacked up quickcam for the shots as noted in previous posts&lt;br /&gt;&lt;br /&gt;It turns out that the grooves that I cut were pretty much unnecessary.. the light seems to shine fine if the laser is flush with the acrylic.  We slapped wet modeling paper clay into each corner and used some guides to calibrate the beam, and pushed the laser down into the clay until it just about dug a channel out from the front of the laser to about half way back.  Then we left the clay to dry for about 20 hours before gluing the lasers in place.&lt;br /&gt;&lt;br /&gt;For calibration, we simply used 4 red Solo plastic cups to provide markers for the beam and adjusted the beams by using a webcam with the lights turned down low.  We didn't use the modified logitech because I wanted to be able to see where the beam was in relation to the cup.  Some stuff I learned during calibration:&lt;br /&gt;&lt;br /&gt;1) if the beam appears to be V shaped, it means you've got one side angled up and the other side is a reflection from the table top.&lt;br /&gt;2) the just above the white lip of the cups is about where you want the line to be, or right below the bottom crease on the cup&lt;br /&gt;3) for the line splitters on the laser, you want to make sure that the rough side is facing towards the laser lens, and the smooth side is pointed out.  :( Instead of a focused 89 degree arc, we got a 150 degree arc that dimmed the closer you got to the center&lt;br /&gt;4) don't be afraid to drop the camera down under the table to make sure that you've got the laser shining at the right place... ie, test each laser from the under the table POV&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-1858452062330306754?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/1858452062330306754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=1858452062330306754' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1858452062330306754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1858452062330306754'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/11/moar-laz0rs.html' title='moar laz0rs'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-7894468117503681701</id><published>2009-11-08T23:46:00.002-06:00</published><updated>2009-11-09T00:05:17.002-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><title type='text'>laser table update</title><content type='html'>We ran into a problem with the lasers, or more specifically a problem powering the lasers a couple of weekends ago.  Last weekend was still unable to solve it and was getting kind of frustrated... especially since construction time is limited to weekends and actually building this thing isn't nearly as interesting to me as starting work on the software/API.&lt;br /&gt;&lt;br /&gt;I'd ordered a 3.3V/5V regulated breadboard power supply from &lt;a href="http://www.sparkfun.com/"&gt;sparkfun&lt;/a&gt; and a 5V/1A wall wart.  After a couple of minutes of operation, the circuit would drop to 1.9V.  Did some checking and found out that a heatsink on the thermal regulator could be applied, so we tried and got the lifetime up to 20 minutes.  When I tried rewiring the lasers to share a parallel circuit to the power supply (like how I'd planned on rigging them up when it was time to deploy), the fsckers immediately started dropping voltage to 1.9 again.&lt;br /&gt;&lt;br /&gt;Last night, we played a hunch and replaced the voltage regulator with a new one, and lo and behold, the lasers ran for 2 hours with nary a hiccup.  We'd also swapped out the 22 gauge solid wire for 18 gauge threaded speaker wire, and hooked up each laser to a plug that could fit on the bread board.  The end result is that all this can nicely be transferred to a PCB and mounted fairly easily.  We also ended up replacing the 5V wall wart with a selectable voltage wall wart set to 7.5V... it just wasn't delivering the current at 5V for some reason.&lt;br /&gt;&lt;br /&gt;On the actual acrylic side of things, I swung by Home Depot and picked up some 1x1x36 molding pieces, spray painted 3 sides satin black, and cut them down to size (along with a 45 degree angle on the corner) in order to use them as a safety rail for the lasers.  The plan for calibration will be to use the modelling clay idea abratrarious suggested, and just glue the fsckers in place.&lt;br /&gt;&lt;br /&gt;End result, the table looks more and more like some middle school shop project, but meh... that's what prototypes do.&lt;br /&gt;&lt;br /&gt;Also started to notice that some of the superglued acrylic pieces are falling off.  it's possible that I might end up having to just yank them entirely and bolt the table together.  I think I see how this can be done without a problem now.  I superglued the guard rails on to the acrylic, and we'll see how long those hold.&lt;br /&gt;&lt;br /&gt;For the support, I'm thinking about just hacking together a dorm room table (some plywood, metal pipe, and metal fasteners), but instead of trying to cut a hole in the plywood, just flip the table upside down so the acrylic will be resting on the table's feet.&lt;br /&gt;&lt;br /&gt;Finally, also worth mentioning the IR filter on the webcam.  The webcam is a Logitech Quickcam for Notebooks, and it turns out that after you've remove the IR filter it's unnecessary to put your ambient light filter in the same spot.  I was able to refocus the camera, and drop the little square of floppy disk material down into the lens well without having to remove it's assembly and wedge it into the other side.&lt;br /&gt;&lt;br /&gt;The plan is for laser calibration in the clay on Wednesday (holiday), and maybe take a stab at building the support system.  After that, it'll be testing the effectiveness of the camera to see light blobs, and then finally figuring out what to do about project.  Was still considering the fresnel thing, but it turns out that it's hard to find a 15" LCD on a shelf these days... will probably start scouring used comp stores around here to see what they got.&lt;br /&gt;&lt;br /&gt;Minus the PC and the aggravation so far invested, project is still under $200 for materials, if the fresnel thing works, could probably beat $500 for the total.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-7894468117503681701?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/7894468117503681701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=7894468117503681701' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7894468117503681701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7894468117503681701'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/11/laser-table-update.html' title='laser table update'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-1852476293507448306</id><published>2009-11-04T15:40:00.005-06:00</published><updated>2009-11-04T16:29:48.333-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='polecats'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><title type='text'>massive software design fail and why a $1.2T health care bill is doomed to the same thing</title><content type='html'>I found out about the existence of this project when the company I work for was tasked to do some clean-up work on the training videos (note: the opinions expressed here are mine and mine alone and not those of my employer).  For some background on AHLTA, I'd point you to &lt;a href="http://www.healthbeatblog.org/2008/09/ahlta-textbook.html"&gt;this article&lt;/a&gt;.  While the author wants to pin the blame on the "Bush administration", it's really the same story that's been played out time and time again in the quixotic quest to develop an electronic medical records system for a government run health care system (the military).  The "Obama administration" is just as likely to launch the same failures (if not larger ones due to the increase in willingness to expand federal spending by adding to the deficit and creating more bureaucracies).&lt;br /&gt;&lt;br /&gt;Today it was finally announced that &lt;a href="http://www.nextgov.com/nextgov/ng_20091103_1219.php"&gt;the Army is halting deployment&lt;/a&gt; of the system, and my guess is that it's going to be scrapped.&lt;br /&gt;&lt;br /&gt;Bottom line:  around $30 &lt;b&gt;B&lt;/b&gt;illion and almost 5 years for something that has absolutely zero utility, is completely user hostile, and cannot be re-used in any way.  The money and time spent on the project are just gone.  Poof.  Game over, man.  Game over.&lt;br /&gt;&lt;br /&gt;The reason this boondoggle got to be so bad?  Each time someone stepped up and said, "This is crap and it doesn't do what it's supposed to do" they were stamped back down by superiors who were afraid of how it would look if they admitted defeat and wrote off the money already spent on the project.  Yeah, I'd be pissed off (as a taxpayer) if they had canceled the project in Sept 2008 when the price tag was $20 billion... but at least they would have saved a year and $10 billion off the effort.&lt;br /&gt;&lt;br /&gt;But here's the problem.  Technically, nothing went wrong with the development process of this system.  Studies were done, requirements were gathered, development schedules were created, and contract officers signed off that the requirements were met.  The contractors did exactly what they were told to do and produced exactly the software that the Army asked for.&lt;br /&gt;&lt;br /&gt;Not the software they needed.&lt;br /&gt;&lt;br /&gt;This is a $30B illustration of the absolute failure of old design philisophies, specifically the ones that rely on the end user to know both what their requirements are and what the language should be to describe them.  Agile development techniques have cropped up in the private sector over the past decade and have found success in smaller businesses (or divisions inside of larger organizations) where the developers can maintain contact with the end users and subject matter experts to address design issues.   Requirements-based development, however, forces developers to guess on design issues, or worse, leave the question to be hashed by a committee of people who won't be using the system, don't know the subject matter, and commonly don't even use the same terminology for the various parts of the system .&lt;br /&gt;&lt;br /&gt;Because government contracts (and large enterprise projects) are so large and so much money is at stake, the decision to use agile development techniques is usually discounted.  The bias seems to be, "Well, that's not the method we used to develop this other $10 billion project" and completely ignores the fact that that other project also failed to deliver software that the users truly need and has only succeeded because employees were &lt;b&gt;ordered&lt;/b&gt; to use it and work around the problems.... &lt;strong&gt;if the project is lucky and isn't scrapped entirely after launch&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;AHLTA isn't the first example of this, either.  The FBI was forced to give up on a $10 Billion project to improve their information infrastructure.  The IRS blew $20B.  Even the concept of electronic medical records itself isn't new... it's been attempted many times under many different initiatives by various groups in the DoD since at least the 1980's.&lt;br /&gt;&lt;br /&gt;The endemic problem here isn't the contractors, it's the fact that there is a bureaucracy that's left in charge of the project.  There is no single person with the power to say, "This is fail.  Try again," until the project is completed and the money is spent.  Both structure of the contract -- and in the case of government project, laws -- prevent shifting the focus of software development from simply implementing a laundry list of pre-determined features into a user-needs oriented development model.  That's why I believe it's a fallacy to pin it on any "administration".  It's the mid-level officials who keep the same jobs between administrations that are jacking things up and sheltered from the consequences of failure to act.&lt;br /&gt;&lt;br /&gt;What I find truly scary about all this is that we now have a bill sitting in Congress that allocates $1.2 &lt;b&gt;T&lt;/b&gt;rillion for spending on health care for the public.  A large portion of that money is meant to fund a switch to EMR for the public and its premise is that we can reduce the cost of health care if we can reduce the cost of managing health care information.&lt;br /&gt;&lt;br /&gt;If we can't get this right &lt;strong&gt;for just dental coverage&lt;/strong&gt; of 3 million people in the Army, how in the hell is this method supposed to work for 330 million across 50 states?  Just at the IT level... forget the adminstrative stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-1852476293507448306?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/1852476293507448306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=1852476293507448306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1852476293507448306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1852476293507448306'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/11/massive-software-design-fail-and-why.html' title='massive software design fail and why a $1.2T health care bill is doomed to the same thing'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-7757152960563760615</id><published>2009-10-27T21:01:00.004-05:00</published><updated>2009-10-27T21:09:45.692-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>bsg: the plan</title><content type='html'>Just got finished watching BSG: The Plan.  Pretty good.  Ties up some loose ends from the series, offers up the Tricia Helfer Variety Pack (my vote's for trashy brunette), and introduces a new minor character for one of the subplots.  Lots of the show splices in footage from the series in with new scenes, so it's kind of a retrospective as well.  The 2's (Simon) get a more prominent role, and Leeoben is still pretty freaky but a lot less spooky once his story is revealed.&lt;br /&gt;&lt;br /&gt;Also, Dean Stockwell is either an exceptionally evil man or a bad ass actor, and that's all I'm going to say about that.&lt;br /&gt;&lt;br /&gt;This is definitely worth checking out if you're a BSG freak like me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-7757152960563760615?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/7757152960563760615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=7757152960563760615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7757152960563760615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7757152960563760615'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/10/bsg-plan.html' title='bsg: the plan'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6224986519694862166</id><published>2009-10-27T04:56:00.003-05:00</published><updated>2009-10-27T05:08:17.085-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>amazon now offers cloud mysql</title><content type='html'>Just got some spam from Amazon announcing the availability of their &lt;a href="http://aws.amazon.com/rds/"&gt;RDS&lt;/a&gt; (relational database system).  The idea is that they basically manage a mysql server for you, and data transfer between RDS and EC2 machines in the same zone is free.&lt;br /&gt;&lt;br /&gt;Scratching out some rough numbers, that's about $85/mo for their low end db server.. backups included.  They're also dropping the rate for linux EC2 instances, and that works out to about $63/mo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6224986519694862166?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6224986519694862166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6224986519694862166' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6224986519694862166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6224986519694862166'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/10/amazon-now-offers-cloud-mysql.html' title='amazon now offers cloud mysql'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-5964526528449609376</id><published>2009-10-26T13:47:00.003-05:00</published><updated>2009-10-26T14:06:34.535-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>plexiglass sucks</title><content type='html'>Spent the weekend cutting up a sheet of plexiglass for the table top.  I hate cutting the stuff, but it seems to have worked out ok (aside from my complete inability to cut a straight line).&lt;br /&gt;&lt;br /&gt;Ended up snagging a sheet of 36"x30" sheet of 0.203" acrylic from Home Depot for about $43 (total cost of project so far is around $120).  Since 0.203" is about 5mm and the diameter of the laz0rs is 12mm, I decided to just cut 4 grooves at 45 degrees in each of the corners, then glue on a 1"x1" base plate on the bottom to support the lasers.  I then cut about 8 3/4"x1/2" blocks to glue on the top side of the plexiglass on each side of the groove in order to something close to the top of the laser that I can bolt a cap on to.&lt;br /&gt;&lt;br /&gt;The extra bits (baseplates and blocks) came from the scrap I had after cutting 3" off the sides and 5" off the top so that I ended up with a 33"x25" piece (32"x24" for projection area, 1" margin for mounting lasers and the frame later on).  I also use a piece of scrap to do some test cuts and to check out the laser to make sure it was sitting about right down in the groove.&lt;br /&gt;&lt;br /&gt;My previous experience was with much thinner plexiglass, and the only viable way to cut that was with a scoring tool.  With this thicker stuff, so I was able to put masking tape on both sides of the sheet, draw the cut line, and move a jigsaw through it at about 1/2 speed without any melting or the sheet cracking.  I did a test cut on some of the scrap I had left over without the tape and the blade made it about 2" into the cut before the melted plastic jammed the jigsaw blade.&lt;br /&gt;&lt;br /&gt;And speaking of the blade... I went with a carbon blade designed for cutting metal.&lt;br /&gt;&lt;br /&gt;For the 45 degree grooves, I cut in with the jigsaw, tried to round out a corner cut, and then just cleaned out any left over with a dremel.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Testing out with the laser showed revealed something I hadn't accounted for in my earlier designs -- the fact that lasers are very precise little bitches, and that while the grooves I made for them gets them pointing in generally the right direction there still needs to be some way to do fine grained calibration.  Namely, elevate the rear end of the lasers and make sure that they're throwing the beam parallel to the glass.&lt;br /&gt;&lt;br /&gt;Next tasks: rigging up power for all 4 lasers, doing tests to find out how far away to mount the camera, and figuring out how to mount the lasers so that they can be adjusted.&lt;br /&gt;&lt;br /&gt;For the support frame, I'm kicking around just getting an old vanity cabinet or something to hold everything.  Still ignoring the project problem for the time being.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-5964526528449609376?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/5964526528449609376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=5964526528449609376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5964526528449609376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5964526528449609376'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/10/plexiglass-sucks.html' title='plexiglass sucks'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-8543278751426775943</id><published>2009-10-21T02:02:00.002-05:00</published><updated>2009-10-21T02:31:45.332-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>math fail</title><content type='html'>So it turns out that if you want to like, play with electricity, you have to do some of that math crap.  It also turns out that when you see numbers like "3.2V 25m" the "m" doesn't stand for milliamps, it means milliwatts... and using that math stuff, that works out like 7.8 mA.&lt;br /&gt;&lt;br /&gt;P = V * C  (power [watts] = voltage * current [amps])&lt;br /&gt;V = I * R  (voltage = current [amps] * resistance [ohms])&lt;br /&gt;&lt;br /&gt;I was testing the lasers out by simply hooking the power leads up to my cell phone 5.5V cell phone battery, but later we rigged up something a little more stable with a 9V battery, and some alligator clips on a 270 ohm resistor.  Turns out that's pushing 33 mA on 300 m.&lt;br /&gt;&lt;br /&gt;Whups.  It still worked, but apparently overclocking the lasers means you lose some of their life.&lt;br /&gt;&lt;br /&gt;In other news, I snagged a Logitech Quickcam for Notebooks (yes, that whole thing is the product name... no version numbers or anything.. "for Notebooks) for around $40.  The cam is way easy to disassemble as everything is screwed together, and driver support for Linux is in most current distros.  IR filter popped out easily enough.  For the regular light filter, I tried cutting out a square from an old floppy disk, but it severely dims the IR light at a distance of about 3 feet.  Going to try an exposed negative next.&lt;br /&gt;&lt;br /&gt;Still trying to figure out what I'm going to do about mounting the lasers on the acrylic.  The diameter of the laser (including the casing) is about 1/2 an inch which is about 13mm, so just sitting the laser on top of the acrylic is going to be about 6mm above the surface (and it needs to be at one).  Thinking about just getting the acrylic so that there's an extra inch on each side and cutting 4 1/4 inch wide slides at 45 degree angles in each corner.  That should let me sit the laser so the beam is just right above the surface, make it easy to secure with some tape, and allow me to easily remove them from the board to make adjustments.&lt;br /&gt;&lt;br /&gt;Now I just have to find a way to deal with the nightmare of cutting acrylic...  :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-8543278751426775943?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/8543278751426775943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=8543278751426775943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/8543278751426775943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/8543278751426775943'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/10/math-fail.html' title='math fail'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-3243193677693186172</id><published>2009-10-20T15:42:00.004-05:00</published><updated>2009-10-20T15:54:27.721-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>IR lasers finally arrive</title><content type='html'>So it only took 11 days, but the lasers are finally here.  Was talking with TheDude about how I'm going to power them, and he suggested a USB hack and pointed me towards &lt;a href="http://www.maximumpc.com/article/features/get_your_hack_on"&gt;this maximumpc article&lt;/a&gt; that covers the basics.  Have already checked them out to make sure that the light is visible on the webcam I'm thinking about snagging by simply hooking them up to the cellphone battery for a test run.&lt;br /&gt;&lt;br /&gt;The numbers: I got 4 lasers, 3.2V each, 25 mA, currently unknown resistance.  The plan is to appropriate the USB cable from a dead MS Intelliexplorer mouse and use that for USB power source.  The USB port runs 5 volts at 100 mA in lower power mode, so I shouldn't need to worry about asking it for more power or anything.&lt;br /&gt;&lt;br /&gt;The shopping info:  I ordered 740 nm lasers with 89 degree line splitters from aizix.com for $11 each ($8 for laser, $3 for splitter attachements).  Not entirely sure I would recommend them, but as of right now I don't know of anyone else who isn't selling just the diodes or the laser already as part of some other device.&lt;br /&gt;&lt;br /&gt;ToDo list:&lt;br /&gt;&lt;br /&gt;1) obtain the acrylic sheet and figure out how I'm going to mount these suckers (estimating $20 for the sheet)&lt;br /&gt;2) acquire a camera (thinking about a $20 gigaware cam from The Shack) and modify it to remove the IR filter and possibly in a regular light filter by butchering a floppy disk&lt;br /&gt;3) splice work for the lasers and make sure that the camera can see the touches&lt;br /&gt;4) clean install of linux on an old PC and see if I can't get the nuigroup software up and running&lt;br /&gt;&lt;br /&gt;Projector and the frame to hold all this remains question marks for the time being.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-3243193677693186172?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/3243193677693186172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=3243193677693186172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/3243193677693186172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/3243193677693186172'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/10/ir-lasers-finally-arrive.html' title='IR lasers finally arrive'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-2396010596218219598</id><published>2009-10-09T00:41:00.002-05:00</published><updated>2009-10-09T00:53:18.811-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music videos'/><title type='text'>it's poetry in motion</title><content type='html'>So.  I'm doing research on MT stuff this week.  Got a friend who's pondering his own high altitude photography project based on the &lt;a href="http://www.wired.com/gadgetlab/2009/09/the-150-space-camera-mit-students-beat-nasa-on-beer-money-budget/"&gt;MIT stuff&lt;/a&gt;.  &lt;a href="http://dsc.discovery.com/news/2009/10/06/nobel-prize-physics.html"&gt;The inventors of CCD are finally getting the credit they deserve.&lt;/a&gt;  We're bombing the hell out of the moon.  We've found out Europa's water is oxygen rich and Saturn has yet another ring. &lt;a href="http://dsc.discovery.com/news/2009/09/28/feathered-dino.html"&gt;And we now know that T. Rex had feathers.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yessir, I think we can safely break this video out for this week.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/2IlHgbOWj4o&amp;hl=en&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/2IlHgbOWj4o&amp;hl=en&amp;fs=1&amp;color1=0x006699&amp;color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-2396010596218219598?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/2396010596218219598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=2396010596218219598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2396010596218219598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2396010596218219598'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/10/its-poetry-in-motion.html' title='it&apos;s poetry in motion'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6589541246191992821</id><published>2009-10-09T00:14:00.002-05:00</published><updated>2009-10-09T00:36:34.852-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>leaning towards laz0rs</title><content type='html'>After doing some more reading and watching the &lt;a href="http://arbi.trario.us/2008/11/02/diy-laser-multi-touch-table/"&gt;arbitraious's laser table&lt;/a&gt; demo, I'm pretty much sold on trying that out first.  Aside from the fact that mounting 4 lasers sounds like a much easier task than 40 LEDs, it also sounds like the laser approach offers up better responsiveness.  The lasers are slightly more expensive (around $8 per, whereas the LEDs are about $2.63 for 10 for the high end ones), but that's not really the major cost center of this project.&lt;br /&gt;&lt;br /&gt;Plus, I'm sure that by simply ordering lasers online, your name automatically goes on some FBI watch list, so... +notoriety, amirite?&lt;br /&gt;&lt;br /&gt;For the video camera, I'm planning on grabbing a $20 Gigaware 1.3MP cam from The Shack (looks like a flat disk... avoid the one that looks like a mini-quickcam-eyeball-with-a-bump-on-it) simply because it's so low profile.&lt;br /&gt;&lt;br /&gt;The sticking point is what to use to actually project the image.  I don't want to waste money on another projector, but TheDude pointed out that some of the pico pocket projectors are around $200 and designed explicitly for short throw distances.  The other approach might be to just tear apart an LCD and get a fresnel lens.  Still mulling that part over.  It'll affect the height of the enclosure.&lt;br /&gt;&lt;br /&gt;I'm also mulling over the construction of the frame to hold the acrylic sheet.  Trying to decide if there's a way to have it hold the lasers in place without having to muck with the sheet itself, and looking for some IR absorbing material to line the insides with (for that token nod towards "safety").  Will probably start ordering parts tomorrow and see how it goes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6589541246191992821?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6589541246191992821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6589541246191992821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6589541246191992821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6589541246191992821'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/10/leaning-towards-laz0rs.html' title='leaning towards laz0rs'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-1714343475498987951</id><published>2009-10-08T23:32:00.002-05:00</published><updated>2009-10-09T00:12:35.178-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>NEETS</title><content type='html'>Ok.  Admission time.  I don't know a damned thing about electronics, aside from the fact that capacitors are round and the big ones can probably kill you so just stay the hell away from them.&lt;br /&gt;&lt;br /&gt;But it's become clear that some electrical work is going to need to get done in order to pull of the MT screen.  The usual strategy of wait helplessly until New Egg sells isn't going to work this time.&lt;br /&gt;&lt;br /&gt;So my new strategy was turning to Mr. I Grew Up MacGuyvering Radios Together with Bobby Pins and a Potato and Have an EE from the Air Force Academy -- aka, "Dad" for advice.  But that went something like:&lt;br /&gt;&lt;br /&gt;"Well, you'll need to get a couple of 82 ohm resistors."&lt;br /&gt;"Wait.  How'd you figure that out?"&lt;br /&gt;*incredulous look*  "You just take the voltage, add up the fronkus coefficient, and then subtract that from the average magnetosphere reading for the location where you'll be using the device."&lt;br /&gt;"That doesn't sound right."&lt;br /&gt;"And be sure you pick up a Henway with the breadboard at Radio Shack.  You need a Henway, or this is going to blow up."&lt;br /&gt;"What's a Henway?"&lt;br /&gt;"Ohhhhh, about the same as rooster! HAHAHAHAH!"&lt;br /&gt;"....  You are so screwed when we start talking about whether or not to put you into a nursing home."&lt;br /&gt;"Go do your own homework."&lt;br /&gt;"Seriously.  I'm going to watch 60 Minutes to make up the list."&lt;br /&gt;"And get a haircut."&lt;br /&gt;&lt;br /&gt;So I googled "electronic training that will really piss of my dad", and up came a link to:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.phy.davidson.edu/instrumentation/NEETS.htm"&gt;NEETS&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Google for the acronym if that link is dead... there are lots of places that carry mirrors of it.&lt;br /&gt;&lt;br /&gt;Navy Electrical and Electronics Training Series.  It's basically about 20 "modules" that take you through simple DC stuff, converting mechanical energy to electrical, radio waves, logic gates, and wraps up with  radar.  It's targeted towards enlisted personnel, so it's written for someone with a high school level education and slants more toward the trade side of things than dipping too far down into the theory.&lt;br /&gt;&lt;br /&gt;In short, if you've ever been curious about electronics but cringed in horror at the thought of going through a college level EE textbook, this is TFM you should R.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-1714343475498987951?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/1714343475498987951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=1714343475498987951' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1714343475498987951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1714343475498987951'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/10/neets.html' title='NEETS'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-4080667935006661699</id><published>2009-10-08T12:06:00.003-05:00</published><updated>2009-10-08T12:17:04.075-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game business'/><title type='text'>and now for a word from someone who's not so hot about steam</title><content type='html'>In plenty of previous posts, I've gushed about how Steam makes getting games painless and how cool the service is, but here's an &lt;a href="http://www.maximumpc.com/article/features/randy_pitchford_talks_borderlands_piracy_and_why_he_doesn%E2%80%99t_trust_valve?page=0%2C2"&gt;article with the opposing viewpoint&lt;/a&gt; from some guy called Randy Pitchford.&lt;br /&gt;&lt;br /&gt;His big thing seems to be that he simply doesn't trust Valve and that he thinks currently Steam is taking an unfair percentage of the game sale.&lt;br /&gt;&lt;br /&gt;Which might be true.&lt;br /&gt;&lt;br /&gt;But I tell you, I probably never would have bought CoD4 or Bioshock if they hadn't been on Steam and playable in a few hours.  I know for a fact that I never would have jacked around with Titan Quest or the Oblivion games if they weren't on Steam and sold as cheap bundles as I wasn't about to drive out to Best Buy and go sifting through the bargain bins just to find copies of them.&lt;br /&gt;&lt;br /&gt;I think the power of their distribution system is how easy it for games to keep selling beyond the initial launch window.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-4080667935006661699?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/4080667935006661699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=4080667935006661699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4080667935006661699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4080667935006661699'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/10/and-now-for-word-from-someone-whos-not.html' title='and now for a word from someone who&apos;s not so hot about steam'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-7105471522926472310</id><published>2009-10-07T14:13:00.007-05:00</published><updated>2009-10-08T23:28:44.643-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='multitouch'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>nuigroup and diy multitouch</title><content type='html'>Ho'k.  It's no secret that I hate the mouse the way Skynet hates John Connor.  If I could, I'd be sending California governors back in time to blow up Xerox PARC, but fscking physics just has to be a party pooper about that.  The mouse is here to stay, and I'm just going to have to deal with it.&lt;br /&gt;&lt;br /&gt;But there is one bright spark of hope for the human interaction with computers, and that is multi-touch.  It's not revolutionary in the sense of dot-com Super Bowl commercials with some jackass in a black turtleneck staring off into distance at all the great things ordering printer paper online will let him accomplish kind of revolutionary, but more in the sense of "Hey, maybe if we like dig a shallow trench between these two towns and fill it with rocks and then some sand to smooth it out, the wagon trips won't be so bumpy" kind of revolutionary.&lt;br /&gt;&lt;br /&gt;There are some amazingly cool things we can do from a user interface perspective beyond the simple pinch-to-zoom-in and ooh-look-I-just-threw-a-photo-across-the-desktop stuff we've seen so far.  The folks over at &lt;a href="http://nuigroup.com"&gt;NUI Group&lt;/a&gt; have a similar vision, and have started amassing information about what a MT interface should look like, how it should act, and all that good stuff.&lt;br /&gt;&lt;br /&gt;And so, I started looking around for a multitouch screen I could buy so I could get in on the action.&lt;br /&gt;&lt;br /&gt;The problem comes in with the fact that there's not really a whole lot of consumer stuff out yet.  Windows 7 will include support for MT devices, and there's a few laptops that are beginning to show up on the radar, but stuff like MS's Surface display is in the $10K price range.  If you're looking for something large but cost effective, the only solution appears to be building a FTIR device yourself.&lt;br /&gt;&lt;br /&gt;I've started doing some research on how to put this all together, and it doesn't look too difficult.  I'm planning on doing some research on the way and making notes somewhere to answer some of the questions I've had (ie, just how many IR LEDs do you need to get this working, can you sub in cheaper display technologies than an off the shelf projector, can I trick Krak into rubbing some peanut butter on his monitor, what sort of machine specs will be needed to run this smoothly, etc).&lt;br /&gt;&lt;br /&gt;Until then, here's some links:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.maximumpc.com/article/features/maximum_pc_builds_a_multitouch_surface_computer"&gt;Maximum PC's DIY MT Table&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.wired.com/gadgetlab/2009/05/multitouch-surface/"&gt;Wired Article on Yotam Mann's DIY Laser based MT system&lt;/a&gt;&lt;br /&gt;&lt;a href="http://gizmodo.com/278613/linux-mpx-multi+touch-table-may-become-alternative-microsoft-surface"&gt;Gizmodo's coverage of Multipointer X&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.lii-enac.fr/en/projects/shareit/linux.html"&gt;ENAC's MPX based project&lt;/a&gt;&lt;br /&gt;&lt;a href="http://arbi.trario.us/2008/11/02/diy-laser-multi-touch-table/"&gt;arbatrarious's DIY Laser Table project (which I'm now leaning towards instead of FTIR)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-7105471522926472310?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/7105471522926472310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=7105471522926472310' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7105471522926472310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7105471522926472310'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/10/nuigroup-and-diy-multitouch.html' title='nuigroup and diy multitouch'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6810664621051327728</id><published>2009-09-02T16:34:00.002-05:00</published><updated>2009-09-02T16:40:20.707-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>killer cyborg robots don't kill people... engineers who decide to give them chainsaw arms kill people</title><content type='html'>Krak pointed out this &lt;a href="http://www.newscientist.com/article/mg20327231.100"&gt;article about Noel Sharkey's take on AI&lt;/a&gt;.  I have to agree with him about the "no evidence of that" stuff and that AI is mostly about making the automaton look intelligent enough.&lt;br /&gt;&lt;br /&gt;So.. we probably won't ever see a cylon.&lt;br /&gt;&lt;br /&gt;Unless some crazy genius out there makes a breakthrough with fuzzy logic, or something.&lt;br /&gt;&lt;br /&gt;In his loft.&lt;br /&gt;&lt;br /&gt;Late on a Thursday night in October.&lt;br /&gt;&lt;br /&gt;And is just waiting for some more cash to order parts from Newegg.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6810664621051327728?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6810664621051327728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6810664621051327728' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6810664621051327728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6810664621051327728'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/09/killer-cyborg-robots-dont-kill-people.html' title='killer cyborg robots don&apos;t kill people... engineers who decide to give them chainsaw arms kill people'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-7020123691704686453</id><published>2009-09-02T00:07:00.003-05:00</published><updated>2009-09-02T00:17:07.097-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><title type='text'>wolfenstein... wow</title><content type='html'>So I says to myself, I says, "Self.  You haven't heard any news about that RtCW2 game since the trailers back in like January, and by the way wouldn't it be interesting to find out what Carmack talked about in his keynote at Quakecon this year?"&lt;br /&gt;&lt;br /&gt;I says, "Yeh.  Let's go see what google has to say about it."&lt;br /&gt;&lt;br /&gt;Well, it turns out that one of the key announcements at Quakecon was the release of Wolfenstein.  They'd dropped the "Return to Castle" and "2" part.  I took a look at some of the trailers, and.. it looks like a prettier version of the same game I already beat, but with a couple more weapons and the Veil gimmick thrown in.  Not terribly compelling.&lt;br /&gt;&lt;br /&gt;So I go out and look around at some of the community sites of clans I knew were just aching for this release, and the situation sounds pretty grim.  Less than 3 weeks after a launch I didn't hear about, the game has less than 50 players online.  Apparently there was (still is?) a massive memory leak that kills the multiplayer version after 4 maps, and the single player version is buggy.  This is the most underwhelming case I've seen a company make for a $50 product ever.  Even the demo looks like it'd be a waste of time.&lt;br /&gt;&lt;br /&gt;Which is really surprising to me, since id pulled off such visionary stuff with RtCW.&lt;br /&gt;&lt;br /&gt;Another big announcement from Quakecon was a game called Rage using their next gen engine.  Again, looks beautiful, but I swear I've already played the game before in Fallout 3.  I hate to admit it, but it looks like one of the icons of the industry isn't doing the needful any more.  There's something wrong when Infinity Ward and their heat-seeking dog missiles offer up a more compelling game play experience than a Quake/Wolf title.  :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-7020123691704686453?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/7020123691704686453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=7020123691704686453' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7020123691704686453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7020123691704686453'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/09/wolfenstein-wow.html' title='wolfenstein... wow'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-2677908539166571229</id><published>2009-08-30T19:55:00.002-05:00</published><updated>2009-08-30T20:08:59.134-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='forest for the trees'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>ebook insanity</title><content type='html'>So, the other day I noticed that I hadn't read any fiction in quite a while.  I'd fallen into a rut of tech manuals and online howtos as my only reading, and my prime source of entertainment coming from hulu/netflix or video games.  I decided it was high time on catching up on some good sci-fi, and with the memory of recently lugging around boxes of novels after the move a few months fresh in my mind I decided to check out the ebook route (since O'Reilly's Safari has been absolutely kick ass for me).&lt;br /&gt;&lt;br /&gt;I was shocked (shocked!) to find out that the publishers wanted about $20 for an ebook.  That puts it on the same price level as a hardback book (which I rarely buy).  Paperback novels are in the $10-12 range, and the mass paperbacks (what shows up in the airport or along that back wall at Barnes and Nobles) are about $7.  That's assuming you buy the book new... which means the publisher gets a cut of that.  If you buy it used from Half Price Books or from Amazon, the range is about $2-5, and the publisher makes zero dollars.&lt;br /&gt;&lt;br /&gt;You would expect the ebook to appeal to the lowest common denominator... that the publishers would be using it as a way to snipe at those $2-5 transactions they aren't getting a cut of.  But you'd be wrong.  They &lt;a href="http://www.ft.com/cms/s/0/0df31226-958d-11de-90e0-00144feabdc0.html"&gt;seem to think that ebooks are competing with hardcovers&lt;/a&gt;.  It's like they don't understand that people who already buy hardcovers do so because they like the big print, extra art, and the fact that you have a good, solid book in your hands, and that these people wouldn't be likely to purchase only the ebook, anyway.&lt;br /&gt;&lt;br /&gt;If the story is the key piece of intellectual property that they're selling, I find it highly amusing that I can go download and watch The Hunt for Red October in 2 hours from Amazon for $6, but if I want the pdf version to spend a week reading that'll cost $18.  And then the publishers have the nerve to bemoan the fact that no one reads anymore....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-2677908539166571229?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/2677908539166571229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=2677908539166571229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2677908539166571229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2677908539166571229'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/08/ebook-insanity.html' title='ebook insanity'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-7699442505920857571</id><published>2009-08-23T10:51:00.001-05:00</published><updated>2009-08-24T05:22:01.564-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><title type='text'>call of duty 4: modern warfare</title><content type='html'>Snagged CoD4 from Steam and spent some time playing it.  It's yet another installment of the good old Call of Duty series.. nothing much has changed except for the setting.&lt;br /&gt;&lt;br /&gt;As usual, the game itself is more about immersing you in a cinematic experience than anything else.  A lot of the one-liners are pulled from iconic movies.  Bad guys will keep swarming out of spawn points periodically until you finally figure out you're supposed to move up and take the house they're coming from in order to stop the script trigger.  You're squadmates' main job seems to be running directly into your line of fire and blocking doorways so you can't run back through a door to find cover from a grenade.  And, if you happen to run out of ammo, just pick up one of the 7,000 guns laying around on the ground from previously conquered enemies to keep bringing the pain.&lt;br /&gt;&lt;br /&gt;The game has added in some new mechanics, such as stealth movement in the SAS episodes and guided missiles in the form of firing a Stinger and a Javelin.  And I've got to admit that the opening level is really well done (I'm on a boat!) from an immersion standpoint.  Haven't tried the multiplayer stuff yet, but that's on the todo list.&lt;br /&gt;&lt;br /&gt;Overall, not bad entertainment, but I wouldn't say it's groundbreaking in anything other than scriptwriting and the fact that it's not yet-another-WWII game.  :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-7699442505920857571?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/7699442505920857571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=7699442505920857571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7699442505920857571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7699442505920857571'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/08/call-of-duty-4-modern-warfare.html' title='call of duty 4: modern warfare'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-5080926918360137380</id><published>2009-08-21T05:38:00.002-05:00</published><updated>2009-08-21T05:41:55.651-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music videos'/><title type='text'>only missed by a fraction</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/UUyYENhbgJY&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/UUyYENhbgJY&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Is anyone else suddenly jonesing for a Crystal Pepsi?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-5080926918360137380?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/5080926918360137380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=5080926918360137380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5080926918360137380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5080926918360137380'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/08/only-missed-by-fraction.html' title='only missed by a fraction'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-2900457418437524897</id><published>2009-08-20T00:03:00.003-05:00</published><updated>2009-08-20T00:25:40.839-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><title type='text'>arma 2</title><content type='html'>So, what, with the WoW boycott and all, I've got some spare time these days during the chunk of my calendar for gaming.  A friend of mine who I used to play Wolfenstein: Enemy Territory with mentioned that he was getting into &lt;a href="http://www.arma2.com/home_en.html"&gt;Arma 2&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The basic concept is that it's another Battlefield style game, where you get to play anything you want (infantry, drive tanks, fly choppers, fly jets) except it's supposed to be more like a simulation than a game and offers you quite a bit of freedom in what you can do in the game.  Modding has been made super easy and even though the game was released in late June, there's already a plethora of mods out for it.&lt;br /&gt;&lt;br /&gt;The other big selling point is that it's one of the few games out there that supports the &lt;a href="http://www.naturalpoint.com/trackir/"&gt;TrackIR&lt;/a&gt; head tracking system, which allows you to move your head in real life to look around in the game.  Providing that turning your head while keeping your eyes locked on a point straight in front of you feels natural to you.&lt;br /&gt;&lt;br /&gt;I decided to snag the demo off Steam (I swear, Valve should be paying me for how often I mention Steam in a positive light here) and install went fairly smooth.  After spending about an hour putzing around with the game, I'm going to have to pass on it.&lt;br /&gt;&lt;br /&gt;My big problem with it is that there are controls for &lt;b&gt;everything&lt;/b&gt;.  There's a button to go prone.  A button to stand up.  A button to kneel down.  A button to zoom your camera in at some point, a button raise the weapon so you can stare down the site, another button to lower the weapon, a button to use the scope, and another button to switch to binoculars.  I gave up on the game during the first aid training where you are instructed to go grab a wounded soldier and drag him 25m back to the instructor, but just hitting the button to interact with the soldier isn't enough, and you are prevented from moving until you discover which button must be pressed to hoist your buddy up on your shoulder and take him where he needs to go.&lt;br /&gt;&lt;br /&gt;That might not be so bad, except for the fact that every single control option for all the different play modes are listed on a single screen.  You have to wade through control options for FPS/infantry movement, driving vehicles, flying aircraft, multiplayer team communications, and managing your AI squad in single player.  "Daunting" doesn't even begin to describe it.&lt;br /&gt;&lt;br /&gt;The graphics aren't really anything special, but these days everyone's first task with a new game is to turn down the level of detail so they can squeeze out as much performance as possible so that's not really an issue.  The "radio" alerts from your squad mates are also stitched together from various samples, which makes the incoming messages from your buddies sound like when you call one of those automated time/weather phone numbers... again, not a deal breaker, but it is a tad annoying.&lt;br /&gt;&lt;br /&gt;Actually shooting the weapons is pretty good, though.  They have bullet fall-off, so you get a kind of America's Army feel to firing the guns.  Unlike AA, you're allowed to carry a Quake-sized armament (pistol, M-16, and rocket launcher... woohoo).  If you're one of the folks who wants "realism" in their games, then this is definitely worth giving a look.&lt;br /&gt;&lt;br /&gt;Overall, I'd say I might stick with the game if it wasn't for the UI.  I'm tired of having to memorize arcane combo sequences to pull off the simplest of actions.  ET (and ETpro) did a pretty good job of streamlining different activities into as few controls as possible in order to make it so players spent more time worrying about shoot'n'scoot rather than engaging of weeks of training just to have the muscle memory to avoid whipping out a pair of pliers and waving them menacingly at the bad guys.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-2900457418437524897?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/2900457418437524897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=2900457418437524897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2900457418437524897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2900457418437524897'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/08/arma-2.html' title='arma 2'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-4031826296898023848</id><published>2009-08-15T07:28:00.000-05:00</published><updated>2009-08-15T07:29:53.305-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music videos'/><title type='text'>escape is never the safest path</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/H-aF5mPHrKQ&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/H-aF5mPHrKQ&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Not really a video, but the song's worth it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-4031826296898023848?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/4031826296898023848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=4031826296898023848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4031826296898023848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4031826296898023848'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/08/escape-is-never-safest-path.html' title='escape is never the safest path'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-2988455249861355979</id><published>2009-08-15T07:13:00.002-05:00</published><updated>2009-08-15T07:25:02.780-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>introducing... goblin 2.0</title><content type='html'>My tablet died a few weeks ago, and rather than spend the $100 on ebay to fix it, I decided it was a good excuse to get a newer, more up to date laptop.  After spending 45 minutes in Best Buy and trying to convince them to take my money yet still leaving empty handed, I ended up snagging an Acer Aspire from Altex.  &lt;br /&gt;&lt;br /&gt;Dual core AMD X2 proc, 3GB memory, ATI video card, and more hdd space than I'll need.... I forget the exact specs, and tbh, I really don't care about anything beyond the dual core and the memory.  What blew my mind was that I picked it up for under $600, which is roughly half of what I paid for the Dell Infuriation 4 years ago around this same time.  I can't believe how cheap hardware has gotten.  But I'm not complaining.&lt;br /&gt;&lt;br /&gt;Any rate.  I've got a new dev platform that can actually run vmware without too much of a hassle, thus allowing me to parallelize between winders and linux development.  The proc is also beefy enough that I don't have to reconsider building stuff on it, be it a sendmail or a MSVS project.  Pretty happy with it so far.&lt;br /&gt;&lt;br /&gt;The dark cloud looming on the horizon is that from what I've seen of other Acer users, the laptops don't last long and don't stand up well to repeated abuse (which is unfortunate because I'm pretty much the monkey from the Samonsite commercial when it comes to expensive hardware).  I'm not sure how long this poor piece of silicon and plastic is going to last, but even if it only makes it for a couple of years it's done as well as the Dell.&lt;br /&gt;&lt;br /&gt;Oh, and final bit of advice to anyone else thinking about getting an Acer laptop.  The first thing you must do is find the Control Panel setting for the touchpad and disable &lt;strong&gt;ALL&lt;/strong&gt; of the gesture and window scrolling stuff.  You will go nuts with the mouse jumping around everywhere due to inadvertent brushing against the touchpad.  Spent around 30 minutes trying to figure out why my machine was acting possessed, but once I got it straightened out it's been smoothe sailing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-2988455249861355979?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/2988455249861355979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=2988455249861355979' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2988455249861355979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2988455249861355979'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/08/introducing-goblin-20.html' title='introducing... goblin 2.0'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-376419866132846625</id><published>2009-08-15T07:03:00.002-05:00</published><updated>2009-08-15T07:12:55.249-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game dev'/><category scheme='http://www.blogger.com/atom/ns#' term='xna'/><title type='text'>XNA 3.0</title><content type='html'>Yeah, yeah, long time no type.  Got caught up with that twitter stuff, which makes it unbelievably easy to be cryptic.  There's no room for parentheses or excess verbiage inside of the 160 character limit of an SMS message.&lt;br /&gt;&lt;br /&gt;But this isn't about twitter, it's about XNA, so let's to it.&lt;br /&gt;&lt;br /&gt;Basically have started working on a project "seriously".  The alleged goal is to end up producing a game, but in reality I'm using it as a chance to apply what I've learned so far and to see how to emulate some features from other games that I might like.  The upside to XNA is that it makes developing and dealing with a 3D world hellah easy from a software architecture standpoint.  The downside is... the devil's always in the details.&lt;br /&gt;&lt;br /&gt;One challenge I find myself facing is what the best way to handle something like the pulldown console in Quake3.  There are a few people who have appeared to have created their own XNA classes to handle this, but they just doesn't feel Right(tm) to me, and I'll probably end up writing my own.  As I've said in the past, one of the pitfalls of OO programming is that the whole "code reusability" thing doesn't apply because you find as your code develops and evolves that you didn't really understand your objects in the first place and didn't see what was going to be required.&lt;br /&gt;&lt;br /&gt;And all that is a long way to say that, despite the awesome shortcuts XNA provides, at the end of the day you're still going to be writing your own windowing systems for the environment.&lt;br /&gt;&lt;br /&gt;Which is what I was trying to escape from by getting into game programming to starty with.  \o/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-376419866132846625?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/376419866132846625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=376419866132846625' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/376419866132846625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/376419866132846625'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/08/xna-30.html' title='XNA 3.0'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-637204711933625925</id><published>2009-06-10T23:24:00.003-05:00</published><updated>2009-06-10T23:51:02.368-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delusional'/><title type='text'>treasure these moments</title><content type='html'>So, it's been over a month since my last post to this blarg, and that was for a Tears for Fears video.&lt;br /&gt;&lt;br /&gt;The only logical assumption to be made was that I soon realized just how gheyz0r that was and that I must have shortly thereafter hanged myself out of shame.  I won't blame you for jumping to that conclusion and I give you points for critical thinking, but I will say I'm disappointed in you for first of all using "gay" as a pejorative and secondly for spelling it like a cracked out 13 year old counterstrike player.&lt;br /&gt;&lt;br /&gt;Any rate, I'm currently sitting in what's basically the eye of the hurricane of a software project.  It's one of those rare occasions where you not only have the ability to put something legitimately useful out into the market, but something that could shake up your little niche and set a standard for others to chase for the next couple of years.  True, it's not a very sexy niche (it's not like chicks dig guys who wrote the most awesomeful debit card transaction system EVAR), but a win's a win, and things feel like they're lining up for this to be a dominating win.&lt;br /&gt;&lt;br /&gt;Of course, the money isn't in the bank yet.  We still have yet to show the stuff publicly, and there's always a chance that we're going to get dinged for something, that we solved the wrong problem, or that we're more excited about the product than we should be.  &lt;br /&gt;&lt;br /&gt;But tonight... ah, tonight the work is done, the interface looks good, the most severe bugs are squashed, testing hasn't found any new problems, and there's naught left to do but to head off to sleep with visions of what I'll do with the $74 billion we make from the product dancing through my pointed little head.&lt;br /&gt;&lt;br /&gt;Probably buy a Dairy Queen so I can get lifetime free Blizzards whenever I want them.&lt;br /&gt;&lt;br /&gt;Or maybe a fridge full of Hot Pockets.&lt;br /&gt;&lt;br /&gt;Hell, I might even get both.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-637204711933625925?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/637204711933625925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=637204711933625925' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/637204711933625925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/637204711933625925'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/06/treasure-these-moments.html' title='treasure these moments'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-9057152833558945242</id><published>2009-04-12T20:41:00.003-05:00</published><updated>2009-04-12T20:51:54.100-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music videos'/><title type='text'>nothing ever changes when you're acting your age</title><content type='html'>OK.  I've long since dropped the ball on the Friday videos thing and I won't waste time apologizing for it yet again.&lt;br /&gt;&lt;br /&gt;But here's a little bit of awesomeness in both song and cinematography that I'd completely forgotten about until &lt;a href="http://www.imeem.com/"&gt;imeem&lt;/a&gt; tossed out the band name tonight:&lt;br /&gt;&lt;br /&gt;"Head over Heels" by Tears for Fears&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/EMBbJ_l0Tb4&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/EMBbJ_l0Tb4&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;This was one of the first tapes that I owned when I was a kidlet, and I used to drift off to sleep to this song and the slow mellow groove that followed it up on the way high tech Sony personal cassette player that I'd ganked from my poor father's ever-shrinking gadget collection.  I recall finally catching the video on a Friday Night Videos run (not sure why MTV never really picked it up and ran with it), and it's got plenty of amusing, surreal WTF? moments even now that I watch it again decades later.&lt;br /&gt;&lt;br /&gt;Absolute favorite part:  Around 1:28, where the synth dude (dressed in biker leathers) steps up to the counter, the chick ducks, a keyboard flies down from the rafters, and he engages in a one-fingered solo performed live from The Uncanny Valley.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-9057152833558945242?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/9057152833558945242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=9057152833558945242' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/9057152833558945242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/9057152833558945242'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/04/nothing-ever-changes-when-youre-acting.html' title='nothing ever changes when you&apos;re acting your age'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-3542170854106871364</id><published>2009-04-06T07:10:00.003-05:00</published><updated>2009-04-06T07:50:54.177-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='science'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>liquid breathing</title><content type='html'>I ended up watching some of the old Seaquest DSV episodes online via Netflix this weekend.  Yeah, it's corny, but Bob Ballard showed up at the end of each show to give a 30 second "how this applies to real life ocean exploration" pitch.  The man has got some interesting ideas... check out &lt;a href="http://www.ted.com/talks/view/id/264"&gt;his TED talk&lt;/a&gt; to get an overview.&lt;br /&gt;&lt;br /&gt;In one of these talks, he mentioned that someone had recently been down to 2200 ft (presumably he meant in submersible), and that kind of caught my attention.  &lt;br /&gt;&lt;br /&gt;Recreational divers usually call it quits around 100-130 ft because after that, oxygen actually starts to become toxic at the 80% nitrogen/almost-20 oxygen mix we breathe.  Going deeper means having to use a "trimix", where a 3rd gas (apparently helium) is substituted in to reduce the oxygen to nonlethal levels.  The depth record for this was set at 1100ft (330m) in 2005 by Pascal Bernabé (check out &lt;a href="http://www.ralftech.com/expeditions/wr1_int.html"&gt;his account of the trip&lt;/a&gt;).  The next record depth requires the use of an Atmospheric Diving System, which is basically a hardsuit... 2000 ft (609m) by a Navy diver in 2007.&lt;br /&gt;&lt;br /&gt;It all reminded me of The Abyss and how liquid breathing had been a scifi idea for a long time.  The official name is &lt;a href="http://en.wikipedia.org/wiki/Perfluorocarbon"&gt;perfluorocarbon&lt;/a&gt;, and it turns that it does indeed work and mice have been able to breathe in it for long periods of time.  The downside is that it strips out another liquid that's in your lungs and you end up basically suffocating if it's ever removed.  The other problem with "The Abyss" scenario is that at high pressures, other biological process in the body start to do whacky things... protiens go nuts, tissues start ripping.  Not good.&lt;br /&gt;&lt;br /&gt;So while that might cap the ability to dive to 6000m and meet alien lifeforms, the perfluorocarbons are still medically interesting in other ways.  It's got potential for use as artificial blood, accelerating flushing out of nitrogen after decompression sickness (the bends), washing out the lungs, and it's currently used in eye surgery in several different ways.&lt;br /&gt;&lt;br /&gt;That's some interesting stuff discovered for a 10 second quip about diving records.  :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-3542170854106871364?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/3542170854106871364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=3542170854106871364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/3542170854106871364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/3542170854106871364'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/04/liquid-breathing.html' title='liquid breathing'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-7623409210589862362</id><published>2009-04-01T06:41:00.002-05:00</published><updated>2009-04-01T06:54:42.162-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization stuff'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>vmware setup</title><content type='html'>Probably worth talking about the vmware setup here, too.&lt;br /&gt;&lt;br /&gt;First off, I'm using VMWare Player.  I snagged images for Debian 5.0, Ubuntu 9.whateverthehellthey'reonnow, and Fedora 10 from &lt;a href="http://www.thoughtpolice.co.uk/"&gt;ThoughtPolice&lt;/a&gt;.  Gave each one of them static private IPs, and setup their net interfaces to use a bridge instead of NAT so I could have full network access to them directly from the Debian "ohmygodit'sstillrunningetchtesting!!!" laptop.  I also setup a shared folder on the host XP machine, and have each of the images smbmounting it on boot so I can easily move files around.  Currently considering setting up Active Directory on the host and mucking around with pam_ldap auth off of it, but not motivated enough to find the XP64 install cdrom at the moment.  Machines are using a MySQL 5.0 server running on the XP host (and, by the way... MySQL admin on windows is an absolute pain in the butt).&lt;br /&gt;&lt;br /&gt;The Q7760 proc seems to be handling it all in stride despite being a tad old, and 4GB mem appears to be sufficient for the Rube Goldbergesque virtual network I've created.  Disk space usage has gone up, but with 1.5TB drives at $120 now, expanding that shouldn't be a problem.&lt;br /&gt;&lt;br /&gt;Yay virtualization.  :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-7623409210589862362?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/7623409210589862362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=7623409210589862362' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7623409210589862362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7623409210589862362'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/04/vmware-setup.html' title='vmware setup'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-1136748137959929410</id><published>2009-04-01T06:28:00.004-05:00</published><updated>2009-04-01T06:37:38.446-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>back to rails</title><content type='html'>So, back to rails.  Got yet-another-project that seems like it should be right up rails' alley.  Did a little bit of refresher reading tonight, and it seems like if I'd understood helpers, routing, and js templates better I might have avoided painting myself into a couple of corners during the last explorations in RoR-land.&lt;br /&gt;&lt;br /&gt;Or maybe it's just because now I have a better understanding of javascript and don't regard partials as dark voodoo anymore.&lt;br /&gt;&lt;br /&gt;Any rate, we'll see how this works out.&lt;br /&gt;&lt;br /&gt;For the dev environment, I've decided to keep the XP64 desktop, but am currently running a series of VMware instances through Player to find a distro to work on.  Will probably stick with Debian.  I think I'm going to run with Netbeans as the IDE for now, but we'll see if that starts cramping my style and gets the hose or not.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-1136748137959929410?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/1136748137959929410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=1136748137959929410' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1136748137959929410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1136748137959929410'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/04/back-to-rails.html' title='back to rails'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6554714117300615230</id><published>2009-04-01T06:08:00.004-05:00</published><updated>2009-04-01T06:15:50.972-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>bb development</title><content type='html'>So, it turns out that you have 2 choices for blackberry development: java (j2me) or javascript (Blackberry MDS).&lt;br /&gt;&lt;br /&gt;The Java option gives you access to various features on the phone, one of the big selling points being backgrounded threads, which means you can do something similar to what the G1 does via XMPP (theoretically, I haven't dug too far into the doco yet).  The MDS option basically allows you to create a browser application that relies on a web service to operate (ie, you could create a BB MDS app that basically manages an Amazon Web Services account).&lt;br /&gt;&lt;br /&gt;Both options open up some interesting prospects for applications.&lt;br /&gt;&lt;br /&gt;The big question now is do I want to control my cylon army from the phone through XMPP or a web service?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6554714117300615230?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6554714117300615230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6554714117300615230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6554714117300615230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6554714117300615230'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/04/bb-development.html' title='bb development'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-5486653465254613896</id><published>2009-03-31T14:22:00.002-05:00</published><updated>2009-03-31T14:55:02.032-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>midpssh</title><content type='html'>Finally managed to get it working on the BBB.&lt;br /&gt;&lt;br /&gt;The main problem is that the BB helpfully wants to capitalize the first letter of any input field.  Extremely useful when you're entering in contact information, really sucky when you're trying to enter in case-sensitive usernames and passwords.  The quick hack I found to get around it is you hit the key you want, backspace over the capital letter, then hit again and you get the lowercase.  And, no, holding down the shift key doesn't work.&lt;br /&gt;&lt;br /&gt;I had to go with the "latest development" version 1.7.3 because it supported SSH2.  Also had to twiddle around with the fonts (8x16 seems to be readable).&lt;br /&gt;&lt;br /&gt;By default, midpssh wants you to open up a seperate screen and enter in any commands there as a kind of batch deal, but it's possible to type directly to the console by setting the input type in the options menu.  It's kind of clunky and I'd hate to have to try and use vim with it, but it's good enough for restarting services in a pinch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-5486653465254613896?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/5486653465254613896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=5486653465254613896' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5486653465254613896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5486653465254613896'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/03/midpssh.html' title='midpssh'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-2408854230659959472</id><published>2009-03-31T04:32:00.002-05:00</published><updated>2009-03-31T04:47:18.365-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>blackberry bold</title><content type='html'>I was starting to look at other phones after getting fed up with the limitations of the VZW phone I had and not really impressed by their smart phone selection.  The two candidates I was looking at was the iPhone and the HTC G1 (google phone).  I was putting off making a decision and waiting for my contract to run out when Krak mentioned he'd scored a Blackberry and was happy with it, and suddenly the Bold was put on the table as a third option.  The rest of the smartphone field was discarded after checking the out in store and through video reviews from phonescoop.com.&lt;br /&gt;&lt;br /&gt;I ended up going with the Bold, mainly because of all the choices, it's got the least encumbered development platform.&lt;br /&gt;&lt;br /&gt;Sure, that development platform is Java, but just because I hate everything about a language is no reason to be closed minded.  AT&amp;T was offering up refurbs for free with a new contract, and that didn't hurt the decision, either.&lt;br /&gt;&lt;br /&gt;As for the device, I'm pretty happy with it.  Better phone qualities than the Treo 600, the screen is fairly nice, can latch on to WiFi instead of 3G (and the 3G ain't bad), and the trackball is much better than sliding out a stylus any day of the week.  The software itself seems decent enough, but the user interface is pretty rough when you go off the beaten path (ie, midpssh config is a freaking nightmare atm).&lt;br /&gt;&lt;br /&gt;After fiddling around with it for a few hours, I think it'll do ok.  I've currently ganked the Google Mobile stuff for maps, mail, and calendar and plan on using that instead of the native BB software (I don't need push messages).  I ganked TwitterBerry from http://www.orangatame.com/products/twitterberry and will be giving that another shot (don't expect much different results, though) and I'm still struggling with midpssh (http://xk72.com/wap/) which appears to be the only free if not functional ssh application for the BB available at the moment.&lt;br /&gt;&lt;br /&gt;Next up is locating some IM software.... might end up checking out Jive's Spark stuff for that.&lt;br /&gt;&lt;br /&gt;Oh, and maybe, like, getting the contacts imported at some point.&lt;br /&gt;&lt;br /&gt;But that's secondary.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-2408854230659959472?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/2408854230659959472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=2408854230659959472' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2408854230659959472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2408854230659959472'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/03/blackberry-bold.html' title='blackberry bold'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-4415232945017860832</id><published>2009-03-27T04:42:00.003-05:00</published><updated>2009-03-27T05:40:17.266-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music videos'/><title type='text'>to be in england in the summertime</title><content type='html'>Ah.... God bless the 80's.  \o/&lt;br /&gt;&lt;br /&gt;Art of Noise - Close to the Edit&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/-sFK0-lcjGU&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/-sFK0-lcjGU&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;So I get the part where they're destroying symbols of classical music as a kind of in-your-face way of saying AoN is a musical revolution.  And I can kind of see how the creepy stop motion little girl in heavy eye makeup is supposed to be like some evil muse encouraging them to rebel and destroy the old gods.&lt;br /&gt;&lt;br /&gt;But I still don't get the sausage and the dachshund.  Any theories?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-4415232945017860832?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/4415232945017860832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=4415232945017860832' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4415232945017860832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4415232945017860832'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/03/to-be-in-england-in-summertime.html' title='to be in england in the summertime'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6250135920247594964</id><published>2009-03-20T04:18:00.001-05:00</published><updated>2009-03-20T04:19:42.792-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music videos'/><title type='text'>you'll never see me fall from grace</title><content type='html'>Cool video, good song.&lt;br /&gt;&lt;br /&gt;&lt;object width="400" height="327"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=1984361&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=1984361&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="327"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/1984361"&gt;KoRn - Freak On A Leash&lt;/a&gt; from &lt;a href="http://vimeo.com/kornbrasil"&gt;KornBrasil&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6250135920247594964?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6250135920247594964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6250135920247594964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6250135920247594964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6250135920247594964'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/03/youll-never-see-me-fall-from-grace.html' title='you&apos;ll never see me fall from grace'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-7994487395527049917</id><published>2009-03-20T03:17:00.002-05:00</published><updated>2009-03-20T03:31:28.505-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>or not aptana /o\</title><content type='html'>Steve tried to warn me, but I was, like... hopeful.&lt;br /&gt;&lt;br /&gt;Turns out Aptana is basically Eclipse in disguise, and although some of the stuff that drives me nuts about Eclipse has been shaved off you can still see its heritage.&lt;br /&gt;&lt;br /&gt;Why, java people...  why in the name of all that is holy can't any of your tools "import" a directory that's already in the project target space?  Other things it lost points for: the code view areas for HTML, js, and CSS files were whited out (ie, no text showing up) until I previewed the document, preview freaked out a couple of times, and the nasty editor habit of dropping ".tmp*~" files all over the workspace.&lt;br /&gt;&lt;br /&gt;The insanely awesome good stuff: the CSS and js editors supports intellisense like code completion AND error highlighting.  Strip the rails support out, and that alone is enough reason to keep it on the hard drive.  CSS is my kryptonite, but Aptana just handles it beautifully.&lt;br /&gt;&lt;br /&gt;I've decided to check out jEdit and NetBeans as well.  &lt;br /&gt;&lt;br /&gt;jEdit's got some nifty plugins that enable it to do stuff like editting files over SFTP, SVN integration, theming, but at the end of the day it's more of a text editor than an IDE.  Still, it has potential to replace the trusty vim on Linux and notepad++ on Windows.&lt;br /&gt;&lt;br /&gt;NetBeans offers up a Ruby-only install that seems extremely well integrated into Rails development.  It even went so far as to call the rails command to setup the project and ferret out the database info the db.yml file up front.  It's also sporting code completion for JS, so... I'm feeling hopeful about it (despite Steve also warning me about this one, too).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-7994487395527049917?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/7994487395527049917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=7994487395527049917' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7994487395527049917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7994487395527049917'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/03/or-not-aptana-o.html' title='or not aptana /o\'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-7247856786620230954</id><published>2009-03-18T23:06:00.004-05:00</published><updated>2009-03-18T23:16:44.854-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>checking out aptana</title><content type='html'>Discovered that &lt;a href="http://www.aptana.com/studio"&gt;Aptana Studio&lt;/a&gt; can run in standalone mode, supports rails and javascript dev, and offers up a way to publish to Aptana's cloud system.&lt;br /&gt;&lt;br /&gt;This strikes me a superior solution to continuing to beat my head against the wall with Express Editions from MS, playing in GAE's sandbox, or figuring out how I'm going to wire up my own maintenance system for EC2 images.&lt;br /&gt;&lt;br /&gt;Yeah.  Sold.  \o/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-7247856786620230954?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/7247856786620230954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=7247856786620230954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7247856786620230954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7247856786620230954'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/03/checking-out-aptana.html' title='checking out aptana'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-2581145878623998336</id><published>2009-03-17T15:20:00.004-05:00</published><updated>2009-03-17T15:35:39.657-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>checking out slicehost</title><content type='html'>Given the fact that I'm no longer running game servers, email, a blog, and have yet to spend any time rebuilding any of the sites, I've decided to try out a Xen-based VPS from &lt;A href="http://www.slicehost.com/"&gt;slicehost&lt;/a&gt; with an eye towards retiring the dedicated swerver.&lt;br /&gt;&lt;br /&gt;The upsides are basically:&lt;br /&gt;&lt;br /&gt;1) cost - a VPS is about 25% the cost of a hosted server, with roughly the same access level&lt;br /&gt;2) software based - that means the provisioning of the server was pretty much instant, managing it will be a matter of flipping a switch in a web interface and getting near real-time response&lt;br /&gt;3) size - I can basically back the important bits of the server up to a USB stick.  Limited space means I won't be wasting anything on silly stuff like half-compiled projects or stupid videos you could just easily link to ebaumsworld, and that I'll be pushing the big files off onto a storage system like S3 or JungleDisk (where there's a pretty good chance they'll be backed up or at least distributed Enough(tm)).&lt;br /&gt;&lt;br /&gt;Haven't looked into whether or not I can rebuild the kernel, but to be honest, I'm at a point where if I need something that requires that, I'm probably not going to stick with it.&lt;br /&gt;&lt;br /&gt;I chose the Debian 5.0 install, which was absolutely barebones except for SSH.  apt-get the needed services, tar up the appropriate directories on the old server, and then it's just a matter of waiting for DNS to propogate.  Pretty easy stuff.&lt;br /&gt;&lt;br /&gt;And by way of a review, I'd have to say that I really like slicehost so far.  Minimal interaction... just enter the needful data, and stuff happens.  I absolutely love it when providers stay out of my hair.  :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-2581145878623998336?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/2581145878623998336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=2581145878623998336' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2581145878623998336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2581145878623998336'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/03/checking-out-slicehost.html' title='checking out slicehost'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-2617049443460294757</id><published>2009-03-11T14:44:00.002-05:00</published><updated>2009-03-11T14:48:35.503-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>a sample of my recent google searches</title><content type='html'>inventor of javascript&lt;br /&gt;brendan eich&lt;br /&gt;brendan eich location 1983&lt;br /&gt;time travel technology&lt;br /&gt;time travel technology hackaday&lt;br /&gt;T-1000 cost to build&lt;br /&gt;velociraptors&lt;br /&gt;capturing and training velociraptors&lt;br /&gt;sending velociraptors back to 1983&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-2617049443460294757?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/2617049443460294757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=2617049443460294757' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2617049443460294757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2617049443460294757'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/03/sample-of-my-recent-google-searches.html' title='a sample of my recent google searches'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-4773077953283501303</id><published>2009-02-28T18:39:00.002-06:00</published><updated>2009-02-28T18:56:22.530-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>wix now on the resume</title><content type='html'>Due to a project at work, I've been forced to spend a considerable amount of time digging through the &lt;a href="http://wix.sourceforge.net/"&gt;WiX&lt;/a&gt; documentation.  I highly recommend that you use &lt;a href="http://wixedit.sourceforge.net/"&gt;wixedit&lt;/a&gt; to build up the XML, because it's not very intuitive.&lt;br /&gt;&lt;br /&gt;Some quick notes on what I found:&lt;br /&gt;&lt;br /&gt;* you can specify multiple "media" tags to build up different cabs.  The "DiskPrompt" value is what WiX uses to figure out if they should go on the same disk or if the installer should ask the user to drop in another disk.&lt;br /&gt;* you can specify the &lt;Media&gt;'s id as the DiskId attribute for the Component in the Files section.  This will let you split up multiple files across install media without a hassle&lt;br /&gt;* filenames get converted to URL encoded strings if you use the Folder Import feature, and WiX will look for the URL encoded name on the filesystem (so, like "c:\foo%20bar.txt" instead of "c:\foo bar"), and this will be failurificious.  Either remove spaces, or bundle it all up in a cab/zip/whatever ahead of time&lt;br /&gt;* you can wedge in binaries and run them in CustomActions section, then pick which stage of the installer they should be run.&lt;br /&gt;* everything you plan to put on the hard drive needs a reference in the features section... boo.  This means you need to import files, and then create refs for each of them.&lt;br /&gt;&lt;br /&gt;Not too bad, but it would have been nice to have some more examples out there.&lt;br /&gt;&lt;br /&gt;Other tools for win devs that might be interesting/helpful:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/310618"&gt;MS's cabsdk program&lt;/a&gt; includes CABARC.EXE that lets you create/extract/look inside cab files&lt;br /&gt;&lt;br /&gt;&lt;a href="http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx"&gt;ilmerge&lt;/a&gt; let's you combine multiple assemblies into one (useful for include libs your software might need when dealing with people who can't handle heading to sourceforge... be sure to check the license, though)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://7zip.org/"&gt;7Zip&lt;/a&gt; is a free zip utility.. can create self extracting zip files (but they annoyingly have a popup prompt for where to extract to that I can't seem to figure out how to disable)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-4773077953283501303?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/4773077953283501303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=4773077953283501303' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4773077953283501303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4773077953283501303'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/02/wix-now-on-resume.html' title='wix now on the resume'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-8442893867041020285</id><published>2009-02-28T18:28:00.003-06:00</published><updated>2009-02-28T18:39:41.375-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>a dog with two bones</title><content type='html'>Quit WoW (again.. for real this time!!) and was punished by The Fates to find the car alarm on the Purple Rain limited edition F-150 going off.  Turns out that the truck had been neglected too long, battery was draining, and the alarm's fail safe had kicked off.  Only way to shut it off was disco the battery, so I did that and have left it sitting all week (along with the flat tire).  Neighbors tattled before I could get it squared away, and thus paperwork was created in the office and I was given 10 days to make the truck purty again.&lt;br /&gt;&lt;br /&gt;I'm half tempted to prop it up on cinder blocks and take the tires off 9 days at a time for the rest of the lease just to be a pain, now.&lt;br /&gt;&lt;br /&gt;Any rate.  &lt;br /&gt;&lt;br /&gt;Finally got a chance to get a new battery in there and get the tire pumped up with a fix-a-flat enough to get it down to the shop for new tires.  I might be imagining things, but it seems to be riding like a new truck (well, aside from the worrisome rattle when you accelerate, but the grease monkeys will be taking a look at that on Monday).  &lt;br /&gt;&lt;br /&gt;I know I don't need 2 vehicles, but after getting the Purple People Eater roadworthy again, I have to say I like driving both of 'em.  :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-8442893867041020285?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/8442893867041020285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=8442893867041020285' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/8442893867041020285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/8442893867041020285'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/02/dog-with-two-bones.html' title='a dog with two bones'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6665595225769742946</id><published>2009-02-28T18:20:00.003-06:00</published><updated>2009-02-28T18:25:12.411-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music videos'/><title type='text'>stand steadfast beside me and see...</title><content type='html'>That love is the province,&lt;br /&gt;of the brave.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;br /&gt;&lt;param name="movie" value="http://www.youtube.com/v/wr4jQia49JI&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/wr4jQia49JI&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;One of those mellow grooves that still sounds good when you crank the volume up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6665595225769742946?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6665595225769742946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6665595225769742946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6665595225769742946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6665595225769742946'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/02/stand-steadfast-beside-me-and-see.html' title='stand steadfast beside me and see...'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-3301799332092654719</id><published>2009-02-09T01:47:00.001-06:00</published><updated>2009-02-09T01:49:15.612-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>free tech books</title><content type='html'>In talking with the little bro (who now suddenly is interested in comp sci /o\), he mentioned that he'd run across &lt;a href="http://www.freetechbooks.com/"&gt;freetechbooks.com&lt;/a&gt;.  Basically, it's free PDFs/HTML zips of college level math, engineering, and comp sci courses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-3301799332092654719?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/3301799332092654719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=3301799332092654719' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/3301799332092654719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/3301799332092654719'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/02/free-tech-books.html' title='free tech books'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-7832178782344480409</id><published>2009-02-03T18:03:00.002-06:00</published><updated>2009-02-03T18:07:06.357-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='polecats'/><title type='text'>i accidentally the whole irs</title><content type='html'>I can't stop cracking up.  :)&lt;br /&gt;&lt;br /&gt;The US tax code is apparently so convoluted, 3 cabinet level executives (and their CPAs) can't figure it out.  With one of them being an ex Senate-majority leader, and another being in charge of, like, running the IRS.&lt;br /&gt;&lt;br /&gt;Can we just do the &lt;a href="http://www.fairtax.org/"&gt;Fair Tax&lt;/a&gt; now?  That seems easier.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-7832178782344480409?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/7832178782344480409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=7832178782344480409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7832178782344480409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7832178782344480409'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/02/i-accidentally-whole-irs.html' title='i accidentally the whole irs'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-379738930206688252</id><published>2009-02-03T04:54:00.004-06:00</published><updated>2009-02-03T05:05:16.921-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>and while we're on the subject of dropping MS stuff..</title><content type='html'>I also took a peak at &lt;a href="http://spoonix.blogspot.com/2008/10/ms-azure.html"&gt;Azure&lt;/a&gt;. Some interesting extra info about it: they have set it up to allow you to use it as a stand-alone platform.  The idea is that the the services Azure provides on MS's server farm are replicated on your desktop, so that you can create a standalone desktop app that could be moved Into The Cloud(tm) later on.&lt;br /&gt;&lt;br /&gt;Like, say you were creating an application for your HR person at your 10 person company to manage vacation requests, salary info, emergency contact information, certifications, etc, etc. Then you walk in one day to find that the company's grown to 200 people, and your HR person is crying softly in the corner begging for some help, so you hire a few more HR folks.  If the app is Azure based, you can move it off the one desktop that the original HR person was using and onto your own internally hosted stuff (SQL server, SharePoint, and use AD for permissions) or you could push it out onto MS's Azure hosting hardware without having to rewrite the code.&lt;br /&gt;&lt;br /&gt;In theory. In reality, I'm guessing that it's a lot more rocky of a transition.&lt;br /&gt;&lt;br /&gt;But.&lt;br /&gt;&lt;br /&gt;I won't be finding out any time soon. The SDK requires Vista on a 64bit system (not gonna happen), and can't run in 32 bit mode on a 64 bit proc under XP.  Ah well.  :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-379738930206688252?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/379738930206688252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=379738930206688252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/379738930206688252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/379738930206688252'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/02/and-while-were-on-subject-of-dropping.html' title='and while we&apos;re on the subject of dropping MS stuff..'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-5949428891409563242</id><published>2009-02-03T04:39:00.002-06:00</published><updated>2009-02-03T04:52:28.607-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>dropping F#</title><content type='html'>A while back I wrote about &lt;a href="http://spoonix.blogspot.com/2008/10/f.html"&gt;my discovery of F#&lt;/a&gt; and interest in monkeying around with it.&lt;br /&gt;&lt;br /&gt;After spending some time reading up on it, I realized that this was going to be more messy-headachey than chocolatey-awesomey.  It just doesn't seem smoothly integrated into .Net... and that some of the syntax is just weird (even for a functional language).  The other problem was that I'm already jumping around between 5 different languages in personal and professional projects and have already hit that annoying point where I'm having to check reference books and library APIs to remember the right syntax on how to do something ("Wait, was is it elsif, elif, or else if in javascript?  Was it that python didn't have a case/switch, or was it that ruby did case/switch in a weirdway?  Is the command to make lightning arc out of the monitor and zap the user for entering a text value when I clearly asked for a string part of the .Net core library, or did I need to import something?")&lt;br /&gt;&lt;br /&gt;At the end of the day, it seems like a better strategic decision to just keep functional stuff out of the way altogether and if I need to use it then simply contain it to a seperate service/program.&lt;br /&gt;&lt;br /&gt;MS, on the gripping hand, has decided to try and push it into .Net 4.0.  /o\&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-5949428891409563242?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/5949428891409563242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=5949428891409563242' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5949428891409563242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5949428891409563242'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/02/dropping-f.html' title='dropping F#'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-1765020643726690299</id><published>2009-02-02T01:38:00.002-06:00</published><updated>2009-02-02T01:51:36.378-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>super bowl was good for a change</title><content type='html'>I will admit it.  I haven't tracked NFL (or even 'merican football in general) since... forever.  I had trouble watching games without trying to dissect defenses and predict plays, thinking about how I'd handle blocking in certain situations, etc.  End result is that I've kind of not paid attention to anything but the big games.&lt;br /&gt;&lt;br /&gt;Which has been a problem because the big games in the NFL usually suck.  One team will run out of go-juice in the second half from either being demoralized or maybe from getting tuckered out by pre-game partying after 4 months of intense practices.  Either way, result was basically a blow out.&lt;br /&gt;&lt;br /&gt;Not this year, though.  This year the game was much better than the commercials.  It was an all-out fight all the way up until the last 5 seconds of the game.  Both the Steelers and the Cardinals had several opportunities to lose the game to self-pity, and instead of collapsing both teams just strapped it on and got back down to business.  It was an amazing contest of not only athleticism but sheer willpower and raw determination that I haven't seen at the professional level in quite a while.&lt;br /&gt;&lt;br /&gt;Awesome job, guys.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-1765020643726690299?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/1765020643726690299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=1765020643726690299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1765020643726690299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1765020643726690299'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/02/super-bowl-was-good-for-change.html' title='super bowl was good for a change'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-737580200228882352</id><published>2009-01-18T02:07:00.002-06:00</published><updated>2009-01-18T02:12:49.195-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>the morsewhisperer</title><content type='html'>So, I was dinking around with morse code some more and have come to discover that although there is a wealth of free trainers that most of them want to spew out random letters and give you zero control over the input.&lt;br /&gt;&lt;br /&gt;I hacked together a quick python script that lets you input a letter or phrase and echoes it back in morse.  It's using winsound, so... windows only (I know, I suck) and you'll need to install &lt;a href="http://www.activestate.com/activepython/"&gt;ActiveState's Python&lt;/a&gt; to run it.&lt;br /&gt;&lt;br /&gt;Here's the &lt;a href="http://www.spoonix.org/downloads/software/morsewhisperer.zip"&gt;zip file&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Credit for the dit/dah wav files goes to acclivity on &lt;a href="http://www.freesound.org/samplesViewSingle.php?id=25026"&gt;freesound&lt;/a&gt; for posting a sample I could chop up.  :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-737580200228882352?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/737580200228882352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=737580200228882352' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/737580200228882352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/737580200228882352'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/01/morsewhisperer.html' title='the morsewhisperer'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-2294821030795252084</id><published>2009-01-16T04:00:00.003-06:00</published><updated>2009-01-16T04:07:22.240-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><title type='text'>quake live beta and the mystery of the reappearing invites :o</title><content type='html'>So, the bad news is that I just sent out the last 3 of the 5 invites I had.&lt;br /&gt;&lt;br /&gt;The good news is.. when I logged in to do that, I noticed I had been given 2 new invites to replace the ones I'd already sent out.  \o/&lt;br /&gt;&lt;br /&gt;So, it looks like the beta invites might be an unlimited resource, but you can only add 5 people at a time.  Will find out if I get 3 more back after the monkeys I invited accept tommorrow.&lt;br /&gt;&lt;br /&gt;The other good news is that I used the invites for 3 of my friends from &lt;a href="http://www.doomcastonline.com/"&gt;Doomcast&lt;/a&gt;.  They should have their own set of invites to hand out in a short while, and I'd point you to &lt;a href="http://www.doomcastonline.com/forums/viewtopic.php?f=16&amp;t=225&amp;p=634#p634"&gt;this thread&lt;/a&gt; on the Doomcast forums if you're looking for one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-2294821030795252084?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/2294821030795252084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=2294821030795252084' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2294821030795252084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2294821030795252084'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/01/quake-live-beta-and-mystery-of.html' title='quake live beta and the mystery of the reappearing invites :o'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6240648987265590761</id><published>2009-01-14T01:49:00.003-06:00</published><updated>2009-01-14T02:15:45.095-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><title type='text'>quake live first impressions</title><content type='html'>Haven't had a whole lot of time to bang on the account, but here are the important points from the little time I've spent with the beta:&lt;br /&gt;&lt;br /&gt;1) the game runs via a browser plugin, and as far as I can remember, it's exactly the same as if you were playing on the PC.  Graphics seem to be better than what I remember of q3a, and the game runs suprisingly smoothly considering the environment it's in.&lt;br /&gt;2) the main difference is scripts/aliases... not sure if it'd be possible to load up my old complex key bindings&lt;br /&gt;3) when you create a new account, you go through a "tutorial" with Crash (the easy-kill chick from the first level), but there's a twist.  As you keep fragging the bot, it subtly notches the difficulty up to figure out where you're at skillwise.  I didn't notice this until the bot suddenly side-strafed a rocket that should have gone straight into her face, and she ended up just chainsawing my lead down in pretty short order.  :(&lt;br /&gt;4) right now, it's kind of hard to find matches because there aren't many folks in the beta.  It looks like when everything is live (or when more invites go out), though, getting into a decent game with folks around your skill level should be a piece of cake.&lt;br /&gt;&lt;br /&gt;And yes, there does appear to be a way to send out invites to others.  No, I don't seem to have any at the moment.&lt;br /&gt;&lt;br /&gt;Personally, I think this is going to fill the "I just want to shoot something in the face" niche quite nicely.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Update&lt;/i&gt;: Found the invites \o/ and got 3 left.  Drop me an email or IM if you want one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6240648987265590761?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6240648987265590761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6240648987265590761' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6240648987265590761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6240648987265590761'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/01/quake-live-first-impressions.html' title='quake live first impressions'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-5420405663218857601</id><published>2009-01-14T01:21:00.003-06:00</published><updated>2009-01-14T01:39:05.454-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ham'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>communicating at the speed of morse</title><content type='html'>So for some reason, radio (ham, not AM/FM) has been a recurring theme for me since Christmas.  The last straw has been the discovery that SiX is learning morse code with an eye towards getting a ham license... and if that knuckle dragger can do it, how hard can it be?&lt;br /&gt;&lt;br /&gt;I haven't really committed to, like, getting the &lt;a href="http://www.aarl.org/"&gt;ARRL&lt;/a&gt; study guide or looking into where to go to do the exam.  But I have started dinking around with morse code (which you don't need for the technician's license), and I've manage to get A-0 down pretty reliably at 5 wpmin about 2 days (with J and G being the only ones I'm shakey on).&lt;br /&gt;&lt;br /&gt;I'm hoping that, at the very least, I'm able to figure out what the hell is being tapped out in the opening credits of Jericho pretty soon.  ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-5420405663218857601?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/5420405663218857601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=5420405663218857601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5420405663218857601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5420405663218857601'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/01/communicating-at-speed-of-morse.html' title='communicating at the speed of morse'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-4857941058438274811</id><published>2009-01-06T18:03:00.000-06:00</published><updated>2009-01-06T18:05:11.939-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><title type='text'>quake live beta invite</title><content type='html'>Just got an email for a Quake Live beta invite.  Going to check it out later on tonight and see what's up.  It might be interesting to see if there's anything different about the game beyond the scoreboard and account stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-4857941058438274811?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/4857941058438274811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=4857941058438274811' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4857941058438274811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4857941058438274811'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2009/01/quake-live-beta-invite.html' title='quake live beta invite'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6524102697326502756</id><published>2008-12-20T13:42:00.002-06:00</published><updated>2008-12-20T14:03:24.287-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game business'/><title type='text'>game over... steams wins, best buy loses</title><content type='html'>In the previous and unbacked-up incarnation of this blog, I had a few posts gushing about how Steam was cool because it basically offered up online delivery of PC games.&lt;br /&gt;&lt;br /&gt;A while back, Activision (now Activision Blizzard) started releasing their stuff through Steam, and now &lt;a href="http://www.gamasutra.com/php-bin/news_index.php?story=21617"&gt;EA has jumped aboard for the big win&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I like Steam because it gets rid of the hardcopy, real-world product.  That means it takes less time to purchase a game through Steam than it does to jump in the Spoonmobile and run down to Best Buy or Wally World and grab it from amongst the shuffle hordes of shopping zombies.  After I get the game, I don't have to enter the ever-growing string of alphanumeric characters just to play it.  Nor do I have to worry about finding the CD or hunting down a nocd crack and rolling the dice on picking up a virus when I want to play it later on down the road.&lt;br /&gt;&lt;br /&gt;What the game companies like about Steam is that the authentication system providing proof of purchase.  It doesn't make piracy impossible, but it does make your product more customer friendly and removes the need to license DRM and other copyright protection schemes.  That decreases the cost to deliver the product to the customer, and oddly enough might contribute to actual legit sales because the lower price might make the hassle/risk of pirating a game less likely.  They also like that Steam opens up the potential for episodic releases of game content, which further drives down production costs because instead of needing $10m and 2 years to produce art for a 30 hour AAA title, you can just break off $1m and 6 months for the first episode and see if the game is popular enough to warrant going on to episode 2, etc.&lt;br /&gt;&lt;br /&gt;This is absolutely crucial for us PC gamers, because Steam is about the last ray of hope for convincing publishers to stick with the PC platform.  They have been increasingly looking towards consoles as the solution to the problems of being able to reuse IP and reduce piracy, and the PC game market has taken a hit as more and more stuff gets designed for the Xbox first.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6524102697326502756?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6524102697326502756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6524102697326502756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6524102697326502756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6524102697326502756'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/12/game-over-steams-wins-best-buy-loses.html' title='game over... steams wins, best buy loses'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-8197613230129194851</id><published>2008-12-13T04:49:00.002-06:00</published><updated>2008-12-13T05:01:26.059-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>no such thing as a free lunch</title><content type='html'>I think this guy &lt;a href="http://finance.yahoo.com/news/Madoff-alleged-50-billion-rb-13819411.html"&gt;was going for a Guinness record ponzi scheme&lt;/a&gt; or something.&lt;br /&gt;&lt;br /&gt;He was basically taking cash from one client to pay off dividends to another customer.  No one bothered to ask how, because, hey, who turns down free money and 12% returns, amirite?  But now that the music has stopped, everyone's complaining about how there aren't enough chairs.  $15,000,000,000 has already just disappeared, that could close in on $50B before all is said and done.&lt;br /&gt;&lt;br /&gt;But the really sad thing?  Think what $15B reinvested into your local economy to fund real startups (and I'm not talking about the "I have an idea for a website" crowd here) could have done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-8197613230129194851?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/8197613230129194851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=8197613230129194851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/8197613230129194851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/8197613230129194851'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/12/no-such-thing-as-free-lunch.html' title='no such thing as a free lunch'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-8546981024318625376</id><published>2008-12-09T01:14:00.002-06:00</published><updated>2008-12-09T01:34:11.261-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><title type='text'>fallout 3</title><content type='html'>So, the dude who does Zero Punctuation has a pretty spot-on &lt;a href="http://www.escapistmagazine.com/videos/view/zero-punctuation/420-Fallout-3"&gt;review of Fallout 3&lt;/a&gt; (warning: naughty language... put the headphones on).  I just wrapped up the game, and liked it a lot.  &lt;br /&gt;&lt;br /&gt;It's kind of like a mix between a first person shoot and an role playing game.  You have the option of calling your shots with the V.A.T.S. system, or if you're set for ammo and have the twitch monkey reflexes you can just use the crosshairs and score your own headshots.&lt;br /&gt;&lt;br /&gt;There's quests to run, and different factions (basically towns) that you can build rep with.  Aside from a few core missions that move you along the story line, everything else is just kind luck-to-find.  There's a surprising amount of stuff to explore in the game, and I found the levelling up part to be practically unnoticeable.  I would recommend that you invest early talent points in stuff like lock picking, science, explosives, repair, etc instead of going for nothing but weapons and stats improvements. The game becomes a lot easier once you can "hack" into any computer (that's basically just a game of hangman where you guess the password) and pick locks.  Also, figure out how to repair stuff early on in the game... you'll save a lot of money and improve the amount damage your weapons do.&lt;br /&gt;&lt;br /&gt;The moral choices in the game are also interesting, in that they affect future quest opportunities later on.  Much like the decision to go carnivore in Spore, I ended up going Good-Guy in FO3, which actually ends up causing more problems than you'd think as bounty hunters are out to get you, and you lose a couple of support options early on in the game.&lt;br /&gt;&lt;br /&gt;Overall, though, it was well done and worth the price of the game.  Thumbs up, Bethesda, and thanks for showing me around DC.  ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-8546981024318625376?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/8546981024318625376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=8546981024318625376' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/8546981024318625376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/8546981024318625376'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/12/fallout-3.html' title='fallout 3'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6301790896970921816</id><published>2008-12-04T14:06:00.003-06:00</published><updated>2008-12-04T14:29:07.593-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>change != innovation</title><content type='html'>innovation -noun&lt;br /&gt;1.  something new or different introduced.&lt;br /&gt;2.  introduction of new things or methods.&lt;br /&gt;&lt;br /&gt;change -noun&lt;br /&gt;1.  a transformation or modification; alteration.&lt;br /&gt;2.  a variation or deviation.&lt;br /&gt;3.  the substitution of one thing for another.&lt;br /&gt;4.  variety or novelty.&lt;br /&gt;&lt;br /&gt;In the push to differentiate products, marketing folks tend to confuse the two together.  The hype for Windows 95 (and now, for Vista) is a good example of this.  Although the product had a lot of modifications and at least the surface was transformed, it's not really a new product.  Going from win32 (Windows 98) to win32s (Windows 2000) was innovation because that was the point that they actively switched from bolting crap on to the old DOS kernel and used the new NT kernel as their base.&lt;br /&gt;&lt;br /&gt;Apple showed innovation by dropping it's old and rapidly aging MacOS for NeXT (aka Rhapsody, aka MacOS X).  The iPod was innovation, not so much because of the hardware, but rather because of iTunes.&lt;br /&gt;&lt;br /&gt;This is a small distinction, but it's an important one that anyone who makes a product (including software developers) would do well to remember because while innovation is an opportunity to create and grow into a new market, change is usually little more than an opportunity for your customers to leave you.  This is especially true for Software as a Service type offerings where your customer doesn't have the option of ignoring the new version and sticking with the old one (ie, World of Warcraft expansion, changes to iGoogle, Facebook pages, cellphone apps, etc).&lt;br /&gt;&lt;br /&gt;The reason for that is because even though you might give advanced warning, and even though you might give people a perfectly reasonable amount of time to test out the new interface, you are still ultimately causing them migration headaches on a date of your choosing, not theirs, for your own benefit, not theirs.  It's a disruption to their routine, and if you're not careful about it they can easily decide that the added cost of simply going somewhere else isn't that much higher than the cost of upgrading to your shiny new 2.0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6301790896970921816?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6301790896970921816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6301790896970921816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6301790896970921816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6301790896970921816'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/12/change-innovation.html' title='change != innovation'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6019572196888189910</id><published>2008-11-19T03:56:00.002-06:00</published><updated>2008-11-19T04:11:02.277-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><title type='text'>meh of the lich king</title><content type='html'>I snagged a copy of Wrath of the Lich King on my way home last Thursday, got it installed, and was promptly greeted with a 2 hour wait to get online thanks to the insane queues that have popped up after the release.&lt;br /&gt;&lt;br /&gt;Maybe it's just a function of the server being overcrowded, but I really, really don't like playing this expansion.  Mobs respawn as you're killing them, and a bunch of quests form a kind of bottleneck where the NPC will become unavailable for turnins if someone else beats you to him and starts goofy animation sequence for the next phase or where you're stuck waiting in line to kill some special mob to complete a quest.&lt;br /&gt;&lt;br /&gt;My real gripe, however, is that the fun part of the game had been raiding, not levelling up.  And now that I'm forced to do it again, I really think I'd rather not.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6019572196888189910?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6019572196888189910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6019572196888189910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6019572196888189910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6019572196888189910'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/11/meh-of-lich-king.html' title='meh of the lich king'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-2249302270745960388</id><published>2008-11-14T16:21:00.002-06:00</published><updated>2008-11-14T16:25:47.670-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>active directory authentication for linux</title><content type='html'>Found this article via &lt;a href="http://www.lwn.net/"&gt;Linux Weekly News&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Personally, I don't like AD as the sole repository of all auth info.  I see nothing wrong with using LDAP for auth (and the author makes a mistake in saying that you can change/reset passwords in LDAP), replication is tricky to setup but simple to maintain, and you can dump everything to a flat file for easy integration with your backup system.&lt;br /&gt;&lt;br /&gt;But this article is a pretty good overview of how Linux nss &lt;-&gt; Windows AD works (not to mention a good summary of why directory services rock and a little historical context), and I haven't seen an explanation of how to use winbind before, so... &lt;a href="http://technet.microsoft.com/en-au/magazine/dd228986.aspx"&gt;here's the link&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-2249302270745960388?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/2249302270745960388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=2249302270745960388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2249302270745960388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2249302270745960388'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/11/active-directory-authentication-for.html' title='active directory authentication for linux'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-1490669064806567542</id><published>2008-11-06T17:34:00.004-06:00</published><updated>2008-11-06T17:48:38.010-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>the zen of programming</title><content type='html'>Programmers get paid to write lines of source code.&lt;br /&gt;&lt;br /&gt;Good programmers get paid to delete them.&lt;br /&gt;&lt;br /&gt;Awww... c'mon.  That was clever.  :(&lt;br /&gt;&lt;br /&gt;Any rate, the distinction occurred to me as I was slogging through a project a couple weeks ago as I was revising some work on a project.  Code written for a specific application seems to generally sort itself out a few revisions, and you find that as objects and APIs mature, you need less and less code to get the job done.&lt;br /&gt;&lt;br /&gt;End result is that I seem to end with less SLOC in my final version than I had in my 2nd revision and everything just feels more snug.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-1490669064806567542?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/1490669064806567542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=1490669064806567542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1490669064806567542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1490669064806567542'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/11/zen-of-programming.html' title='the zen of programming'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-1998052447706662103</id><published>2008-10-29T09:18:00.003-05:00</published><updated>2008-10-29T09:20:10.180-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualization stuff'/><title type='text'>vmware esxi is free</title><content type='html'>Just found out that VMWare's ESXi offering is free.  It's basically a hypervisor based virtual server offering... like Xen, but without the need for hardware VT support to run unmodified hosts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-1998052447706662103?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/1998052447706662103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=1998052447706662103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1998052447706662103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1998052447706662103'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/10/vmware-esxi-is-free.html' title='vmware esxi is free'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-1192898761875705862</id><published>2008-10-29T09:11:00.002-05:00</published><updated>2008-10-29T09:17:46.793-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>MS Azure</title><content type='html'>Did a little investigation into the announcement of Azure.  It basically sounds like MS's response to Google App Engine, except for ASP.net.  And apparently giving you access to a bunch of Live services for your web app.  And integrated with the Visual Studio EE stuff.&lt;br /&gt;&lt;br /&gt;Might be of interest to folks looking to get some experience with MS's enterprise tools without actually having to shell out cash for them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-1192898761875705862?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/1192898761875705862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=1192898761875705862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1192898761875705862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1192898761875705862'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/10/ms-azure.html' title='MS Azure'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-3682754997927245261</id><published>2008-10-20T06:36:00.002-05:00</published><updated>2008-10-20T06:43:35.132-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>F#</title><content type='html'>Noticed this in the safari rss feed: &lt;a href="http://safari.oreilly.com/9781590598504"&gt;Expert F#&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I had no idea such a beast existed, let alone had existed long enough for someone to become an expert in it.  ;)&lt;br /&gt;&lt;br /&gt;tl;dr version: It's a functional programming language for .Net.  They talk about OCaml a lot.&lt;br /&gt;&lt;br /&gt;After messing around with Erlang, I found that I really, really like functional programming.  You skip a lot of the shullbit and get straight down to business of working with the data... the problem for everyday use is that the users kind of like all that shullbit, and so that's what you get paid to write.  I'd been thinking that the only way to sneak functional programming in would be as a web/system service, but if it's a .Net assembly...  \o/&lt;br /&gt;&lt;br /&gt;Will have to check it out more later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-3682754997927245261?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/3682754997927245261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=3682754997927245261' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/3682754997927245261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/3682754997927245261'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/10/f.html' title='F#'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-496612464229870650</id><published>2008-10-14T06:14:00.002-05:00</published><updated>2008-10-14T06:21:41.729-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creative stuff'/><title type='text'>dead robot society</title><content type='html'>Found an interesting podcast about writing:  &lt;a href="http://deadrobotssociety.com/"&gt;Dead Robots Society&lt;/a&gt;.  Some interesting discussions about stuff like Campbell's Hero Arch and how it applies to not just books and movies, but news and video games, how to handle dialog in a story, a tool called &lt;a href="http://www.dramatica.com/"&gt;Dramatica&lt;/a&gt; you can use to analyze your plots, and an interview with an independent publisher that gives some insight into the business side of things.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-496612464229870650?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/496612464229870650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=496612464229870650' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/496612464229870650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/496612464229870650'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/10/dead-robot-society.html' title='dead robot society'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6793637774643508463</id><published>2008-10-14T06:04:00.002-05:00</published><updated>2008-10-14T06:13:42.553-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>unity3d</title><content type='html'>Think I already mentioned it before, but &lt;a href="http://unity3d.com/unity/"&gt;Unity3D&lt;/a&gt; is an engine/platform you can use to design games/sims.  Cool features include a web based plugin, MS/Mono support, Wii and iPhone dev, and apparently MMO dev in their 2.1 release.  Basically, it's in the same niche as &lt;a href="http://www.garagegames.com/"&gt;Torque X&lt;/a&gt;.  My main concern remains development tools (ie, art and assets, not game code), but it looks like they're both coming along nicely.&lt;br /&gt;&lt;br /&gt;I'm not ready to spend money on either one yet as I'd prefer to get a little more experience with the fundamentals (namely, SDL/OpenGL), but I'm kind of leaning towards Unity atm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6793637774643508463?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6793637774643508463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6793637774643508463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6793637774643508463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6793637774643508463'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/10/unity3d.html' title='unity3d'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-5785118480836541989</id><published>2008-10-14T05:44:00.002-05:00</published><updated>2008-10-14T06:04:17.490-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>sdl/tao</title><content type='html'>An alternative to using XNA for .net game/sim development is to go with &lt;a href="http://www.libsdl.org/"&gt;SDL (simple directmedia layer)&lt;/a&gt; (or its .net wrapper assembly &lt;a href="http://cs-sdl.sourceforge.net/index.php/Main_Page"&gt;SDL.net&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;The good news is that SDL takes care of the 2d, input handling, sound, and some networking crap.  The bad news is that 3d is outside of aegis, and the best it can do is setup a surface for drawing OpenGL stuff on.  That means you need an OpenGL library, which &lt;a href="http://www.taoframework.com/"&gt;The Tao Framework&lt;/a&gt; provides.  Bad news there is that it's basically just wrappers for unmanaged code, so you still need to keep track of what you allocated to prevent memory leaks and setup a Dispose() for stuff.&lt;br /&gt;&lt;br /&gt;But the sunny side is: works for MS and Mono.  \o/&lt;br /&gt;&lt;br /&gt;Jabuka has written up some decent tutorials and example code &lt;a href="http://www.taumuon.co.uk/jabuka/"&gt;in his physics engine implementation project&lt;/a&gt;, which gives some real-world examples of how to use Tao.&lt;br /&gt;&lt;br /&gt;So I'm thinking, what, 2.. maybe 3 months for World of Spooncraft 1.0 launch?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-5785118480836541989?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/5785118480836541989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=5785118480836541989' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5785118480836541989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/5785118480836541989'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/10/sdltao.html' title='sdl/tao'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6831687784029286792</id><published>2008-10-13T18:28:00.002-05:00</published><updated>2008-10-13T18:43:08.991-05:00</updated><title type='text'>bad start</title><content type='html'>October has gotten off to a bad start.  Suffered a big loss, and everything else seems to be crumbling to dust around me.&lt;br /&gt;&lt;br /&gt;Personal hacking has been on hold while I'm in the funk... maybe I've just trying to avoid thinking in my private time and trying to avoid that just vegging out and doing my somber Martian style of "socializing".  &lt;br /&gt;&lt;br /&gt;Professional hacking has gone pretty good, though.  It's good to have something to focus in on, and that's a quick, attainable goal so that not everything is Tantalus's picnic.  :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6831687784029286792?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6831687784029286792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6831687784029286792' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6831687784029286792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6831687784029286792'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/10/bad-start.html' title='bad start'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-7919205677222563889</id><published>2008-10-03T00:20:00.005-05:00</published><updated>2008-10-03T00:43:09.093-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music videos'/><title type='text'>stacey</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/w7KliFJQaM4&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/w7KliFJQaM4&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-7919205677222563889?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/7919205677222563889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=7919205677222563889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7919205677222563889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7919205677222563889'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/10/stacey.html' title='stacey'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-2926302743860939380</id><published>2008-09-28T15:13:00.003-05:00</published><updated>2008-10-14T06:22:17.686-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creative stuff'/><title type='text'>celtx - open source script writing tool</title><content type='html'>If you're interested in script writing, you might want to check out &lt;a href="http://www.celtx.com/"&gt;Celtx&lt;/a&gt;.  It's a free, open source script writer that has some really cool features.  You can write scripts in different formats (ie, stagescript, comic book, or film script), hook up storyboard art and actors/props to scenes, and schedule everything with a calendar.&lt;br /&gt;&lt;br /&gt;Very cool stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-2926302743860939380?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/2926302743860939380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=2926302743860939380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2926302743860939380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/2926302743860939380'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/09/celtx-open-source-script-writing-tool.html' title='celtx - open source script writing tool'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-4910044125983095616</id><published>2008-09-26T23:37:00.002-05:00</published><updated>2008-09-26T23:49:34.728-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><title type='text'>and speaking of spore</title><content type='html'>I like it.&lt;br /&gt;&lt;br /&gt;While not every choice you make influences aspects of later gameplay, there are some major ones.  Ie, spend more time killing your neighbors than negotiating with them, and you'll end up with an aggressive, warlike tech tree when you get to later stages in the game.&lt;br /&gt;&lt;br /&gt;The tragedy is that I find it's much easier to just conquer my neighbors than impress them with dances or music performances.  My little one celled organisms quickly grew up into goofy bipedal killing machines that gave up all pretense at diplomacy and rapidly established an authortarian empire on both continents of my homeworld.  It only got worse once I attained spaceflight.&lt;br /&gt;&lt;br /&gt;Will Wright games take me to a scary place.  :(&lt;br /&gt;&lt;br /&gt;Any rate, the game itself is pretty well crafted.  Replay value is in the infinite (and I mean fscking infinite) variety of creatures and cultures you can create.  There's some civilization micro-management in the later stages of the game, but it's nothing major and in the worst scenario where you ignore a planet and it drops back to a T0 barren rock... it only takes about 5 minutes work to resculpt it into a T3 paradise.&lt;br /&gt;&lt;br /&gt;Only thing I'd ding the game for is that the explanation on how to terraform wasn't clear and it's not covered in the manual.  But once I finally doped it out, it's hellah fun.&lt;br /&gt;&lt;br /&gt;Main focus of the game is definitely the space stage... most of the other stuff was kind of just phases you had to go through, but I also suspect that there's some good replay value in there.  Ie, see how far you can get by being a peaceful herbivore instead of just melting everyone's face.&lt;br /&gt;&lt;br /&gt;It's also worth pointing out that during the creature phase, as you're gaining brain capacity the size of your "pack" grows.  You can charm multiple creatures to help you out.  I made it through most of this stage flying solo, but decided to pick up 3 of my own buddies to help take down the last nest I had to conquer.  There was definitely a "goat leg drops onto the roof of the car" moment when you realize that one goofy, almost bashful looking creature is cute... but 4 of them racing through the forest on a dark errand appear to be perfectly tuned killing machines and intent on one terrible goal that might not be suited for children to watch.&lt;br /&gt;&lt;br /&gt;Plus, they can spit venom.  :o&lt;br /&gt;&lt;br /&gt;Still not sure I'm down with the DRM thing, but overall I like the game.  Not quite what I'd thought it'd be a year ago, but it's by no means a disappointment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-4910044125983095616?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/4910044125983095616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=4910044125983095616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4910044125983095616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4910044125983095616'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/09/and-speaking-of-spore.html' title='and speaking of spore'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-1385463539910826592</id><published>2008-09-26T23:33:00.002-05:00</published><updated>2008-09-26T23:37:30.694-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><title type='text'>waaaagh not so much :(</title><content type='html'>Turns out that there's an issue with 8X00 nvidia cards and WAR.  Turns out that this was discovered in beta, but quietly ignored.  Turns out a week after launch, they still have no solution to the problem but are more than happy to crow about the 500K subscribers they've got (I thought there were 1.5 million pre-orders??)&lt;br /&gt;&lt;br /&gt;tl;dr version: Fsck it, I'll just go finish dominating the galaxy in Spore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-1385463539910826592?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/1385463539910826592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=1385463539910826592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1385463539910826592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1385463539910826592'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/09/waaaagh-not-so-much.html' title='waaaagh not so much :('/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-8614711082532264629</id><published>2008-09-23T14:26:00.003-05:00</published><updated>2008-09-23T14:36:49.261-05:00</updated><title type='text'>revisiting cuil</title><content type='html'>Almost 2 months ago, I &lt;a href="http://spoonix.blogspot.com/2008/07/how-do-you-search-web.html"&gt;mentioned cuil&lt;/a&gt; and how it offered up a different way to organize search results.&lt;br /&gt;&lt;br /&gt;Since then, I've actually used to research a couple of topics... namely, Amazon Web Services tools, the Battle of Hastings, and how to generate UV light.  &lt;br /&gt;&lt;br /&gt;On the Battle of Hastings, it did a nice job since there was plenty of multimedia type stuff surrounding the topic.  The left-right layout and page previews helped me zero in on some information, get a refresher on the topic, and then find a couple of places to dive in deeper.&lt;br /&gt;&lt;br /&gt;On the technical stuff, though, it fell kind of flat.  The UV light research turned up lots of links to what UV light is and how it works, but not so much on the "help, vampires are attacking and I need a weapon NOW!!" front.  For the AWS tools, I basically got links back to Amazon's forums.  Thanks a lot.&lt;br /&gt;&lt;br /&gt;So.  As things stand now, it's pretty much going into my webz toolbox as "the place to go instead of the library".  Will be nice if it sticks around, but I can't say there'd be a huge impact if it didn't.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-8614711082532264629?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/8614711082532264629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=8614711082532264629' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/8614711082532264629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/8614711082532264629'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/09/revisiting-cuil.html' title='revisiting cuil'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-3173451878240256242</id><published>2008-09-22T06:16:00.003-05:00</published><updated>2008-09-22T06:27:29.413-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>did you know..</title><content type='html'>That UV lights are really just flourescent lights with small amounts of mercury added to them?  When energized, mercury emits UV photons.&lt;br /&gt;&lt;br /&gt;Also works with a laser, too.  Zap mercury gas with a laser, and you get a UV laser that can be seen when you put a piece of paper in front of it (the UV reacts with the blue fibers manufacturers add to paper to make it appear white instead of mashed-up-tree-goo-brown).  But.. realistically.. who's got a portable lasers laying around?&lt;br /&gt;&lt;br /&gt;Any rate.  &lt;br /&gt;&lt;br /&gt;If you're trapped in an Alaskan town when vampires attack, just find a mercury based thermometer, modify a flash light, and there ya go.  Point the beam at a sheet of white paper and make sure there's a glowing blue dot before you go on offense, though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-3173451878240256242?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/3173451878240256242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=3173451878240256242' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/3173451878240256242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/3173451878240256242'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/09/did-you-know.html' title='did you know..'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-4658911652977472078</id><published>2008-09-19T01:41:00.005-05:00</published><updated>2008-09-19T02:12:14.445-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>other games</title><content type='html'>I also picked up Sins of a Solar Empire and Spore.  Planning on giving those a test drive this weekend as go-me rewards for getting the S3sync project into a usable state and coming up with a plan to refactor the code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-4658911652977472078?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/4658911652977472078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=4658911652977472078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4658911652977472078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4658911652977472078'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/09/other-games.html' title='other games'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-4053296885317327331</id><published>2008-09-19T01:41:00.002-05:00</published><updated>2008-09-19T02:07:34.407-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='whinge'/><title type='text'>first impressions of warhammer</title><content type='html'>So, got the beast installed (2 dvd's!!) and took it for a test run.&lt;br /&gt;&lt;br /&gt;Overall, I'm not very impressed with the game.  Let me give you a taste of the gameplay so far:&lt;br /&gt;&lt;br /&gt;*) create your account with EA/Mythic (note the name.. it becomes important later on)&lt;br /&gt;*) start up WAR, wait for 45 mins for the 255MB patch to download (seriously?)&lt;br /&gt;*) finally get the patch downloaded, start the game, agree to the license and ToS&lt;br /&gt;*) begin selecting your character and deciding which set of tusks best describes you as a hulking minion of the Armies of Destruction&lt;br /&gt;*) frown as the game starts to lag during the character customization phase until it gets so bad you just give up and hit the "PLAY" button hoping it'll go away&lt;br /&gt;*) enter the game and begin walking to the first quest giver only to be struck by crippling lag after taking 2 steps&lt;br /&gt;*) spend 5 minutes fighting through the lag in an attempt to get the visual config menu opened up and turning everything down to lowest possible settings&lt;br /&gt;*) give up when that doesn't do anything, and try restarting the game&lt;br /&gt;*) agree to the ToS a &lt;strong&gt;second&lt;/strong&gt; time&lt;br /&gt;*) re-enter game, resume your walk to the first quest giver, and get hit with crippling lag inside of 5 steps this time&lt;br /&gt;*) hunt for the in-game help feature to report the problem, and experience a complete lockup of the game and a tone that sounds ominously like a flatlining EKG machine for 10 seconds&lt;br /&gt;*) wait for lag/death tone to subside, hit the help button, and begin filling out your report only to discover there's a hidden character limit on the input box labelled "be as descriptive as possible"&lt;br /&gt;*) revise your bug report down into "terribad lag, bad tone + lockup, plzhlp" (all the while experiencing said terribad lag... we're talking IRC on a 2400 bps modem here, folks) and have the game completely crash before you can submit it&lt;br /&gt;*) sigh, and decide to use the web form to report the bug... spend a while typing in your WAR account/pass and your EA Mythic website account/pass before noticing that in order to report a bug you have to have an EA.com account&lt;br /&gt;* register with EA.com, wait a few mins for warhammeronline.com site to accept your new credentials, and submit bug report&lt;br /&gt;* go whine about the whole experience on your blog that only 2 people read&lt;br /&gt;&lt;br /&gt;It's not a very fun game, so far.  :)&lt;br /&gt;&lt;br /&gt;In seriousness, though, I did get a chance to kill a couple of dwarves and get to level 2 before things got too bad.  It's got some major differences from WoW... the two big ones for me are that there's no autoattack (ie, you have to use an ability from your action bar for each swing of your weapon) which slows things down with what appears to be a 1.5s cooldown between swings.  I'm thinking that it's going to be tricky to get into a button-mashing groove later on and such grooves will depend on your action bar layout as much as your talents.  Hrm.  &lt;br /&gt;&lt;br /&gt;The other complaint is the orc quests are written in orc "flavor" language... which is some funky hybrid of Cockney, Sottish, and gangsta rap.  It's kind of difficult to tell what the hell the plot is, and tempting just to read the list of stuff you need to go grab.&lt;br /&gt;&lt;br /&gt;The interface is pretty well laid out, and it preserves a lot of controls and features from the WoW interface, so... at least that transition has been eased.  I find the compass much easier to read, and there's a lot of stuff there natively that you had to rely on add-ons for in WoW.&lt;br /&gt;&lt;br /&gt;Not too bad.&lt;br /&gt;&lt;br /&gt;Other than the sever, crippling lag thing.  And the byzantine maze you have to navigate to submit a bug report.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-4053296885317327331?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/4053296885317327331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=4053296885317327331' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4053296885317327331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/4053296885317327331'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/09/first-impressions-of-warhammer.html' title='first impressions of warhammer'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-382304673833888705</id><published>2008-09-17T15:15:00.004-05:00</published><updated>2008-09-18T12:46:27.745-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><title type='text'>waaaaaagh!</title><content type='html'>So even though in the 10 days since I quit playing WoW I've ripped through 2 ora books, learned enough ActionScript to become dangerous, started the downward slope of a ASP.net project I'm running solo on, gotten the hard logic of the S3sync tool knocked out, rehabbed my home network and got some big boy security in place....  I'm probably going to snag &lt;a href="http://www.warhammeronline.com/"&gt;Warhammer: Age of Reckoning&lt;/a&gt; tonight.&lt;br /&gt;&lt;br /&gt;The big diff seems to be that unlike WoW, WAR does not demand every freaking minute of your life.  Also unlike WoW, WAR seems to be more realistically designed around the concept of "more is better" rather than requiring you to break up into small, specialized, and closed groups.&lt;br /&gt;&lt;br /&gt;Got some pals (&lt;a href="http://www.titansofsoria.com/forum/"&gt;Titans of Soria&lt;/a&gt;) heading for Iron Rock, Destruction side (apparently the server's got a 3-1 Destruction:Order ratio.. for once, I'll be in the majority).  I'm thinking I'm going to stick with my tanking tradition and go with a Black Orc.&lt;br /&gt;&lt;br /&gt;Named Parkerlewis.  \o/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-382304673833888705?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/382304673833888705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=382304673833888705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/382304673833888705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/382304673833888705'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/09/waaaaaagh.html' title='waaaaaagh!'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6450634018044209054</id><published>2008-09-14T19:24:00.002-05:00</published><updated>2008-09-14T19:40:49.055-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>simplify, eh?</title><content type='html'>One of the things that used to amaze me in Calculus class was how you could take a fairly innocuous looking little function, apply a few theorems to it, and it would suddenly explode into this half page nightmare monster of fractions, lost negative signs, and how in the hell did a csc() get in there?!?&lt;br /&gt;&lt;br /&gt;And yet, that was the right answer.  You had "simplified" the equation by wasting a bunch of #2 lead and paper.  It was as far as you could go towards getting a solvable answer with the tools at your disposal.  In other cases, some small precondition wouldn't be met and you could just write down "DNE" for "does not exist" and move on to the next problem.  In these cases, the correct answer was to simply give up and not worry about the problem anymore.&lt;br /&gt;&lt;br /&gt;As I'm getting back into the swing of CLI development, I'm struck by how many situations that a programmer can be tempted to just write "DNE" and move on.  In GUI development, you must constantly check for errors/exceptions, and you must handle them gracefully lest your user think that your software is a piece of crap and uninstalls it.  Sometimes the error checking can be larger than the actual code to run the program (and about 7 times less fun to write).  But at the command prompt... ah... we can easily punish the user for incorrect input by saying, "WRONG ANSWER!  Go to the back of the line and start over!!"  and escape from having to write the error checking code.&lt;br /&gt;&lt;br /&gt;It's a seductive trap, and one I'm finding I have to stay vigilant against falling into.  Today's mantra is "DNE is not an acceptable answer".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6450634018044209054?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6450634018044209054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6450634018044209054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6450634018044209054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6450634018044209054'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/09/simplify-eh.html' title='simplify, eh?'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-688010636154115883</id><published>2008-09-14T18:07:00.002-05:00</published><updated>2008-09-14T18:35:17.639-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='whinge'/><title type='text'>why is jill greenberg surprising?</title><content type='html'>I've gotten a bunch of emails from friends and family trying to make me aware of the Jill Greenberg controversy, and I'm left wondering: Why is it a big deal?&lt;br /&gt;&lt;br /&gt;By way of background, Greenberg is a photographer who was hired by some rag called The Atlantic to shoot some pics of John McCain for a story they were doing.  She basically didn't retouch the photos that the mag used, and so McCain ends up with red eyes and "bad looking skin" on the cover shot.  She also apparently used the shoot as an opportunity to sneak in some strobe light pics that makes McCain look like he's casting an ominous shadow or something.  The laundry list of complaints is &lt;a href="http://americandigest.org/mt-archives/bad_americans/the_atlantic_mo.php"&gt;here&lt;/a&gt;, and her response has been a sophomoric "not my fault" using the reasoning that The Atlantic knew she was anti-Bush, so it's they're fault for hiring her.&lt;br /&gt;&lt;br /&gt;And it's impossible for me to give less of a crap.  I don't read The Atlantic... didn't even know it existed until today.  But even if I did, I would probably assume that the editors of the mag were just like the editors of other magazines, who are just like the editors of newspapers, who are just like producers of TV news, and who are just like the lone freaks creating the blogs I read:&lt;br /&gt;&lt;br /&gt;Freaking biased and not above lying by omission or resorting to cheap images or loaded language to further their own agenda.&lt;br /&gt;&lt;br /&gt;Let's face it.  The ideal of objective journalism is gone, people, and it's the editors who strangled it.  I give as much credence to CNN and the NYT as I do slashdot... maybe even less as at least the latter allows a forum for its consumers to debate the slant of the article.&lt;br /&gt;&lt;br /&gt;Everyone knows this already.  How can you be surprised when they do what you know they're going to do?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-688010636154115883?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/688010636154115883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=688010636154115883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/688010636154115883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/688010636154115883'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/09/why-is-jill-greenberg-surprising.html' title='why is jill greenberg surprising?'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-1015135165166628428</id><published>2008-09-14T00:34:00.002-05:00</published><updated>2008-09-14T00:45:05.559-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>s3 for backups</title><content type='html'>So I'm reading up on Amazon Web Services; S3 is the current target.&lt;br /&gt;&lt;br /&gt;What's been tripping me up with S3 is that I keep wanting to treat it like a remote filesystem... I was having trouble finding a good "model" to use for backups, but I think I've settled on using something like rsync as the answer.  Put stuff you want to backup into a folder, specify a bucket, and run a program that will periodically check the stats on all files in the dir and upload anything new or that has changed up to S3.&lt;br /&gt;&lt;br /&gt;Gonna check to see if anyone's already put something together for it yet, but if not will probably whip up a utility based on the &lt;a href="http://www.rightscale.com/"&gt;Right Scale AWS&lt;/a&gt; ruby libs.&lt;br /&gt;&lt;br /&gt;EC2 next.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-1015135165166628428?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/1015135165166628428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=1015135165166628428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1015135165166628428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/1015135165166628428'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/09/s3-for-backups.html' title='s3 for backups'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-838026298228415359</id><published>2008-09-13T11:51:00.001-05:00</published><updated>2008-09-13T11:53:03.769-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='whinge'/><title type='text'>depressing headlines</title><content type='html'>"Feds take break from bailouts to tackle inflation"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/o\&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-838026298228415359?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/838026298228415359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=838026298228415359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/838026298228415359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/838026298228415359'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/09/depressing-headlines.html' title='depressing headlines'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-6441677158169642823</id><published>2008-09-11T19:32:00.003-05:00</published><updated>2008-09-11T19:47:48.956-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>now that I've gotten to know it better...</title><content type='html'>ActionScript has replaced javascript as the #1 Thing I Would Hate to Be Stuck Doing for All Eternity When I Go to Hell.&lt;br /&gt;&lt;br /&gt;All these kidlets rushing out to embrace AJAX and doing some hellaciously complex stuff in js for the past 3 years suddenly makes a hell of a lot more sense.&lt;br /&gt;&lt;br /&gt;I'm also seeing a lot of parallels between Adobe's AS and MS's AFX^H^H^HMFC stuff.  I wonder if Adobe knows that this evolutionary branch is a doomed one, and whether or not they've started thinking about how they're going to handle their very own version of the VB6 developer .Net revolt that's looming in the far off future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-6441677158169642823?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/6441677158169642823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=6441677158169642823' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6441677158169642823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/6441677158169642823'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/09/now-that-ive-gotten-to-know-it-better.html' title='now that I&apos;ve gotten to know it better...'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3084962857261588123.post-7445314573560584281</id><published>2008-09-09T06:48:00.004-05:00</published><updated>2008-09-09T06:51:11.533-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>mysql replication</title><content type='html'>Found a decent howto on &lt;a href="http://www.howtoforge.com/mysql_database_replication"&gt;MySQL DB replication&lt;/a&gt;.  Looks straightforward enough... thinking about using it for a friend's server that had to be taken offline for Gustav and that I was hosting a backup for.&lt;br /&gt;&lt;br /&gt;Gonna need to do some checking on MySQL security, though... opening the database up to the network on a public just strikes me as asking to get hit.  :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3084962857261588123-7445314573560584281?l=spoonix.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://spoonix.blogspot.com/feeds/7445314573560584281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3084962857261588123&amp;postID=7445314573560584281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7445314573560584281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3084962857261588123/posts/default/7445314573560584281'/><link rel='alternate' type='text/html' href='http://spoonix.blogspot.com/2008/09/mysql-replication.html' title='mysql replication'/><author><name>spx</name><uri>http://www.blogger.com/profile/09295770472153811894</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
