So a couple of weekends ago, I did a thing. This thing I did probably destroyed any hope I had of being nominated for the Father of the Year award. What did I do? Well, I made my kids do “school” work not at school. Anddddd on a weekend. They almost lost their minds. It was Saturday and we had already sweated our faces off outside and they were trying to talk me into an experiment. What experiment you ask? How many hours of TV and games it would take for them to turn into literal couch potatoes. I stopped this preposterous proposition in its infancy in an attempt to earn the approval of the Golden Guild of Dads. (+1 Dad Point) So I suggested a creative writing exercise…but with a twist. Behold, the Story Generator! (tor) (tor) (tor) … (-1 Dad Point)

Yeah, my kids gave me the same look.

“Dad, that sounds like work,” one said.

“Father Todd. I’m pretty sure this kind of cruelty is illegal in the lower 48,” another insisted.

But did I care? Nay! I was ready to put those brains to work regardless of what day it was. My initial thought was to use a lot of ink and kill a lot of trees, but I decided against that and went the route of ones and zeroes instead. (+1 Dad Point)

\\\So I Was Thinking

The thought:

  • Get my offspring interested in coding.
  • Get my kids to think creatively.
  • Be cool. Be really cool.

Other than bullet #3, I had something brewing up top in the ol’ noggin. So I thought real hard and combined all of the gray matter I had into a plan. Let’s write a creative story for X amount of time! (-1 Dad Point)

As expected, the mob railed against the idea. But then I stepped up my game by changing the rules on them. Instead of writing for 10 minutes on any topic, I would add the twist of generating a plot based on their input. I would give them a location, some characters, a few objects, and a few actions and they would have to tie it all together in their story. (+5 Dad Points) At this point, the natives were intrigued by the fire I was wielding and they were curious enough to let me get close to them.

I continued to wow them by mirroring my display from my Microsoft Surface to the TV via the Amazon Fire TV Stick. (+2 Dad Points) Next, I opened up Visual Studio Code and together we started making up so much stuff we would have given Brian Williams a run for his money. After showing them how a variable worked, I introduced an array. At this point I glanced over to make sure they hadn’t fallen asleep and to my amazement I hadn’t lost them… yet (+1 Dad Point).

\\\Arrays For Days


To kick this project off we started adding to our $People array first. My son strongly suggested every single Pokemon…twice, but I blocked it quicker than your Instagram requests to your IT Security team at your place of employment. (-3 Dad Points) Somehow 3 Pokemon related “people” still made it through but we kept going anyway.

$People = @('Astronaut','Mr. Cheese','Ash Ketchum','Pikachu','Eeveelution','George Washington','Howie','Martin Luther King Jr.','Mom','Dad','Grandpa','Teen Titans')

Next we traveled the world by moving on to our $Places array. My daughter is convinced she’s going to Tokyo any day now and told me she had to stop learning Spanish because she only had room for one foreign language in her life. You already know Tokyo made it on the list. (+1 Dad Point)

$Places = @('Tokyo','New York City','Chuys','Taco Bell','Urban Air','Zion National Park','Eastside','Grand Canyon','Mars','The Moon','Pluto','Austin Memorial Library','Gas Station')

After going through cities, restaurants, recent trips, and celestial bodies, we moved on to $Incidents. The thought here was to present things that could happen in your story that would force you to think outside of the box. Well, things got weird and we obliterated any potential boxes that could hold us back. However, half way through this list I became concerned at the number of characters I was typing and its direct correlation to their attention spans. I looked over again for any signs of life and I almost lost them. (-1 Dad Point) To counter this, I quickly called them out by their full names to make sure they were participating and high-fived every idea…good or bad. (+1 Dad Point) The absurdity of some of their suggestions was almost too much but we kept going anyway.

$Incidents = @(<br /> 'Your mom sleeps in the bathroom',<br /> 'stub your toe',<br /> "eat Meme's famous ramen",<br /> 'jump off a roof',<br /> 'gets amnesia',<br /> 'feeds a baby',<br /> 'meets a secret agent',<br /> 'has a friend that is a talking marshmallow',<br /> 'sees Captain Underpants in the sky battling an egg salad sandwich',<br /> 'has a scar on face',<br /> 'dances with nachos',<br /> "doesn't speak English",<br /> 'runs a marathon',<br /> 'meets Abraham Lincoln',<br /> 'develops a time machine',<br /> 'is a spider battler',<br /> 'runs with their shoes untied'<br />)

$Objects was last and my kids were spamming me with more food items than the gas station has pop ups at the pump. (Oh you know what I’m talking about: would you like a car wash today? Have you signed up for Bonus rewards? Did you still want your gas? Would you like a receipt? What about your friend’s receipt?) I once again shut them down from listing all 7 things they’ve ever eaten in their lives. (-1 Dad Point) We were now finally finished with our arrays. It was time to Get-Random with it.

$Objects = @('burrito','barrier','ferrari','cougar','Xbox','rock','dog','cat','whoopie cushion','comic book','video game','action figure','frisbee','rope','refrigerator','anchor','pirate ship')

\\\Finishing Touches

Our Story Generator was coming along nicely but we had some decisions to make. They agreed to generating 2 people, 1 place, 3 incidents, and 3 objects for their story. I wasn’t sure where I was going with this so I called Get-Random in a string. If you want to be a bit cooler and get more style points, I would probably create a short loop to make sure there weren’t any duplicates chosen at random. This thought did cross my mind, but I thought I saw drool out of the corner of my eye and decided against it.

Last but not least, I let them pick the color of the output using the -ForegroundColor parameter in Write-Host and they were delighted. (+2 Dad Points) The only thing left to do was fire up the Story Generator! But before we could do that my daughter informed me how uncool the filename was. I looked at her in the most offended way possible but the banshee stole the keyboard from me and changed “Story Generator” to something much more hip:


<sigh> (-3 Dad Points)

St0ryG3n3r@t0r Code
$People = @('Astronaut','Mr. Cheese','Ash Ketchum','Pikachu','Eeveelution','George Washington','Howie','Martin Luther King Jr.','Mom','Dad','Grandpa','Teen Titans')
$Places = @('Tokyo','New York City','Chuys','Taco Bell','Urban Air','Zion National Park','Eastside','Grand Canyon','Mars','The Moon','Pluto','Austin Memorial Library','Gas Station')
$Incidents =@(
    'Your mom sleeps in the bathroom',
    'stub your toe',
    "eat Meme's famous ramen",
    'jump off a roof',
    'gets amnesia',
    'feeds a baby',
    'meets a secret agent',
    'has a friend that is a talking marshmallow',
    'sees Captain Underpants in the sky battling a egg salad sandwich',
    'has a scar on face',
    'dances with nachos',
    "doesn't speak English",
    'runs a marathon',
    'meets Abraham Lincoln',
    'develops a time machine',
    'is a spider battler',
    'runs with their shoes untied'
$Objects = @('burrito','barrier','ferrari','cougar','Xbox','rock','dog','cat','whoopie cushion','comic book','video game','action figure','frisbee','rope','refrigerator','anchor','pirate ship')

$2People = "$(Get-Random $People), $(Get-Random $People)"
$1Place = Get-Random $Places
$3Incidents = "$(Get-Random $Incidents), $(Get-Random $Incidents), $(Get-Random $Incidents)"
$3Objects = "$(Get-Random $Objects), $(Get-Random $Objects), $(Get-Random $Objects)"
write-host $2People -foregroundcolor magenta
write-host $1Place -foregroundcolor red
write-host -foregroundcolor green $3Incidents
write-host -foregroundcolor yellow $3Objects


The first story generated from the Story Generator was:
People: Dad, Teen Titans
Place: Zion National Park
Incidents: meets Abraham Lincoln, has a scar on face, jump off a roof
Objects: cat, Xbox, barrier

As the kiddos read though the output, there were big smiles on their faces. I could almost see the hamster wheels spinning in their heads. Before we started actually writing we started a 15 minute timer and played some chill instrumental music to set the mood. Here’s what we came up with:

Once upon a time, there was a little boy named Robin. Well, actually, his name was Bartholemew Valdis Giranium de la Cruz the III, but even his parents regretted making his name so long. His dad was the main one who was in love with his name and thought it set him up for having distinguished character. He always told Robin about the time he met Abraham Lincoln, but the entire family was certain that the story was embellished…especially when his dad mentioned they had matching scars from jumping off a roof. Anndddd the fact that Abraham Lincoln had died before his dad was even born. That was the dead giveaway…pun intended of course.

Today was a great day because it was the day they were traveling to Zion National Park. The entire family was going including Robin’s grandparents and even their cat, sir fluffsalot. Robin had asked his mom if he could bring the essentials…like his Xbox, but his mother gave him a look that said it all. No Xbox on this trip that’s for sure. As they approached the Utah border, there was loads of traffic. As they came to a crawl, they saw there was a barrier keeping them from crossing the border. Robin’s dad got out of the car and saw that there was a sign on the barrier that said, “Official Teen Titan Business Yo.” He scoffed at the inconvenience of it and went back to the car disgruntled and mumbling under his breath. When he opened the car, he noticed Robin was missing from the car…

“ROBINNNNN!!” mom and dad shouted at the top of their lungs. But he was nowhere to be found.

“Sorry I’m late guys!” Robin was just beginning to explain why he was late but the Teen Titans were giving him smug grins and shifty eyes.

“Robin, you’re always running late and you always have some kind of excuse. Where’ve you been bro?” asked Cyborg.

“Yeah R! Where you be?” inquired Beast Boy. “We’s been waiting for dayyyss!”

“We are delighted that you have decided to join us!” Exclaimed Starfire with a little too much glee.

“Can we go already? Slade’s latest diabolic plot is to literally prevent everybody from going into the Park and having a good time. Pure evil.” explained Raven.

“Let’s do this gang!” Robin yelled as they rushed in to take on Deathstroke.

\\\But Wait, There’s More!

After we read our stories out loud, we laughed and high fived each other. (+5 Dad Points) I then said, “For our next story…” which had mixed reactions to be fair. One kid was ecstatic and the other distraught. But I didn’t care! Mwahaha! (-10 Dad Points)

Story Generator Round 2:
People: Pikachu, Martin Luther King Jr.
Place: Chuy’s
Incidents: develops a time machine, has a friend that is a talking marshmallow, feeds a baby
Objects: anchor, rope, comic book

And here’s what we came up with:

Have you ever eaten marshmallows? The answer is probably a yes, but the more important question is…have you ever had a friend who is a talking marshmallow???

It all started one day at Chuy’s, which was the Willett’s favorite place to eat. The creamy jalapeno dip was enough to make you go crazy with pure delight. If you’ve never been to Chuy’s, they have all kinds of crazy things like Pikachu t-shirts and portraits of famous people like Elvis Presley and Martin Luther King Jr. Well, going back to that insane day where it all began, our waitress, Bethany, told us about a friend of a friend of an acquaintence of a friend who developed a time machine. Mom was trying to feed the baby, but Oli wasn’t having it and was screaming it at the top of his lungs. These high-pitched shrills were making it hard to hear what Bethany was saying so we thought she said she had a friend who had a lime disease instead of time machine. After asking her to repeat herself she confirmed that it was indeed a time machine.

What did you say? asked Dad. What do you mean when you say time machine? Is that code talk for some new food item on the menu?

Haha! No silly, I mean a literal time machine of course.

Dad was confused why a time machine would have been so obvious, but she then proceeded to tell them a story. The story went like this:

It all started when the friend was experimenting with an anchor, trying to fluctuate the ion capacitor to match the bouyency of the anchor in a boat tied with rope to adjust the flux degiberator. All of this seemed like nonsense, until he realized the calibration was only slightly off and after one minor adjustment, BOOM! Time machine baby!

Mom interrupted…”Oh come one! You made all of that up! That didn’t happen!”

Bethany was taken back and aghast at the disbelief. “Uhhhuh!” she barked in the most mature way she could.

She continued with the story: After the time machine was built, my friend of a friend of an acquaintance of a friend decided to test it out.

Karter shouted, “Did they go back in time and see dinosaurs!”

Kingslee added, “Did they go back and fix my quesadilla!” Apparently it had mixed cheese instead of white cheese. Wow.

“Um, no sillies” said Bethany. “They went to the future of course!”

“And what did he see?” inquired Dad.

Just then, Bethany’s face had a serious demeanor overtake her bubbly personality and she became very, very focused. You could tell she was intensely remembering what the future was like.

“I….I….” she stumbled over her words.

“Tell us!” screamed Dad.

“There was….oh, how do I even say it?”

“YES, TELL US!” shouted Mom!

Finally, she said, “there are friends in the future. Friends who are talking marshmallows and they read comic books.”

Nobody said a thing.

\\\Nailed It

All in all, they loved it and one sub ten-year-old polled actually wanted to do it again the next day. After such a strong display of fatherhood, I was adored by all of the children and they voted me in as their papa for 4 more years. Take it from one cool dad to another cool parent, grandparent, person: Do this with your kids (or yourself) with or without code and share your story!

Total Dad Points


Nested AD Managers (PowerShell)

So I had a somewhat odd request (isn't that how all truly great stories start) a long time ago in an IT galaxy far, far away. And it went something like this: we want to email an employee and CC their manager, but if their manager is inactive (took a one-way trip to...

6 Things I Wish I Had Known About PowerShell

About a hundred years ago when I stopped riding dinosaurs to work and started learning PowerShell, I struggled to know what to learn first and where to even begin. That blue box with white writing was intimidating to say the least. I finally worked up the courage to...

Index Scripts for Windows Search

So you just finished writing some code and you go to save your file. You summarize all of the important aspects this section of code contains into a nice, easy-to-read file name that your future self will immediately recognize. Fast forward to the future where you...

Array vs ArrayList (PowerShell)

For some tasks in life, being precise is a necessity. But most of us get away with rounding, paraphrasing, and hitting in the general vicinity most of the time. Depending on your personality, you may be one who strives for perfection and strains on every miniscule...

Spice Up HTML Emails with PowerShell – Part III

So far in this series we've fumbled our way around the kitchen and tried to wing it when sending HTML emails with PowerShell. It was clunky to say the least. We then went through our spice rack and built an HTML template, highlighting the nuances of each spicy element...