I Finally Finished King's Quest 6!

Well, tonight, I did it. I finished King’s Quest 6! A feat 25 years in the making, at least for me.

I used to play this game at my grandparents’, on my grandfather’s computer. We’d sit for hours just poking things on the screen. It was probably 1995, we were all between 3 and 7 years old and - in the manner of children - not so much actually trying to progress in the game so much as entertaining ourselves. We probably killed poor Alexander several hundred times by having him jump into the sea. (When I told my mom I was playing the game again, that was all she recalled of the game!)

This year, after seeing an article at the wonderful Obscuratory that mentioned it (probably this one), I picked up a copy. And now I’ve finished it, though I did miss a few points (I think I didn’t save after tugging on the loose thread of the Black Widow’s web…). It holds up remarkably well and was quite fun to play, even if some of the mechanics feel a …

Continue reading

The Post of Shame

So this site has been down since at least July 9, 2019 (according to my email). And the reasons were pretty simple – and dumb. This post is going to be a sort of post-mortem on why it failed and what the fixes were. And (hopefully) it’ll include some lessons learned.

About the Site

This site runs on apache2 on a debian-stable server. The underlying site is written in Django. The entire site is supposed to be self-maintaining. This happens via a combination of Debian’s unattentded-upgrades capabilities and a homebrew django-autoupdate script. Django, in turn, is backed by a MySQL database.

In order to be able to cleanly attempt upgrades,

So What Happened?

Simply put, Debian Buster released (on July 6, 2019) and I wasn’t prepared. This release upgraded python. Normally that’s not a big issue. Except that I had hard-coded the python version in the site configuration file:

<IfModule mod_ssl.c>  
    <VirtualHost *:443>  
        ServerName …
Continue reading

Metalcasting by 3D Printer

Starting at the End

I used 3D printing to create a pendant for a friend.  The steps I took are below.  However, I’m so excited about the end product that I wanted to start by showing it off.

Picture of the finished pendant

The Adventure Begins

On a whim, I asked a friend to give me an idea for something to 3D print.  She’s a huge fan of Garth Nix’s Abhorsen series and admires the Clayr.  She suggested creating a pendant based on their sigil.  After a couple hours work, I had this:

From here, I started thinking about how nice it would be to have this in metal - to make it into a proper pendant that she could wear.  After quite a bit of looking online, I settled on trying to cast it in a low-melting point alloy.  These are usually used in thermal fail-safes in industrial machinery, rapid prototyping or die-casting.

Many of these alloys contain lead - obviously an issue for something that is to be worn.  The most prominent non-toxic option is Field’s Metal.  However, that stuff is EXPENSIVE. …

Continue reading

Booting Gentoo from LVM in RAID

I run Gentoo Linux on my personal servers, including my RAID server.  (I have a dedicated server for raid and file dumps.  What, you don’t?).  When I first set this machine up 2-3 years ago, I gave it a single HDD (yes, spinning iron!) to boot from.  At the time, my rationale was “hey, if it dies, the RAID is intact, I just have to rebuild the system”.  Now, I’m changing from having several home directories scattered over all my machines to keeping a unified home directory in AFS.  This means that my RAID is suddenly critical - it goes away and I loose access to my files.  For various reasons, I chose to do this install as a mostly-from-scratch - primarily after three years, spanning the linux 2.6 to 3.x kernel change, quite a lot of useless, outdated or just dead config has built up.

In these instructions, we assume that you wish to set up a bios-booting machine, using GPT partition tables, mdadm software raid, lvm volume management, and grub2.  We also assume …

Continue reading

The 9/11 Commission is Massively, Completely and Catastrophically Wrong

Note from Steve (April 3, 2022): I’m leaving this up because it’s a thing I wrote once upon a time. In the intervening 7.5 years, some of my opinions have shifted. Some haven’t. And frankly I’m not sure about some of my textual interpretation here anymore. A post like this is best left to experts - not some 23-year-old.

I still think “hacking back” is a terrible idea, but we’ve managed not to have a cyberattack turn into a shooting war. Much the opposite – we’re now seeing that overt and offensive cyberattacks can sometimes be components of shooting wars.

On the other hand, I now come down on the opposite side on liability. At this point, it’s better companies can disclose attacks so they can be mitigated and consumers can react appropriately. We’ve also seen that in cases of actual/gross negligence, there is still liability. Also, market forces still incentivize protecting consumer information.

Anyway, the original post …

Continue reading

New software - GCode splitter!

Over the last few months, I’ve been silent as I transitioned from the life of a student to the life of a professional.  But!  I have finished that transition (for the most part) and am now back.  I even bring new software with me.

This new software (which has the rather uncreative name “gcode splitter”) is a utility for use in 3D printing.  I have acquired a 3D printer for me to experiment with.  The printer I own has one printhead.  However, many of my designs require two or more materials.  (I’m using a lot of “exotics”, like conductive or flexible plastics).  It occurred to me that as long as the two materials never shared a layer (or only shared one layer at the interface), I could split the print into parts, change the plastic between prints and thereby end up with multi-material objects.

The code is available on my github.  The utility has fairly simple inputs - it takes a (specially formatted) gcode file, followed by the locations in which the …

Continue reading

Extruding Silhouettes for 3D Printing with Inkscape and OpenSCAD

I recently found myself in a position where I wanted to extrude a logo so I could 3D print it.  Unfortunately, this is a pretty difficult process to figure out without instructions.  Therefore, I decided to document it.  This process assumes you’re starting with a pixel-based image (bitmap, jpg, etc).  If instead you have a vector graphic (SVG, etc) you should be able to do this by starting at the export step.

Software Used

  • Inkscape 0.48.4-r9939 (latest through Debian testing as of time of writing)
  • OpenSCAD 2013.06.09 (Also Debian-testing latest)
  • A Debian-testing system (though this shouldn’t matter)

Process

As the highest level we need to accomplish three steps:

  1. Convert the pixel (bitmap) image to a vector graphic
  2. Export the vector graphic in a format OpenSCAD will use
  3. Extrude it in OpenSCAD

The last step is documented solely because there are a number of little details which can totally stop this process from working if you don’t get them exactly correct. …

Continue reading

Defense Distributed versus the US Government

In my last entry, I mentioned that the United States Department of Defense had requested Defense Distributed remove the plans for their 3D printed firearm from the internet.  I also mentioned that I believed this was Defense Distributed getting the legal fight it had been spoiling for.

Eating my Words

However, I believe I have to eat my words.  It has now been more than a month since the USDoD requested the plans be removed form the internet and there has been no response (other than compliance) from Defense Distributed.  In my mind, this is indicative of Defense Distributed scrambling to find a response or believing they have achieved their goal.  If Defense Distributed had anticipated that they would be targeted using export laws, I believe they would have already responded.

My basis for analyzing Defense Distributed’s actions is a lawyer friend of mine.  I have seen him repeatedly take on laws he doesn’t like, believes are unjust or poorly written.  His typical …

Continue reading

Defense Distributed, 3D Firearms and People Who Should Have Shut Up and Left It To The Pros. Oh my.

Edit: Just before the publication of this article, Defense Distributed voluntarily removed the designs for the Liberator from their website, at the request of the Department of Defense.  In my opinion, this is Defense Distributed getting the legal fight with the government it was spoiling for.  More on that to follow.

Hello again world.  How are you today?  It’s been a while since I last posted, mostly due to school.  Good news is that I had an awesome semester and worked on some very cool projects.  A little polishing, and I’ll happily show them off here.

One of the things I’ve been very intimately involved with this semester is 3D printing.  Consequently, I have some thoughts to share on Defense Distributed, which is aiming to make a 3D printed firearm.  More specifically, I have thoughts on their 3D printed firearm and how much it does - and doesn’t - change the security playing field.  I also have a few thoughts on the attitude and approach of Defense …

Continue reading

Booting Windows in both a VM and Bare Metal

So.  My laptop primarily runs linux.  However, I’ve got a few reasons to run Windows - gaming being one of them, watching streaming SilverLight video (choughnetflixcough) another.  Rebooting a machine every time I want to switch operating systems is rather a drag.  However, for some things (gaming), I’ll want to be doing this anyway.  So I figured out how to make Windows both bare-metal boot and VM boot.  I make no guarantees about any sort of performance.

As a side note, I’ll probably also play with enabling the Optimus video card on my laptop for the VM.  Letting the video-intensive VM have basically a video card all to itself ought to help performance….

Anyway, on to the setup.

My Setup/Things you Need

  • VirtualBox
  • Windows 8
  • Windows Install DVD/DVD Image

Procedure

Prerequisite: Bare-Metal Dual-Boot

As it says.  I’m assuming here that your machine is already set up and properly dual booting.

Give Your User Raw Disk Access

Linux really doesn’t like …

Continue reading