There are 87 posts here


2 in April
4 in March
5 in January


6 in October
2 in August
2 in July
2 in June
8 in May
1 in April
1 in January


2 in October
1 in August
3 in June
2 in May
2 in March
2 in January


4 in October
1 in July
4 in May
1 in April
1 in March

    I’m Posting this from my iPad

    [May 28, 2018]

    This is my first attempt at updating this site from my iPad. "Wait, how hard is that," you might wonder. "Just log in to your CMS and write something and hit publish."

    Sure, that would be easy. So maybe I should clarify: this is my first update to this site from my iPad, and this site is completely serverless. The magic here is simply:

    Working Copy is a pretty amazing iOS app which lets you pull down, modify, and push git repos. It has a decent editor built in, so I wrote this post (in markdown) in the app. It's also possible to use Working Copy as a file source in iOS's Files app, so you can create a markdown file and then open it in your editor of choice. If you don't have one for iOS, I'm a big fan of iA Writer.

    After that, you commit the new file and push it. Netlify is setup to look for any changes on the master branch, it runs a Gatsby build script that compiles all the markdown content into blog posts and violà, the site is updated.


    There's still no way to preview this site on my iPad. Someday, maybe, we'll live in a world where iOS and MacOS overlap enough that you can do actual development on an iPad - what a crazy idea that you could build iOS application in iOS, right?

    Until then, I'm just happy to have a very convenient way to update and publish my site from my iPad.


    Unbridled Enthusiasm

    [May 27, 2018]

    Every morning, on the way to the office, I walk by a dog park. It's in a nice part of the city, so it's a lot of fancy dogs with hypoallergenic hair and such, although I doubt the dogs know that. What I always enjoy about the dog park is how excited the dogs are. Excited to chase a ball, excited to sniff other dogs, excited to roll in the grass. You never see a dog walk after a ball, even old dogs will run their slow wobbly-kneed run after a thrown ball.

    It's not just dogs, I see my daughter do it as well. If she sees a friend on the way into daycare she runs all the way to the daycare door. If we say she can watch TV, she runs to the couch, tell her she can have a cookie she runs to the table and waits for it. She could walk and arrive concurrently with the cookie, but that thought never crosses her mind.

    You rarely see adults run out of sheer joy. The dog owners usually stand around, many looking more interested in the prospect of being able to leave the park than being at the park. The parents at daycare don't run along with their kids, and I assume they, like I, do not run to work if we meet a co-worker on the way there. You see someone running in something other than obvious jogging attire and you wonder what they're late for, or if they're really moving, what they're running from.

    I haven't started running out of excitement. I do some days stop and watch the dogs do it.


    Chop wood; carry water. Do the dishes. Sweep the garage. Milk the cows.

    [May 27, 2018]

    She decided to dye her hair.

    A silly thing to do, if you’re a universal idea, like Death or Spring or Music or Peace. But Suzie had learned something interesting about people: They knew the wisdom of simply being busy sometimes.

    Chop wood; carry water. Do the dishes. Sweep the garage. Milk the cows.

    Dye your hair.

    -- “Reincarnation Blues” by Michael Poore


    [May 8, 2018]


    This sloth’s relaxation game is my new life goal. Spotted at Southwick’s Zoo.


    Amish Barn

    [Apr 15, 2018]

    The only thing where you need a big group of people to do something is when you’re building an Amish barn.

    -- George Lois


    Build and Deploy a Website in Under Five Minutes and Fifty-Five Seconds

    [Mar 27, 2018]

    At first glance, five minutes and fifty-five seconds seems like a pretty arbitraty unit of time to measure something by. Does it read better as 1 “Bohemain Rhapsody”?

    I had a goal to show off how to create and deploy a website as fast as possible -- and after a few tries, I couldn't do it under five minutes. But six minutes... plenty of time! Especially when you've got a sweet Brian May guitar solo to give you a little boost 4 minutes in.

    I demoed these steps at a weekly work meeting, but everyone in the room had about the same background as me, so for you, random Internet stranger, some assumptions:

    Assumptions (If you really want to get this done in under six minutes):

    • You have a github (or bitbucket account), git installed on your computer, and know basic git commands.
    • You have node and npm installed and a general idea of how npm works.

    If these assumptions don’t apply to you, you’ll need to budget some more time. If you’re just getting started with git or npm, you might need the entirety of Live at Wembley '86. If you’re brand new to development, consider loading up the entire Queen discography.

    Now that you’ve got a reasonable time bound for this, let’s get to it.

    Create a Website

    We’re going to use Gatsby for this. Gatsby is a React based static site generator. There’s some comprehensive getting started instructions here, but here’s the TL;DR version.

    npm install --global gatsby-cli

    from your favorite command line, pick a folder and then:

    gatsby new gatsby-site
    cd gatsby-site
    gatsby develop

    and once it’s done loading, like magic you’ve got a website at localhost:8000.

    Set up Git

    Create a new repo at your git host of choice (bitbucket or github). Either of them will give you instructions for pushing up new code, basically:

    git init
    git remote add origin [your-origin-here]
    git push origin master
    • but follow their instructions if you’re unfamiliar with git. You can refresh the repository to verify the code is there.

    Deploy it Using Netlify

    I cannot speak more highly of Netlify, but if you’re doing this at “Bohemian Rhapsody” speed for now I’ll just say that Netlify makes Gatsby deploys crazy easy. Sign up for an account, ideally using the login for your git host (github, bitbucket, etc). Once you’re in you’ll see a dashboard with a big “New site from Git” button. Click that then:

    • Pick your git host.
    • Pick your repo.
    • There’s a third step to set it up, but Netlify already knows it’s a Gatsby site so everything is set up for you.
    • Hit deploy and... that’s it, you’re done. Within seconds Netlify should have a semi-randomly generated URL for your website.

    Why This is Awesome

    The charade of creating a site and deploying it in under six minutes aside, this is awesome for a few reasons:

    • We never actually built the site. Running gatsby develop spins up a hot-reloading development environment, but Netlify actually did the build step for you. There are other services that will do this, but there’s usually a few more hoops involved to get it working.
    • Netlify will let you change the randomly generated URL to a domain you own for free. They do one-click installs of HTTPS too.

    Once you’ve done this once, you can spin up and deploy static sites to your heart’s content. And these sites are only quasi static, Gatsby is based on the idea of the (JAMstack)[] - JavaScript, APIs, and markup. You can even feed Gatsby content from live sources hosted elsewhere, like a WordPress site or Butter CMS - basically anything with an API endpoint. Even Netlify is only quasi-static - they have features like form handling to deal with most of the tasks you might have needed server side code for in the past.

    That’s it. Hopefully you followed along and got a website up and running. If not, at least you got to enjoy some Queen.

    via GIPHY


    Dude You Got a Dell

    [Feb 3, 2018]

    About a year ago I was ready for a new computer.

    I had money set aside to buy one, and was just waiting for the release of the new Macbook Pros. And then they released it... and I didn't get one. I had a number of older Macbook Pros that I 💖, and when I had them you couldn’t convince me to ever use a Windows laptop instead. But in the years that passed since the last owning a MBP, a few things happened on the Windows side:

    • Windows 10 released, and while I have issues with it, it’s the best release of Windows so far.
    • I’m more OS agnostic than I used to be. I use a Windows PC for development at work, and there are no apps that I have a strong preference[^1] for that exist only on MacOS.

    ...and a few things happened on the Mac side. The last MBP I had was a 2012 model and it was great for the following reasons:

    • It had an SD card reader! That was amazing at the time, and made importing photos off of my DSLR so much easier.
    • It had an ethernet port.
    • I had an Nvidia GPU in it, which made you believe Apple actually cared about gaming.
    • You could upgrade it. It came with 4GB of RAM and a 250 GB spinny-disk and left my possession with 8GB and a sweet SSD.
    • I bought it from Microcenter for under $1000. Actually, well under at $899, brand new.

    So Apple decided to get rid of all of the things I liked, and focus on things I didn't care that much about, like making the computer incredibly light and adding a useless touchbar, while increasing the price.

    So instead of a Macbook, I am now the “proud” owner of a refurbished Dell Inspiron 7577.

    Dude you're getting a Dell


    • It has a GTX1060 (MaxQ) GPU in it. It can play Overwatch at 60 FPS on high settings without breaking a sweat. Attempting to do that on a Macbook Pro would have required setting large piles of money on fire on something like an external Thunderbolt GPU box and dual booting Windows.
    • It has an SD card reader! And an ethernet port! And an HDMI port! And a Thunderbolt port so I can attach a dock and get an entire second set of all of those ports!
    • It has one screw that keeps the bottom on, and if you take it off, you can upgrade / replace whatever you want in there.
    • I picked up a refurbished[^2] model and it cost about 50% less than a similar refurbished Macbook Pro would have cost.


    • The screen isn't great. I’ll conceed that Apple’s retina screens are pretty amazing.
    • It weighs about 3 times what a MBP would weigh, but again, I didn't need it to be super portable.
    • I’ve never used a Windows laptop trackpad that was half as nice to use as a Mac’s, although I will say that this one is better, and has multitouch support.

    It’s worth noting here that I have an iPad Pro that I’m pretty enamoured with, and it was a driver for not needing a laptop running MacOS. 95% of what I used MacOS for exists on iOS, and the iPad is lighter, cheaper, and (in some cases) faster than a MacOS running laptop. If the two OSs ever merged, I’d consider getting a Mac laptop again, but until then I’m happy with Mac apps running on an Arm processor and everything running on a much cheaper Intel box.

    1 I will admit that there's no good Windows replacement for Tweetbot, and not being able to use Sketch is annoying, but I am equally annoyed that they won't support Windows. And my favorite writing app, iA Writer, has a kickstarter for a Windows version!

    2 I try to buy refurbished computers and electronics whenever possible. Best case, they're just a computer someone returned, worst case they failed in some way and then got fixed, but that just means someone else took the early part of the bathtub curve for you. Also, some times you get unexpected free upgrades.