Rick Gorton's page of raw bits

Professional:

Presently, I am developer working on an OpenCL Debugger AMD.
Previous work at AMD: a dynamic binary optimizer; prior to AMD, I architected and implemented the buffer overflow detection/prevention mechanisms for Linux/Solaris in what became Cisco Security Agent at Okena. It is a HIPS: Host Intrusion Prevention System.
As a broad generalization, my career has been about the interception and manipulation of system behavior at multiple levels: instruction, system call, kernel internal, system library, and application plug-in interfaces. I've written binary translators, binary optimizers (both static and dynamic), and other tools which manipulate instructions at the machine code level. For more details, see my (circa Oct, 2011) resume.

Things done "for fun":

Path profiling investigations

In 1999, I was inspired by Jim Larus' PLDI paper on Whole Program Paths, and have been tinkering with the notion of being able to do this on a dynamic basis ever since. The initial effort (on an Alpha based system) was both buggy (a memory leak in my code) and seriously resource limited, in that my personal budget to work on this was not infinite; at that time, 8GB of memory and 500GB of storage would have been prohibitively expensive. However, as time has passed, the computer systems industry has removed those affordability limitations, and I have been able to collect entire (istream) path profiles for executables executing 10^12 instructions and compress & store them in a format which will fit on an individual DVD. See my resume for more specfics and data

Professional musings

Alpha and ATOM

Learn-by-doing stuff

Various travel & other photos

Rock, Scissors, Paper, Zeus, Chronos!?

Copyright, June 2010, Richard Gorton
During the June, 2010 by Drew, Rachel, Zander & Erik, the game Rock/Scissors/Paper was played multiple times. "Those darn kids" (to recycle a quote from the "Scooby Doo" cartoons) ambushed poor old "Weird Uncle Rick" with their technique. Twice. Addition number one: Zeus. Hold the arms outspread, hands open. This is the "Zeus" position. Zeus throws lightning bolts, which wins against rock (splitting the rock), paper (burning through it and/or setting it on fire), and scissors (electrocuting the holder). The (invented on the spot) counter to Zeus is a raised single index finger. This is either a lightening rod, or a pen/pencil. If countering Zeus, it is a lightning rod; if countering rock or paper, it wins, as it writes on both. Scissors can cut pens/pencils. Anecdotally, this (lightning rod/pencil) approach worked a couple of times, and then was rendered moot by Chronos: hold hands together either as two fists clenched, or fingers touching as an orb. The Orb is key. This represents Chronos, which conquers all. Upon subsequent reflection, the use of Chronos in a Rock/Paper/Scissors game ought to be limited in the number of uses; simultaneous use of Chronos by multiple participants should be treated as a time paradox with everyone utilizing it losing. About the only win vs. Chronos would seem to be Time or Taxes (which transcend death), but the representation of Taxes in Rock/Paper/Scissors would seem to be a bit tricky. Perhaps a Thumb rubbing across multiple fingers of the same hand (to represent money). There are no good ideas about how to represent infinite time (to counter chronos), except perhaps via the formation of an infinity symbol (circles of index finger + thumb on both hands, with contact of both circles). In this case, Infinity can only win vs. Chronos.

Around the house projects and events

Commentary & Opinions