121 reputation
2
bio website greenhousepc.com
location Austin, TX
age 52
visits member for 2 years, 2 months
seen Apr 10 at 1:58

Over 30 years in the software business primarily in the field of operating system internals and security (NSA, TCSEC, CC, etc), spending my time these days working on renewable energy systems monitoring and management software, as well as firmware for power conversion hardware.

Most of my work these days is with embedded systems, primarily AMD Geode with the occasional Via processor or ATmega. I've started looking at ARM and PIC parts as well. Communications is mostly RS485 or PLC, and protocols are Modbus (RTU and TCP) or proprietary.

I've also been doing a fair bit of circuit design and PCB layout of late, which I actually started doing long before I ever wrote a lick of software. Apparently I'm regressing. I'm back to thinking that 2KB RAM is "a lot". I expect to be playing with Legos and milk carton building blocks in another 10 or 15 years.


Apr
10
comment why no hasLock/testLock on mutexes
(Grrr -- misread the question. That'll teach me.) There's a difference between an "islocked()" or "haslock()" method/function and "trylock()", which either acquires the lock or returns failure. There is no race condition for a test-and-lock function that is completely atomic. The logic is even fairly simple -- acquire a lock on the lock (spinlocks are handy), determine if the lock is held, if not you can modify the lock (you've locked it, after all), release the lock on the lock, and you return success. If the lock is held, release the lock and return failure.
Aug
27
awarded  Autobiographer
Aug
27
awarded  Teacher
Aug
27
answered why no hasLock/testLock on mutexes
May
19
answered I'm graduating with a Computer Science degree but I don't feel like I know how to program