Sunday, December 30, 2007

Can't wait for Visual Studio 2008!

Quoting Sidu Ponnappa:

... When I hit Ctrl+Tab, I want to see the next darn tab. Not a blessed huge pop-up with a preview of the tab. Of all the silly ideas, why a preview of the tab when you can just show the darn tab instead. ... I'm sure someone somewhere in Redmond who's never used an IDE in their lives looked at Vista's application switcher and thought 'Hey, that's a good idea'. Maybe it is for a Desktop app switcher - but this is (purportedly) an IDE. Jeez. How would you like it if the next time you hit Ctrl tab in Firefox you get this lovely big pop-up covering half your screen with a tiny little preview of the page in there, huh? ...

And Sidu forgot to mention the extra 20 MB of memory wasted on this "usability feature". Well, not all is lost: I'm sure Microsoft will remember to make it optional ;)

Thursday, December 27, 2007

Our beloved friends, the viruses

Quote from a great article by the New Yorker which talks about recent research on the role of ancient viruses on human evolution:

When the sequence of the human genome was fully mapped, in 2003, researchers also discovered something they had not anticipated: our bodies are littered with the shards of such retroviruses, fragments of the chemical code from which all genetic material is made. It takes less than two per cent of our genome to create all the proteins necessary for us to live. Eight per cent, however, is composed of broken and disabled retroviruses, which, millions of years ago, managed to embed themselves in the DNA of our ancestors.

Monday, December 24, 2007

One step at a time ...

One step at a time, we're getting there.

Quoting an article about the results of a two years research aiming at the development of a neocortical column computer simulation (the basic building block of the neocortex):

Markram believes that with the state of technology today, it is possible to build an entire rat's neocortex, which is the next phase of the Blue Brain project, due to begin next year. From there, it's cats, then monkeys and finally, a human brain.

Markram is banking on Moore's law holding steady, as a computer with the power of the human brain, using today's technology, would take up several football pitches and run up an electricity bill of $3bn a year. But by the time Markram gets around to mimicking a full human brain, computing will have moved on.

Computer model of a single neocortical column from a rat's brain (Photo: IBM)


Markram is not holding his breath, waiting for some emergent consciousness to arise from the silicon brain. What he is after is something more prosaic, but also a lot more useful than a talking machine. By understanding the function of the brain, we can also begin to understand its dysfunction.

Thursday, December 20, 2007

Not getting anywhere? You may be missing the point completely

The mathematician David Marr, who pioneered the field of object recognition once said that one does not learn how birds fly by studying feathers but rather by studying aerodynamics.

That's why I'm a bit skeptic about neuroscience in general, where a lot of effort is invested in understanding how neurons work. But some seem to be getting this point.

Monday, December 17, 2007

Reducing day-to-day information noise

Here's a concept I'm trying to apply to my life: reducing signal to noise ratio involved on day-to-day activities (those little things that when summed up suck a lot of time/energy up), like reading newspapers, RSS feed agregattors, actually paying attention to some stuff people around you babble about etc. In summary, where to invest your precious "micro" attention to.

A good argument on the danger lurking under day-to-day noise comes from a passage I found at Fooled by Randomness by Nassim Nicholas Taleb: He makes up the story of an amateur stock investor (a dentist) who checks up his profits online every single minute, thus he's exposed to all the noise on markets, suffering many unnecessary setbacks. Given the fictional portfolio for this dentist, the probability of success at a scale of 1 minute is around 50.17%. At a quarter it goes up to 77% and at 1 year his odds of success are at 93%.

To understand what I mean by noise, take a look at this graph:
and think of the dotted line as the market and the other colored lines as a filtered (de-noised) long term perception of it.

So take news feeds and collectively selected (supposedly high-quality) content from,, and others for example. Look at what you see day after day: What if you simply ignored them and stopped reading. Following them day-by-day (which is something I've been doing for the past several months if not years) is analogue with the dentist investor checking his profits every minute and suffering all those negative setbacks. What if you could reduce it and only catch up on tech news every two weeks? Every month? How much would you really miss?

After some time, those news items that would seem relevant that day or week may actually show up to be irrelevant and just noise and have no real implications when you look at all the developments for this month or semester, so you actually saved some time by not even becoming aware of them in the first place.

There is also the other side of this argument: information noise also has it's advantages, for instance, the sea of unexpected opportunities hidden behind your thousands of unread items on your RSS reader.

So I leave some open questions. What would be the best way for catching up and increasing the signal/noise ratio? That is, what is the best way for sampling from last month tech and software developments history?

Sunday, December 16, 2007

Python wrapper for SUGGEST, a Top-N collaborative-filtering recommendation engine

I'm just releasing this simple wrapper/interface, as it may be useful for others.

In a few weeks I plan on contributing more test scripts and a Windows build.

About the wrapper:
About the wrapped library (SUGGEST):
SUGGEST is a Top-N recommendation engine that implements a variety of recommendation algorithms. Top-N recommender systems, a personalized information filtering technology, are used to identify a set of N items that will be of interest to a certain user. In recent years, top-N recommender systems have been used in a number of different applications such to recommend products a customer will most likely buy; recommend movies, TV programs, or music a user will find enjoyable; identify web-pages that will be of interest; or even suggest alternate ways of searching for information.

The algorithms implemented by SUGGEST are based on collaborative filtering that is the most successful and widely used framework for building recommender systems. SUGGEST implements two classes of collaborative filtering-based top-N recommendation algorithms, called user-based and item-based.

Script GreaseMonkey para agilizar login no Unibanco

Para quem usa o GreaseMonkey (addon Firefox) e é correntista do Unibanco, criei um script para preencher os campos com conta-corrente/etc e redirecionar para a página de entrada de senha.

Para instalar, voce precisa instalar o Greasemonkey. Depois de instala-lo e reiniciar o Firefox, visite novamente a página de instalação do script abaixo e clique no botão em vermelho "Install this script".

Para desinstalar, vá para Tools/Manage User Scripts, selecione o script do Unibanco e clique em Uninstall.


Thursday, December 13, 2007

Enterprise social tagging/bookmarking

Here's another idea for a project that has been on my mind for a long time.

It's basically an opensource clone with some additional features that may be useful for enterprise environments.

The deliverable for this project is a server-side engine for companies to host themselves (or pay someone to host it, like the many hosted corporate wikis offerings out there)

Enterprise-specific features may include: enhanced user profile info/metadata, Microsoft Active Directory integration for user sign-on, department/project segmentation for link visibility (security profiles), links and tag suggestion based on company departments or specific projects/groups.

And just like any other half-decent idea, someone else has already implemented but none at the time of this writing seems to fulfil my requirements:

Scuttle ( is an opensource implementation but does not offer enterprise features.

ConnectBeam ( targets the enterprise and has many features, but is not opensource.

This could fit the opensource-but-with-paid-customization-services business model quite well.

If you're interested, check this idea's microPledge entry.

Tuesday, December 11, 2007 Tag Cleaner

What would a "Delicious Tag Cleaner" be? It is tool for removing unnecessary tags from your account.

It is available at

If you're like me, you probably have thousands of bookmarks collected over years and years of web surfing and hundreds of tags used to describe them. But the thing is that over these months/years you haven't been able to come up with a consistent taxonomy for your tags.

I have, for example, dozens of different tags for expressing links related to software development: "dev", "devel", "development" etc.

So this tool can suggest you tags to be merged together, so you can choose one by one and have this tool to merge the chosen tags on your delicious account.

Examples of suggested merges: “book”, “books” and “ebooks” tags into a single “books” tag. “devel” and “development” into only “dev” etc.

Try it and leave some feedback here!

Sunday, December 09, 2007

Quick thought on the Pareto principle and how to be less annoying

The famous 80/20 principle could go like this: 80% of the effects (being annoying to others) can be explained by 20% of your habits.

Many will agree that constantly saying phrases with the word "I" in it is chief among these 20%.

So practice this (I try, but fail many times): think twice if the phrase you want to say about yourself is really relevant to others.