quinta-feira, maio 27, 2010

Comportamento do atributo disabled

Hoje estava de volta de um daqueles bugs chatos quando descobri um comportamento interessante (ou não) do atributo disabled. Imaginando que temos o seguinte código de exemplo a caixa de texto vai estar disabled?
<span disabled="disabled">
 <input type="text" />
</span>

Se eu disser que o bug está relacionado com a diferença de browsers, ilumina alguma coisa? Pois é, o problema aqui é que o IE interpreta isto pondo a caixa de texto a disabled, visto que ela está dentro de um span disabled e o Firefox interpreta isto pondo a caixa de texto enabled pois efectivamente ela não está marcada como disabled. Qual o comportamento correcto não sei, mas gostaria que todos os browsers se portassem da mesma maneira.

quarta-feira, maio 26, 2010

Programador milagreiro

A frase que mais me tem vindo à cabeça nos últimos dias é: "Sou programador não sou Deus, logo programo e não faço milagres!!!".

P.S.: Agradeço a todos os que me possibilitaram escrever este post, obrigado por me colocarem num plano divino!

terça-feira, maio 25, 2010

Google TV

Para quem diz que a TV está a morrer e não tem futuro, aqui está uma aposta de um gigante que contraria essa ideia. A ideia por trás disto é excelente, quase como um agregador de canais onde é possível fazer pesquisas como se faz actualmente no Google. A questão agora também passa pela sua comercialização, porque quereria a TV Cabo por exemplo comercializar um canal, que só por ele daria acesso a todos (ou quase todos) os outros? Deixo aqui o vídeo que demonstra a ideia em causa.

quinta-feira, maio 20, 2010

Kill Theory

Há muito tempo que não falo aqui de nenhum filme, talvez porque como já disse cada vez me tenho mais afastado de ver filmes para ver séries, de qualquer forma ainda vejo alguns filmes. Um dos géneros cinematográficos que mais me agrada é o terror, especialmente terror psicológico, são filmes que por muito maus que sejam, já sei à partida com o que posso contar e de vez em quando lá se apanha um filme que esteja acima da média.

Ontem estive a ver o Kill Theory, e apesar de ser um filme com nota baixa, talvez por alguns maus efeitos de sangue que tem, na verdade a teoria que está por trás do filme agradou-me bastante, à semelhança do Saw, que também é dos meus filmes de eleição, o "mau da fita" quer provar alguma coisa, quer provar que tem a teoria correcta. E o que é engraçado é que parece que o vilão tem sempre um QI superior à soma do QI de todas as outras personagens. Para não falar que o final do final é daqueles finais selados a ouro, é mesmo a cereja no topo do bolo.

segunda-feira, maio 17, 2010

Reunião NetPonto

Este fim-de-semana pela primeira vez fui a uma reunião do NetPonto. Já algum tempo que conhecia o NetPonto, e pessoas que estão directamente envolvidas com o mesmo, mas como as reuniões são sempre ao sábado e normalmente só sabia com pouca antecedência nunca tinha tido oportunidade de ir. Desta vez finalmente consegui ir e agradou-me imenso.

Como as apresentações não costumam ter muitas pessoas, neste caso devíamos ser a volta de 30-40, e conhecemos sempre bastante pessoas (posso dizer que no meu caso apesar de ter sido a minha primeira vez conhecia mais de 5o% das pessoas que lá estavam), as apresentações acabam quase por se tornar uma round table, em que muita gente participa, questionando, apresentando soluções, experiências, etc. Outra coisa que me agradou é que a grande maioria das pessoas via-se que percebi do que estava a falar, não andava ali so a "mandar umas coisas para o ar" ou a tentar perceber o que se estava a passar, o que possibilita que as discussões se tornem mais profundas e interessantes. Quanto a mim, vou tentar ir às apresentações sempre que possa, porque elas acabam sempre por ser mini-cursos.

sexta-feira, maio 14, 2010

Mais pessoas = Trabalho mais rápido?

Será que esta igualdade é verdade? Na minha experiência de vida são muito poucos os casos em que ela se aplica. Vejamos, se demoro 10 dias para cavar um buraco com 2 pessoas, teoricamente demoro 5 dias para cavar o mesmo buraco se tiver 4 pessoas. Em actividades que requeiram pouca especialização isto até pode ser verdade, mesmo assim o buraco poderia não ficar exactamente como era projectado inicialmente.

Na minha actividade profissional existe muito a política, se o projecto está atrasado então metem-se mais pessoas. Como irei provar, e a não ser que os prazos finais ainda estejam distantes, isto acaba por se tornar não uma solução mas um problema maior.

Normalmente quando se recorre a esta estratégia de por mais pessoas é porque os prazos já estão mesmo prestes a derrapar, é a solução de recurso, logo tem-se muito pouco tempo para se fazer muitas coisas. Então vamos por mais pessoas, o que vai acontecer? As pessoas que já lá trabalhavam e têm conhecimento do projecto, vão ter de 'formar' as novas pessoas, ou seja, em vez de estarem a gastar o seu tempo no projecto em si, estão a gastar tempo em tarefas auxiliares. As pessoas novas, não por culpa própria mas por não terem um conhecimento tão profundo do projecto que não se adquire em pouco tempo, vão fazer com que a qualidade final do projecto diminua. Resultado, cliente insatisfeito!

quinta-feira, maio 06, 2010

Insert de MySql para SQL

Uma das coisas que mais me chateia em trabalhar com diversos sistemas de base de dados é que não é fácil fazer backups e restores entre eles. Se alguém conhecer uma ferramenta gratuita que nos auxilie nesta tarefa agradecia se me dissessem pois não conheço.

Bem, vamos ao que interessa, tenho um script de um backup em MySql e quero passar os inserts para sintaxe SQL para inserir na minha base de dados SQL.

Script MySql:

INSERT INTO distrito (DistritoID,CodDistrito,DesDistrito) VALUES
(1,'01','Aveiro'),
(2,'02','Beja'),
(3,'03','Braga'),
(4,'04','Bragança');

Passos para a alteração do script:
  • Apagar a string "Values" e ");"
  • Find and replace de "(" por "select " (não incluir o 1º parêntesis)
  • Find and replace de ")," por " union all"
E aqui está o script com sintaxe SQL obtido:

INSERT INTO distrito (DistritoID,CodDistrito,DesDistrito)
select 1,'01','Aveiro' union all
select 2,'02','Beja' union all
select 3,'03','Braga' union all
select 4,'04','Bragança'