Java-based desktop blogging system

Instant Gossip

To run the more popular blog systems, you need a powerful server and a smattering of know-how. Thingamablog is easy as child's play with a simple web server and FTP access.

By Falko Benthin

Weblogs are still extremely popular. If you want to set up your own system, you typically need a powerful server. The major blog systems with household names nearly all rely on PHP, Python, or Java and a database. Thingamablog [1] does things differently: Targeted at non-techies, this desktop application is happy with a web server and (S)FTP access. The tool organizes postings as static HTML files. When you create an entry or modify an existing one, Thingamablog simply writes the new data to the server.

The standalone blogging program, written in Java, is the brainchild of Bob Tantlinger, who promises his application will have even the most inexperienced of users producing results within minutes. If needed, Thingamablog can manage multiple blogs; you can compose offline and post by clicking. An integrated feedreader gathers news, and you can import postings via mail; templates let you customize the whole thing. See the "Installation" box for instructions on how to load the software onto your disk.

Thanks to a wizard that prompts you for the few parameters it needs, the software is easy to set up (Figure 1). When you are done, there is nothing to stop you from posting your first entry: Click Create a new Weblog to start. This action takes you to another wizard that makes the process as pleasant and simple as possible. The first step is to enter the URL and basic path for your new web presence; the basic path points to the user's webspace on the web server.

Figure 1: Easy dialogs make setting up a new blog child's play.

In the dialogs that follow, the Thingamablog wizard prompts you for a title and description, authors, categories, a topic, and the credentials for your (S)FTP connection to the server, but don't worry, you can modify or add settings later. After providing these details, just click Publish the weblog or the matching icon to do so. The Tasks tab keeps you up to date with the progress and success of individual actions (Figure 2).

Figure 2: Thingamablog lists the waiting tasks and gives you a progress update.

New blog entries are just as easily created as a new blog. Clicking opens a window with a WYSIWYG editor in which you can compose your posting (Figure 3). Experienced users who are not happy with the editor's feature set can access the HTML code directly, if needed (Figure 4).

Figure 3: Creating new entries in the WYSIWYG editor.

Figure 4: If necessary, you can edit the HTML directly.

Besides the title and text, you can optionally supply keywords and a description that Thingamablog will use for the HTML metatags Keywords and Description. If needed, you can put the posting into temporary storage (Post) or publish immediately (Post & Publish).

On the right, you might have noticed the Labels and Extra Fields items. Extra fields add a new field to a blog entry, assuming the theme supports this functionality. Because extra fields appear as normal paragraphs in the blog entry, I'm not quite sure what to use them for.

Labels help organize how the entries are displayed. For example, if you have a topnews label, an entry like that in Listing 1 in your Front Page template would publish any entries with that label on your front page. Besides labels, a bunch of other keywords are available to help you structure your content, which you can find out about from Thingamablog Help.

Listing 1: Using Labels
01 <h1>Topnews</h1>
02 <Entries label="topnews">
03   ...
04 </Entries>

Thingamablog is easily downloaded [2] and installed. If you use an RPM- or DEB-based distribution, simply use the package manager to set up the program. If not, you just need to unpack the ZIP archive. The software requires Java 1.6 [3] or newer, which is typically supplied by most recent distributions. After completing the install, Thingamablog normally appears in your desktop environment menu. If not, you can launch it at the command line.


Out of the box, a blog created with Thingamablog works just fine. Anybody who has ever heard of search engine optimization will immediate understand that a URI such as /archives/2010/03/entry_0.html isn't likely to get you a good ranking. To integrate the page title into the identifier resource, you should look for the Use entry title as filename option in Settings | Entry Pages to help you make the URI more search engine-friendly. The Categories and Archive sections give you more customization options if needed.

If you want to know which pages are most popular with your readers, you will probably want to use Google Analytics. The JavaScript snippets that Google gives website owners to help them evaluate visitor behavior are easily integrated into the Thingamablog template pages. And once integrated, they appear automatically in future postings. To use them with older postings, you will need to Republish the entire weblog.

The desktop blogging system stores individual posts in a local HSQL database before generating the HTML structure from it. Although you don't need PHP or a full-fledged database on the server, and although it is easy to back up the local database, this approach does have a couple of drawbacks. For example, you can only position entries from a single machine, unless you carry your whole Thingamablog directory around with you on an external storage medium. If multiple authors write entries and each one of them has local files on their computer, inconsistencies are just around the corner.

Import via Email

Thingamablog offers a function that lets you import postings from email messages. To allow this to happen, you need to set up access to the mail account to which the posts will be mailed in Configure | Post from Email (Figure 5). Either Thingamablog automatically checks this account at predefined intervals, or you can click to make it check the account.

Figure 5: Posting from email messages.

The system uses a keyword that you can define (it defaults to POST) as a trigger to identify email as a post and to parse the message. The keyword must occur in the subject line of the mail, followed by the categories and the title of the posting (e.g., POST in Tough Luck: No noise, it's fantastic). The body of the mail contains the content of the post with various details enclosed in various tags (Listing 2).

Listing 2: Email Tags
01 $body_start$
02 Lorem ipsum est ne esse porro facilisi, ... .
03 $body_end$
05 $extra1_start$
06 No extra work round one
07 $extra1_end$
09 $extra2_start$
10 No extra work round two
11 $extra2_end$
13 $description_start$
14 The baby's asleep, fantastic
15 $description_end$
17 $keywords_start$
18 Baby, sleep
19 $keywords_end$

As soon as you import a posting that you mailed, Thingamablog publishes it immediately, providing a convenient approach for multiple authors to contribute to the blog from different machines. The software identifies the authors by reference to the sender address entry in the mail. If Thingamablog fails to find an matching entry for the author, it assumes the first author on the list. To manage multiple weblogs with Thingamablog, you need either different mail accounts or different keywords.

Once you post something new, you probably want to tell the whole world about it. Many blog systems use what is loosely referred to as a ping service to inform other services of new articles via defined interfaces. If needed, Thingamablog also communicates with ping services [4]; however, this function is disabled by default. To change the default, go to Configure | Ping Services, enter ping services, and enable the ones you want to use later in Blog | Ping Services.

If a disk crash destroys your Thingamablog database, you are in for a hard time: The tool lacks a function to reconstruct the data from published postings. In other words, it's up to you to back up your data. Thingamablog will help by creating a timestamped ZIP archive when you quit the program. For this to happen, go to Tools | Profile Backup Settings and create and enable the required settings.


Thingamablog is an interesting option for users who don't want to worry about mastering one of the major blog systems and want to use the blog on their own or with just one or two other authors. Setup is easy, and themes help you customize the design and perform search engine optimization. Because Thingamablog generates HTML files, the server doesn't need CGI support or a database management system, which lets you run it on the cheap in webspace.

Thingamablog doesn't include features for comments or plugins, which could prove to be a disadvantage for some. If you can't do without them, you will need to use third-party products - the FAQ on the homepage shows you where to look. If you are willing to accept the few drawbacks that Thingamablog has, you get a blogging engine that does everything it needs to do to help you publish your ideas and thoughts at lightning speed on the web.

[1] Thingamablog:
[2] Download:
[3] Java:
[4] Ping services: