Biggidy
Biggidy is the name I finally settled on for the software that powers this website. It consists of a bunch of datastructures to contain application logic, database abstraction classes, and servlets to interact with web browsers via HTTP. In the future, it will contain a webservices API and a GUI client to edit content.
Some notable features:
- Object oriented design - treats weblog posts as objects. Relationships between posts are maintained as object references.
- Database caching - after the application loads, the database is only queried to utilize its searching functionality, and as permanent storage.
- Conditional GET - if a resource hasn't changed since it was last viewed by a client, sends the browser an HTTP response indicating it should use the cached copy.
- Posts stored in an XML dialect and transformed to web browser compatible markup before being displayed. This means that changing the markup embedded within the content of the weblog is as easy as an XML transformation and extensible.
- XML nature of content also makes shortening it easier by avoiding unfinished tags. You have no idea how many times I've had to edit posts prior to this that had a tag cut off when only part of the post was displayed...
- More efficient hit counter - I know, it's lame, but worth mentioning. Holds the hit count in memory rather than reading/writing a database or file entry for each hit. Stores the number only so often and uses syncronized access when it happens to prevent exceptional conditions.
Source code coming soon when I've decided on an open source license and clean it up a little bit.

syndication
