Scaling and Tools Diversity: Google vs. Facebook

Steve Yegge in one of his posts talks about Google’s policy of standardizing on the use of only a few programming languages. He mentions how he, as a guy interested in different languages, was at first annoyed by that fact, but later came to realize it was the only sensible way of building systems as scalable as theirs have to be.

In what seems to contradict that view, in Facebook’s recent discussion of the decisions they had to make when designing Facebook Chat, they mention choosing Erlang because, well, it was made to do distributed, realtime systems with… message passing. Can’t get a better fit for a Chat project than that.

To make that code interface with their existing codebase, they used Thrift, their free software “framework for scalable cross-language services development”, whose white paper begins with the strong remark:

“In our implementation of these services [Facebook], various programming lan-
guages have been selected to optimize for the right combination of performance, ease and speed of development, availability of existing libraries, etc. By and large, Facebook’s engineering culture has tended towards choosing the best tools and implementations available over standardizing on any one programming language and begrudgingly accepting its inherent limitations.

Now, of course Google and Facebook have very different needs (crawling, storing, rating and indexing the whole web on a regular basis must be a bit more challenging than showing user profiles — even if it’s showing many of them, many many times a day), and playing safe has surely worked out well for Google so far. But sometimes that requires reimplementing Ruby on Rails in Javascript just to suite a company requirement.

It’s good to see there is a place in the monster-traffic world for programming language enthusiasts :)

Tunando o Gmail

Ok, pode ser que todo mundo já saiba, mas descobri isso agora: greasemonkey + gmail rulez!! =)

“mark as read” com uma tecla, “mark as read and archive” tb, atalho para navegar para labels como no GReader, usar “https” por default, e várias outras coisas show (e outras nem tanto) vem empacotados nessa extensão:

https://addons.mozilla.org/en-US/firefox/addon/4866

A descrição dos atalhos de teclado está em http://blog.persistent.info/2005/12/greasemonkey-christmas.html
Dá pra evitar o pacotão e pegar só o dos atalhos nesse site, pra quem quiser. Aí precisa instalar o GreaseMonkey:

https://addons.mozilla.org/en-US/firefox/addon/748

O de ir pra labels foi o killer feature, nossa, mto bom isso :)

Update: pressionar ‘h’ mostra as opções de teclas. Outra espetacular: X+u seleciona todas as não-lidas (e depois “r” marca como lidas).

Posted in Uncategorized. Tags: , , , , , , . 3 Comments »

Sweeet navigation

Oh boy how long was I longing for this! I think I was the only n00b in the block who didn’t know about it, but still:

$ gem install rtags
$ cd directory/with/your/ruby/files
$ rtags --vi -R *

Then fire up vim with your *.rb files, place the cursor on a method call and type ^] (Ctrl+]) to jump to its definition (remember the :help ?). To go back, Ctrl+O or Ctrl+T.

Halleluia!

P.S.: wordpress, eager the way it is to help make things pretty, converts the double dash before “vim” in the “rtags” command into a single long dash, so if you just paste it, it won’t work. type it in yourself.

Update: of course, the sweetness comes from the fact that it also works across different files. Enjoy ;)

Posted in Uncategorized. Tags: , , , , , . Leave a Comment »

Wiki 2.0

Since we’re 2.0-ing everything that comes out a bit different than the usual, welcome Wiki 2.0! It’s a product called WetPaint that apparently hosts your wiki on their server and is going to run advertisements on the pages.

The interface seems real nice and easy and there’s a tour to show you around. I’ll take some time to explore it more soon. This is a reminder post. Just can’t figure out what to build a Wiki about though. Any ideas?

Tip by TechCrunch.

Posted in Uncategorized. Tags: , , , , , . 2 Comments »

Learning Ruby (poignantly)

Since I started reading about web applications, next generation web, Web 2.0 or whatever you want to call it, I’ve been itching to get my hands dirty, go on and do something myself.

(When I say “do something” I mean getting a hang of the technological aspects involved in its implementation because, although the rest of the concept – social software, writeable web and all – interests me greatly, I’m sure not up for starting something up right now)

Bad thing is, I have no talent for design and my coding skills stop at some basic-level college C. And as I haven’t really decided to become a full-blown web developer all of a sudden, I think diving into HTML, CSS, Javascript, XML and all that would be a little too much to learn just to start playing around.

Then Ruby came to mind.

From what I’ve heard, Ruby is at once a great language for system administration – like Perl – and has that nifty Ruby on Rails framework for developing web software. And since I’m a loving Linux user and might get a kick out of getting a bit more into the server admin business, writing scripts and all, I thought I might get a good start at both (server admin and web dev) by learning Ruby.

That’s when I found this great, wacky and surprisingly fun tutorial: Why’s (Poignant) Guide to Ruby.

Ok, if you already know the basics of any other programming languages some things might feel a bit patronizing. And if you’re in a rush to learn it all very quick you’ll find it a bit dragging and miss the fun. But it’s sure a very entertaining read, it’s free (as in beer and speech), and besides giving you a good laugh (with cartoon foxes), it also actually teaches you the language.

Nifty new blogging tool by 17-year-old

Logahead is a new install-on-your-own-server blogging tool I’ve come across. The last one was WordPress, and out of my desire to learn more about it and the good first impression it had on me, this blog was born. Of course I’m not going to switch now, but I’m sure going to give Logahead a go.

Logahead seems to go more in the way of simplicity, probably being not as configurable as WordPress, but still full of nice features, “fully buzzword compatible (AJAX, RSS, Web 2.0 – it’s all there)” and really easy to use.

Most impressive: all done by one 17-year-old.

(through eHub)

Posted in Uncategorized. Tags: , , , , , , , . Leave a Comment »