Found: Time To Write

As I write this, I’m on a sit down exercise bike at my local rec centre. I’m making a prose gym selfie! But I’m not just here to make a humblebrag. Since my son was born, and I got my new job I’ve found that the key to reaching all of your goals in life is routine and discipline. Yeah, I know it’s a cliché, but the even bigger cliché is to believe in dreaming big, visualizing your goals, and all sorts of other magical thinking. The day to day drudge of writing, practising, or failing your way to success just doesn’t make for good storytelling or filmmaking. At least, those aren’t the scenes that people remember. You remember the awards ceremonies and the adulation. You remember the medal scene from the end of Star Wars a new hope. The smoking corpses of uncle Owen and aunt Beru, not so much. Oh well. It keeps you in an exclusive club when you do actually tick that item off your bucket list.

But where was I? Oh yes. In recent months I’ve been able to fit in gym time, anime time, time with my son, time for reading, time for friends and time for extracurricular programming, but now that just leaves me to find time for writing, which I haven’t been able to focus on. I’m not even quite sure that my wordpress install is working properly. The last entry was when I presented my son’s video training montage, and that was months ago.

Even so, I put this on my profile: writer, coder, and new dad. Pretty soon I’ll have to drop the “new” of my dad title, so the other two have to step up. Nanowrimo is coming up, and every year I’ve managed to find an excuse to stay on the sidelines, even when I was trying to do 750 words a day for a year on 750words.com.

This next November, I’m going to do it. I’m going to submit my writing to NanoWrimo. I don’t think I’ll actually make it to the 50,000 words I need to qualify, but if I rearrange a few things, I can make something happen. I can give up my daily anime for a month and turn my gym time into writing time. My coding time has been time boxed to 1 hour on Thursdays for the ruby brigade and and 2–4 hours on the weekend. If I give up trying to code on all other weeknights and focus on getting ready for the next day, I can show up to work early for some uninterrupted typing time.

It’s easy for me to sound chirpy about this right now. I’ve got at least three family birthdays this month, including mine and my son’s, a late family thanksgiving to contend with, and I will need to cover for my wife when report cards roll around. Yet here I am making another honey do list for my future self to carry out. And as I learned when I became a dad, future James is a chump that can’t be trusted. Still, if I lay things out in plain, easy to follow instructions, Future James is capable of a great many things.

In Praise of the Humblebrag

How about that? I actually managed to put more work into that contact app in the last week than I have in the past six months. Here I thought I was just posting the programming equivalent of a gym selfie. I suppose I shouldn’t be surprised. Despite what some lazy buzzfeed article told you about facebook etiquette, there are a lot of studies backing the benefits of publicly proclaiming your commitment to your goals. It adds that little bit of accountability that’ll get you through the nights when you don’t want to go on that run or write that novel chapter. But enough platitudes, what did I accomplish last week? Well, here’s a screenshot.

Screen Shot 2014-05-19 at 10.22.44 PM

I’ve got an interface for entering a list of names behind a facebook-driven log-in system. I’m using a from-scratch permission system to hide the contacts from public users. The interface uses the AngularJS package, so the names are saved to the database as soon as you click the add button, no page refresh required.

I’ve been thinking a lot about how the interface is going to work. I want users to be entering in their interactions about once a day. It’s going to be a very quick habit, and will let the system get a sense of how the user is doing socially. I’ll start with a list of the most recent contacts like so:

Screen Shot 2014-05-19 at 9.46.06 PM

Clicking one of them will bring up a modal dialog like this.

Screen Shot 2014-05-19 at 9.51.30 PM

The user will select the method of contact and move on to the next person.

Occasionally, (or regularly, depending on the settings) the system will ask for more information about the user’s interactions with pointed questions like these.

Screen Shot 2014-05-19 at 9.57.03 PM

I haven’t decided if I’m going to analyze the answers yet, but it should get users thinking about their emotions when it comes to dealing with strangers.

It’s kind of a tall order here. I don’t think I’ll get all these features done this week. The real struggle will be to focus on the features that will turn this into a minimum viable product. That way I’ll be able to use this app in the real world and figure out if I should have attempted this at all in the first place.

Care and feeding of the Right Side of the Brain

It’s been odd to be on this plateau in life. I’m so used to worrying about my career that it really feels like something’s missing now that I don’t have to. The work I’m doing is challenging, fulfilling, and I like the people I work with. I’m even back at the gym, if you can believe that. Sure, this job is only as secure as any other programming job, and I’m really tempting fate by putting this to paper, but I’ve gotten to a point where if I lose my job tomorrow, I know exactly what to do to get to the next one. The plan would be executed with maximum efficiency and a minimum of drinking and swearing. For me, that leaves a lot spare mental energy kicking around. That means I’ve got to keep striving.

I’ve been making some headway on that contact manager I announced I was going to make at New Year’s. I was hoping to use the Facebook Graph API to track my interactions with my friends, and use that data to see where I could be more sociable online. Unfortunately, I learned that Facebook has locked down anything to do with data about your friends, so my program’s not going to be as automatic as I want it to be. Good on Facebook for growing a conscience, but did they have to step on my programming dreams in the process?

No matter. They still let you download all your data, which is all I need in the first place. I’ve got to pivot this thing so it functions without any outside data sources in the first place. I want people to be able to gamify their social interactions so that they have more friends, build better support networks and live longer, healthier lives.

I think I’ve got about 7-8 hours to focus on this one project. One hour Monday, one hour tuesday, two hours Wednesday, 3-4 hours on the weekends. By the end of that time I should have an app that allows me to enter contacts and write “notes” whenever I make contact with them. I’ll write my results hear next week, and if not I’ll just complain about what’s keeping me from programming this week. Good Luck, and Godspeed!

James Strocel 2014: Resolution

howfarwehavecome copy
This time last year, my son was barely the length of my fore-arm and couldn’t even roll over. Today he manages quick toddles in between tables, can bring me the books he wants to read from across the room, and charms the pants off the cashiers every time we go grocery shopping. Now, what have I accomplished this year?

I’ll admit 2013 didn’t start off all that great. I started the Spring unemployed from what I had thought was my last crack at a 9-5 job. Being your average technology worker born after 1970, I was no stranger to joblessness. However, I tried something different this time. I ignored some very good advice and started building my own web app, Gameplaydate.com. I had the idea that I could get adults interested in multiplayer video games again. It’s still up there if you want to sign up. It has approximately 0 regular users, but it led me to my next job, and I’m still using the code base in that very job today.

I learned something very important that Summer. I learned to not accept my limits. I would still have limits, everyone has them. But from now on I want to know them, not just accept them.

Now, if I need to learn a complex technology or design methodology, I’ll just learn it and try to sell the solution to my bosses or clients. Most of the time, I don’t even need to sell the solution since that pattern I found saved me so much time and effort that everyone is happy. If a technology is too complex for me to work with, then I find someone who knows it, and I usually get the solution that way too.

If I were just to accept the limits of my knowledge, it would have dire consequences on my work. I’d be working with an existing codebase that I would be too scared to touch coming from a developer I respect too much to contact for a client I’m too afraid to bother with so much as a status e-mail.

I’m in a very good place right now because of those ideas, and in 2014 I want to take them even further. It might be cheesey to make resolutions at this time of year, but I find when I set goals now, a few of them start coming true. We’ll start off with the career and personal development goals and follow up with all the leisure goals, i.e. the books, games, and movies I plan to get through this year, because I have to get through that backlog somehow. When I make progress on any of them, I’ll be sure to post an update. Here goes!

Goals for 2014

Primary

Save up for a House
Learn TDD for Angular JS
Build a Raspberry Pi
Build my own Contact Manager
Build at least one video game in any language
Revisit Raingeek.com
Rebuild my consulting business
Meet my MP or MLA
Learn to Sew

Leisure Goals

Books (Fiction)
Wizard and Glass by Stephen King
Fulgrim by Graham McNeill
The Adventures of Sherlock Holmes by Arthur Conan Doyle
Slayers vol. 1 by Hajime Kanzaka

Books (Non-fiction)
Antifragile by Nicholas Taleb
Lean Startup by Eric Ries
The Upside of Irrationality by Dan Ariely
Creating Magic By Lee Cockerill
The Happiest Toddler on the Block by Harvey Karp
Nurture Shock by by Po Bronson and Ashley Merryman

Books (Computer)
Hacking: The Art of Exploitation
Raspberry Pi User Guide
Programming Interviews Exposed
AngularJS Directives
Storytelling for User Experience

Games
Super Mario Galaxy 2
Halo 4
Wolf Among Us
StrongBad’s Cool Game for Attractive People
Rogue Legacy
Super Robot Wars J
Ookami
Persona 3

Movies
Pacific Rim
Elysium
The Hunger Games: Mockingjay part 1
X-men Days of Future Past

TV Series
Doctor Who
Marvel: Agents of SHIELD
Battlestar Galactica (2003)
Go-Lion
Madoka Majica
Yamato 2199
Mobile Suit Gundam (1979)