Alcides Fonseca

40.197958, -8.408312

Anarchist's Valentine

“From a distance, when you think of anarchists you think of big boots and fighting with policemen,” he says. “But all the ones I’ve met have been very nice, very committed people. They believe in something and they want to find love, just like everyone else. Why would that surprise anyone?”

Anarchists deserve a Valentine’s day too.

Blank State

New House

Right now I am moving and cleaning stuff. For a start, I am moving places for a while. I am sleeping and working in the old house (since the new one doesn’t have a proper internet connection yet, blame PT. With that, I will also be setting up a new network on the new house, with my foneras spreading the internet around the house.

New Server

The second thing I am doing is migrating my dreamhost account to a VPS at Flosoft. Although Slicehost’s admin panel is better, I’m going to pay for this one, so I’m giving it a try. For now the domain stuff is not going as smooth as I did in the past, so I’m considering moving all my domains to name.com and redirect the DNS from there to the VPS. You may expect some problems in alcidesfonseca.com, ideias3.com, pythonlovers.com and movio.com in the next week.

New OS X install

The third thing is my macbook. As anyone new to OS X, I installed a lot of junk and I find most of them useless. Also, I want to do a new directory structure, so I installed Leopard from the start. I saved stuff to my external disk and I can access the old stuff in the TimeMachine too.

Here’s a list of the software I installed:

General

Dev

I also installed Netbeans, since I am using it for a project, but I don’t find it essential.

New Layout

I am thinking about redesigning this wiki, as well as alcidesfonseca.com but I gotta find some free time first. I gotta try some Webkit and Mozilla specific effects just for fun.

If you do have any suggestion, just shoot

Malucos de Esquerda

Estas últimas notícias do BE realmente vieram a confirmar que eles devem mesmo andar a fumar umas coisa esquesitas.

Primeiro Ana Drago defende que se deve aumentar o salário mínimo e as pensões na sua moção. Concordo com o facto que o desemprego vai ser o maior problema nos próximos tempos, mas se se vão aumentar os gastos com os subsídios de desemprego, porque vamos ainda gastar mais dinheiro com o salário mínimo e com as pensões. Onde se vai buscar então o dinheiro para isso? Ou ele é infinito e ninguém me avisou?

Depois no discurso de Francisco Louçã, ele afirma que é necessário proíbir o despedimento por empresas com resultados. Ora a ele ter um partido jeitosinho não lhe chega, e quer também mandar em todas as empresas? Claro que é uma decisão de cada uma. Com a crise os portugueses têm de apertar o cinto e reduzir os custos, mas as empresas já não? Claro que as empresas para manterem os resultados poderão ter de reduzir o pessoal, mas cada uma é que sabe.

E Franciso Louçã tenta convencer-nos de que o dinheiro não importa, mas sim o trabalho que este é que move o país. Ora o dinheiro é apenas uma forma de quantificar o trabalho que é feito, assim como muitas outras coisas. O dinheiro transforma-se em trabalho e vice-versa, regendo-se pela lei da oferta e da procura.

Em relação à privatização. Existirem concessões/privatizações não impede necessariamente que os Portugueses não tenham direito à Saúde, à Educação, à Energia… As regulamentações de cada área servem exactamente para isso. E acredito que fosse funcionar até melhor, pois as empresas preocupam-se mais com a eficiência e eficácia do que muitos serviços públicos. E aqui não me refiro aos lucros gerados pelos aumentos de produtividade, mas resultados nos clientes satisfeitos.

Learning and Working in the Collaborative Age

Seems like Bill Gates is not the only one to have a foundation that cares about education, but George Lucas has has one1. I discovered in its website a terrific presentation on the new way education and businesses should look at collaboration and the profile they should be looking for.







Just a couple of notes from the presentation: First a portfolio is way more important than résumés. The latter reveals what you could do while the former tells what you have really done. When I was watching it, I heard a phrase that really expresses what an innovator is:

“the core skill of innovators is error-recovery, not failure-avoidance”

1 Rich guys always need to reduce taxes, that’s why every soccer player in Europe has one.

Guido on Colons

Python’s use of indentation comes directly from ABC, but this idea didn’t originate with ABC—it had already been promoted by Donald Knuth and was a well-known concept of programming style. (The occam programming language also used it.) However, ABC’s authors did invent the use of the colon that separates the lead-in clause from the indented block. After early user testing without the colon, it was discovered that the meaning of the indentation was unclear to beginners being taught the first steps of programming. The addition of the colon clarified it significantly: the colon somehow draws attention to what follows and ties the phrases before and after it together in just the right way.

Guido in The History of Python

The colon in identation is one of my doubts for my casual language.

Casual

A programming language that I am starting to work in.

It aims to be human-readable, DSLable like Ruby, use identation like Python, be functional like Scala and some stuff from Javascript.

Resources:

Recenseamento Automático

Segunda-feira, o dia ideal para começar a trabalhar, right? Não. O dia de manhã era para ir a junta de freguesia com o Diogo tratar de nos recensearmos para podermos votar1. Uma pessoa acorda cedinho (10h) vai até a outra casa buscar o carro e vai buscar o outro futuro eleitor.

Depois de 15 minutos a espera e quase a adormecer no carro, ele lá telefona a informar que agora o recenseamento eleitoral é feito automaticamente. Pediu-me os dados, inseriu num site todo catita em asp.net e aquilo deu os dados que preciso para votar.

Fiquei um misto de contente, por já estar despachado, e de frustrado porque podia tar muito bem na cama sem me preocupar com isto. Melhor divulgação da próxima vez quando tiverem iniciativas porreiras, ok?

1 Sim, só o vou fazer aos 20 anos, porque quando fiz 18 já não aceitavam registos por causa das eleições para a legalização do aborto.

Divine Weapon

I haven’t seen such a good epic tale in a long time. This movie is about the invention of the Singijeon, a weapon that, along with strategy, gave Korea the victory against China, when in minority.

And the love story there works perfectly and I’m not just saying this because I have a soft heart.

back to delicious

I’m so damn lucky! I decide to switch back to delicious after more than a year using ma.gnolia because of their OpenID support. Unfortunately OpenID is not taking off as it should have, so I decided to use the one with the best user interface, so I went back and imported all my ma.gnolia bookmarks into delicious.

Looks like today it went down with data corruption and loss. I’m so damn lucky!

My tabless adventure

A while ago I read an interesting article about MDIs in Mac OS. OS X is design to have multiple documents in it’s own window, and exposé and spaces behave according to that pattern. An exception (by Apple itself) is the tabbed Safari.

Users that have a lot of windows opened at the same time really enjoy having tabs, and it was a huge success in Mozilla Suite and it also worked out pretty good in Safari. So why did they broke their own rule?

I decide to give single-page windows a try. I usually have only a couple of tabs open, but when reading feeds I end up with more than 20, being my “todo list”. I am also a mouse-user. I do use shortcuts, but when reading, my right hand is scrolling the page in my mouse.

I was expecting a few advantages from this new way of using Safari. Having pages in one window each would allow me to switch pages by their content, and not only their title as I would in tabs. I would also be able to minimize it to the dock for later reading. In the end, I never minimized any page (as I don’t use that feature at all) and I spend more time looking for the right page than with tabs, since exposé makes different arrangements with the same windows, depending on the active one.

At first, using windows as the same as tabs, but when I started working with the keyboard, everything changed. To open a new tab I was used to type cmd+T with just the left hand, now I have to use both hands to type cmd+N, which sucks since I want to be able to use the mouse with the other hand. Another issue with shortcuts was the navigation between open websites. I switch tabs by using cmd+shift+arrow keys. With windows, I have to cycle them with cmd+shift+` [1] so there’s no back and forth.

Since I have a black macbook, I am only equipped with an integrated graphics card, which is perfectly fine for its purpose, but with more than 15 windows, exposé was breaking a little. And I looove exposé so much, I can’t bare it to slow down, so with all of this in mind, I switched back to tabs after a couple of days.

If this is something that interests you, make sure to check the How do People Use Tabs presentation.

1 Yep, seems like apple doesn’t care a little about people who don’t use US/UK keyboards.

Presidência Online

O Senhor Obama ainda não tinha assumido o cargo, e já estava a mudar o mundo. Há poucos dias o Vaticano começou a olhar para a web social e criou o seu canal no youtube.

Já em Portugal, temos a nossa presidência a seguir o exemplo, criando uma conta no Twitter e no Sapo Vídeos. Eu gostaria era de ver o Mário Soares a fazer o vídeo de apresentação. Gostei deste passo, agora só falta cortar no palavreado e ir directo ao assunto :)

France offers newspapers to 18 year olds

The French state will help provide free newspaper subscriptions to teenagers for their 18th birthdays, President Nicolas Sarkozy announced Friday. But the bigger gift is for France’s ailing print media.

Source: Associated Press

I find it a useful solution for this problem since it may make teens more aware of their citizenship. And they are just applying the trial method that you see everywhere in the industry.

“It is indeed its responsibility … to make sure an independent, free and pluralistic press exists,” he said.

I totally agree. But I have a better solution: don’t support print media at all. If their market is dying, they should adapt to the new one. They have to move on to the online media, and that way you will not only help the press, as well as internet-related industries. Oh, and teens will also access those news because they already have a presence online.

Vodafone and Puks

Não sei se fique contente ou triste. Hoje estava a tentar resolver um problema com o meu PDA que não lia cartões SIM e acabei por bloquear o cartão do meu pai e ficou a pedir o código PUK. Ora ele tem esse código na empresa, e precisava do telemóvel a funcionar amanhã.

Eu fui procurar online no site e não havia nenhuma pista. Decidi telefonar para o 16912 e pedir ajuda. Ora eles pediram-me o número e depois ou o pin original (que estava no mesmo papel que o puk, logo inacessível) ou o número de contribuinte, que eu sei de cor porque é o da empresa e por acaso é público.

confirmamos a recepção do seu pedido, pelo que para desbloquear o equipamento deve contactar-nos através do Atendimento Apoio ao Cliente Vodafone ligando 16912 ou enviando um e-mail para apoiocliente@vodafone.com a solicitar o mesmo, confirmando dados, por exemplo, o pin original ou contribuinte associado ao numero de telefone em questão.

Cartão salvo, e está tudo a funcionar. Mas basta quem vos gamar o telemóvel souber o vosso número, pode encontrar o vosso contribuinte na internet (se for uma empresa é super fácil) e desbloqueia-vos o telemóvel. E chamam a isto mecanismos de segurança….

It saved my ass today tough…

rails vs django

Lately I’ve been discussing the differences between Rails and Django with brecke, since he’s been learning Django now that he already knows Rails. After this post by Jared I decided to write my view about the main differences. Please note that I have not done serious development with Rails, only Django, so if I’m mistaken somewhere, do correct me.

MVC vs MTV

Django call their separation of domains MTV (model-template-view) instead of the traditional MVC. Using template instead of Rail’s view seems more obvious to me. And their reason for using another TLA is fair: the MVC pattern does not fit exactly in the rapid web development. Please see the Snakes and Rubies talk for more detail on this one. To me, the template word makes it clear I can’t have presentation logic there and it has to be in Django’s views, while the traditional View can have presentation logic. But in the end, code is not supposed to be in views/templates and you end up using helpers/templatetags to do that. So despite my preference for MTV, Rails does it right, and uses the name everyone else uses.

Convention over Configuration vs Configuration over Convention.

Specially if you have a J2EE background, you love the fact that Rails apps almost don’t have configurations. You just start coding, and if you follow some conventions, lots of magic is done in the background that makes your stuff just work. I believe this is what gave Rails the popularity is has today. With this stuff it is super easy to make 5, 15 or 30 minute screencast and get a full app working.

Django is different. While Rails feels just like Ruby with all that magic, Django reflects the pythonic explicitness. Just like in Python you have to declare the self and the first argument in a function, in django you have to say where your view (or model) lives. This is not a bad thing. It allows you to have reusable apps and other stuff, and makes Django loosely coupled.

In Rails brings a full stack to your development: activerecord, erb, prototype&script.aculo.us and you can do your full app almost just using Ruby. You write your databases in a ruby DSL, you write your Javascript in rjs and you can even replace erb with haml and write HTML in another ruby DSL. This makes learning web-development much faster (and maybe that’s why most rails users are students1). When developing in Django, you really must know your way around HTML, Javascript, CSS (and Ajax). Of course in Rails you can do it the raw way too, I tried it once, but it was not the 37signals way of doing it.

But being loosely coupled is the point where Django gets advantage. There’s no preference in your js toolkit. Some use Prototype, others jQuery and others even Dojo and mootools. And although you have Django ORM as the default setting, you can easily (and pythonicly) start using SQLalchemy just like you can dump Django Templates for Jinja2. And this is easy because Django is explicit. This is why I believe hardcore rubyists aren’t using Rails but Merb, that gives them the freedom of using whatever they want (Thinking about DataMapper instead of ActiveRecord) depending on their needs, and not using a cannon to kill a fly. Luckily Rails is merging with Merb and this will change in Rails3.

Migrations

Rails provide a default migration mechanism while Django doesn’t. There are a few options, but none of them was chosen yet. There are a few alternatives, because there is a need for a system like that. I believe it is handy sometimes, but I don’t really get. I believe it’s something version control (together with backups, so you don’t have issues) should do. I don’t like the fact that you have a database schema that is not consistent with your code. I admit however that this is useful to ease database administration in servers when upgrading the production environment. One point to Rails, just because there isn’t a default choice in Django yet.

Environments

This is a feature that comes out of the box in Rails and doesn’t in Django. Like I’ve said before Django is explicit, and you can make your environment system. Sometimes I don’t even use it. Sometimes I choose my environment depending on the machine name, and others depending on environment variables. It’s just an if and an import, no big deal.

Reusable Apps

This is where Django really steps up from Rails. In rails you can reuse code by using plugins, while in Django you can have reusable apps. For instance, I am developing a website, and it needs to have a forum. I just download django-forum and route /forum to forum.urls and I’m done. Same for any other thing, just like registration, profiles and other common stuff. And each app has it’s own views, templates and models. And you can write your own website splitting it into apps. Makes sense in not-so-small websites. Rails has plugins, that will extend your app, and not work independently. You can do the same as you would in a Django app, but not as clean and independent.

Admin

Django features a sweet admin system, that making development of simple CMSs really easy. This is not something you can’t achieve with Rails (and there are cool plugins to do it), but doesn’t really comes out of the box and integrate with different apps in your project. And you can even make your own website just by using django admin interface and authentication system. Is not a big plus, but counts a little towards Django.

Community

Rails is more popular than Django, and while it’s not actually older, it is only in 1.0 while Rails is 2.2. I don’t see this a downside because Django guys are perfectionists and Django 1.0 is way more solid than Rails 1.0 was. However in the time it took to reach 1.0, startups and other companies were adopting Rails and this has led to an enormous Ruby community. In my point of view, this doesn’t matter to me a lot because people using Django are hardcore programmers and know their stuff. You don’t get as many rookie posts in blogs as you’d get if you were looking for rails. But in the end, adoption rate matters in business and Rails wins there.

Outcome

While Rails seems more simple is magically, while Django requires you to explicitly declare some stuff, the latter is my choice because of reusable apps. Everything else (that I mentioned here or not) doesn’t really matter. Things are possible in both frameworks, sometimes easier in one, sometimes in the other.

Other resources

1 Scroll down the Terry Chay rant until “Why I wish summer never ended”

Vaio Series P

And this one goes directly to my wishlist. Ok, maybe not to that wishlist of useful things but surely it would be cool to have one.

Greves e funcionamento das escolas

Ora aqui está uma questão interessante:

Os professores têm direito à greve. Não tenho nada contra isso. Ora o representante nacional dos pais e encarregados de educação diz que mesmo sem professores, deve-se garantir o funcionamento das escolas, nomeadamente a guarda das crianças. Concordo plenamente.

Agora e caso seja greve da função pública e não só os professores, mas também os auxiliares faltarem ao serviço? As escolas fecham, nem que seja da parte da tarde, porque as cantinas não servem almoço, e as crianças (com a idade e com as maluqueiras que têm) andam a solta por onde bem quiserem, e os pais a pensarem que estão na escola. E sim, eu mesmo já passei por isto umas poucas de vezes.

Que eu saiba nos hospitais não há disto. Há sempre um serviço mínimo que tem de ser assegurado. A educação é menos importante que a saúde? Eu diria que não. E não acho que nenhum pai gostaria de ter o seu filho de 10-11 anos por aí no meio de uma cidade sem saber disso.