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