Home
Contact
Software
Services
Media
|
I've been
programming since 1977 in a multitude of languages,
primarily C, C++, assembly, or Python. Over the years I've
worked on everything from super-computers, to tiny embedded
consumer devices. I am 35+ year developer & supporter of Free and Open Source
Software from long before it was a fad. Software I've
authored is on all the GNU/Linux CD distributions shipped
today. Here's a brief list of the major projects I've worked on.
Recent Projects
- Field Mapping Tasking Manager
- This is a project for organizing large scale field data
collection using OpenDataKit and OpenStreetMap.
- Underpass
- This is a near real-time data analtics engine for
processing OpenStreetMap data.
- Engineering Working Group
- I'm a member of the engineering working group for the
OpenStreetMap Foundation. We manage grants and projects for
OSM software.
- Digital Mapping
- In the rural parts of the western US, the USGS topo maps are out
of date, I've been field-mapping and ground-truthing and
improving the maps to support emergency response.
- Ouray Ice Park
- Along with lots of computer projects, I've also wound up
as a festival electrician. As a long time Ice climber and
supporter of the Ouray
Ice Park, I do all the electrical, and AV work for the
Ouray Ice
Festival. After 14+ years of building a temporary
system, I finally wired the entire park area permanently.
- Portable Power Systems
- I spend alot of time out in the field, and these days
that means a need to power equipment in remote
places. This page covers some of those systems, complete
with photos and wiring diagram.
Past Projects
- Mobile Radio Trailer
- Many years ago I built an mobile communications
trailer, used for Search and Rescue operations in rural
areas of the US.
- NedFest
- I'm one of the organizers and the electrician for
NedFest, a great little music festival in my home
town. This entire festival runs on a temporary power
system I build, and then tear down. This requires an
interesting mix of powering the stage and all the food
vendors.
- ABE
- For Linaro, I created a
GPLv3'd replacement for
crosstool-ng, which
builds cross and native GNU toolchains for a variety of
target platforms. This was done as the lower layer of a
automated build, validation, and release infrastructure.
- DejaGnu
- DejaGnu is a framework for testing other
programs. Think of it as a custom library of Tcl
procedures crafted to support writing a test
harness. DejaGnu is heavily used by many GNU projects,
companies, and universities because it is the only
testing tool designed from the beginning to work with
embedded targets and remote hosts. Also because I was a
member of the X/Open POSIX standards committee on Testing
Methodologies, DejaGnu is one of 2 POSIX conforming
testing tools in the world.
- One Laptop Per Child
- I've been a volunteer on the OLPC ($100 laptop) project
since the very beginning. I was primarily focused on
flash support of course, and contributed optimizations for
GCC and GLIBC to improve the performance on the Geode GX
and LX processors.
- GNU Radio
- I added the Autotools support to add Guile as a
scripting language for the GNU Radio API.
- OpenJDK
- I worked on a new JVM for OpenJDK, all written in ARM
assembler that improved the performance on the ARM by a
factor of 6. This also involved a thumb2 JIT, also in ARM
assembler.
- Gnash
- John Gilmore and I created the Gnash project to develop
a free flash player plugin for browsers, and as a UI layer
for embedded devices. Gnash runs on many architectures, and
has a set of unique features, including it's support for
patent free codecs. Gnash is also a high-priority project
for the Free Software
Foundation.
- Federal Aviation Administration
- Since I worked on air traffic control software at NASA,
lately I've been consulting on the FAA's NextGen project, to
modernize the ATC system.
- NASA
- I somehow found myself drafted to work on the
"Center-TRACON Automation System, or CTAS", which is a set
of tools designed to help air traffic controllers manage
the increasingly complex air traffic flows at large
airports. I ported it to GNU/Linux. :-) Since then I've
built a few clusters, and help NASA/FAA with custom
GNU/Linux and GCC support for a variety of processors. Some
of that work is documented in this post:
Mission Critical Debian, and this paper: A
Data-Centric Air Traffic Management Decision Support Toll
Model. In 2002, I won an award for NASA project of the year.
- Freedom Box
- I'm on the Technical Advisory Committee for Eben
Moglen's Freedom Box project.
- Solar Powered, Wireless Phone System
- I've added a long-range, wireless phone system to my
off-grid house and lab. The landline end of this
wireless connection is also off the grid. This is a more
detail version of an article that was in
Home Power magazine
in issue #88.
- AbelMon
- As part of why I'm building my own Solar lab, is I've
been busy working on a GNU/Linux based power management
system for off-grid houses. This is a huge project which
recently I've broken into several smaller standalone pieces.
- GnuAE
- It was brought to my attention that people need good
design software for off-grid houses and other projects
than they currently need power-management. So I created
GnuAE to
address this problem. This is a GTK/GNOME compliant
application that helps with sizing and design issues,
then calculates the equipment needed to support these
uses, as well as all the NEC compliant wiring. I'm
currently refactoring GnuAE as a php extension and web
site backend.
- PowerGuru
- This project was part of Abelmon till recently, and was
called TraceGUI. Well, Trace is now owned by
Xantrex, and I also
added an Outback MX 60 charge controller recently, so I've
rewritten this to be a standalone project that support
both Outback Power
Systems and Xantrex products.
- Solar Lab
- I was building a state of the art, alternate
energy lab at my off grid geodesic
domes near Ward. This is where I planned to develop
several products in the alternate energy field. While I
know there are many excellent engineers in this field, I
don't think most are looking at the whole system
design. My goal is to be able to do my own research that
will hopefully lead to improved designs. Towards that
goal, I've been rewiring the house, which is
documented
here. I recently installed a new PV array on the
roof of the lab. More details are
in this article
- Request Multimedia
- I'm working with a Troy, NY company that builds a
really nice digital MP3/FLAC jukebox designed as a
high-end stereo component. It scans CDs, tapes, whatever,
or can download music from the Net over it's ethernet
connection. Their new product runs embedded GNU/Linux.
- Interact TV
- I'm was consulting to a Boulder (now Westminster) based
company doing an Open Source, embedded Linux based Interactive
TV product. As a person that hasn't owned a TV in 20 years, I
think an Open Source, GNU/Linux based, settop box built more like
a multimedia PC would be a a great idea. Too bad they don't
pay their invoices...
- GNU/Linux on HP Omnibook 6100s
- I somehow would up installing and maintaining GNU/Linux on some
HP Omnibook 6100 laptops a customer is using. This document is
on how to make this laptop a dual boot laptop with full device
support. Note: the latest Fedora Core 2 or 3 runs out of
the box on the Omnibook 6100.
- NILO
- NILO is the Network Interface Loader. NILO will boot GNU/Linux,
FreeBSD, and Windows 95/98/NT4. It also supports the Intel PXE
standard, and is suitable for burning into ROM. Most of this
project has been migrated to the Etherboot and OSKit projects,
and hence doesn't exist as a standalone project anymore.
- eCOS
- eCOS is a highly configurable, hard real-time Operating
System that runs on a variety of processors, and is tightly
integrated into the GNU development tools. I was the original
architect of eCOS, and helped create the development team that
brought this product to market in under a year.
- Libgloss
- Libgloss is a Board Support Package for the GNU tools. This
includes startup code and minimum I/O support for a large
collection of manufacturer's evaluation boards. It also
contains working GDB stubs for a number of targets. These days
it is distributed with the Newlib releases, Cygnus's
(RedHat's) embedded C library for use in non eCOS
environments.
- GDB
- GDB, the GNU debugger, allows you to debug programs written
in C, C++, Java, and other languages, by executing them in a
controlled fashion, printing their data, etc., on a wide
variety of UNIX and non-UNIX systems. I added several features
to GDB, all oriented towards cross debugging of embedded
systems. These features include the ROM monitor interface,
several embedded GDB stubs, and an unreleased multi-protocol
backend for GDB that used CORBA for network access.
- GCC
- GCC is the name for the GNU compiler. It currently supports
C, C++, assembler, Fortran IV, Java, Ada, and Pascal. It works
either as a native compiler for most operating systems, or as
a cross compiler for many embedded microprocessors. I worked
heavily on adding the cross development abilities to GCC, as
well as other tweaks so it could be used for embedded systems
development.
- Tcl/TK
- Tcl (Tool Command Language) is the industry's first
scripting language capable of handling enterprise-scale
integration tasks. It's used by over half a million developers
worldwide and has become a critical component in thousands of
corporations. It has a simple and programmable syntax and can
be either used as a standalone application or embedded in
application programs. I was one of the Tcl maintainers for
many years, as it is used by my DejaGnu program.
- Expect
- Expect is a tool for automating interactive applications
such as telnet, ftp, passwd, fsck, rlogin, tip, etc. Expect
really makes this stuff trivial. Expect is also useful for
testing these same applications. And by adding Tk, you can
also wrap interactive applications in X11 GUIs. I was also one
of the Expect maintainers for many years, as it is used by my
DejaGnu program.
- Cygwin
- The Cygwin tools are ports of the popular GNU development
tools and utilities for Windows 95, 98, and NT. They function
by using the Cygwin library which provides a UNIX-like API on
top of the Win32 based systems (win95, win98, NT). I was an
original member of the GNUish project in the 1980s porting GNU
software to DOS, Xenix, and WinDoze. We then later ported a
large chunk of GNU/Linux to win32, which finally became the Cygwin
project.
I also have years of experience in the infrastructure of the
Internet. More than just a fancy web site designer (which I'm not), my
specialty is the in the guts of the Internet. Some of my websites are
the oldest on the Net. (created in 1993) I have experience in the
web servers, intranet creation, firewalls, and internet security.
Commercial applications I've worked were all mostly embedded or
industrial projects. Needless to say, none of these companies exist
anymore... Past companies includes:
- Open Media Now
- I founded a non-profit with Bob Young to continue
developing the open source software developed at Lulu TV when
that enterprise closed it's doors.
- Lulu TV
- Lulu TV was an attempt with Bob Young from Redhat to
compete with YouTube. It didn't work...
- Cygnus
- I was one of the original staff of
Cygnus (now part of
RedHat. Originally we were
Cygnus Support, but later some marketing people
thought Cygnus Solutions sounded better...
- RIPS
- I was the Sr. Advanced Products development person,
building what was the world's first RISC based color laser
printer. I spent most of my time doing R&D, and authored 2
ROM debug monitors, and ported the Nucleus RTOS to the MIPS
architecture.
- Technistar
- Technistar was a systems integrator in the
Robotics/Automation field. There I designed and built large
robotic & machine vision systems. The one project I did
(other than some disk drive machines) that most people
approve of was a new Reese's Peanut Butter Cup machine for
Hershey Chocolate, and some packaging lines for Giradelli
Chocolate.
- Topologix
- At Topologix I was the Sr. Software Architect on their
supercluster, massively parallel machines. Among other
things, I wrote the initial message passing based operating
system, and managed the design and implementation of our
parallelized versions of C, Fortran 77, and Common LISP.
- Laser Applications
- I was head of the computer group building custom CAD/CAM
software and customer applications for high-precision Laser
Machining.
I am available for seminars, training, consulting, or product
development. Please contact me by email, or by calling me
303-517-1675.
|