Current Projects
  Citizendium - I am an Editor in the Computers Workgroup                         ECE-175
  PyKata - Teach yourself Python                                                                         Astro 501
   P-cells - a simple library for students                                                           
  Internet ID - Autonomic Internet Identity and Reputation System
  CS2   - ideas for a new course - Programming for Scientists and Engineers             ECE-596 Cryptography
  open-mail.org - hatchery for work on new mail services
  Email Authentication - presentations, articles and notes                        ECE-478 Lecture

Old Projects
  Oil Spill -  how to avoid the next one
  EDA Tools Lab -  Course I put together for students at U of A
  CDP -  Circuit Design Platform    cdp_tut01-a1.zip   cdp_tut01-a1.tar.gz
David MacQuigg, PhD

This is me at the computer in my office at home in Tucson, Arizona, and my wife Ellen with our dogs J-man and Callie.  Ellen is 6-ft tall, in case you are wondering how high J-man can leap!
We are in the midst of a revolution - a fundamental change in the way scientists, engineers, and other technical professionals use computers.  No longer do we need a professional programmer as an intermediary to write programs for us.  Powerful personal computers and modern, high-level languages are making programming a vital tool for non-programmers, especially those of us whose work depends on an exploratory or interactive kind of computing.  Now we can write programs while staying focused on our project, and it is no more difficult than using a word-processor to write a technical report.
My
interest in this revolution was sparked by the Python computer language.  After years of frustration with complex and poorly designed tools for analog IC design, I went looking for a scripting language that would allow me to control these tools exactly the way I wanted.  What I found in Python was not just a superb scripting language, but a full-featured, general-purpose language that would take the place of Java and other more complex languages that I had learned, but never had time to keep up with.  The CDP package (see below) was my first Python project.
I
have used Python now on several other projects, and I believe it will become the primary language for technical professionals.  I also see it as the ideal language for an introductory course in computer science, or as a supplement to other courses in math, science, and engineering.  Like busy professionals, students find it difficult to focus on their project (learning fundamentals) while distracted by the complexities of language syntax.  The PyKata site is intendend for this supplementary role.
The
Internet ID project is a good example of how Python can empower non-experts.  As a circuit design engineer, I had little knowledge of network programming, DNS protocols, and other complexities of email systems.  I was deeply skeptical, however, when some computer experts told me the spam problem was insoluble, due to technical problems they could not explain to my satisfaction.
So
I jumped right in, and set up my own email system, using existing modules from the vast collection of Python libraries.  Now my inbox is spam free, and I don't have to worry about an important message getting lost in a spam filter.  The system is scalable, and avoids the flaws I have seen in other similar systems.  I'm tempted to go into business with it, but I prefer to stay focused on technology.
I
love engineering challenges, expecially when they involve non-technical issues that experts may have overlooked.  There are many technical solutions to the Internet ID problem, but all have failed for non-technical reasons.  I believe a solution is possible, however, with the right arrangement of technical pieces, and the right organizational plan.