segunda-feira, junho 28, 2010

Acessibilidade vs Usabilidade

Falando de uma aplicação web, acho difícil conciliar estas duas coisas, especialmente quando se desenvolve uma aplicação e quando estamos a chegar ao fim é nos pedido para que a aplicação respeite as normas de acessibilidade.

Olhando às normas de acessibilidade e às validações que são feitas, algumas são extremamente ridículas e até comprometedoras do desempenho de uma aplicação. Agora imagine-se que um cliente nos pede uma aplicação que tem de ser super interactiva, com flash, com silverlight, com gráficos, coisas a mexer por todo o lado, que aparecem e desaparecem por pedidos AJAX, bem já se está mesmo a ver que a acessibilidade passa a ser um mito. Nesta situação existem três coisas a fazer, ou se ignora a acessibilidade, ou se ignora a usabilidade, ou finalmente fazem-se duas aplicações porque as acessibilidade e usabilidade não conseguem coabitar.

segunda-feira, junho 07, 2010

Cinema de fim-de-semana

Este fim-de-semana vi 2 filme, Príncipe da Pérsia (Prince of Persia) e Um sonho impossível (The Blind Side). Quanto ao primeiro é um bom filme para ir ver ao cinema, boa história, boa dinâmica, bons actores... Não sou um fã do vídeo jogo, por isso não posso dizer se está fiel à história, mas o que me interessa é que está com um bom argumento e um bom final, claro que não é um épico, mas é um bom "filme pipoca".

Em relação ao segundo, excelente filme, uma história tocante de uma pessoa que nada tinha, nada tinha perder, e com um grande humanismo conseguiu alcançar os seus objectivos e vencer na vida. Quanto ao Óscar para a Sandra Bullock, acho que é mais um prémio de carreira que outra coisa, não é que tenha sido uma má interpretação, mas não foi uma interpretação de excelência.

terça-feira, junho 01, 2010

Dados em memória ou em BD?

Quantas e quantas vezes são necessários dados estáticos numa aplicação? Imensas vezes, por exemplo para preencher valores de dropdowns. Em relação a estes dados estáticos (ou mesmo pouco mutáveis) ao longo da vida de uma aplicação, eu defendo que eles devem ser armazenados em memória por razões de desempenho, e porque não vejo nenhuma desvantagem significativa. Contudo até acredito que vendo as coisas de outra perspectiva que eu não estou a ver que exista alguma desvantagem, mas enquanto não me conseguirem provar isso mesmo vou continuar a optar por guardar os dados em memória.

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'