Tutorial - XHTML - Módulo 02

Este segundo módulo tem como intuito apresentar algumas das regras de sintaxe, assim como alguns exemplos de uso comparando-o com a forma antiga.

As regras estarão escritas abaixo em negrito, sendo que para aquelas que apresentarem exemplos logo em seguida, considere como o primeiro exemplo sempre como o correto e o segundo como o errado, ok?

Vamos à elas então..

- Todos os elementos XHTML devem estar dentro do elemento raiz <html>.

- É obrigatório a declaração do DOCTYPE assim como a existência dos elementos <html> <head> <title> e <body>.

- O atributo “alt” é obrigátorio em todas as imagens.

Dica: Caso a imagem em questão seja apenas de uso decorativo, você pode especificar seu atributo, como alt=” “

- Elementos XHTML devem estar devidamente aninhados.

<div><p><strong>Tutorial - XHTML</strong></p></div> - Certo
<div><p><strong>Tutorial - XHTML</p></strong></div> - Errado

-  Elementos XHTML devem estar escritos em letras minúsculas.

<p>Tutorial - XHTML</p>
- Certo
<P>Tutorial - XHTML</P> - Errado

- Elementos XHTML vazios devem ser fechados.

<img src="images/xhtml.jpg" alt="Imagem" /> <br /> - Certo
<img src="images/xhtml.jpg" alt="Imagem"> <br> - Errado

Dica: Coloque sempre um espaço a mais antes do / que fecha a tag, por exemplo:

<img src="images/xhtml.jpg" alt="Imagem" /> <br /> - Certo
<img src="images/xhtml.jpg" alt="Imagem"/> <br/> - Errado

- Os nomes dos atributos devem estar escritos em letras minúsculas.

<img src="images/xhtml.jpg" alt="Imagem" />
- Certo
<img SRC="images/xhtml.jpg" ALT="Imagem" /> - Errado

- Os valores dos atributos devem estar entre “aspas”.

<img src="images/xhtml.jpg" alt="Imagem" /> - Certo
<img src=images/xhtml.jpg alt=Imagem /> - Errado

- Minimização nos atributos é proibido.

<option selected="selected">Tutorial - XHTML</option>
- Certo
<option selected>Tutorial - XHTML</option> - Errado

- O atributo “name” é substituído pelo atributo “id”.

<img src="images/xhtml.jpg" id="Imagem" /> - Certo
<img src="images/xhtml.jpg" name="Imagem" /> - Errado

Em um dos primeiros pontos que comentei, citei que era obrigatória a declaração do DOCTYPE, pra você que se perguntou o que era aquilo, vou responder agora:

DOCTYPE é um acrônimo para “Document Type“, que é uma Definição do Tipo de Documento ou DTD (Document Type Definition), ele especifica qual a sintaxe SGML (Standard Generalized Markup Language) usada no documento, quais as regras que se aplicam a linguagem de marcação usada, bem como o conjunto de elementos e entidades válidas para aquela linguagem.

Os tipos de DOCTYPE para XHTML:

  • Strict
  • Transitional
  • Frameset

Strict

A declaração Strict é a mais restrita as 3.

Declaração:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Na declaração Strict, os documentos XHTML não aceitam qualquer item de formatação dentro dos elementos e nem elementos “deprecated” (em desuso) segundo as recomendações do W3C. São indicados para uso com separação entre conteúdo e forma, ou seja, folhas de estilo em cascata com marcação totalmente independente da apresentação.

Transitional

A declaração Transitional permite uma maior flexibilidade.

Declaração:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Na declaração Transitional é indicada para documentos que ainda utilizem elementos “deprecated” (em desuso), regras de apresentação embutidas em tags e também para documentos destinados a exibição em browser sem suporte para CSS. Não aceita marcação para frames.

Frameset

A declaração Frameset é utilizada para páginas com frames.

Declaração:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Na declaração Frameset é permitido tudo da declaração transational e mais os elementos específicos para frames.

Bauru Twestival 2009

O Twestival é um evento mundial que acontecerá durante o dia 12 de fevereiro em mais de 170 cidades do mundo inteiro, e no Brasil nas cidades de Bauru, Belo Horizonte, CampinasCuritiba, Florianópolis, Porto Alegre, Recife, Rio de Janeiro e São Paulo.

O objetivo é arrecadar doações para ajudar a ONG charity:water que leva água potável para diversos países em desenvolvimento. É uma organização sem fins lucrativos e 100% do dinheiro arrecadado vai para custos diretos dos projetos, financiando soluções de água potável sustentável nas áreas de maior necessidade. Eles também trabalham para a conscientização sobre a crise de falta d’água através de eventos, exposições e outras campanhas públicas de sensibilização.

E, além de ajudar essa causa, é uma grande oportunidade de confraternizar com várias pessoas que utilizam o Twitter em Bauru.

Eu, como um dos organizadores, gostaria que você colaborasse e estivesse conosco na próxima quinta-feira, o que acha ?

Ah, é bom esclarecer que ninguém será remunerado por isso. Todo o dinheiro arrecadado será doado via PayPal para a charity: water.

Para mais informações, acesse:

http://bauru.twestival.com/

Tutorial - XHTML - Módulo 01

Este primeiro módulo tem como intuito apenas apresentar a linguagem de marcação XHTML, para quem ainda não a conhece.

Você irá perceber durante o decorrer do tutorial que, XHTML não é muito diferente do HTML 4.01, trata-se apenas de uma reformulação, mas que mantêm aspectos praticamente idênticos, portanto, se você já desenvolve seus códigos respeitando os padrões do HTML 4.01 é um bom início.

Veja a referência completa do HTML 4.01 .

XHTML ou EXtensible HyperText Markup Language ou ainda Linguagem EXtensível para Marcação de HiperTexto, em resumo, trata-se de um HTML mais rigoroso, no sentido de ser bem-formatado, claro e limpo.

Tem como origem a combinação do XML (projetado para descrever dados) e do HTML (criado para exibir dados).

Hoje o mercado é constituído de diferentes navegadores, cada um com sua tecnologia. Alguns destes são para uso em computadores, outros são executados em dispositivos móveis, sendo que estes últimos por sua vez não possuem os recursos ou poder de interpretar uma “má” linguagem de marcação.

Com isso, XHTML tornou-se uma recomendação da W3C em 26 de janeiro de 2000, e hoje todos os novos navegadores possuem suporte e compatibilidade à ela.

Trata-se de um padrão web, portanto, você é ou quer ser um desenvolvedor nesta área? Então utilize-o!

Tutorial - XHTML

O tutorial será desenvolvido considerando que você já tenha uma noção de HTML, caso ainda não a tenha, você pode adquiri-la aqui ou aqui.

Acredito que tratando de assuntos desta área, ver só a teoria não é suficiente, por isso vou propor que façamos algo na prática.

Que tal fazermos uma página para exibição de notícias? Sendo que estas notícias serão cadastradas através de uma área administrativa somente acessada por um login e senha válidos. Pode ser? Feito então!

Durante o tutorial de XHTML criaremos as telas, e seguindo a proposta, durante o tutorial de PHP / MySQL daremos vida a estas telas, tornando-as dinâmicas e fazendo este mini-sistema de notícias funcionar.

O tutorial de XHTML será dividido em 4 módulos:

  • Introdução: O que é, Porque usar..
  • Principais mudanças: Sintaxe, DOCTYPE, Diferenças em relação ao HTML..
  • Desenvolvimento: Criação das telas que serão utilizadas no mini-sistema..
  • Validação: Demonstrando como validar o código..

Proposta feita, tutorial explicado, semana que vem daremos início.

Tutoriais - Web

Esta semana vou começar uma nova proposta para este Blog, e que promete durar por várias outras semanas. Andei pesquisando um pouco por curiosidade, e reparei que não temos grandes mini-cursos ou tutoriais ( claro, existem exceções e irei citar algumas delas aqui ) para assuntos de desenvolvimento web ( para iniciantes ).

Considerando que já tenho alguma experiência na área, acredito que consiga desenvolver um material bacana, que possa ser útil para algumas pessoas.

Então esta é a nova proposta, desenvolver tutoriais, que serão divididos em Módulos, abordando os assuntos, XHTMLPHP / MySQL, nesta mesma ordem.

A frequência de atualização pretendo que seja de um novo Módulo por semana.

Começando por hoje, aguardem! :-D

São Paulo Futebol Clube

É isso, mais um ano acabando, e mais um ano meu querido tricolor sendo campeão brasileiro, hexa-campeão, tri-campeão consecutivo, bom demais!

A diretoria tem lançado camisetas comemorativas contendo o número de títulos correspondentes aos campeonatos Brasileiro - Libertadores - Mundial, o famoso 6 - 3 - 3.

O problema é que estes números tem mudado a cada ano, fica complicado para os torcedores manterem suas camisetas atualizadas, baseado nisso, vi uma brincadeira de torcedores falando que estas camisetas deveriam ter o número descartável, ou seja, que pudessemos mudar a cada ano.

Foi daí que resolvi gastar umas 3 horinhas do meu tempo para fazer, considerando meu lado desenvolvedor / geek / nerd de ser, esta pequena aplicação, em que o usuário digita o ano, e são preenchidos os números nas camisetas, considerando quantos títulos o time possuia na época.

Quiserem ver esta brincadeira, sem grande utilidade:
http://www.andersonarcenio.com/saopaulo

TwinterCon: Twitter + InterCon2008

Restanto apenas uma semana para o esperado iMasters InterCon 2008, evento que acontecerá em São Paulo e contará com 4 eventos simultâneos ( além das palestras principais, acontecerá a FF’08 com palestras rápidas, e mais duas oficinas técnicas ), contando com a presença de mais de 700 pessoas e 24 palestrantes, discutindo e abordando assuntos relacionados com inovação digital e desenvolvimento da web.

Se interessou? Infelizmente é tarde, pois as inscrições esgotaram-se com praticamente 1 mês de antecedência. Mas se quiser saber mais sobre o que vai acontecer por lá, o site do evento é: http://imasters.uol.com.br/intercon/2008/

Bom, considerando que grande parte das pessoas que lá estarão, utilizam o twitter, eu mais Fernando Cordeiro, resolvemos fazer um mashup juntando ambos: a ferramenta de microblogging e o evento.

TwinterCon é um lugar onde estará concentrado todas mensagens enviadas pelo Twitter que falam sobre o InterCon, e mais que isso, já que isso outros sites já fazem essa função, como o próprio título já diz: “Twitte, cresça e apareça”, quanto mais mensagens você enviar, mais sua foto irá aumentar, e assim você ficará mais visível e destacado aos visitantes do site.

Infelizmente nossa rotina diária, não nos permitiu fazer tudo que queriamos, mas vale a pena dar uma olhada no resultado final.

http://www.andersonarcenio.com/twintercon/

:-D

Easter Eggs

Easter Egg, para quem não sabe, é  o termo adotado para descrever as “surpresas” escondidas em músicas, jogos, livros, álbuns, sites, softwares e afins. Dentre estas diversas áreas existem vários bem interessantes, alguns destes, até polêmicos, mas como o foco do post não é este, dêem uma pesquisada que vale a pena.

Falando-se em web, é possível fazer estas brincadeiras, com simples tratamentos de eventos, seja eles de mouse ou de teclado, em Javascript.

Para quem se interessar, tem um artigo no htmlgoodies que fala um pouco melhor deles, mas especificamente de eventos de Key.

Pra finalizar, o assunto merecia, algo na prática, não acham ? Pois bem, o primeiro que descobrir o easter egg que criei aqui, ganha uma Cerveja! :-D

Dica: É quase o mesmo easter egg do Goggle Reader, mas adaptado para o modo de um dos jogos mais famosos de Tiro.

Contador de Caracteres

Tive necessidade em certas situações de saber quantos caracteres possuia um texto, e como não conhecia nenhuma ferramenta que fazia isso, acabava improvisando, estimando essa quantidade ( porque obviamente não ia contar caracter a caracter né? ).

Então resolvi criar uma aplicação simples, que faz isso pra mim. Que mostra a quantidade de caracteres do texto, a quantidade de caracteres sem espaços em branco e a quantidade sem tags HTML e/ou PHP.

Foi feita em php, caso alguém necessite do código de algo assim, só me falar, que disponibilizo.

Ela está em:
http://www.andersonarcenio.com/contador_caracteres

YIAS Agenda! com Google Maps ..

Vou postar aqui uma funçãozinha em javascript que utilizei em um projeto que vinha desenvolvendo para faculdade, cujo exibe o mapa correspondente ao endereço recebido como argumento.

Aproveitando a deixa, o projeto trata-se de uma Agenda ( virtual / web , como desejarem ). O intuito era acoplar em um local, todas funções que uma agenda, daquelas tradicionais lembra? podem exercitar. Nesta versão, ainda em fase Beta, ela contém uma Agenda de Contatos, que é o foco do projeto, onde você registra seus contatos, contém funcionalidades como exibição destes através do Google Maps, envio de SMS para celulares Claro, dentre outras coisas. Além de uma Agenda de Compromissos, no estilo Google Calendar ( sem querer competir com eles, obviamente ), e uma Agenda de Anotações.

Quem quiser conferir:
www.andersonarcenio.com/yias

Enfim, vamos a função:

<script type=”text/javascript”>

//<![CDATA[

var map = null;
var geocoder = null;

function showAddress(address) {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));
geocoder = new GClientGeocoder();
if (geocoder) {
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert(address + " - não encontrado no Google Maps.");
} else {
map.setCenter(point, 13);
var marker = new GMarker(point);
map.addOverlay(marker);
marker.openInfoWindowHtml(address);
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
}
}
);
}
}
}

//]]>

</script>

Essa função recebe como argumento o endereço, o mesmo que você digitaria na página do Maps.

O mapa referente ao endereço recebido, aparecerá em uma div, por exemplo, em alguma tag que tenha id =’map_canvas’.

Não vou especificar detalhes da função, caso alguém se interessar, é só comentar, que responderei com prazer! :-D