1 post tagged “rubyfringe”
I just got back from RubyFringe [Toronto], quite possibly the best tech conference I've been to thus far in life.
I've been to a number of tech events, from LAN parties in SoHo to IEEE vision conferences in France, from GOOG developer days to ACM CHI, BarCamps to WebExpos, and RubyFringe--subtitled "Deep nerd tech with punk rock spirit"--had the best food and music of them all. And you know, cool peeps too, even if _why, defunkt, and ezra didn't make the show :)
Toronto
This year's RubyFringe (will there ever be another?) was held in Toronto, Canada, cityland of great diversity. I grew up not far from NYC, another such cityland, and now live some 60 clicks away from SF, and yet there's this way in which *-Americans tend to assimilate, as if bowed to the pressure of some greater cultural force. In contrast, residents of Toronto seem to retain more of their heritage in some way that seems difficult to explain. Perhaps it's mainly a matter of language and sheer numbers of pop. distribution?
Whatever the root, folks who move to Seattle seem to somehow lose (give up) more of their past than folks who move to SF, who may lose (give up?) more than those who move to NYC, and then the same for Toronto.
a day in modern RubyLand
That in mind, perhaps it's fitting that RubyFringe took place in Toronto rather than SF or Seattle, as the Ruby programming language itself is a sort of eclectic combination of PL design. And as much as I love Ruby, I sort of have had more love for the larger Ruby community and its eclectic (as in "Greek eklektikos, from eklegein to select, from ex- out") slashslightly eccentric nature, from _why to zed to matz. And I don't have strong arguments as to why Ruby is "greater-equal to" Python, except to say that (I feel) Python tends to attract Physicists whereas Ruby tends to attract Musicians / Artists.
That said, I would say that Ruby, or rather the larger Ruby "community", if you grant that such a ragtag thing exists at all, has been innovating muchlyso in the last four/five years, from the Win of Rails (Ruby on, which has since influenced newer PHP, Python, and Java web frameworks), to whytheluckystuff such as Hpricot, or well anything redhanded, from Mongrel also~use of Ragel to modern explorations in web microframework land (Merb / Sinatra), from the improv acts of Haml (markup haiku) to the newly released gist.github.com.
From the perspective of this apprenticing academic, there's nothing new in RubyLand, nothing new under the sun, as Ruby the-programming-language merely combines notable language features from Smalltalk and Perl, Lisp and the like, and yet to me matz succeeded in "trying to make Ruby natural, not simple". As an academic, one might often cite Ousterhout on Scripting, or even BAM on Natural Programming, but it seems hard to do (academic design) research in the space wherein Ruby, Rails, and jQuery have succeeded. John Resig's jQuery gets The Design Right and The Right Design and some might say the same for Ruby and/or Rails, but these claims are hard to falsify, and thus to publish academic research about (which is why I blog here'bout it rather than study modern Rubyland for my academic research :)
I hope that gives those of you (apprenticing) academics, hackers, observers some insight into some recent high-order bits in RubyLand. That said, some conference details to follow!
Day Zero
I missed the RubyFringe commencement--was out of it after some 31 hours of traveling from SJC--but caught bits of stories from FailCamp, which reminded me of my days at The Frugal Empire (AMZN dot com). People got up, AA-style, and said "My name is X, and I have failed", then telling their story of Fail.
What is "Fail" anyway? Epic fail? Many of you have seen lolcats, and perhaps or perhapsnot Fail is an offshoot of that genre of ridiculousness, where an oops-i-? image is post imprinted with an Impact-typeface screed of FAIL -- this generation's America's Funniest Home Videos, in screenshot, Internet meme form.
But beyond this, I think what matters about FAIL is less about the fail itself than our culturally embedded notion of failure, specifically how we can FAIL and get up again, rather than being marked off as a failure. Guy Kawasaki has written about how, in Silicon Valley culture, you can FAIL and get up again without being A failure (as was the case in older, more risk-averse societies), and what I take out of FailCamp and RubyFringe in a larger sense is that FAIL is okay, is funny, is something to be sometimes laughed off and moved past. In the 3P's of things, FAIL is not Permanent, not Pervasive, not Pervasive. Just fail! ...so that we might learn to pick ourselves up again.
Day One
Day One began with breakfast and registration, where I volunteered and helped to get folks signed up.
- Jay Phillips presented his work on Adhearsion, an open source Ruby-based DSL (domain-specific language) that expressively represents, and then generates config for the open source Asterisk PBX / Telephony Platform. That is, if you'd like to configure a telephone exchange for your business / office using open source VoIP technology, Adhearsion allows you to do so in a compact, domain-specific language (above Ruby core), that can easily integrate with your employee databases. [I sat near Jay at a pay-by-the-pound Veg restaurant that didn't seem to offer much quinoa or tempeh, and Jay seems to be doing well by making Adhearsion consulting his business.]
- Dan Grigsby of unpossible.com was going to talk about Ruby deployments, but ended up talking about Sink's metaphor of Barrel Research. You could think of this as a spin on the Long Tail, in physical / volumetric form. Operating Systems, Office Suites, Browsers are the big rocks in the market if-it-were-a-barrel, but between the space of those rocks, you can fill in hundreds of little gems, and between those gems you have your grains of sand. He then talked about how we as hackers have skills enough to "hack the market", by exploiting inefficiencies in the market, whether by looking at diffs of Freedom-of-Information-Act dumps or by being inspired by cults, game design, Reefer Madness. Memorable quote? "You're not fringe if you work for the Man!"
- Tobias Lütke talked about Rockstar Memcaching and Yehuda Katz talked of "Living on the [Ruby] Edge"--Thor, a "full-stack package for writing robust binaries" that tries to go beyond optparse and Rake/Sake; DataMapper, an attempt to move beyond ActiveRecord-type ORMs to object-data mappings (i.e. REST or whatnot), or even just trying to support the Complexities of modern relational schemas; YARD, which tries to add microsemantics to Rdoc; finally, Johnson, which "wraps JavaScript in a loving Ruby embrace". Dueling Garbage Collectors, ai-yah! I'm still not sure what to make of Johnson, but as fas as I can tell, most people aren't either :) You'all figure it out!
- Lots of people liked Luke Francl's talk on "Testing is Overrated". The most interesting slide data-bit for me was the one that argued that in terms of # of defects found, unit tests are okay, code reviews do better, more formal code inspections even better (having a facilitator and a process help that, or so I learned in a class I attended with Mr. McConnell as the teach'), and prototyping kicked all their butts. Nice. d.mix anyone?
- Nick [JRuby] Sieger talked about Jazz -- see his blog article on Jazzers and Programmers for the scoop -- and I rather liked this talk and the musical accompaniment.
I'm still not sure what to think here, and I suppose we generally ought to accept that we live in a Capitalistic state, but how much should that drive who we are and how we live? I suppose I'm still a half-young, half-hippie, half-idealist at heart that feels and feels out that kind of dirt.
That said, I do think marketing is important, as are sales, and yet, where do we draw the boundaries? What do we, have we lost along the way?
I'll end here, then talking of PORN. Zed Shaw gave a presentation titled "THERE WILL BE PORN: 10 Dangerous Ideas Nobody Should Implement". I missed the first some minutes, but he talked of combining a TODO list with Pornography and Dangerous Ideas like that. I talked with him later and, given his interest in the social impact of tech, pointed him towards Melvin Kranzberg (for example, see Kranzberg's laws of technology). Zed might like that kind of work, and Kranzberg's writings, but perhaps not.
Zed also talked, offline, about just watching Charles Moore as he programs, getting that record of his technique on tape. It is weird that we don't get to see programmers actually program, just perhaps pass them one-dimensional or two-dimensional foodstuffs below their locked doors (thx you Microserfs), and get binaries and/or source on the other end. That's a sad state of affairs, as perhaps we improve as coders soveryslowly, if at all. Would you pay to see Zed, or Charles Moore, Knuth (and his unexpected aspect ratio :), or Guy Steele hack? I do think that the HCI community has a history of watching people as they work, whether Lucy Suchman back in the day or one of BAM's PhD students as they see how programmers Actually Work, and yet we probably do know so little of how the masters do it. We see the end result, but not the struggles, the techniques and tricks, prototypes and shell commands, commits and rollbacks
along the way.
Arguably, Susan Lammers' Programmers at Work takes us part of the way there and Founders at Work sketches out modern startupLand, but there's a delta between startups and programmers back in the day, and programmers as described second-hand versus programmers as they Actually Work. That said, I hope Zed actually does this, and records the workings of some great Hackers before they pass away.
As for Zed's talk itself, well, what can I say, Zed is still a bad-ass. He has a long-ass entry on his blog, which I have yet to read through, but he did post the multi-track songs he recorded in phase-shifted real-time, as it were, using a Dr. Beat, a travelin' guitar, harmonica, and a software hack he calls Inculcator.
Inculcator? "To implant by repeated statement or admonition". Or rather, "a small project to help record live music sequences for dynamic playing and looping with a minimum of interface friction." It uses Ecasound and a probably ugly PyGame/Pgu interfaces. Now world, where's the Shoes ver? :)
Day Two
Day Two, to follow in another entry :)
But before I sign out, props to Pete Forde! to unspace & Meghatron, the other volunteers, attendees, and double You you.