soledad penadés
repeat 4[fd 100 rt 90]

Archive for the ‘thoughts’ Category

20080221 Data portability

It's some months since I began to meditate about the concept of data portability. You might have read already my concerns about proprietary file formats, but the data portability stuff I am referring to is slightly different; it's not about an specific proprietary program that you use for writing the greatest bestseller ever, but rather about external websites where you participate and contribute with your fair amount of data. And the problem (the need?) is to be able to import and export that data freely, since it belongs to us.

I am not sure what ticked me off. Maybe it was that my otherwise creative mind was beginning to run out of ideas for inventing passwords for each new website I had to sign up to, or maybe it was the captchas plague.

And OpenID came to the rescue. It's not perfect yet, and I still haven't managed to have a good play with it, but I like the idea. We don't confide our passwords to potentially catastrophic websites but we are still able to log in those sites and all that. Looks nice.

A little bit later I got hit by the facebook craze. I must confess I logged in just for poking friends, but it soon got tiring. It demands constant attention, like a tamagotchi, but in a perverted way, trying to steal all your possible data for lucrative data mining thereafter. That was easy to verify; I had a conversation via facebook's messaging system on a very specific topic and all of a sudden I noticed extremely targeted ads showing on the site. It was so accurate that it looked as if they had a mass of slaves personally reading every single message and assigning the best ads to them.

So I wondered: if we weren't to use facebook, where could we go? Not that I need to go anywhere; I am fortunate enough to share my name with only another well-known person (that I am aware of) and if someone looked for me, would find me quite easily.

But what if I built a new application which allowed you to perform all your social network duties, say, something in the lines of UberSocializr, and I didn't want to enter all the data from scratch, but rather import that from facebook? Would that be possible? And what about other sites like bebo, friendster, blablah?

Even more: why are social utilities useful? Which needs do they fulfill? They are useful for non techy users on first instance. They just register and have everything they might need: pictures, messages, videos, games, forums and friends. Oh and party events!

There are already several applications which can do the same, although not in the same seamless, integrated manner. An experienced user can build his homepage which acts as their profile page, with his blog, pictures, etc. But that's leaving the social side out. I thought that the FOAF concept could work for that, but I didn't buy it because you may like to have private friends and not to declare them publicly in your website, and I think that's not possible as of today.

More or less at that time, the DataPortability project popped out. I was happy to find that they presented some of the same solutions I had thought of. I can also say I strongly agree with what one of their members says:

If your service relies on capturing users, then I'm sorry, you suck

(Ian Forrester)

I like the whole data portability concept and I would love to see it materialise in a practical and effective manner soon. It's also good to see that more and more services are not only following but also empowering the trend, for example, allowing the use of OpenID while also acting as service providers for it. That will lower the entry barrier for lots of people which cannot or do not want to mess with technical details to enjoy this new way of doing things, and hence they won't get discriminated.

It is also going to need some evangelism to spread the word about these tools, although they itself could get easier and less cryptic. And I have the feeling that this won't work very well if the people in our near circles do not use these technologies, so I'm curious: are you actively using any of the solutions proposed by DataPortability yet?

Oh and in a slightly off topic way… it can be very fun to play with this data. 2D/3D visualization of data is just the obvious beginning, but if we aggregate stuff from several sources I think we can come up with some interesting results. Hpricot is calling…

20080129 You and me in Babel

Imagine an English-speaking website, where everything is written in English. The author might or not speak another language, as well as the visitors, but all of them normally write in English when replying in that website, enabling them to communicate.

Then there comes the odd visitor which decides to write in his/her own language — not English. And … ta-da! Conversation ends up there. The other readers usually don't know what's in the message so they don't write anything else, just in case they go off-topic. So that's it. Discussion ruined in just one go, 90% of the times.

Occasionally it might be a different case, the non-English comment is absolutely ignored, then its author feels ignored and never writes again.

What should we do?

In this website, I have tried several approaches. First there wasn't any warning message, and people posted in whatever they liked. Usually if I posted in Spanish, they posted in Spanish too. If I posted in English, some of them posted in English and the rest of Spanish-speaking people replied in Spanish.

Then I added messages right before the comments form, but it didn't work: apparently no one reads the text before the comments form; they go straight to fill the Your name, Your email, Your url and Your comment fields. I could be insulting them and they would write comments anyway.

I also thought of sending the contents of the message to one of those nifty web services which detect in which language is a text written, to be able to ask them (again) to write in English, but it would not work either; they would just click OK and continue sending the message in Spanish anyway, as every user does when a pop up opens.

I even translated some comments from Spanish to English and let the authors know about that, asking them to write in English next time (which didn't happen), because even if I understand the comments, there might be more people which don't, and I didn't want them to feel excluded from the conversation.

The real truth

Some excuses were in the lines of saying it's too much of an effort to write in English, or I can't express my thoughts in English.

But since I never discuss metaphysical topics here and it's more about technical and programming stuff, I really doubt there's a lack of vocabulary or concepts which can be expressed in Spanish but not in English. In fact, it's usually the opposite; I find very complicated to write about some tech stuff in Spanish because I wouldn't know how to translate certain terms.

Let me guess… Is it laziness? Are Spanish speakers lazier than anybody else? No, it can't be that. If they were truly lazy, they would even avoid commenting - that would be an effort! Not only articulating a thought but also pressing the keys in the right sequence in order to write it down… yikes! And I have seen also Italians, French, German, Brazilian and a loooooooong etc doing this. So it ought to be a different reason.

And I have the feeling that it's something more profound which has something to do with the shame that makes them apologise for their bad English whenever they feel brave enough to write in English. There's some kind of inferiority complex, and as such, it acts as a barrier when interacting with the rest of us.

Listen up, there's nothing to be afraid of. No one was born instantly knowing any language and it's better to half communicate than not to communicate at all. So stop writing in Spanish when a page is in English and join the club of the people which can communicate across the globe no matter where they are from :-)

20070731 Libraries and frameworks

I often get asked for recommendations about libraries and frameworks, and I also find myself often in the middle of discussions between the opponents and the supporters of libraries and frameworks.

To be honest, those discussions/wars are pretty much stupid because nobody takes the time to understand properly what's going on, and from my point of view I just see ignorance in both sides.

There's not an absolute truth in what regards to libraries and frameworks, and I doubt there will ever be such thing. You can't proclaim yourself a "I do it all myself" man or woman because that's just plain ridiculous. Are you also programming your database server, and your web server, etc? And the people which absolutely encourage the use of ready-to-use libraries also look ridiculous to me. How are you going to deal with the situation when you need to extend feature A or change feature B, if you don't know how the library works?

At the end all gets reduced to just one advice: investigate. Get informed. Compare what options you have before making a decision. Dig into the code and find out how it is built. Is it easy to understand? Is it well documented? If you wanted to change something could you do it without having to spend a whole week on it?

I generally tend to prefer very decoupled libraries which can be easily replaced with another library or with my own code whenever I need, so in a way I use libraries as a prototype. If the library is not that decoupled, I always try to build a wrapper so if I replace the library I just have to rewrite parts of the wrapper, but my main code is left untouched.

So do whatever you want. Use a library, or do not use a library, but do not hassle people which choose a different path.

20070717 The perversion of popularity ranks

A couple of years ago, when digg was launched and wasn't anywhere as popular as now, it was quite interesting to have a look there. It was more or less like an assortment of random stuff, quite oriented towards technical matters, so was an easy way of reading different things without having to jump from one page to another.

Some time after, lots of people discovered about the site, it got popular, and people began to submit lots of content only for the sake of increasing traffic to their websites. It was when we began to get bombarded with the advice of so-called experts advising on how to title a blog post with the only purpose of inducing people to click it, bookmark it and all that, and so we ended with these symptoms.

More or less at the same time, del.icio.us discarded their old style front page (which used to show the recently added bookmarks) and chose to show the most popular posts. You could still look for the just-posted stuff but it wasn't that accessible. This led to people coming to del.icio.us, seeing the popular stuff (which usually was designed with the purpose of being bookmarked, see above) and bookmarking it again, which made it rank even higher.

Parallel to all this, bloggers with a desire to blog about fresh news kept using digg and del.icio.us as their main sources. This creates a feedback loop in which stuff which was already popular gets even more popular and can even manage to appear in more traditional websites such as Slashdot or The Register.

I thought that the trend would stop at digg but unfortunately it didn't. New websites flourished, based on the same pattern, such as dzone, a digg for developers. As expected, at the beginning it had very good content, and now I'm seeing more and more of those "50 must have tools for developers", "4 languages you need to know", "15 css tricks that increased my sex appeal" or "30 tutorials for free" on the front page one day and the next one as well.

At the end, mediocrity gets promoted to an unforeseen level of popularity, internet is polluted with crappy wannabe content, and I sorely have to lament the demise of yet another website which looked good.

How sad!

20070716 Serene observations on php4 controversy

Since the PHP group announced they weren't going to support php4 any more when 2007 ends, I have been watching with amusement the reactions this fact has sparked. In general, it feels quite similar to previous public announcements of product discontinuing, such as Windows 98, or Firefox for windows 98, etc.

The most absurd reactions come from very angry people which not only demand support for that product to be extended indefinitely but also do not use the product at all or do not have any decision power about the use of that product in their organisation or environment. They can fill in pages and pages writing infuriating comments about how evil is vendor X for not supporting product Y, and how bad is it for everybody, without giving any solid reason usually.

And the rest of the blame is equally distributed amongst sys admins and developers. Sys admins say they can't upgrade to php5 because the applications running in their systems are not designed with php5 in mind. Developers say they can't develop for php5 because their sys admins do not offer support for php5.

I say stop blaming each other.

It's not that hard to migrate an application to php5, unless it's a complete disaster. For instance, I saw one which had some functions named public and private. Honest! Those functions were repeatedly called thorough the whole code base. Obviously when trying to run this with php5, it failed spectacularly. (Somebody tried to fix it replacing every public with pub and private with priv, and then it broke other parts of the application, but that's another story…)

Personally, I wished every host in Earth had moved to php5. I never use php4 in my projects and it's really annoying to have to downgrade the code for distributing it publicly. It also breaks my heart to have to emulate some php5 functions when working with legacy php4 code for php4-running servers, such as for example array_combine.

And at the end I wonder, can we take seriously a developer or a sys admin which have not learnt about php5 yet, even if it was released more than three years ago? I can't.