Profit from Penny Stocks. Learn from a millionaire who shares everything!

Matrioshka Bugs

An old saying I learned in search and rescue work is:

You can't be part of the solution if you become part of the problem

In other words, be careful when you are trying to help. If a policeman is speeding too fast around a corner while he is racing with his lights and siren blaring, and ends up getting in an accident and disables his car, he's become a problem. When I have done radio operations at a search and rescue base, I had to keep track of the whereabouts of all the different search groups. The thing I feared most was losing contact with one of the search groups, and having to inform my commander that we needed to start a search within a search. When these kinds of things happen, they are almost always the result of lack of preparation or carelessness.

So when I am on the track of one bug or problem, nothing aggravates me more than discovering some problem in another tool I am trying to use to solve the first problem, or worse yet, a third problem while I still haven't dealt with the first two.

This situation of finding bugs within bugs reminds me of those Russian Nesting Dolls, or Matrioshka Dolls. I call this situation "Matrioshka Bugs".

  • I've had to include excerpts of this article in other Bobsgear spaces, such as here, because apparently the {excerpt-include} is unable to include content from a different space... - Garnet 4/23/2007

Matrioshka bugs are the reason why I frequently run into my system's limit of handling at most 25 open web pages in IE. I tried the Alexa plugin for a while, until I realized it was limiting me to 15 open windows, and I had to get rid of it! Ditto the latest google toolbar!

If the bugs were only two or three levels deep, I can usually handle that without frustration. But today I think I'm hitting maybe at least 10 layers of bugs interrupting bugs. Now that's ridiculous!

I ran into this problem today while I was trying to use the Wiki Patterns website. It is a great site with excellent ideas on how to encourage wiki use, and problems to avoid. It has a very nice custom theme, or site template. But as soon as I signed up for an account, I started finding problems. And finding them almost faster than I could write them down.

Trying to keep all the balls in the air...
I'm in the middle of trying to figure out one problem, and, wow, look, another problem! OK, lets see what was I doing to cause the third problem, and don't forget the steps for the first two problems!

My old boss, while interrupting me, put it best: The development process is often like a juggling act....

Of course he continued interrupting my work....

Dang, I just found another one, in the wiki software here on this page! Just for fun, here is a snapshot of what I'm trying to do right now:

What I started out to accomplish today...
I decide I need to get busy and develop my first plugin for Confluence for their CodeGeist contest.

So I start trying to setup a development environment.

  1. I run into several problems, including lack of the files needed to make an Idea project file. BTW, just setting up the development environment caused me to run into several problems which I am waiting on solutions for.
    1. BTW, I probably hit that problem with the project file because I don't have the access I'm supposed to have to the source. Someone mixed up the licensing for one of my clients blocking me from source code access, forcing me to try using just the executable non-source distribution that the wiki tire-kickers are blessed with until they become a customer.
  2. So now I have to figure out how to build a plugin without benefit of the IDEA IDE. I document my initial failures with my hunch that Ant is what I should use. I finally figure out some undocumented steps to make Ant build a plugin. I figure out how to make it work, then, despite the lack of documentation or a readme, I figure out how to embed it in a wiki page and I see my first product link. Woohoo!
  3. Now I'm looking closer at their Amazon sample, and I find that it is broke ($product.url instead of the actual url to link to the product.) I start thinking about an [article on how to fix the Amazon Web plugin].
  4. So I'm trying to learn the uncommented source code of the example well enough to document the steps to fix that Amazon plug-in bug.
  5. As I'm doing this, I realize that the documentation I've written on steps to setup the development environment, and figuring out how to build the plugins, and test the plugins, the problems I've run into, the questions I've asked, links to where I'm waiting on someone to answer those comments, all the other notes I've been taken about these things, they are a Development Diary. So I make a page about the development diary, move these notes under it. Then decide to go to Wiki Patterns to see if they have a developer diary pattern there.
  6. Nothing seems to cover that, so I register an account over on Wiki Patterns so I can contribute. Before I contribute, I create a personal space to use for refining my idea. Immediately I run into a problem there: Where's the edit button?
  7. Before long I've got list of 5 problems with the theme on the Wiki Patterns site. Their theme won't let me do a lot of things I am used to doing on wikis. These are all things I could normally easily do with a Confluence wiki. But on Wiki Patterns I can't, probably because someone didn't fully think through their great idea for a theme. So I stop, spent time trying to find solutions to the problems.
  8. While trying to figure out a clever way to edit my home page in spite of the missing button, it looks like I accidentally replaced the home page for the entire Wiki Patterns site in a way that may have accidentally erased the revision history for their home page. Ooops. Still have to document the steps for that bug, (quick note to self: try a template, rename, then save), then test them out somewhere else, and if it seems true, log a support incident.
  9. I start realizing I'm deep in the midst of a Matrioshka Bugs scenario. Time to start writing an article about it. Maybe it will help my non-programmer clients understand what my day is like and why sometimes it's hard to be cheerful about the telephone ringing in the middle of this kind of situation!
  10. I decide including an excerpt of this matrioshka bug would fit well at this spot in the developer diary. That's when I discover I can't use the {note}, {tip}, {warning} or other cool eye candy in the middle of an excerpt! Still have to send this bug to the wiki developers.
  11. While I'm deep inside this stack of bugs, and deep in the middle of trying to write this article about the situation, sure enough, my telephone starts ringng. Is it any wonder the last thing I want to do is answer the phone and hear "Honey, did you take out the trash?", or listen to some client wonder when I'll get to his project, which got delayed when the previous thing I was trying to do went overtime due to these matrioshka bugs?
  12. I decide it would be nice to attach a picture of the missing edit page button on Wiki Patterns. But I can't find a link to attachments on Wiki Patterns. Time to add another bug to that list.
  13. So now I definitely have to make a copy of my wiki patterns pages on my own wiki. But then I discover I can't attach and embed a screen shot that includes _ characters: Unable to render embedded object: File (wiki_patterns_personal_edit_button.jpg) not found. Still have to send this bug to the wiki developers.

Is it any wonder that I started this process at 7am on this Sunday morning, and it is now 12 noon 2PM, and I still haven't been out of bed yet because of all these bugs! I'm ready for a nap!

So where am I at this point?

Scorecard Garnet vs. the Matrioshka Bugs
Finished Captured and documented a picture of juggling a whole nest of Matrioshka bugs.
Not Done Figure out how to use the fancy IDEA java IDE. (1 day of my free trial wasted)
Finished Successfully compiled my first example plugin for Confluence
Bug Undocumented example has bugs I need to fix, without a debugger or IDE.
Finished Made some cool notes to save time the next time I setup a development environment
Not done Contribute my first pattern to wiki patterns
Not done Figure out how to hack an edit to my personal space on Wiki Patterns
Not done Figure out which of these bugs need to be reported to Atlassian.
Not done Figure out if I've found a way to mess up wiki revision histories
Not done Document a bug about being in the middle of editing, losing internet connection long enough for session to time out, then clicking save, then being asked to login, and then being sent to a page that forgets the title of what I was editing....

Oh it's no use making this score card any longer. The bugs are winning!

OK, time to disturb my cats by getting out of bed, find my phone, and figure out which telemarketer, client, or SO (Sherriff's Office?), was trying to call me and interrupt my juggling act. Just another fun day in the wiki world of Garnet...

At least I can praise the Lord that my browser didn't crash while I was deep in the middle of this process. But just in case, where is that save button?

Other related pages:

Labels

quality quality Delete
development development Delete
assurance assurance Delete
juggling juggling Delete
bugs bugs Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Apr 22, 2007

    Anonymous says:

    Garnet, Thanks for pointing out these problems with Wikipatterns. Some of them ...

    Garnet,

    Thanks for pointing out these problems with Wikipatterns. Some of them have already been submitted to the theme developer to fix, and I've just now reported others, like the edit button not appearing in your personal profile. I didn't realize this was happening because the edit link does appear for me, which is likely because I have full admin permissions to the site. (The good news there is that this is probably just a permissions issue, and should be fixed within a few days, at most).

    Stewart 

Add Comment