On 08/05/2010, Daniel Bowman <[log in to unmask]> wrote:
> Greetings all,
> Over the last year and a half or so I've been using a VBA-driven interactive
> dictionary in Microsoft Excel to keep track of Angosey.  The ability to
> quickly search my dictionary by English keyword, Angosian word, part of
> speech, etc has been instrumental in taking my language to the next level,
> and has certainly helped my fluency.
> However, I am using a laptop that dates from 2004 and Windows XP got to be
> so slow that I never even bothered to turn my computer on.  In frustration,
> I decided I had two options: either throw the computer out the window, or
> convert it to an Ubuntu machine.
> But I like my computer; it's been through a lot.  So I switched to Ubuntu,
> and I'm using it right now, and things are running just fine.
> Except I no longer have my Angosey dictionary.  Sure, all the data's there,
> but VBA doesn't work in Linux.  Openoffice tries to run my macro, but it
> crashes and I'm not terribly interested in debugging it, since I know much
> better options are out there...which leads to my question:
> Can you recommend to me a programming language or database system that is
> fast, portable across multiple platforms (in case I ever switch back to
> windows), and optimized for the sort of organization that a dictionary
> requires?  Ultimately I want the dictionary to be able to do the following:
> 1.  Search records by Angosey word, English keyword, grammatical function,
> included characters, etc.
> 2.  Enter in new records.
> 3.  Delete or edit records as necessary.
> 4.  Export records to a document or PDF.
> Command line or GUI, it doesn't matter to me.
> I've been looking at lots of SQL database options, and I've got a working
> knowledge of Python.  I understand relational database systems as I've
> constructed two MS Access databases.   I'm also not afraid of learning a new
> programming language or database system if need be.
> If anyone's interested in having a copy of my Excel-driven dictionary, I can
> post it on 4share.  Alternatively, if someone's willing to host it on their
> website we can go that route also.
> Thanks in advance!
> Danny

Personally I'd recommend just storing your dictionary as a plain text
file, one entry per line. Make sure it has some sort of structure
appropriate to what you need (e.g. first column is the angosey word,
second is the english word, and everything else is additional detail).
You can use grep to search it, and text editors and other simple
utilities to edit and manage it.

Exporting to PDF or any other format would be largely trivial for
someone with programming experience in a language that can support
your export format. For example, converting plain text to LaTeX could
be done in three lines of python (there's some other fluff, but that
can be added manually):

    with open('mydictionary') as fd:
        for line in fd:
            print('\\item[%s]\n%s\n' % line.split(None, 1))

Issues involving line endings aside, it's a uniquely portable format.