domingo, 16 de março de 2008

Decisões inteligentes...

Esta 6º feira passada, estive a conversar com um professor, que foi prejudicado pelos concursos de colocação de professores, ou melhor prejudicado pelo software onde o concurso foi efectuado.

O problema aqui, é que os engenheiros/ministros/quem quer que seja que está à frente do sistema, teve uma ideia brilhante:
"Não vamos correr o software novo e o antigo ao mesmo tempo, para ver se dão os mesmo resultados! Vamos mas é correr só o novo software e logo se vê."

Como podem imaginar deu barraca e não se podia esperar outra coisa, toda a gente sabe que qualquer software desenvolvido, trabalha bem no servidor de testes, agora quando passa para o servidor de produção, aparece sempre qualquer coisa.

Gostava de saber como é que é possível, aquelas mentes brilhantes, fizeram isto, ora toda a gente sabe, que testa-se sempre primeiro um software em produção. Mantendo o sistema antigo a funcionar, para se poder comparem os dados tanto de um como de outro. Para se ter a certeza que o novo está a funcionar a 100%.

Claro que podem ter existido mudanças na maneira como era feito o concurso, mas mesmo assim... há que ter os 2 sistemas a funcionar para se ter a certeza que o novo software trabalha bem.

Não admira que exista montes de gente a queixar-se dos concursos de colocações dos professores...

quinta-feira, 6 de março de 2008

IE8

Pelos vistos, parece que a Microsoft ganhou juízo, e ainda bem!

Finalmente, vê-se a Microsoft a dar um passo na direcção certa, o que me deixa bastante feliz, e quase de certeza que deixa também muita gente.

Lembram-se daquela história, que sempre que construíssemos uma página, tínhamos obrigatoriamente que por um header, para se poder usar a última versão possível do IE? E que se não usássemos nada, iria renderizar a página como se estivéssemos a vê-la no IE7?

A Microsoft, tomou ( a meu ver ) a decisão certa, se não tiver header nenhum o IE8, vai renderizar sempre no motor mais novo, claro que podemos continuar a "trancar" o modo de render da página, bastando para isso usar os headers.

Fico contente por a Microsoft, ter ouvido a comunidade, e ter tomado a decisão certa, será que vamos ter uma reviravolta na guerra dos browsers??

Embora muita gente, continue sem conhecer alternativas ao IE, muita gente nova, está cada vez mais receptiva às novas tecnologias, e procura alternativas.

Sem dúvida nenhuma, que o futuro, parece bem melhor face a estas novas revelações.

segunda-feira, 3 de março de 2008

Conselho...

Só vos dou um conselho:

Se tiverem uma ideia, executem-na, mal tenham tempo para a fazer, porque senão podem acontecer várias coisas:
  • Transformam a ideia original, em algo que não vos agrada mesmo nada.
  • Não vos dão o apoio necessário, para a executarem, e ficam a pensar que a ideia não é realmente grande coisa.
Por exemplo:
Em meados de Dezembro, tive a ideia, de um site que tivesse o preço dos combustíveis, nas várias zonas do país, um sítio, onde qualquer pessoa podesse ir ver/inserir os preços que viu nas bombas que costuma visitar.

Depois de pensar um pouco nisso, decidi apresentar a ideia à chefia, da minha empresa para saber o que achavam, se tinha pernas para andar, se queriam entrar etc etc..

O consenso não foi lá muito favorável, para além de quererem logo construir algo que não estava mesmo na minha ideia original, para além de que tinham de existir lucros o que não me interessava, pelo menos no inicio, e o projecto foi para a gaveta.

Foi para a gaveta, também por minha culpa, que deixei de pensar nisso, e como fazia falta o apoio, deixei andar até ter mais tempo, para o poder executar como deve ser.

Ontem um amigo mostrou-me um site: http://www.maisgasolina.com, e por incrível que pareça é exactamente aquilo que eu tinha idealizado, com menos umas coisas da minha ideia.

Ou seja, perdeu-se/perdi uma excelente oportunidade para fazer algo com bastante interesse, e que poderia ter bastante sucesso. Vamos ver se o site tem o sucesso que eu esperava que o meu tivesse.

Registem-se, e actualizem os postos em que passam.

Repetindo, se tiverem uma ideia, falem com dois ou três amigos, para saberem o que acham. E depois executem-na sem dó nem piedade, porque oportunidades são realmente muito poucas.

terça-feira, 29 de janeiro de 2008

Altura a 100% de uma div.

Parece-me que existem bastantes dúvidas de como por uma div com altura de 100%, ou seja de modo a ocupar toda a altura de uma janela do browser.

Então deixo aqui um pequeno tutorial de como o fazer.

Primeiro vamos definir o css:

html {
height: 100%;
}

body {
margin:0px;
padding:0px;
height:100%;
background-color:#000000;
}

#main {
min-height:100%;
height:auto;
margin:0px auto;
width:500px;
background-color:#666666;
color:#FFFFFF;
}

/* Para o IE */
* html #main{
height:100%;
}
Explicando, para a nossa div, poder ter todo o tamanho do browser é necessário, que o parent neste caso o body tenha também a altura de 100%, por isso é que o body e html têm a altura de 100%.

Está lá o hack para o IE, porque sem ele o que acontecia era que a div ficava apenas com o tamanho do conteúdo.

Agora temos o código HTML que é muito simples:
<div id="main"> Conteúdo<div>
Como se pode ver é extremamente simples, por uma div com a altura a 100%. Podem ver o demo aqui ( sem conteúdo suficiente para encher a página ) e aqui ( com conteúdo suficiente para fazer aparecer a scroll bar vertical ), e fazer o download aqui do código de ambas as páginas.

Esta é um dos 2, 3 métodos que existem para criar div's com 100% de altura, e de entre eles, este é o mais fiável. Pelo que testei.

Aproveito também para dizer, que já criei uma sandbox, para poder mostrar os demos funcionais do código que for postando aqui. Podem vê-la aqui: http://lancaster.freehostia.com/

quarta-feira, 23 de janeiro de 2008

O futuro do IE

Dia 21 deste mês, foi um dia em grande, para a comunidade que desenvolve para a WEB, e tudo por causa de um artigo da autoria de Aaron Gustafson escrito no A list Apart intitulado Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8.

O DOCTYPE, para quem não sabe, é usado basicamente para o browser saber em que modo há-de renderizar a página que lhe estamos a passar, se usarmos um DOCTYPE válido e completo, o browser tenta mostrar a página no modo "Standard" ( fazendo com que tudo apareça tal como está escrito nas especificações ), se no entanto não existir uma declaração de DOCTYPE válida ou incompleta, ele vai mostrar a página no modo "Quirks", ou seja como se estivesse a ser vista no IE 4.0 ( ou algo parecido ). O DOCTYPE é também usado para fazer validar as páginas, definindo assim qual o "markup" que estamos a utilizar por exemplo: "XHTML 1.0 Transitional".

A equipa que está a desenvolver o IE8, queria seguir a máxima "Don’t Break the Web!", e no que é que isto resultou?

Decidiram implementar um header que indica ao browser qual o motor que deve utilizar:
<meta equiv="X-UA-Compatible" content="IE=8"/>
E desta maneira, quando o IE8 ( ou outra versão superior ao IE8), olhar para este header, vai usar o motor do IE8 para mostrar o conteúdo da página.

Existe também um parâmetro para quando se quer usar o último motor disponível:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
O curioso é que se não incluirmos nenhum destes header's na página, o IE vai mostrar a página usando o motor do IE7.

E aqui é que está o problema. Por um lado tem as suas vantagens, já não é preciso estar a verificar um site, de uma ponta a outra para ver se está tudo bem, e se não tiver, têm que se estar a perder horas e horas de trabalho, para resolver pequenos problemas de design. Mas mantém-nos ( a nós programadores para a WEB ), atentos ao que se passa no resto do mundo o que é uma grande vantagem.

Mas por outro lado, também atrasa um pouco o desenvolvimento dos padrões "Standard", isto porque a tendência, será usar sempre o motor do IE7, porque muita gente não vai usar o header ( existe muita gente a usar o FrontPage, e espantem-se o Publisher para criar páginas ), logo tudo o que tenha sido desenvolvido ( Javascript, e mais importante CSS ) após o lançamento do IE7, não vai funcionar a não ser que se ponha o header correcto.


Para finalizar, a opção default, deveria ser: "Usar sempre o último motor". E no caso de não querermos modificar a página bastaria por o header, com o motor que queremos usar e problema resolvido.

Referências:
meyerweb.com/
NCZ Online
A List Apart 1 - Aaron Gustafson
A List Apart 2 - Eric Meyer

quarta-feira, 16 de janeiro de 2008

Manutenção de Código.

Estive agora a ouvir durante cerca de 45 minutos a palestra do Nicholas C. Zakas, sobre manutenção de código em Javascript...e como é lógico não podia concordar mais com ele em vários pontos. No entanto há muito programador que se esquece da maior parte das coisas que ele fala ( eu inclusive ). Seja pela pressa pela distracção ou outra coisa qualquer. Mas isto não pode acontecer!

Este problema leva a bastantes dores de cabeça, quer sejamos nós a mexer no código que criámos, quer seja um colega nosso. E quase que aposto que é onde um programador perde mais tempo no seu dia.

O que fazer para poder resolver este problema tão comum hoje em dia? Arranjar um bom método de trabalho, este penso que é o mais importante que tudo. Não ir em modas, lá porque toda a gente o anda a fazer, não quer dizer nós precisamos de o fazer e que é o melhor para onde o estamos a aplicar. É preciso analisar muito bem o que estamos a fazer para nos podermos atirar de cabeça com tecnologia X ou Y.

E para além destas duas que dei, outra, é ler, ler e ler ainda mais sobre a matéria em questão.

Se acham que implementaram alguma coisa mal, procurem por isso na web. Para que quando tiverem que criar algo parecido não caiam no mesmo erro.

Para finalizar ficam com o link para a palestra que ele deu intitulada: "Maintainable JavaScript".
http://www.nczonline.net/speaking/

Link para o site dele:
http://www.nczonline.net/

domingo, 13 de janeiro de 2008

Google Earth download!

Se há coisa que me irrite, é quando vou a um site, e esse site começa a dar erros de javascript! E que não nos deixa fazer o que queremos, por causa desses erros..


Desta vez foi com o site do Google Earth!

Primeiro pensei que fosse por estar a usar o Firefox, então toca de experimentar o IE e o problema continuava na mesma..

O que acontecia, como acontece a muito site por aí, que use o Google Analytics, a função urchinTracker(); não estava definida!

Podem ver os erros de tanto do FF, como do IE:




Mas como eu queria mesmo fazer o download, toca de meter mãos à obra com o meu fiel companheiro Firebug, basicamente é uma extensão para o Firefox, que permite editar e fazer debug no browser.

O que fiz simplesmente, foi ir à procura da função que o script javascript chamava quando se carregava no botão, e removê-la de lá. Depois foi só carregar no botão e voilá.. Toca de instalar o Google Earth.

O problema nisto tudo, é que quem visita a página à procura do produto, e vê que não consegue fazer o download, fica logo a pensar: "Mas que incompetentes são estes?!" Pelo menos é o que eu penso..

E até existem maneiras de dar a volta a isto, uma delas seria passar por verificar se o objecto javascript existe, outra seria por tudo dentro de um try catch finally, e problema resolvido. Mesmo que ele desse erro algures, o utilizador poderia sempre fazer o Download. A isto chama-se javascript não obstrutivo, e que degrada facilmente sem retirar qualquer funcionalidade à página que se está visualizar. E que deixa toda a gente contente!

Claro que esta solução dá mais trabalho, acrescenta mais código etc etc, mas não é bem mais vantajosa??

O que é que estes engenheiros/programadores/gestores andam a fazer no Google??

PS: Quem quiser pode fazer o download directo a partir daqui.