Alcides Fonseca

40.197958, -8.408312

EtherPad acquired by Google

I’ve used Google Docs in the past for some school assignments, and I must say it really sucks for collaboration in real-time. If more than two people are editing the same document at the same time, it turns into a living hell to keep the formatting in the document, and one editor from overlapping the other.

I then moved to Etherpad. While it lacks features, it works really great for plain text, which is what I use to share basic ideas, and a bit of bold for titles. And it would be a kick-ass online editor if merged with IDEone to run the code on the browser.

Now Google has acquired AppJet, Inc and they are supposed to work on Google Wave now, which is not what I really had in mind for them…

Movie OSes

When I’m watching movies or tv shows, one thing that always fascinates me is the way computer screens don’t match what we are used to. Some of them use Windows or Mac, but most of them use really weird scifiesque interfaces, even if they are supposed to be realist shows, like 24.

Via Simon Willison, I got to know one of the artists behind those designs, and it’s an interesting resource when you’re thinking about graphical user interfaces, like I am right now.

Cursos de Reciclagem

Há no entanto uma pequena aldeia gaulesa……não, há, no entanto, um conjunto de pessoas que não se actualizam. Ok, faz parte, é natural que as pessoas se cansem de aprender coisas novas todos os dias, e que não tenham pedal (ou paciência) para se manterem actuais. Nem toda a gente pode ser como a minha mãe, que há 6 meses não sabia o que era uma rede social, e que hoje apascenta vacas e distribui sementes como se não houvesse amanhã. Mas, lá está, a minha mãe sempre foi muito à frente.

Para essas pessoas, que pararam no tempo, tenho uma sugestão: vão para casa. Reformem-se. Encostem à faixa da direita.

Façam o que quiserem, mas saiam da frente de quem cá anda e quer andar mais depressa. Saiam da faixa da esquerda, que estão a atrapalhar o trânsito.

Aplausos para a Jonasnuts e respectiva mãe.

On Resting

We need the rest. It’s important in ways we don’t often think about. We need to de-stress, and we need to recharge our mental batteries.

Quiet and solitude and reflection lead to greater happiness when they’re a part of our daily lives, at least in some degree. What you do during this time — read, write, run, nap, sit, watch, listen, even have a quiet conversation, play, study, build — isn’t as important as the simple fact of having that time of disconnection.

— Leo Babauta, The Importance of Finding Focus (via Minimal)

Trillions

The challenge of the next decade? Design for trillions. (via Pedro Custódio)

Unix in Scala

After the meme has started with a version of unix in 14 lines of Ruby, and an improvement for 13 lines by writing it in Python, I present you the same version of unix, ported to scala.

Note that this is not serious code. Just wanted to reduce one line in another language, and felt Scala would offer me the pattern matching I was looking for. I will also give haskell a try, but I don’t think I can reduce the number of lines due to the IO monadic thing.

And I’m sure I can reduce the number of lines in either python or ruby without making it look ugly, but I’ll leave that for those you want to learn those languages.

Beast Machines

Beast Machines is the sequel to Beast Wars, part of the Transformers franchiser. A small group of Maximals finds themselves in an empty Cybertron controlled by an evil Megatron and some new army robots. It’s their task to bring the technorganic balance to their planet.

This was a show I watched when I was a kid in saturday mornings, so I really feel nostalgic re-watching the show. And I really enjoy the humor in the show. Not as geek as Reboot’s, but just fine.

The Nerd Handbook

Your nerd has control issues. Your nerd lives in a monospaced typeface world. Whereas everyone else is traipsing around picking dazzling fonts to describe their world, your nerd has carefully selected a monospace typeface, which he avidly uses to manipulate the world deftly via a command line interface while the rest fumble around with a mouse.

A nice guide to understanding nerds (should be replaced by “geeks”, but I don’t want to be one of those annoying nerds that requires all the words to be exactly used). (via @relva)

Nerds are fucking funny. Your nerd spent a lot of his younger life being an outcast because of his strange affinity with the computer. This created a basic bitterness in his psyche that is the foundation for his humor. Now, combine this basic distrust of everything with your nerd’s other natural talents and you’ll realize that he sees humor is another game.

Cyrano de Bérgerac

Cyrano de Bérgerac is the 1990 movie about the homonymous play and features Gérard Depardieu.

I really like the movie, specially the rhymes by Cyrano. Even if it’s french and old, I really recommend it!

Perceiving Energy Consumption

In this week’s Interaction Designer Methodologies I was presented to STATIC!, a project that investigates design as a way of increasing people’s awareness of their energy consumption. This has a special interest for me, since I’ve already worked on a project in this field with ISA.

In Sweden, a law was passed that makes the use of Automatic meter reading mandatory. The STATIC! project used that data to produce some provocative objects. From “patterns on bathroom tiles”:“http://www.tii.se/static/disappearing.htm that disappear with too much water to” curtains that save the solar power and emit light in night”:http://www.tii.se/static/curtain.htm, they produced an interesting series of prototypes.

The Time magazine nominated this Flower Lamp for the Best Inventions of 2006.

Hardware Brands with their own OSes

A while ago my wife, the non-techie in our family and a Mac user, asked me: “How come Dell or Toshiba or Sony don’t make their own OS’s? I mean, if each brand had its own OS it would be better because the people that built the computers know the computers better than Microsoft.” — Minimal

The first time I read this I actually though it was a good idea. If each OS focus on that particular hardware the manufacture is selling, they would make it as stable as possible (think Apple). At least it would be the end of Bluescreens.

But that would become a problem for application developers: suddenly they don’t have the win/linux/mac problem, but rather win/linux/mac/dell/toshiba/lenovo/vaio/…. And using virtual machines like Java or .NET is not the solution because everyone appreciates native solutions (at least for the graphical user interface). Sure this could be improved and high-level languages like Python and Ruby could be used with different backends for the OS, but it’s the same as the current Java solution.

And then there is the drivers for peripherals. Linux (and Mac) users already suffer the problem of not having drivers for some devices, and if every brand had its own OS, I bet you could only buy Dell accessories for your Dell computer because that’s the drivers available.’

The best solution I see is to each one make a flavor of Linux and test the drivers to their specific hardware, so they can all run the same applications. They can choose between Gnome and KDE (and others) according to the computer specs, but as far as I know even those options are pretty compatible.

Learning by succeeding

Giles Bowlett on learning by succeeding or by failing.

Obviously, if you want to learn something, and the brain responds to failure without learning anything, but it responds to success by learning, then focusing on failure is not a good learning strategy.

To learn, all you have to do is succeed.

Notice what that doesn’t say. It doesn’t say what you have to succeed at.

And I like that There’s some powerful neuroscience supporting this and a great book which goes into exquisite detail.. Really interesting approach. I would conclude that I need to succeed at less important tasks in order to learn the total part. Like playing SuperMario or other games. You don’t need to master all the weapons and tricks on the first level.

Customized dunks

As some of you might know, I am really crazy about old school shoes. I’ve owned dunks, air force 1s, chucks, superstars and a few more, and the ones I like the most were the nike dunks.

Today I found out a blog where a guy posts his latest creations: fully customized dunks with themes. If you like them (I really do!) check his online shop where you can buy most of them for £180, or just request one pair.

Japanese Simplicity

A central aesthetic principle in Japan is simplicity, but it is different from simplicity in the West. Let me explain the difference by comparing cooking knives. The knives made by the German company, Henckel, for example, are well crafted and easy to use because they are highly ergonomic. The thumb automatically finds its place when you grab the knife.

Japanese cooks who have special skills prefer knives without any ergonomic shape. A flat handle is not seen as raw or poorly crafted. On the contrary, its perfect plainness is meant to say, “You can use me whichever way suits your skills.” The Japanese knife adapts to the cook’s skill (not to the cook’s thumb). This is, in a nutshell, Japanese simplicity.

Kenya Hara on Japanese Aesthetics

Stockholm congestion solution

Found this in the end of a TED video. Of course it’s an IBM self-promotion, but if it works, yey! More cities should think about it.

nginx + passenger + django

I am currently in the process of migrating all the websites I have running on this VPS from apache2 to nginx. The Apache2+passenger bundle was working really fine, except for some unknown slowness with redmine, but I wanted to try another httpd and I’ve heard a lot of nginx, and passenger guys added support for it a while ago.

Since nginx doesn’t support loadable modules, I had to compile it with all the modules I might need in a near future, so the following instructions also include the http_push_module.

When testing this wiki in the nginx server, it was always serving the homepage for whatever URL I asked for. After two sessions digging into the nginx, passenger and django internals, and doing a few tests, I found out the problem:

Nginx provides Passenger a REQUEST_URI instead of the PATH_INFO header that django processes to route the request. Since PEP 333 requires a PATH_INFO header, I had to correct the problem in one of the two other. I ended up fixing it Passenger, since it’s the one responsible for the WSGI interface.

So even if you had already installed passenger, just add those two lines , and it should support Django straight away.

1 while debugging, the tmp/restart.txt trick didn’t work for wsgi, so I used a sudo killall -9 python since it was the only python process running.