Elegance is not a dispensable luxury

  • On Hiring Programmers

    Lately I’ve been focusing on the management aspects of my role at Yet Analytics because I’m the first to admit I’m generally better at dealing with machines than people. But I’ve found some sound guidance along the way, whether it’s Chad Fowler’s personal career advice in The Passionate Programmer, or the managerial advice on building software teams in Managing The Unmanageable.

  • Time and Concurrency

    Last Wednesday, I gave a short talk at Baltimore Innovation Week DevDay, entitled “Time and Concurrency”. The slides are hosted here, but I’ll try embedding them:

  • "Thought Leadership" Delenda Est

    There is a short list of terms that have entered the vernacular, in the tech world and a fortiori in the startup world, which I detest. I can think of no better term to express my emotion at these terms, for I consider them beneath contempt and an assault on dignity. One, as I have mentioned, is “human capital” - a term so offensive I can’t even.

  • Hello, Octopress 3.0!

    If you’ve been here before, my blog probably either looks much cleaner and less busy, or it looks like git decided to lose all of my layout and CSS files in some industrial accident. Well, it’s no accident, and it’s not (exactly) a redesign.

  • In Memoriam: Wolfgang Walter Fuchs

    I was recently corresponding with a professor of mine about Wittgenstein, planning to set up a meeting to have a chat and catch up. Oh, and talk about Wittgenstein, as I found another place where philosophy is relevant to programming. In my last email to him, I happened to ask after one of his colleagues, who was my advisor, mentor, and one of the most influential people in my life.

  • The Polyglot's Dilemma

    If it hasn’t been clear up to now, I love Clojure. I wish I could write Clojure all day, every day. But Clojure isn’t my first language, and possibly not even the language I grok most completely.

  • The Angel of History

    It all started with a Paul Klee print, or perhaps that’s where it ended:

  • Recovering From Clojure/conj

    Whew. I just got back from Clojure/conj and boy, is my brain tired.

  • Emacs: Down the Rabbit Hole

    So I wrote Welcome to The Dark Side: Switching to Emacs in response to a tweet, but as any of my co-workers will attest, it doesn’t take much to get me started on my Emacs workflow.

  • Reify This!

    On the way home this afternoon I was asked to explain Clojure’s reify macro, and apparently I did quite well, as an “Aha!” moment resulted. So I shall endeavour to explain reify here in the hope that such a moment might be available to others.

  • Welcome to the Dark Side: Switching to Emacs

    I have to start this post by saying I’ve been a dogmatic Vim partisan since the 1990’s, when I started using vi on the Solaris and Irix boxen I had access to, and then on my own machines when I got started with Linux in 1994.

  • Fear and Coding in Las Vegas

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

  • 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.

  • 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.

  • 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:

  • Scream When You Learn

    Apologies to Charles Bukowski

  • 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.

  • 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.

  • 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.

  • Hour of Code: Voight-Kampff for Hackers?

    So, Gizmodo has a great post on the new series of Code.org 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.

  • Apple: The Obstacle to America's Future?

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

  • Github Matters - Followup

    Mea Culpa

  • So Github Is Not Your CV. It Still Matters

    It’s funny, a few days before the OSS-as-hiring-criteria debate emerged on Twitter and HN — mostly stemming from this post by DHH and this post by Ashe Dryden — I had just posted Just Get Hacking (Part 2), encouraging prospective developers lacking a CS background who wanted to get hired to put lots of code on Github.

  • Just Get Hacking (Part 2)

    The Important Stuff

  • Just Get Hacking

    This post is a follow up to a previous entry, “Letter to a Young (Or New) Programmer”.

  • Maybe EdTech Is Another Leaky Abstraction

    Working in the EdTech sector, I’m perpetually vexed as I try to determine what exactly “EdTech” is and, a fortiori, what effective EdTech should look like. Perhaps a little background might be in order.

  • Letter to a Young (or New) Programmer

    I get it. You went to college, graduated, got a job, and it’s not what you wanted, hoped for, or whatever. Or maybe you’ve been in the same job for years, and it’s just no fun anymore. And you look at your friends who are hackers. Yeah, we’re anti-social, maybe kinda jerks, but we have so much fun at work, and get pretty well compensated for playing.

  • Return of the Job Destroyer

    Or, “Human Contact as a Premium Service”

  • The Importance of "Aaron's Law"

    Yesterday, Rep. Zoe Lofgren and Rep. Ron Wyden introduced a bill, known as “Aaron’s Law”, which amends the Computer Fraud and Abuse Act (CFAA), a 1986 bil which set most of the “cybercrime” statutes on the books today. This law, affectionately known as U.S. Code Title 18, Part I, Chapter 47, §1030, has been added to many times over the years (via the PATRIOT Act, and various bills related to issues of identity theft, etc.), but the substantial core of the bill has remained the same since 1986: vague, ominous, overly broad, and a rampant playground for prosecutorial misconduct.

  • We're Not Ready to Teach Kids to Code

    Think Kids Should Learn To Code? Teach The Teachers First

  • I'm an Estuarian!

    It’s been a while since my last post, because the last few weeks have been just a little crazy.

  • Be Willing to Let Go; or, "the Big Rewrite"

    Is it possible that software is not like anything else, that it is meant to be discarded: that the whole point is to always see it as a soap bubble?

  • The Difficulty of Chaotic Good

    So in a delightful twist, Michael O. Church has brought in the concept of D&D ethical alignments to the corporate hierarchy/career discussion.

  • Donglegate, Inclusionary Culture, Nerd Culture

    I’ve taken my time in writing about this. I had some debates (for better or worse) on Twitter, and some rather thoughtful meatspace conversations with friends and coworkers. I have strong feelings about what happened at PyCon (re: the donglegate scenario), and many of them are conflicting. So I’ve waited to write about it until now.

  • Farewell, Reader; or, the Problem With "Free as in Beer"

    I’m going to miss Google Reader. I know a lot of people are going to. Hell, in a crazy inversion of Godwin’s Law, even Hitler is upset. There’s a petition on Change.org, and Bender is pissed:

  • The Myth of the "IT Department"

    So in the comments on my last post I mentioned my fandom for what is, in my opinion, the most insightful and important blog currently published, that of Michael O. Church. His recent series of posts have been reviewing and analyzing the MacLeod theory of organizational structure (link is to the latest post in the series, but if you haven’t been following it, therein are links to the previous eight).

  • Confessions of a Job Destroyer

    One of the most unfunny ironies of the rhetoric surrounding “job creators” in contemporary American politics is that most of the jobs being created (or at least, those with the greatest demand) are in the tech sector. Jobs like mine. Jobs that automate processes that used to be performed by people.

  • The Social University That Could Have Been

    This is a post I’ve wanted to write for a while, but I’ve needed time and distance to do it justice. This is a post about (from my perspective) the greatest failure of my professional career.

  • PAM Authentication Beyond the Desktop

    The Linux PAM (Pluggable Authentication Modules) architecture is one of the most wonderful (and most overlooked) features of the OS. Typically we only consider PAM as handling our console (or xdm/gdm etc. logins) on Linux, but it’s useful for so much more.

  • Code Typos Got You Down? Stop Worrying With Close_enough

    From the crack team (Micah Gates and myself) that brought you job_interview, I’m proud to announce the availability of close_enough, a gem that will save you from all of those niggling NoMethodErrors that occur when you mis-type a method name.

  • DateTime Conversions in Clojure

    In dealing with integrating data from disparate incomaptible systems (which I do to a degree that would drive some men mad), one of the most frequent irritations is dealing with datetime conversions.

  • Ingress - Crowdsourcing Solutions to NP-Hard Problems?

    So I don’t blog much about my gaming habit, but I recently got my invite to Ingress, Google’s new location-based MMORPG. Much has been written about the extensive (one might even say brilliant) viral marketing campaign that launched the game, and there has been some interesting speculation as to Google’s motivation in producing such a game, ranging from the begrudgingly admiring to the borderline paranoid.

  • DCI: The Right Idea for the Wrong Paradigm

    I’ve been following with great interest the recent debate over DCI vs. Concerns vs. Whatever in Ruby. The best take I’ve seen, however, is Tony Arcieri’s recent post, “DCI” in Ruby Is Compeltely Broken.

  • Legacy Systems on Rails (Part 3)

    It’s been a while since my last post in this series (if you missed them, here are parts one and two) but I wanted to return to the topic of building out Rails applications on top of legacy systems.

  • Feedback Loops

    Sadly, I haven’t added a blog post in roughly 2.5 months. I’ve had ideas for posts, but when it came time to set pen to page (or fingers to keyboard, as teh case may be) I just haven’t had it in me. I really enjoy writing this blog, too. I wasn’t quite sure what was going on, until I read one of the most insightful blog posts I’ve ever seen: Be Nice To Programmers.

  • LadyCoders, Twitroversy, and You

    So, I had intended my next post to address some of the (valid) criticism of Github that’s been making the rounds lately, but a much more disturbing Twitroversy has emerged today.

  • Generational Impedance Mismatch

    One thing I’ve come to observe working in higher ed is that you can run into a lot of issues with what I want to term “generational impedance mismatch.” It’s what happens when your ostensible customers are about 40 years older than your target demographic.

  • Legacy Systems on Rails (Part 2)

    This will be a quick one. I just wanted to give an example of how Ruby’s open classes can be a lifesaver when a vendor makes bizarre choices, which you then have to deal with.

  • Legacy Systems on Rails (Part 1)

    Much of my job consists of providing customized or novel interfaces for a complex legacy system which, although still maintained by the vendor (who shall remain nameless), does not currently (nor do I ever expect it to) meet many of our institutional needs.

  • Higher Education Needs a Revolution

    Yesterday, Coursera announced that 12 more universities had joined their program of creating massive open online courses, or MOOCs (one of them was Johns Hopkins University, where I work, so I was especially excited… we’re not always “early adopters”).

  • Static Is Beautiful

    I want to return to the core sfocus of this blog, elegance and simplicity in technology, but in kind of a meta way.

  • Hackers Need Our Own Everything

    When I conceived of this post, it was going to be about how damn awesome Octopress is. And it certainly is awesome; it powers this blog, and makes writing it a joy, whereas trying to use Wordpress, Blogger, or even newer alternatives like Tumblr or Posterous was downright painful. But what I’m more interested in is the growing trend among apps, services, and even operating systems that has made projects like Octopress necessary.

  • Try Ruby... Seriously.

    Every now and then someone comes to me for advice because they (or someone they know) wants to learn to code and has no idea where to start. Usually, the first thing I do is send them to tryruby.org, the awesome web-based REPL and tutorial the Code School folks put together, based on _why’s (poignant) guide to ruby.

  • Hypermedia APIs: The New Wild West?

    Two of the best presentations at RailsConf this year, Designing Hypermedia APIs by Steve Klabnik and Rails: The Next Five Years by Yehuda Katz were related to the topic of hypermedia APIs. The video of Steve’s talk isn’t up on Confreaks yet, but the slides are here. I’ll embed Yehuda’s talk right here:

  • Elegant Organizations

    For a long time, Jason Fried’s article Why I Run a Flat Company has seemed like an unrealistic dream that only works in rarified pockets of hacker utopia.

  • Passion, the Ultimate Virtue

    I’m finally reading Chad Fowler’s excellent book, The Passionate Programmer, and in it he recounts an experience that was chillingly familiar.

  • Un-Pythonic for Fun and Profit

    This post isn’t meant to play into some hacker holy war, nor is it intended to denigrate the usefulness of Python for various tasks. Steve Yegge has done a much better job than I can of explicating some of the issues other programmers have with Python, both the language and the community around it; I still agree with his remarks there.

  • Job_interview

    So, I wanted to plug a little project that Micah Gates and I hacked together at BohConf, the awesome un-conference and hackfest that runs parallel to RailsConf each year.

  • Simplicity

    Machine Beauty

  • Starting Over

    I decided to retire my old blog, which had devolved into a platform for rants rather than anything truly worthwhile… to me, anyhow. Sure, my rants were amusing at times, and people seemed to enjoy them, but that’s not the point of blogging for me.

subscribe via RSS