From Startup Idea to (In)validation in a Week

This is the brief story of and reflection on me and a friend’s idea for a startup. We went from product idea, to super minimal prototype to finding out our product probably wasn’t going to make money all in a week. This is what happened.

The Idea

A good friend of mine, Nick Budden, had an idea for a product, and after talking about it over the course of a few days we decided to build it. The product would be a unified solution to many of the problems we face as freelance developers. Problems may be the wrong word actually, more like annoyances. The parts of our job that just serve to get in the way and take up valuable time that could be spent creating cool new things. Let’s call the combined sum of these annoyances “Freelance Minutia.”

Read More

Using Key Remap 4 MacBook's Private.xml

Using the KeyRemap4MacBook private.xml mappings can be a bit opaque, so I’m writing this as a reference to myself and anyone else that needs to delve deep into customizing KeyRemap4MacBook (KRMB) by using the private.xml config file. Here are the more important rules:

Basic private.xml layout

This is an xml file you can start with.

<!-- <item> Tags Go Here -->

Note that <list> is an optional tag, but I think it’s nice for organization within KRMB. Leave it out if you want.

The second basic piece is the <item> tag. These represent the checkboxes you can turn on and off from within KRMB. They can contain multiple mappings or <autogen> tags. Just remember that everything you put into one single <item> will be activated or deactivated together. Here’s what they look like:

Read More

WordPress Needs Better Automation

It’s occurred to me time and time again that I don’t write as much as I should. In fact I think I even wrote up a short post about that some time back. Anyway, another thing that’s been on my mind lately is the friction that comes from small tasks that keeps us (or at least me) from completing larger tasks.

In the case of WordPress, there is far too much friction associated with creating new posts on a regular basis. As a programmer, I have come to despise most interfaces that require me to carry out repetitive tasks myself when they could be easily automated. I’m talking about things like:

  • Open browser, head to my site login page
  • Ideally I’m already logged in, but more likely I need to login again
  • Spend a few seconds remembering my password
  • In the WP dashboard, click on New > Post
  • Copy and paste the title from the blog post I just finished
  • Copy and paste the content as Markdown into the WP editor
  • Hit publish
Read More

JavaScript Everywhere

Over the past week or so I’ve really been diving into JavaScript to get a deeper understanding of the underlying language (not just jQuery). What I’m realizing, and what prompted me to actually write this, is that Node is clean, unfiltered awesomeness.

I had been contemplating diving into Ruby for a long time. I’m currently actually auditing a course on Ruby. But once I fired up Node most of that motivation to learn a new back-end language went out the window. The thing is, I really enjoy doing stuff in the terminal and writing scripts that will do things for me. Automation, as we say. This has prompted me to learn a significant amount of bash scripting (used for Z shell of course), but that has it’s own limitations, and it was never really designed to be good at many of the things I would want to do from the terminal.

Read More

Integrating Alfred With Keyboard Maestro

Update 7/6/2015: I’ve now been using this Alfred workflow for over a year and I still use it every single day. It’s become vital to my workflow and I highly recommend it to anyone trying to boost their productivity.

However, other parts of my workflow have evolved quite a bit (such as window management). If you’re interested in a full post on the subject drop me a line on twitter or leave a comment at the bottom.

Now back to the original article.

One step closer to a mouse-less workflow

I’m going to show you how to integrate Alfred with the excellent Keyboard Maestro. Why? Because I have a vendetta against my mouse and I’m constantly finding new ways to remove it from my workflow entirely. To this end, the discovery of Keyboard Maestro by Stairways Software was a big win.

Keyboard Maestro (KM)

Super quick introduction: KM makes it easy to assign almost any Mac action to an easy-to-use trigger. It’s a great piece of software and is backed by a friendly and accessible developer, Peter Lewis. Seriously, go check it out right now if you haven’t yet. It’s free to try.

Combine & Conquer

So, let’s be honest: if you you’re already a Mac power user, you probably have far too many hotkeys rattling around in your brain already. This is especially true if your a developer. KM is an excellent piece of software out of box, but adding more hotkeys to the list of things you must remember might not be the ideal solution. But if we could just name our macros in a memorable way and then call them up at will based on that name we could do amazing things.

Read More

Getting Productive With Fish Shell

Today I took it upon myself to try out the very new and very cool looking Fish Shell. This is the second time I have taken it upon myself to really dive into the customization of my Terminal and after the fact I’m left with much the same feeling as the first time: I feel like I didn’t get anything done today.

This experience made me think a bit about a certain habit I have to get really dive into my workflow and try to find areas that are lacking or could be more efficient. The first time I did this was after watching a great tutorial by PeepCode on the advanced ways I could use the command line. The whole video was about how to use [Bash], and then at the very end they recommend that those who want more serious customization should check out something called Z shell.

That recommendation led me on an all-day adventure learning Z shell customization. The real killer feature of Z shell actually turned out to be the community involvement, and the GitHub users who were putting out easy-to-use plugins for the esoteric shell. The project is called oh my zsh, and it’s a great place to start for anyone who wants a more usable terminal.

The point being, there was recently an announcement on Hacker News that someone had started a similar project for this new shell called Fish. As soon as I saw that, a big chunk of my time for the day went out the window. I knew if I started looking into the code and the various customizations I would lose many hours of the day, but I couldn’t resist. I LOVE improving my workflow.

Read More

Page reloads are a thing of the past

I occurred to me recently as I have been delving deeper into JavaScript and Backbone.js that single-page applications are the future. I say this because when I look back at older web pages they usually have some distinctive characteristics that instantly grant them outdated status. For instance:

  • Table-based layouts
  • HTML-based styling
  • Unresponsive, etc..

I believe full-page reloads will belong on this list before too long.

No, but seriously

Have you ever used Ghost? If you haven’t, it’s a really promising blogging platform that recently got released to the public and has scored six-digit funding on Kickstarter. I’m still using WordPress for this blog, but after a few minutes using Ghost I could say it was a vast improvement. This isn’t a review, so I won’t get into the specifics except to say that it built with JavaScript, so it runs like an app not a web page.

Read More

Learn Vim & Code Like a Boss

Learn Vim and remove the trackpad from your workflow

Since your here, you probably alredy want to learn the amazing editing software that is Vim. But if you haven’t yet decided to take the plunge, here are three reasons to start today.

  1. Code Faster, better and maybe even stronger.
  2. Code easily on any system.
  3. Understand the command line (you will need it later)

This article is also the base for an upcoming article on being insanely productive on a Mac and eliminating the trackpad from your workflow (almost) entirely.

But Ian, isn’t Vim a productivity killer for new users?

No. Vim only hurts productivity if you are very hardcore about learning the esoteric commands as quickly as possible. People assume learning Vim involves a mandatory dive into the deep end. That’s not true, and I’m going to show you why.

Quck setup (Updated)

  1. Download Sublime Text
  2. Either enable vintage mode or install the Vintageous plugin
Read More

WordPress Development Server - Full Set Up Guide

Unleashing your WordPress Development Server

So you want to escape inclusive packages like MAMP, learn about web servers and generally code like a boss? Well if you use a Mac your in the right place, but guess what we need before we get started? A local development environment! If you don’t know what that is, read the next paragraph. If you do, then skip down. Even if you already have a local dev server set up this will still be useful knowledge should you want to untether yourself from MAMP or any other AMP stack bundle.

Read More