found drama

get oblique

opening move

by Rob Friesel

first chess lesson

Last night I gave H. his first lesson in chess. I taught him on the board and with the pieces that my grandfather used to teach me. If I recall correctly, the board and the pieces were hand made by one of my uncles and given to him as a gift. When he died, my grandfather wanted me to have the set. There’s some sentimental value and there, and some new sentimental value following H.’s first lesson.

H. did reasonably well for a five year old playing for the first time. He did a decent job of remembering the rules. My proudest moment was when I suggested me make a particular move with his rook (“You can put me in check in two moves!”) and he refused, pointing out that it would be immediately threatened by one of my knights.

Smart kid.

dream.20130725: Fish Picnic

by Rob Friesel
Titan II ICBM

Photo by Jonathan McIntosh, 2009. Original photo posted to Flickr.

You’re at a pool party. One of your co-workers/team-mates pulls you aside. He knows a secret. (“Well, more of a rumor but…”) The Company has recently come into a large-ish stockpile of intercontinental ballistic missiles. With nuclear warheads. And they’ve been buying up retired quarries in Barre as places to cache those weapons. They’re calling it “Operation Fish Picnic”. Then you pose with him for a picture and dive back into the pool.

Linkdump for July 24th

by Rob Friesel
  • Fantastic Addy Osmani post with tips on integrating Grunt, Yeoman, and Bower into otherwise-Maven-based projects. Straightforward and useful.
  • I'm not going to quote it. Just read it. (Although by now you almost certainly have since I'm about 2 days behind on this and it was everywhere 2 days ago…)
  • Stuff.co.nz:

    Prismatic has no human editors. What you see on the page is governed entirely by machine-learning algorithms-that is, by software that adapts to you over time based on your interests and behaviour.

    (tagged: Prismatic )
  • Tammy Erickson (writing for HBR):

    These questions, I believe, are at the heart of the successful use of Twitter. Individuals who are most skilled at using this peculiar 140-character medium are those who do notice the small details of life, who capture the moments that others of us miss, who slow down to watch and listen while most race on, and who personalize the events they see.

    (tagged: modernity Twitter )
  • These are great skills to have whether you're serving in a leadership role or not. For example, being able to decompose stories (and/or "break down tasks") is going to help you in understanding the real problems and delivering the solutions incrementally. And why wouldn't you want to contribute positive energy to the group?

10 years of blog.founddrama.net

by Rob Friesel

I can’t even remember why I started this blog 10 years ago. I think it was as a way to stay in touch with friends and family. We’d moved up to Vermont not long before and I think I was feeling… Well, not homesick, but I missed my friends. People were tagging each other back and forth 1 with little memes like “hit Party Shuffle in iTunes and post what comes up” or else were posting movie reviews or recipes or the incoherent political screeds of 20-something recently-graduated liberal arts students.

Good gravy was I all over the map back then.

And not-quite-3,200 posts later, I suppose I still am all over the map. But at least the ramblings are largely contained to the link dumps. There’s a couple of embarrassing bits in the deep archives, but it seems safe-enough to stand by my record. I’d like to think that as I’ve matured, the blog’s contents have matured with me. Some respectable technology posts, some thoughtful book reviews, and the monthly search term haikus.

And let’s not forget those weird ass dreams.

  1. Whatever that could mean in the pre-Facebook era.[]

review: Functional JavaScript

by Rob Friesel

Functional JavaScriptJust like it says on the tin, Functional JavaScript (Michael Fogus 1; O’Reilly, 2013) is just that: a book about writing JavaScript in a functional style with Underscore.js as the foundational library to give you some of the higher-order functions you need to get started. 2

First, a disclosure: I have a very personal relationship with this book. Fogus is an old friend, and when he asked if I would help review it, I jumped at the chance. “JavaScript? Functional programming?” If the book was dipped in chocolate and came with a snifter of rye, it couldn’t be any more of my favorite things. And in this way, I had the privilege of reading some early drafts and watching it take shape.

What Fogus has written here is an outstanding introduction to functional programming as a style/paradigm, but he has also written what I consider to be the authoritative text on applying that style to JavaScript. He takes many of the sophisticated 3 functional concepts (e.g., pipelines, currying and partial application, protocols/mixins, immutability) and demonstrates how to set them up using nothing more than a little Underscore and JavaScript’s basic building blocks. It’s a real treat to watch him take these concepts which may seem academic or obtuse at times, and apply them with great effect in JavaScript. And it’s particularly amazing to see him take something that might otherwise seem impossible (I’m looking at you, trampolines) and then make it look almost trivial to implement.

Just like Underscore, Fogus’ book is surprisingly-small-yet-surprisingly-powerful. It shouldn’t be your first book on JavaScript, 4 but if you’re already comfortable (or at least “serviceable”) with the language, then this is the best route into programming JavaScript in a functional way. And why not put this all together? Seriously: JavaScript is the lingua franca of the web — it’s everywhere! — and as we do more powerful things in the browser, we’re going to need more powerful programming paradigms. Functional JavaScript lights the way.

And as an added bonus: you get Fogus’ awesome sense of humor sprinkled in there, making it a very fun book as well as very informative.

I am parking this one in my library right next to the other canonical texts: JavaScript: The Good Parts, 5 Professional JavaScript for Web Developers, and JavaScript: The Definitive Guide. 6 It has earned its place there.

Disclosure: I received an electronic copy of this book from the publisher in exchange for writing this review. I was also involved in the reviewing/editing process. I’m also old friends with the author.

See Also

  1. Links: blog and @fogus.[]
  2. In that way: Underscore : collection-centric JS :: jQuery : DOM-centric JS ?[]
  3. Sophisticated to the uninitiated; properly applied, these patterns lead to delightfully simple code. After you’re done with this book, I doubt you’ll think of them as “complicated”. (Though you’ll still relish in calling them “sophisticated”.)[]
  4. Maybe your second?[]
  5. Making Fun JS more like JavaScript: The Best Parts?[]
  6. ¡El Rhino Diablo![]

dream.20130716: lock the doors

by Rob Friesel

They’re coming. (It’s coming?) A storm gathers. Evening settles in. It is darker in the house than outside. But you know that the night advances along with the storm and the night brings a terror with it. You are but a scared child. Mother claims the doors are already locked but you know that it cannot be true. You can feel it. You rush down the stairs against her wishes and start testing each door in that sprawling Victorian house. Does the latch on the door turn this way? or that way? You twist the knob but you can’t tell from inside. You hazard it, cracking it open to the porch and testing from the outside-in. Unlocked! You knew it! (Or had you inadvertently unlocked it yourself?) Certain that this one is locked, you shut it fast again and move on to the next door. You can hear your mother’s protests but you continue through each door, racing against the coming terror. Most of the doors open out to three-season-porches and sunrooms and solaria. But most of the doors also seem comically thin. How will they ever protect you? And on your fifth (sixth?) door — someone does slip in! A child. A little girl scarcely older than yourself. Cowering and afraid. She hides under a small table. You try to comfort her but she only shares your fears about the night and the storm, the coming terror and the unlocked doors. You hear a lock get thrown and hear the hinges of the massive front door creak. You run toward it but it is only your father. He tut-tuts you to calm you and though you tell her about the scared little girl, he cannot see her, and he leads you toward the stairs by the ear.

Linkdump for July 12th

by Rob Friesel
  • Brendan Sterne:

    In general these rules are better than the alternative – no guideposts or structure. They help new managers and teams to function effectively. They push employees to do things in a good way. But greatness rarely happens by following rules, process and structure. That is why companies also want to find employees ready to take risks, make decisions, try new things, move fast and even break things.

    He cites a quote from Team Geek as support for this. I read Team Geek last year, and I recall this quote as well. It's good advice, but requires a lot of moral courage and self-confidence.

    (tagged: work )
  • If you need to learn JavaScript in a hurry… Dr. Axel Rauschmayer to the rescue.
    (tagged: JavaScript )
  • By Lea Verou. I don't agree with all of her points — I think "women-only" classes like the ones put on by Girl Develop It are an excellent way for women to get introduced to some technological skills in a relatively safe and judgment-free environment. Something like that? Totally appropriate. But as Verou says, you can't be insulated forever and at some point you need to come out and compete alongside everyone else — or you'll never really succeed. She labels it a long read, I didn't think it was too bad; thought-provoking and totally worth it.
  • Thank you, Jake Archibald:

    If you need to excuse yourself from progressive enhancement, you need a better excuse.

  • He bills it as "tricky". I would say that if you're writing CSS every day, you should be able to get most of these without any trouble. However, my hat will come off to you if you can get the :nth-child question without guessing or prototyping in the answer in jsbin.
    (tagged: CSS )

Linkdump for July 8th

by Rob Friesel
  • Decent post by Jim Coward (writing for the Tech.pro blog) covering callbacks, the observer pattern, messaging, promises, and finite state machines — all as approaches to dealing with your async JavaScript. It's a decent read and is a fairly comprehensive survey. There is some nit-picking that can be done here (e.g., using promises in the callback example without introducing them) but it's worth reading, even if you think you're familiar with these patterns.
  • Dr. Axel Rauschmayer. Generally speaking, if you have a sparse array like the ones in his examples, you have other problems. And/but: if that is the world you live in, then by all means have these in your toolkit.
  • A blog post by David Walsh. I'd seen some of these techniques before, but it had been a while and I'd largely forgotten about them. (Side note: mostly because I can't think of too many reasons why you would want to do this…) I seem to recall some version (versions?) of IE being brought to its knees by direct manipulation of stylesheets — but I can't find my notes on that, so consider it apocryphal until I can produce the details.
  • Handmade in Canada. With Canadian Sweat & Tears.

    Handmade in Canada. With Canadian Sweat & Tears.


    Everything on here should seem like a no-brainer, but considering how familiar every image on the right is… Well: this is now required reading.
  • Outstanding post by Pamela Fox on the sorts of questions you should be asking yourself when going selecting libraries for your project. For what it's worth, I know that when choosing between a couple of competing libraries, a lot of the things I look for are the things on this list. How many open issues? How long have they been open? How quickly are issues closed and patches applied? Do they take pull requests? (Blindly? Or with some healthy curation?)

review: Understanding Computation

by Rob Friesel

Understanding ComputationDespite the fact that there’s no real reason to be apologetic, I also haven’t yet reached the point in my career as a software developer where I’ve stopped apologizing for the fact that I have no “real” Computer Science Background. 1 And/but that’s exactly what draws me to books like Understanding Computation by Tom Stuart (O’Reilly, 2013). Stuart describes the books as for:

…programmers who are curious about programming languages and the theory of computation, especially those who don’t have a formal background in mathematics or computer science.

In other words, people like me. The people that Eric Miraglia described as the “liberal arts majors drafted into web-developer service during the dotcom boom”. 2 Yes: the liberal artsy non-computer science degree holders that wound up doing computer sciencey type software work just the same. Smart people that nevertheless are exploring some of these concepts for the first time.

For a taste of what I mean, observe the following quote:

In the end, syntax is only concerned with the surface appearance of programs, not with their meanings.

If that made you smile just a little bit, because you want to peel the onion layers away and get at the semantic questions underneath… then this book is for you. Continue reading →

  1. The “full disclosure” footnote: I was briefly declared as a computer science major while in college. I performed… serviceably in an intro class (Common Lisp!) and in an “intro to AI” class (more Lisp!) but got ground to a frustrating halt in “Programming and Data Structures”. I blamed Dr. Hunter, but I think I just wasn’t ready to think that way. Call me a late bloomer. Call me a self-learner. Call me a frustrating bastard.[]
  2. That quote can be attributed to Miraglia’s foreword to the second edition of Nicholas Zakas’ Professional JavaScript for Web Developers. The book is in its third edition now – and I highly recommend that edition – and/but: come on, that’s a fantastic quote, and it’s the reason that the two editions will co-habitate on my bookshelf for as long as the bindings hold together.[]

dream.20130706: hockey

by Rob Friesel

They have moved hockey to the summer Olympics. You sit in the locker room waiting for them to call you out. Another player keeps trying to tell you a dirty joke about a doctor and a hooker. (“Get it? He fucks the hooker?” “I know. It’s still not funny.”) The announcer on TV keeps talking about how hockey sticks have become a pointless anachronism ever since the game became more about the Zamboni races.