Projects and code
Posted on May 13, 2007
This post is mainly a diversion. I’m procrastinating on coding. With coding I get either very into it, or very frustrated. When I get into it, the hours just pass by. As an example, I stayed up until six this morning coding, because it was going well and I didn’t notice the time. The next thing I know, light is creeping in through the shades.
Anyway, I’ve been using Lingo as an interchangeable term between the project and the code, even though they are two separate things. The project is Lingo: The Website, a set of tools to learn languages via web-enabled PDA or cell phone. Lingo: The Code is the PHP, HTML, and MySQL that makes Lingo: The Website work. From a practical standpoint, the only thing an anonymous user can do with The Website is browse the two dictionaries. I’ve been working on a login script and an add-new-entry script, though since I have a lot to learn about sessions and cookies, they aren’t very practical yet. It’s progress though.
Search is the next thing I’m going to work on. With search, a user can enter a term and look it up in one of the dictionaries to find its definition – one of the key concepts of the site. Search will also make it easier to find and select entries to edit (I can already see a few that need editing). So it’s the next big thing I need to get going.
I think, once I get a search form, an edit-entry form, and a user-profile page, then it might be ready to release as code…maybe. Right now, the code is customized for The Website. To release the code, I need to make it fairly generic so people can use it however they want. It’s kind of a niche product, but I believe in open-source, so I think releasing the code might be worthwhile. The code will probably be released via Sourceforge, so as to attract other users, and possibly coders.
One of the key dictums of the open-source movement is,
Release early and release often.
I think the idea behind this is that any small improvement and/or tweak that can improve the code should be disseminated for all to enjoy. Of course, when that happens, inevitably it will cause unanticipated problems for some users. Releasing early and often should help with some/many bugs – each successive release is supposed to be an improvement over the previous. It also leads to another saying in the open-source world:
Given enough eyeballs, all bugs are shallow.
Also know as Linus’s Law after Linus Torvalds who coined the phrase. Here the idea is that with enough people looking at the code any problems should become apparent. One of the frustrations of coding is when I look at code so long, some typos might not be apparent. I’m usually pretty good at spotting spelling errors, but missing parentheses or dollar signs are sometimes a problem. One problem I had with the login script was in the code, I refered to user_name in the mysql_query, but in the actual table, the field I wanted was user_nick (for nickname). In the table, user_name refers to the user’s real name. The sad part is I set up the table and wrote the code, but just forgot about that issue. I took me many, many hours to run that problem down.
Anyway, like other websites that release their code, I probably need to come up with two terms to differentiate Lingo: The Website from Lingo: The Code. I’m not really set on using the term Lingo for either one. For the code, I’m leaning towards Giraf (a German? spelling for Giraffe), many because they are a stereotypical “warm-fuzzy” animal that most everybody can identify and is non-threatening (until I read about the giraffe that injured a drunk person who invaded its pen at some zoo). I’m also keeping my eye out for other warm, fuzzy, non-threatening, and easily-identifiable animals for a possible name/mascot. Since it is meant for mobiles, a small creature might be appropriate.
For the website, I’m trying to find a word that is short, has to do with language, and can be semi-easily translated into other languages. Lingo is pretty good about this (though in Japanese, it would become Ringo (^_^). However, there are already some other websites (some dealing with language) that use Lingo in some way. The same goes for vox, lingua, and others. Gloss has a few definitions, and not all of them deal with language. Larynx might be difficult to translate phonetically and retain its meaning. A lot of sites like this one use the word dict, which references the DICT project/protocol and dictionary. StarDict is a good example of this. However, in English, using dict can lead to some double entendres. Think about some warm-fuzzy animal and put dict at the end. I’ll let you figure it out.
Related posts:
Leave a Comment
If you would like to make a comment, please fill out the form below.

