D&D Class Options
Class and subclass options for Dungeons & Dragons 5e for all published books, Unearthed Arcana, and the Elemental Evil Players Companion.
Overlay Text on Responsive Images
When putting text over an image, readability can be a concern. By combining the responsive HTML5 <picture> container with some best practices for image overlays, we can achieve a good result.
Dice Bag of Nine Pockets
More a Handy Haversack than a Bag of Holding
Kvothe the Player Character
Kvothe the Bloodless. Kvothe the Arcane. Kvothe Six-String. Born to a runaway noble and the leader of a troupe of transient Edema Ruh entertainers. Apprentice to a travelling arcanist and tinker. Street urchin in Tarbean, student at the University, Talented musician at the Eolian, Adem-trained swordsman, and (pen?)ultimately a tavern keeper. There's a good amount of material here to work into a player character.
Conan: A Thief, a Reaver, a Slayer
A review of The Coming of Conan the Cimmerian by Robert E. Howard
Inspirational Reading: The Appendix
Inspiration for all the fantasy work I have done stems directly from… being an avid reader of all science fiction and fantasy literature.
Using HTTP Headers to Secure Your Sites
A Use Case of using Observatory by Mozilla to learn about configuring sites safely and securely with examples for the Heroku Static Buildpack.
D&D Race Options
Race options for Dungeons and Dragons 5e for all published books, Unearthed Arcana, and the Elemental Evil Players Companion.
Call to Adventure
This is a handout I’ve lovingly researched and prepared for my players in a Dungeons & Dragons campaign I’ll be starting soon.
Jekyll on Heroku
Jekyll, the static website generator written in Ruby and popularized by GitHub, is a great candidate for being run on Heroku.
Need a Slug?
Rails provides its own slug generator, so you may not need another gem.
Salary Social Club
Take the Salary Survey and find out how your salary or offer compares to others!
Define a .call() on service objects to stub with Procs.
Advanced Postgres Performance Tips
What do you do when indexes aren't enough?
Vim commands are terse and arcane, but very expressive. See a complex command broken down by clause.
Reading a Postgres Query Plan
Take a guided tour through a query plan for a "simple" SQL query.
Painting a Picture of Mental Health
People with hobbies are generally healthier. They're also at a lower risk for some mental health issues.
Interface With Your Database in Go Tests
Go's interface provides a way to abstract away things like your database for testing.
PGP and You
Learn not only how to use PGP, but why each step is important and how to make decisions when interacting with PGP.
Flash messages with :target
Use fragment identifier to display "flash messages" after form submissions to give users closure.
What Free Speech Isn’t
The Constitution of the United States limits Congress from making laws to limit the freedom of speech of United States citizens.
Use One Field to Store Names or Addresses
Collect names & addresses from users in a single field, not structured forms.
Form Filling is Formulaic
Filling out a form with Capybara is tedious. Formulaic, makes the process less repetitive and more fun.
Don’t Talk to (Just) Me
Company chatrooms aid communication, especially across multiple locations; they provide an archive for past conversations for those who were not around; and they can serve to refresh the memory of those who were.
How to Accidentally Learn Vim
I have a confession to make: I wasn't always a Vim user.
Multi-Table Full Text Search with Postgres
Easily searching across an application’s data is a pervasive need. If you are lucky, you can get away with simple sorting or searching on a single column, but it is more likely that you need full text search across multiple models, all from a single search field.
Use RSpec.vim with tmux and Dispatch
Use Dispatch to open new tmux splits to run tests async.
An “Iceberg Class” is loosely defined as a class with more private than public methods, but we will be specifically talking about those classes with only one or two public methods (other than an initializer).
External Posts in Jekyll
If you contribute to more than one blog, you may want to have all of your posts show up in a single stream, even if they aren’t hosted on that same site.
Store Page Titles in I18n
While the <title> element is one of the only required tags in HTML, it is often overlooked by developers and designers alike until the end of the development process.
Apples and Oranges
This is probably the best cocktail concoction I have ever created.
crontab: temp file must be edited in place
Solution for error crontab: temp file must be edited in place
Google Authorship on Giant Robots
You may have noticed a recent addition to thoughtbot’s blog posts. We concluded an experiment to add a “Written by ” byline and link the author’s name to their Google+ profile.
Sandi Metz’ Four Rules for Developers
Four rules for clean and maintainable code from Sandi Metz
It’s for the Orphans!
I often come across GitHub Pages branches (gh-pages) branches that are simply forks from the master branch of the repository.
5 Useful Tips for a Better Commit Message
You’re already writing decent commit messages. Let’s see if we can level you up to awesome. Other developers, especially you-in-two-weeks and you-from-next-year, will thank you for your forethought and verbosity when they run git blame to see why that conditional is there.
Love Your Eyes
You look at code all day. Make it look nice with Pitch.
Wrong, Sir, Wrong!
You are wrong about a few things, and that is okay.
How to Write a README
There is a science and an art to writing an effective README for an open source project.
Strong Parameters as Documentation
Besides moving attribute whitelisting to the controller rather than the model, Rails 4’s move to Strong Parameters over attr_accessible provides great documentation about the data with which records are being created.
Stop Counting Hours
An Open Letter To the Management of (Generally) Small Companies with Internal Software Teams
Piracy is a Service Problem
Piracy is almost always a service problem and not a pricing problem.
Thoughts on the Google Reader Redesign
I loved Google Reader, but Google ended it in favor of Google+