Style Guide for ‘The Bold Report’

I created a style guide for The Bold Report and wanted to quickly tell you about it. It’s not much, but an explanation of the different elements that exist through out this site.

Writing all these explanations turned out to be an excellent exercise. It made me stop and think what was useful, and what elements didn’t need to exist. I hadn’t realized the unspoken patterns that had developed over time.

I like looking at style guides. Dan Eden’s is a good one to look at. He even has a writing style guide. Anyway, if you’re into this sort of thing, I invite you to take a look.

Happy And Content

The title perfectly encapsulates my year. 2015 came and went, and as usual, here’s my annual year in review.

This was by far the best year in a long time. Kelly and I were married on May 9. It was the best day of my life.

With our amazing wedding party. (Photo by Cayan Brock)

We were surrounded by all of our friends and family who smothered us in so much love and happiness. If I could, I would live that day over and over. It sounds so sappy, but I just can’t help it.

Working Full-time Again

ACL took us on a team-building excursion in May, which turned out to be awesome. Our team name was: The Totems.

Having a “regular” day job has its pros and cons. After running my own business for so long, having a more rigid schedule where I work 5 days a week has been difficult to get used to.

But, there’s something to be said about having a regular paycheck, paid vacation, and other benefits. Most importantly, I really wanted to work on a team, and I’m so fortunate to have landed on a team of incredibly smart, talented, and humble people.

Stepping Down From Goodstuff

As you may recall, Goodstuff was a podcast network I started with Adam Clark and Chris Enns in 2014. Running it was so much fun, but with me getting married, I couldn’t make it a priority.1

Soon after, I started a podcast again, which has two really great episodes published. For The Record is the best show I’ve ever done. I have about 6 interviews recorded that I’ll be working on in the next few months. I hope to bring the show back in the spring.

Podcasts have taken on a whole new life for me this year. Sure, they’ve been around for a while, but my goodness! The level of quality has gone up like crazy, and I’ve discovered some amazing shows this year. Maybe I’ll post a list of my favorites at a later date.

Summer Trip to Europe

Kelly and I went to Europe for the first time this summer. It was the first time both as a couple and individually. Europe was wonderful. Visiting places you’ve only ever seen in pictures is quite the experience.

Some of my favorite Europe moments.

We saw the Eiffel Tower at night with all the lights on, walked many unknown streets, took the subway, had espresso and pastries in a French cafe, missed our train, felt frustrated because we couldn’t speak French, ate amazing food, made great new friends, and saw people nude on the beach like it was no big deal. I hope we get the chance to go back.


The last highlight of the year? Star Wars: The Force Awakens. I’ve watched it in theaters four times.2 Each time better than the last.

What’s in Store for 2016

My co-worker Phil told me that his family agrees on a motto for the year. I loved the idea so much, that I’m stealing it. As always, I’ve got some goals for this year, but I also want to share the motto Kelly and I plan to live by.

Motto: Live Healthy.

  1. Build a Piece of Furniture
    I’m keeping this one from last year. I really want to dabble in some carpentry this year. It’ll get me away from my computer, and the chance to spend some quality time with my Dad.

  2. Lose Weight
    Not much I can say here that I haven’t said. Part of living a healthier life.

  3. Travel
    Taking breaks is part of being and staying healthy. I have paid vacation now, why the hell not use it?

It’s going to be a great year.

  1. But! That doesn’t mean that Goodstuff is dead! Chris and Kyle Roderick are still running it. They’re kicking butt! 

  2. I was so excited to see this movie, and it didn’t disappoint. It was so good to see a new Star Wars movie feel like Star Wars again. 

‘How To Be a Moderately Successful Person’

Emer O’Toole:

I hope it will not seem conceited if I say that I am a moderately successful person. I have a job I like. I wrote a book that is doing quite well. I have managed to trick a human I love into believing that it is a good idea to live with me. I’m reasonably happy most of the time, and think anyone who says they never feel like crap is lying.

Things are going grand and, truth be told, being highly successful sounds stressful. So I’m taking it upon myself to share the closely guarded secrets of moderately successful people. Practise these and you too can muddle along just fine.

I’m fine with being moderately successful. Sounds kind of great.

Chris Coyier’s Productivity Advice

Chris Coyier:

“How do they do it all?” people unceasingly want to know. The answer is never satisfying. Nobody actually has any magic tricks. Nobody slows down time. They do work and work gets done, whether it’s marinating alligator heads or building websites. You’ll be surprised how much you will do in a day if you sit and do it.

So true. Just reminds me that when I haven’t been able to do something, it’s because I haven’t made it a priority. That truth can be very empowering.

What Is a Front End Developer?

Laurence Bradford:

At this point, after looking through multiple job descriptions, I am totally confused.

My goodness. There were so many times in this article that I wondered if I was even a front end dev. It seems that every company has their own requirements of what that job should be, and some are just completely insane. Laurence does a great job of breaking it down to the basics, and then covering where the front end developer should be expanding their knowledge.

Like Laurence, the area I need to improve is Javascript.

Publishing To Jekyll From iOS

I figured out how to publish to The Bold Report from iOS!

Disclaimer: This method will only work if you have an external build process. If you host your Jekyll site on Github pages, for example, you’re good to go. If you’d like to learn how to setup your site to deploy and build on something like Heroku, I wrote about that.


The workhorse here is actually Editorial. If like me, you’ve heard about this app, but didn’t pay much attention to it, here’s a great review. In short, its quite amazing.

Editorial Workflows

The power of Editorial workflows make this all possible. I found a blog post that links to this workflow. It’ll create a post with the right YAML Front Matter. Once youve installed the workflow from inside Editorial, you can make edits so that the Front Matter matches what you need for your site.

Next, we want to create the publishing workflow. Go to the upper right hand corner, tap on the wrench icon, then tap on the plus icon. Add a new action, and choose “Run Python Script.” Then, paste the script below. Pay attention to the comments, so you add the necessary information.

# Script from Josiah Wiebe (https://gist.github.com/josiahwiebe)
#coding: utf-8
import keychain
import console
import editor

import time
import re

import requests
import json
import base64

SITE_BRANCH = 'gh-pages' # either master or gh-pages

# Fill this out with your Github info.
COMMITTER = {'name': '$github_username', 'email': '$github_email'}

username = '$github_username'

# You can create a token specific for this workflow
# at https://github.com/settings/tokens
token = '$github_token'
repo = '$github_repo' # Just as it says on the tin. For me it was 'theboldreport.net'

######## No need to edit past this point
post_text = editor.get_text()

post_sections = post_text.split('---')
if len(post_sections) > 1:
  yaml_header = post_sections[1].splitlines()

  # Find the title in the YAML
  post_title = None
  date = None
  for line in yaml_header:
    if line[:6] == 'title:':
      post_title = line[6:].strip()
    elif line[:5] == 'date:':
      date = line[5:].strip()[:10]

  if post_title:
    safe_title = re.sub('[^a-zA-Z0-9\s]', '', post_title).replace(' ', '-')
    safe_title.replace('--', '-')
    if not date:
      date = time.strftime('%Y-%m-%d', time.gmtime())

    post_filename = '_posts/%s-%s.markdown' % (date, safe_title)

    URL = 'https://api.github.com/repos/%s/%s/contents/%s' % (username, repo, post_filename)

    header = {
      'Authorization': 'token %s' % token,
      'User-Agent': username
    }

    get_data = {
      'path': post_filename,
      'ref': SITE_BRANCH
    }

    response = requests.get(URL, headers=header, params=get_data)
    response_json = response.json()

    if response.status_code == 404:     # File doesn't exist, create it.
      data = {
        'path': post_filename,
        'content': base64.b64encode(post_text),
        'message': 'Blog Post - %s' % post_title,
        'branch': SITE_BRANCH,
        'committer': COMMITTER
      }

      response = requests.put(URL, headers=header, data=json.dumps(data))

      if response.status_code == 201:
        console.hud_alert("Blog post created successfully.", 'success', 2)
      else:
        console.alert("Commit failed.")
    elif response.status_code == 200:   # File exists, update it.
      data = {
        'path': post_filename,
        'content': base64.b64encode(post_text),
        'message': 'Blog Post - %s' % post_title,
        'branch': SITE_BRANCH,
        'committer': COMMITTER,
        'sha': response_json['sha']
      }

      response = requests.put(URL, headers=header, data=json.dumps(data))

      if response.status_code == 200:
        console.hud_alert("Blog post updated successfully.", 'success', 2)
      else:
        console.alert("Commit failed.")
    else:                        # Something went wrong!
      console.alert("There was a problem with the server.")

  else:
    console.alert("Couldn't find a title.\n\nAction Halted.")

else:
  console.alert("No YAML header found.\n\nAction Halted.")

And that’s it! Create a new post with the first workflow, and publish it with the second one. If you have any issues or have questions, I’m @ttimsmith on Twitter.

Happy blogging!


Btdubs… this post was written completely on my iPad, and I loved every minute of it.

iPad Test

Dear Reader,

If you’re seeing this, it means I’m publishing from my iPad. Oh, hell yes. Tutorial coming soon.

Stephen Hackett’s Mac Wishlist

Stephen on wanting a Retina Display:

Despite the technical hurdles in driving such a display over a cable, I really hope 2016 is the year that Apple’s lonely Thunderbolt Display is updated with a Retina screen. Such a screen will require the DisplayPort 1.3 specification to be implemented with Thunderbolt 3, so this may still be a little way off, but I hope that by the time I need to replace my Mid 2015 MacBook Pro, I can buy a 5K display to use with it.

Boy would I love a Retina Thunderbolt Display. I mean, as it is, I love my Thunderbolt Displays, but just thinking of all those amazing extra pixels? Freaking heaven. Anyway, on to Stephen’s other great wish:

OS X has been around a long time. Over the course of its life, Apple’s been speeding up its release cycles. Starting several years ago, a new version of the operating system has dropped each fall, alongside iOS.

I’m all for that, but it comes with a cost. Any release cycle comes with a round of potential headaches for consumers, IT professionals and developers. If there was a way to add new features in mid-stream — like the company did with Photos.app in OS X Yosemite 10.10.3 — customers may be more at ease, and more likely to enjoy such improvements, as the barrier to entry would be lower.

I agree with this big time. The yearly cycle of Mac OS X has caused distrust in users to upgrade, and the root of that issue, being that OS X releases have become rampant with bugs.

Like Stephen, I don’t see this happening, but I think the usability benefits would be worth it.