Address Book
©1996-2012 Roedy Green, Canadian Mind ProductsThe
CurrCon Java Applet displays prices on this
web page converted with today’s exchange rates into your local international currency,
e.g. Euros, US dollars, Canadian dollars, British Pounds, Indian Rupees…
CurrCon requires an up-to-date
browser
and Java version
1.5 or later, preferably
1.7.0_02.
If you can’t see the prices in your local currency,
Troubleshoot
This essay does not describe an
existing computer program, just one that should exist. This
essay is about a suggested student project in
Java programming. This essay gives a
rough overview of how it might work. I have no source, object,
specifications, file layouts or anything else useful to implementing this
project.
This project outline is not like the artificial, tidy little problems you
are spoon-fed in school, when all the facts you need are included, nothing
extraneous is mentioned, the answer is fully specified, along with hints
to nudge you toward a single expected canonical solution. This project is
much more like the real world of messy problems where it is up to you to
fully the define the end point, or a series of ever more difficult versions
of this project, and research the information yourself to solve them.
Everything I have to say to help you with this project is written below.
I am not prepared to help you implement it; or give you any additional
materials. I have too many other projects of my own.
Though I am a programmer, I don’t do people’s homework for
them. That just robs them of an education.
You have my full permission to implement this project in any way you please
and to keep all the profits from your endeavour.
Please do not email me about this project without reading the disclaimer above.
The
CurrCon Java Applet displays prices on this web page converted with today’s
exchange rates into your local international currency, e.g. Euros, US dollars,
Canadian dollars, British Pounds, Indian Rupees…
CurrCon requires an up-to-date
browser
and Java version
1.5 or later, preferably
1.7.0_02. If you can’to see the prices in your local currency,
troubleshoot CurrCon.
This project is mainly an exercise in printing several small logical pages to a single sheet of paper, both sides.
This is called 2-up or 4-up printing, depending on how many pages there are per sheet.
Every few years, my address book gets too untidy with changed names and addresses and I start over, copying the
most useful names, making errors in the process. I keep the old books around for reference. I would like to automate
this process. I’m not rich enough to buy a Palm Pilot, so I ordered a
program from DayTimer.com to do this.
Supposedly, it will let me maintain the lists electronically, and periodically print out subsets of the master
address book, so that for example I might just print out a mini address book of my Seattle contacts, or just people I
might want to ask for sex, or my Christmas card list, the people I need to contact to organise a high school reunion,
just the people I phone frequently…
Your job is to create a portable Java clone of this program.
Things to consider in doing a bang up job to make your code even better than DayTimer’s:
- Validate the heck out of the data. Cross check area code prefixes/state/province/zip/postalcode. Look for
invalid x0x and x1x telephone prefixes in area codes that don’t support them. Look at the Business Classes for some ideas. Validate the format of email accounts, and do a DNS (Domain Name Service)
check on any domain names if you are online. Arrange for auto-update of validation classes.
- Allow printing in many formats, e.g. DayTimer expensive pre-printed sheets, blank paper with black circles
showing where to punch, mini, midi and maxi formats, mail labels, plain paper lists. The trick here is to print on
front and back of each sheet in such a way that when you cut the paper up into smaller pages, everything comes out
in the right place.
- Automatically record the last change date, and provide a way to print a list of entries given a start/end
change date. That way you can get a list of likely obsolete entries or to review your recent entries. You might use
it to print a master address book once every 6 months, and, every month, a printed update
of just the recent changes since that printing.
- vCard import.
- The simplest implementation is a ram-resident many-to-many TreeMap that you pickle
between incarnations. You want to be able to look up each item by many different keys. Each key might link to many
different items. George W. Cherry will be publishing a book that shows a simplified Personal Information Manager
that demonstrates the technique. A fancier implementation would use an SQL (Standard Query Language) engine, possibly web-based to avoid the
hassle of installing one on the client’s machine.
- Allow you to configure which fields you want to track on each person.
- Allow you to add new fields, and give them names and types which controls data entry and validation.
- Allow plug-in additional data entry validation filters using Class. forName
- Allow you to define different reports listing which fields you want to keep. The fields tend to automatically
align with minimal fiddling.
  |
You can get the freshest copy of this page from: |
or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror) |
| http://mindprod.com/project/addressbook.html |
J:\mindprod\project\addressbook.html |
 | Please email your feedback for publication, letters to the editor, errors, omissions, typos, formatting errors, ambiguities, unclear wording, broken/redirected link reports, suggestions to improve this page or comments to
Roedy Green :
If you want your message kept confidential, not considered for posting, please explicitly specify that. |
| Canadian Mind Products |
|
| mindprod.com IP:[65.110.21.43] |
| view Blog | Your face IP:[38.107.179.212] |
| Feedback | You are visitor number
61,601. | |