From a Ramble to a Story

Earlier today, an aspiring speaker asked how to turn a 25 minute ramble, which he had already created, into a 10 minute story. By the way he asked, I could tell he knew it was about much more than shortening it; it was about giving it structure. He had a formless collection of ideas, and he wanted a work of art that could plug into the human mind and evoke change in the listener.

He may not have realized it, but he had actually taken the proper first step to write a story from scratch. Brainstorming is a useful first step in writing, no matter the project. His brainstorming just happened to be in spoken form. His intuition for the craft was excellent; he just needed a little information.

Here’s what I told him:

Decide what you message you want your story to have – what enemy you defeated, what lesson you learned, what change you made, or what have you. Choose the event from your ramble that serves as the hinge point of the conflict, lesson or change; that will be the turning point or climax of your story. Everything else in your story will support it.

Now choose the event in which you first meet the enemy or see the need for change, and put it first. Finally, choose several events between these two to illustrate the rising conflict, and make a mini-story from each one, relating them all to each other as you go along. This will be your basic story structure.

Once that is done, choose some descriptive elements to illustrate what life was like before the story begins and put those in an introduction, and likewise, choose some from after it ends for the wrap-up. This will show how the change has been fought for and achieved.

Now you have a hero’s journey, with stasis at the beginning, initiation into the “other” world with the first conflict, rising action building to a climax, resolution, and a higher level of stasis at the end. To see more, google “hero cycle” or “freytag’s pyramid.” Best of luck.

Toastmasters Club Officer Training for Secretary

Dear Fellow Toastmasters,

Here are the resources I showed and referred to in my Club Officer Training for the office of Secretary. If you have any questions or suggestions, please contact me at kelley nnn nospam at gmail dot com.

To find Club Central, log in at the Toastmasters International site, click the Menu button in the upper left hand corner, click “Leadership Central” in the drop down menu, then click on “Club Central” in the submenu. From there, you will be able to access your club’s administration page. You will also want to look at “Club Officer Tools”. There you will find resources such as an electronic copy of the Club Officer Handbook, and information about the Distinguished Club Program and Club Success Plan.

Club Leadership Handbook PDF (direct link)
Plain text template for minutes writeup – Windows version
Sample of written up minutes using the template – Windows version
Plain text template for minutes writeup – *nix version
Sample of written up minutes using the template – *nix version
Minutes taking cheat sheet from Tony DeLeon (MS Word file)
Minutes taking cheat sheet designed by me (Google Sheet)
Checkbox image used in the Google Sheets cheat sheet
Sample of minutes taken directly on agenda – front of sheet
Sample of minutes taken directly on agenda – back of sheet
Guide to the Secretary role from the Club Officer Handbook
The agenda and case studies from the session, including duties list (pdf file)
The agenda and case studies from the session, including duties list (Open Document Format file)
Sample spreadsheet to track your Club Success Plan
Free Toast Host for creating a home page for a club
Easy Speak for automating club administration
District 4 home page

To submit your club’s updated Officer list, go to

Good luck!

Trying Too Hard

In a post titled The Problem with the FizzBuzz Problem, Gayle Laakmann McDowell discussed the cognitive trap that a high performer can fall into when faced with a deceptively inelegant real world problem. She called it the “Smart Person’s Mirage.”

I was caught in this trap in an interview once myself. I was asked to write a function that took an integer parameter and wrote out an ascii art diamond pattern in the given size, like this:


The symmetry cried out to me. There must be some way, I was sure, to leverage it in both directions at once. It seemed like an affront to the concept of elegance if I didn’t! Also, there were so many options. Use a buffer, or several, or none? Make nested loops? How should an even parameter be handled?

In a matter of minutes, I had pieces of at least three conflicting solutions scattered all over the whiteboard. That was when the interviewer let me know that that was exactly what the question was designed to test for.

The way out of this failure mode is to not try too hard. As tempting as it is to write code poetry and dazzle my interviewer, the bottom line is that it’s not required. Moving forward with something, anything, that actually completes the task is. Optimizaton, neatness and elegance (and sometimes insight) can come later.

Inspired by Gayle’s post, I revisited the ascii art diamond problem. By letting go of finding a “perfect” solution, I came up with a workable one in a couple of minutes. Here it is in all its kludgy, messy glory.

    /* diamond.c
     * utility to take an integer on the command line and
     * output an ascii art diamond in that size made of splats
    #include <stdio.h>
    #include <string.h>
    #include <stdarg.h>
    #define MAX_DIMENSION 41
    int main (int argc, char **argv) {
    	char line[MAX_DIMENSION];
	static char on_char = '*';
	static char off_char = ' ';
	int dimension = DEFAULT_DIMENSION;
	int midpoint;
	int lineno = 1;
	int columnno = 1;
	int i, j;

	if (argc > 1) {
		dimension = atoi (argv[1]);
		/* even dimensions end up being treated as the
		 * next highest odd dimension (ex. 4 makes a 5x5)
    /*		if (dimension % 2 == 0)
			dimension += 1; */
		if (dimension > MAX_DIMENSION)
			dimension = DEFAULT_DIMENSION;

	memset (line, off_char, MAX_DIMENSION * sizeof (char));
	midpoint = dimension / 2 + 1;

	/* print top half of lines to midline */
	for (i = 0; i < midpoint; i++) {
		printf ("%s\n", line);
		line[midpoint - i] = on_char;
		line[midpoint + i] = on_char;
	/* print bottom lines */
	for (; i > -1; i--) {
		line[midpoint - i] = off_char;
		line[midpoint + i] = off_char;
		printf ("%s\n", line);
	return 0;

Public Speaking and Making Things Happen

Over the last year or so, I’ve spoken at SCaLE, OSCON, LinuxCon, and the Grace Hopper Celebration, as well as a slew of small local events and Toastmasters clubs. It often doesn’t seem like it, though. It seems like it happened in a fantasy. I have vivid memories of the train and plane rides, the hotel rooms, and sometimes, the expo halls. These haunt me. Less vivid are the memories of the post talk conversations, of looking out over rooms full of interested people, and especially, of connections with people who found my knowledge and perspective valuable. These are the memories that want to dissolve into my ever present mental fog unless I do the challenging emotional work to keep them fresh.

When looking back over what I learned, I wish I had some scintillating insight about speaking, about technology, or even about community to share. I wish I was advanced enough for that. What I actually did learn is something much more basic: that these things actually did happen. They were real, no matter what my avoidant selective memory wants to tell me; and I made them happen by learning and gaining skills, by being able to package and deliver knowledge to help others acquire those skills, and not to be minimized, by responding to calls for participation and catching my breath as I clicked the “Submit” button. I know intellectually that they happened. My current job is to learn it emotionally.

That’s why, as part of my visualization exercises, I’ve been letting those memories flood my internal monitor screen and saying to myself, “This happened. It was real. You made it happen. You had help from wonderful, supportive people who care about you. Still, it was you.” I’m learning to be with the cognitive dissonance surrounding those memories, and to sort out the clash of emotions that create it. Most of all, I’m learning to prevent my old self image from taking over and shutting down that active, ambitious, successful part of me. It’s uncomfortable. But ongoing failure and mediocrity is even more uncomfortable.

I did it. I made it happen, and I can make it and other things happen again, whenever I want. That is the lesson.