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'

sexta-feira, abril 30, 2010

Levantar os certificados de Aforro?

Sempre ouvi dizer que os certificados de aforro eram seguros desde que o país não entre na banca rota. Ora no estado actual das coisas parece que já estivemos mais longe que isso venha a acontecer, e agora vem a minha pergunta, será que devo de levantar os meus certificados, não é que sejam muitos? Será que se isto continuar e eu adiar o levantamento dos certificados, quando os tentar resgatar isso me será negado?

quinta-feira, abril 22, 2010

Techdays - Dia 3

E este foi o último dia do Techdays deste ano, hoje tenho 2 áreas a destacar, a primeira a nível mais tecnológico com algumas das novidades da framework 4.0 e o segundo mais a nível de gestão com algumas recomendações que podem ajudar para o sucesso de um projecto.

No que tocam a inovações tecnológicos foco alguns pontos como: variância, argumentos por nome (suspeito que esta é uma forma de tornar o código ainda mais javardo por parte de alguns programadores cowboy), valores por omissão, tipo dymanic e muito importante, novos serviços de suporte a multi-threading. Realço o multi-threading pois como disse no post de ontem os sistemas têm de ser cada vez mais assíncronos, de modo a aproveitar os multi-core que actualmente já são comuns, logo faz todo o sentido que a framework e a própria IDE tenha sido refinada deste ponto.

Em relação à gestão de um projecto fiquei com algumas ideias de como minimizar o risco de falha como:
  • Ter uma boa comunicação entre a hierarquia que está responsável pelo projecto,
  • Envolver o cliente nas especificações e testes,
  • Garantir que todos estão a pensar a mesma coisa sobre cada funcionalidade,
  • Usar tecnologia recente, documentada e com bom suporte,
  • Cuidado com a qualidade (flexibilidade, performance, tolerância a falhas, manutenção simples, segurança, etc),
  • Estimativa de riscos gerindo as expectativas,
  • Garantir que toda a equipa está motivada e tem as capacidades necessárias,
  • O cliente tem de sentir que o que lhe fornecemos tem uma mais valia para a sua organização.

quarta-feira, abril 21, 2010

Techdays - Dia 2

Bem hoje posso dizer que foi o dia "retorno ao ISEL", visto que além do imenso número de ex-colegas que encontrei, também foi o dia em que metade das sessões que vi tinham como oradores ex-professores.

Passando às sessões em si, além de todos os detalhes tecnológicos, das arquitecturas, etc, saí de lá com 3 ideias/pontos a explorar:
  • Em 2007 a minha biblioteca javascript de eleição era o JQuery, por diversos motivos, entre os quais querer aprender outras bibliotecas, estudei mais a fundo YUI e comecei a trabalhar nos meus projectos com Mootools. Como a Microsoft está neste momento a apostar em força no JQuery com suporte de intellisense, desenvolvimento de novas funcionalidades, a JQuery UI, CDNs específicos de JQuery, entre outras coisas, vejo como melhor opção para o futuro voltar a utilizar JQuery.
  • Cada vez mais a arquitectura de um sistema tem de ser pensada com um paradigma assíncrono, de modo a dar uma melhor experiência de utilização e muito importante permitir a fácil escalabilidade através de processamento em paralelo.
  • Tenho de ir investigar a biblioteca Unity que facilita a prática de modularizar os diversos componentes de uma aplicação, através do conceito de Inversão de Dependência, mais conhecido por dependency injection (DI). Não é que isto seja fundamental, mas é uma boa prática, e como tal devemos estar conscientes da sua importância.