Valerie Mates
my home page

my professional page

my personal page

things I've written

Web Design

Projects where my work is currently running:

I am the webmaster for The Ann Arbor Parent Advisory Committee for Special Education. This is a simple website on I make updates to it as needed, including organizing and maintaining a pretty awesome collection of links to everything special-ed related in the Ann Arbor area.

I designed the Stuyvesant Class of 1983 website and wrote the easy-to-use programs that classmates use to log in, enter a biography and photos, and view other people's information. I also installed the Backtalk conferencing system for classmates to discuss the reunion and other topics, and redesigned Backtalk's interface to fit the site. The programming is written in Perl, using an MySQL database.

An Interactive Story
Here's an interactive story I wrote. You read a page of the story, then select one of two links to decide what happens next. Eventually, you reach the end of what has been written so far. Then you can write your own addition to the story. It is a Perl program that I distributed as freeware. I designed the front page of It has a peanut butter and jelly color scheme. I also set up the information on the site to be searchable with the Atomz search engine.

When the Children's Creative Learning Center daycare center wanted to build new web pages, I set up the system that they were looking for in WordPress, including adding plug-ins for a calendar and for slideshows. The pages automatically adapt to any size of screen.

I maintain Palmer Morrel-Samuels' web pages and databases for Expert Witness Psychology and Surveys For Business. These are simple WordPress sites. Surveys For Business also has a sophisticated suite of programs for performing surveys at businesses to determine how satisfied the employees are and what their concerns are. This code was originally written by Jan Wolter in Perl, Javascript, and MySQL; it is now maintained by me.

A solitaire game called Thirty Six  
I maintain Jan Wolter's program Politaire -- a website with a single piece of code that can play 535 different Solitaire games. It is mostly written in Javascript. I customized Politaire to run on Thomas Warfield's GoodSol website -- though I don't think he is still using the customized version.

sample paint-by-numbers logic puzzle I maintain Jan Wolter's website of Web Paint-by-Number logic puzzles. This site is written in Perl, with a vast MySQL database. It has a lively user community of super-nice people from countries all over the world. I have cleaned up after a major database crash, helped to set up automated backups with the awesome, and added new features such as the ability for users to reset their own lost passwords.

And, of course, I designed the pages you are looking at now.

Projects where my work is no longer online:

For 27 years I was the webmaster for the Ann Arbor Observer's on-line edition. The site was originally designed by a team of 14 designers who set up databases of information about Ann Arbor. The Calendar database lists concerts, plays, lectures, and other events in Ann Arbor. Their City Guide database has information about the City of Ann Arbor, including local schools, laws, and recreation areas. It is very comprehensive.

I maintained the tools that the Observer's editors used to add new information to the website's databases. I made the site more compatible with different browsers. I wrote programs that automatically made daily updates to the site. I wrote some Javascript code for the site and did a lot of Perl CGI programming for it. A number of times, I moved the system to a new server, migrating their DBM and Informix databases into mSQL, and then later from mSQL to MySQL, and porting all programs that accessed those databases from other languages into Perl. I wrote code that tracked impressions and clicks on ads on the site, and other code that the editors used to manage which ads were shown in the various locations on the site. I designed the HTML for the previous version of the site to automatically adapt to any size of screen that a person might use to view it. I am enthusiastic about websites that automatically adapt and look good on every size of screen.

Most of the Observer's website has moved to a new system, but they still use code that I wrote to generate the Home Sales Map and to contact organizations to ask for updates to their listings in the Observer's City Guide.

For The Ark's former website, I wrote programs that people at the Ark used to update the text throughout the site, including the contents of the web pages and also the event calendar. I also wrote a program that the public used to use to sign up to be on The Ark's e-mail announcement list or update their contact information. And I wrote the program that the folks at the Ark used to use to to send out the Ark's weekly e-mail newsletter. The programming was written in Perl, using a MySQL database.

I wrote the programming, took the photographs, and designed the website for a former version of the Friends of the Ann Arbor District Library website. The site used a content management system, which I wrote. Several people at the Friends used the content management system to make updates to the website. I wrote it with Perl programming and a MySQL database. Then a few years later, they had a graphic designer create a new design for the website. I put the graphic design into WordPress, creating a custom theme. They now use WordPress and that theme to update their website, and I help as needed.

I wrote the programming for the content management system that the editors at Freedom's Answer used to use to update the text on their website. Editors for each of the 50 states would use a simple web page to update their own state's pages. Sections of the page would change automatically according to updates scheduled in advance. The first photo on the front page and its caption were selected randomly from a pool of photos; if you reloaded the front page a few times you would see several different photos. The programming was written in Perl and PHP. Data was stored in a MySQL database.

I wrote the previous edition of the web pages for the Ann Arbor Chapter of the Association for Women in Computing. The local AWC chapter stopped meeting for several years. In addition to writing their original web pages (now largely replaced), I also volunteered to get the group itself going again, and for a while I even was the president of the local chapter!

My sister used to run a non-profit organization called Everybody Wins Metro Boston. I designed a previous edition of the website and wrote a program that the site administrator could use to easily update the What's New page. The programming was written in Perl. Data was stored in a text file.

I wrote the database system that used to be used at, which was a high-traffic site that kept a huge archive of downloadable add-ons for the mIRC chat program. Users could search through a database of add-ons, click on one, and download it. Program authors could automatically add new add-on programs to the collection. The site tracked the most frequently downloaded programs each day. Users could enter reviews of the programs for other users to read.

I wrote the programming for the content management system that the people at Wildlife Expeditions used to use to update the text and photos on their website. The owners would use a web page to change: the list of expedition leaders and their photographs, the frequently asked questions, and the list of expeditions. The programming was written in Perl. Information was stored in text files.

I wrote the programming for an old edition of Biolink USA-Ireland. Users could register, send secure membership payments via PayPal, and search through the list of other users. I wrote the program that the site used to communicate with PayPal so that PayPal could notify the site of the status of each user's payment. The programming was written in Perl. Data was stored in an MySQL database.

I did a previous edition of the programming for, which is no longer in use. The site has a database of website hosts. A visitor to the site could search for a host that offered particular features, or read or enter reviews and ratings of the hosts on the site. The programming was written in Perl, using an mSQL database.

I wrote programs for a previous edition of the website for Common Cents New York that children at school could use to create their own simple web pages, and to search for other students with shared interests. I also wrote programs that the schools used to send pictures of student artwork to a server to create a shared collage of artwork. These programs were written to be able to be reused on other sites. The programming was written in Perl, using an MySQL database.

I wrote programs for the University of Berkeley Extension that students could use to search the course catalog and register online for classes.

I wrote the database access routines for The Singles Connection, a gorgeous-looking site that is, alas, no longer on-line. The programs were written in php. The database itself was an mSQL database.

EE-Link was a database of links to Environmental Education websites. I wrote a former version of their database system. Users would suggest links to add to the database. Administrators would review each suggested link and press one of two buttons to either add the link to EE-Link's on-line collection of links or to reject the suggestion and automatically send an e-mail message to the person who suggested it. Administrators would select appropriate categories for the links and could press a button to rebuild hundreds of HTML web pages. There was also a searchable database of job postings and a page of newly added highlights. The system was written in Perl and PostgreSQL. PostgreSQL is a free database system, maintained by a group similar to the Linux community. The cool people at EE-Link also used the software I wrote to maintain the GRACE Factory Farming Project and an Endangered Species website. And Early Bronco HQ Over the years when I worked on the EE-Link site, I wrote lots of other programs for them, including: a program to send out their newsletter to over 6,000 people, and track which links in the newsletter were the most popular; programs that people could use to review proposals for conference presentations; and programming that received notifications of PayPal payments and updated a database to reflect the payer's new membership status.

Through Q LTD I've written some CGI programs and Javascript that were run on the SIGGRAPH 1999, SIGGRAPH 2000, SIGGRAPH 2001, SIGGRAPH 2002, SIGGRAPH 2003, and SIGGRAPH 2004, sites. SIGGRAPH is a well-respected computer graphics organization. I wrote the Perl CGI programs that process forms on the site when you ask to be added to a mailing list or sign up to attend their annual conference. I wrote some of the Javascript that runs on the front page of the SIGGRAPH 2000 website.

I wrote the programming for a former version of the Canton Public Library's website. I wrote three systems that ran there. One was the library's Internet Branch, a system that the librarians used to schedule information to appear on their web page. The second system was one that librarians used to update web pages of links that users might be interested in, divided into categories. The third system was the PULSE project, which elementary school teachers used to post information for their classes, to encourage a closer partnership between the Canton schools and their library. The systems were written in Perl, with a MySQL database.

I wrote the database programming for the Digital Bibliophile Community. This site had a very large MySQL database of used books from various different used book stores. Users could search through the book listings to find a particular collectible used book, or they could place a "want" listing to tell the system to watch for when a particular book becomes available. Book dealers could upload files of book listings in any of several formats. The programs were written in Perl, using a MySQL database. I optimized the database for this site, to get it to work well with the large amounts of data that the site uses.

I wrote the programming for the Hunts' Guide to Michigan's Upper Peninsula website. It had a MySQL database that stored the contents of Don and Mary Hunts' guidebook to the U.P., and wrote it out as web pages. The Hunts designed the graphics for the website, and I wrote the system that they used to make updates to it.

I wrote the programming for a former version of the Ann Arbor Learning Community website. The school would update the contents of the web pages, using a content management system that I wrote. Teachers each had their own page that they could update, and an administrator could update any page on the site. The programming was written in Perl. Data was stored in a MySQL database.

I wrote the programming for a content management system for a former version of the website of the Ypsilanti Library. The system had programming that I wrote for an events calendar, a room scheduler, book reviews with little images, and images that were scheduled to be displayed in particular parts of the site. The library could add questions to the "How Do I...?" section of the page, they could add contact people to the form that people used for contacting the library, they could change the contents of any part of the pages, and they could schedule content to be displayed on particular dates and then be removed automatically. I wrote the programming in Perl, with a MySQL database.

I wrote the programming for the event calendar and the business directory on the former Things To Do In Chelsea website. The programming was written in Perl, using a MySQL database.

I wrote the ordering system for the former Abe's Deli website. Customers could place catering orders online, to have catered food delivered to a conference or other business event. The programming was written in Perl, using a MySQL database.

I wrote a collection of programs that local music store Oz's Music used for families to sign up their kids for summer camp. The folks at Oz's could add new camps to the list and change the dates and age groups. Families could sign their child up for camps, before-care and after-care. The site stored data in text files and used several Perl programs.

Huron Valley Community NetworkI was a volunteer on the all-volunteer staff of HVCN - the Huron Valley Community Network. HVCN provided free website hosting and e-mail lists for hundreds of non-profit organizations in the Washtenaw County area. The organizations ranged in size from tiny homeowners associations and school parent organizations, to much larger organizations, which in the past have included the Ark, the Ann Arbor Summer Festival, and the Ypsilanti Library. My duties at HVCN involved answering questions for users, resetting lost passwords, setting up new accounts and websites, installing new software and other system administration, and general all-purpose troubleshooting. I wrote a program that automatically notified HVCN's members when their membership needed renewing.

This page was last updated on February 16, 2023.

Back to Valerie's professional page

My web page / Valerie Mates / E-mail me

Back to Valerie's main page.

Valerie, January of 2023
Valerie - January, 2023