I've been programming since 1977 in a multitude of languages, primarily C, C++, or assembler. Over the years I've worked on everything from super-computers, to tiny embedded consumer devices. In 2002, I won the NASA Honor Award for project of the year.

I've also authored several popular projects during the many years I worked for Cygnus Solutions (now part of RedHat) and as "side" projects for the Free Software Foundation when working elsewhere.

I am 27+ 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. In 2011, I was given an award for the Advancement of Free Software by the Free Software Foundation. I'm available for consulting in a variety of areas. Here is a brief list of the major projects I've worked on.

Recent Projects

    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.
    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.
    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.
    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.
    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.
    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.
    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
    A few years ago I built an mobile communications trailer, used for Search and Rescue operations in rural areas.
    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.
    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.
    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.
    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.
    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.
    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 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 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 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, 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 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 (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 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.
    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...
    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...
    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 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.
    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-258-0506.

Copyright © 2012 Seneca Software & Solar, Inc