Bipersonal Computer

I finally got my act together and cleaned up my workspace enough to a take a picture of the current setup:

The Setup

There is nothing extraordinary about it, especially when considering the history of computing. However, it is an atypical configuration.
Read More »

Benford’s Law – the World is Often Logarithmic?

This post was made possible by Kevin L., who reminded me of the awesomeness of Radio Lab during last Tuesday’s midday bicycle spin. For those not familiar, Radio Lab is an hour long science show. ‘Science show’ doesn’t really do it justice though; the shows are highly accessible, interesting, and always well done.

While on the Radio Lab site listening to the show on limits of the human body (appropriate ride topic), another show caught my eye, entitled Numbers. A Radio Lab on numbers? I was sure that there’d be some gems; it did not disappoint. There was one topic in particular that captured my attention, Benford’s Law.

Read More »

Old Skool Computing

A couple of training videos describing the components of analog (mechanical) computers used on naval ships in the ’50s:

Part 1
Part 2

Amazing how far computing has come in 60 years.

New (To Me) Languages – Haskell

In the movie Hoosiers, if I remember correctly, the basketball coach holds up a basketball and declares that it represents all there is know about basketball. He then makes a dot on it with a marker and declares that the dot to represents how much his team knows about basketball. Cut the dot in half, and that’s how much I feel I know about Haskell. However, even at the most fundamental levels of understanding there are some interesting concepts that differentiate Haskell from the industry standard and “popular” languages.

What are some of the basic concepts and features of Haskell that I think make it an interesting language? It is purely functional, has higher order functions, has lazy evaluation, and has type inference. Disclaimer: things get a bit technical below; you’ve been warned!
Read More »

New (To Me) Languages – Prolog

It’s been awhile since I’ve posted; part of the reason is that I’ve devoted some of my off hours to becoming more familiar with a couple of programming languages, Prolog and Haskell. However, the most of the reason is laziness.

I did start a post on what is wrong with the infrastructure of the web that turned into a rant. Turns out rants are draining to write and therefore it may remain unfinished. A post on my dual monitor setup is pending behind a clean desk, which should happen Any Day Now (wink).

Anyways, a few words about Prolog. (I was going to make one post with both Prolog and Haskell, but Prolog kinda grew out of control). I’m attempting to keep this fairly non-technical, let me know how I do.
Read More »

Reverse Engineering for Fun and… Fun

I’ve started a couple of rant posts in the last month… unfortunately I wasn’t able to sustain the anger long enough to finish them. So, while waiting to get worked up again, proggit came through with a link to crackmes.de.

Crackmes.de is dedicated to hosting software written by other ‘reversers’ that is completely legal to reverse engineer and crack. With the various posts rated by difficulty, it’s perfect for someone casual (like me) to spend a few hours getting inside an application to figure out how it works while not violating the DMCA.

I’ve only ‘cracked’ two so far: ncn and jandepora. Neither turned out to be all that difficult, but they sufficiently scratched my itch. (The latter was actually kinda of clever in an obfuscation sense; it makes good use of fork() and pipe().)

Definitely check out crackmes.de if your software reverse engineering itch needs scratching.

How the Xbox was hacked

A quite detailed and seemingly comprehensive account of how the Xbox (not the Xbox 360) security was hacked: http://www.xbox-linux.org/wiki/17_Mistakes_Microsoft_Made_in_the_Xbox_Security_System#Introduction

The exploitation of the legacy x86 ‘features’ is a particularly big facepalm. In addition to not being aware of their security implications, why are those sorts of things still in the x86 architecture?

File associations – Linux has ’em. Who knew?

Just about any user of Windows is aware (at some level) of its file associations that allow ‘execution’ of data files – that is, the associated application is run which then loads the ‘executed’ data file. This functionality appears to be implemented at a fairly low level; not only can you double click on a file on the desktop or explorer, but you also get the same behavior when ‘executing’ the file from a command line. I suspect that the Windows equivalent of exec() is handling the mapping of extensions to applications and doing the right thing.
Read More »

Forwards compatible, sort of

Whilst fooling around with Dr. Brain last week, I stumbled across an somewhat interesting piece of forwards compatibility. According to here, the typical Windows program can be executed ‘successfully’ under MS-DOS (yeah, yeah, citation needed). Apparently, Windows programs really contain two executable formats, one wrapped in another. The outer most format is the ‘MZ’ executable format, which is the original MS-DOS relocatable executable format, successor to the fixed (not relocatable) COM format.

The newer formats (‘NE’ and ‘PE’) sneak their way into the MZ format by expanding the header (there’s a field that controls the header size) and defining a new 32 bit field. The value in this field is the offset into the file at which the newer executable format begins.
Read More »

The Lost Mind of Dr. Brain

Background
Recently, there was a need to fire up the vintage Inspiron 7000 to use Adobe Reader. While rocking Win2k on the ol’ Pentium II (400 MHz!), I realized it had been quite some time since The Lost Mind of Dr. Brain had been played. Dr. Brain is a puzzle game that saw fairly frequent play time during ’95 and ’96; that is, until the N64 (with the likes of Golden Eye) staged a hostile takeover. A couple of years ago, both nostalgia and the need for a decent puzzle game led to a well spent $10 on eBay and a few weeks of intense Dr. Brain activity. Back to the present… the old laptop was out, powered on, and working. Having just suffered through the Adobe Reader upgrade process, it was time to indulge in a little Dr. Brain time. Apparently my copy was thrown out of an airplane window, as it was nowhere to be found. Searches for an ‘alternative source’ of the software turned out to be successful, that is, until the software was executed: Read More »