You can see my resume for a general look at the type of projects on which I've worked. The table below provides more detail, and potentially source code for some of the projects.
| Project
|
Description
|
Language
|
Availability and/or Examples |
| Integrate a shopping cart, secure download and affiliate program while adding the ability to track and pay sellers. |
Holly Lisle asked me to help her with a project that would allow her to sell downloadable ebooks and programs for writers and readers from her website. Customers can purchase and download products as soon as their payment goes through. At the same time, it protects the store against spoofers and offers no permanent download links. Sellers and administrators can track the seller sales statistics and administrators can pay sellers all within the interface. |
PHP frontend using a MySql database |
Check out the store here: Shop.HollyLisle.Com.
|
| Create a graph image that people could use to track their writing progress
|
Starting from a very general idea, I scoped the project, identified what languages I needed and determined what coding I had to learn. The design required a PHP form that determined login status, a program to create an image (something I'd never done) and a database table to store the relevant information. Because of time constraints, the program is more functional than fancy, but it does what was requested, providing a colorful visual display of progress to encourage further work. Holly Lisle, a well-known author and founder of the Forward Motion writing community, liked the progress bar so much that she requested a custom version for her own website.
|
Exists in two versions: PHP frontend using a MySql database (custom only) and a PHP frontend with a text file backend.
|
Available for purchase here: Shop.HollyLisle.Com. To see some examples of the result, click here: Writing status for 2004
|
| Automate the update of a biography index for Forward Motion
|
This was an interesting project because the html structure is very complex. Not only did the links have to be sorted, but also they needed to be categorized alphabetically and the table structure built around them. I chose Perl mainly because it was a client procedure using FTP to access the server and I knew Perl's parsing abilities could help. Later, I added the ability to check which of the index page types (of the three offered) was updated the most recently to ensure that a person's intended page displayed rather than an older version.
|
Perl and FTP
|
No example available
|
| Tools to make my writing easier
|
I have designed, coded, tested and used numerous Perl scripts to automate procedures I have had to perform several times. This is near and dear to my heart because I got into programming for this reason originally, but Perl is a much more versatile language than DOS batch files. Some of my scripts include:
- critextract: removes inline comments along with enough of the previous line to place them and puts the comments into a separate file for posting story or article critiques online.
- joinworddocs: joins chapters from separate MS Word files into one file with the chapters in order and identified by headers
- countword: Reads a Word or text file and creates both a total word count and a count separated by chapter. I use this when planning out my edits and determining how many chapters I can edit in a day.
- runMakeDoc: Converts a file or directory of files into a palmdoc for reading on the handheld, processing the translation through MakeDoc (a freeware program)
|
Perl
|
N/A
|
| Tools to make my webpage generation easier
|
I have designed, coded, tested and used several Perl scripts to automate different steps in creating my website. Some of my scripts include:
- buildwebpage: adds the header and footer links to the body text. It can be used to update existing pages when the links change or create new pages and automatically does not link the current page.
- thumbnail: takes a folder of images and generates an html page with thumbnail-sized IMG tag calls and optional tooltips and/or comments. Though the page can be customized later, this script eliminates the repetitious steps. Two examples of the various stages are: Crafts and My Cats (Warning: this page loads slowly due to the number of images.)
|
Perl
|
N/A
|
| Tools to help me as a community and tech team member of Forward Motion
|
I have designed, coded, tested and used numerous Perl scripts to automate various repeated tasks both in my general use of the site and when supporting the site and its members. Some of my scripts include:
- parsesql: extract a forum thread from a SQL dump to restore it.
- Who's chatting: scan the list of members in chat for anyone I am looking for. This is especially useful when I have a question or information for specific people because I run it on a scheduler and so don't have to waste time looking when they are not there.
|
Perl
|
N/A
|
| Get my favorites onto the website and test links |
I've collected quite a few good sites for both programming and writing. Though it is not a fancy collection, it might prove useful to someone who is trying to follow my path of programming in the best possible language regardless of whether it is known. Similarly, some of my writing sites might be unknown to them. However, I did not want to hand-code all these links, especially since they change frequently. Therefore, I found a free Perl script on the web and modified it to meet my needs. Note that I retained the original author since I used that script as a base. I also created a companion script that attempts to launch each file and renames it a badlink if the attempt fails.
|
Perl |
favorites.pl
|
| Create custom import for a Quiver product
|
The QKS Classifier could accept a generic file to create taxonomies or add topics/topic structures to the data managed by the product. My project was to convert customer data, whether in XML, XLS or comma-delimited format, into the custom format. I did this by creating an intermediate tab-delimited file that would convert into the required format. The next step was to craft a converter to get to the intermediate file. I designed an XML parser that used the equivalent of an ini file to identify tag names and relate them to the required Quiver names, for example category = topic. The script then parsed the XML file and whenever it found the tag "category" it created a topic. Any tags that identified documents were appropriately treated under the topic and put in the specified list. The result was a tab-delimited, hierarchical representation of the topics and their documents split between the published, proposed and training lists. Though this project never went through formal QA because of resource restraints, it was used several times to convert customer and evaluator taxonomies for use within the QKS Classifier.
|
Perl |
Owned by Quiver/Inktomi |