Personal Site & Blog of

Andrew L. Van Slaars

Code. Learn. Write. Teach.

I’ve had two rather lengthy courses published on, both based on building a todo application. As I write this, I am in the process of creating a tutorial for Cypress that consists of a series of videos and written material. This new material is also based on building a todo application. I’ve seen blog posts and an occasional tweet bemoaning the use of “yet another todo app” in a tutorial.

Use Pictures Words can be a hard way to convey a new idea. The more complicated something is, the more words you’ll need to explain it. Often, a simple drawing will get the point across where words have failed. Technical topics lend themselves to diagrams and flow charts. Even simple boxes and arrows, drawn crudely on a white board, can convey way more useful information than a beautifully crafted keynote slide that relies on words to get an idea across.

This is the first in a series of posts I plan to write about Functional Programming in JavaScript. I’m going to do my best to keep each of these small and focused, just like your functions should be. 😉 I figured we’d start this series with a fundamental feature of JavaScript that makes using it for functional programming possible. Functions in JavaScript are first class. This allows us to do some very important things with functions:

I have great admiration for people who foster dogs (or any animal really, but I’m a dog person so that’s where my brain goes). I love dogs, so much, in fact, my wife and I have 3 of them. The thought of bringing a dog into our household, caring for it, training it and then finding another home for it is hard. I think I would have a hard time doing that (and I don’t think a 4th dog in our house would be good for anybody), but I get it.

I’ve been running my site with Hugo for a while and I initially went with the Hyde-Y theme for its simplicity and all of the baked-in functionality. All of this, along with Continuous Delivery with Codeship made this setup great for keeping things simple. Unfortunately, I’ve seen more and more issues with my Codeship setup and quite frankly, the blue and white design of the site was boring me. Inspired by the Nova color scheme, and wanting to move my hosting over to now from zeit, I decided to spend some time today applying new colors to the existing theme, making a few small tweaks, and redeploying the new site over to Zeit’s servers.

This post uses ES6 syntax. The same things can be accomplished with ES5, but it would require more verbose syntax.

I cover this in video format in my new course

Full Course - Build Your First Production Quality React App

The Pipe Utility Video

When writing JavaScript (or any other language for that matter), you often find yourself having to call a series of functions to get from some starting value to the desired result. To keep the examples simple, let’s use a couple of really basic functions:

My first video was published today! This video is the first in a series covering the key features in hapi.js. Due to a hectic work and personal life recently, and some growing pains in coming up with a better recording and editing process, these videos have taken a while and the SitePoint team has been incredibly patient and flexible in working with me. I’m happy to have this opportunity to work with them and hope these videos are helpful to the JavaScript community.

A few days ago, my first video was published! “Build a Functional Pipeline with Ramda.js” shows how to use Ramda’s automatic function currying and data-last argument order to combine a series of pure functions into a left-to-right composition (pipeline) with Ramda’s pipe function. I’m incredibly excited that I have the opportunity to be a part of the community of instructors. I’m anxiously awaiting some upgraded sound gear so I can record better audio.

The Not Todo List

As I write this, I am a few short weeks into being a father to a beautiful baby girl. I knew going into this that my free time and sleep would be limited, but I don’t think I was as prepared as I could have been. Aside from normal work and home responsibilities, I had several extracurricular projects in the works leading up to my daughter’s birth. The part of my brain that likes to underestimate and over commit fooled me into believing that I would magically be able to keep all the balls in the air and I would just complete things at a slower pace.