Richard Gorton's page of raw bits
Professional overview:
- Most recently: Early employee at a stealf mode security start-up. Helped with Python
backend development for a microservices based product (Python + Flask + AWS)
- Maintain and extend the Digital Guardian windows agent.
Focused on improving detection of network uploads and downloads from various web browsers.
- 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 mostly has been
"compilers, runtimes, and loaders, oh my!" with a smattering of microservices talking to MySQL. For more details, see my (November, 2020)
resume.
Things done "for fun":
Code examples
At present, it seems to be popular to have a 'coding interview' wherein candidates are
under time pressure to solve some particular problem, and implement it on the fly.
Really? How much production code contains the fibonacci sequence?
If I'm interviewing, and you want to look at my code, here are some of the projects
coded solely and entirely by me, or contact my references to find out if I write horrible code.
- 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.
Professional musings
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
OpenSource
Atom tools I've written, as well as some of the program behavior that
can be shown with other ATOM tools.
Learn-by-doing stuff
-
Wood working
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 2010, 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:
- 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 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
- 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
- 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