Saturday, August 29, 2009


MS&T CS348 Assignment 1

I wrote a Python application that satisfies the requirements for assignment 1 of a course at Missouri Science and Technology. This is my second time through the class; the first time around, I completed all the programs and none of the papers. Writing the programs is interesting; discursively relating every tedious facet of the theory underlying those programs is not when the only other person to read the work is the grader. According to the university, the English curriculum is so defective that the computer science department must take up the slack. Today's students are functionally illiterate and such Sisyphean tasks do something to fill the student mind with something other than skittles, sex, and rum.

Fortunately, my excellent programs and total disregard for the university's priorities, in combination with my combative sarcasm and vociferous complaints have apparently been rewarded: the course curriculum has been revised to ameliorate the painful, futile demand that so many extraneous reports be composed only to be thrown away. Thus, I am back for a second dose, and it's already quite tasty.

The first assignment requires my program to identify the minimum number of nodes that must be removed from the following graph in order for every node less than 10 to be unreachable from any other node less than 10, except via the reflexive, implied edge. This graph represents the simplest of four supplied data sets, being just 5KiB of text, whereas the largest is 370KiB.

A detail from the graph:

The first assignment required only random search to solve this problem. Nonetheless, I implemented an evolutionary algorithm that performs significantly better. Amusingly, the thing isn't due for ages and can not even be submitted for two more calendar days.

Labels: , , ,

Friday, August 28, 2009


Wipeout HD Fury Tie

I first played Wipeout on July 31, 1997 - the day Psygnosis released Wipeout XL for PC. For the last 12 years and 29 days, I often played XL and the various sequels, remakes, and addons including Fusion, Pure, Pulse, HD, and Fury. Out of those 4412 days, only once did I notice a tie, IE a race where at least two competitors share a finishing position. I suspect that the game applies the criterion that two ships must cross the finish line at exactly the same time, a measure limited by the accuracy of either the game clock or the wall clock provided by the OS.

From coding efforts many moons ago, I learned that timed interruption via WM_TIMER messages is accurate to only about 110ms on a PII 400 in Windows NT. If you are currently executing, you may be able to determine the current time with greater precision, perhaps to some tens of milliseconds if you call out to the OS for the current time. That being the case, there are at most 100 different distinct intervals every second during which a ship could complete a race.

Close races in Wipeout have always been common. However, Wipeout HD is the first version of the game that apparently adjusts AI performance dynamically. That is, if you run a 2:05.100, the top AI ships might run 2:04.200, 2:04.300, and 2:05.600. If you retry the race and run 1:56.000, expect to see the AI run 1:55.700, 1:56.900, 1:57.400. Because opponents tend to remain closer to you, most of the competitors travel in a pack, finishing together and compressing the race time distribution, increasing the likelihood of a tie.

Labels: ,

Friday, August 7, 2009


real time, high fidelity modeling of the human mind: when and how?

In reference to this article, a friend writes:

I'd love to share his optimism but I doubt we are as close as the author thinks we are. What do you think?

My response:

The mind is matter and matter may be modeled. Required is sufficient data regarding its structure, accurate predictive theory at the cellular and molecular level, and the computational resources to run a model encapsulating these at real time speed or better. The wildcard possibility that much of the real world complexity can be omitted while maintaining behavioral fidelity can not be discounted.

Incidentally, cultured neurons have already been used to control a robot:

I don't know whether to put my money on real or simulated neurons for first high fidelity artificial human brain, but I'm optimistic that I'll live to see it.

Labels: ,

Wednesday, August 5, 2009


midnight sun and fast service at the hytte

Nestled in the forest above Skreia, across Mjøsa from lillehammer, my hytte is awash in eerie bluish midnight sun. Although the hytte lies below the artic circle and in the shadow of the earth at midnight, the eye's high dynamic range easily perceives visible EM radiation turned a ghostly hue by Rayleigh scattered rays high in the atmosphere. Even my chintzy digital camera is up to the task, provided sufficient exposure time.

Photographs taken on the moon display a quality of shadow strange to the human eye. No apparent gradient exists between bright and dark; devoid of atmosphere, the sky is black and does not provide diffusion necessary to illuminate shadows. Without atmosphere, my hytte would be shrouded in darkness after sunset.

Unfortunately, EM radiation in the frequencies used by Telenor for HSDPA and UMTS is less amenable to diffusion by water vapor and atmosphere than visible light. In these spectra, the surface of the earth resembles the moon: dark shadows dwell wherever terrain obscures the EM radiation from cellular towers. Looking closely, perhaps the faintest glimmers reflect from the sides of hills into valleys. In a valley, a cellphone would indicate that inadequate 3G service exists - enough for one to know to climb a hill for better reception.

I receive precisely this indication by the dining room windows of my hytte. The service by the window is adequate to transfer at just 5KiB/s; no signal penetrates further into the hytte.

Placed in a ziplock bag tied to a stick that is attached to the end of a ladder resting against the front of the hytte, my 3G modem is well enough outside of the terrain shadow to perform satisfactorily.

A USB extension cable connects the modem to my laptop.

My laptop performs NAT for the rest of the network, including my portable XPC workstation.

Labels: ,


July 2009   August 2009   September 2009   October 2009   November 2009   December 2009   January 2010   September 2010   December 2010   January 2011   February 2011   April 2011   June 2011   August 2011   February 2012   June 2012   July 2012   August 2012   October 2012   November 2012   January 2014   April 2014   June 2014   August 2014   September 2014   October 2014   January 2015   March 2015   April 2015   June 2015   November 2015   December 2015   January 2016   June 2016   August 2016   January 2017   March 2017  

This page is powered by Blogger. Isn't yours?

Subscribe to Posts [Atom]