Dave Kuhlman
Introduction
I am retired. I am not looking for work or employment.
However, if you have a project that you think might interest me,
I'd enjoy a conversation.
The following may help give you some idea about my interests.
Bio
Dave Kuhlman has worked for many years on a variety of software
development projects, in several programming languages, and on more
than one platform. Because of Python's clear syntax, developer
friendliness, and broad utility, Dave focuses his energy on the
Python language and systems built with it. And because of a
perceived future need for programming with concurrency, Dave is
learning and working with Erlang. Dave has taught and is prepared
to teach several entry level classes on Python and Jython. Dave's
current work platform is Ubuntu GNU/Linux but also works on MS
Windows. He has installed and administers a small network composed
of several Linux boxes.
Relevant Work
Here are projects on which I do active work:
- generateDS.py -- Generates Python data bindings and data
structures and XML parser from XML Schema. Implemented in Python.
See: http://www.reifywork.com/generateDS.html
- odf-odt writer -- A back-end (writer) module that enables users of
the Docutils documentation package to translate reST (reStructured
Text) documents into ODF documents for the OpenOffice/LibreOffice
word-processor. The odf-odt writer is written in Python (as is
all of Docutils), and uses ElementTree/Lxml XML libraries to
construct the XML contents of an ODF (Open Document Format) for
the OpenOffice/LibreOffice word processor.
- Python training courses -- See:
- Python documentation -- I've compiled the notes for my Python
training into a book. See
- Django:
- Implementation of several small, trial Web sites on top of
Django. Work with the following features: Django URL routing;
Django templates and template language including template
inheritance and extension; definition and use of the Django ORM
(object relational mapper) to define and use database models;
and implementation of "view" methods that extract data from the
Django request object and feed data into a template.
- Implementation of a code generator that generates Django
database models from XML schemas.
- Erlang -- Because most computers in common use are multi-core
machines, there will be a significant need for writing and
managing concurrency, at which Erlang excels. Therefore much of
my current efforts have been directed at learning Erlang, writing
Erlang code, and supporting Erlang development. In particular:
- I've developed a set of templates that assist in the use of
Erlport to spawn and communicate with Python processes from
Erlang (see: https://github.com/dkuhlman/erlport_templates).
- Also, because of the importance of developing high availability
Web sites, I'm working with ChicagoBoss, an Erlang Web
framework, and have developed a template for implementing a
Websocket controller for ChicagoBoss (see:
https://github.com/dkuhlman/cb_websocket_controller).
- Currently, I'm working on the development of an OTP behavior
that is an extension of the gen_server behavior and that
assists with the implementation of cellular automata.
And, here are projects that are old, but may be of historical
interest:
- Python extension module for libxml SAX parser interface.
- Python extension module for libxml DOM parser interface.
- Python extension module for libxslt XSLT processor.
- Text editors implemented in and extensible in Python.
- PySgrep -- A Python extension module that exposes the
capabilities of the structured search engine sgrep.
- libxmlop -- Python XML SAX parser driver for PyXML implemented
as an extension to libxml.
See Open Source projects available at my Web site at
http://www.reifywork.com
Employment History
- Intel Corporation, Folsom, CA -- Programming in Python. Work on
top of WxPython in support of the graphic front end for an
SSD (solid state device/drive) testing platform. Support and
extensions for the underlying Python code implementing that
testing platform. Development and testing on both MS Windows and
Linux. Work with the Mercurial DRCS (distributed revision control
system) and the Atlassian JIRA issue tracking system. This
position was a 6 month contract; it was extended for an additional
6 months. (11/2011 to 11/2012)
- Training assignments -- Various contract assignments teaching
Python programming language. A typical training course included 3
to 4 days on beginning Python and object-oriented programming in
Python, then 1 to 2 days on more advanced topics of particular
need for the client company, for example, processing XML with the
Python ElementTree XML library, relational database access with
the Python database API and Oracle, etc. (various dates)
- Micro Focus (Merant), Mountain View, CA -- C++ programming.
Embedding the Python programming language in a multi-threaded
application. Generation of HTML and XML. A Java parser for the
XML definition of a Web page. A Python parser for the XML
definition of a Web page. 2/1996 to 1/2001.
- Guild Products, San Mateo, CA -- C Programming.
Compiler/translator design and implementation using yacc/lex.
Design and implementation of the Guild UIMS (User Interface
Management System) as a member of the Guild project team.
Support and maintenance of Guild. C++ programming for a database
compiler and decompiler and a database browser/editor. 1/1988 to
5/1994.
- MITEM Development Partners, Cupertino, CA -- C programming.
Design and implementation of subsystems for a microcomputer
based terminal emulation system. 8/1986 to 9/1987.
- IntelliCorp, Mountain View, CA -- C programming. Occasional Lisp
programming. Design and implementation of a frame-based
knowledge representation system in C. 1/1985 to 4/1986.
Education History
- University of California, San Diego, CA -- Graduate classes
(compiler design, operating system design) -- Computer Science.
- University of Arizona, Tucson, AZ -- M.S. -- Computer Science.
- San Francisco State College, San Francisco, CA -- M.A. --
Philosophy.
- University of California, Berkeley, CA -- B.A. -- Philosophy.