The Week In Links - Feb 8, 2019

» Cal Newport on Why We’ll Look Back at Our Smartphones Like Cigarettes

It’s a fair analogy, I think. I’m not ready to trade my iPhone in for a flip hone, but I’m rethinking my relationship with my phone and with social media in particular.

» Watch a Homemade Robot Crack a SentrySafe Combination Safe in 15 Minutes

Last Christmas, Nathan Seidle’s wife gave him a second-hand safe she’d found on Craigslist. It was, at first glance, a strange gift. The couple already owned the same model, a \$120 SentrySafe combination fire safe they’d bought from Home Depot. But this one, his wife explained, had a particular feature: The original owner had locked it and forgotten the combination. Her challenge to Seidle: Open it.

Impressive.

» Random Travel Hacks

There are some great tips in here, and he uses the same backpack I do. I should probably write a similar post at some point, I’ve accumulated a number of tips and tricks myself.

» My Travel Packing List Shortcut

Another travel related tip, this one for using Shortcuts. I’ve done something similar, and it’s a life saver. I’m generally a bit anxious when traveling anyway, and I find that having a detailed checklist for packing (almost 100 items on mine), as well as other things that have to be done, makes a huge difference in my level of anxiety.

» Microsoft’s fonts catch out another fraudster—this time in Canada

Lesson: when forging documents allegedly from many years ago, make sure you choose fonts that were around then.

» How will Apple redesign the iPad home screen?

As a heavy user of the 2018 12.9” iPad Pro, I’m keenly interested in what iOS 13 will bring. Redesigning the home screen to be more functional is high on my wish list. Jason Snell has a great take on this at Macworld.

I don’t know how radical a makeover Apple’s planning for the iPad home screen, but I hope it will provide us with more than a new view into the same old collection of apps. I like my iPhone home screen to be simple, but it’s small. My iPad screen is bigger than the one on my MacBook—it deserves to host a home screen that’s got more functionality and density than the one the iPad has suffered with for its entire existence.

» The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data.

The Big List of Naughty Strings is an evolving list of strings which have a high probability of causing issues when used as user-input data. This is intended for use in helping both automated and manual QA testing

Handy.

» Thinking Different: Keys to Adopting an iPad-First Workflow

I’m not iPad-first, but I’m definitely using it for more tasks that I would have used a Mac for a few years ago. Writing this, for instance.

Before the iPad Pro debuted in late 2015, transitions from Mac to iPad were extremely scarce. The iPad’s hardware and software were both far too limited to compel many switchers. The software has advanced since that time – thanks to Split View, drag and drop, and Files, it’s far easier to work on an iPad than before – but there’s plenty more progress still to be made. The hardware, however, is where the iPad has shined most, especially with the newest iPad Pros.

A Collection of Links About Github Actions

Github Actions is really intriguing, and I’m excited to get my hands on it. It’s not enabled for my account yet, but once it is I’m going to dive in and automate a bunch of things, starting with the publishing of this blog (which I currently do with AWS CodeBuild).

While I wait paitently-ish, I’ve collected some links to things I’ve read about it.

» GitHub Actions: built by you, run by us

The blog post where Github announced Actions. Good place to start if you have no idea what I’m talking about.

» Features • GitHub Actions

A high level overview of the features Github Actions has.

» The Changelog #331: GitHub Actions is the next big thing with Kyle Daigle, Director of Ecosystem Engineering at GitHub

The Changelog podcast interviews Kyle Daigle of Github to talk about Actions.

» A redone blog, again - Arktronic.com

A fairly common task, I suspect: automating the publishing of content when it’s pushed to Github. I’ll be doing this soon myself. Even if it’s not something you need, this is a good intro to what you can use Actions for.

» Introducing Github Actions

An introduction to Github Actions, from Sarah Drasner. This is a great overview.

» Getting started with Github Actions

Nice guide to getting started.

» Jessie Frazelle’s Blog: The Life of a GitHub Action

An in-depth look at what happens when an action runs, from @jessfraz. As an aside, if you’re not following her on Twitter, you should. She’s smart and works on some very cool things.

» nektos/act: Run your GitHub Actions locally

This is really exciting - run actions locally for testing. I haven’t played with this just yet, but I will soon.

» Github Actions

An open source list of Github Actions (via David Boyne). There are a lot here already, and they look useful. Adding a new one is as simple as submitting a pull request on Github.

» Awesome Actions

This is a great collection of resources, also from Sarah Drasner. Links to cool actions, as well as lots of links to documentation and other resources.

The Week In Links - Jan 19, 2019

These are the things that captured my attention in the past week.

» A story of an online stalker takes a bizarre turn down the rabbit hole

I watched this story unfold on Twitter over a weekend, and it kept getting crazier. You should also read Chloe’s own post on the matter..

» The curious case of the Raspberry Pi in the network closet

A story of a completely different sort, but no less interesting. With computers being so compact these days, it’s surprising this doesn’ happen more often.

» AWS For Everyone: New clues emerge about Amazon’s secretive low-code/no-code project

If this is true (seems likely), it will be massively successful. As described, it sounds like the spiritual successor to Yahoo! Pipes, which was way ahead of its time.

» How Airbnb is Moving 10x Faster at Scale with GraphQL and Apollo

I’m starting to experiment with GraphQL. It’s early days, but GraphQL seems like the right solution for a lot of problems.

» iOS Shortcut for Importing Photos into Lightroom

The iPad Pro is starting to play a bigger role in my photography. When I went to Florida on vacation this summer I didn’t take my laptop at all, only my iPad Pro. There are still some awkward bits about working with RAW files on iOS, but overall it’s become capable of handling a lot of things. Also, I’m starting to build/acquire a bunch of iOS shortcuts now. It’s so easy to build them, and I’ve already found a number that I’m using daily.

» Signal v Noise exits Medium

Their reasoning is similar to mine. Perhaps it’s just selection bias but I see this sentiment echoed all over lately.

New Year, New Blog

Once Upon a Time on the Internet

Once upon a time, I had a blog. This was in the days before social media, mostly. I’d occasionally write some longer things, but often times I’d just share links to things I found interesting. Sometimes I shared pictures. I even did a series of interviews at one point. It was never a terribly popular blog, but that wasn’t really the point. It was a creative outlet for me, a chance to work in a different medium - prose instead of code.

I read other people’s blogs as well, which were often the source of the things I found interesting. First with Bloglines, then Google Reader, I followed hundreds of like-minded people and read the things they wrote. It was a simpler time.

Social Media and the Demise of the Blog

Along came Twitter, which was the first social media network I joined, though it was far from the first. It was new and exciting. I enjoyed following people that were interested in the same sorts of things that I was. Twitter at the time had earned a reputation for being banal - mostly people talking about what they were eating for lunch - but nerd twitter wasn’t like that at all. It was a continuous stream of people sharing things they found interesting or posting links to what they’d done. Sometimes it was discussions between people on an interesting topic, discussions that were a lot harder to have in other mediums such as blogs.

Twitter made it trivial to share links and small snippets of daily life. Inevitably, the arrival of new content on my blog slowed. A little at first, but shortly it became a trickle before it stopped altogether. More social media arrived: Facebook made it easy to share things with friends and family, Instagram made sharing photos fun. There was almost no reason to use a blog anymore. I wasn’t alone, a lot of the blogs I read at the time are no more. The people aren’t gone, they’re just posting their thoughts elsewhere.

And Now Here We Are

Fast forward a few years (ok, it’s more than a dozen since this story began). I still use Facebook and Twitter, but noticeably less than I once did. I’ve come to see social media as the junk food of consumption. It tastes good at the time but leaves you feeling unsatisfied. There are still good things there, but they’re increasingly harder to find and you have to wade through a lot of garbage to find them.

I’ve also been missing my creative outlet. I had once enjoyed writing longer pieces, explaining how I’d solved a problem, reviewing a book I’d read, and introducing people to something I’d discovered. That wasn’t really possible in 140 or even 280 characters, not in any meaningful way. I’d also taken up photography as a hobby, and while Instagram and Facebook are fine for sharing that sort of thing, neither is a great forum for it.

Ultimately, I want a digital place to call home, where I control (and own) the content and how it’s presented.

A look around the internet shows I’m not alone. Cal Newport, an author I enjoy who is decidedly anti-social media, has been making the case for blogs. Jeremy Keith is as well, and others too numerous to mention. Countless others never lost the habit and didn’t succumb to the siren call of communicating to the world exclusively in bite-size content.

A Phoenix Rises From the Ashes

So I built a new website. The technical details about what it is and how I built it are a story for another post, but now that it’s up and running this will be the place where I post most things. Links/photos/longer posts will be here, and then I’ll share them on social media. I want to own my own writing, for better or for worse, and there’s really no other way to do that other than your own website at your own domain.

The new blog and this very blog post were actually started a couple of years ago, but that’s how side projects go. This was never a top-of-mind project, but something I’d tinker with from time to time. Life’s a lot busier than it was a dozen years ago, and my attention span isn’t what it used to be (whether social media is partially to blame for that is a topic for another day). But no matter, it’s done now.

This is definitely a work in progress. I brought over most of the content from the earlier versions of this site, but not all of it. Some of that content has been reviewed and revised to correct typos, formatting issues, and dead links, but that will take a while and so if you spend any time in the archives here you’re likely to find all of those things. If you do, feel free to let me know (via Twitter, I suppose, or Github if that’s more your thing.

Cheers to the new year, and to new (old) things.

Breaking the Cycle

One of the recurring themes in my quest to be organized is that of todo list staleness. Inevitably, the cycle looks like this: I sit down, and in a burst of creative energy I create a beautifully crafted, perfectly organized todo list. It’s a thing to behold. Everything is broken down into nice orderly projects, each with a clearly identified next action. There are contexts assigned to everything: this one is an errand, this one needs to be done online, this one needs to be done in the kitchen. It is, without a doubt, the epitome of organization. And this time, it’s going to stick. I’m going to review it daily, weekly, monthly to make sure that everything is current. This todo list will give me productivity superpowers.

This generally lasts less than a week.

Fairly quickly, I stop reviewing the todo list. For reasons unknown, I’ve never been able to develop the habit of reviewing my lists on a daily basis. Once I stop reviewing the list, I stop putting things into it consistently. Often, I will write them down on paper (or in a text file, or perhaps in Evernote), and then do them without ever entering them into whatever tool I’m using. Once this happens, I end up using the simpler tool as my whole todo list. I stop organizing things in projects, I just write things down, and then do them.

The next stop on this train is that I stop reviewing things weekly. This inevitably creates a bit of anxiety. I know that there are things in there that I should be doing, but I’m not. I’m focused on the things on my little todo list. It’s a paradox, because on the one hand I feel productive checking things off of my little list. On the other hand, I know that this means I’m not making the best use of my time. It means that my todo list is skewed towards the most recent things that I’ve put on it, rather than things on the larger list that might have more strategic value. To borrow a phrase from Stephen Covey, it’s the urgent, not the important.

In the end, the list atrophies. It’s not updated anymore, and starts to resemble a decaying building that’s been left to sit for decades. It’s a mix of things that have already been completed but never checked off, projects that are long-past relavant but still sitting on the list, and poorly worded tasks, the context of which have long been forgotten. It’s Exhibit A in the argument for the Broken Windows Theory. I could go through and get everything up to date again, but I don’t. Mostly, I suspect, it’s just too overwhelming. There’s lots of stuff there and my eyes just glaze over when I look at it.

Inevitably, in a fit of productive frustration, the cycle begins again. Sometimes it’s a restart with the same tool, purging the old and busted, and replacing it with the new hotness. Quite frequently, however, it’s with a new tool altogether (I think I’m on my sixth or seventh system by now).

In the most recent cycle, I switched tools again. This time from Evernote (which is an awesome notetaking tool, but a very poor todo list manager, at least for people with more than a handful of things going on) to Omnifocus. I’ve watched Omnifocus for years and always viewed it with quite a bit of interest. I’m a GTD advocate (even if I frequently fall off the wagon) and it was designed from the ground up to work well with GTD. It’s got great mobile apps, and a top notch desktop experience as well. The reason I hadn’t used it before now is that I spend a good portion of my day using Windows. Not by choice, mind you, but it pays the bills. Without a solid cross platform experience, I didn’t really think I could be productive. But now that I work from home, and have easy and constant access to not only my iOS devices, but my Mac as well, it becomes a little more practical. So I plunked down my cash on the counter and bought into the entire ecosystem.

So far, Omnifocus has been great. But predictably, there are signs of the cycle repeating. I’ve gone days or weeks without even looking at it. I’ve got a small, hand-written list on an index card (the amazing Frictionless Capture Cards). There are things in Omnifocus that are certainly out of date, and there are projects that I’m working on that aren’t in there at all. The first window is shattered.

There’s hope though. Omnifocus has one thing that I have yet to see anywhere else, which is a review mode. It exists in the desktop app, but it really shines in the iPad application. It works like this: you tap Review, and Omnifocus takes you through every single project in your list, and presents it to you one at a time. You can look it over, check things off that have been completed, and add things that might be needed. Then you mark it as reviewed, and Omnifocus gives you the next item. It’s brilliant. You only see one project at a time, so it’s much less overwhelming (at least to me). Once I’m done with the review, everything is current and I feel much more relaxed. It doesn’t matter how long it’s been since the last review, in less than an hour I can be completely current.

So after decades of using tools that never stuck for long, I feel like I’ve finally found the one that works the way my brain does. And while it’s not perfect, it suits me well.

The cycle is broken (for now).

Cyclemeter for iOS: A Great App for Cyclists (and Runners Too)

I try to ride my bike most mornings, assuming it’s not pouring down rain. It’s the same route most days, but it occured to me a few weeks ago that I really had no idea how far, or fast, I was riding. Being the nerd that I am, I decided to find a technology solution to this problem.

Enter Cyclemeter

Dedicated bike computers and GPS devices have existed for some years now, but like most everyone else these days, I’ve got an iPhone with a GPS built right in. A little searching led me to a number of apps that did what I wanted, and after reading some reviews, I settled on Cyclemeter. The name is actually a bit of a misnomer, since the app will also work for walking, runnig, skiing, or pretty much any other activity that involves moving forward on a mostly-horizontal plane.

How it Works

Once you’ve installed the app, it’s easy to get started. Open the app, and click the giant green “Start” button. Then get moving. Cyclemeter will plot your route as you go, and calculate your time, speed, distance, elevation and calories burned (if you provide your weight). When you’re done, click “Stop”, and CycleMeter saves the information. You can look back at previous days on the calendar.

Cyclemeter has a slew of other features, like sharing via Facebook, Twitter or Daily Mile, competing against yourself or someone else, and a bunch of nice ways to visualize your results. You can also export all of the data, so you’re not locked in if you want to move to something else, or just want to play with the numbers yourself. All of your data can be backed up to iCloud as well, so you won’t lose it if you run into a tree and shatter your iPhone.

You Need This

At $4.99 Cyclemeter is quite a value when you consider what it replaces. If you bike or run, I’d highly recommend it. You can buy it on the App Store.

How to Use Prismatic to Discover the News You Care About

As the title of my blog implies, I’m a curious person. I like learning, and I’m addicted to keeping up on the latest news about things I’m interested in: programming, design, and the like. Sometimes I find it hard to keep up with it all. About a month ago, I discovered Prismatic, and it’s changed how I read the web by making it easier to find the news that I care about.

Prismatic scans all of the links that come across Twitter (that’s a lot of links), and categorizes them using some fairly sophisticated software (written in Clojure), and then matches those links to you based on who you follow and what you tweet about. It sifts through all of Twitter to find the stuff that YOU care about. That’s powerful.

Getting started with Prismatic is easy. Sign in and link it to your Twitter accounts and it will present you with a list of articles that you will like, based on your Twitter activity. You can also tell Prismatic what you’re interested in, by adding, well, interests. They seem to have just about everything, so whatever you’re looking for is likely to be there.

Prismatic gives you the stuff you care about presented in a single “river of news” format - as you get to the end of the page, it loads more articles for you. They pull out a little it of the article to give you an idea of what it’s about, and show you a sampling of what people on Twitter are saying about it. Each article that you see has a couple of controls on it that let you tell Prismatic what you like and dislike, which will adjust what it shows you based on that feedback. In theory, at least, it will learn over time what you want to see and show you more of what you like, and less of what you don’t.

I’ve been using Prismatic for a month now, and I’m completely addicted. It’s a great way to find news about the things you’re interested in, has some great features, and there’s certainly more to come (an iOS app is in the works according to their blog). Try it out and let me know what you think.

How to Make the Best Cup of Coffee at Home

I am a huge fan of coffee and over the years I have tried a lot of different means of preparing it. I currently own a french press, a drip maker, and a stovetop espresso pot. All of these make good coffee, with each having its own set of pros and cons. Last year, however, I discovered the best method for brewing coffee: Aeropress. It makes delicious coffee, takes up almost no space in your kitchen, and cleanup is easy.

The Aeropress works kind of like an espresso maker, though at a much lower pressure. The coffee it produces is espresso strength. This means you can drink it like an espresso or use it to create espresso-based drinks like Cafe Au Lait or Capuccino. I add hot water to mine to make an Americano.

Since getting the Aeropress, it’s been the only method I’ve used to brew coffee. It’s replaced the drip machine in our kitchen. It takes up almost no space, travels well, and produces consistently great coffee. Perhaps the greatest feature is the one I haven’t mentioned yet: price. It will set you back a little more than \$20, much lower than a decent home espresso machine or even a drip coffee maker. It’s great for traveling or camping. Any place you can make hot water, you can make coffee with the Aeropress.

One caveat: you will need a coffee grinder, or a place to buy beans that will grind them for you. Coffee ground for a drip coffee maker won’t work (which rules out pretty much all pre-ground coffee you would get at the store). You need grounds that are somewhere between espresso and drip. You’re really going to want a conical burr grinder, similar to this one: I suspect if you’ve read this far than you either have one or are willing to buy one.

In summary: If you enjoy great coffee, you need an Aeropress.

To get an even better idea of how it works, check out this short video:

Cool Tool: If This Then That

I tend to be a little skeptical of the new and shiny. There is often a lot of hype about how life changing some new website or gizmo is going to be. Sometimes, however, something comes along that does live up to the hype. The latest one I’ve found is a rather nondescript site called ifttt. The URL is strange, until you understand that it stands for “If This Then That”. What the site does is allow you to automate bits of your digital life by watching for events (the “if this” portion), and then taking an action (the “then that” portion). It lets you tie together the various sites and services that you use, allowing you to do even more with them.

This warrants an example, perhaps.

Let’s say you take lots of pictures of your kids with Instagram. And let’s say your mom (or grandmother) isn’t the most tech-savvy user. She uses email, but doesn’t have a smartphone and doesn’t want one. She doesn’t use Facebook or Twitter. Wouldn’t it be nice if you could automatically email any pictures you post to Instagram to your mother so that she doesn’t give you a guilt trip for never sending her pictures of her grandkids (hypothetically speaking, of course. Any resemblance to my own mother is purely coincidental). Ifttt can do that for you. What about those receipts you get emailed to you every month that you need at the end of the year for taxes? Wouldn’t it be nice if you could get those sent to a specific folder in Evernote so that they’re all in one place? Ifttt can do that for you. You know all those links that come across your Twitter stream that you don’t take the time to read? Wouldn’t it be cool if you could just favorite the tweet and have the link in the tweet automagically added to your Instapaper account? Ifttt can do that for you.

So, how does it work?

Ifttt is built on the idea of triggers, channels, tasks, and recipes.

Channels represent the hooks into the websites you use. Gmail, Google Reader,Twitter, Facebook, Evernote, Dropbox, Instagram, etc. If it’s a popular service, ifttt probably has a channel for it. There are also general channels for things like RSS feeds that aren’t tied to a specific service.

Triggers then are events that occur on these services. A picture is taken on Instagram, a new email appears in your Gmail account, someone new follows you on Twitter. Triggers allow you to specify when you want to take action. They also frequently allow you to specify criteria. In the case of Gmail, for example, you can specify that you only want to take action if the email is from a specific person, or contains a certain word in the subject line. If you’ve ever created filters in Gmail or Outlook, it’s the same concept, but applied on a much larger scale.

Tasks, like Triggers, are built on Channels. They allow you to perform tasks in reaction to a trigger. Examples of tasks would be things like:

  • Sending an email
  • Creating a new note in Evernote
  • Sending a tweet
  • Send an SMS message

Tasks let you use data from the triggers (ie the subject line in an email) in your task. So you could, for example, use the subject of an email to populate the subject of your note in Evernote.

Recipes are pre-made combinations of the other items, created either by the team at ifttt, by other users, or yourself. There are a lot of them, and chances are you will find a lot of them that you can put to use immediately. Here are a few that I’m either using myself or found interesting:

You get the idea.

I’ve only been using this service for a couple of months, but I’ve already discovered a lot of useful things I can automate with it. Posting things to Twitter for me, taking receipts that I get in email and adding them to my Tax Folder in Evernote, etc. This saves me time and makes my life easier. What’s most exciting though is that there is that this service is very young, and has a lot of potential. There are a lot more channels, tasks, and triggers yet to be created. Perhaps one day they will add the ability to do conditionals, or even more complex logic, using JavaScript or some other language.

It’s early, but I see a lot of potential here. Go create an account and try it out yourself. What can you automate?

Steve Jobs

Like Marco Arment I’m not qualified to eulogize Steve Jobs, but I owe a lot to him so I need to say something.

My first computer was an Apple //c. 1985. I spent a lot of time on that computer. A lot. Probably an unhealthy amount.

I was a nerdy kid to begin with, and I instantly fell in love with it. I spent endless hours on that computer. Playing games, writing programs in BASIC, and generally just exploring the new world that it opened up for me. Those hours spent in front of the computer paid off. I went on, years later, to write code professionally. It’s not an exaggeration to say that owning that Apple //c shaped who I became.

I’ve admired Steve Jobs since I was old enough to know who he was. When he founded NEXT, I desperately wanted one of those beautiful (and expensive) systems. I’ve seen every movie Pixar has put out. I’ve been inspired by his business sense, his design savvy, and his drive. He’s accomplished more in his abbreviated lifetime than most people could accomplish in ten. His Stanford commencement speech stands as one of the most inspiring things I’ve heard.

My latest computer is a MacBook Air. I spend a lot of time on that computer. A lot. Probably an unhealthy amount.

Godspeed, Steve Jobs.