Poop in your beard? What about in your code?

Note: this post was written over a year ago, but languished as a draft. I think the ideas are still important to think about so I tidied it up and posted it. –Doug In the echo chamber of the internet, a story recently made the rounds about how “…Beards Are Covered In Poop.” Of course this… Read More

Bootstrap 4 Left Align Card Image

Bootstrap 4 moves to the concept of cards (instead of the old panels and wells of Bootstrap 3). Cards come with some cool variations, one of which is a top or bottom image cap, like this: I wanted a variation that doesn’t exist, a left “cap” image for the card. Here’s how I did it:… Read More

Mocking Drupal 7 Core Functions in Tests

Recently I needed to test a function that involved the drupal_valid_token function. There are no hooks for this function and it will generate new tokens with each user session. I needed to verify an external API’s cryptographic signature and a part of that signature involved a nonce for which I used the drupal_get_token function. I… Read More

The voice of the future

Slate discuses the power and future prevalence of voice powered technologies. There’s a lot to think about here, three takeaways for me: * knowing what sources (biases) and algorithms are powering your life will be critical * APIs for e-commerce especially will become very important * the convergence of voice control as VR is starting… Read More

Invalidating form tokens in Drupal 7

I wanted to invalidate the CSRF token generated by drupal_get_token once the user had submitted a form, to ensure that we didn’t get a double submit. Drupal 7 generates tokens based on a combination of things, including the PHP session id. A simple call to session_regenerate_id() will cause the token generated by drupal_get_token to change… Read More

Drush Aliases and SSH aliases

Drush is a pretty handy tool. I use it whenever I’m working on a Drupal site. I also make extensive use of SSH aliases. It doesn’t seem to be documented anywhere but I discovered that you can combine both. If you have a SSH alias that might look something like: Host example Hostname ssh.example.com Port 22… Read More

The SEP and sustainable business models

Endowments have been something that I’ve thought a lot about over time. This recent article on Quartz started me thinking about them again: “This free online encyclopedia has achieved what Wikipedia can only dream of.” Essentially SEP is a project to amass a resource that is authoritative in a way that Wikipedia cannot be. What… Read More

Cat Door/Window Update

This is the current state of the cat door/window project. I had several upgrades that I wanted to get done to enhance it, but I’ve not had the time to invest and it was working well for our needs. Since I built it two years ago ( it’s served the needs of three cats quite… Read More

How Lyft could beat Uber

Uber is arguably a juggernaut. They’ve grown like crazy and attracted a lot of press (not always for good things). They’ve raised nearly $6 billion(!) and are now in 55 countries. Lyft has ‘only’ raised $862 million and they’re in just 60 cities around the US. I’ve used both services several times and I’ll likely… Read More

Hacking WordPress Screen Options

**Warning, Nerd Alert. Code Samples Will Follow** As a developer I notice things about the WordPress interface that a lot of people overlook. One feature that’s pretty awesome to have is the ability to show/hide different columns and meta boxes on various screens. Here’s some of those options on the “Add Post” screen:   A… Read More