Archive for February, 2010

Vault boy, child-killer illustration

The amazing, but unused, child-killer illustration from Fallout 2, created by Brian Menze.

vault boy, child killer

This image was unused and the only Vault Boy image to ever be cut from Fallout 2. (I’m sure you can figure out why) I remember when I got the request to do a perk illustration for “child Killer” that there would be no way to keep in from being offensive. I mean really! How do you make an illustration of “child killer” and keep it from being offensive? Anyway for some reason, I thought this was the least offensive way to do it. I have no idea what i was thinking. Even the designer who requested it realized it was a bad idea, so we nixed it. Looking back on it now, I can’t believe I drew this.

h/t HellForge

Last night launch of the shuttle

STS-130 Space Shuttle Endeavor launch from the Intracoastal Waterway Bridge in Ponte Vedra, Florida; about 115 miles from the launch pad. This launch was extra special because it is NASA’s last scheduled night launch of the space shuttle program.

shuttle launch at night from Intracoastal Waterway Bridge, in Ponte Vedra, Florida

Credit & copyright: James Vernacotola

Mono.Unix.Native

After spending some time attempting to P/Invoke the stat() function, I discovered the wonderful Mono.Unix.Native namespace (found in the Mono.Posix assembly) which has some great stuff for lower-level Unix/Linux work.

Here’s what I did to pull a file’s inode number:

static public ulong GetFileInodeNum(string path)
{
    Mono.Unix.Native.Stat statOut =
new Mono.Unix.Native.Stat();
    
int statRet = Mono.Unix.Native.Syscall.stat(path, out statOut);
    
    
if(statRet == -1)
    {
        
throw new IOException("stat on " + path + " failed.");
    }
    
    
return statOut.st_ino;
}

Mono PlatformID on MacOS X

Unfortunately, the method mentioned in the Mono Technical FAQ, where you can check System.Environment.OSVersion.Platform for a value of 6 doesn’t work (as of Mono 2.6). I got the following code from this thread, which works well enough,

[DllImport("libc")]
static extern int uname(IntPtr buf);

static bool IsRunningOnMac()
{
IntPtr buf = IntPtr.Zero;
try
{
buf =
Marshal.AllocHGlobal(8192);
if (uname(buf) == 0)
{
string os = Marshal.PtrToStringAnsi(buf);
if (os == "Darwin") return true;
}
}
catch { }
finally
{
if (buf != IntPtr.Zero) Marshal.FreeHGlobal(buf);
}
return false;
}