Jonathan Martin

Web Developer, International Speaker, Fine Art Photographer

  • Home
  • Github
  • Photography

Don’t Over React! Render Binary Data with Class.

Eventually, your React web app will accept file uploads. JavaScript has exceptional APIs for handling chunks of binary data, but the interaction with React can cause some major performance hiccups. Discover the performance implications of 5 different ways to work with user-submitted binary data!

Jonathan Martin Jonathan Martin

DESTROY ALL CLASSES: Turn React Components Inside Out with Functional Programming

With React's stateless functional components you can create ambitious apps that are 98% plain ol' JavaScript. In this real-world example, we'll use functional programming and higher-order components to turn class-based React Components into stateless functional components.

Jonathan Martin Jonathan Martin

Cross Stitching: Elegant Concurrency Patterns for JavaScript

You've probably heard statements like "JavaScript is a toy language, it doesn't support multithreading!" But in fact, JavaScript is tailor-made for concurrency. You'll need some patterns to write concurrent code that is performant and readable. Enter the Async IIFE.

Jonathan Martin Jonathan Martin

Hi, I’m Node.js and I’ll be your server today.

Tech stack decisions can be hard. Is Node.js the right choice for your service? Have a seat and your server will be right with you.

Jonathan Martin Jonathan Martin

*Crickets* I’m Blogging about JavaScript at the Ranch.

You stumbled on this half-abandoned blog and figured I lost my login credentials. Well, yes… but actually, I've been blogging over at Big Nerd Ranch for the past few years. So if you

Jonathan Martin Jonathan Martin

Encore, JavaScript! Create an MP3 reader with DataViews + TextDecoder.

Now Playing: Learn to parse MP3 metadata with JavaScript’s ArrayBuffers, DataViews, TypedArrays and TextDecoder.

Jonathan Martin Jonathan Martin

The tip of the iceberg: your mobile app is really a web app!

Many of the native mobile apps you love weren’t always native. Will a hybrid web app help you build a successful MVP or kill your startup?

Jonathan Martin Jonathan Martin

Asyncing Feeling about JavaScript Generators

Async generator functions have arrived in JavaScript! Iterate over Stream-like data with a for-loop and even rewrite ReactiveX.js. Read on to see what comes .next()…

Jonathan Martin Jonathan Martin

JavaScript, make me a Triple Function Sandwich

Since JavaScript is unrelated to Java, many OOP patterns are not idiomatic to JavaScript. So how do you solve common OOP-like problems? It might be time to invite Functional Programming for lunch!

Jonathan Martin Jonathan Martin

A Brighter Day: Testing your Sunspot searches, unit-style.

At the Ranch, we like to whip out Solr for handling complex searches. Unfortunately, Solr can make testing frustrating – it needs to be running in the background any time we run integration specs, but starting up Solr is slow. Is there a way to lazily load Solr only for the tests that need it?

Jonathan Martin Jonathan Martin

Why I’m Still at Big Nerd Ranch

It’s my third year working at Big Nerd Ranch as a developer and instructor. Inevitably, I have a lot of friends (and recruiters) asking me why I am still working here. It all boils down to two non-negotiable values—trust and kindness.

Jonathan Martin Jonathan Martin

A New Year, a New Blog!

TL;DR: Checkout my new photography blog, it’s powered by Ghost! I’ve become strangely addicted to exploring and photographing new places these past 2 years as I traveled through Europe as

Jonathan Martin Jonathan Martin

Metrics, Metrics: How We Improved our Website Performance, Part 2

Last time, we covered web performance metrics for measuring a website's health. In this post, we continue down the rabbit hole of web optimization and the steps we took to improve our site's performance.

Jonathan Martin Jonathan Martin

Metrics, Metrics: How We Improved our Website Performance

Developers geek out on numbers, designers labor over information visualization, and ops + marketing love upward trends. Web developers, too, love upward trends in web performance graphs, like time-to-first-load and info gleaned from Google Analytics.

Jonathan Martin Jonathan Martin

To Kill -9 a Drone, Part 2

Last time, we took a tour of TTYs and serial connections to shell into the Linux-powered Parrot Rolling Spider quadcopter. This time, we’ll telnet in over Bluetooth.

Jonathan Martin Jonathan Martin

To Kill -9 a Drone, Part 1

This year marks my second visit to JSConf’s paradisiacal backdrop on Amelia Island, and is particularly memorable—the talks demoed unusual applications and dazzled the imagination. But the swag item this year blows all the branded beach balls out of the beach water.

Jonathan Martin Jonathan Martin

Backend, Meet Frontend: Managing Assets with Bower

Don’t manage vendor assets with Rails gems; use Bower and NPM. Here’s a true story of how backend and frontend developers can work together.

Jonathan Martin Jonathan Martin

Kissing Simplicity Goodbye

What makes code simple? Fewer lines of code is great, but simplicity really depends more on the division of concepts in your codebase. Here's a quick case study of using Rails' new Concern module to "simplify" some duplication.

Jonathan Martin Jonathan Martin

Short and Sweet: Why You Should Use Ancestry

I know I know, it's been close to a month since I last blogged — that's because I've been working and feeling hobby-lazy on the weekends, and I'm still in the middle of writing

Jonathan Martin Jonathan Martin

Rails 3: Forcing SSL

Once again, I found myself beating my way through a website todo, and again I painfully managed to complete the task. Perhaps I can spare you some of that pain with this discussion

Jonathan Martin Jonathan Martin

Ruby on Rails: Top 10 Gems

After developing a number of Rails 3 apps, I've come to build up a list of "prerequisite" gems that I must install before I decide to include anything else. Without further

Jonathan Martin Jonathan Martin

Ruby Extension: HTML Truncation

Another tip (err hurdle) I came across during the production of this blog — truncating an HTML string. Easy, right? It seems simple enough: shorten some basic text content from a long entry. It's

Jonathan Martin Jonathan Martin

Rails 3: Action Mailer

As a result of designing this blog, I've come to appreciate the refinement of Rails 3, and the drudgery of a few "less than perfect" spots. ActionMailer (now powered by the

Jonathan Martin Jonathan Martin

Rails 3: Auto Require

During the process of coding my blog, I came across the need for a truncation feature (another post in and of itself). So I made a new file under the lib directory called

Jonathan Martin Jonathan Martin
Jonathan Martin © 2017
Latest Posts Facebook Twitter Ghost