Tour of D3 for Clueless Folk Like Me

D3 stands for Data Driven Documents, and it's the coolest thing ever.

Check out a few examples:

So, this is the kind of stuff you can do with D3. The Front-end track at Turing gave a short lesson on D3, and I was one of two back-end folks participating. This was actually really encouraging, because they didn't know much about d3 either.

So, lets dig into D3 a bit, and do two things:

  1. Get a running d3 map running locally (we're gonna use circle wave)
  2. Deconstruct a simple d3 project to it's minimum components, expecting that we'll learn something along the way.

Note to the reader: I know almost nothing about frontend tools. If you're comfortable on the front-end, bear with my ignorance. If you, too, know nothing about the front-end, great! This should be at your level.

Read More

Playing with the HTTP send/response cycle in Ruby, without Faraday

author's note (that's me): I've written a lot over the last few months of Turing, but my list of public gists is getting so long I can barely keep track of it. So, as I write longer things that I think might be useful to others (especially Turing students) I'm going to stick it here. If you're not interested in Turing or programming, it's safe to skip this particular post

Also, I wrote this originally in github-flavored markdown. Seems to play poorly with this Markdown editor. Some syntax highlighting may be off, but the code itself isn't that important. Playing with Curl and NetCat in the terminal is where all the fun happened. Apologies for readability challenges. Here's the original on github

The following is part of the HTTP Server project.

First, I'm working through Practicing Ruby's "Implementing an HTTP File Server" for general practice and understanding.

I'm going to use Postman to capture traffic and try to replicate some of the things the guides reference.

Lastly, I just found Jeff Casamir's walkthrough of almost everything I've discovered in the last week. Save yourself the time, and go read it here


First, I need to configure postman to show request/response headers, like what the guides indicate:

# HTTP Request
GET /file.txt HTTP/1.1
User-Agent: ExampleBrowser/1.0
Accept: */*

# HTTP Response
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 13
Connection: close

hello world

Turns out Postman cannot do this caputuring by default.

So, follow these instructions (to enable right_click > inspectwithin Postman

Lets first look at some get requests in the wild:

Using Postman, I made a get request for I get back lots of HTML, etc. But I want to see the headers. The "Headers" tab in the Postman request isn't really helpful.

Read More

Streets in Asheville

Streets in Asheville

A few months ago, I visited Asheville, NC. It's a nice town, and is pedestrian friendly.

As a thought experiment, I decided to see how well I could make the case for reducing the width of a few streets.

The reasons are simple - wide roads are hard to cross by pedestrians, encourage faster driving, and are (as I'm going to try to prove) bad for cities.

It's common for "walkable" streets to have two wide lanes traffic (one each way) plus a lane for parking on each side, plus, perhaps, one or two bicycle lanes, and perhaps a small buffer between traffic going each way.

This seems like a tolerable idea, except it means all of a sudden your little road is difficult to cross.

I'll be examining 45-61 W Walnut St, Asheville, NC


Read More

2016 - Biggest Lesson, Most Dangerous Books

I don't do New Years resolutions, but I like to think back on the last year.

I'll touch on two things:

  1. The most important thing I've learned this year: Tactical Silence
  2. Most dangerous books of 2016

Tactical Silence

I suspect that a year from now, I'm going to look back and say "Man, I really dropped the ball on a lot of conversations and relationships up through 2016".

Old Josh thought discussions went somewhere, and that I could change minds with words, in conversations directly about the thing I wanted to change.

Hah. A helpful-but-reluctant read through 48 Laws of Power, couples with reading throughLife Together, and a few other sources, convinced me that direct discussion about most things where I'm trying to convince someone of something is more "entertaining-though-possibly-damaging pastime" than "productive effort". This holds true in the work and private domains.

New Josh is significantly more cynical, and in most situations much less inflamatory. I don't stand to gain anything from debates, and neither does the person I'm debating with.

What DOES matter is action. No one really cares what I think about anything, but as soon as I take action on something, any potential conversation is dramatically shifted.

Read More

December Review, January Goals

This is a follow-up from last month's goals

1. Deepen Knowledge of Back-end Development

I finished OverTheWire's Bandit series, except the last lesson, which didn't make sense. (It does now! Turns out login shells and "regular" shells are different. I'll take another spin at it some day.) A few benefits:

  • Way more comfortable in my terminal
  • Way better with Less/Vim/Man pages
  • Basic understanding of Linux boxes, SSHing, looking around an unfamiliar system for things of note.
  • Better understanding of how terminal programs and scripts work (.vimrc, .bashrc), how things relate to each other in the $PATH, etc.

For example, before this, the following message wouldn't have meant much to me:

The test files may have the execution bit set so you may also be able to
run it like this:


Now, without any hesitation, I know that $ chmod u+x hamming_test.rb fixes the problem, and I'm off to the races.

Read More

December 2016 Goals

December 19th seems a bit late to write about December's goals, huh?

Nonetheless, I've had some, and I will still have them through the end of the month.

I did post a review of November a few days ago. This should really be rolled into that. A "monthly review/going forward" evaluation makes way more sense than splitting it into two pieces.

See? There's value to these reviews. I'm streamlining my own workflow. :)

My goals for December are mostly an extension of my goals last month. November review here

  1. Deepen knowledge of front-end development*
  2. Rehab my wrist effectively
  3. Read seven more books (goal for the year is 80. It'll be a stretch...)
Read More

November 2016 Review

My November goals were an extension of October's goals. I feel comfortable with long-term unchanging goals.

They were:

  1. Deepen my knowledge of front-end web development
  2. Climb 5.13
  3. Get "Climber's Guide" rolling.

An attentive reader might notice that these goals violate all best practices for setting good goals. They're supposed to be "Specific, Measurable, Actionable/Attainable, Realistic, and Time-boxed"


My goals are none of these, but I've been able to break each goal down into smaller pieces. That's the sole way one could make progress.

My other mistake is that I have too many goals. Three goals is one more goal than I'm comfortable with. I'm going to soon clear item #3 from my plate, and focus on the complimentary goals of software development and climbing hard.

How am I doing, according to my own internal yardstick?

Front-end web development

I got the recommended pre-work from Turing School, where I'll be starting their seven-month development program in January. It replaced all other development goals, because reasons.

Read More

Typing for Programmers

If you had to distill my ability to bring value to those around me, it would be "Josh types good".

I can press these magical little keys on this little metal box here, and make these words come out.

If you're reading these words, you don't care how these words actually got on this page. You don't care if I used speech-to-text, transcription, hunt-and-pecked, or if my keyboard layout is QWERTY, Dvorak, or Colemak.

Read More

November 2016 Goals

Note to the reader: The words that follow are all about me. Very naval-gaze-ish. I feel I owe you this warning.

My November goals are an extension of my October goals.

October was good (October review) - I made progress on two of three projects, and one of those projects need to conclude to make space for the third. (I want to wrap up a course from, and once that hits a stable finish state, I'll switch to prep for Turing School.)

Deepen my knowledge of front-end web development

Same goal as last year - finish up the current tutorial, and then sketch out small next steps and start studying. is a good place to work on little problems and practice a bit.

Climb 5.13

Last month I sent my first 5.12d outside. A few days later I sent my first 5.13a in the gym. I can do all the moves on another 5.13a, all but one move on a 13c, and almost all of them on a 13d. Due to the inflation of indoor grades compared with outdoor grades, I'm thinking the indoor 13d might be a real 5.13a in difficulty.

Read More

October 2016 Review

This month's review. In another few days I'll post the goals for November.

I had three goals for October, as of about 12 days ago:

October goals:


I wanted to finish a certain Rails Tutorial, and move on to the next one. This project I made zero progress on. But I'm accepted into the Turing School's January 2017 cohort, and have approval from my company for a long (unpaid) sabbatical for the course.

So, I'm making progress, and as importantly, I've got big pieces of this squared away over the next few months.

I'd like to reach a point of stability and completeness on my next bullet point (the climber's guide) before throwing myself into programming training.

Climber's Guide Course

I made good progress here. I finally got the website I'm using into a viewable form (the old theme I had was hideous).

I updated some of the email collection forms (there's now a sidebar, ready to collect someone's email address) and I linked to a "best of" sidebar section, linking to some useful articles.

I added an "about me" and "contact me" page, and then most importantly, stripped out everything else. There's no footer, there's no public meta data about every post, there's no stupid nav bar that every theme shoves down your throat.

Read More