Oh, The Huge Manatee

A blog about technology, open source, and the web... from someone who works with all three.

Getting My Notes Out of Evernote

The Why

I’m an obsessive note taker. Meetings, ideas, to do lists, grocery lists… The act of writing really helps me remember, so I’ve been writing everything down since I was a teenager. For years I had a thousand text documents scattered around my computer. In 2008 I discovered that the act of writing isn’t nearly as effective as the act of searching, so I resolved to start taking notes in a central, searchable, sync’ed system. In short, I jumped on the Evernote train.

Nowadays, it seems like every time I turn around, Evernote has found some more bloat to add. First it was photos and videos, then to do lists and Reminders. Then came poorly-implemented sharing, gro…

Moving to Amazee Labs

About a month and a half ago, I left my position at Forum One to start work on a project with Amazee Labs. Yes, a month and a half is an eternity in Internet-Time, but better to blog about it late than not at all!

I loved my position at Forum One. I got to work with worthwhile clients like Oxfam and United Way, I got to solve interesting and tricky Drupal problems, and I got to work with some truly brilliant colleagues. I strongly recommend it as a great place to work. But it was always a challenge dealing with my visa situation (contrary to popular belief, I am Canadian – NOT American!), and despite heroic efforts we just couldn’t find a way to make a permanent relationship work.

Drupal is an interesting field in which to work, and there’s a lot of momentum for good developers. I chose to work with Amazee Labs because they are some of the best at what we do. I’ve always …

Some Git Log Magic

Today I got to generate git statistics for my team. It’s more fun than it sounds! First of all, it’s always entertaining to learn just how flexible git’s reporting can get. Secondly, it’s a chance to dive back into my old sysadmin tool kit and play with awk, sed, and friends.

There were a few questions I wanted to answer about one particular developer’s input. I’m concerned that he is working too much after hours. All night crunch sessions are for amateurs, and I’m trying to break him of the habit. Here are my questions:

  • What proportion of his commits were generated after hours?
  • Which tickets did he work on after hours?
  • Which after hours tickets were the biggest, generating the most commits?

First I had to set some standards: “after hours” is defined as “be…

An Open Letter to Wired Magazine

Dear Wired – I read your post about the changes in ad blocker policy on your site. Thanks for writing in such an open and respectful tone; it’s clear you care about your readers and want to find a reasonable way forward.

Unfortunately the post fails to address the REASONS that your readers use ad blockers. If only you had gone a little bit farther in the post and offered specific promises in exchange for being whitelisted, I think you would keep a much larger proportion of your readers.

As an example, here are some promises you could have made that would have convinced me.

  • Third party scripts will be kept to under 33% of page weight. (They’re at ~50% for this article, and that’s with a 1.1MB gif in the content!)

  • We will respect “do not track” headers in your browser (or settings on your Wired account) by excluding you from…

How Drupal Should Handle Client-side Framework Obsolescence

Today I read a great blog post from Dries: Should we decouple Drupal with a client side framework?. As usual, Dries puts a lot of thought into his writing, and braves a shitstorm of responses by laying his thinking bare while he’s still mulling it over. I couldn’t resist adding to the storm.

I completely agree that Drupal would benefit from figuring out a standardized approach to decoupled front ends. I think Dries is spot-on in supporting a “progressive decoupling” model as a great best-of-both-worlds response that can happen within 8.x. I would frame the problem a little differently, though.

The thing is, we already HAVE embraced a framework and shipped with it in core: backbo…

Drupal 8 RC 1 Is Out! What Now?

Last night (my time) I got the good news over twitter:

That’s right, Drupal 8 has it’s first release. But what does that mean? Is it done? Can I start using it yet? What kind of changes are coming? Will dawehner get to sleep, at last?

Are we there yet?

Despite all the rejoicing on social media, this isn’t the final release for Drupal 8 – it’s only the first Release Candidate. This means that we have (officially!) 0 “critical” bugs left to fix in Drupal 8. That means exactly what it sounds like: there are no critical, world-ending bugs left… that we know of. Just like any software product, we’ll continue to discover critical issues through its entire life cycle. We’re still finding occasional critical issues in Drupal 7 almost five years since its first release candidate; that’s just a part of supporting a piece of software over the long term. The RC phase means that while Drupal 8 is stable enough to use, we’re still discovering critical bugs a little too frequently to re…

El Capitain Broke My Developer Stuff! Here’s How to Fix It

Last night I installed OSX’s new “El Capitain” update, and it broke most of the tools I use in my daily life as a developer, including homebrew and git. Here are the steps I had to follow to get everything working again.

1) Disable System Integrity Protection

System Integrity Protection is a new feature of OSX, also called “rootless.” As the nickname suggests, it creates another level of access above your root account. The nerfed root account can’t modify anything in a (broad) list of system files, folders, or processes. This makes sense for most users, who blindly enter their sudo password for any installer that asks. It is not so good for developers, who regularly use these folders. Homebrew is one application that expects access to /usr/local, a protected folder. Other applications that are busted by SIP are OSXFuse, MacGPG, Git… the lis…

Bundled TV Pricing Will Come Back From the Dead

Everyone is excited these days about the death of ESPN, particularly as evidence of the death of “bundle priced” Cable TV. Consumers are supposed to be excited that soon they will only have to pay for the content they want. Don’t get too excited yet.

Let’s remember the basic purpose of bundled cable TV: for content producers, cable company bundles provide an easy, single outlet for their content. It’s “somebody else” who will get the content to their viewers, sell advertising, and collect payment. For consumers, bundles provide a packaged set of channels that’s easier to manage (and price) than a bunch of individual contracts.

Apart from whatever level of collusion exists in the TV world, the prices for bundles have reached some sort of equilibrium: basic cable TV with Internet costs a…

How the World Sees Drupal - the Dutch PHP Conference 2015

One of the most exciting parts about the switch to Drupal 8 is the rapprochement of the Drupal community with the rest of PHP. This weekend I spoke at the Dutch PHP Conference in Amsterdam, where I got to be part of the vanguard of Drupalists reconnecting with the larger PHP world. The experience had a big impact on my perspective of the future of Drupal as a platform and as a community.

For many years Drupal was quite separate from the rest of the PHP universe. I would hear comments like: “I don’t know PHP. I’m a Drupal developer.” On the other side, our platform’s focus on accessibility for new and learning developers meant that many mainstream PHP coders considered Drupal a repository for poor code…

Troubleshooting Android Error -505 From Google Play

I recently got a new Android phone, and very quickly had trouble installing some of my favorite apps. Google’s Play Store downloads the app successfully, then presents me with “Unknown Error -505”.

"Error 505"

This error message means precisely nothing. It means “something went wrong during installation, and we’re not telling you what.” This drives me crazy. This blog post is about how to get more information out of that error message, and how to fix the problem.

Your device is not going to give you more information on its own. Instead, you need to install ADB, the “Android Debug Bridge” which lets you type commands directly to your Android device over a USB connection. It’s not hard to install, so go and set that up now.

Next, you will have to make sure your Android device permits you to use ADB. On the phone, go to Settings > About Phone, and scroll down to where you see “Build Number” listed. Tap on “Build Number” until you see a popup telling you that you are now a “developer”. Then go back to Settings, and tap on the new “Developer Opt…