Richard Gorton's page of raw bits
- Most recently, doing virtualization work to enable
Android apps to run on Windows 8.1/10.
at OpenMobile World Wide.
- Lead compiler (LLVM) & runtime (newlib, then musl) developer for a custom 'big data'
multi-threaded architecture at Cognitive Electronics.
- Developer of an OpenCL debugger, and a dynamic binary optimizer at
AMD. Also architect of the AMD string library.
- Architected and implemented
the buffer overflow detection/prevention mechanisms for Linux/Solaris in what became
Cisco Security Agent at Okena - a Host Intrusion Prevention System.
To misquote a line in the Wizard of Oz, an approximate descriptiong of my career has been
"compilers, runtimes, and loaders, oh my!" For more details, see my (circa October, 2016)
Things done "for fun":
As part of my larger website, I get periodic requests
for electronic versions of Gorton Normal Fonts. Currently in-process. This involves scanning
a physical typeset, turning it into black & white pixels via gimp; then using Inkscape to
convert that to svg (Scalable Vector Graphics) and finally using FontForge (I have not started
the FontForge portion yet).
3D printing and G-Code:
G-Code is a programming langauge used by Computer Numerically Controlled devices, ranging from
Subtractive machining devices (Mills, Lathes, Machining centers) to Additive devices such as 2D and 3D
printers. I first encountered G-Code in College when working for Tree Machine Tool Company,
wiring their Journeyman 200/300 CNC Mills, and their turning center (model name forgotten)
As part of the testing of the wiring, it was good and useful to write programs to perform
simple axis traversals prior to handoff from wiring to testing & painting.
Another project in progress. I'm not sure if there are disassemblers/visualizers for G-Code
out there in the world.
- Path Profiling:
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
or the Path Profiling page for more
specfics and data.
- LightWeight Profiling (LWP):
There is an enabling library for AMDs LWP feature
set on the Path Profiling page as well.
This is a very low overhead performance analysis mechanism which is completely in user-space
(no system call overhead at all), which can be enabled on a per-thread basis.
- Program phase changing:
Various research publications have shown that applications change phases during the
course of their runs; to a code transformation/optimization system, having more context
enables more opportunities for code improvement. Paths are one way to represent
these phase changes. Some experimental results have been collected.
Alpha and ATOM
- Some fast (and somewhat interesting)Alpha code sequences:
ATOM was a
binary instrumentation tool from Digital's WRL (Western Research Lab) running
on Alpha Tru64 systems. The tool seems to no longer be available off of HP's
site, but a couple of the papers describing it still exist:
Here are some
Atom tools I've written, as well as some of the program behavior that
can be shown with other ATOM tools.
I'm teaching myself how to build furniture and decorative items
out of wood.
Web site - learning to: write (raw, via a text editor) html,
how to assemble, operate, and maintain a web server with
multiple Gigabytes of completely static content.
Some (non-obvious) side effect learning: issues related to the
digitization of non-trivial volumes of content;
some genealogical approaches and resources.
The end result is the
George Gorton Machine Company Archives
which is partly a genealogy project and partly a business history of
the company founded by my great-grandfather in 1893. For it's time,
it was 'high tech'.
Various travel & other photos
Rock, Scissors, Paper, Zeus, Chronos!?
Copyright, @@COPYRIGHT_DATES@@, Richard Gorton
During the June, 2010 visit 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 Uncle Rick with their technique. Twice. Additions:
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.
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 the lightning rod.
- Lightning rod/Pencil:
This is a single raised index finger, and served a dual purpose.
If countering Zeus, it is a lightning rod, which beats Zeus by ignoring
the lightning. Otherwise, it is a pencil.
If countering rock or paper, it is a pencil, and wins because 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.
Around the house projects and events
- Misc photos, Spring/Summer, 2011
- Beer foamover (fermentation) Spring, 2011
- Front hallway remodeling, Spring/Summer, 2011
- Guestroom remodeling, January-February, 2011
- A true plethora of snow: January, 2011
- Weird and unusual life experiences.
Basement flooding & repair, 2010
2009 house survey
August 2009 Garage Repainting turned into repair
PAW (East) Alumni Picnic, May 2, 2009
Repainting turned into rebuilding (August 2008)
KitchenAid Dishwasher Problems
Commentary & Opinions