What is asynchronous JavaScript?

When people talk about asynchrony in JavaScript, what do they mean? First, a real-world example of an asynchronous process (summarized here, and originally here).

Imagine you walk into a coffee shop to get a latte. If they’re busy, perhaps you wait in line. When it’s your turn, you place your order with the cashier, and pay for the drink. The cashier writes your order — maybe even your name — on a coffee cup, and places it behind the empty (not yet fulfilled) cup of the person who ordered before you. Perhaps the shop is quite busy and there are ten cups ahead of yours. That queue of yet-unfilled coffee cups allows for the separation of the cashier (processing and queuing orders) and the barista (fulfilling orders based on the information supplied by the cashier). This queuing process results in increased efficiency and output. (The original source expands on the metaphor and is quite interesting). This is an example of asynchronous, non-blocking behavior.

Continue reading What is asynchronous JavaScript?

Let’s learn the Dvorak keyboard

In the last week, the subject of the Dvorak keyboard has come up more than usual. (‘Usual’ being not at all.) The Dvorak keyboard is an alternative to the widely-adopted QWERTY keyboard, and was patented in 1936 by Dr. August Dvorak and his brother-in-law, Dr. William Dealey. There are a couple of devotees among my coworkers at MakerSquare, and at some point in one of our discussions, I became inspired — how quickly could I pick it up? Or further, how long would it take to achieve at least half of my QWERTY speed? So I tested, to get my baseline, coming in at 120 WPM.

Screen Shot 2016-06-04 at 11.01.18 AM

Continue reading Let’s learn the Dvorak keyboard

Measure twice, knit once

I first picked up knitting as a hobby in the winter of 2013 — a cold, depressing DC winter. It was a moving meditation — a rhythm, a flow. It’s no surprise between the weather and the mindset that I started — and stayed in — the scarf/blanket phase of my knitting for a long time.

Beginning knitters often start off with scarf projects — a simple scarf pattern can be the easiest and most approachable thing to create. Cast on. Knit all rows. Bind off. Needles are needles and yarn is yarn. The end.

Knit enough scarves and blankets, and eventually you want more of a challenge. Thus began my complicated, on-again-off-again relationship with sock knitting. (Don’t have the bug yet? Just follow @syllogism).

Continue reading Measure twice, knit once

Intro to web accessibility

Through presenting at bootcamps, I’ve so far had the chance to expose over 100 devs- and engineers-in-training to web accessibility —- what are we really talking about when we say ‘web accessibility’, who does it affect, and what are some very initial considerations to take into account? This is a short blog recap, including the deck.

Update (7.29.2016): Slide deck updated.

Continue reading Intro to web accessibility

Data Structure: Trees and Depth-First Tree Traversals in JavaScript

What is a tree?

Trees are a commonly-used data structure in web development. You interact with a very common example of a tree every time you use your browser, likely without knowing it — the Document Object Model (DOM).

DOM tree
Source: w3schools

Continue reading Data Structure: Trees and Depth-First Tree Traversals in JavaScript

Resources: Getting started & beyond

When self-teaching, almost all of us start at the same point. Where do I start? How do I “pick a language”? What do I focus on? I know I did.

I recently started listening to the JavaScript Air podcast, and even more recently went back to listen to some of the earliest episodes. In episode 001, “Learning and Developing JavaScript”, Ashley G. Williams (@ag_dubs) makes a comment that caught my attention:

Continue reading Resources: Getting started & beyond

Quicksort

Quicksort is a sorting algorithm, used to place the elements of an array into an order. That order is based on comparison —  the things being sorted must have a “less than” / “greater than” relationship. (Source).

Continue reading Quicksort

Devume

I recently test-drove the ‘Devume‘ project from the wonderful and talented Justin Seiter, and wanted to briefly highlight the project.

Devume is the hackable JSON resume.
Fork it, tweak it, deploy it!

Devume is a starter repo for a fully JSON-based resume, using Webpack for code bundling and Handlebars for templating. In just a few minutes, you can spin up and host your own resume.

Continue reading Devume

‘Just break things’

‘Just break things.’ ‘Get your hands dirty.’ ‘Just dive in.’

A simple, and infuriating piece of advice that I’ve been given, and given to others. So surprisingly difficult to carry out sometimes. I was reminded by this bit of advice while working on a project last week.

Continue reading ‘Just break things’