Sample Utility Software Applications

Mailing List Utility Application

The utility application illustrated below is deceptively simple in appearance, while hiding a substantial amount of code-behind that makes creating and maintaining a mailing list quick and easy. Our client had several commercial mailing list programs already, and wanted to avoid the time lost wading through the "advanced functionality" that made them unacceptably slow and clunky.

At the client's request, we concentrated our design and coding efforts to minimize the number of keystrokes needed to enter each listing. Similarly, we implemented an auto-complete search function that makes updating existing listings extremely fast--as each letter is typed in the Name textbox, the application searches for matches, narrowing the search with each subsequent letter entered. If a match is found, clicking the mouse or pressing Enter loads the listing into the appropriate textboxes.

Similarly, entering the last three digits of the ZIP code automatically fills the City State and ZIP code textboxes, and selects the appropriate radio button for the City. Repeated entries for the same ZIP code require only name and address. Automated search-and-replace functions change "apt" in the Name textbox to "Apartments," "mfg" to "Manufacturing," and so on.




File Parsing Utility Application

This application completely automates cleaning and parsing of HTML files, extracts the data and converts it to a plain text, comma delimited file format, then saves it to a database for use by other applications. We created this application in 2009 for a client in New York who uses the stored data to pre-populate the textboxes in a race analysis and race modeling utility application.

The primary advantage of this simple application is a dramatic savings in time and effort. Information derived from this application had previously been entered by hand, including name of entry, morning line odds, purse value, jockey's name, trainer's name, and other information. In addition to saving several hours of data entry every day, this application virtually eliminated erroneous information caused by typgraphical errors, and eliminated the the need for $120 a month in subscription data downloads.




We created the application below for a client who publishes trainer and jockey ratings for Florida tracks. It has an auto-complete search function that makes updating existing listings extremely fast--as each letter is typed in the Name textbox, the application searches for matches, narrowing the search with each subsequent letter entered. If a match is found, clicking the mouse or pressing Enter loads the listing into the appropriate textboxes.

The real advantage of this application is the batch processing capability. Lengthy text files are parsed, new information in the text files automatically updates the appropriate entries in the embedded database, and manual updating of records is minimal. In addition to the substantial time savings, typographical errors in data entry are virtually eliminated.




Race Analysis and Race Modeling

In late 2009 we developed two graphical user interfaces (GUIs) and software applications for a Canadian wagering syndicate to cut down on the time spent entering race data. Functionality and algorithms were upgraded from their existing applications, consisting of more than 87,000 lines of code in 4 legacy applications. Data entry time was reduced more than 80% by pre-loading information freely available from online sources, and enabling data to be entered with 8 mouse clicks that had previously required more than 40 keystrokes.

Because they use their own proprietary race data, adjustments, and equalization figures, the clients prefer that their applications NOT rely on external data sources for anything more than the names of the entries, the program numbers, the names of the driver or jockey, and trainer.

The upgraded applications also automated the process of data modeling, enabling continuous multiple regression analyses of results, and continuous modification of the key algorithms to maximize the return on investment using an artificial intelligence (AI) "self-learning" engine. Calculations of track-to-track adjustments, surface adjustments, distance adjustments, and track variants are all fully-automated.




When the date, track, and race are selected, all information on that entry's performance in previous races, as well as driver or jockey and trainer information is automatically accessed from a database and used to pre-populate most of the textboxes. All buttons are instantly reconfigured to the range of normal values for the track selected.

Information and analysis that had previously required 30 to 45 minutes per race to generate is made available in 5 minutes or less per race, with the same accuracy, and using the same proprietary algorithms and adjustments, as the race analysis procedure previously used.




The results of calculations are displayed on a relatively simple form that hides the complexity of the code used to generate the results; for the thoroughbred application above, the processing of more than 55,000 lines of code is required to display the calculation results on the form shown below.




The application below was developed in early 2009 for a client in New York. Similar to the applications above, most textboxes are automatically pre-filled with data when the date, track, and race are selected. Proprietary algorithms were provided by the client for evaluations of Speed Ratings, Speed Points, Trainer Ratings, Jockey Ratings, Class Ratings, Projected PostTime Odds, and Pace Analysis.

All three utility applications shown above require a minimal amount of hand entry of data. Most textboxes are automatically pre-filled with information stored in an embedded database in each application. Typical time to handicap a race is five minutes or less. No subscription-based data downloads are used in any of the three applications.




Individual IT Professional Portfolios

Please enter the username and password provided in the resume to login to the individual online portfolios. Rather than provide work samples--most of which are either proprietary or so stylistically constrained that they are not representative--we have chosen to include only works that the individual professionals have produced. We believe that the samples provided accurately represent each professional's personal design, development, and writing skills.

Specifically, a programming function, user manual, or graphical user interface produced according to strict guidelines regarding language, tone, voice, punctuation, and coding style by Professional A will be essentially identical to the same block of code, user manual, or GUI produced by Professional B. Rather than indicating the competence of the producer, such examples do little more than indicate the skill of the lead developer, document designer(s), or style guide author(s).

It is the nature of information technology to follow strict standards of consistency; idiosyncratic coding styles or writing styles are considered anomalies, and individual differences are blurred by the constraints of the production process. In most cases, code samples, graphical user interfaces, and technical documentation produced in the workplace do little or nothing to indicate the skill of the developer or technical author at anything more than following explicit instructions.

We hope that the examples included in each professional's portfolio will give you a better understanding of that professional's coding, lingistic, and stylistic capabilities than the conventional "do this first, then do that" format of most program code and technical documentation samples.

Web Development Portfolios

DDSS Ratings

ddssratings.com

Introduction

In early 2006 we began planning, designing, and programming a website to publish and deliver race ratings to subscribers on a daily basis.

The site was initially launched as DDSS Ratings in May, 2006, and we have functioned as both programmers and webmasters since then, continually updating, modifying, and improving the functionality and content of the site.

 

 

DDSS Software

In conjunction with development of the DDSS Ratings website, we designed and programmed fully object-oriented Visual Basic .NET upgrades of the legacy applications used to generate the ratings published on the site. We are currently re-programming the Visual Basic .NET applications into Java, with considerably enhanced functionality and database connectivity.

The upgrades were particularly challenging because the original applications had been written in BASIC and then extensively modified by a number of programmers over the years.

Data Modeling

We further improved the DDSS Ratings applications by developing automated data download, race analysis, and race modeling functionality, as well as creating graphical user interfaces for each of the components.

We designed and coded the race analysis and race modeling functions to seamlessly integrate strict statistical research protocols as part of the code-behind functionality--the only applications in the field to do so.

 

 

DDSS Ratings

The DDSS Greyhound portion of the DDSS Ratings website, including the Visual Basic .NET applications that generate the ratings published on the site daily, is currently being offered for sale.

We are extensively modifying the thoroughbred portion of the DDSS Ratings website. Daily ratings will be phased out, and the site will be used to market the software applications that generate the ratings, rather than publishing the output.

DDSS Website

Representative results for each day's ratings are displayed on the DDSS Greyhound and Thoroughbred pages.

A DDSS Ratings sample--usually a full-card analysis of the races at a randomly selected track--is posted daily.

The website fully leverages master pages and a cascading style sheet to make global changes to the look and feel of the entire website simple and easy to do.

 

 

Payment Method

The order process is simple: a visitor 1) accepts the user agreement, 2) creates an account, 3) signs in to the account, 4) pays for the subscription, and then 5) has immediate access to the ratings.

The payments are made through PayPal with encrypted PayPal buttons. If a visitor does not have a PayPal account, PayPal will accept payments made by major credit cards; signing up with PayPal is not neccessary.

DDSS subscribers

Inside their DDSS account, subscribers can:

  • view and print the ratings by track
  • view and print implementation strategies
  • view account information and change their password
  • set preferences for delivery of the DDSS newsletter

 

 

Administration

Site administration is quick and easy, and all routine functions have been automated.

The following tasks can be accomplished through the browser:

  • view account details
  • view subscription records
  • post the ratings
  • post the daily sample
  • post the results of the ratings
  • send the ratings
  • contact subscribers
  • send renewal notices
  • remove expired users

Marketing

On the order page, information is automatically displayed that indicates when the ratings were last updated, and which ratings for which tracks are currently available. The information is intended to enable impulse buyers to purchase a 1-day access to the DDSS Greyhound or DDSS Thoroughbred ratings.

Test marketing clearly indicates the highest potential return will be from active marketing through Google AdWords or similar promotional activities.

Interested buyers who want to leverage the full earning potential of the site should use professional marketing, rather than passive marketing through search engine optimization or search engine submissions.

 

 

Income Potential

The amount of effort required to generate and post the ratings for a large group of subscribers is the same as the amount of effort required to generate and post the ratings for a small group of subscribers.

It is in the best financial interest of prospective buyers to implement professional marketing strategies that will rapidly build a very large customer base.

Summary

Site administration and rating generation is relatively simple and easy, usually takes less than two hours a day, and can readily be performed by one person.

 

Marketing - Banners with Dynamic Content

Background

To attract new subscribers, we posted samples of the DDSS Ratings on a number of online forums and on the DDSS Ratings website. To facilitate that posting, we designed and coded a banner ad in Paint Shop Pro that contained a sample of the ratings.

 

 

Updating the Information

The updated banner could be generated progammatically from posted ratings or entered manually as a comma-delimited string on a control inside the administrative pages.

The updated banner image could then be captured with the print screen button and edited in a graphics program and updated to the server.

The process of updating the banner took less than five minutes.

Usage

The banner was extracted through an XML document and then displayed through an RSS feed on the DDSS sample page. Visitors were encouraged to use the RSS feed.

 

 

Summary

We found the idea of using RSS feeds to be an interesting way to promote the DDSS website and are currently developing more such feeds with different color schemes and formats to encourage web developers to use the feeds on their sites.

We would like to create banners and RSS feeds for your website. Send us your ideas and requirements.

Marketing - Affiliate Program

Overview

Once we developed the dynamic banners on the DDSS Ratings website, we began offering several versions of the banners as promotional material in an affiliate program.

 

 

 

Advertising the Program

The affiliate progam was advertised on the DDSS index page, on various affiliate program websites, and members were invited to participate and had access to the promotional materials through their DDSS accounts.

Affiliate Pages

The affiliate pages included the following pages: introduction, account settings, promotional material, user guide, user agreement, and current earnings.

 

 

Specifying Banner

Affiliates could specify the size, color, and media type of the banner.

  • Size: 4 standard banner sizes
  • Color: green, orange
  • Media: online, print
    • If online: "click here to view strategies and results"
    • If print: "visit us online for strategies and results"

Using the Promotional Material

Affiliates could use the promotional material in the form of .gif files, as .html code, and as an RSS feed.

Each of the formats gave the affiliates access to a personalized banner that contained an individual promotional ID code.

 

 

Summary

Affiliate programs that utilize RSS feeds and dynamic content banners have a great potential to build business, with an extremely low cost-to-return ratio and total cost of ownership (TCO).

Research Projects

Background

We collaboratively developed methods that would allow us to send recruitment emails to a great number of potential participants.

We created a project website with an overview section, testing sections, and a functional section. Our goal was to have the data collection process be as automatic as possible.

 

 

Overview Pages

The overview section contained contact information, latest drafts, latest results, speech outlines, and a blog feature to communicate our progress to our graduate research committee.

Testing Pages

The testing sections were password protected, the experimental conditions were varied randomly, and the responses were stored in an XML document. Subjects could participate more than once, but only the first instance of each subject's participation was stored.

 



 

Functional Pages

The functional section contained code for extracting random email addresses from a data file and linking the email addresses with unique participation codes. The contact list was tested for duplicate email addresses and duplicate participation codes to assure data integrity.

Sampling Method

Our goal was to contact 10,000 individuals for each of two studies.

We programmatically extracted a random sample (one email address at a time) from a list of over 50,000 email addresses.

 

 

Contact

We wrote a simple application that used the contact lists to send a recruitment email to each of the participants on the contact lists. Each email contained a unique participation code that enabled us to both keep track of the participants and to assure participant anonymity.

The Experiment/Surveys

Recruits logged in, then were asked to accept a user agreement (simple version of a consent form), and asked to enter the participation code that was provided in the recruitment email.

When the participation code was entered, the code was compared to the codes in the contact list and the record of responses from previous participants. If the code was found in the contact list, the participant was redirected to an experiment or a survey.

To prevent multiple responses, the participation code for each survey submitted was compared to the participation codes of previous participants; if the codes matched, the responses were discarded (without the participant's knowledge). If no match was found--indicating a valid survey submission--the responses were stored.

 

 

Results

In the overview section, members of the graduate research committee could view the current results of the surveys and experiments. When the studies were completed the tables inside the current results section were used as tables for the research reports.

Debriefing Procedure

When the research studies were completed, the records of participation and the contact lists were used to send debriefing emails to each of the participants explaining the nature of the research, advising them that deception had been used in the research (if applicable), and informing them of the true purpose of the studies.

 

 

Error Detection

The testing pages contained numerous try-catch statements to detect errors and post information on any design problems encountered by the participants to an error log. The value of extensive exception handler coding, testing, and debugging was clearly evident; when the studies were completed, no error log entries were found.

Summary

We learned a great deal in the process of conducting this research (as well as other research projects), particularly in regard to the design and structure of the research instruments and surveys. Most importantly, that the results of research can be altered and manipulated by variations in the linguistic constructs and presentation formats used.

Clearly, the use of research instruments created by less sophisticated users of the English language who may be unaware of the nuances of semantics and pragmatics are suspect; the results obtained may be more a factor of instrument construction than of respondent opinion on the research topic.

Because survey research is used extensively to plan and implement marketing campaigns, as well as to make decisions regarding new product development, caution is advised; even experienced researchers may be unaware of the degree to which the research instrument manipulates responses.