Domino Address Book with 40,000+ Pretend Names

Ages ago I asked for your help in adding names to this "address book"-like database. Since then I used the same data to demonstrate lots of AJAX methods and, in particular, the Name Picker I created.

As good as this data was (and I thank you for it) some of it was a little spurious (people called "a a" or "test test") and there were never more than a couple of thousand records. What I really needed was a real address book with thousands of pretend people.

Well, now I have one. Here's a Domino Directory with more than 40k made up names.

To do this I started with an empty NSF based on the Directory template. Then I obtained a load of pretend names — half from fakenamegenerator.com and half from Davopedia.com's Data Maker. All I needed to do then was modify this CSV import script and I was off.

The result is a huge directory against which I can do some real stress testing of applications that refer to address books. It's still not perfect though. I need to add more "foreign" names with things likes accented characters. I also need there to be more occurrences of unique names, both first and last. From there I can use it in developing things like the "ultimate Domino name picker", which I'm working on now.

Would this database be useful as a download? If anybody wants a copy let me know. If there's interest I'll Zip and upload it.

Updated: You can download it here (23MB Zip). Take a moment to thank Prominic.NET for the free bandwidth as you do!


    • avatar
    • Val
    • Thu 4 Jan 2007 05:09 AM

    Hi Jake,

    I haven't posted for a while so..

    Congratulations x 2 (Marriage + Baby).

    Happy Christmas.

    Happy New Year.

    I'd be interested in a copy.


    • avatar
    • Carlos
    • Thu 4 Jan 2007 05:09 AM

    Why not add 40,000 pretend email addresses and then sell it to the spammers ;-)

    • avatar
    • YoGi
    • Thu 4 Jan 2007 05:23 AM

    Sure it's interesting, because most of the time we're developing with a quite empty address book (maybe 100 or 200 entries) whereas most of the companies do use very large address book, and sometimes we are backstabed with performance issues, or even domino limits.

    Well. I'm interested.

    • avatar
    • Jake Howlett
    • Thu 4 Jan 2007 05:36 AM

    I'll take that as a general interest in a download of it then. Give me a while and I'll post something up here...

  1. Hey Jake --

    First, Happy New Year to you and your family!

    I have to say that this is an EXCELLENT resource that you've given us. It's a perfect example of one of those simple first-steps/tasks to application development that can take up development cycles and detract from us getting the job done.

    Thanks man!


    • avatar
    • Val
    • Thu 4 Jan 2007 12:40 PM

    I found this in Jack Slocum's forum too.


  2. @Val ... that link rocks!

  3. Jake

    Happy New Year to you and yours.

    Just read the 'Humble Javascript' post from your 'Elsewhere' selection and attempted to respond to it. Failed. Seemed to think I was selling them Viagra (seriously).

    Do I take it that you are of like mind

    , if so can I persuade you otherwise, or is this just an interesting discussion topic ?

    Seem to remember that the last event of this type centered round our discussions on the use of Javascript and accessability ...

    Whichever, if it's at all relevant here is the response that I attempted to post to tetlw.id.au for anyone else that's read that blog.


    Humble Javascript ...

    Whilst I applaud (and try to follow) many of the sentiments behind both unobtrusive javascript, I strongly disagree with some aspects of your implementation.

    To follow your own example of validation. It is frequently necessary to validate quite a large number of <inputs> in a form, especially on the type of intra/extranet stuff that I mainly work on.

    The only way to create the necessary one to one relationship between a given <input> and the validation code to be run against it is to use attributes.

    Trying to limit this to the use of XHTML's restricted subset (id,class etc) leads to complex and obscure code and immense problems if the environment is at all dynamic. How do you know what to do with the required min/max/regex etc for id="XXX" when the id keeps changing because the whole thing is database drive and index ordered at the backend. Or added to by a maintenance coder. It's a coding and maintenance nightmare.

    X(HT)ML is eXtensible. It's MEANT TO BE eXtensible, it is, pardon my French, the WHOLE BLOODY POINT of it.

    Adding an attribute such as max="100" is not only reasonable from a coding point of view it is also semantically correct and completely neutral in its impact on CSS and Javascript. Turn off either and the result is neutral in terms of presentation and behaviour.

    It has the potentially very important advantage of being human and machine readable with clear intent to both people and robots.

    It is also as near guaranteed to be browser / client javascript implementation independent as it's possible to expect in an imperfect world.

    Both DOM and MS support getAttribute() and setAttribute() for this very purpose, as do almost all old browsers via expandos.

    There is an issue with validation.

    Unless you take action then your code will no longer validate against w3c XHTML but that is a separate issue with various solutions (see AListApart for recent discussions)

    My personal solution is to add <!ATTLIST> tags into the body of the <doctype> during the development and testing phase, putting up with the unavoidable ']>' chars at the top of the page. This enables me to check code quality during development but I remove the <!ATTLISTs> when deployed. I validate to ensure that my code is as good as I can make it, semantically 'correct' to ensure reliable machine readability. I'm not the slightest bothered that an end user will submit my page to a validator and see it 'fail' because of 'invalid attributes'. If that ever becomes a problem then I'll use a custom DTD but frankly I can't see that I'll ever need to.

    We have to work with what we've got, raw XML can't really be done given the current generation of browsers so extending XHTML with a small number of meaningful custom attributes seems to me by far the least bad approach.

    It is, I submit, a humble solution.



    PS never been here before, arrived via a link from Jake at codestore.net


    • avatar
    • Jake Howlett
    • Fri 5 Jan 2007 05:33 AM

    Ron. Maybe it was the id="XXX" part ;o)

  4. I would suggest to populate all fields in Work and Home tabs with somewhat random but valid data.

    And include a couple of hundred groups where members are random persons from this address book.

    This would greatly extend the usage areas of the database.

  5. not sure if this is effecting everyone or not.. but all of a sudden.. your homepage requires my browers to be at least 1162 px wide for the layout to look right. Otherwise the blogs don't start until after the right-side nav boxes..

    maybe something to do with your last post and the img size?..

    Just thought i'd let you know..

    Its a terrible first post for a loyal reader, but I thought it was important.

    Take care.

    • avatar
    • Fabio
    • Thu 18 Jan 2007 07:33 AM

    great !!!


  6. this is great!

  7. Thank you for this!!

    It will be a great base for personal projects..

Your Comments


About This Page

Written by Jake Howlett on Thu 4 Jan 2007

Share This Page

# ( ) '


The most recent comments added:

Skip to the comments or add your own.

You can subscribe to an individual RSS feed of comments on this entry.

Let's Get Social

About This Website

CodeStore is all about web development. Concentrating on Lotus Domino, ASP.NET, Flex, SharePoint and all things internet.

Your host is Jake Howlett who runs his own web development company called Rockall Design and is always on the lookout for new and interesting work to do.

You can find me on Twitter and on Linked In.

Read more about this site »


Here are the external links posted on the same day.

More links are available in the archive »

More Content