Posts from Loud Thinking...

Twitter me this

If a tweet is uttered with no followers, does it make a peep? I'm getting going with Twitter on http://twitter.com/d2h.

The silent majority

I had a great time on the West coast recently with stops in Santa Barbara and Palo Alto. What always surprises me at events like these is the huge number of people I meet that are doing cool things with Rails that I've never heard of. The kind of people who are just really happy to be using Rails and happy to build businesses with it.

Most of them are not heavily involved with the community in the sense of always being in front of it. They're not the ones constantly commenting on the blogs. They're just enjoying working with the tools. That's a really refreshing sentiment.

It's easy for people to think that the interaction they witness on the web is a complete reflection of the world in general. Often it's quite the contrary. Which is why I so enjoy getting out of the web world and meeting people in the flesh. Hearing their stories, discussing their concerns, and sharing passions.

You can easily end up burning out on web participation because the loud minority twists your perception of what matters and who cares. But there's nothing like meeting people who tell you that working with Rails or listening to a talk or reading something you wrote either touched them, changed them, or made them move in a new direction. That's a big pay-off for getting involved with public sharing.

So thank you so very much to everyone who came up to me at any of the events out in California. It makes it all worth it to hear your stories. Keep on rocking with whatever it is that you're doing. Keep the passion and the optimism alive.

Going to California

I'll be speaking at an event put on by AppFolio at 6:30PM on the 17th, at Paul Graham's Startup School on the 19th at around noon, and finally meeting up with some people from the SD Forum Ruby conference on the eve of the 19th. If you're at any of these events, do stop by and say hi.

Git's avalanche

I remember thinking how impressive the roll-out of Subversion was. They reached some magic point where the majority of the development world just flipped and most everyone who've previously been on CVS switched in what seemed like an overnight transition.

Of course it didn't happen like that, but the perception of a sea of developers all collectively deciding to move on and knight Subversion the next savior seemed impressive at the time.

It's not so easy any more. First of all, Subversion is still a great SCM for the paradigm it embodies. It's unlikely to be out-gunned within its sphere any time soon. So any newcomers can't just out-SVN Subversion, like Subversion could out-CVS CVS.

Which means to topple Subversion, you have to bring a new paradigm to the table. The plethora of distributed version control systems seem to be that next paradigm. But it's not purely equitably "better", it's different. Better in many regards for many purposes, but not just better. Like SVN just felt better, period, than CVS.

So given all that, I think the Git move is even more interesting. That camp is competing not only to convince people that a new paradigm is appropriate for many things, but also as that it, one-out-of-many, should be the one to embody it.

I think they're going to get it. Killer apps makes or breaks any platform. With Github, I think the Git hub just scored one. Rails is going to be hosted there for the launch. Capistrano, Prototype, and Scriptaculous already moved there.

Go, go, Git.

The immediacy of PHP

I've been writing a little bit of PHP again today. That platform has really received an unfair reputation. For the small things I've been used it for lately, it's absolutely perfect.

I love the fact that it's all just self-contained. That the language includes so many helpful functions in the box. And that it managed to get distributed with just about every instance of Apache out there.

For the small chores, being quick and effective matters far more than long-term maintenance concerns. Or how pretty the code is. PHP scales down like no other package for the web and it deserves more credit for tackling that scope.

In it for the long haul

Announcing RailsConf '08 today, I stopped to think about that by the time this conference rolls around, I will have been working on Ruby on Rails for five years. Wow. There are so many memories from this wild ride that it's at once both hard to fathom that it's been so long and yet it feels like I've been doing it forever. Time can be funny like that.

But what pleases me the most is that I still absolutely love working on and with Ruby and Rails. It didn't pass, it wasn't just a phase, it wasn't a run for an exit event. I think that's significant because it means that I, and everyone else still involved with the project, are just as likely to keep at this for another five years or more.

When you do what you love for the sake of itself, the rewards are so much greater than if you just do it for external incentives. For lots of measures of "winning", we've long since won with Ruby on Rails. The impact on the industry, the adoption by thousands of companies and developers, the books, the conferences, and all that jazz. And yet, it doesn't really matter that much in the end. What matters is getting excited about continuing the work.

In light of this, I strongly recommend that you find a vocation in your life where you just really enjoy the act itself. Not just the results, not just the external incentives. The actual work. There's not enough time to spend it doing anything else.

The deal with shared hosts

Most Rails contributors are not big users of shared hosting and they tend to work on problems or enhancements that'll benefit their own usage of the framework. You don't have to have a degree in formal logic to deduce that work to improve life on shared hosting is not exactly a top priority for these people, myself included.

That's not a value judgement. It's not saying that shared hosting is bad or evil. It's simply saying that the Rails contributors generally don't use it. By extension, it's not something that we are personally invested in solving as a traditional "scratch your own itch" type of development.

Improve what is for profit and fun
I'd love for Rails to be easy as pie to run in a shared hosting environment, though. I'd love for Rails to be easy as pie to run in any environment. In that "more people could have fun learning Rails and deploying their first hobby application" kind of way. But I don't need it in the sense that I'm going to put in the work, personally, to make it happen.

Others might, though. The Dreamhost guys in particular sounds like they're experiencing a lot of hurt running Rails in their shared hosting environments. That should be a great motivator to jump in and help improve things. The work I do every day to improve Rails is usually about removing hurt. Heck, it's currently in the slogan on the Rails site: "Web development that doesn't hurt".

Second, it sounds like they have a substantial economic interest in making the shared hosting scenario for Rails easier. I read that a fair number of their customers are going elsewhere because they can't get Rails to run well at Dreamhost. Before they leave, though, they probably tax the support system quite heavily as well. So there's direct costs, lost revenues, and probably also a great upside waiting if Rails ran great on their system.

That's both a personal motive for having a less stressful day and a profit motive for making your business more money. Sounds like a match made in heaven for someone like Dreamhost to get involved and help do the work to make Rails a great shared host experience. They might not have the man-power in-house today to make that happen, but I'm sure they could easily hire their way out of that. If the plan they want to pursue is a better mod_ruby, I'd start looking at that project for people who've contributed and ask if they'd like to earn a living improving the state of affairs.

We'll work with you if you're willing to work with us
Again, I'd love to see someone tackle this challenge and would be more than happy to work with a group pursuing this to get their results into Rails or working with Rails the best way we can. Consider that an open, standing invitation.

In exchange, I'll ask a few, small favors. Don't treat the current Rails community as your unpaid vendor. Wipe the wah-wah tears off your chin and retract the threats of imminent calamity if we don't drop everything we're doing to pursue your needs. Stop assuming that it's either a "complete lack of understanding of how web hosting works, or an utter disregard for the real world" that we're not working on issues that would benefit your business. Think of it more as we're all just working on the issues that matters most to our business or interests.

The alternatives
Now if you're a user of shared hosting and you're not satisfied with the results you're getting — and you're not getting good vibes that things will be better — there are alternatives. Lots of them in fact. And it doesn't have to cost an arm and a leg. Self-service VPS outfits like Slice Host has plans starting at $20/month that runs Rails great (I use them to run this site). RailsMachine has a Rails-specific setup for $75/month. And for the more high-end stuff, you can get great setups from Joyent, Engine Yard, and tons of others.

So as a programmer looking to deploy Rails, you have tons of options in all price ranges. If you're a shared host looking to capitalize on a framework that's driving a lot of demand, it would seem that your best option is to actually get involved and help the community help you.

Don't overestimate the power of versions

I've long been impressed and puzzled by the power of big version numbers. To open source projects like Ruby on Rails, it's such a divorced measure of quality or features that I feel we need to take it's importance down a few notches.

First of all, nothing magical happens when a certain revision of the code base is blessed with a release. It's simply the decision that what we have now should have a label. So when edge revision 8441 is given the alias of Rails 2.0.2, it's just that, an alias.

In other realms of software development, it might very well imply a large amount of release preparation. Some projects and products go months in a strict feature-freeze mode where only bugs are sought out. Most open source software doesn't adhere to something this stringent, Rails certainly doesn't.

The only real software-related attribute of versions for Rails is to communicate issues of backwards compatibility. Slapping 2.0 on something is a license to break existing code that has been deprecated in the past. But this really happens so very rarely that it hardly deserves big attention.

All this is not to say that versions are meaningless, just that they're more about culture and information than about the quality of software. Having a big release is a worthy way of celebrating that things have moved forward since last time we did a release. And to give people a chance to catch up on all the new features. That's great.

But the problem is that lots of people, especially clients paying the bills of consultants, are overestimating the value of these release names to the point of avoiding newer versions of the repository that fix particular issues that they're dealing with. That doesn't make any sense at all. If you're encountering a bug or desiring a feature that's been included in the latest edge version, you're not doing yourself any favors by waiting for the whim of a release.

The great thing about open source is that you can control your own release schedule. If you happen to run in to a bug that was fixed 5 revisions past the latest release, you can simply tie your application to exactly that revision and see your problem go away. All the information is available about what changed between the official release and the revision you want to move to. And presumably your test suite will do a reasonable job of catching any adverse changes.

I think the main problem is that people do not differentiate between low-level systems, like their OS, web server, or database server, and high-level frameworks like Rails. The latter are never unstable in the traditional sense of the word like the former. The risk of applications crashing with segfaults because of a "bad version" of Rails is incredibly unlikely. So the fear and uncertainty of things just going awry in unexplained ways doesn't belong in this realm.

So please do take control of your own release schedule. It's perfectly fine to start off with a released version, but don't dream up dragons and demons lurking in a newer version of edge. Most of the time, edge is of considerably higher quality than the last released version because we've been committing loads of bug fixes since then. Take advantage of that when you can.

Rails 2.0 is out

Yes, yes, I've been awfully quiet here lately. But let's blame that on the long crunch session for Rails 2.0 and call it cheers, ye? It's out, gawd dammit. Finally. After about a year in development and oh-so-many we're-almost-there's. Feels good, does it.

Now I just have to put the final hand on the new screencast for Rails. The current one is awfully stale.

So dig in and get it: Rails 2.0.

Rackspace trouble knocks 37signals offline [back!]

Rackspace has had a major power incident at the data center keeping the 37signals suite of machines. Apparently, a traffic accident knocked power out to some vital cooling systems. When the power was restored through generators, the cooling systems failed to come back online.

They now have the cooling systems back up and are getting everything back online. We hope to be back very shortly.

No data has been harmed, the machines were preemptively shut down when the cooling systems failed.

A good number of other applications, such as Wesabe was hit by this as well. Hopefully they'll be back shortly as well.

UPDATE: Everything is back in working order. Read more on the product blog.

Swearing at work boosts morale

Speaking of fuck, researchers find it to boost morale at work:

Regular swearing at work can help boost team spirit among staff, allowing them to express better their feelings as well as develop social relationships, according to a study by researchers.

"We hope that this study will serve not only to acknowledge the part that swearing plays in our work and our lives, but also to indicate that leaders sometimes need to 'think differently' and be open to intriguing ideas."

Kathy's zones of emotion

I miss Kathy's blogging. Don't you?

Potty mouths

I'm allergic to people who willingly and without irony use the term "potty mouth" in adult conversation. The notion that a word like fuck can make your brain curl up and cry like a toddler is so pathetically disturbing that it makes my skin crawl. It has the plastic smell of a barbie playhouse and the repressed insecurities of casual friday khakis.

I can't fucking stand it.

But at least the potty mouth reaction is a useful leading indicator for personality fits. It's almost as good as the f-bomb reaction. Both are fake euphemisms that are actually much worse than the honest words they're trying to put a fig leaf to. And if you're serious about using them, I'm serious about thinking you're too fucking lame to bother further debate with.

Which of course is ironic. Since the whole potty mouth fuzz is about distancing yourself from that foul person on the basis of words. Heh.

But at least us sailors recognize that the sea flows both ways. That by using wonderfully flexible joker words like fuck, we're sending a signal of distance to the inevitable crowd who takes offense from that. The potty mouth crowd seems shocked — shocked — that their language could have a similar effect in the opposite direction.

Anyway, fuck it (how great is this word? I seriously considered naming this post "Fuck: The Mother Word" but in the end my despise of the potty mouth term won out just slightly over my affection for the word fuck).

If you want to dive deeper into the wonderful world of cursing, I highly recommend What The Fuck: Why We Curse by Steven Pinker

P.S.: See also Fuck, a marvelous tour of the utility of this word.

The language of bias

If you don't like something new that's getting a lot of attention, you call it out as being all hype propelled by fanboys enamoured by an immature solution.

If you like that something new, you say it has momentum that's being accelerated by passionate advocates of a fresh approach.

Thinking about The Big Rewrite?

Rewriting existing applications from scratch in a Big Bang-style is rarely a good idea and often ends in failure. Chad Fowler wrote a good post summarizing some of the reasons why a year ago: The Big Rewrite.

Good times at RailsConf Europe

It's hard to fathom that we've just finished our fourth RailsConf in just 15 months. The first one already seems so long ago, which just underlines how fast things have been moving in the Rails world.

It's even more impressive to think of all the people we've had go through the conferences. More than three thousands attendees combined and some of the most interesting speakers in technology.

This year I was especially pleased to hear Roy Fielding speak and to have the opportunity to chat with him afterwards. The past year and a half been about trying to understand and implement the ideas and the specifications that Roy has been involved with for more than a decade. It was very pleasing to hear him talk so warmly of our progress so far.

Sun continued to surprise positively (and still slightly puzzling), but I had so much to say about that, I went ahead and wrote it up separately in Sun surprises at RailsConf Europe 2007.

As I process all the inputs from the conference, I'm sure I'll have more to say. But for now I want to make sure to thank everyone involved. Ruby Central and O'Reilly did a spectacular job organizing everything. And I had a great time speaking to so many different users of Rails. The most amazing things are being done with this framework we're building.

P.S.: My keynote slides were few and almost entirely without meaning out of context, but Casper Fabricius did a good job with his summary.

Sun surprises at RailsConf Europe 2007

The biggest surprise at RailsConf Europe 2007 was hearing Craig McClanahan from Sun speak. Craig is the creator of Struts, the original blockbuster web framework for Java, and more recently Java Server Faces. Not exactly an obvious advocate for Ruby on Rails, but he sure played the part well.

And not just on a superficial level because Sun was a diamond sponsor of the conference, but from months of experience developing Rails applications using the latest techniques and frameworks (like pushing the envelope with Active Resource). He even went as far as to say that developing web applications in Java after working with Rails would probably not be a particularly pleasant experience for him. Wow.

Sun's support for Rails goes even further, though. Their work on making Netbeans a kick-ass Rails IDE seems to be progressing at a rapid clip (and already winning fans). Yet it pales in comparison to the rise of JRuby as driven by Thomas, Charles, and Ola. These guys are improving their JVM implementation of Ruby at a truly insane speed.

JRuby on Rails is already in production at a fair number of companies. The Rails is just a WAR argument is certainly making it easier for companies like ThoughtWorks to push Rails deep into the enterprise. Throw the "integrate with your Java legacy" argument on top (where you can even go as far as work with EJBs!) and it's easy to see why The Enterprise is getting all giddy.

"Why are they doing all this?", that's a common concern with most Ruby folks (and a question I must have asked them personally at least half a dozen times ;)). Apparently, they see this as something quite simple: A Sun that's heavily involved with Rails on the software side is a Sun that's much better positioned to sell loads of hardware to run all these new Rails applications in both the enterprise and to start-ups.

It seems to be working too. Joyent is running all their new gear with Sun badges. And they got some serious applications cooking there, including Twitter.

So it's kinda hard to argue with their good deeds. Which is a peculiar feeling for a Rails person to have towards a company that used to be regarded solely as the high church of enterprisey. I guess that they've accepted that Java (the language) is no longer always the answer regardless of the question, as it used to be.

Yet there's still that nagging doomsday image of a mystery man sitting somewhere inside of Sun petting a black cat with a hollow laugh just waiting to reveal his evil master plan as the reason for all this. But the exceptional work and high character of people like Tim Bray, Nick Sieger, Thomas Enebo, Charles Nutter, and now even Craig McClanahan championing Ruby and Rails inside Sun, I think I'll have to waive goodbye to the last sliver of that suspicion very soon.

Three years with Ruby on Rails

We've just passed the three year anniversary of Ruby on Rails' first release to the public. Which in turn means that I've been working on the framework for more than four years. Wild.

It's been an incredibly rewarding experience. I've met so many great people. Worked with so many talented programmers. Seen so many amazing sites and applications be launched off Rails.

To image that this whirlwind tour all started because I wasn't happy working with the mainstream environments and decided to give Ruby a try. And to image the impact Ruby on Rails have had on the industry with none of the big-company backing that traditionally is needed to make waves there.

What's even more rewarding is knowing that we're not done. That the work to make web-application development ever more pleasant continues every day.

We might have taken the pace of radical changes in the core framework down a few notches (remember when we did multiple releases per month?), but the steady stream of improvement and refinement continues relentlessly.

So cheers, Rails.

A billion dollars doesn't buy much these days

Just days after Microsoft announced spending a billion dollars on extending the Xbox 360 warranty, my own console surrended to the dreaded three flashing red lights.

Now you'd think a billion dollars would buy Microsoft some premium, grade-A service and expedition to make short order of such a widespread problem, no? Think again.

It took three separate tries to even get through on their support line. The final attempt required about an hour on the line. All that to get a paper box shipped as the return package using UPS 3-day service (unlike, say, Apple's overnight delivery).

But much worse, expected service time is 4-6 weeks! Between the attempts at calling support and shipping boxes back and forth with snail service, I'm looking at a two-month turn-around from problem to resolution. Yikes.

How am I supposed to cope with no Forza Motorsports for that along!? It's inhuman, I tell you.

Registration open for RailsConf Europe 2007

I've actually never been to Berlin before, so I'm excited to get the chance to not only see one of the great cities of Europe, but at the same time share in a meeting with the Rails community in Europe and around for RailsConf Europe 2007. The doors for registration have just been opened and until August 6th, the price is €645 (after that, it jumps to €795).

I really had a smashing time last year in London. There was somehow more time to get into more discussions with people than the more hectic version in the US. And I got to premiere a bunch of new Rails features I had been working on over the Summer.

So I hope to see a lot of the familiar faces from last year and new ones too when we convene from September 17th through 19th in Germany.

next page »