|
|
[as short HTML]
[as short PDF]
[as long PDF]
[as XML]
[XSLT to HTML]
[XSLT to TeX]
[Makefile]
Patrick Stein
(formerly Patrick Fleckenstein)
| |
Objective
I am seeking challenging full-time employment or flexible
short-term contracts that will exercise and extend my
skills. Jobs offering a focus in mathematics, image
processing, operating systems, or networking are preferred.
Publications- Article:
- LUT Filters for Quantized Processing of Signals. Ricardo L. de Queiroz and Patrick Fleckenstein.
IEEE Transactions on Signal Processing,
Vol. 52, pp. 687--693
(March 2004).
- Article:
- Signal Processing Using LUT Filters Based on Hierarchical
VQ. Ricardo L. de Queiroz and Patrick Fleckenstein.
Proceedings of IEEE International Conference on
Acoustic, Speech, and Signal Processing, (ICASSP),
SPTM-P1
(May 2001).
- Article:
- Very Fast JPEG Compression Using Hierarchical
Vector Quantization. Ricardo L. de Queiroz and Patrick Fleckenstein.
IEEE Signal Processing Letters, Vol. 7, No. 5
(May 2000).
- Article:
- Fast JPEG Encoding for Color Fax Using HVQ. Ricardo L. de Queiroz and Patrick Fleckenstein.
Proceedings of IS&T/SPIE Symposium on Electronic
Imaging, Color Imaging, San Jose
(Jan 2000).
Patents- Patent 6,683,994:
- HVQ-based Filtering Method. Ricardo L. de Queiroz and Patrick
Fleckenstein.
Issued January 27, 2004.
- Patent 6,286,026:
- Method and Apparatus for Integrating Pull and
Push Tasks in Pipeline Data Processing. Dennis L. Venable, Patrick A. Fleckenstein,
James E. Bollman.
Issued September 4, 2001.
- Patent 6,292,168:
- Period-based Bit Conversion Method and Apparatus
for Digital Image Processing. Dennis L. Venable, Patrick A. Fleckenstein,
William A. Fuss.
Issued September 18, 2001.
Languages and suchUse regularly: C++, C, Java, Unix shells, sed, make, PHP, JSP, XML, HTML, XSLT, CSS, and SQL.
Use occasionally: awk, perl, lex, yacc, PostScript, python, Fortran, Modula-2, COBOL, Logo, Lisp, BASIC, 8051 assembly, VAX assembly, and Motorola 68000 assembly.
Operating Systems (and hardware)Mac OS X
(Ti Book), Linux
(x86), Solaris and SunOS
(various), BeOS
(x86), NetBSD
(CCI Okee, x86, DECStation, Sparc), Ultrix
(MIPS, DECStation, KIMStation, VAX), System V/88
(Motorola 88k), and Windows NT/95/3.1
(x86).
Concepts and PackagesPOSIX, STL, CORBA, UML, SDL, Kerberos V, XLib, Windows MCI, threads, and sockets. vi, CVS, LaTeX, noweb, xfig, gnuplot, gcc/g++, gdb, emacs, purify, and troff.
Computer Science & Mathematics EducationB.S. in Computational Mathematics from the
Rochester Institute of Technology in Rochester, NY. Mathematics courses include:
Numerical methods, discrete mathematics, math modeling, probability, applied statistics, set theory, abstract algebra, complex variables, real variables, graph theory, game theory, number theory, differential equations, and topology. Computer Science courses include:
Data communications, data organization and management, assembly language, and digital image processing.
Work Experience- System software engineer
On this project, I am currently developing a
geoimaging archive and access interface employing
Google Maps, Java, and SQL. Earlier, we integrated the various
science instruments on the
NASA/USRA SOFIA project and put the framework in place to allow
relentless observing. I did a great deal of
design work and implementation for this project in
C, C++, and Java with heavy use of CORBA, XML, XSLT,
JSP, and SQL. Rochester Institute of Technology's Center
for Imaging Science, Rochester, NY. 1999--present.
- Computer graphics programmer
In this position, I did a wide variety of things
relating to digital image processing. For the last
year, I was lead programmer for our project. I
received an appreciation award for work I did with
a sibling group to design an API for their toolkit
and another award for work I did integrating the
image processing modules, communication module,
and user-interface for another project. I did a
great deal in this position doing image compression
research, developing new image processing algorithms,
creating and parsing image description languages,
creating user-interfaces, integrating large-scale
projects, and developing for platform-independence. Xerox Corporation [DITC/Cadisys/Sandpiper], Rochester, NY. 1991--1995, 1996--1999.
- Natural language database retrieval programmer
I hit the ground running when I joined this
startup company. The company's lead product is
a natural language interface to several databases
(focusing on software prior art and financial
advising). The system architecture is client-server
with the server being composed of many separate
daemons running on an arbitrary number of machines.
My initial work on this product was implementing
various sections of the server. I quickly became involved in all aspects of the
client-server system. I did much of the work on
the communications layers in both the client and
server, chunks of the user-interface, various
logging and debugging mechanisms, and overall
system integrity. This project, even more so than my work at Xerox,
highlighted my ability to see and work with the
gestalt in a complex system. I am quite proud of
this ability. Manning and Napier Information Services, Rochester, NY. 1995--1996.
- Multimedia education software programmer
(PanVision)
I designed and implemented (not necessarily
linearly) a programming language for the creation
of multimedia applications under Windows 3.1. This
software has been incorporated in several educational
CD-ROMs geared toward German pre-reading-age students
and in several promotional CD-ROMs. PanVision, Essen, Germany. 1994--1996.
- Advanced research group member
As a member of the Advanced Research Group at
Computer Science House, I have participated in
many projects. In addition to the day-to-day system
administration of a network of BSD, System V, and
Ultrix machines, I have worked on software for our
light show, our Coke machine, and the four projects
listed below. Computer Science House, Rochester, NY. 1993--1998.
- NetBSD kernel port
-
Two others and I (working from some sketchy
documentation, the NetBSD Amiga release,
and the 4.3 BSD port for the Power 6/32) ported
NetBSD to the CCI Power 6/40 Okee
architecture. This project involved implementing
locore.s and the Okee
specific device drivers. Most of the work I
did on this project was in porting the device
driver for the VersaBus SMD disk controller.
I also assisted in debugging several device
drivers and the whole of locore.
- X Windows Server port
-
Computer Science House received a large
donation from Kodak of 2-bit grayscale,
high-resolution workstations. We ported the
X Windows sample server to run on these machines
under Ultrix. I made many modifications
to the server code to get the server functioning
well, including many fixes on the server side
to deal with X clients that were less-than-intelligent
about dealing with 2-bit displays.
On this project, I learned X Windows from
the inside out. I had perused Volume
0, but the rest I learned from reading
the include files. I have employed this
method of learning on various systems, and
it has proved particularly effective for me.
- Inferno DIS disassembler
-
I wrote a disassembler for DIS objects in
C. I based it on the documentation provided
on the web about the DIS virtual machine. This
project was the first step toward implementing
a DIS virtual machine, but my interest in
this project waned before completion of the
VM.
- Virtual Reality network
-
I was a key implementer and designer in the
early revisions of the Virtual Reality/Learning
Systems Development project at Computer Science
House. On this project, I made extensive
use of socket communication under Unix and
AmigaDOS.
Other Programming Activities- MN Writes
(
http://www.mnwrites.org/)
In less than a month of spare time,
I did all of the PHP and MySQL driving the
Minnesota Writes web site. Minnesota Writes, Minneapolis, MN. 2005.
- nklein software
(
http://www.nklein.com/)
I started the web site for the distribution
of my own software projects. Most of my focus
has been on software with a multi-dimensional
bent. Several of these projects are highlighted
below. nklein software, Rochester, NY. 1998--present.
- n-dimensional raytracing
-
I have developed a raytracer which supports
an arbitrary number of spatial dimensions. It
supports cylindrical objects (with an arbitrary
number of "round" dimensions), quadratic surfaces,
CSG objects, convex hulls, Coxeter polytopes,
extrusions, arbitrary rotations, arbitrary scalings,
JPEG output, ppm output, PostScript output,
multiple light sources, directional light sources,
texture-mapping, reflections,
and refraction.
- Clifford algebras library
-
I created a C++ template library for Clifford
algebras and employed them to do color convolution
filtering and fractal generation.
I recently updated this library to allow one
to do the wedge product in addition to the
Clifford product.
- 54321
-
This program is five games in four-, three-,
and two-dimensions for one player. This game
won an honorable mention in the
SDL 1MB Linux Game Programming Contest sponsored by No Starch Press, Linux Journal, and
Loki Software.
- DVD Tracks
I developed the entire DVD Tracks web site with
PHP and MySQL in less than two weeks of my spare
time. This site is no longer in use. DVD Tracks, Minneapolis, MN. 2002--2004.
- Operating systems overview seminars
I prepared and gave a two-hour presentation on
the fundamental concepts of modern operating
systems. This presentation was given as the
introductory session of the Computer Science
House Operating System Seminar Series. For this
seminar, I focused mainly on how system calls differ
from library calls and how the operating system
arbitrates device contention. The slides I created
for the presentation are available online. Computer Science House, Rochester, NY. 1996.
|