segunda-feira, dezembro 26, 2005

Imagens... Usar ou não usar, eis a questão...

Aí depende. As imagens são necessárias? Não estou dizendo para não usá-las, mas há gente que gosta de criar imagens apenas com textos e utilizá-las nos títulos e subtítulos de artigos, por exemplo. Tem imagens que podem ser reduzidas ou descartadas. Já se foi o tempo em que o webmaster utilizava imagens para separar pedaços da página e ajeitar o leiaute. Em nossa era, precisamos seguir padrões e pensar na acessibilidade, procurando estruturar o site não mais em tabelas e muito menos usando as ditas "spacers" que separam o conteúdo. O CSS está aí para isso. Ah sim, você quer uma página mais arredondada, mais bonitinha? Não precisa fazer aquela figura gigante com a beradinha arredondada para comocar no menu. Você pode simplesmente fazer só o cantinho arredondado e colocar na ponta do dito cujo. Pronto! Kilobytes a menos para carregar... e se o navegador não permitir ou estiver desabilitado para imagens, a cor de fundo vai ser mantida e só não vai ter o canto suave... que meigo.
Você deve pensar em tudo isso antes de colocar uma figurinha bonitinha:
- A falta da figura afetará na visualização da página/conteúdo?
- Ela é necessária?
- Que formato você está usando?
É legal saber que o novo padrão da web é o PNG, mas há, ainda, navegadores que não o suportam (esse cara deve ser chato). Por isso utilize JPEG para fotos (imagens com muitíssimas cores) e GIF para ícones (figuras com menos cores, normalmente representativas).
Nunca esqueça de utilizar o texto alternativo (atributo "alt" da tag "img") para que se alguém não puder visualizar a imagem, ao menos saberá do que se trata.
Acho que é só! Até mais!

segunda-feira, dezembro 19, 2005

Quem é esse XBRL que nunca vi?

XBRL é um derivado do XML que significa eXtensible Business Reporting Language, utilizado para comunicação de dados financeiros e de negócios em geral, usados para a criação de relatórios. Com os dados organizados é muito mais fácil analisá-los de diversas maneiras. É um novo padrão aberto que vem sendo utilizado cada vez mais entre organizações de vários países devido a flexibilidade e facilidade de tratamento dos dados. O site http://www.xbrl.org/ é bem completo e você pode adquirir a especificação em http://www.xbrl.org/SpecRecommendations/. Também tem uma coluna no XML.com a respeito desta linguagem com diversos links bem interessantes. Existe um processador livre para XBRL, o ABRA, que você pode encontrar mais a respeito em http://www.xbrlopen.org/.
Acrescente seu conhecimento a esta postagem comentando. Até mais!

terça-feira, dezembro 13, 2005

AJAX: não é o time da Holanda

AJAX significa Asynchronous Javascript And XML. É um conjunto de tecnologias que deixam suas páginas mais dinâmicas transferindo de/para o servidor apenas dados relevantes. A utilização do AJAX necessita de uma programação bem organizada, seguindo os padrões da W3C, pois se interliga diretamente com os objetos e recursos de ambos os lados da aplicação (cliente e servidor). A página XHTML e formatada em CSS, preferencialmente, tem seu conteúdo alterado usando XMLHttpRequest via Javascript, tendo o XML como meio de interligação e manipulação dos dados processados no servidor (PHP, ASP, CFML, Python).
Para variar o IE (não sei o 7, porque não uso mais IE) possui algumas diferenças para a obtenção das propriedades e objetos das páginas, não seguindo a interface DOM da W3C como o Firefox, Opera, Safari, etc. Aí você, para acessar alguma tag na sua aplicação, deve fazer um condicional (se IE então... senão...) para instanciar corretamente o objeto que manipulará essa tarefa. Muitos sites como o Google e até mesmo da Microsoft utilizam AJAX para agilizar e evitar reenvio de dados desnecessariamente.
Não precisa dizer que vale a pena utilizar desde que saiba como. Ainda existem dispositivos que não usam o XMLHttpRequest ou JavaScript, por isso cuidado. Não faça nada que possa prejudicar ou parar sua aplicação. A dinamização deve ser utilizada apenas para melhorá-la e torná-la mais amigável e rápida. Viva o XHTML - a base da informação de sua página! O resto pode ser desprezado (acho que ficou forte essa colocação, não?): saiba usar.

Um bom tutorial de AJAX pode ser encontrado em:
http://www.tableless.com.br/ajaxdemo/
Um site ótimo!

quarta-feira, dezembro 07, 2005

Natural/ADABAS?

Sou analista de desenvolvimento e atualmente estou trabalhando com um sistema em plataforma alta, Mainframe. E, adivinha: Natural/ADABAS.
Quando vi "Natural/ADABAS" me perguntei: Mas que porcaria é essa?! Daí fui pesquisei um pouco e no trabalho fui conhecendo essa ferramenta, e li também uma apostila que encontrei na internet. A definição seria que Natural é uma ferramenta de deselvolvimento muito utilizada em Mainframe, mas possui versões para plataforma baixa também.
Desenvolvida pela alemã Software AG e distribuída aqui no Brasil pela Consist, possui uma ótima e fácil linguagem de programação com diversas funções, variáveis de sistema, editores de objetos, acesso direto a bancos de dados, inclusive ao ADABAS ao qual faz parte. É muito parecida com o COBOL, bem completa também, porém com muito menos instruções necessárias para as tarefas a se realizar. Quem aprendeu, como eu, na faculdade o bendito do COBOL e achou que iria se livrar e, de uma hora para outra, dá de cara com aquela tela parecida, fica feliz, em partes, quando conhece o Natural, pois é bem mais simples. Já ADABAS é um banco de dados hierárquico que atende bem aos requisitos críticos de performance de sistemas de grande volume e alta disponibilidade, como está descrito no próprio site da Consist, obtendo-se dele uma resposta rápida mesmo com uma estrutura complexa de banco.
Encontrei uma apostila ótima que fala isso aí em cima de Natural e muito mais. É do Luciano Perdigão e pretendo disponibilizar no meu site.
Para quem prestar concurso em que se pede para conhecer Natural e não quiser ficar "boiando", acho que esse texto ajuda (além dessa ótima apostila).

Se você sabe alguma coisa mais ou discorda de algo, ou até ache que falei alguma besteira, por favor comente!

segunda-feira, novembro 28, 2005

Tropeços comuns no ASP

#1. Inclusão de arquivos externos:
Sempre que utilizar um
<!-- #include file|virtual="comum.asp" -->
ele deve estar fora dos delimitadores do ASP, <% e %>. Acontece bastante de o pessoal colocar a diretiva dentro dos delimitadores e apresentar um erro de inclusão. No caso do PHP por exemplo, isso não acontece pois é uma instrução da linguagem. A inclusão de arquivos serve para evitar a repetição de instruções que ocorrem em várias páginas, como variáveis, funções, rotinas, e podem conter conteúdo HTML ou ASP (o conteúdo deste sim entre <% e %>).
Lembre-se: #include fora!

#2. Tentativa de exibir registro inexistente
No começo eu fazia isso direto! Abria conexão, instanciava os objetos e sem verifica se retornaria alguma coisa, inicava o loop de leitura. Volta e meia vinha aquele erro dizendo que o ponteiro estava no início e no fim do RecordSet. Para evitar basta perguntar antes de entrar na loop:
if not rs.eof
while not rs.eof
response.write rs("campo")
rs.movenext
wend
else
response.write "Não tem registros!!!"
end if
#3. Loop infinito na leitura do RecordSet
Se você viu aí em cima, tem um bendito de um rs.movenext. Esse cara serve para dizer para o ponteiro ir para o próximo registro do RecordSet. Sem ele o ponteiro ficará no primeiro registro para sempre, porque você pediu para imprimir/enviar para o navegador rs("campo") até chegar o fim dos registros, que nunca acontecerá. Vai dar Timeout! Não esqueça do bendito do MoveNext (rs.movenext considerando que o objeto de RecosrSet é rs). Ele é o cara.

#4. Comparação entre tipos diferentes
Eu tenho a mania de, quando resgatar um valor de uma variável vinda da URL (método GET), e esta for um valor numérico, convertê-la para fazer a comparação. Se na URL estiver pagina.asp?id=3 e eu quiser ver se é maior que 10, por exemplo, verifique antes se é um valor numérico e compare. Eu utilizo
if isNumeric(request.querystring("id")) then
if CInt(request.querystring("id")) > 10 then
...
end if
end if
Isso evita que, não necessariamente aqui, você compare uma string com um número por engano. Isso depende de sua aplicação.

#5. Chamada a um objeto, função ou rotina inexistentes
Ocorre normalmente quando copiamos códigos prontos de outro script nosso ou de um site na web. Eu, normalmene nomeio a conexão como cn ou conn, mas tem gente que utiliza conexao. Ou muitas vezes temos mais de uma conexão ao banco por script, sendo uma cn1 e outra cn2. Aí quando copiamos, esquecemos de alterar, dando, para variar, em erro!
set cn1 = server.createobject("adodb.connection")
...
rs.open sql,conn
Viu? Instanciei cn1 e chamei conn no RecordSet rs.
Também acontece isso quando você começa criando uma função chamada "validanum()" e aí você descobre uma já pronta na internet que faz exatamente o que você quer chamada "verificanum()", só que no restante do código você esquece de alterar.
function verificanum(num)
dim ok
...
verificanum = ok
end function

... ' no restante do código...

if validanum(numero) then ...
Essas são as que se demora mais para achar, mesmo porque o nome é parecido. Preste atenção!

#6. Tags HTML misturadas com código do ASP
No começo, quando estava aprendendo a programas, eu fazia muito isso. Com a prática isso acabou, mas eu lembro muito bem e sei que muita gente faz isso. Veja o exemplo desse Response.Write:
response.write strnome & <br />
strnome é uma variável, mas <br /> é uma tag HTML que deve ser enviada ao navegador e não interpretada. O correto seria:
response.write strnome & "<br />"
Você nunca fez isso? Sempre tem uma primeira vez!

quinta-feira, novembro 24, 2005

A tal da Web 2.0

Esse é um novo conceito de que a web está, ou deveria estar, ligada ao conhecimento geral com acessiblidade global. A estrutura do conteúdo deve ser simples, fácil de se entender e de se diferenciar cada pedaço dela. O conteúdo deve ser apresentado de forma clara e intuitiva, usável e acessível para qualque um em aualquer lugar com qualquer dispositivo.
Todo o conhecimento deve estar ligado, como é na vida real, agregando assim informações e possibilitando uma pesquisa mais completa, podendo ser alterada quando necessário. Isso serve para todos os tipos de mídia como textos, sons e vídeos, sempre lembrando que cada um conhece um pouco ou muito sobre determinado assunto, mas não tudo.
Para os programadores, além de integrar melhor execuções no cliente com execuções no servidor, é bom utilizar XML e separar conteúdo de apresentação, criando sistemas pensando em compartilhamento da informação, dentro dos padrões estabelecidos para que no momento ou futuramente possa adicionar módulos e trabalhar em conjunto com outros serviços espalhados por aí. Sistemas na plataforma web são o futuro e devem estar sempre em desenvolvimento.
Essa nova web traz um espírito colaborativo em que tudo e todos podem se conversar, desenvolver e criar. Unidos. Veja o exemplo da Wikipedia, uma enciclopédia mundial em que os usuários alimentam o banco de informações. Todo conhecimento deve ser livre (sites corporativos, páginas pessoais ou blogs). A web é livre, assim como todos nós.

Estes artigos são bem legais e vale a pena lê-los:
http://www.forumpcs.com.br/coluna.php?b=136211
http://www.carreirasolo.org/archives/voce_sabe_o_que_e_we.html