RubyFringe was profitable, people are happy, and the sky didn't fall. What now?
posted by pete on July 31st, 2008
tachidomaru: stand, stop, and look back
It’s really strange knowing that RubyFringe is behind us.
We were incredibly naive about how much effort goes into running a conference; Meghann and the curators spent roughly seven months planning every moment of the weekend. I suspect that conference planning takes roughly the same amount of work regardless of the total number of attendees, and perhaps that’s why they always seem to grow. A 400 person conference doesn’t become better with 1600 people, but if you’ve already done the hard work, why not scale up?
It’s a trap, that’s why.
When you put that much work into something — and your baseline goal is to make sure 150-200 people have the best weekend of their lives — you get kind of absorbed in it. Like a demanding lover, there’s always clothes that need to be ordered, alcohol stocked, prose written, and transportation booked. There’s no such thing as over-thinking something that could be your life’s most significant failure, and the little details are what people remember. Suffice to say, we are ecstatic that people had a great time. We came out of left field with this random, almost hostile sounding idea… and a whole bunch of people trusted us. Thank you for that! And those of you that didn’t trust us, it’s okay! It was kind of a stretch, and we didn’t really know if it was going to work until people started to show up. We still love you.
Read the rest of this entryMy 2008 Ruby Survey
posted by hampton on July 29th, 2008
Hey, everybody!
Go, take the Ruby survey if you are a Ruby programmer!
How To Do Email Right
posted by hampton on July 28th, 2008
I’m just as guilty of this as anyone. I do this shit all the time. Send out an email, then require the user to login and put in extra effort to getting them to do what you are asking. This is retarded. Activation links (and auto-login links) should be standard in every app.
Heroku does this beautifully with their invite emails. Let’s check it out.

As you can see, a nice activation link. Just click on it and you are magically whisked to this next page.

It already knows who I am! Yes! I just need to type in my password. And, I’m all done! Every app should have these kind of details in them. Here is another site that does it right.

OKCupid takes it up another notch here. Every single link in this email is unique and is a randomized key. Clicking on any link will log you in. If I’m interested in a user, then link I follow looks like… “http://www.okcupid.com/l?dtnNa7A9yCcotqd” though it’s obviously styled here. It signs me in and sends me to the appropriate page.
I find myself using this site much more often because of this awesome feature. I don’t have to dig for usernames. Obviously, this wouldn’t work for something like online banking, because its rather insecure. But, at least it should guess my user name. And, for 99% of the sites out there, this is well within security constraints.
We are RubyFringe
posted by pete on July 20th, 2008
It’s strange writing that RubyFringe is in its last hours, because this event has been our baby for seven months. The tireless efforts of the Rubyfringe curator team — most notably the logistical force of nature known as Ms. Meghann Millard — over the last while has resulted in an event which I am proud to say has been a huge success.
I personally hate avoid Twitter, it’s true… but I will admit to the guilty pleasure of watching the real-time comment feed. People seem really happy with what happened here.
Thanks again to all attendees, the amazing volunteers, and my fellow curators. This has been one of the most significant long moments of my life.
Kieran Huggins from MyTTC took this awesome photo from behind the stage.
All attendees received a conference program not unlike that which you’d buy for $15 at a musical.
For those of you not present, I was indulged in the form of this opening letter:
We made it! We are here: Welcome to RubyFringe.
It’s not an accident that the team behind RubyFringe are music geeks; we’re musicians, we’ve worked at labels and managed bands, and we collect vinyl LPs. We chose to buck the Ruby “everything in red” trend and instead draw on the influence of punk rock. Pioneers like Charles Babbage and David Bowie invented despite a vacuum of technology, and the results seemed like magic at the time. While the superficial aspects of the punk era could be easily co-opted for profit, let’s not forget that youthful rebellion through music is a political movement with teeth. You can thank this “devil music” for being able to wear jeans on casual Friday, after all.
“Music is a hidden exercise in mathematics by minds unconscious of dealing with numbers.” — Gottfried Wilhelm Leibnitz
What does it mean to be part of a punk rock Ruby conference? Your ticket was not free, and there is nary a safety pin or sewn-on patch in sight. Punk embodies a reaction to the established ideals of the day. Democratic, ad-hoc subcultures full of people who passionately believe that life can offer something more emerge. Auto-education seems natural as people teach themselves the skills they need, and make tools they do not have. Rubyists don’t need permission from proprietary corporate vendors, and they would never ask for it anyhow. The people drawn to these ideals are often refugees from a harsh world. They seek a better life, blocks, and ActiveRecord.
“Only fear of death makes us want to stop life, to ‘fix’ it impossibly forever. The moment life is fixed, it is no longer true; it is dead, and therefore uninteresting.” — Jean Tinguely
Is Ruby a small community of eccentric individuals? Compared to Java, sure. However, it is clear that there are more and more kids crowding the playground, and they are not all going to be alpha geek early-adopters. Some will smoke in the parking lot, some will play Lobbyists and Downloaders, and some will be transfixed by the huge enterprise advertising banners across the street. Still others will be content to play with themselves and rat out the smokers when they light trash bins on fire. Clearly, at least one will discover LSD and draw instructional comics, too.
“In order to capture Chaos, human beings cannot inscribe order into it.” — Akira Asada
It makes sense that we are seeing a protectionist freak-out: there are more and more Newbies that had not heard of Ruby until they saw fifty Rails titles on sale at Amazon. Those geeks lucky enough to be connected, attractive, and particularly eloquent can play the arrogant card to great effect. However, if the public perception of a typical Rubyist can be summed up as “massive superiority complex,” is it any wonder that many folks think we’re dicks?
“Gardening and engineering are key metaphors. [We are seeing] the change from an engineering paradigm, which is to say a design paradigm… to a biological paradigm, which is an evolutionary one.” — Brian Eno
Recently there has been a feeling of growing discontent: how could Ruby — which felt so new and liberating two years ago — get saddled with so much negative baggage, so quickly? More importantly, how did we let this happen? Was there a moment when the tides turned? If we could go back, would anything be done differently?
Why do people attend technical conferences with the expectation that they’re going to be bored?
tachidomaru: This word is a combination of “stand” and “stop,” and means “to stand, stop, and look back.”
RubyFringe is just a moment in time, but it’s your moment. It’s up to you to meet everyone here, challenge them, and take this movement forward. It’s easy to be an asshole on the Internet! Coming to RubyFringe and changing the world — one conversation at a time — is hard. We are going to keep putting drinks into your hand until you realize that these strangers are not just the best friends you could have, but that together we represent an opportunity to write the winning history of software development.
Please be nice, and remember to drink lots of tap water.
Pete Forde
RubyFringe Co-Curator
Think lazy: Rails is like building a kayak
posted by pete on July 15th, 2008
When I was young, I spent part of my summers at camp. I hated canoeing, but I loved to kayak and actually became quite proficient. As far as watercraft go, a kayak is quick, agile, and makes you feel free. Never one for team activities, my kayak made me feel quietly superior to the kids in canoes while reinforcing my budding independence.
Kevin Kelly’s awesome Cool Tools mailing list recently contained excerpts from Kayaks You Can Build: An Illustrated Guide to Plywood Construction. The first think that struck me is how much it sounds like using Rails:
In order to achieve professional results, each stage of your work should be completed with the least number of steps as well as prepare you for the next stage. For example, if you apply the filler casually with a stick, before the next step can happen the excess will have to be sanded off. Professionals eliminate the cleanup step by placing just enough filler in the right place to do the job. When the masking tape is peeled off, the step is complete and ready for the next one. Keeping the filler under control saves time and minimizes exposure to the bad stuff. That’s a pretty fair payoff, but there’s also a bonus that comes with thinking lazy. That bonus is professional results. You cannot build a professional-quality boat when you are doing damage control between each step… We are all good at something; by combining an understanding of what needs to be done with what is already familiar, we find that practical solutions present themselves.
Translation: Embrace conventions and don’t reinvent the wheel. Your problems are rarely unique; read blogs and keep up on new patterns. Is there a gem or plugin that does what you need? Chances are that if you start from scratch, your code will have more bugs than if you use a mature, battle-tested mixin. Spend that time contributing patches to existing projects on GitHub!
The less epoxy you put on, the less you have to sand off. If the epoxy is kept under control when wet, expect about one day of sanding, preferably outside. Tidy glue application brings the additional benefits of less unhealthy dust produced and more efficient – and less costly – use of the epoxy.
Translation: Don’t Repeat Yourself! Writing the same code over and over again is a drag. Premature optimization is a waste of resources, but always be on the lookout for clever abstractions. However, don’t refactor something that isn’t broken unless you can truly see a long term benefit.
So, how to begin? One option, of course, is the free-form approach, in which the kayak is built right on the floor or, as one manufacturer suggests, on something flat like three cardboard boxes. Although this lets you get right to work, there are a number of drawbacks. One is the possibility of introduction funky eccentricities and variables to a process that requires precise control. The other is the questionable practicality of spending hours bent over, toiling on the floor. This is a pretty good sized “some assembly required” project, and at some point in the process either your knees or your back will start protesting.
Translation: The environment we work in is important. The tools we choose decide whether we will be happy in the long term. We owe it to ourselves to buy a good chair and get a large, crisp LCD. Make sure that you adjust both for distance and posture, or you’ll have arthritis after a few short years.
Another way to go is to build a worktable that will raise your assembly surface to a more civilized altitude. With some forethought the worktable also becomes a modification of the traditional boatbuilder’s strongback. A big advantage to the worktable is that you are, in effect, working from the same baseline that the designer used to draw the boat. With the addition of a centerline and station liners, the table becomes an accurate reference and a jig for many of the building steps… Being able to reach in and clamp along the edge of the worktable is convenient, and a step towards making tidy joints that require very little cleanup. This not only saves time but also reduces your exposure to the epoxy.
Translation: Rails is like an agreement between friends about how things should be done. The smartest minds in web development software are all taking their best ideas and creating a baseline standard that you can build just about anything on top of. Ruby and Rails give us freedom from the hostile conditions which threatened to steal away the joy and awe we felt when we had our first programming experiences. These tools are designed to be fun and make us happy. We don’t have to buy expensive proprietary IDEs and server licenses, or keep on top of bullshit payola moving-target certifications and “partner” programs.
Seriously, when was the last time you thanked Matz and David for their contributions to the long term quality of your life? Why not take some of that time you didn’t spend programming Java or C#, grab a pen and some nice paper, and write them a letter. Draw them a picture, or send a Polaroid of your family.
David Heinemeier Hansson
c/o 37signals
400 North May Street
Chicago, IL 60622
Yukihiro Matsumoto
Gakuen-minami 2-12-5
HOYO parkside Bldg 2F
Matsue-shi
shimane
690-0826 Japan
I double-dare you! Getting actual fan mail is like sex and Christmas at the same time.
Skype FAIL
posted by hampton on July 7th, 2008

What an awful, awful message to give someone who is trying to pay you money. NO SKYPE… YOU FAILED.
