Jake Worth

Blog of Jake Worth, software engineer in Maine.

Latest Posts

Find the Breaking Git Commit

Published: May 17, 2022 3 min read
  • git

Something is broken, you can’t figure out why, and you’re wondering: how and when did this break? Maybe there are a lot of changes to…

Be Fast

Published: May 06, 2022 2 min read

Great programmers can be great because they are fast. I’ve sunk a lot of time into being proficient at Vim. I’ve used it as my text editor…

Commit Part of a File in Git

Published: May 06, 2022 2 min read
  • git

You’ve been working on a big set of changes, and haven’t committed to Git yet. Now, you want to commit some, but not all, changes to a file…

One Way Out of a Function

Published: May 02, 2022 3 min read

A programming style that I like was described to me as: “one way out of a function.” The idea is that early returns cause confusion, and…

Am I Too Old to Become a Programmer?

Published: April 28, 2022 1 min read

“The best time to plant a tree was twenty years ago. The second best time is now.” — Chinese proverb I mentor adults who are learning to…

It's Harder to Read Code Than Write It

Published: April 25, 2022 3 min read

In Things You Should Never Do, Part I , Joel Spolsky narrates Netscape’s ruinous decision to rewrite their browser from scratch. This…

On Code Screenshots

Published: April 19, 2022 2 min read

When I’m helping someone debug and they share a screenshot of code, I know that helping them just got harder. A common antipattern on sites…

Hash Fetch Instead of If/Else

Published: April 16, 2022 2 min read
  • ruby

Conditional logic has its place, but often there’s a better alternative. Today, we’ll look at a Ruby solution: a hash with . My thanks to…

Get It Working First

Published: April 13, 2022 3 min read

I recently completed a winter survival course, where we had to a build a shelter with just the contents our packs, in ten minutes…

My psql Config

Published: April 12, 2022 2 min read
  • postgresql

RC files, thought to stand for “run command” files, are read by a program during startup. The file that configures the PostgreSQL REPL psql…

Exit Vim "Ex" Mode

Published: April 06, 2022 1 min read
  • vim

How does one exit Vim “Ex” mode? But first, how did you get into “Ex” mode? Probably with : If you got into this mode by accident, as I…

How to Read a Stack Trace

Published: April 05, 2022 4 min read
  • debugging

A stumbling block for many people when debugging is reading the stack trace. Today I’d like to discuss this skill. What is a stack trace…

RSpec.describe vs. describe

Published: April 02, 2022 1 min read
  • ruby

RSpec’s block has two common syntaxes. Which should you use? Disclaimer: they both work. But I’m assuming since you’re here, you’re…

Your Demo Doesn't Need Auth

Published: April 01, 2022 2 min read

When building a demo, I believe you often can and should skip authentication. Picture this: a junior engineer or team demoing an MVP. Smart…

The Importance of a Bug

Published: March 30, 2022 3 min read

In today’s post, I want to talk about the importance of a bug. I remember the first bug that I shipped to production. I was upset that I’d…

Learn From It

Published: March 25, 2022 2 min read

You were stuck , and now you aren’t. Congratulations! Before you move on, I think that it’s vital to stop and learn from it. It’s the best…

Make Renames Easy

Published: March 22, 2022 3 min read

“There are only two hard things in Computer Science: cache invalidation and naming things.” — Phil Karlton Today I want to talk about re…

How to Read Postgres Docs

Published: March 21, 2022 2 min read
  • postgresql

Have you ever tried to read the documentation for a Postgres command? Although many consider Postgres’ docs best-in-class, they include…

Build

Published: March 16, 2022 1 min read

If I could give one piece of advice to anyone learning to program: build. This advice might be most helpful to beginners. But it’s been…

Try Every OS

Published: March 14, 2022 1 min read

A perennial conversation in code boot camps where I’ve taught: which operating system is the best for web development? I think students see…

How to Make a New Directory and File in Vim

Published: March 11, 2022 1 min read
  • vim

How does one create a new directory and file, without leaving Vim? Assuming you’re running a shell, I would shell out for either of these…

Autoformat Your Code

Published: March 10, 2022 2 min read

Auto-formatting code is good, and you should be doing it all the time. Why? It helps you write better code in real time, it preempts trivial…

Don't Copy-Paste Dotfiles

Published: March 09, 2022 1 min read

A protip for dotfiles/configuration files: don’t add anything to them that you haven’t tried to understand and confirmed you want to have…

How I Review Code

Published: March 06, 2022 4 min read

Code reviews are important on many teams. Do them well, and your code ships quickly and safely. Do them poorly, and your code ships slowly…

How I Make Sure I Understand a Feature Before Building

Published: March 02, 2022 2 min read

Not ready for work: “Let’s add social login to our website”. Ready for work: “Logged-out customer sees Google login button,” with detailed…

Don't Stay Stuck

Published: March 01, 2022 1 min read

We’ve all seen this: a frustrated coworker hunched over a computer after hours, flailing alone against some impossible bug. Go home…

Why Vim

Published: February 23, 2022 2 min read
  • vim

I’ve been using, teaching, and stanning Vim since almost the beginning of my programming career. Yet, when asked to explain this preference…

On Disabling Tests

Published: February 22, 2022 2 min read

I want to talk about a common technique: disabling problematic tests to allow a feature to ship. I challenge this practice because I believe…

Count to Ten

Published: February 15, 2022 1 min read

A trick that that has helped me as a programmer: count to ten before killing a process. I learned this in IT. When a screen froze, the IT…

Avoid Similar Variable Names

Published: February 14, 2022 1 min read

A convention I see, particularly in Ruby tests, are variable names like this: Swap these out for and , or and , and you have a very…

Alias Terminal Commands

Published: February 10, 2022 2 min read

Our goals in the terminal should be precision and speed. Speed matters because slow typing is friction between thought and action. Any…

Frozen String Comment: YAGNI

Published: February 09, 2022 4 min read
  • ruby

Open a production Ruby file, and you’ll often see this magic comment at the top. Today I’d like to argue that most Ruby files do not need…

Why I Don't Point Bugs

Published: February 07, 2022 2 min read

I generally don’t add Agile story points to a bug ticket and in this post, I’d like to explain this preference. I’ll cover terminology…

Weekly Summary Technique

Published: February 04, 2022 3 min read

I’ve written a weekly summary for myself and my teams for years. In this post, I’ll explain why I do and how I use this tool. Why Write a…

Opt Into Beta

Published: February 02, 2022 1 min read

Here’s a technique I’ve used on launches: instead of a big scary waterfall, or, in tandem with a phased release, let customers opt into a…

Finding a Mentor

Published: January 31, 2022 3 min read

“How do I find a programming mentor?” Let’s refine the question. What kind of advice do you need? If it’s growing your skills and advancing…

Use a Dev Email

Published: January 29, 2022 1 min read

An engineering technique I recommend: when you sign up for any service, even on a side project that’s just getting off the ground, create an…

Answering Questions on Stack Overflow

Published: January 27, 2022 3 min read

I enjoy answering questions on Stack Overflow . It helps me learn and practice reviewing code. In the beginning, it also unlocked site…

Hard-Code Your Expectations

Published: January 25, 2022 2 min read

Here’s an assertion I see in tests: I push back against code like this because I think that hard-coded expectations are almost always…

Presence is Boolean

Published: January 24, 2022 2 min read

Here’s a problematic pattern I see a lot in frontend code: When you split and in two, it’s very easy to accidentally put the app into…

"I Think That..."

Published: January 19, 2022 1 min read

An idea I find useful as an individual contributor is starting my consulting with this phrase: “I think that…“. The idea is to let your…

Bug Reports are Gold

Published: January 15, 2022 1 min read

Me : Hey, I’m experiencing an issue with your software. Here’s a detailed bug report. SaaS CTO : What you’re describing isn’t possible…

Get Good

Published: October 13, 2021 2 min read

What should you focus on at the beginning of your career? My answer is: being really good at programming. I wish I’d heard this advice…

Organizing Your JavaScript Imports

Published: August 31, 2021 1 min read
  • javascript

JavaScript imports can be a confusing, churning mess. In this post, I’d like to share the way I handle this part of writing JavaScript. Why…

When Should I Not Refactor?

Published: August 26, 2021 2 min read
  • refactoring

Refactoring (noun): a change made to the internal structure of software to make it easier to understand and cheaper to modify without…

The Tutorial Anti-Pattern

Published: August 24, 2021 3 min read

Here’s a scenario: you’re applying for your first tech job. You’ve found a bunch of tutorials like Rails Tutorial and you’re speeding…

Consultancy Cycles

Published: August 04, 2021 2 min read

This week in conversation I made this argument: Working at a quality software development consultancy like Hashrocket early in your…

Week in Review: Week 26, 2021

Published: July 02, 2021 2 min read

Here’s my weekly review. Previous Action Items None; I haven’t done a review in a while. It’s good to be back. What Went Well 🎉 This week I…

Week in Review: Week 18, 2021

Published: May 07, 2021 2 min read

This week I’ll be using a weekly standup format: what I did this week, what I plan to do next week, and issues I’m encountering. This Week…

Week in Review: Week 16, 2021

Published: April 23, 2021 2 min read

Opening Thought “Don’t look for the next opportunity. The one you have in hand is the opportunity.” —Paul Arden Consistency Was I consistent…

Week in Review: Week 15, 2021

Published: April 16, 2021 3 min read

I took last week off. Here’s my weekly review; I’m borrowing Ben Kuhn’s format. Check out his blog– it’s amazing. Opening Thought “Our…

Week in Review: Week 13, 2021

Published: April 02, 2021 2 min read
  • react

Here’s my review for this week. Previous Action Items None. What Went Well My pair and I ended a client engagement we’d been on for almost a…

Exploring the JWT Sub

Published: April 02, 2021 1 min read

As I explore JSON Web Tokens (JWT; pronounced ‘jot’ if you enjoy correcting people), I’m learning the rules and testing, much like a…

Week in Review: Week 12, 2021

Published: March 27, 2021 3 min read

Here’s my weekly review for this week. “Regardless of what we discover, we understand and truly believe that everyone (especially Jake…

Week in Review: Week 11, 2021

Published: March 20, 2021 2 min read

I’ve decided to resume the ‘weekly review’ practice that was a part of this blog for some weeks back in 2015. My goal will be to talk about…

Proxy Pattern

Published: February 26, 2021 1 min read

I had the opportunity recently to implement a simple version of a proxy class. In this post, I’d like to talk about what a proxy class is…

Do the Hard Things First

Published: January 25, 2021 1 min read

“First thing in the morning, eat a live frog, and you can go through the rest of your day knowing the worst is behind you.” — Mark Twain An…

Exercism Raindrops in Python

Published: December 06, 2020 2 min read
  • python

I’ve been learning a bit of Python this Fall to facilitate conversations with a mentee. In this post, I’m going to share the first Python…

Programming Resources for Beginners

Published: December 05, 2020 3 min read

A self-teaching, learning programmer asked me the following question: Can you recommend any resources or sites that you go to with questions…

My Annotated Vimrc

Published: November 26, 2020 4 min read
  • vim

I am obsessed with Vim. Folks who’ve programmed with me, or attended the Vim Chicago Meetup when I was an active organizer, can attest. Vim…

Essays on Programming I Think About a Lot

Published: October 29, 2020 • Updated: April 23, 2022 9 min read

Programming is a game of abstractions, and we programmers traffic in ideas. When I find an idea that resonates with me, I turn into an…

My Development Roadmap

Published: October 20, 2020 4 min read

I’ve been working on a development roadmap for my projects, and wanted to share my process. Consider this my recipe to turn an idea into…

You Have New Mail

Published: October 16, 2020 1 min read

Here’s a familiar scenario: you open a new terminal, and before the prompt appears, you see the following. You have new mail. What’s going…

Printing Code on OSX

Published: October 13, 2020 1 min read

A few times over the years, I’ve had to print out code that I’ve written onto physical paper. I have actually heard that some teams do team…

Restore a Heroku Database Locally

Published: October 11, 2020 1 min read

Sometimes a post is just for me, and this is likely one of those posts. Several of my open source projects run on Heroku, and I often want…

Duplicate your Development Branch for QA

Published: October 09, 2020 1 min read
  • git

I’m working on a team where we keep a clone of the branch (the main place where work is done), used to deploy to a QA environment. The…

How I Clean Up JavaScript Dependencies

Published: August 03, 2020 1 min read
  • javascript

Unused dependencies are bad: they increase the size of your project, slow down your processes, require upgrades, and send incorrect messages…

Introducing React Explained

Published: June 12, 2020 1 min read
  • react

Today, I’d like to introduce my newest project, a free weekly newsletter for React learners called React Explained . 🎉 For as long as…

South Dakota v. Wayfair, Technology, and Your Business

Published: May 07, 2020 1 min read

Today I published a post on the Hashrocket blog titled ‘South Dakota v. Wayfair, Technology, and Your Business’. It covers a unique…

WebAssembly: The Next Language of the Web

Published: January 30, 2020 1 min read
  • wasm

Interested in WebAssembly? At Hashrocket’s Winter Miniconf 2020, I presented my personal one-month audit of this emerging technology. Please…

Searching with Ripgrep

Published: December 30, 2019 1 min read

I’ve been using Ripgrep on my work machine, and for pure performance, it’s tough to beat. Here are two mappings I’ve set up to replace…

A Different Language

Published: October 12, 2019 1 min read

When people who don’t code listen to programmers talk about code, something they say is that it sounds we’re “speaking a different language…

Technologist Reading List

Published: September 28, 2019 3 min read

“Not all readers are leaders, but all leaders are readers.” –Harry S. Truman It’s been said that most programmers read less than one…

Intro to TDD

Published: September 11, 2019 2 min read
  • testing

If one wanted to learn Test-Driven Development, AKA TDD, in 2019, where should they start? It’s worth mentioning first that there are…

How to Prepare for a Technical Interview

Published: August 06, 2019 1 min read

Today, I published a post on the Hashrocket blog about interviewing. It’s called How to Prepare for a Technical Interview . Interviewing is…

Pangram in TypeScript

Published: July 29, 2019 1 min read
  • typescript

I’ve been doing Exercism’s TypeScript exercises, and wanted to share some of my early solutions. A pangram is a sentence that contains each…

Clone All of an Organization's Git Repos

Published: June 11, 2019 1 min read
  • git

Today, using parts of this Gist I found a command to clone all the repos in a Github organization. Here it is, tested on Ruby 2.3: Change…

Neural Networking for Complete Sentences

Published: May 19, 2019 1 min read

This week I wrote a bit of neural networking code for the first time. It utilizes Brain.js to try and recognize if a sentence is…

Interview: Jeremy Huffman, Dialyxir

Published: April 11, 2019 1 min read
  • elixir

Today, I published a post on the Hashrocket blog presenting a recent interview I conducted. It’s titled Interview: Jeremy Huffman, Dialyxir…

Planning Poker: Speed Mode

Published: April 09, 2019 1 min read

Today, I published a post on the Hashrocket blog about rapidly assigning points in a story estimation workflow. It’s titled Planning Poker…

Pick a Good Name

Published: March 08, 2019 1 min read

Last week, I published a post on the Hashrocket blog about choosing good names for things in software. It’s called Pick a Good Name…

Use Yarn Like a Pro

Published: February 23, 2019 1 min read
  • javascript

Last week, I published a post on the Hashrocket blog about my favorite JavaScript package manager, Yarn. It’s called Use Yarn Like a Pro…

Generate Images for Instagram

Published: February 05, 2019 1 min read

Today I released a post on the Hashrocket blog, Generate Images for Instagram . It documents a project I made to generate Hashrocket…

Adventures in Mentorship

Published: January 03, 2019 1 min read

This fall, I participated in the formal mentorship program at the Code Platoon bootcamp here in Chicago, and I wrote about the experience…

Avoiding Code Catastrophes

Published: December 04, 2018 1 min read

Last week, I published a Hashrocket blog post for junior developers, addressing a question I’ve been asked a few times. It’s called…

Morning Reading

Published: November 14, 2018 1 min read

Today I read some technical blog posts that caught my eye over the week. Here’s a summary of each. Beyond Console Log : a breakdown of some…

50 Days of Code

Published: October 31, 2018 1 min read

Recently, I hit Day 50 of the ‘100 Days of Code’ challenge. I’ve been focused on language design, and I’d like to pause and reflect on that…

JavaScript Equality

Published: July 17, 2018 1 min read
  • javascript

A few weeks ago, I built an app with React.js and create-react-app that I call ‘JavaScript Equality’. View deployment here . This…

mgrim: Everything Updated All The Time

Published: July 11, 2018 1 min read
  • git

My current favorite command line alias is , composed of four other aliases: Here’s what this does (starting from a feature branch…

Comprehensive Instructions

Published: July 09, 2018 1 min read

A user opened an issue in Tilex last week that I spent a significant amount of time thinking about and talking about (thanks JB) before…

Autoformat Elixir on Buffer Write

Published: February 17, 2018 1 min read
  • vim

I’ve been working with the Elixir 1.6 autoformatter a lot this year. Part of that journey was adding the following to my local Vim…

The Universal Programming Language

Published: September 17, 2017 2 min read

Recently I tried to answer a question that is common when talking about software. I’ll paraphrase: Why can’t there be an “universal…

How I Talk: My Guide to Tech Public Speaking

Published: August 10, 2017 10 min read

I’ve been giving technical talks for a few years; I keep a list of each one here . Speaking makes me nervous, and it’s a major time…

New Feature Flags in Rails 5.1.3

Published: August 06, 2017 1 min read
  • ruby

Not long ago I created a new Ruby on Rails web application using the Rails 5.1.3 release. Our goal was a Rails API supporting a React.js…

It's Done

Published: July 19, 2017 1 min read

When a stakeholder asks for a change to the software we’re developing, my standard response is, roughly: “Sure thing.” Then later: “I’m…

Don't Build Every Feature

Published: June 20, 2017 1 min read

Mold clay to form a bowl; it is the empty space which makes the bowl useful. –Tao Te Ching There’s a detail about Today I Learned some…

Work Small

Published: June 11, 2017 2 min read

Write programs that do one thing and do it well. –The Unix Philosophy I believe in working small. I love small Git commits and pull requests…

Tilex Progress

Published: June 06, 2017 2 min read
  • elixir

First, some background . Tilex, our Phoenix port of Today I Learned , is coming really well. After a personal hiatus for RailsConf prep, I…

Binary to Decimal Conversion in Ruby

Published: May 04, 2017 2 min read
  • ruby

This week I wrote a small algorithm in Ruby to convert binary numbers into decimal numbers. Here’s the problem description, from Exercism…

You Should Blog

Published: February 11, 2017 3 min read

I created this blog to reflect on my code and development as a programmer. In that spirit, I’d like to make a pitch to anybody reading: you…

First Post in the Semaphore Community

Published: January 25, 2017 1 min read
  • elixir

Today I am pleased to share my first post in the Semaphore community, available here . This is a republication of a post from the…

Reset an Ecto Heroku Postgres Database

Published: January 08, 2017 1 min read
  • elixir

We introduced some breaking database changes to our Phoenix port of Today I Learned on Friday; today I deployed them to staging…

Adding jQuery to Phoenix

Published: January 06, 2017 1 min read
  • elixir

We’ve been building a Phoenix application lately; here’s the backstory . Today I stared porting the Sprinkles of JavaScript ™ to our…

Vim Nonrecursive Mappings

Published: December 17, 2016 1 min read
  • vim

My first PR to a new Vim plugin was merged this week, check it out . For context, vim-termbux is a plugin by my friend Dillon Hafer that…

Examine Your Assumptions

Published: December 05, 2016 2 min read

Pausing to verbalize, examine, and reject faulty assumptions should be one of the first steps in any debugging process. One feature of an…

Porting TIL from Rails to Phoenix: Initial Commits

Published: November 29, 2016 1 min read
  • elixir
  • ruby

Last week, I started a new project: porting Today I Learned from Ruby on Rails to Phoenix (Elixir). The first few commits were pair…

Gold Master Testing: An Introduction

Published: October 26, 2016 1 min read
  • testing

I’ve been researching, thinking about, and preparing to write a Gold Master test recently. Here’s an overview of the technique from the…

Hamming Distance in Elixir

Published: September 12, 2016 2 min read
  • elixir

Today I solved the Exercism Hamming Distance problem in Elixir. Problem Description From Exercism: Write a program that can calculate the…

Sum of Multiples in Elixir

Published: August 27, 2016 1 min read
  • elixir

Today I solved Exercism’s Sum of Multiples problem. Here’s the description of the task: Write a program that, given a number, can find the…

Run Length Encoding in Elixir

Published: July 31, 2016 4 min read
  • elixir

I’ve been working through the Elixir challenges on Exercism.io , to learn the language in the same way James Edward Gray recently attempted…

Learn to Test

Published: July 15, 2016 1 min read
  • testing

What is one skill I could learn to set myself apart from other apprentice candidates? Testing. The web frameworks of today all have mature…

Why Elixir?

Published: July 06, 2016 1 min read

I’ve been learning and using Elixir lately, and loving it. More than once, I’ve been asked some version of the question: why are you…

Writing Elixir Sigils

Published: July 04, 2016 2 min read
  • elixir

Sigils are a mechanism for working with textual representations in Elixir. If you’ve ever made an array of Strings in Ruby with , the API…

Squash Your Pull Request

Published: July 03, 2016 5 min read
  • git

Most pull requests go through a cycle like this: Programmer opens pull request Maintainer gives feedback Programmer makes changes Repeat #…

Recreating Elixir's Enum.sum

Published: June 30, 2016 1 min read
  • elixir

I’m learning Elixir, and today as an exercise, I was challenged to recreate using recursion. For those new to the language, iterates…

Server Side Sorting in Ruby

Published: June 28, 2016 2 min read
  • ruby

Recently a friend asked me a question about sorting in Rails, and I thought I’d share my answer here: I’m working on an app that displays…

What is the best way to learn Rails?

Published: June 14, 2016 1 min read

Original post: https://www.quora.com/What-is-the-best-way-to-learn-rails/answer/Jake-Worth Assuming you are interested in learning on your…

Are web development jobs stable?

Published: June 10, 2016 1 min read

Original post: https://www.quora.com/Are-web-development-jobs-stable/answer/Jake-Worth Yes, as stable as any other job. If you look at…

60 Days 60 Contributions

Published: May 18, 2016 1 min read

For the next 58 days, I’m conducting a personal challenge to get more involved in the open source software community. It’s called ‘60 Days…

Keyword, Match, and Region in VimScript

Published: April 21, 2016 1 min read
  • vim

After a recent talk I gave that included VimScript, an attendee asked a question about the differences between , , and following in a…

Career Interview Questions

Published: April 16, 2016 4 min read

I was interviewed for a high school career day recently, and thought it would be fun to share my answers here: Please describe your current…

Round Robin Problem in Lua

Published: March 07, 2016 1 min read
  • lua

A while ago, I solved the following programming challenge: Round Robin: Given 3 Teams (A, B, C), we want to organize a tournament schedule…

Vim Buffer Problem

Published: March 07, 2016 1 min read

A few weeks back I tackled the following programming challenge: Vim Buffer: I open up a new Vim buffer and type all the numbers 1 to 10,00…

From One End to the Other in Ruby

Published: March 06, 2016 2 min read
  • ruby

A while back I tackled the following programming challenge: From One End to the Other: Find the smallest possible (positive) integer that…

LED Clock in Ruby

Published: March 06, 2016 2 min read
  • ruby

A few weeks ago I attempted to solve a programming challenge that was described as such: LED Clock: You are (voluntarily) in a room that is…

40 Day Github Streak

Published: December 09, 2015 1 min read

This week I hit 40 days of consecutive daily open source pushes to Github, besting my previous record of 18 days. It’s been an insightful…

Resources

Published: November 27, 2015 1 min read

This week I created a new project on Github, ‘Resources’, available here: https://github.com/jwworth/resources ‘Resources’ is a collection…

Three Years Programming

Published: November 04, 2015 2 min read

This month marks three years since I started programming; I’d like to take a minute and reflect on this milestone. Programming is Awesome…

Silver Searcher RDoc Support

Published: October 31, 2015 1 min read

Today I submitted my first pull request to The Silver Searcher project: https://github.com/ggreer/the silver searcher/pull/782 Silver…

Tmux List Sessions

Published: October 13, 2015 1 min read
  • tmux

Today while hacking on Rails I stumbled upon the Tmux ‘list sessions’ command. (where is your Tmux leader) opens a list of all your Tmux…

Rails Action Name Method

Published: October 07, 2015 1 min read
  • ruby

Today I was trying to control what rendered on a page based on which controller action called it, and discovered the method. It’s located…

ActiveRecord After Commit Callback

Published: October 05, 2015 1 min read
  • ruby

Today I used a pretty awesome Rails callback, . executes after a database transaction completes, making it ideal for third-party…

Remarkovable

Published: October 04, 2015 1 min read

I made a new gem today, called Remarkovable . The source code is here: https://github.com/jwworth/remarkovable This gem extracts the Markov…

FileUtils For All

Published: October 01, 2015 1 min read
  • ruby

A step in the Ruby deploy scripts for one of my projects shells out as such: . This prevents all design artifacts from going out with the…

Ceramic Nation

Published: September 11, 2015 1 min read

Last night I built a Markov-powered generated novel, called Ceramic Nation . It’s wrapped as a robot named Ellis Champlin, who is…

The N + 1 Problem

Published: February 22, 2015 1 min read

Recently, I was thinking about the N + 1 problem. N + 1 is a performance issue in a web application, where a method call unleashes a torrent…

Learning to Program as a Career Change

Published: January 22, 2015 6 min read

A few years ago, I wrote my first computer program. It was a line of JavaScript that printed my name on the screen, using the website…

Ruby Symbol#to_proc

Published: October 31, 2014 2 min read
  • ruby

Explore a Rails app, and you might see something like this: What is that , you might be wondering? It’s shorthand for this: Often in Ruby…

30 Days of Vim

Published: September 23, 2014 2 min read
  • vim

It’s been a month since I started using Vim full-time; it’s time to reflect. To summarize, Vim is awesome, because it is fast, endlessly…

Code Club: Rack and Rails Server

Published: August 27, 2014 2 min read
  • ruby

This week in Code Club we explored Rack, the middleware of the Rails stack. Rack is newsworthy of late due to a change in ownership…

Vim Cheat Sheet

Published: August 22, 2014 2 min read
  • vim

The Vim adventures continue. Today I started reading through the ‘help’ section, which is vast and full of surprising ideas. Starting to…

Vim or Bust

Published: August 20, 2014 2 min read
  • vim

Starting with this blog post, I will be using Vim as my primary text editor. When I started programming, I was on a Windows machine. I used…

Heroku PGBackups Testing

Published: August 06, 2014 5 min read

We recently moved some of our environments, including their PostgreSQL databases, to Heroku. Heroku differs from a basic Linux server in…

Mass-Opening Like Files in a Directory

Published: May 08, 2014 2 min read

The Unix command line is powerful. Before doing anything in a GUI, I usually first try to see if it can be done in the command line. Often…

RailsConf 2014 Wrap-Up

Published: April 30, 2014 2 min read
  • ruby

I just returned from Rails Conf 2014 here in Chicago. This was my first conference as a developer, and my first time being immersed in the…

Save a Command's Output to a File

Published: April 09, 2014 2 min read

One tool that I love allows you to take the output of a terminal command and save it in a file. That command is: An example: This runs the…

One Monitor

Published: March 31, 2014 2 min read

I have one computer monitor on my desk. Not long ago ago, this was the norm for everybody, but today, I am the only person in my office who…

Hello World!

Published: February 09, 2014 1 min read

I’ve been writing code for a few years now, and am proud to be launching my own developer’s blog. The developer’s blog is a time-honored…

© 2022 Jake Worth.