February 23, 2012
The authorized web site of Lee Geistlinger - beware of any imitations!
Web Portfolio
Much of the web development I've done over the years - and some of the most innovative work - has been behind firewalls or on self-imposed, local projects so I could learn. This Portfolio presents a very small sampling of this "hidden" work.
NOTE: Links open in child window; turn off the pop-up blockers!
Blogging Tool - Promotional
This tool was an exercise to hone my skills in both PHP (scripting language) and PostgreSQL (a powerful, open-source database very similar to Oracle). Construction of this tool required a detailed understanding of PHP's and PostgreSQL's date object, the use of structured and flexible templates, extensive CSS and strong SQL skills. In addition, the introduction of an XML format for syndication taught me RSS (v0.91 and v2), the standard for blog syndication.
Language: PHP (v4.x); XML (RSS)
Database: PostgreSQL
Platform: Linux (Red Hat 7.3)
This tool was an exercise to hone my skills in both PHP (scripting language) and PostgreSQL (a powerful, open-source database very similar to Oracle). Construction of this tool required a detailed understanding of PHP's and PostgreSQL's date object, the use of structured and flexible templates, extensive CSS and strong SQL skills. In addition, the introduction of an XML format for syndication taught me RSS (v0.91 and v2), the standard for blog syndication.
Language: PHP (v4.x); XML (RSS)
Database: PostgreSQL
Platform: Linux (Red Hat 7.3)
Checkbook - Promotional
This is an effort to learn more Java and to get better at JSP - I've done minimal coding in JSP. I built this page - an imaginary checkbook tool - in JSP; it calls an EJB (Enterprise Java Bean) that I wrote to produce the results. Very basic; just an experiment. All coding was done by hand (no pre-built Beans, etc).
Language: Java, JSP
Database: MS SQL Server v7 (had to install an open-source JDBC driver; MS does not supply one for v7)
Platform: Win2000 (Netscape FastTrack server with JRun)
This is an effort to learn more Java and to get better at JSP - I've done minimal coding in JSP. I built this page - an imaginary checkbook tool - in JSP; it calls an EJB (Enterprise Java Bean) that I wrote to produce the results. Very basic; just an experiment. All coding was done by hand (no pre-built Beans, etc).
Language: Java, JSP
Database: MS SQL Server v7 (had to install an open-source JDBC driver; MS does not supply one for v7)
Platform: Win2000 (Netscape FastTrack server with JRun)
Content-Management System - Promotional
One of the most noticable holes in my resume was that I hadn't done any Active Server Page (ASP) work. With no paying project working with this technology, I decided to learn the language on my own. Instead of a simple "hello world" application, I build a Content-Management System with the following features:
Language: ASP, VBScript, JavaScript
Database: MS SQL Server 7
Platform: Windows 2000
One of the most noticable holes in my resume was that I hadn't done any Active Server Page (ASP) work. With no paying project working with this technology, I decided to learn the language on my own. Instead of a simple "hello world" application, I build a Content-Management System with the following features:
- User (read only) section
- Password-protected admin area for adding/modifying content.
- Ability to add, edit or delete (soft-delete; disable) content.
- Author control section: Add, edit or delete users
- Database- and template-driven output
- Left-hand navigation (story list) highlights current story; prints list of 10 most recent stories, with link to full list
Language: ASP, VBScript, JavaScript
Database: MS SQL Server 7
Platform: Windows 2000
Customizable Resume - Promotional
This was just an exercise in CSS, JavaScript, DHTML and cookie control. It's an older version of my resume, but with a customizable look and feel. Systems like this are used for portals such as Yahoo! and Excite. This was an attempt to use various methods to achive this result. Methods tried were the following:
Language: Cold Fusion
Database: (none)
Platform: Windows2000
This was just an exercise in CSS, JavaScript, DHTML and cookie control. It's an older version of my resume, but with a customizable look and feel. Systems like this are used for portals such as Yahoo! and Excite. This was an attempt to use various methods to achive this result. Methods tried were the following:
- Style sheet per user - written out and stored with user ID. Since there is no login to this area, accomplished via session token stored as part of cookie.
- Use of "themes" (with a separate style sheet per theme) and user's theme selection stored in user cookie
- Fully customizable style sheet parsed with user cookie variables each page hit. More overhead; more user control. This is currently used on this exercise
Language: Cold Fusion
Database: (none)
Platform: Windows2000
Drummersguide.com
Drummersguide.com was designed as a LAMP project (Linux, Apache, mySQL and PHP). A community site for drummers, the site was designed to support many user-interactive features, including the following:
Language: PHP, Perl, ImageMagick
Database: mySQL
Platform: Linux
Drummersguide.com was designed as a LAMP project (Linux, Apache, mySQL and PHP). A community site for drummers, the site was designed to support many user-interactive features, including the following:
- Concept of vistors/registered(in-session)/admin users (with associated functionalites)
- User input: Articles, User Profile, Bands, recommended links and so on.
- A robust administration section to support the user-visible sections and admin-only needs
- Modular, scalable code to support future expansion
- Extenisve logging system to enable quick overview of site visitors/events
Language: PHP, Perl, ImageMagick
Database: mySQL
Platform: Linux
Google API - Promotional
Google opened the API to its database last April. Via a SOAP call, a user with a Google key can query Google's database and pull back the raw data for display on one's own site. This was an exercise to do the following:
Language: Perl
Database: Google via SOAP wrapper
Platform: Linux (Red Hat 7.3)
Google opened the API to its database last April. Via a SOAP call, a user with a Google key can query Google's database and pull back the raw data for display on one's own site. This was an exercise to do the following:
- Learn the Google API
- Learn more SOAP (an XML protocol)
- Learn more Perl. I had written a small PHP/Google API tool before, so I decided to do this project in Perl.
Language: Perl
Database: Google via SOAP wrapper
Platform: Linux (Red Hat 7.3)
Joe Ruck Design: The Body Snatchers
The client works with other artists to produce what they call "corpses" - each artist creates a three-part human-like drawing (head, torso, legs) that meet certain centering/sizing requirements In this way, each corpe can be carved into three pieces and mixed-and-matched with other corpse parts. This project was to build a randomizer that created these mix-and-match corpses. The following constraints were part of the project design:
Language: Javascript (client-side)
Database: (none)
Platform: Unix (Solaris)
The client works with other artists to produce what they call "corpses" - each artist creates a three-part human-like drawing (head, torso, legs) that meet certain centering/sizing requirements In this way, each corpe can be carved into three pieces and mixed-and-matched with other corpse parts. This project was to build a randomizer that created these mix-and-match corpses. The following constraints were part of the project design:
- Images for all corpse parts should pre-load for fast regeneration
- Each corpse should include one and only one part by any given artist
- Each corpes should consist of three images: one head, one torso, one set of legs
- All selections should be random: The three artists selected, then which artist for which part, finally, which of a given artist's corpse part displayed.
- The project had to allow the inclusion of more than three artists
- No database could be used, nor any server-side scripting language
Language: Javascript (client-side)
Database: (none)
Platform: Unix (Solaris)
LittleGhost Gallery Admin
This gallery is linked from my blog (Blog This!). Since there is no relational databae available on the LittleGhost site, I wrote the front end in Perl and used flat files as my pseudo-database. The back end - the gallery administration - is on one of my local Linux boxes, and thus inaccessible for viewing. Which is why it's highlighted here.
Language: PHP & ImageMagick
Database: mySQL
Platform: Linux, RedHat v7.3
This gallery is linked from my blog (Blog This!). Since there is no relational databae available on the LittleGhost site, I wrote the front end in Perl and used flat files as my pseudo-database. The back end - the gallery administration - is on one of my local Linux boxes, and thus inaccessible for viewing. Which is why it's highlighted here.
Language: PHP & ImageMagick
Database: mySQL
Platform: Linux, RedHat v7.3
MoveableType Blogroll - Promotional
While currently a WordPress user - and before that Blogger - I have examined other ways to publish blogs (see my Blogging Tool project). MovableType seems to have one of the best tools out there, and - while neither of my domain hosts support this tool - I could use it on my home Linux box. One missing part of the MovableType tool was a way to create a blogroll - a linked list of other blogs I read/recommend and so on. Since MovableType is a Perl application, I wrote a Perl tool and integrated it with the existing application. Note: This is a work in progress; it currently writes to a files only, no database storage yet.
Language: Perl
Database: Written to flat file
Platform: Linux (Red Hat 7.3)
While currently a WordPress user - and before that Blogger - I have examined other ways to publish blogs (see my Blogging Tool project). MovableType seems to have one of the best tools out there, and - while neither of my domain hosts support this tool - I could use it on my home Linux box. One missing part of the MovableType tool was a way to create a blogroll - a linked list of other blogs I read/recommend and so on. Since MovableType is a Perl application, I wrote a Perl tool and integrated it with the existing application. Note: This is a work in progress; it currently writes to a files only, no database storage yet.
Language: Perl
Database: Written to flat file
Platform: Linux (Red Hat 7.3)
Multi-Platform Experiments
One of my weaknesses/strengths is that I'm always trying new things, wanting to learn new procedures, languages, methods. Example such are the "glossary" (of Internet terms) and "quotation" tools that I have used as an excuse to run new languages against, just to expand my sphere of learning. The following, overlapping experiments are presented in the following formats:
Language: PHP/Perl/Cold Fusion
Database: PostgreSQL, flat file, MS SQL Server
Platform: Linux/Unix/Win2000 server
One of my weaknesses/strengths is that I'm always trying new things, wanting to learn new procedures, languages, methods. Example such are the "glossary" (of Internet terms) and "quotation" tools that I have used as an excuse to run new languages against, just to expand my sphere of learning. The following, overlapping experiments are presented in the following formats:
- Glossary: PHP/PostgreSQL/Linux
- Glossary: Perl/flat file/UNIX
- Quotations: Perl/flat file/UNIX
- Quotations: Cold Fusion/SQL Server & MS Access (depends on environment)
Language: PHP/Perl/Cold Fusion
Database: PostgreSQL, flat file, MS SQL Server
Platform: Linux/Unix/Win2000 server
Portfolio Tool
In light of the dynamic Web site development I've done that's displayed in this Portfolio section, it seems redundant to list this tool, but it's worth mentioning. I realized that much of my work is inaccessible via the Web, so there are two choices:
Language: Cold Fusion; later ported to PHP
Database: Access (so it's Web accessible on my host); ported to MS SQL Server v7 for local use. Later ported to mySql
Platform: Windows 2000; later ported to Linux
In light of the dynamic Web site development I've done that's displayed in this Portfolio section, it seems redundant to list this tool, but it's worth mentioning. I realized that much of my work is inaccessible via the Web, so there are two choices:
- Recode my work in some manner - static or otherwise - so it is accessible via my Web sites, or
- Do a portfolio, with screenshots and some clarification as to what a pages does, why, and my contribution to the page/tool
- Database-driven display; only two pages (portfolio and pop-up page) are required
- Form/database-driven input: Only two pages (client/project and screenshot) required to build all.
Language: Cold Fusion; later ported to PHP
Database: Access (so it's Web accessible on my host); ported to MS SQL Server v7 for local use. Later ported to mySql
Platform: Windows 2000; later ported to Linux
SBC Communications - XML parser
TIM was the acronym for a bug/issue reporting system I designed and built virtually single-handedly. One noteworthy aspect of TIM was the use of XML formatting to extract comment information out of stored procedures and Cold Fusion template headers: date added, modification history, author, purpose, known issues and so on. These bits of information were wrapped in tags so they could be exported as XML and diplayed as an XML file - in this way, system admins could view comments/code notes from the files without having to open the actual files -- on-the-fly documentation, always up-to-date. I originally built a Perl XML parser that was kicked off manually to build/refresh the XML pages; after I left SBC I worked on a better solution: Build the XML parser in Cold Fusion, so maintenance of the parser could be done by resident Cold Fusion programmers (no one there wanted to learn Perl). The results of this effort were the following:
Language: Cold Fusion (originally in Perl); XML; XSL
Database: MS SQL Server 2000
Platform: Win2000 Server (ported to Linux [Red Hat 7.1] and it worked flawless there, as well)
TIM was the acronym for a bug/issue reporting system I designed and built virtually single-handedly. One noteworthy aspect of TIM was the use of XML formatting to extract comment information out of stored procedures and Cold Fusion template headers: date added, modification history, author, purpose, known issues and so on. These bits of information were wrapped in tags so they could be exported as XML and diplayed as an XML file - in this way, system admins could view comments/code notes from the files without having to open the actual files -- on-the-fly documentation, always up-to-date. I originally built a Perl XML parser that was kicked off manually to build/refresh the XML pages; after I left SBC I worked on a better solution: Build the XML parser in Cold Fusion, so maintenance of the parser could be done by resident Cold Fusion programmers (no one there wanted to learn Perl). The results of this effort were the following:
- All Cold Fusion code
- XML files generated when a user requested them, to make certain the most up-to-date information was displayed
- Databasing the tag information, to allow searches for a particular file/author and so on
- Database fully refreshed upon every search request, for up-to-date information
Language: Cold Fusion (originally in Perl); XML; XSL
Database: MS SQL Server 2000
Platform: Win2000 Server (ported to Linux [Red Hat 7.1] and it worked flawless there, as well)
Thoreau Capital
Thoreau Capital was a hedgefund company in Chicago. The desire of the company was to have a database-driven, password-protected site to display sensitive financial information. In addition, the company wanted the ability to administer the site as much as possible through the browser; a tiered-user approach was deployed to support users and administrations. Users are shown only the links to areas for which they have permission; administrators have full run of the site. I did all work on this site: graphic design, logo, database design, coding, CSS and initial setup. The company ceased operations before the site was posted.
Language: Cold Fusion
Database: Access (to keep costs down)
Platform: Win2000 Server
Thoreau Capital was a hedgefund company in Chicago. The desire of the company was to have a database-driven, password-protected site to display sensitive financial information. In addition, the company wanted the ability to administer the site as much as possible through the browser; a tiered-user approach was deployed to support users and administrations. Users are shown only the links to areas for which they have permission; administrators have full run of the site. I did all work on this site: graphic design, logo, database design, coding, CSS and initial setup. The company ceased operations before the site was posted.
Language: Cold Fusion
Database: Access (to keep costs down)
Platform: Win2000 Server
Threaded Message Board - Promotional
This project was undertaken for two primary reasons:
Language: PHP v4.x
Database: mySQL v3.23
Platform: Linux (Red Hat 7.3) - backups performed nightly to mySQL on Win2000 server
This project was undertaken for two primary reasons:
- Get more acquainted with mySQL
- Gain an in-depth understanding of sessions in PHP
Language: PHP v4.x
Database: mySQL v3.23
Platform: Linux (Red Hat 7.3) - backups performed nightly to mySQL on Win2000 server
Top 10 Lists - Promotional
An area that contains Top 10 lists - favorite movies, books, and so on. Accessible via a link on my blog, this area has drawn more traffic than any other non-blog area of my sites. This area integrates the look and feel of my blog, including the adjustable (CSS-driven) looks and feels of the blog. LAMP (Linux, Apache, mySQL, PHP) back-end; front-end results are written out to static HTML pages backend.
Language: PHP 4.x
Database: mySQL 3.x
Platform: Linux Red Hat (7.3)
An area that contains Top 10 lists - favorite movies, books, and so on. Accessible via a link on my blog, this area has drawn more traffic than any other non-blog area of my sites. This area integrates the look and feel of my blog, including the adjustable (CSS-driven) looks and feels of the blog. LAMP (Linux, Apache, mySQL, PHP) back-end; front-end results are written out to static HTML pages backend.
Language: PHP 4.x
Database: mySQL 3.x
Platform: Linux Red Hat (7.3)
Triqualliving.com
Just a HTML/CSS mockup for a potential client. CSS is great for this type of design-decision work. Change a couple of CSS lines, and the colors totally change, rail can move from the left to right side and so on. Ultimately, this site never launched.
Language: Static HTML/CSS
Platform: A Unix variant.
Just a HTML/CSS mockup for a potential client. CSS is great for this type of design-decision work. Change a couple of CSS lines, and the colors totally change, rail can move from the left to right side and so on. Ultimately, this site never launched.
Language: Static HTML/CSS
Platform: A Unix variant.















