var rimzu = new Rimzu();

Matt / 24.Apr.2007

Disclaimer: I don't have an invite for Rimzu. All of my information I got from reading the FAQ and clicking View Source on the home page.

The title of this article is an actual line of code from Rimzu. I can't make this up. The developers behind Rimzu seem to have taken eating your own dog food to a new level. They've graciously exposed the Rimzu API as a SOAP web service, and developed the Rimzu web site using nothing but their own API and a shit-ton of Javascript. On one hand, you know they've exposed a considerable amount of functionality via the web service, but on the other, you also know they've immediately shot themselves in the foot. Has anyone else ever written a web front-end using nothing but Javascript and web services? It's not pretty.

My Ajax Nightmare Revisited

Upon viewing the source of the Rimzu homepage, I had immediate cold sweats and a violent flashback to the Ajax nightmare Kyle wrote about. I saw this:

<script type="text/javascript" src="dojo/dojo.js"></script>

and a piece of me died. It's a Javascript-palooza. I won't go into graphic detail because you can view the source and witness the atrocities firsthand. Suffice it to say, you'll find gems like displayUserContactsGetContactsCallback all over the place.

It's 1999 All Over Again

This is a classic example of misguided Dojo development that mashes the model, view and controller all into Javascript. In fact, if you read between the lines, this is really the Web 2.0 version of hacked-together PHP. Instead of inline SQL statements like SELECT * FROM users WHERE id = ?, you have calls to web service methods like getUsersInfo(id). Instead of using a simple iteration construct to append items to a unordered list, you use a for-loop in Javascript and append elements to the DOM. Instead of just printing out a value on the page, you create a div or a span and set the innerHTML to the value. This style makes sense for certain features, but when you start to develop an entire web application in this manner, it quickly becomes sloppy, unstable and unmaintainable. Nothing is more frustrating than being faced with a task like retrieving a value from the database and displaying it on the page, only to have to ask yourself "okay I know how to do this in normal server-side web development, now how the hell do I do it in Javascript."

The School of Hard Knocks

The point is that Rimzu could have developed their web site using a server-side framework that makes sense, and still used their web service API for all the data. Instead, they decided to use Dojo, write an all Javascript front-end, and suck. The Rimzu landing page has nothing more than a few paragraphs of text, some links, and a login form. However, it still exhibits the "hang the browser while it front-loads the Javascript" trademark of a Dojo application. You could write web applications this way. You could also pound nails with a screwdriver (believe me I've tried), move all of your belongings across six states in a Ford Escort (I've tried that too) or get drunk on wine made in a milk jug (yup). Just use the right tool for the job! Most web development software out there is free and open source. There's no excuse.

My Friends Like Me 3.4% Better

Once I was able to find a paper bag and stop hyperventilating, I stopped and asked myself "wait, what does Rimzu actually do?" The landing page touts the open API, sociometric data, and tight security. Okay, but when you sign in to Rimzu, what do you actually do? What do you click on? Why would you use it? A quick look to their FAQ answers these questions:

After logging-in to Rimzu, a question will appear on the bottom right of the screen, e.g. "Who is nicer, Andy or Bob?". To answer, simply click on one of the names and the question will be replaced with a new one. [...] The system analyses your (and everyone else's) answers, and using some Math Mambo Jumbo knows how each user is ranked on each trait.

What? So Rimzu lets you keep track of which friends you like and which friends you don't like. Sounds very high school to me. I kept reading and found this:

For example, if your black line for "Niceness" points to 75%, it means that your friends perceive you as nicer than 75% of their friends.

It gives you "niceness" graphs? No way. Rimzu is the ultimate web 2.0 popularity contest. Your coolness is actually plotted on a graph. Rimzu is clearly preying on our inherent egotism, and unfortunately, I have a feeling they'll succeed. The MySpace crowd will eat this up. They're obviously not bothered by piss-poor user interfaces, but instead are way too concerned about their friend count.

I'm pretty sure this is Rimzu's business model:

Step 1: Use the term "social network"
Step 2: Open up all functionality via an API
Step 3: ???
Step 4: Profit!!!

9 Comments

this service kind of reminds me of that useless-yet-amusing-for-a-second tool, AIM Fight, that reported a person's popularity based on the number of buddies that have you on their list. i can't imagine people regularly using this feature, so for an entire website based on whether a person ranks high on "niceness" really is ridiculous. sadly, people are that self-absorbed that it may catch on. thanks for laying all that out though, matt, because i really had no idea what the heck this website did based on their dreadfully dry homepage. it at least got me digging further, where i stumbled upon this excellent FAQ: "What if I can't answer one of the questions?" *scratches head* and asks self, "hmmm...Andy let me copy his homework, but Bob's sister is really hot. this is just too hard!!"
What's really great is are the four geniuses that are developing that train wreck. (do they REALLY need all that javascript on the launch page?) Computer engineers and computer science PHds? Really? I dare you to visit their homepages. The baking blog takes longer to load than the Rimzu homepage.
hey matt nice coverage on the rimzu thing. gives me insights on developing my web app. i find it's tempting to use javascript,dojo all over..but in the end u'll have a crap. i looked back into my design and shudder.thanks for pulling me from the dark side.
What's really amusing is the fact that they've got more lines in JavaScript that HTML on the *front page* where they're doing almost nothing. Of course, it took me well over 45 seconds to load their front page and view the source since as you commented earlier, it's a trademark of dojo apps to hang the browser... A particularly telling gem is `<script type="text/javascript"> var djConfig = {isDebug: false}; </script>`. Come on...
I love the number of registered users. "now with over 166 registered users!" Granted... they're beta/alpha/whatever but you'd think you'd leave that off until you actually had more than your development team using it.
there is this amazing 26258 lines (712 Ko !) javascript file on this website http://studio.vpod.tv/ Can someone beat this?
<<< an email thread >>> * Open by design, allowing external applications to use its services. * Sociometric data, letting you know how your friends see you. * 100% secure, giving you full control over your personal data. Nice idea except for the services part but unCo rips them a new one for using a slow all dojo app at I get the feeling that the internet is really, really big ...... now with over 166 registered users! I don't even know what this site does! Rule no 1. Always have your main page do something useful. Didn't you feel the tickling sensation? It rims-you. lol
Hi Matt, I'm one of Rimzu's developers, so I feel urged to comment. First, I'll stress that Rimzu is non-commercial and non-profit. We all have day jobs and Rimzu is simply a side project we do for fun. We truly don't mind sharing the number of registered users, whether it's 166 or 166M. Our business model is simple: we don't have one (we also have no shareholders to impress). Our main page is obviously not finalized and certain paragraphs could use some tweaking. However, saying Rimzu "lets you keep track of which friends you like and which friends you don't like" misses the point completely. I like to think of Rimzu as sort of a Sociometric test, only more reliable and much more fun. The system lets you know how your friends see you, and not vice versa. I find it odd that you comment so decisively on an interface you haven't actually seen. I'd be happy to send you an invitation, so you could at least shred us to pieces based on actual experience ;) Mail me if you're interested. Dojo is heavy and somewhat evil. We started out using it for one purpose only: displaying graphs. Since the size overhead could not be significantly reduced (I actually had a talk with Alex Russel about this), we ended up using it for several minor UI widgets. Most of our code resides in a light dojo-free JavaScript file (rimzu.js), which simply wraps our web-service. I think exposing a web-service and not having special server-side code for the web site is actually a good thing. We considered other options, and decided this is the best way to go. Our experience in developing the site did not contradict this. Anyway, kudos for being the first to write about our little project. I'm amazed that had the patience to delve into our html :) Danny
writing an all-javascript web site by wrapping the api has at least one major advantage to php with inline sql, and that is allowing your css/html code-monkeys to do their job without having to deal with the backend programmers. i guess the rimzu guys develop their backend site as a module whose interface is the web service (and then test it rigorously like any other module), and develop their frontend site using a mock implementation of the web service (i'm betting this is why they have rimzu.js as a seperate file). this actually makes a lot of sense to me as a programmer.

Sorry, comments are closed for this article.

Tags

#uncov 365 main 37signals adpinion ajax amazon amy angry-ted api apple arrington awards barcamp bigmike brad fitzpatrick britepic calacanis contactify crunchies crunchyroll dave development digg digital telepathy disqus distributed divshare dojo doof dreamhost edgeio erlang evil facebook fail fails fatsecret files foldera gigaom girls gmail godtube google gos graphita great moments in fail guy-kawasaki head highrise hurts ijustine ikan incuby interviewup iphone ipo irc irony jaiku jobthread kindersay kwuot lair lazy-uncov leah culver lingoz locatetv loopster mahalo mashable medium meebo meetup meevee middio mint mixaloo mizpee mogilefs motionbox mpire my myprogress nexo ning oh wow ooma opera overhear.us ow-my-balls pageflakes party payperpost peekyou persai phonemyphone pikiwiki powerset pownce psa rcache reddit remember-the-milk rimzu rockyou scoble scratchback screencast-o-matic scribd shareapic sharedreviews simple-spark snooth social socialsnips songza spock sproose sputtr squidwho startup schwag steve-rubel stixy subvert-and-profit synthasite tagworld talentspring techcrunch techcrunch20 techmeme techstars ted teenwag telepark.contact the point theyre-beautiful thinkfree thrift timebridge truemors trumpia twitter uncov uncov-approved uncov-party upgraydd valleywag venturebeat versionate videocounter vimeo vosnap web2.0 web2.0-history webjackhole webware wellsphere wikia winer wired wishlistr writewith ycombinator yoono yougetit youos zerofootprint zlango zoho zoho-viewer zooomr