StringScanner: Regular Expressions Made Better
I’ve been using ruby’s StringScanner class a lot lately. It “performs lexical scanning operations on a string” which is a fancy way of saying “read this string from left to right and stop at certain...
View ArticleWhat now?
Trump was elected. My goal now is to help people who need it. I’ve got a lot of work to do. But how do I choose what to do? Someone once compared learning how to be an activist like leveling up a...
View ArticleSpeeding Up PostgreSQL Database Imports
Instead of using one process to import data, you can use multiple with the --jobs=N flag, where N is the number of logical cores you have. It looks something like this: pg_restore --clean --no-acl...
View ArticleThe Stages of Video Game Obsession
While playing a video game, I’ve noticed that I’m usually experiencing one of five stages: Ramp up This consists of character creation, tutorials, looking up what things mean, and other beginner tasks....
View ArticleColorClockSaver
Today I’m releasing ColorClockSaver. It’s a screensaver that: Displays the time like a digital clock Displays the time as a hex color code Changes the background color based on the time It looks like...
View ArticleApple's Watch Series 3 Webpage
Have you seen the new Apple Watch Series 3 page? It’s incredible. Whether you care about the device itself, it’s a pretty amazing feat of web development. If you have some kind of smooth scrolling...
View ArticleA Week with Lucky
A little over a week ago, thoughtbot announced they were building a new web framework called Lucky. It’s built with Crystal just as Rails is built with Ruby. Its goals are best summed in the...
View ArticleComparing Rails and Lucky: Partials
If you’re a Rails developer, you’ve likely used partials. They’re a great way of splitting up a view into many reusable parts. Consider displaying a search form: <nav class="main"> <%= render...
View ArticleThe Rails presence Method
Rails has a convenient method that I discovered the other day: presence. All it does is return itself if present?. It’s a pretty simple method: def presence self if present? end The documentation has a...
View ArticleMy Music Workflow
Finding good music isn’t so hard these days. It’s easy to open Spotify (or whatever) and take in the suggestions. Check out generated playlists, songs sorted by genre, and even good ol’ music blogs....
View ArticleRandom Access Permutations
Years ago, I was building a game. It was a puzzle game on a gridded board: clear the board in as few clicks as possible. The order you clicked mattered. It’s fun and I’ll blog about it someday.A friend...
View ArticleUnderstanding SQL GROUP BY
Finally, you too can understand how to use GROUP BY in your SQL queries.
View ArticleHow We Set Up Our Diversity, Equity, and Inclusion Council
Some specifics on how we work towards a more equitable workplace.
View ArticleQuantifying Privilege
Here’s an interesting thought exercise. Of the following list, consider if you identify with the left side or the right side:Male Female; Intersex Cisgender Transgender; Other non-cis genders...
View ArticleMaking the Case for Practicing Diversity, Equity, and Inclusion at a Company...
We invest in DEI because it’s the right thing to do.
View ArticleWrite Readable Code
Techniques and reasons to optimize your code for people, not metrics.
View ArticleBlender Shader Contour Maps
For a few years now I’ve admired contour lines. Used topographic maps they cleanly show 3D terrain in 2D space. The idea is to draw a line at certain height intervals: 0ft, 10ft, 20ft, etc, to outline...
View ArticleAnd Not But
We all know Bob at work. Bob is a brilliant colleague. Bob does a great job on every project and is an amazingly sharp thinker. But Bob can be rude sometimes and working with him is a mixed bag....
View Article