Universally Testable Dependencies in JavaScript

JavaScript dependencies are notoriously hard to mock and test across framework and environments. However, Dependency Injection (DI) ensures testability. It is common in statically typed languages, like Java or Go, but is also useful in dynamic languages like JavaScript. This article will guide you through a simple technique that can apply to any JavaScript code base, frontend or backend, independent of frameworks and libraries. The technique I am going to demonstrate is arguably not true DI, since the dependencies are still managed by the module using them.

ClojureScript Setup for Leiningen Project With Emacs

A good development environment if fundamental to being productive. This is especially true for Lisps. A good environment can greatly speed up your development process and allow you to utilize the full power of Clojure or any other Lisp. This tutorial is focused on a ClojureScript environment for a Leiningen based project being developed in Emacs. Why Emacs? Emacs has a great setup for most programming languages but really shines when it comes to Lisps, including Clojure.

How Lodash Worked Itself Out of a Job

I really loved lodash. It brough the joy of compact functional code to JavaScript. Especially 6 years ago when I first embraced it. It was a wonderful library. Back then, there was no ES6, no Babel, and terrible browser incompatabilities ran rampant. Lodash along with jQuery were the saving light of that time. I gravitated towards using Lodash because the first language I learned was Scheme. It had functional programing at it’s core, and highly influanced how I think about code to this day.

Efficient CSV Imports in Rails

Rails has great capabilities for working CSV files. However, like with many things, the most obvious way is not the most efficient. We noticed this when our server had major fluctuations in memory consumption. After digging through metrics, made easy thanks to Prometheus and Grafana. We noticed that the spikes were due to our CSV uploads. Examining CSV Import Our processor is responsible for bringing in coordinates from legacy systems and ones that cannot support our API.

Phoenix talk

I recently gave a talk, at the local Fullstack Meetup, on the Phoenix Framework. Phoenix is the de facto web framework for Elixir. In this talk, I cover some of the best features of Phoenix: Erlang: The platmor which Elixir and Phoenix are build on. (albeit very brief overview of the major features) Plug: The specification for composable module design that gives Phoenix much of it’s power. Ecto: The database integration layer.