Writing a URL shortener

31 May 2017

It’s been quite a while since my last post on TDD, and I have promised myself that I would get something out before the end of the month, so this may be a little slap-dash. Especially considering that today it’s my anniversary and there are bigger things on my mind!

Over the last 2 weeks, I’ve been writing a URL shortener in Rails, and I’ve now got it to a point where I’m using it personally on the great wide internets! I call it Url Grey, and the code is all on Github. It’s still got some work to do, but getting this far has been a ton of fun, and a massive (and useful) learning experience.

» Read post

assert practice_tdd, joyful

11 Apr 2017

A parable told in code.

class Rubyist < Human
  include EmotionalAccessors
  include RelationshipToTDD

  attr_reader :tdd, :experience, :joy, :worry_about_others_perception

  def initialize
    @worry_about_others_perception = 10 # or so I'm told
    @experience = 2 # years, on average?
    @joy = 0 # cannot be inferred without more data
  end

  ...

end

class RubyN00b < Rubyist

  def initialize
    super
    @worry_about_others_perception += 500
    @experience = 0
    @tdd = false
  end

  ...

end

» Read post

Ruby n00b learns about: Bundler vs Rake vs Guard

17 Mar 2017

As I was starting out with Ruby, I quickly encountered three… things that popped up everywhere: Bundler, Rake, and Guard.

I learned pretty quickly (because all of the really nice Rubyists on the internet are very willing to tell you this) that they are three Ruby tools for making Ruby development easier, more consistent, and better.

They’re all clearly different (else why the heck would a community that tries to be as expressive as possible duplicate its tools for no reason)… but it isn’t immediately clear to the n00b how they’re different. The first time you’re likely to use them, it’s often going to be to prefix your commands when running your code.

Which makes them all look like taskrunners, and at first blush, and I was confused about when to use which.

» Read post

Open letter to Joss Whedon, thank you

10 Mar 2017

Dear Joss,

One of my most embarrassing memories is the time that I ambushed you at the Apple Store in Covent Garden and said (really, all in one word) “Hi-I-went-to-Wesleyan-2010-OMG-you’re-so-cool-thank-you” and ran away. I think it was around the time you were in town filming Avengers II.

I was wearing an Apple t-shirt at the time. I think you just needed a charger.

That ‘thank you’, while rushed, panicked, and probably creepy, was heartfelt.

» Read post

Writing my first gem

14 Feb 2017

This week I wrote my first ruby gem. It’s pretty great (I think). It does one thing.

It will not make your website better.

It will not make your computer faster.

It will not make you code faster or more efficiently.

But it will do one thing: make you so much cooler because it creates ASCII art of the USS Enterprise.

» Read post

Setting up Borg Backup to rsync.net

29 Jan 2017

For a while here, I’ve been backing up my Confluence install to Dropbox using a nifty little shell-script that interfaces with Dropbox’s API. That wasn’t too bad, all told, for a while. When the wiki was first set up, this was a solid MVP. But then you realize that once the data you need to back up is of sufficient volume, you’ve pretty much got to choose between versioned backups, or not making your DB account explode.

Solution to this, of course, is to choose the right tool for the job. Dropbox is great, but not so much for backups. In this case, the right tool for the job is borgbackup.

» Read post

A Quest to Reach Philosphy on Wikipedia

20 Jan 2017

So, the 6 Degrees of Kevin Bacon of the internet is the theorem that no matter where one starts on Wikipedia, by clicking the first link on a page (that isn’t in a parenthetical or one of those info blocks above the main article body), one will eventually reach Philosophy.

I tested this.

» Read post

Lunanode Review

15 Jan 2017

Short quick review of Lunanode from my phone: they’re awesome.

» Read post

Worldbuilding for D&D like a dev (wannabe)

13 Jan 2017

Over the last two months or so, I’ve been homebrewing up my own setting/world for a Dungeons and Dragons campaign. It is a huge amount of fun–and a huge amount of work. The simple job of keeping facts and timelines straight once you’ve started is a gigantic thing in and of itself.

I realized that I’ve been working on this in a semi-agile way–perhaps more kanban than scrum, but fundamentally, if I were to work on a software project the way I’m working on this D&D world, you wouldn’t be able to say I was doing it wrong. I’m aping all the names of the principles here from people who know more than me, but it’s a little bit like pin-the-tail-o-the-donkey. You’re just sticking things where they belong.

» Read post

Eggs half-a-dict

06 Jan 2017

The context

I love eggs benedict. But I hate dishes. And I don’t even know how to make hollandaise, but I learned from my Grampy that it’s gotta be real, and gotta be fresh; definitely can’t be frozen or canned. Which presents a conundrum: I can’t make eggs benedict.

Except, it turns out, with some judicious ingredient hacking, I can.

» Read post