For the past few years I’ve been working on and off toward the development of a web-based text and image annotation tool for the Chymistry of Isaac Newton Project; I’ve been a member of the team since Fall 2007. If you have any experience with web programming, you will know that it is almost impossible to successfully navigate the waters of browsers, operating systems, javascript engines, client requirements, accessibility standards, usability issues, mobile development, etc. (the list continues to grow as new technologies saddle up to the Internet and demand seamless service).
The development has been long and arduous with many pitfalls, yet somehow I’m still working and making progress toward our goals… I’ve learned a few valuable lessons, including my personal shortcomings as a designer, programmer, manager, student, friend, and husband.
I’m using XUL, jQuery, PHP, and MySQL for the beta development. I chose jQuery mostly because our Digital Library Team here at Indiana University have some experience with this javascript library and are using it on a few other projects. I would consider myself an expert with PHP, so that was a no-brainer. I am at an almost expert level with both MySQL and PostgreSQL, so either database backend would suffice. The XUL development choice comes from the fact that we are prototyping the annotation tool as a Firefox extension. This part of the project has been the most frustrating and annoying, yet I’ve managed to get something working and we are moving forward now at a pretty good pace. Now if you go looking for Firefox extension tutorials, you’ll be in luck because Mozilla finally got their act together and created a developer hub! Finally! This is very frustrating because it has come about 2 years too late for me…
Now I am going to start posting pointers from my own experience with this development life cycle. I will post links to some tutorials, some hacks, a few scripts, and other materials that helped me along the way. But maybe you won’t need them with this fancy, new dev center!