Friday, November 18, 2011

Mudei-me de armas e bagagens

Para os blogs do sapo: http://lgrave.blogs.sapo.pt

Tuesday, November 15, 2011

Voltamos ao tempo do lápis azul?

"A bem da Nação, a informação emitida pela RTP Internacional deve ser filtrada e trabalhada pelo Governo. Um tratamento que não deve ser questionado." João Duque, líder do grupo de trabalho para a definição do serviço público.

O que João Duque aqui defende é, pura e simplesmente, a criação de um canal de propaganda do governo alvo de censura e seguindo a agenda política do partido no governo! Voltamos ao tempo do lápis azul?

João Duque estará consciente que o que defende não é compatível com democracia? Ou a democracia foi cancelada e ninguém me avisou?

Saturday, November 12, 2011

Bonita liberdade de expressão, ó Correio da Manhã

Há umas semanas, motivado por constantes referências na primeira página do Correio da Manhã ao ex-primeiro ministro José Sócrates, comecei a contabilizar o número de vezes que essas referências apareciam.

Além de Sócrates contabilizo também para o actual primeiro ministro Passos Coelho, presidente da república Cavaco Silva, ministro de estado e dos negócios estrangeiros Paulo Portas, ministro das finanças Vítor Gaspar e secretário geral do PS António José Seguro.

Hoje, fui confrontado com o bloqueio da minha conta de twitter pública @luis_grave pela conta de twitter do Correio da Manhã @cmjornal.


Na prática a censura que me fizeram não serve absolutamente de nada, já que não me podem impedir de contabilizar as referências nem de as colocar na minha conta de twitter.

Grande exercício de liberdade de expressão efectuado por um jornal. Enfim.

A título de curiosidade fica aqui a contabilização mais actual das referências:
  • António José Seguro - 0
  • Paulo Portas - 1
  • Cavaco Silva - 2
  • Vítor Gaspar - 2
  • Passos Coelho - 3
  • José Sócrates - 12

Thursday, November 10, 2011

BPN

Banco Português de Negociatas.

Saturday, November 5, 2011

O primeiro-ministro de todos os portugueses

A existência, em Portugal, de somente dois partidos ditos grandes ou, por outras palavras, com condições para formar governo, tem consequências interessantes. Na prática quem decide quem vai ser o próximo primeiro-ministro são os militantes do PS e do PSD, limitando-se o povo a escolher entre os dois líderes.

Pedro Passos Coelho foi eleito presidente do PSD com 31 671 votos. António José Seguro foi eleito secretário-geral do PS com 23 943 votos.

Ora, no último censo realizado, Portugal tem 10 555 853 habitantes. Daqui resulta que Pedro Passos Coelho, actual primeiro-ministro, foi escolhido por 0,30% da população e António José Seguro, líder do PS, se for eleito primeiro-ministro será escolhido por 0,23% da população.

Sou só eu a achar que um sistema em que 3 em cada 1000 portugueses escolhe o primeiro-ministro não pode estar bem?

Wednesday, November 2, 2011

Onde pára a minha soberania?

Vamos fazer um pequeno exercício: vamos imaginar que acabei de entregar o IRS e descubro que devo 5000€. Quais são as minhas opções?

Segundo a lógica da UE, da Merkel, do Sarkozy, dos analistas, até dos jornalistas, só há uma opção: pagar. Não pagar é colocar-me numa posição de privilegiado frente à restante sociedade. Tenho de pagar. Impensável não pagar. Faça o que fizer, tenho de pagar.

Não posso decidir não pagar? Claro que se não pagar tenho de arcar com as consequências. Podem me vir buscar o carro. Posso ir para a prisão. Convém que pense muito bem antes o que vou fazer. O mais certo é escolher pagar. Mas recuso-me a aceitar o não poder optar que me querem impingir. Quero ter a liberdade para poder escolher!

Saturday, October 29, 2011

Afinal a ANACOM faz alguma coisa

Afinal a ANACOM faz alguma coisa, pena é ser tarde.

Desde o início do ano que milhares de consumidores são enganados por vendedores sem escrúpulos da Meo, Zon e afins: "Ou o senhor põe televisão por cabo ou no fim do ano fica sem ver televisão!" é a mensagem que assusta qualquer pessoa menos informada (e são muitos!).

A ANACOM anda agora a distribuir nas caixas de correio uns panfletos a explicar o que é a TDT, as suas implicações e as opções dos consumidores. Muito bem! Pena não ter sido mais cedo...

A hipocrisia da igreja

A santa igreja, que é contra todas as formas de contracepção, vende pornografia na Alemanha. É preciso dizer mais alguma coisa?

Tuesday, October 25, 2011

Igreja Universal do Reino dos Homens

O Vaticano defendeu hoje a criação de uma autoridade pública mundial para responder à crise económica e financeira.

Pura utopia. Se as religiões, que supostamente pregam a paz e o amor, não se conseguem entender para criar uma igreja única, iriam os governos entender-se para criar esta autoridade?

Só para 2013, sr. primeiro-ministro?

Ainda há poucos dias eu perguntava ao Passos Coelho quando iria diminuir verdadeiramente a despesa e hoje é noticiado que os consumos intermédios, as verdadeiras gorduras, irão aumentar em 2012.

Só para 2013, sr. primeiro-ministro?

Friday, October 21, 2011

Subject: Business Proposal

From: Saif al-Islam Gaddafi <saif_al_islam_gaddafi@hotmail.com>
Sent: October 21, 2011
Subject: Business Proposal

Asalamalakum!

CONFIDENTIAL

Dear Sir/Madam,

My name is SAIF AL-ISLAM GADDAFI, I am the second son of the late head of state of Lybia Colonel Muammar Gaddafi who died on the 20th of October 2011. I am writing you this letter with all hope and courage from Almighty God that you will be able to help my family and meddling this hour of need and persecution.

During my late fathers regime, my elder brother Muhammad al-Gaddafi was given a lot of contracts to execute by various ministries, which he successfully completed, and the contract value paid to him accordingly. We are therefore very surprised that at the death of my father, his political enemies and even those who benefited immensely from my father has all abandoned us. My senior brother Muhammad made a lot of money during my fathers regime.

Already, we have forfeited some money which was transferred through the Central Bank of Lybia because of the records of the transactions at that time, but during that same period, about 2000 million euro cash was given to him by my father to keep and he was able to move about 1300 million through diplomatic immunity baggage system with presidential plane to an undisclosed location abroad for safe keeping in a finance deposit company.

I am now writing you this letter and soliciting your assistance to enable us retrieve these money knowing fully well that there is no banking record of it, no risk involved but due to our restricted movement and lack of money for my family, I would want you to present yourself as the beneficiary of the money with the password which I will give to you since my brother has revealed that to me. You will be entitled to 15% of the total sum, as your share while 80% will be for us. The remaining 5% is to cover all expenses that you might incur in the course of the transaction.

I will stop here for now. If you are interested please send me an email for detailed explanation and further discussion. Also include your telephone and fax numbers. My telephone and fax numbers shall be revealed to you once you indicate your interest. Please if you are not in a position to assist us do let us know.

May Allah bless you as you assist my family.

Yours faithfully,

Saif al-Islam Gaddafi. for my family

Tuesday, October 18, 2011

Os números que não interessam nada à Igreja

"As estatísticas são muito claras e apontam para que apenas 0,03% dos casos [de pedofilia] ocorram na Igreja." Cardeal Saraiva Martins, numa entrevista ao jornal i publicada em 6 de Maio de 2010.

Ora, como as contas mostram, isto quer dizer que a incidência de casos de pedofilia na Igreja é cinco vezes superior à média mundial! É preciso dizer mais alguma coisa?

Por que sou contra esta redução de despesa e não sou incoerente

Ainda na oposição, Passos Coelho questionava e questionava o governo Sócrates sobre a redução de despesa do estado.

Quando entrou para o governo, as primeiras medidas anunciadas foram de aumento de impostos. Posso compreender: medidas de redução de despesa obrigam a analisar, avaliar, planear, e pura e simplesmente não houve tempo para isso.

Agora, passados quatro meses desde as eleições, Passos Coelho apresenta o orçamento de estado para 2012. Este contém uma redução de despesa duríssima: corte no subsídio de férias e décimo-terceiro mês dos funcionários públicos. Isto é pura e simplesmente cortar onde é mais fácil e onde se obtém mais resultados no curto prazo!

Não passaram já quatro meses? Não houve mais que tempo para analisar, avaliar, planear reduções de organismos inúteis, delegações de treta, entidades de chacha? Não houve mais que tempo para analisar, avaliar, planear despedimentos (oh heresia!) do excesso de funcionários públicos que Portugal tem? Decerto há na função pública pessoas honestas, competentes, trabalhadoras. Por que têm de pagar todos?

Vitor Gaspar vem dizer que, a não haver estes cortes, teriam de despedir 50 a 100 mil funcionários públicos. Viram alguém a questionar esta informação com números tão díspares? Donde apareceu? Foram efectuados estudos? Ou foi só para nos calar lançando o papão dos despedimentos na função pública?

Despedir funcionários públicos custa dinheiro? Claro que sim, há indemnizações e subsídios de desemprego. Mas a médio prazo há-de reduzir a despesa. Onde estão estes estudos? Alguém ouviu algum membro do governo a citá-los?

Parece que mais uma vez Passos Coelho optou pela via mais fácil. O que está à espera para começar a reduzir verdadeiramente a despesa?

Sunday, October 16, 2011

Barack Obama, prémio Nobel da Paz?

Em 2009 Barack Obama, recém-eleito presidente dos Estados Unidos, foi galardoado com o prémio Nobel da Paz.

Na sequência desta atribuição as expectativas foram, nos Estados Unidos e no Mundo, de que iriam terminar as duas guerras onde os Estados Unidos estavam envolvidos, no Iraque e no Afeganistão. Além disso a prisão de Guantánamo seria encerrada.

Dois anos passados e as guerras do Iraque e do Afeganistão (onde os americanos já estão há mais tempo do que lá estiveram os soviéticos) continuam a causar mortes todos os dias. A prisão de Guantánamo (uma vergonha num estado dito democrático onde nem as convenções de Genebra são aplicadas), apesar das sucessivas promessas de Obama quanto ao seu fecho, continua em funcionamento.

Os Estados Unidos enviaram agora tropas para a África Central com o suposto objectivo de "combater insurgentes". Estarão os Estados Unidos a prever passar lá tanto tempo como no Iraque e no Afeganistão?

É caso para dizer: Barack Obama, prémio Nobel da Guerra.

Thursday, October 13, 2011

E a discriminação «positiva» continua...

Depois de em 15 de Outubro do ano passado o governo Sócrates ter discriminado «positivamente» (?) a região litoral norte, ao introduzir portagens nas SCUTs, vem agora o governo Passos Coelho introduzir portagens nas restantes SCUTs do país.

No entanto, a discriminação «positiva» continua pois já está em estudo a introdução de portagens nos sublanços da A3 e da A4, entre Águas Santas e a Maia e Ermesinde.

Viva a discriminação «positiva» para o litoral norte!

Tuesday, October 4, 2011

USA, land of the free… se forem da religião certa!

Os EUA acabam de dar um passo atrás: a crença agora é factor de contratação ou despedimento. Uma decisão do supremo tribunal vem abrir a porta a que a crença religiosa seja factor determinante na contratação ou despedimento de um indivíduo.

Como é que esta decisão se integra com a liberdade de crença religiosa é que eu não consigo perceber. As entrevistas de emprego vão compreender questões sobre as crenças, ou ausência delas, dos indivíduos? Vai haver uma secção nos CVs dedicada? Quem decide mudar de crença religiosa tem de informar a entidade patronal? Vai haver um cartão com a crença religiosa de apresentação obrigatória?

E quem vai controlar a aplicação desta lei? Podiam criar um tribunal específico e chamar-lhe Inquisição!

Cada vez parece mais que, como dizia Henry Ford, os automóveis podem ser de qualquer cor desde que seja preta...

Sunday, October 2, 2011

Uma senhora da Madeira teve gémeos

Uma senhora da Madeira teve gémeos, um rapaz e uma rapariga. Em honra da Madeira decidiu chamar Madeira à rapariga e Jardim ao rapaz.

O Alberto João, sabendo disto, decidiu visitar a mãe e as crianças. Quando chegou ao hospital a Madeira dormia regalada no berço, enquanto a mãe dava de mamar ao pequeno Jardim.

- Que belas crianças - diz o Alberto João.

- Chiu! - diz a mãe - se a Madeira acorda o Jardim já não mama!

Wednesday, September 28, 2011

Mais um fim-de-semana prolongado

Hoje a Frente Comum de Sindicatos agenda manifestação para 21 de Outubro, uma sexta-feira obviamente. Já a semana passada a FENPROF também fez uma acção de protesto na sexta-feira.

Digo e repito o que já disse à FENPROF: façam como a mulher de César, se querem que vos levem a sério comecem por parecê-lo.

Sunday, September 25, 2011

O aprendiz de Alberto João?

O líder da JSD/Madeira, José Pedro Pereira, parece que vai no bom caminho como aprendiz de Alberto João. Depois de há dois meses ter urinado num carro da polícia, agora foi apanhado a arrancar cartazes do PND.
Parece que o rapaz tem futuro no governo regional...

Thursday, September 22, 2011

A FENPROF e a mulher de César

A FENPROF anunciou uma acção de protesto para a próxima sexta-feira.

Será que a FENPROF nunca ouviu o ditado "À mulher de César não lhe basta ser séria, tem de parecê-lo"? Porque marcam uma acção de protesto colada a um fim de semana? Ou é mesmo para garantir que podem aproveitar o fim de semana prolongado?

Se querem que vos levem a sério bem que podem começar por parecê-lo...

Friday, September 16, 2011

Idea sent to GoogleLabs: Google Jobs

My idea is to create a service similar to google news but regarding job offers.

There are thousands and thousands of sites dedicated to job offers.
Some of these sites are specific (e.g computer related job offers), other are more or less geographic limited.
For someone looking for a job this is a total mess.
I live in Portugal (a small country, circa 10 millions people) and is almost impossible to follow all sites with job offers.
To make things worst, some of these sites copy job offers from other places, so I end up seeing the same offer over and over.
I follow most of these sites trough RSS feeds (using google reader) and because most of them just put a summary in the RSS feed I never know if it is the same offer or not.
And because usually they don't publish RSS feeds for a specific geographic location or a specific field I have to go trough hundreds of uninteresting offers to find one that can be interesting for me.

Using plain google search is not useful: like news, the job offers loose importance after one or two weeks and the noise is so high that makes impossible to find a job offer. Any query that we put in google ends up finding hundreds and hundreds of job related sites but without any specific job offer for our search.

So, the features that I expect from such a service:
- Aggregate job offers;
- Group related job offers;
- Catalog job offers by field;
- Catalog job offers by geographic location;
- Offer search based on field and geographic location.

Wednesday, June 29, 2011

Queremos Trending Topics em Portugal #TTinPortugal

Os Trending Topics ou TTs são uma lista em tempo real dos nomes mais postados no Twitter pelo mundo todo. Valem para essa lista as hashtags (#) e nomes próprios.
O recurso de Trending Topics usa por padrão a abrangência total (worldwide), mas também é possível filtrar por países como Argentina, Australia, Brasil, Canada, Estados Unidos, Italia, Alemanha, Espanha, Reino Unido e outros, ou cidades como Boston, Londres, Los Angeles, Miami, Nova York, Rio de Janeiro, São Paulo e outras.
No entanto Portugal está excluído desta lista. Não é possível filtrar os TT por Portugal, apesar de a comunidade de Portugal no twitter já ter uma dimensão bastante apreciável.
Assim foi lançada uma iniciativa que visa obter visibilidade para a hashtag #TTinPortugal com intenção de efectuar pressão junto do twitter:
Se achas que Portugal deve estar nos filtros dos Trending Topics, associa-te à iniciativa.


Alerta: evita fazer SPAM. É mais efectiva uma utilização racional que abranja muitos utilizadores do que uma quantidade enorme de tweets por um único utilizador.


Já se obtiveram alguns resultados, para além de users incomodados com tanto tweets e alguns utilizadores que ficaram impossibilitados de tweetar.

É discutível o efeito que uma iniciativa destas possa ter. Primeiro é bastante difícil fazer com que a hastag #TTinPortugal chegue aos TT worldwide. Segundo, mesmo que chegue nada nos indica que o Twitter verá e fará alguma coisa.

Monday, June 13, 2011

Conduzir um kart para iniciantes

Registo aqui um conjunto de dicas para ajudar quem se quiser iniciar no karting para efeitos recreativos. Para competição é outra história :)
Assume-se aqui que se usa os karts de aluguer, normalmente 270cc 4T com variador (tipo as scooters) com cerca de 6cv, os mais indicados para iniciantes. Dependendo da pista e da afinação atingem cerca de 80km/h. Estão disponíveis na maior parte dos kartódromos por cerca de 1€/min.

Vestuário:
- Não tendo um fato de macaco usar jeans justos (mas não apertados) e uma camisola de manga comprida (devido às queimadelas dos cotovelos no motor). Não usar roupa nova pois o mais certo é ficar suja de óleo. Nada de cordões, fitas, etc que possam ficar presos.
- Ténis macios sem cordões largos (para não ficarem presos).
- Se tiver cabelo comprido prenda-o.
- Luvas, mesmo as de BTT sem dedos são melhor que não usar luvas.
- Óculos (por ex. escuros) velhos, a viseira dos capacetes dos kartódromos costuma estar muito riscada e a areia e borracha que salta da pista faz doer os olhos.

Quando:
- Escolher um dia em que não esteja muito calor. Chuva e pista molhada/húmida são completamente de evitar. Condução com pista molhada é outra história :)
- Escolher uma altura em que estejam poucos karts em pista, principalmente os de aluguer. É mais seguro andar em pista com os karts de competição que normalmente sabem-se comportar em pista.

Preparação:
- Dentro das boxes manter-se sempre atento ao lado da entrada. Levar com um kart nos tornozelos não tem piada.
- Ouvir com atenção os conselhos que o responsável no kartódromo lhe dê (o que pode e não pode fazer, regras especiais, etc).
- Hidrate-se antes e depois de andar de kart.
- Familiarize-se com o kartódromo: curvas, entrada/saída das boxes, etc.

Algumas regras gerais:
- A pista só tem um sentido. NUNCA andar no sentido errado. No caso de fazer um pião e ficar em sentido contrário deve primeiro verificar se pode fazer um U em segurança e só depois fazê-lo.
- As boxes têm uma entrada e uma saída. Use-as na ordem correcta. Para todos os efeitos as boxes SÃO pista, portanto aplicam-se as mesmas regras.
- Ao entrar na pista verifique se o pode fazer em segurança.
- 20 ou 30 metros antes de sair da pista (e antes de levantar o pé do acelerador) levante e mantenha erguido o braço até entrar nas boxes para assinalar aos outros pilotos. Dentro das boxes páre no local que lhe indicarem.
- Na maior parte dos kartódromos avisam quando o tempo está para terminar (normalmente de braço no ar). Dê mais uma volta completa e entre nas boxes.
- Se por acaso se despistar ou fizer um peão NÃO SAIA DO KART. O sítio mais seguro para estar é dentro do kart. Levante o braço para assinalar a sua situação para os outros pilotos e para o responsável pelo kartódromo. Aguarde por ajuda.
- Se quiser dizer a um piloto atrás de si que o deve passar aponte com o dedo (e braço esticado) o lado pelo qual o piloto o deve passar. Analogamente, se outro piloto lhe indicar passagem deve fazê-lo pelo lado que ele indicar.
- Os karts não são carrinhos de choque. Bater contra outro kart, mesmo com as protecções, dói!

Condução:
- O kart tem dois pedais: no pé direito o acelerador e no pé esquerdo o travão. Cuidado com o travão no início pois o pé esquerdo usualmente tem pouca sensibilidade para travar (está habituado à embraiagem).
- A direcção é directa, ou seja, vira muito pouco e não é assistida. Prepare-se para fazer força.
- Nas curvas evite pendurar-se no volante. O peso do corpo deve ser suportado pela bacquet (banco). Encoste-se à bacquet do lado exterior da curva.
- Na primeira volta habitue-se com os pedais e direcção.
- Quando já tiver alguma experiência lembre-se de aquecer os pneus uma ou duas voltas. A diferença de aderência entre um pneu frio e um quente é muito grande.
- A travagem deve ser feita enquanto se vai a direito antes da curva. Nunca travar no meio de uma curva.
- Para fazer uma curva aproxime-se pelo lado exterior da mesma a travar. Deixe de travar e comece a virar, mantendo pelo menos meio acelerador, de forma a passar pelo apex da curva (o "bico" da curva) de forma a terminar a curva no exterior. Depois de passar o apex aumente gradualmente o acelerador de forma a ir acelerador a fundo quando terminar a curva. Ver imagem seguinte.
- Se houver outros karts em pista com pilotos mais experimentados tente fazer as mesmas trajectórias que eles. Lembre-se, está a aprender.
- Se o kart fugir de traseira, tente compensar virando o volante para o lado que o kart está a fugir (o chamado contra-brecar). Esta é uma manobra que demora muito tempo a aprender. Não desista por inicialmente fazer uns piões :)
- Nunca trave e acelere ao mesmo tempo.
- As ultrapassagens têm normalmente lugar em dois sítios: depois de uma curva ou na travagem para uma curva. Depois de uma curva é a ultrapassagem mais simples: fez a curva melhor e ultrapassa em aceleração. A ultrapassagem na travagem é mais complicada: normalmente não tem a linha óptima e precisa de travar mais tarde que o adversário. Evite fazer este tipo de ultrapassagem nas primeiras vezes que andar.
- Mantenha-se na trajectória. Normalmente o resto da pista está suja com pedaços de borracha (os "berlindes"). Evite sujar os pneus pois perdem aderência.

Boas corridas!

Sunday, May 8, 2011

O piloto que conquistou os nossos corações

Faz hoje 29 anos morria o melhor piloto da história da Fórmula 1.
Sim, o melhor. Nenhum outro tinha a garra e o génio de Gilles Villeneuve. Mais: o piloto mais genuíno que a Fórmula 1 conheceu.
Gilles Villeneuve
Não venceu campeonatos. Aliás, venceu poucas corridas. Para ele isso eram coisas secundárias.
Gilles Villeneuve era único piloto que disputava todas as posições, todas as curvas, todos os centimetros de pista. Não importava se tinha material pior que os adversários. Não importava segurar pontos numa corrida. Não importava poupar o material. Nada disso importava. Para ele o importante era correr, era disputar, era ultrapassar os oponentes. Para ele o carro era um objecto que era para ser explorado até passar o limite.
E por isso era amado pelos fãs.
A imagem de marca: passar os limites
Três exemplos que mostram a genialidade do pequeno canadiano.
Treinos do GP USA Leste de 1979: chuva torrencial, pista completamente alagada. O colega de equipa Jody Scheckter (campeão em título) faz o melhor tempo e comenta que não consegue espremer nem mais um décimo. Gilles Villeneuve entra em pista e tira 11 segundos ao tempo do colega.
GP Canadá de 1981: mais uma vez com chuva faz metade da prova com o nariz do carro a tapar-lhe a visão, mas para ele não tinha qualquer importância. Continuava a pilotar e a ultrapassar com a cabeça inclinada para o lado. O nariz acabou por cair e Villeneuve acabou no pódio em terceiro.
Villeneuve com o nariz partido
Mas talvez ele seja mais conhecido pelo GP França de 1979. A prova foi vencida pelo piloto da Renault Jean-Pierre Jabouille. Foi a primeira vitória da Renault. Foi a primeira vitória de um motor turbo.
Mas nada disso interessou. Pois tivemos o privilégio de assistir à mais épica batalha de toda a história da Fórmula 1. Sim, foi uma batalha, entre Gilles Villeneuve e René Arnoux pela segunda posição. É impossível descrever por palavras a genialidade do canadiano:


Faz hoje 29 anos morria o melhor piloto da história da Fórmula 1.
Mas continua nos corações de todos os seus fãs. Mas continua no meu coração.

Thursday, April 21, 2011

Só para quem pensa que sabe C ou C++

Considere-se a expressão (***********printf)(&0["olá mundo!"]);
Isto é legal em C ou C++? Se sim, o que faz?


Notas iniciais:
  1. O operador * (deferenciar um ponteiro) é associativo à direita, ou seja: **a é o mesmo que *(*a);
  2. Uma função quando não está em contexto de ser invocada (ou seja, não tem parenteses à frente) converte-se num ponteiro para a função, ou seja: f é o mesmo que &f;
  3. Uma string constante ("entre aspas") é implementada como um array;
  4. O 'valor' de uma string constante é o endereço do seu primeiro elemento;
  5. O primeiro elemento de qualquer array em C é o de ordem 0 (zero);
  6. A prioridade do operador [] (indexação de array) é superior à prioridade do operador & (obtenção de endereço), ou seja: &a[b] é o mesmo que &(a[b])
  7. O operador [] (indexação de array) é comutativo, ou seja: a[b] é a mesma coisa que b[a]. A razão deste facto é que por definição a[b] é o mesmo que *(a+b), como a soma é comutativa é o mesmo que *(b+a) o que é o mesmo que b[a];
1ª parte: (***********printf)

Por 2) printf é o mesmo que &printf.
Logo, e tendo em atenção 1), *&printf é o mesmo que printf.
Por recursão conclui-se que (***********printf) é o mesmo que printf.

2ª parte: &0["olá mundo!"]

Aplicando 6) fica: &(0["olá mundo!"]).
Pela comutatividade 7) fica: &("olá mundo!"[0])
Tendo em conta 3), "olá mundo!"[0] é o primeiro caracter da string.
Logo aplicando & obtemos o endereço do 1º caracter.
Mas por 4) isso é o mesmo que ter a string "olá mundo!"

Conclusão:

O código inicial é o mesmo que printf("olá mundo");

Monday, April 18, 2011

Build process from hell

Ano de 2004. Um software que estava a ser desenvolvido por uma empresa austríaca e que foi transferido para a minha equipa.
Não usavam source control. Havia registo de bugs (cerca de 500 bugs abertos).
2 milhões de loc, 50 MB de sources e cerca de 6000 ficheiros em Visual C++ 6.0.
1 exe e 52 DLLs, portanto 53 projects dentro do Visual C++. Carradas de dependências entre módulos mas nenhuma indicada no Visual C++.
Como era feito o build process?
Com base nos ficheiros alterados adivinhava-se quais os targets a fazer build.
No caso de erro em alguns dos builds, tinha de se tentar por outra ordem.
No caso de várias tentativas (com várias ordenações) falharem era preciso mudar os settings e forçar o build. Normalmente eram várias DLLs que tinham dependências circulares. Ou seja: A dependia de B; B dependia de C; e C dependia de A. A solução era forçar a criação de A (ignorando erros), depois fazer build a B e a C, depois apagar A e fazer-lhe build novamente (desta vez sem forçar).
Um pesadelo completo! Digamos que com sorte conseguia-se compilar num dia(!) de trabalho.

Depois de um mês de trabalho a identificar todas as dependências e a automatizar o processo de build conseguimos colocar o processo de build fully automatic.
Ficou só a demorar 4h a compilar tudo...

Saturday, April 16, 2011

Como transformar o seu carro num verdadeiro veículo de competição

  • Tambores dos travões de trás pintados de vermelho
  • Lenços nos encostos de cabeça de preferência com a bandeira nacional made in China
  • Coletes fluorescentes nas costas dos bancos
  • Autocolante "Turbo"
  • Autocolante "Penelope"
  • Autocolante "Tuning não é crime"
  • CD pendurado no espelho retrovisor
  • Fita de casamento na antena suja de pelo menos 3 meses
  • Caixa de lenços de papel marca Continente no tablier
  • Ponteira de escape dupla Devil (interior vermelho)
  • Águia no capot
  • Aileron traseiro tipo tábua de passar a ferro
  • Película autocolante escura nos vidros (de preferência com bolhas de ar)
  • Cão Abana-Abana no tabuleiro traseiro
  • Cachecol de Portugal no cimo do pára-brisas
  • Autocolante racing na tampa do depósito de combustível a imitar fibra de carbono com parafusos falsos
  • Faróis de nevoeiro (desalinhados)
  • 3 (mínimo) pirilampos mágicos no tablier
  • Placa no tablier a dizer "Fátima" e com a imagem de uma santa
  • Íman para segurar o telemóvel
  • Autocolante Milupa "Crianças a bordo"
  • Autocolante negro no faróis da frente com dois buracos redondos
  • Capa para o volante com cores berrantes
  • Capas para os bancos com bolas de madeira
  • Letras dos pneus pintadas de branco
  • Extintor (avariado) debaixo do banco
  • Terço pendurado no retrovisor
  • Porta CDs na consola
  • Alhetas nas escovas limpa pára-brisas
  • Ventoinha (não muito grande) no tablier 
  • Faróis traseiros pintados de preto
  • Autocolantes na traseira sentido obrigatório (esquerda) e sentido proibido (direita)
  • Ferradura na grelha presa com arame de enfardar
  • Suporte para reboque com bola de ténis verde
  • Pintar o espaço da coluna entre os vidros de preto
  • Pequeno espelho para o ângulo morto
  • Almofadinhas para o cinto de segurança vermelhas
  • Bloco de notas com ventosa e caneta Bic (pode ser laranja ou cristal) presa por uma mola
  • Fita anti-electricidade estática a pelo menos 5cm do chão
  • Naperon rendilhado no tabuleiro traseiro
  • Coisa feita em renda para o tabuleiro traseiro com um rolo de papel higiénico dentro

Thursday, April 14, 2011

É uma software house portuguesa concerteza!

Há coisas que me fazem confusão. Uma empresa com dez programadores e não usa source control?? Com vários milhares de loc (lines of code)?

- "Source control só complica, nós fazemos uns ZIPs..."
- "Bug tracking? Vamos mandando uns emails..."
- "Ambiente de desenvolvimento? Ambiente de testes? O que é isso? Nós vamos ao produtivo e alteramos..."
- "Rollback? O que é isso?"
- "Backups? Ah e coiso, de vez em quando faço uns ZIPs..."
- "Eu sei lá se dá para fazer restore a partir de um ZIP. Nunca foi preciso..."
- "Onde guardo os ZIPs de backup? Estão lá num directório na mesma máquina..."
Começo a explicar o que é source control:
- "branches? tags? Ui isso é muito complicado!"
- "Deployment? Então, copio para lá os ficheiros que foram alterados!"
- "Versões? Tenho file_v1.pl, file_v2.pl, file_v3.pl e vou mudando os nomes..."
- "Bateria de testes? Então, o programador faz sempre um teste ou dois quando está a programar..."
- "Testes regressivos? O que é isso??"
- "Coding standards? O que é isso?"
- "Como é que quer que eu saiba quando, por quem e porque razão esta linha de código foi alterada?"
- "Levantamento de requisitos? Troca-se uns mails com o cliente..."
- "Especificação? Para quê? Faz-se o software e logo se vê se era aquilo que o cliente queria..."
- "Claro, o programador é que desenha o user interface..."
- "Design? Para quê? O programador que escolha umas cores que fiquem bem..."
- "Gestão do projecto? Então, os programadores dividem as coisas entre eles. Depois vão à reunião com o cliente para saber o que falta..."
- "Como é que quer que eu saiba se o projecto está ontime? Na deadline logo vemos se está tudo feito ou não..."
- "Qualidade de software? Só tenho aquele papel ali na parede de HST, é isso?"
- "Bugs fechados? São aquelas coisas que o cliente já não chateia mais..."
- "Se este projecto dá lucro? Sei lá. Os programadores trabalham das 9-5 em tudo. No fim do ano a contabilidade diz-me se tive lucro"
- "Orçamento? Então, calculo a olho na primeira vez que converso com o cliente..."
- "Milestones? O que é isso?"
- "Arquitectura do sistema? O que é isso?"

As empresas de outras áreas (não de software) também trabalham assim?