Skip to main content

Benjamin Oakes

Photo of Ben Oakes

Hi, I'm Ben Oakes and this is my geek blog. Currently, I'm a Ruby/JavaScript Developer at Liaison. Previously, I was a Developer at Continuity and Hedgeye, a Research Assistant in the Early Social Cognition Lab at Yale University and a student at the University of Iowa. I also organize TechCorridor.io, ICRuby, OpenHack Iowa City, and previously organized NewHaven.rb. I have an amazing wife named Danielle Oakes.

Blog

strftime cheat sheet

by Ben

strftime:
    %a – The abbreviated weekday name (``Sun’‘)
    %A – The full weekday name (``Sunday’‘)
    %b – The abbreviated month name (``Jan’‘)
    %B – The full month name (``January’‘)
    %c – The preferred local date and time representation
    %d – Day of the month (01..31)
    %H – Hour of the day, 24-hour clock (00..23)
    %I – Hour of the day, 12-hour clock (01..12)
    %j – Day of the year (001..366)
    %m – Month of the year (01..12)
    %M – Minute of the hour (00..59)
    %p – Meridian indicator (``AM’’ or ``PM’‘)
    %S – Second of the minute (00..60)
    %U – Week number of the current year,
        starting with the first Sunday as the first
        day of the first week (00..53)
    %W – Week number of the current year,
        starting with the first Monday as the first
        day of the first week (00..53)
    %w – Day of the week (Sunday is 0, 0..6)
    %x – Preferred representation for the date alone, no time
    %X – Preferred representation for the time alone, no date
    %y – Year without a century (00..99)
    %Y – Year with century
    %Z – Time zone name
    % – Literal ``’’ character

Source: the cheat gem (relevant blog post)

Cheat has mostly gone offline, but I still refer to this cheat sheet all the time, years and years later. Perhaps that means that strftime has terrible syntax, but that doesn’t stop it from being ubiquitous.

GOTO 2016 – Software, Faster – Dan North

by Ben

Some teams are orders of magnitude more effective than others. Kent Beck famously described himself as “not a great programmer, but a good programmer with great habits”. For the last few years Dan North has been working with, and observing, some very good teams with quite exceptional – and rather surprising – habits.

Are katas the best way to learn a new language? Is manual testing a waste of time? Is copy-and-paste always evil? Is the customer always right? In this talk Dan introduces the idea of delivery patterns – patterns of effective behaviour in delivery teams – and describes some of the more unusual but effective patterns he’s been collecting. These are not patterns for beginners, but then again, Dan argues that patterns aren’t for beginners anyway.

Source: GOTO 2016 – Software, Faster – Dan North

ASCII Diagram Tools

by Ben

Infinite ASCII diagrams, save to Google Drive, resize, freeform draw, and export straight to text/html.

Source: ASCIIFlow Infinity

Powerful ASCII art editor designed for the Mac.

Source: Monodraw for macOS ($20)

Realtime Text-To-Diagram

Source: Graphviz REPL (similar in spirit, but not ASCII)

Docker, Locales, and Ruby

by Ben

# Set the locale
RUN locale-gen en_US.UTF-8  
ENV LANG en_US.UTF-8  
ENV LANGUAGE en_US:en  
ENV LC_ALL en_US.UTF-8

Source: Docker and Locales.

Fixes invalid byte sequence in US-ASCII in Ruby when using Docker.  Found via this prmd issue.

travis-watch – Stream live Travis CI test results

by Ben

Stream live travis test results of the current commit to your terminal. Exits with the proper exit code too!

Source: juliangruber/travis-watch

Embracing Change: Rails 5.1 Adopts Yarn, Webpack, and the JS Ecosystem

by Ben

With the inclusion of webpack and Yarn, the Rails team is showing a great deal of maturity and humility, recognizing that the web is no longer rendered only from the server, but also dynamically from the client. Not only has the team embraced these changes, but they are incorporating them in such a way as to make it feel like there’s a “Rails Way” to do JavaScript.

Source: Embracing Change: Rails 5.1 Adopts Yarn, Webpack, and the JS Ecosystem – Pixelated

Right to Repair: Why American Farmers Are Hacking Their Tractors With Ukrainian Firmware

by Ben

On its face, pirating such software would seem to be illegal. But in 2015, the Librarian of Congress approved an exemption to the Digital Millennium Copyright Act for land vehicles, which includes tractors. The exemption allows modification of “computer programs that are contained in and control the functioning of a motorized land vehicle such as a personal automobile, commercial motor vehicle or mechanized agricultural vehicle … when circumvention is a necessary step undertaken by the authorized owner of the vehicle to allow the diagnosis, repair, or lawful modification of a vehicle function.”

Source: Why American Farmers Are Hacking Their Tractors With Ukrainian Firmware – Motherboard

peardeck/prometheus-user-metrics

by Ben

User Monitoring for Prometheus

Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system. This project provides the infrastructure you need to do end-user monitoring in Prometheus as well.

Source: peardeck/prometheus-user-metrics

linkerd: Resilient service mesh for cloud native apps

by Ben

Resilient service mesh for cloud native apps

linker-d is a transparent proxy that adds service discovery, routing, failure handling, and visibility to modern software applications

Source: linkerd

Page Objects in Ruby

by Ben

Clean Up Your Acceptance Tests with Mâché — Josh Bassett
natritmeyer/site_prism