Friday Fun: Rails, Django and Caprese Salad

twitter(2)I had this Twitter argument today with former coworker, fellow web developer and friend Bryan Hughes:

bucchere: The Spring Framework is driving me crazy. If this were Rails, I’d be done already.

huuuze: @bucchere If it was Django, it’d be faster and ready to scale.

bucchere: @huuuze I’m not interested in a religious war right now. Please don’t provoke me. 😉

huuuze: @bucchere No war — even the Rails guys agree: http://is.gd/1ZZu

bucchere: @huuuze Apparently Gluon is even faster than Django. But is anyone using it? You have to consider factors other than performance.

huuuze: @bucchere Um, Django’s used by thousands. It’s not some fringe framework. Guaranteed anyone that’s used RoR and Django will prefer Django.

bucchere: @huuuze How could you make that “guarantee” when you’ve never used Rails? I said I didn’t want a religious war, you damn Python Nazi. 😉

huuuze: @bucchere I’ve built a couple sites using Rails. How many sites have you built using Django?

bucchere: @huuuze bdg’s svn server just crashed. I have more important things to do than continue this pointless argument.

huuuze: @bucchere Then quit wasting time on Twitter. I’m not trying to start anything with you. Just be aware that RoR isn’t the only game in town.

bucchere: @huuuze There are lots of religions too. And if I want to pick one and say the others are “wrong” then that’s my prerogative.

huuuze: @bucchere Whatever dude. Not sure why you’d say Django is “wrong.”

bucchere: @huuuze All I’m saying is that language/framework wars are like religious wars. I have mine, you have yours. Leave it at that.

bucchere: Enjoying a homemade caprese — my favorite salad. (Now watch while @huuuze tells me his favorite salad is better than mine.)

huuuze: @bucchere Having never tried caprese, I have no opinion on the matter.

bucchere: @huuuze LOL. I’m glad we can still be friends. 🙂

huuuze: @bucchere Get real. I’m only friends with Christians and Django users. 😉

* * *

So the time it took me to compile this discussion made me wonder why Twitter doesn’t have threaded discussions. Summize (now search.twitter.com) has “conversations” but, like Facebook’s wall-to-wall feature, just because the posts occur consecutively, it doesn’t mean that they’re actually “in” the same thread. If I were re-writing Twitter, adding threaded discussions — and with it, the ability to reply to a specific Tweet — would be near the top of my list.

Happy Friday everyone (and happy 3-day weekend for hard-working and hard-twittering Americans)!

Shameless Self-Promotion

panel_picker_voteAt last year’s SXSW I said to myself: “Self, you need to be speaking at this conference next year.”

Help me fulfill my self-fulfilling prophecy and please take a minute to vote for one (or both) of my proposed talks! Unlike the SXSWi Web Awards last year, you don’t have to vote every day — once is plenty.

The first is a solo presentation on the future of RSS.

The second is a panel discussion on whether it’s better to have one horizontal social network like Facebook or loads of smaller, niche social networks.

Thanks for your support.

Middleware for the REST of us

bea_think_oracleI’m sitting in my third Oracle Fusion Middleware briefing, this one at the Willard Hotel in Washington, DC. Thomas Kurian has been going through all the products in the Oracle stack in excruciating detail.

First let me say this: Thomas Kurian is a really smart guy. He holds an BS in EE from Princeton summa cum laude (that’s Latin for really fucking good). He holds an MBA from the Stanford GSB. He’s been working for Oracle forever and he even knows how to pronounce Fuego (FWAY-go). I’m dutifully impressed.

Unfortunately, all those academic credentials and 10+ years in the industry is barely the minimum requirement for getting your head around the middleware space. Either I don’t have enough (0) letters after my name, or I just don’t get it.

For starters, there are way too many products — the middleware space is filled with “ceremonious complexity” (to quote Neal Ford). App servers, data services layers, service buses, web service producers and consumers — even portals, content management and collaboration has been sucked into this space. Don’t get me wrong: the goals of the stack are admirable — middleware tries to glue together all the heterogeneous, fragmented systems in the enterprise. Everyone knows that most enterprises are a mess of disparate systems and they need this glue to provide unified user experiences that hide the complexity of these systems from the people who have to use them. That makes the world a better place for everybody.

That was also, not coincidentally, one of Plumtree’s founding principles and the concept — integrating enterprise systems to improve the user experience — has guided my career since I got my lowly undergraduate degree in Computer Science from Stanford in 1998.

So, it’s a good concept, however, if you’re considering middleware because you’re trying to clean up the mess that your enterprise has become, you need to ask yourself the following fundamental question:

Does middleware add to or subtract from the overall complexity of your enterprise?

Your enterprise is already insanely complicated. You’ve got Java, .NET, perhaps Sharepoint, maybe an enterprise ERP system like SAP and say, an enterprise open source CRM system like SugarCRM or a hosted service like SalesForce.com. The bleeding edge IT folks and even (god forbid) people outside of IT are installing wikis written in PHP (e.g. MediaWiki) along with collaborative software like Basecamp written in Ruby on Rails. I’m not even going to mention all the green-screen mainframe apps still lurking in the enterprise — wait, I just did. This veritable cornucopia of systems just scratches the surface of what exists at many large — and even some mid-to-small-sized companies — today.

So clearly there’s a widespread problem. But what’s the solution?

At the end of his impressive presentation, I asked Thomas the following question:

“How can middleware from Oracle/BEA help you make sense of the fragmented, heterogeneous enterprise when you have existing collaborative (web 2.0) technologies written in PHP, Ruby on Rails, etc. running rampant throughout IT and beyond?”

(Okay, so I wasn’t exactly that pithy, but it was something close to that.)

His Aladdin-esque answer came in the form of three choices:

    1. “Take control of” and “centralize” your IT systems by replacing everything with Oracle Web Center spaces
    2. Ditto by migrating everything to UCM (Stellant)
    3. Build a services framework and aggregate everything in one of four ways:
        1. Use a Java transaction layer (JSR 227)
        2. Use a portlet spec like JSR 168 or WSRP
        3. Build RESTful web services
        4. Use the WebPart adapter for Sharepoint

      I like to call answers one and two “The SAP Approach.” In other words, we’re SAP, we’re German, wir geben nicht einen Scheiße about your existing enterprise software, you’re now going to do it the SAP way (or the highway).

Will companies buy into that? Some companies may. Many will not. ERP is a well understood space, so this approach has worked for SAP. Enterprise 2.0 is not terribly well understood, so that means even more diversity in the enterprise software milieu.

So the only approach that I believe in is #3: integrate. Choose the right tool for the right problem, e.g. the WebPart adapter if you’re using Sharepoint. Use REST when appropriate, e.g. when you need a lightweight way to send some JSON or XML across the wire between nonstandard or homegrown apps. Use JSR 168/286 for your Java applications. Even use SOAP if the backend application already supports it.

Keep things loosely coupled so that you can plug different components in and out as needed.

This requires a lot of development — the glue — but, I don’t think there’s any way around that. (You should take that with a grain of salt, because my company has been supplying the government and the commercial world with exactly that kind of development expertise since 2002.)

As for the overarching, user facing “experience” or “interaction” product — that’s where I’ve always used Plumtree (or AquaLogic Interaction).

Will I start using Web Center Spaces? At this point, I’m still not sure.

If it can be used as the topmost bit of the architectural stack to absorb and surface all the enterprise 2.0 software that my customers are running, then perhaps. If it’s going to replace all the enterprise software that my customers are running, then no way José.

This conundrum really opens up a new market for enterprise software: I call it “Middleware for the REST of us” or MMM (not M&M, 3M or M3, because they’re already taken): “Mid-Market Middleware” — similar to the way 37signals approaches (with a great deal of hubris and a solid dose of arrogance) the “Fortune Five Million” by marketing their products toward the whole long-tail of small and medium-sized companies. Maybe the world needs a RESTful piece of hardware that just aggregates web services and spits out a nice UI, kind of like the “Plumtree in a Box” idea that Michael Young (former Plumtree Chief Architect, now Chief Architect at RedFin) had back in the last millennium.

Oracle Web Center Spaces might be the right choice for some very large enterprises, but what about the REST of us?

How the New Facebook Utterly Destroyed my Favorite Application (and Why That Makes Me Sad)

I used to love Feedheads. It’s a simple, elegant and beautiful application that does one thing really well: help you share your Google reader shared items.

Unfortunately, the “new” Facebook has rendered the application utterly useless and I can’t think of a good way, as an end-user, to fix it. In fact, as someone who’s built two facebook apps, I can’t even think of a way that the Feedheads developers can fix it. What a calamity.

So here’s the problem: the News Feed (and the Mini Feed) introduced an option that allows end-users to set the story “size.” When a Google shared item story comes through Feedheads now, it defaults to the “one line” size and as a result, it doesn’t say anything other than “Chris posted an item to Feedheads.”

Thank you very much, Facebook. That piece of information is completely useless. People who are reading your feed need to click through into the Feedheads application in order to see what story you posted — and the whole point of Feedheads is to help you share your shared items, not make them harder to find.

(As a result of all this, Facebook also broke one of my applications, called WhyI. It has < 200 users, so very few people care, but . . . the point of the app was to help people ask themselves and their friends questions that have to be answered in five words or fewer. And of course, the questions and answers would show up in the Mini Feed and News Feed. But not anymore! Now it just says: “Chris posted a new mini-update using WhyI.” Again, a totally useless piece of information. Drats.)

As an end-user, I can set the “size” of each feed item. So that means, after I hit Shift-S in Google Reader — which doesn’t take much effort — I have to wait for the story to be published in Facebook and then, if I remember (which at this point is unlikely), I have to go into that little drop down on the right and set the size to “small” instead of the default, which is “one line.” And here’s the best part: I can’t tell Facebook to remember this, so I have to do it every time.

All this just to share a shared item on Google Reader through Feedheads . . . ick.

Here’s the best part. I just noticed that Facebook added their own feature to the new and “improved” news feed. You can import your shared items from Google Reader! And, not surprisingly, the news feed actually shows the stories’ titles. In other words, Facebook took a great application — Feedheads — and replaced the functionality with their own feature; in the process, they rendered Feedheads useless.

This makes me sad. I only have one thing to say:

Wow, Facebook, how very Microsoft of you.

Nobody’s Gonna Read This (and Why That Makes Me Happy)

Boy do I love the fact that no one reads this blog. And to the few people who are exceptions to that general rule — thank you for being so supportive!

I just hit two or three web pages in a row (TechCrunch, Digg and the Meebo blog) wherein each post I read had 80+ comments that reminded me why I rarely ever actually read comments.

Haters, trolls, flamers, spammers — whatever you want to call them, the internet is ridden with people who are filled with spite and rage. The funny thing is that in no other forum (except for perhaps while driving) are people this cruel to one another. It’s just not socially acceptable.

I realize that e-hate isn’t a new problem: in fact, it dates back to the early days of UseNet, Netiquette and the ol’ “do we allow AOLer’s on the internet” debate. While doing some fact-checking on wikipedia, I was really amused to read about Godwin’s Law, which sums up what I’m talking about better than I ever could: “As a Usenet discussion grows longer, the probability of a comparison involving Nazis or Hitler approaches one.”

We all know the Kathy Sierra story. I’m glad she had a thick enough skin to re-emerge in the blogging world and on Twitter because the world is a better place with her contributions than it is without them.

We all remember The Great Sarah Lacy Twitter Massacre of SXSW 2008. I recently met Sarah at a tech event in DC and, believe it or not, she doesn’t have horns, literally or figuratively.

Jason Calacanis recently “retired” from blogging. When I read his post, I immediately thought that it was just a PR stunt, but I’m beginning to realize that I can sympathize with his viewpoint. I really don’t want to ever be an A-list blogger or “internet famous” because it’s just like painting a big target on your own ass.

I love my family and close friends, I love the physical neighborhood in which I live and I love the virtual networks that have developed around my career and my passions for the past 15 years or so that I’ve been using the internet.

But honestly, a big part of me doesn’t want anyone else to read this. Not because I don’t take criticism well. (I don’t, but then again nobody does.) I just wish some of the same general rules that apply to social interactions — at say, a cocktail party, a baseball game or at the supermarket — would apply to the internet.

Comments welcome. Just be nice, ok?

Are Twitter Replies Fundamentally Broken?

Has anyone noticed that Twitter replies are fundamentally broken? Or, I should say, at least the “Replies” *tab* is jacked.

This isn’t another “Twitter is down” post — this is about a feature that doesn’t work as it’s designed.

As far as I can tell, replies to me only end up in my “Replies” tab if my Twitter account name (@bucchere) is the first token in the tweet. Yet a lot of people reply to multiple people or use the “@” notation in context, e.g. “I’m playing tennis with @bucchere.”

That “reply,” although it’s clearly got my name in it, won’t end up under my replies tab. Oops.

In The Social Collective, any time an @ token is found, it stores the message as a reply. Isn’t that how Twitter should work as well?

Has anyone else noticed this? Is anyone else annoyed like I am by this obviously broken “feature?” WTF?

There is a workaround, but it’s kludgey. You can use Summize (now located at search.twitter.com) to search for @bucchere. I did this, then ingested the resulting RSS feed into Google Reader and now I go there instead of to my Replies tab in Twitter. FAIL.

[Update: This is now fixed. Yay, Twitter!]