|
Since December of 2002, most of my work has consisted of Python scripting
and building sites on a Zope system. I love the combination of the two, which
allows a speedy, flexible development process with instant feedback.
Programming & Database
- XML, XSLT, Java, Servlets, JSP, JDBC, Perl, SmallTalk, and Unit Testing (2001 - 2002)
- I started with XML, and it wasn't very difficult to get the basics. XSLT was next, and while it was trickier
(things like not being able to change a variable after you've assigned it a value, and having to use
recursion instead of iteration set it apart from most of what I've done before), I think I've got a
pretty good handle on it.
- Java came next. I installed IBM's VisualAge
for Java and started exploring. The challenge of having to think of everything as objects, and
the huge array of APIs that are available for use with them is a real treat (and a bit daunting).
While the details of servlets and JSP are new to me, their broad conceptual outlines are not terribly
different from WebClasses, COM, and ASP.
- In the fall of 2001 I took a class in the
Design and Implementation of Bioinformatics Infrastructures (and got an A). That led to a quick
detour into Perl, just to see what it
was all about, since it's the default programming environment for bioinformatics. I also installed
Linux on a partition of my laptop for the same reason.
- More recently I experimented with
Cincom Systems' VisualWorks SmallTalk. SmallTalk is an entirely object-oriented language in which
everything (even integers, strings, etc.) is an object. Like Java, SmallTalk code runs within a virtual
machine. Unlike Java, the code is interpreted, not compiled, and all source code is accessible and can
be modified (even the code for the development environment).
- I was especially interested in SmallTalk because I had an idea for a bioinformatics application,
and Cincom's VisualWorks SmallTalk is more seamlessly
cross-platform than Java. This is an important consideration for me because the research labs that I
would be targetting tend to have a diverse mix of Macintosh, Windows, and Unix/Linux machines.
- As I learned more about object-oriented programming, I also become very interested in Extreme Programming and other Agile development
methodologies. I've enjoyed the occasions when I've been able to do some paired programming, and I'm convinced that
refactoring code to improve it's design is one of the
keys to doing more work in less time, with less pain, as long as it's supported by a good suite of
automated tests to catch any bugs that might be introduced by the refactoring.
- Microsoft Visual Basic (2000 - 2001)
- I learned VB in the course of building ASP and WebClass-based solutions for PowerGroups, and extended my knowledge of it while creating
the SiteFactory code-generator for Globalstar USA.
- My first experience with VB involved writing a Word macro that pulled data out of batches of
Word forms and concatenated it all into a single text file so it could be imported into a Filemaker
Pro database. (Self-taught, of course.)
- Transact-SQL (1999 - 2001)
- I began doing Transact-SQL stored procedures (Microsoft SQL Server 7) for the
PowerGroups site in the fall of 1999. I learned
the language on the job, getting the basics in a week or two of reading, experimentation and
discussions with co-workers, then refining my skills as I worked. (My usual method for learning new tasks.)
- I'm now comfortable with SQL, Query Analyzer and Enterprise Manager. I'm familiar with queries,
joins, cursors, DTS packages, constraints, foreign keys, clustered indexes, etc., etc.
- I think that SQL came easily for me in part because of my Filemaker Pro experience. While Filemaker
is a unique animal, it still uses primary and foreign keys, requires an understanding of the basic concepts
of relational database design, and has a scripting language (albeit a very limited one).
- JavaScript (1995 - 2001)
- I've used JavaScript occasionally, usually starting with a cut-and-paste script and then modifying
and improving it. Most recently I've been experimenting with Flash's ActionScript (which is very similar
to JavaScript), using it to manipulate XML documents and Movie Clip objects in a Flash movie. (Self-taught)
- Pervasive Software - Tango (1995-2001)
- Tango is a good medium-duty graphical RAD tool that can connect
to either SQL or Filemaker Pro databases. I've used it with Filemaker to build several database-driven sites,
including a couple of online catalogs for Demco Media's Turtleback Books and Periodical Subscription Service.
(Self-taught)
- Beginning C Programming (Spring 1992)
- University of Wisconsin, Madison (I received an A).
- Filemaker Pro Scripting (1991-2000)
- Filemaker has a good graphical interface for building and
working with databases, but if you want to do anything fancy you'll need to do a lot of work with its scripts
and calculation fields. I've done a lot of tricky stuff with it, and am very familiar with both of them.
(Self-taught, with a three-day seminar on relational design when Filemaker Pro 3 was introduced.)
- MacroMedia Director - Lingo Scripting Language (1990-92)
- I built an elaborate hyperlinked portfolio/resume
for myself, with many features that anticipated web-browser conventions. It's not cross-platform, but if
you have a Macintosh I recommend that you download
it and have a look. Start with the Help section so you don't miss any of the hidden features. (Self-taught)
- HyperCard - HyperTalk Scripting Language (1998-89)
- While doing graphics for King Frog I also started
to learn HyperTalk. I developed a script that we used to record an animation path by dragging a graphic
around the screen. (Self-taught)
- BASIC (1977-78)
- I learned this on a teletype machine at my high-school that was hooked up to the mainframe at the l
ocal college campus. The machine was so primitive that its display was a roll of newsprint. In true teenage
boy fashion, my (mostly unrealized) goal was to create a sort of bulletin-board space on the mainframe where
my friends and I could post mocking comments about our teachers. (Self-taught)
Graphics
- Adobe Photoshop
- I've been using Photoshop since v1.0. It's one of my favorite tools, and I'm especially fond of it's
layers. I'm equally as comfortable building an image from scratch as I am retouching photos.
- Adobe Illustrator
- Illustrator is my other favorite graphics tool, and I've been using it even longer than Photoshop.
I first worked with it in the summer of 1988 when I used it to do the package art for
King Frog. I desinged the box with Illustrator '88
on a Mac Plus (tiny black & white screen). I had no manual, so I learned what I needed to know by
browsing a third-party book for a half hour in a software store.
3D Modeling and Animation
- Hash Animation:Master
- Animation:Master is an incredibly full-featured 3D modelling
and animation package that costs only $300. It's especially well-suited for character animation, with
inverse kinematics, bones, reusable actions, pose sliders, and a lot of other fantastic features.
- The program is not without flaws: I think LightWave has a better renderer, A:M has never been
especially stable on my PowerTower Pro Macintosh clone, and its "Hash patch" geometry doesn't
seem to be imported or exported by any other applications. Nevertheless, the program has so many great
features that I don't really care.
- NewTek Inspire 3D
- Inspire was a lite version of LightWave. I bought it because it seemed like the cheapest way to
get my hands on a reasonably powerful modeling and animation package. Then I discovered Hash Animation:Master,
and I haven't gone back to it since.
- Pixar MacRenderMan
- I really fell in love with 3D when I saw Pixar's Tin Toy. I talked a Pixar rep at a MacWorld Expo
into giving me a copy of the RenderMan Companion, even though I didn't have any practical use for it;
I just wanted to know more about it.
- My first 3D project was a blimp that I modelled in MacroMind 3D
and rendered with MacRenderMan. I loved what MacRenderMan could do, but I really wanted Pixar to add modelling
and animation features to it. I was really disappointed when they killed the product.
Computer & Network Administration
- Since I joined the staff at Purdue's Engineering
Communications Office I've been helping maintain a mixed network of OS X Macs and PCs. When something
needs fixing, I'm often the person who everyone asks first. If I can't fix it, we'll talk to the Engineering
Computer Network tech support.
- Until 2000 I was, by default, Woodland/BizDat's Network Administrator, Webmaster, Postmaster,
Tech Support, Chief Cook and Bottle Washer. I have years of experience troubleshooting Macintosh systems,
setting up backup schedules, running a WebSTAR web server, an FTP server, a mail server, etc. I also
maintained the primary DNS records for the domains we owned.
- More recently I've been performing administration chores on Windows NT servers running IIS and SQL
Server, arranging database backups and data transfers, replacing hard drives, adjusting partitions, etc.
- In between Woodland and Purdue I toyed around with Linux. I started by installing it on my laptop, which was a hairy operation
since I already had both Windows NT and 2000 Pro on it, and I didn't want to lose either OS. I spent a
lot of time reading RedHat's installation documentation and boning up on partitions before attempting
it, and the effort paid off: I was able to get all three OSs peacefully coexisting on one machine. Then
my hard drive died, and since I've had my hands full learning about OS X's unix underpinnings, I haven't
felt a need to look any deeper into Linux.
|