Movie Script

So, I came up with this concept several years ago when I was doing short films and decided I wanted to do a feature very loosely inspired by a very badly written book I read as a preteen that is not very well known that meant something to me. I call the movie “Dear Superman”

This post isn’t about the movie itself, it’s about the process of writing it. It’s a little meta to write a blog post about writing a movie but I find it odd and interesting how it’s worked and I hope my struggle to get my movie written will help those who are beating on themselves for their writing obstructions.

When I originally thought I was going to write a movie script I allowed the people around me to tell me all about the struggle and the right way to write scripts, I read blogs on the topic, and even entire books. Then I downloaded some free software for script writers that was supposed to help you manage the process and started using it, but that software actually became such a chore for me because the way scripts work were not second nature to me that it inhibited me to the point of frustration. But, like so many people in this type of position I shifted the blame of the frustration, don’t get me wrong, the tool was not to blame, it was my inexperience. But, I was blaming myself for not just getting the work done, saw myself as lazy and writers blockish, where really, my problem was that the tools were hindering more than helping.

Then I listened to Bart Gavigan‘s lectures on “The Structure of Film”, there was lots of good stuff in there and again I was so distracted by the mechanics I just wasn’t writing. So, I read a book on screen plays, and another, and another, and still didn’t write. I made a story board, with note cards with key points and put them in act 1, act 2, act 3, etc like one of the books suggested. I drew on mirrors to draw story arcs and I talked to friends but I didn’t write.

Then life happened and the project started collecting dust (much like my unfinished tabletop game that is in my office right now), until about 2 weeks ago when in the shower the morning after an ACA meeting this movie came up in my head (I’d always known the movie was about my own demons). In my sleep the night before I had solved a piece of the story that had perplexed me since the whole thing started, I had that critical argument that brings the climax of the movie. I wanted to write, but I wasn’t ready to face the tools.

So, I opened a google doc and started writing, no fancy tools, no special techniques, just a flow into the computer. It worked, I’m now writing my movie, it’s funny because the more I write the more fleshed out things get. The other thing I find odd is the way my natural behavior has been to write this. Allowing myself to just write whatever I want without rules knowing we can apply rules later I’ve been writing from the outside in. First Scene, and last scene, then second to last scene and second scene, some notes, and then more character development. Bart talks about “the desert” of the second act where a writer can get lost and viewers can get bored and I’m finding that for me, the way to write that second act is not from front to back but from front to back and back to front meeting in the middle. Had I been using some fancy tool I’d of never found that, but each piece chains this way.

Some times the best tools are the simplest.

A replacement for Facebook

I hear a lot of grumbling about facebook, my personal complain is actually with the sheer number of social media streams I want to look at not with facebook itself and with the inability to customize it, ok, and the fact that they keep changing my feed back to most popular instead of latest.

That being said, it’s very true that if you aren’t paying for the service then you are the product, and this is absolutely true of facebook, twitter, tumblr, instragram, yadda yadda….

Combine that with the fact that I’ve been thinking a whole lot lately about static content stored in dynamic mediums and how silly that is. For, example, this blog is a wordpress. I used wordpress pretty much out of laziness, I’ve had to set it up for customers enough times that I have a quick script and can get it up in 5 minutes and then have a content management tool. But, it’s stupid to use wordpress for this blog, there is NOTHING dynamic. The only thing that changes is the listing of new entries, and that only changes when I add an entry. So, why is this stored in a database with a query and processor used every time someone looks at a page? Well, simply put, it’s cheap db, and cheap processor, so who cares? Well, if you have a million users you all the sudden care. So, I’ve been toying with the idea of building a blogging tool that uses Amazon’s s3 to actually host the blog. For people who want easy content management but don’t need dynamic data.

So, I’m sure you read that whole paragraph and wondered what that had to do with facebook. The answer is that s3 is super cheap, and social media is really nothing but a specialized blog with much smaller posts. I think that if I were to build a wordpress replacement that wasn’t 100% dynamic then an easy setup script that lets people spin up their own aws accounts and for the first time own their own content might make some sense. With JavaScript and AJAX being so mature at this point most of your dynamic pieces can be lambda scripts.

What do you think? Is it worth writing a blog/socialmedia app that would be open source but you’d still have to pay a nominal fee to aws for hosting your content? But then you own the content?

btw: on the up swing of this, you can put rules on s3 buckets to put stuff in cold storage or even auto delete it after a designated amount of time

With the right hooks a program like this would integrate fine with all your current social media so your friends don’t have to move, but you could finally own your own social media space.

But, I’m not all that excited about building something like this if noone would ever use it.


What did you accomplish today?

I have a problem. It’s a problem of perception.

On most days I leave for work between 7:30 and 8am, on most days I get home from work about 12 hours later.

It is not uncommon (by my perception) to come home to my wife and teen still in their PJ’s and for me to feel like I worked all day so they could laze around.

I’m sure they did something, but I feel like an ass and frustrated and used and it comes out gruff when I try to say “Hey, I just spent an hour and a half of my day commuting, and 10 hours working, I know I work with computers so you must not think I work hard, but trust me I do. Why did you waste the gift I gave you of this day?”

My wife recently accused me of not having the same values as her and one of my first thoughts was “lucky for her that I don’t because my values include supporting my family”. This is not a constructive thought process.

All that being said, I recently learned about a form of emotional neglect that had never occurred to me. The act of withholding praise. For example, when child-of-mine made a short film for school I gave pointers on what could be done better next time rather than saying how awesome it was. I thought I was being supportive, I thought I was helping, I thought this was a growth opportunity. I was wrong. By not holding the presses and saying “great job” I denied my child the reward that was coming. In this way I’ve been a bad parent.

So, I want to institute a new policy in my family. A Daily ritual if you will. From now on I want each of us to be able to share at the end of the day with the others something they accomplished. The other people don’t need to understand the accomplishment (I don’t want to explain the ins and outs of distributed computing, and I sure don’t know anything about costuming or leather working) but when you say it you need to know it was an accomplishment you are proud of. I don’t care if it’s unloading the dish washer or writing a chapter in a book that you’ve been inspired to write, just be proud, and in turn, the rest of us should be ready to praise you for that which you are proud of.

I’m making this thought public because I want to encourage my friends and family to either tell me where I went wrong with this concept or to adopt it.

So, What did you accomplish today?

Dynamically Creating EC2 Instances

OK, I now have a Cloud Formation Template that creates a new server and runs my install scripts dynamically with the scripts being stored in an s3 bucked called qbsadmin


  "Resources": {
    "QBSDynamic": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
	"ImageId" : "ami-5189a661",
    "AvailabilityZone" : "us-west-2b",
    "ImageId" : "ami-5189a661",
    "InstanceType" : "t2.micro",
    "KeyName": "webmail",
    "Tags" : [
            {"Key" : "Name", "Value" : "qbsdynamic"}
    "NetworkInterfaces": [ {
      "AssociatePublicIpAddress": "true",
      "DeviceIndex": "0"
 	} ],
     "UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [
		"#!/bin/bash -vn",
		"apt-get --assume-yes updaten",
		"apt-get --assume-yes install python2.7n",
		"apt-get --assume-yes install python-pipn",
		"yes | pip install -U boton",
		"yes | pip install awsclin",
		"mkdir /root/.awsn",
		"echo '[default]' > /root/.aws/confign",
		"echo 'aws_access_key_id = XXXXUSERYOUROWNXXXX' >> /root/.aws/confign",
		"echo 'aws_secret_access_key = XXXUSEYOUROWNXXXXX' >> /root/.aws/confign",
                "echo 'region = us-west-2' >> /root/.aws/confign",
		"cd /rootn",
		"aws s3api get-object --bucket qbsadmin --key serversetup.shn",
		"chmod a+rx serversetup.shn",

This sets me up up to start using the get my own info script I wrote earlier just does a touch for now to prove it works so it’s not worth showing.

Getting the IP of a new EC2 Instance

Just a quick entry on my journey to using a more DevOps style approach in my AWS hosting vs the old one box to rule them all type approach.


My first challenge was to have a machine get all it’s own ec2 info, mainly because I want it to add itself to my domain as it comes up so it needs to know it’s IP.

At this point I have a simple script that just gets the information, but first you need to do a couple things:

  1. Make an IAM account in your aws

So, go to the aws console and login (I’m assuming if you are reading this you already have an aws account, if not they are easy to make). Click on “Identity & Access Management” (under “Security and Identity” about 2/3rds the way down in the middle column).

Under “Users” click “Create User”, give it a name like “getmyip” and make sure you save the key and the secret key it gives you (I used the name “serverautomation” because I might do more with it later).

Then you want to add a policy to the user. In the long run you should probably select a policy that is limited to just this job, but for now (while testing) I selected “Administrative Access” which is god powers.

Then, on your new machine you need to run these commands:

sudo apt-get update
sudo apt-get install python-pip
sudo pip install -U boto

I plan to put these commands and this following script into a cloud formation template, at this point the script only prints the info about the machine to the screen, but it gives you what you need to know the same information about your instance on boot:



import socket
import boto

hostname = socket.gethostname()
IP = socket.gethostbyname(hostname)
#print IP

from pprint import pprint
from boto import ec2

AWS_ACCESS_KEY_ID = 'shhhhh'

regions = ['us-east-1','us-west-1','us-west-2','eu-west-1','sa-east-1', 'ap-southeast-1','ap-southeast-2','ap-northeast-1']
region = 'us-west-2'
ec2conn = boto.ec2.connect_to_region(region,aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
#ec2conn = ec2.connection.EC2Connection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
reservations = ec2conn.get_all_instances()
instances = [i for r in reservations for i in r.instances]
for i in instances:
    #print i.private_ip_address
    if i.private_ip_address == IP:
        print i
        print i.ip_address

This is just the start, much more to do

A new Bird Stand

The Problem:

Birds are messy, and when I say birds are messy I don’t mean like didn’t pick up your toys messy like 7 year old, but more a “we evolved this way cooperatively to help spread fertilizer and seeds for trees so we are purposely messy. We shit everywhere and like to throw our food around.

So, for Crimson (our scarlet macaw) I needed a better solution.

Originally the cage had a tray in the bottom of it and we put paper in the cage but I found that in our busy lives changing paper tended to happen seldom, and we still ended up with stuff outside the cage so I had to lay plastic under the cage anyways.

Eventually I tried cat litter in the tray and in carefully positioned boxes (the crystal kind not the clay kind because of dust) but it was a difficult strategy game I was playing with the bird as she would try to poop outside the boxes and the cat would wander over and poop in the boxes.


Finally I just took out the tray and started changing the plastic from time to time, but this was a pain because we had to lift the cage off the plastic roll it up toss it and replace it.


See here in this picture my last attempt before this new solution:




2015-09-03 10.24.11




It’s a mess, it’s unsanitary, it stinks after a while, and most of all it’s a pain in the ass to deal with.

So, I broke down the problem here are my 3 primary points:

  1. Cleaning the cage needs to be easy so everyone in my family will do it and no one will put it off
  2. messes under, in, and near the cage are likely to be poop
  3. messes further from the cage are food pellets and other foraging activity easily picked up with a vacuum

The Solution:

So, for the Poop I found butcher paper, it comes in a roll from amazon. So, here is the thing, with this paper, if it was set up correctly we could change the paper every single day and still only need one roll a month. At $25 per roll and free shipping because of prime, that is less than a dollar per day to have my home be cleaner, not smell bad, and be more sanitary. A bargain.

2015-09-03 10.26.02


To pick up the pellets and such, a roomba found on amazon for about $250, the nice thing about the roomba is that it also helps us manage the never ending supply of dog hair that collects in the carpets, and again, in the interest of convenience I can just start the thing as I leave for work every day with the push of a button.

2015-09-03 10.25.44

So, I found the answer to 2 and 3 but not to 1. That first issue is the whole point of this post.




The Part of the Solution I couldn’t buy off the shelf:

First, I needed a plan, this plan had to make it easy for the paper to be changed and not interfere with the roomba. Here is my very technical and advanced blueprint for that plan:




2015-09-03 10.39.37





So, here is the plan (in case my chicken scratch isn’t obvious to you), build a stand where I can mount the roll of paper in the back, that holds the cage up off the paper, so I can pull it through and cut it off to change it. I figured that even the teen ager can’t complain about having to reach down, grab and end pull it, roll it up and cut it off. Simple right?


So, off to Home Depot to get the things we thought we needed to build this design:

2015-09-03 10.27.26

2015-09-03 10.27.32

2015-09-03 10.27.35

It is important to note here that when buying the wheels, I wanted to make them lockable, and tall enough the roomba could go under the thing. If I remember correctly I spent about $120 on parts at this point. I did have Home Depot pre cut all my wood to the measurements I figured out on that paper above to save me dealing with the saw I didn’t own (because I gave all my tools to my brother when I moved to California from MN and haven’t replaced it).

Then I built the base, this thing had to be strong enough to hold the cage and me if I stood on it to reach the top of the cage. It’s quarter inch plywood on top of 2x4s cut down to size. (Lucky for me my landlord had a power drill I could borrow). I reinforced one edge of the plywood with 2×4 and then cross braced across them from the other side…. this might have been overkill but it was only a couple bucks extra and I want this things solid.

2015-09-03 10.32.00  2015-09-03 10.45.21 2015-09-03 10.47.41


So, note here, I figured out where my cross pipes were going to go and put some little wedges in between the cross boards for me to bolt those down. These photos are just where we were figuring out measurements to make sure it was going to work. As a side note when scratching this all out in my head (and a little on paper) I didn’t account for the width of the wall mounts for the pipes in my measurements, so there is a little bit of that peaking out.

Also, see that extendable rod laying there, that was meant to be the pole that went into the roll of paper to hold it, that didn’t work out for us, it was too thick, had to bring it back, but you will see how that ended up in the end.



2015-09-03 10.48.47 2015-09-03 10.48.52 2015-09-03 10.48.55

So, lets get real about this, it’s going in my living room, and raw wood looks like crap, so we used some of the butcher paper and spray painted the thing black, because black goes with everything. And, when I say _I_ painted it I mean Lyndsay (my wife) painted it while I was at work.




2015-09-03 10.51.32 2015-09-03 10.52.42

Once painted I attached the wheels at the corners where we are going into two criss crossing 2x4s to make sure the attachment is solid. I eyeballed it for measurements, turned out ok.



2015-09-06 13.01.03


Then there was the first pipe, this is the place where I had to finally accept that the wall mount was going to stick out a little bit.


2015-09-06 13.06.20 2015-09-06 13.06.25

Second pipe, now we can actually hold a cage!

2015-09-06 13.11.04 2015-09-06 13.11.11

Lastly comes the oh so complex process of building a holder for the rod that will hold the paper. There was a lot of messing around here. I ended up getting a closet rod holder and matching it to a wall mount for a pipe (notice I had to switch pipe types so the holes would match up) then built two ends.

The idea is that one end of the rod can go into the black one, and the other end can rest in the U shape on the silver one, they aren’t perfectly the same height but over the distance I didn’t think the angle would hurt much.

2015-09-06 14.00.24
2015-09-06 14.00.312015-09-06 14.00.42
2015-09-06 13.14.35

So, I put together my paper holder, and then mounted it.


2015-09-06 13.58.22 2015-09-06 14.00.04   2015-09-06 14.01.20 2015-09-06 14.00.12

LOOK AT THAT! How awesome is it that the rod fits in there and everything?


2015-09-06 14.02.03

Sadly, like I said, earlier, the rod was too thick for the hole in the paper, so that was a fail, I measured the distance, went back to Home Depot and got a rod that was the right length and width but that ended up being a fail too. It turns out that the old adage of “measure twice cut once” is very important, the gap between the two holders is slightly shorter than the width of the roll of paper because I didn’t account for the turn in the pipes. So, in the end the rod holder would just keep the roll from coming off the back of the stand. Maybe some day I’ll guy buy a 2×4 the right length, paint it black, pull these things off and remount them so the paper can be suspended but for now, they are working for me.

Also note here, I took the wheels (which were those sucky ball wheels that come on 1970’s office chairs) off the cage to make space for the paper to move. I was very excited when the cage mounted right on the pipes.


2015-09-06 14.12.39 2015-09-06 14.12.44

See? Here is my second Rod that also didn’t work, because there isn’t enough space for the paper.

2015-09-06 14.52.10

LOOK! The paper fits fine between the back rods and the cage!

2015-09-06 14.57.35

And it all fits in the corner of the living room that was set aside for the bird!

2015-09-06 14.57.40


And, here is Crimson on her cage on the new stand. As a nice bonus, the stand turns out to be high enough that she doesn’t feel comfortable getting down off of it, so she is no longer coming down off her cage to torment the dogs or climb my leg while I’m sleeping on the couch because NOW is the time for scritches. And random items that were left out in the living room are not getting chewed up anymore. And I get all those benefits without making her feel like a prisoner by closing her into the cage.





2015-09-06 14.58.31





So, at the time of writing this post, we’ve had this stand in place for a few weeks, it’s been a god send, all the little failures aside it’s worked wonders for us. I love it.

I have some future planned modifications for it. I want to resolve the issue with not actually hanging the paper on the rod (mostly for pride reasons).

Also, I’m thinking I want to put a Back, side, and roof on this thing, the reason for that is that I want the roof to put in a full spectrum light for her, I want the back and side because I plan to incorporate auto feeders and auto watering devices using an Arduino board possibly with some interfaces to encourage her to be more active (press a button to get food when the light is lit type stuff).