Practical Elegance

"Elegance is not a dispensable luxury." - Edsgar Dijkstra

Fear and Coding in Las Vegas

I’m sitting in the first session of the K-5 PD training workshop.

It’s my first time in Las Vegas. We went to In-N-Out Burger (required if I travel out west), and I hit a $2k jackpot on penny slots. Not bad. And now we’re getting an overview of the K-5 curriculum. It’s pretty exciting.

I learned to code when I was 5. Learning BASIC on a TI 99/4A. This is pretty much my first computer:

Have A Happy #Whyday with whynot

It’s August 19th, the day we remember why the lucky stiff’s poignant departure from the internet. ruby-jokes would hate to part with the Whyday tradition of hacking on something just for fun and releasing it into the wild.

So it’s with great ambivalence we announce whynot, a gem that does irresponsible things because… why not?

whynot is for when you really just don’t care. It started as a single monkey-patch to Kernel, called maybe. maybe takes a block, and may or may not yield the result. So for instance:

maybe do |x,y,z|
  x,y,z = 1,2,3
  x + y + z

About half the time, this will return 6. The other half, nil.

About three minutes after I pushed whynot to Github, Micah Gates added some kernel methods that allowed for a little more specificity: mostly, which will execute your code about 2/3 of the time, and occasionally, which has about a 1 in 5 chance of actually executing your code.

But wait, there’s more!

Just in time for the 0.0.4 release this afternoon, I decided sometimes, the truth doesn’t matter. Or, at least, you just don’t care. So I added meh. Sometimes true, sometimes false, whatever. When you really don’t care, just do this:

meh ? "I guess" : "Nah."

I really wanted to create a global value like true or false that was neither truthy nor falsey, but I’m not sure whether that’s possible, and I have a feeling it would require some C-extension hackery if it is.

Perhaps for a future release?

As always, pull requests are welcome, and use at your own risk.

On Comments And Moderation

I’ve always taken a hands-off approach to moderating comments, feeling that it was a form of censorship to restrict discussion even on my own blog. It’s worked pretty well; I feel like prior to yesterday, I’ve deleted less than three comments in the three years I’ve maintained this blog.

But yesterday’s post, I’m Telling :: Employer-Tattling and The Decline of Agency, brought in some of the nastiest of trolls, and I had to re-evaluate that policy. The post also got so many comments I was going crazy trying to weigh my anti-censorship views against comments that bordered on hate speech.

I’m Telling :: Employer-Tattling and The Decline of Agency

The other night Twitter was abuzz with controversy and drama, as per usual. One of those threads (which I’ll get to momentarily) invovled what I’ll refer to as “employer-tattling,” and Jon Soeder (laudably without drawing attention to the ongoing echo chamber), tweeted this:

He doesn’t mention which Twitter thread prompted this, but I have an educated guess.

Scream When You Learn

Apologies to Charles Bukowski


I fucking hate this school. All the teachers too. Well, there are a few exceptions, but few enough it doesn’t really matter.

There are a few saving graces. Molly, that redhead in fourth period I’m dying to fuck. There’s a party Friday, maybe that’ll happen. At least I’ll be drunk enough not to care about this shithole for a few hours.

Had a test today. Fucking Mr. Blum walked over to my desk and watched me solve quadratic equations. Grabbed the calculator out of my hand when he saw me using the program I wrote to solve them. Old fucking moron doesn’t even know what these piece of shit TI-83’s are capable of. Thought I was cheating.

Discussing Privilege: EduCon Reflections #1

While I’m planning a full “overview” reflection on EduCon 2.6, I was (pardon the pun) privileged to participate in a conversation entitled “The Privileged Voices in Education”, facilitated by Audrey Watters and Jose Vilson. Audrey has written about the session on her blog, and Jose has written about it on his blog, so you can refer to those for context. But I want to talk about my takeaways from that wonderful session and what came after while it’s fresh in my mind, and then work on a more general EduCon post.


This is a Hard Topic to address in a meaningful way that actually effects change. It’s a hard topic to broach in general. I applaud Audrey and Jose for creating this EduCon session, for their facilitation of the conversation, and I’m in awe of how civil, insightful, and enlightening the discourse was.

Let me start by confessing: as often happens, I was unable to make it through the discussion without saying something (at the very least) bothersome. I talked about my initial reaction to #edchat, a hashtag-based recurring event for educators on Twitter, as an offhand preface to the difficulty of certain discussions in diverse media. Tom Whitby, founder of #edchat, was in the room. This actually opened a (in my opinion) constructive dialogue ex post facto, but I’ll return to this later.

New from Ruby Jokes: taint_aliases

The Ruby Jokes team has a new gem for you that was designed, tested, and released in about an hour this afternoon: taint_aliases. You can get the full details on GitHub, but I thought a friendly introduction might make for an enlightening blog post.

Grundle Your Objects

You see, not everyone prefers the word “taint”. Some people are very clinical, and say ‘perineum’. Others prefer ‘grundle’ or ‘fleshy fun bridge’. We wanted to give you options, so taint_aliases makes a variety of synonyms available to you.

Goodbye AT&T, Hello T-Mobile?

So I’m curious about this Uncarrier 4.0 thing rumoured to be rolled out by T-Mobile in the near future… I’ve considered ditching AT&T Wireless many times, but keep getting dragged back in by upgrades, which seem to take longer and longer to happen.

I tried to get my wife an upgrade for Christmas this year, just to find out both our upgrade dates are far, far in the future… I’m pretty certain we got more frequent upgrades a while back, but the current cycle seems absurd. I was fine with early contract renewals when it meant I got a shiny new phone, but when your renewal date is the same as your upgrade date (24 months), they’ve removed all incentive not to switch carriers. Which inidcates to me that perhaps their wireless division is run by idiots, indicating an incentive to switch carriers.

The last counter-incentive to switching is the Early Termination Fee, which, when you’re on a family plan and have multiple phones out-of-sync on contract renewal dates, is a bitch to work around. Now, for my part, I’m a committed Nexus fan, so I’m on an unsubsidised phone anyhow. But with T-Mobile, I can get my Nexus 5 straight from the carrier, Candice can pick out the phone she likes, and we can get more frequent upgrades without a contract.

Hour of Code: Voight-Kampff for Hackers?

So, Gizmodo has a great post on the new series of PSAs, “People Who Did Not Get Rich and/or Famous Coding Want You to Code”. I think Computer Science Education Week is a fantastic idea (although IMHO every week should be CSEdWeek), but the whole “hour of code” thing seemed slightly silly, until now.

Okay, the PSAs keep it silly. Every time someone in those videos says “I just did n lines of code”, the following script runs through my head:

“Yeah, this…”
"I just did #{n} lines of code".gsub!(/code/, 'coke') << ", and I can't feel my face!"

Yeah, I’m a terrible person. Also hilarious. Moving on…

Apple: The Obstacle to America’s Future?

In a brief address to kick off Computer Science Education Week (In conjunction with, President Obama called on the nation’s youth to give coding a chance:

It’s an understandable, if questionable, sentiment. I’ve previously addressed the questionable wisdom, and pitfalls, of the “teach every kid to code” movement. At the same time, computational literacy is so paramount thate ven learning enough about coding to know whay you don’t want to do it seems valuable. But I am a champion of CS education in K-12, so I like the overall tenor of that brief address. But it got me thinking about one of the most egregious roadblocks to progress in software within our economy: Apple.