Sunday, August 15, 2010

Switched to WordPress

I have switched my blogging activities to WordPress, which is a much better tool. It is mostly a set of .php scripts which can be modified locally and uploaded, so it provides a good sense of control. It also has a lot more features and a larger user base than Thinga.

Thank you for reading this blog. It is no longer relevant, so I will not be posting to it any longer.

Friday, August 13, 2010

Thingamablog is Dead

Update Aug 14, 2010 14:36
This blog is now dead. Thingamablog has stopped working.
It appears that my database has been clobbered
and Thingamablog has become useless. Go figure.

I think that Thingamablog is dead. Here is why:

  • There is nothing on the forum any more but SPAM.
  • Bob has abandoned the project again. He has not corresponded since January 2010.
  • The latest version of Thingamablog is full of show stopper bugs (it hangs on upload).
  • The "open source" version does not contain all of the source code.
  • One of the moderators deletes every post that I add to the forum, regardless of its content (an infantile act).

I have been a strong supporter of Thingamablog for quite a while now, but I have given up. It is totally unsupported, buggy code being touted by churlish gerns.

So don't be surprised if Thingamablog goes away entirely soon. A lot of users have bailed out in frustration.

Ironically, I am still using it to post my own blogs, but I am looking for alternatives. Perhaps I will create one.

Posted by Brian S. Kimerer at 8:09 PM

Tuesday, July 20, 2010

Forum is Down

I just tried to look at the Thingamablog forum to see what is going on. All I get is a 500 error and a 404. I guess the Thingamablog forum is gone again.

This blog tool appears to be dead and abandoned.

Edit: Oops. It's back up.

Posted by Brian S. Kimerer at 8:29 PM
Edited on: Tuesday, July 20, 2010 10:59 PM

Friday, July 16, 2010

Open Source?

Q: When is Open Source not Open Source?

A: When some of the source code is not delivered.

There have been questions arising from the user base about why Thingamablog 1.5 was not delivered Open Source. Version 1.1 was open source. Bob decided to keep the source code proprietary for that version. We have not received an answer for why he did that other that "That is the way it is".

Since Bob has abandoned the program again, and it has some show stopper bugs in it now (it freezes when you try to upload the blog), the 1.5 version has become unusable for some people. Bob is not answering any queries about the bug. Since the code is not open source, the user community has no way to fix the problem either.

"Thank goodness I stayed with version 1.1b6", I said, "which was Open Source"! So I opened up some source files to see if it would be worthwhile to carry this tool forward in the future. Here is what I discovered.

I opened up the file (since that seems to be really slow and I thought I could speed it up) to see if I could puzzle out how it works. That is when I found this in the file:

import net.atlanticbb.tantlinger.i18n.I18n;
import net.atlanticbb.tantlinger.ui.UIUtils;
import net.atlanticbb.tantlinger.ui.text.CompoundUndoManager;
import net.atlanticbb.tantlinger.ui.text.IndentationFilter;
import net.atlanticbb.tantlinger.ui.text.SourceCodeEditor;

The editor is using those other classes, such as SourceCodeEditor to do the real work.

The HTMLEditor uses a bunch of classes in the directory, "net.atlanticbb.tantlinger.ui.text", and that directory is not in the source tree. It must have been written by Bob because it has his name all over it. The classes are not in the Java class library. So I went looking for these critical classes in Thingamablog and finally found them in the file


Those classes have been delivered pre-compiled and in a jar file full of compiled classes.

There is no source code for those files in the source tree. Hence, if you want to extend/modify/fix/improve the part of the program that is coded in those files, you cannot. All we got were the binaries. So version 1.1 also was not really open source.

I think that it is a bit disingenuous to call a program "Open Source" and then not deliver all of the source code, locking up critical parts it as proprietary.

Posted by Brian S. Kimerer at 8:19 PM

Saturday, July 03, 2010

Thingamablog From Source

This blog is written using Thingamablog 1.1b6. I did not upgrade to TAMB 1.5 because of the many problems others are having with it. The source code for 1.5 has not been released, but the source for 1.1b6 is still available. I am more comfortable with the program knowing that I can build it from source.

Building Thingamablog from source is actually pretty easy. Download the source code from here:


The code is in a zip file. Put the zip file into a directory and unzip it. Then, in a command line window, cd to the directory "thingamablog-1.1b6" and type "ant". Ant is the build tool used to build TAMB. Ant will compile and package Thingamablog for you automatically.

If the computer tells you that it doesn't know what ant is, download it from here: 

Ant runs on Windows, Linux and MacOSX ( and some others).

You also need the Java JDK, which contains the Java compiler used by ant. You can get the Java JDK here: 

Posted by Brian S. Kimerer at 11:06 PM

Saturday, June 19, 2010

Bob Is Missing

Our leader and the creator of Thingamablog is missing. We have not heard from him since January. If anybody out there has seen Bob, please notify the Thingamablog Forum:

Thingamablog Forum 

Thank you for your support.

Posted by Brian S. Kimerer at 9:12 PM

Wednesday, June 16, 2010

Why I Like TAMB

I recently ran into a web site that had directions on it for how to delete your account on various social networking sites, facebook, twitter, wordpress... The procedures are surprisingly complex, and with no guarantee of success. In some cases, the word "impossible" was used. Once you post a "mistake" out on those servers, it is permanent. The teens of the world are finding this out the hard way, posting naked photos and incendiary language.

A couple of weeks ago I created a post to my other blog that I decided I did not want to keep. There was nothing really wrong with it, I just didn't like it. I backed it up (in case I changed my mind later), deleted it from the TAMB database, and reposted. Just to be sure, I used Filezilla to remove any zombie entry files out on my server. Voilà. Gone! Sure, it may still be in the Google cache, but I doubt it. It wasn't out there long enough for that slow 'bot to find it.

This is what I like about TAMB. The results are in my control. If I want it there, it's there. When I want it gone, it's gone.

Posted by Brian S. Kimerer at 7:04 PM

Saturday, June 05, 2010

Formatting Issue

I just noticed something interesting. I had a sentence that was all in bold. When I ran spell check it found a misspelled word in the sentence, so I let the spell checker correct the word. After I posted the blog entry, the corrected word was no longer bold. TAMB had broken up the bold tag to surround the words previous to the corrected word and the words after it, leaving out the corrected word.

Strange behavior.

Posted by Brian S. Kimerer at 11:30 PM

Thursday, May 27, 2010

Not Blogging Here Much

I have been very derelict in adding to this blog. The issue is that TAMB is working OK for me now so I am spending my time using it instead of figuring it out.

If Bob releases the source code for TAMB 1.5 I might consider upgrading and posting the results here.

Posted by Brian S. Kimerer at 11:04 PM

Thursday, March 25, 2010

All Quiet

I haven't been blogging on this site for a while. That's because Thingamablog is cranking right along doing its thing, so there isn't much to blog about here. Check out my other blog.

Nothing Happens At Ten 

Posted by Brian S. Kimerer at 10:55 PM

Sunday, January 10, 2010

Home Grown Comments for TAMB

I have implemented comments in my blog "Nothing Happens At Ten". I did this myself in order to keep control of the code that is running on my web page. It also was an interesting programming challenge to solve. I did not write all of the code I used, but I did make some significant changes to the code that I downloaded.

The blog pages must be published as .php files for this to work because the comments feature is written in php, and the server needs to see the .php suffix in order to know that the pages are really php programs.

This is a long and detailed post because it contains implementation details about how I did this. I hope you can find some useful hints in here. If you are not interested in the details, feel free to press on to more interesting matters.

To get the requisite files uploaded, import the following files into the TAMB blog web folder:

  • 1.gdf
  • 1.ttf
  • 2.gdf
  • 2.ttf
  • 3.gdf
  • 3.ttf
  • 4.ttf
  • captcha.form.php5
  • captcha.function.php5
  • captcha.image.php5
  • comments.php
  • protected.png

They will be uploaded to the root of the blog directory structure when the blog is published.

I have put the php code into some .txt files out on the server so that you can see what the code looks like. Your browser will display the contents of the .txt files instead of executing them. If you decide to use this, you must copy the code from the .txt files into files with the "php" and "php5" suffixes. Here are the files:





The ttf, gdf and png files are support files required by the Captcha code. They are available from TheCAPTCHA (a link is provided below). You can also get them from this web site through the links below:

1.gdf  1.ttf  2.gdf  2.ttf  3.gdf  3.ttf  4.ttf  protected.png 

My comments feature was put together from two different sources, which I merged, writing some php code to make them work together. The two sources are

1). a simple commenting system from the following site:

Notes From James


2). the code to generate a Captcha image from the following site:


I did some major modifications to the files to get both of the features to work together seamlessly. I modified comments.php from James to post the captcha.form, and I modified the captcha.form from TheCAPTCHA to save the comments in local files as well as emailing the results to me.

Here is how it works.

The file "comments.php" is included in the TAMB template files using a normal php "include" command. It creates an "Add Comment" button on the blog pages. Each entry in the blog includes the code, so each entry has its own button. The button posts the blog entry name and the base address of the web page to the program "captcha.form", which creates a new web page into which the user can type the comment. Comments are stored in text files on the server. The files are named after the TAMB name for the entry, for example comments for entry 3 of the blog are contained in the file "e_3.txt".

To provide comments throughout the entire blog, I have included comments.php in the following tempates:

  • main.template
  • archive.template
  • category.template
  • entry.template

The index template and the feed template do not provide the ability to leave comments.

I have modified the program, captcha.form, to provide my own text and formatting to make it fit in with the rest of my blog. The form has input areas for the commenter's name, email and comment. It also calls the function "captcha.image" to generate a unique captcha image for the page. The commenter is required to correctly solve the captcha puzzle in order to submit the comment to the blog. This is to minimize spamming from bots, which have a hard time reading the captcha image.

The captcha.form includes the captcha.function file, which has the code to generate the captcha image and the code to verify that the commenter has entered the correct captcha word.

Got that?

OK. Here is the summary.

The TAMB template includes comments.php
    which displays the "Add Comment" button that posts to the program captcha.form
        which includes captcha.function and calls
            captcha.image to create the image and also calls
            captcha_verify_word() to verify the user's best guess of the characters in the image.

The captcha.form posts to itself, meaning that this is recursive code. When the program is entered, it decides based on a posted value of the argument called "initial", whether to process the posted comment or simply post the form.

The main button on the blog screen sets the initial value to true which causes the program to display the form and quit. The form itself does not post an initial value of true, which causes it to process the comment, flag errors and repost the form, or if there are no errors, to process the comment and post a "Thank You" page.

To implement my comments feature, I edited the templates and added the following code where the blog entries are found, just after the line which contains the <$CategoryLink$> tag. The differences in the code snippets are the number of relative directories it has to go up to find the php code.

main.template - front page

  $article="e" . "<$CurrentDate format="yyyy"$>". "_" . "<$EntryID$>";
  include 'comments.php';

archive.template - archive pages

  $article="e" . "<$CurrentDate format="yyyy"$>". "_" . "<$EntryID$>";
  include '../comments.php';

category.template - category pages

  $article="e" . "<$CurrentDate format="yyyy"$>". "_" . "<$EntryID$>";
  include '../comments.php';

entry.template - individual entry pages

  $article="e" . "<$CurrentDate format="yyyy"$>". "_" . "<$EntryID$>";
  include '../../../comments.php';

index.template - archive index page

The index template has no entries, so don't use comments.


Don't use comments in the feed template. RSS feed only.

Publish the blog, and the comments capability should be in place.

Posted by Brian S. Kimerer at 11:34 AM

We have had the pleasure of hosting 3,108 guests since this site was created on July 17, 2009.

This site and all of its contents are copyright Brian S. Kimerer 2009