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
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.
|
|