Just about all of my work projects, most recent first.
Cisco's recent redesign of the public Cisco.com website involved integrating the website with a content management system and gathering content from diverse sources.
As content was gathered and imported into the CMS, there was potential for things to get screwed up. Checking each piece of content was a massive undertaking so I helped to design and implement a system that would allow for keeping track of which content that had passed QA, content that had not passed, etc.
Issues that complicated matters:
- The list of content came is a massive export from the CMS. The import mechanism needed to look at each new export as a new snapshot. Information that had changed from one snapshot to the next was considered important.
- Content could be un-checked, checked and approved or checked and unapproved. Additionally, content that had been checked in the past and assigned a status, then changed had a second set of statuses
- The system had to support a manager assigning large groups of content pieces to many QA workers. It had to track and organize content for those workers so that it was easy for them to check content, assign status, and repeat while the application managed and updated their active lists for them.
The system used perl scripts to automate import of the snapshots from the CMS, and access front end for the administrator and QA workers, and a MSSQL backend.
Hotspots offers hotel reservations in the Santa Barbara area. I have long worked on and maintained an MS Access database application to help keep track of the reservations and commissions earned. (See
hotspots project)
I recently added the ability to charge cancellation fees using Verisign's COM objects and VBS within the Access database.
An existing report showed canceled reservations, this project simply added the ability to charge the credit card by pushing a button on that report.
A client who uses Authorize.net started seeing a bunch of one cent transactions show up in their merchant interface. There's no way for someone to buy something for a penny at the site, so this was troubling.
We immediately changed the site passwords and the authorize.net account passwords. I audited the scripts to make sure that no-one had changed anything (made a bit harder to do by a recent design update of the site). I updated the scripts to use authorize.net's newer protocol which allows for an MD5 hash to be attached to the transaction as it is sent from our server to the authorize.net server.
I never did figure out exactly where the 1c transactions were coming from, which is a tiny bit troubling. But they have stopped.
As for the why, I can only think that someone had a big batch of stolen credit card numbers and was trying to figure out which ones were good accounts. We live in interesting times.
Moved Perl Ecommerce package and associated file to a new server.
Modify scripts to use Perl mail module rather than sendmail system call.
Setup Apache URL rewriting to provide an easy URL for product pages both for human visitors and for search engines.
Authorize.net had stopped supporting an older version of their protocol which the site used. So I updated the site to use the then-current equivalent.
A short time later we began having problems with that equivalent (which authorize.net is now phasing out because of security problems). See
The Mover's Friend Authorize.net Security Update
I designed templates, headers, styles, etc., installed b2 weblog software, phpBB software, and a bundle of custom software.
The custom software is for adding and editing articles, and a calendar of upcoming events.
website
This site allows members of the National Charity League (NCL) to order charms (charms are jewelry items signifying acheivment and dedication within the NCL).
Charm orders must be approved and grouped by the Chair of each Local Chapter of the NCL. The website allows the Chair to manage, group, submit and report on the charm requests made by members.
Lynn's Jewelry is the exculsive supplier of charms to the NCL. The site provides administrators at Lynn's Jewelry with the user management tools, order management and reporting, and fulfillment reports and functions.
started: 2001-10-01
Ended:
Sellers can use the system to define products and zones. They can then set minimum order goals for a product in a zone.
Buyers use the system to order products. Buyer requests are aggregated by zone to meet minimum orders.
Buyers can take advantage of bulk discount yet still order just the ammount they need. Sellers can cut their fulfilment costs by handling larger orders, yet sell to smaller customers.
started: 2001-10-31
Ended: 2002-01-15
A simple and elegant help system that can be easily intetgrated into an existing PHP application or static web site.
Pop-up windows allow convenient access to context sensitive help. Handy reference to related topics and overview of all categories and topics.
Help administrators can edit the help files in place.
started: 2002-11-15
Ended: 2002-01-01
Evaluated an existing JavaScript course and created a coherent outline for a revision of the course. Worked with the revising authors on accuracy and completeness of their revision.
started: 2001-07-11
Ended: 2001-09-13
Evaluated an existing online course covering basic Flash techniques. Created a coherent outline for a revision of the course. Revised part of the course.
started: 2001-07-06
Ended: 2001-08-08
Interchange is a highly customizable online shopping and ecommerce software suite. It includes the ability to run many stores using one installation of the software, and to modify each to an incredible extent using configuration settings and HTML templates.
Interchange stores can take advantage of advanced cross selling and promotional features.
Interchange provides a wealth of product and order management and reporting functions for store owners/managers.
Interchange is open source software. It runs as a daemon for great performance, and is written in Perl for easy customization.
started: 2001-07-01
Ended:
Provide ASP front end for making SNMP queries, displaying query results as options in a configuration form, then sending configuration information to another server via remote procedure calls.
Configuration information is then used by a Perl script to write an MRTG configuration file so that the user can see the information they'd like to see graphed for that device.
ASP front end and Perl backend communicate later to provide further customization of reports by the user, and to organize links to the MRTG reports.
started: 2001-05-29
Ended: 2001-06-26
Co Wrote a training course on DHTML, including CSS, the DOM, Layers and animation.
started: 2001-05-08
Ended: 2001-06-29
Co wrote a technical training course on server side Java programming, including JSP, Servlets, beans, and deployment techniques.
started: 2001-03-30
Ended: 2001-04-13
Co-wrote a training course on advanced Perl programming.
started: 2001-01-04
Ended: 2001-07-18
RealUser.com was a company that offered an authentication service based on face recognition. (I assume the past tense is appropriate here, I can no longer get to their web site.) When you signed up for the service, you were assigned 4 people and you went through a short "introduction" to them via an image of each of their faces.
It was amazing how quick it was to learn the faces and how unerringly I could pick them out of a grid of unfamiliar faces. Apparently facial recognition is evolutionarily important and we therefore have large portions of grey matter devoted to the task.
Anyway, the idea was that to provide universal secure login for web applications, kind of like passport with a friendly face (groan).
I helped them develop a simple SDK for ASP (the coding was mostly done when I got there), and document installing and configuring it so that webmasters could integrate realuser logins with their own websites.
I was responsible for creating a development strategy that would provide our company with software and server infrastructure capable of scaling to meet massive usage, and of being very reliable.
I wrote a custom transaction server application and client software to provide transactions against accounts held in our data center. This included building in fault tolerance, recovery and monitoring to ensure availability of the service. It also included client verification, security controls, and transaction integrity to prevent fraud and assure the accuracy of our account data.
VBScript and ActiveX to use the MS Office spell checking compnent to spell check text in a form in Internet Explorer.
started: 2000-04-11
Ended: 2000-04-19
Lingo code enabling shockwave movies to communicate using the XML-RPC protocol.
started: 2000-01-05
Ended: 2000-02-15
Gyrus
01/05/2000
On-line education environment for teachers and students. It includes a user authentication system with quick messaging, integrated educational components, and a tightly integrated user interface designed in shockwave by a colleague.
started: 1998-01-05
Ended:
Web site for a hotel information and reservation service based in Santa Barbara, California.
started: 1999-04-05
Ended:
Website for businesses that sells hand-prefabricated garden houses, sheds and playhouses.
started: 1999-06-01
Ended: 1999-07-15
Worked to evaluate the business needs that were driving a company using a traditional paper only accounting system to adopt an ERP system.
started: 1999-05-01
Ended: 1999-08-11
Created a database driven listing of properties for sale by region, allowing the editors of Ranch and Country to easily post the listings from their magazine on-line.
started: 1999-02-10
Ended: 2000-02-10
I created an application for an order fulfillment house that allowed their wholesale customers to place orders online. It also allowed their suppliers to view the inventory of product that particular supplier provided. It would set visible flags and sent email warnings to suppliers when stock at the order fulfillment company dipped below acceptable levels.
Invoices and account information were also available online. In a separate project I implemented an online payment solution.
This system replaced a communication system that used many fax transmissions each day and required considerable person to person interaction on the phone. It also allowed the companies on both sides to respond more quickly to inventory levels, to avoid rush delivery costs, and in many cases to hold a leaner inventory.
started: 1998-12-15
Ended: 1999-05-15
Created an on-line store for a retail store selling native American handicrafts.
started: 1998-10-01
Ended: 2000-11-01
Web site for a Peruvian horse ranch that sells horses and provides stud service. Associated with an on-line magazine "Spurs" with horse related stories, poetry, reviews, etc.
Implementation of the original website from design specs from client. Ongoing technical advise and layout tasks.
started: 1998-09-01
Ended: 2000-10-01
Software that allows faculty to create and automatically grade on-line quizzes.
started: 1998-06-01
Ended: 1998-07-01
Website for the AFI's celebration of the first century of movie history.
started: 1998-05-01
Ended: 1998-07-01
An on-line service for small plane pilots. Provides Runway lengths, radio frequencies, etc. for airports around the country (data from the FAA). Also provides information about lodging dining, and other businesses in the vicinity of the airports. Allows Pilot's Travel Guide sales reps to enter their own ads into the site.
started: 1998-03-20
Ended:
A database application managing the extremely complex contractual obligations of mineral leases.
started: 1998-03-18
Ended: 1999-01-12
Web site for Steven Handelman Studios, a custom iron and glass work gallery in Santa Barbara, California. Other contractors have worked on this site, but much of our original work remains.
started: 1998-03-01
Ended: 1998-06-01
An on-line database of movie related links and fan sites.
Moved the site from an older hybrid Filemaker Pro/web solution to a completely on-line version with different levels of access and authentication for database editing.
started: 1998-03-01
Ended: 1998-05-01
Created a web site for a photographer/author and his calendars and books.
started: 1997-09-10
Ended: 1997-12-01
Created a searchable database with simple form based data entry.
started: 1997-08-18
Ended: 1997-10-15
Website for a hotel in Solvang CA.
started: 1997-07-08
Ended: 1997-09-01
Created a web site that merged data from flat file format with HTML templates to create a large catalog of photos online.
started: 1997-07-01
Ended: 1997-07-27
Created a relation database application to keep track of participants in workshops, their contact history, personal details, and their accounting information
started: 1997-06-12
Ended: 1998-01-01
Created web site for a real estate company in Santa Ynez.
started: 1996-09-15
Ended: 1997-06-02
Online store for a retail leather shop. Modified a freeware shopping cart to provide a customized store environment.
started: 1996-08-05
Ended: 1997-05-29