Arquivo da Categoria ‘Programação para Internet’

Curso Gratuito de Programação para Web em Java

segunda-feira, 1 de outubro de 2007
.!.

Não precisa se inscrever, leia este artigo e começe as aulas que estão listadas no final do artigo.

Sejam bem vindos para o curso Programação para Web.

Quem sou eu

Antes de mais nada, quem sou eu: Professor Luís Eduardo, 33 anos, ex-professor na Etep Faculdades de São José dos Campos, uma das escolas técnicas mais conceituadas em meu município e região. E também 10 anos na Sabesp, na divisão de Informática do Vale do Paraíba. Eu sou Tecnoclasta.

Trabalho com Java desenvolvendo sistemas Web para a intranet da Sabesp. Começei com o “macarraônico” código JSP acessando diretamente o banco de dados Oracle, e agora, já evoluído, utilizo Struts mais Hibernate nos projetos novos. É claro que os primeiros projetos ainda estão em funcionamento e manutenção. Portanto lido com todo tipo de código jsp + oracle + struts + outros testes.

Objetivo do Curso

O objetivo deste curso é permitir alguém com boa vontade e dedicação desenvolver pequenos sites em Java. Apenas começar o desenvolvimento, o suficiente para conseguir acompanhar o material mais completo e técnico já presente em abundância na Internet. Será também o repositório de informações para meus alunos do curso presencial, que tem o mesmo conteúdo apresentado aqui.

O curso será dividido em oito partes:

  • XHtml
  • Css
  • JavaScript
  • Java
  • Jsp
  • Jstl
  • Struts
  • Hibernate

Uma sopa de letrinhas não é? Mas não se preocupe, iremos abordar cada um dos ítens devagar e da forma mais didática possível.

Um curso como este é desenvolvido em minha escola em 1 ano. São 6 meses com xhtml, css e javascript, e 6 meses para a parte dinâmica: jsp, jtsl, Struts e Hibernate. E em paralelo Java puro em 6 meses.

Infelizmente eu não tenho organizado comigo todo material com este conteúdo. Eu tenho tudo aqui na cabeça, com cada aula preparada e alguma coisa em anotações. Então vou desenvolver isso aos poucos, com uma lição por semana. Já terminei de postar todas as aulas, então faça seu próprio ritmo. Este é o meu plano de aulas: uma aula por semana, série de exercício e tira dúvidas direto no comentário das aulas. Quem quiser fazer isso a sério, é necessário uma dedicação de no mínimo 3 horas por semana.

As aulas serão totalmente práticas, então nada de ficar teorizando, e contando histórias, vamos direto ao assunto. Com exceção é claro da aula inicial que é muita teórica.

Inscrições

Nada de inscrições. Basta fazer as aulas. Porém eu ficaria feliz se deixasse um comentário neste artigo dizendo que fará as aulas. As aulas serão postadas todas as terças-feiras. Todas as aulas já estão disponíveis.

Material Didático:

Para início de conversa precisamos de uma máquina rodando Windows ou Linux, com acesso a internet e só.

Para o meio do curso vamos precisar também de um ambiente de desenvolvimento Java, mysql e gimp. Observe que é necessário tanto o Internet Explorer quanto o Firefox. Se ainda não usa, instale o Firefox o quanto antes, é um navegador excelente, e obrigatório para os testes de compatibilidade. Para o Firefox tem um download aqui ao lado direito. Para os usuários de Linux é muito interessante ter o Internet Explorer, para realizar testes de compatibilidade. Veja o ie4linux.

Os outros downloads você encontra aqui.

Para a próxima aula:

download killshot

Guarde esta página em favoritos (teclas ctrl+d), para poder continuar o curso a partir da próxima aula.

Para os mais entendidos: feeds, ou assine por email

Conteúdo já publicado:

Livros Recomendados:

Html, Xhtml, Css: Use a Cabeca Html Com Css e Xhtml – Elisabeth Freeman, Eric Freeman

Geral Sobre Java:Java como Programar, Deitel

Sobre JSP e Servlet:Use a Cabeça! Jsp – Brian Bashan, Kathy Sierra, Bert Bates

Outros livros:

Sobre Hibernate:Java e Hibernate

Sobre Struts:Java e Struts

Widget de Rec6 somente nos posts mais votados

quinta-feira, 28 de junho de 2007
.!.

Ok, você não é um blogueiro? Então clique ao lado em uma outra categoria, antes de mudar o site, tem outras coisas interessantes aqui. Ciências, por exemplo. Ou role a página para os próximos artigos.

Continuando, fiz uma modificação no widget do rec6 para WordPress para determinar exatamente em que posts gostaria de acrescentar o número de votos.

A idéia de colocar o widget é estimular a leitura do artigo quando o está bem votado, e ao mesmo tempo colocar um botão para ser votado também. Porém se um post não é bem votado, apresentar um botão indicando nota 1 ou 2 fica estranho. Para evitar isso eu fiz um pequeno acréscimo no código para que ele só apresente nos posts que me interessam.

Para usar o widget modificado é necessário acrescentar o código abaixo em seu template:
<?php $lista = get_post_custom_values("rec6");
$valor=$lista[0];

if ($valor == "ok"){ ?>
<div style="float:left;">
<script language="JavaScript" src="http://rec6.via6.com/link.php?action=widget&url=<?php the_permalink(); ?>" type="text/javascript"></script></div>
<?php } ?>

Este código apresentará a votação como neste post. No meu caso eu coloquei ao lado do título do artigo, mas é de sua escolha o local onde vai estar.

Depois disso, todos os posts do seu blog que queira apresentar o widget você deve definir um “custon field” “rec6″ com o valor “ok” conforme a figura abaixo:

Clique para Ampliar

Pronto. Os posts que não quizer o widget é só não acrescentar o “custon field” acima.

Modificando o código facilmente é possível inverter deixando por padrão todos os posts com o widget, e determinar com o custon fields somente os que não terão. Mas esta fica por sua conta!

Já li em diversos blogs que não é recomendado enviar todos os post para estes Diggs nacionais. O bom senso me diz que isso é verdade. Com esta ferramenta simples que fiz posso divulgar em meu blog os posts que vão bem no Rec6, sem precisar mostrar que outros posts não vão tão bem assim!

Na verdade o uso de custon fields como neste código que escrevi permite customizar qualquer ítem determinado por variáveis definidas no momento da escrita do post.

O código está disponível para você fazer o mesmo no seu blog, só não esqueça das referências.

Terceira Aula: Classificando o conteúdo

sábado, 23 de junho de 2007
.!.

Sejam bem vindos, esta é a terceira aula de Programação Web em Java, para saber mais sobre o curso, comece em Curso de Programação Web em Java – CPWJ

Na última aula estudamos como montar uma página Xhtml de acordo com o Web Standard. Hoje vamos ver o que podemos colocar no body, isso é, o que é permitido fazer no conteúdo da página.

>>>>Parênteses >>>>>>>>

Amigo Web Designer presente no curso: fique atento. Estamos utilizando o padrão Web, ou Web Standard. Existem muitas vantagens em utilizar o padrão diante de todos os recursos despadronizados presentes nos navegadores mais utilizados pelo mercado. A principal é a facilidade de portar o código para vários outros navegadores mais simples, como os presentes em celulares, e outros equipamentos. Falaremos também sobre Tableless, pode começar lendo um FAQ.As regras de utilização de xHTML de acordo com o padrão é muito mais restrita. Então atenção aos detalhes.

<<<< Fecha parênteses <<<<

Voltando ao conteúdo. Em primeiro lugar, os tags permitidas no bloco body tem por objetivo indicar o tipo de informação ali colocada. Repetindo: explicar o tipo da informação.

Desde a versão 4.01 do HTML a aparência não é objetivo do HTML. Então esqueçam da aparência do documento neste momento. O que vamos fazer no (x)HTML é indicar o que é um bloco de texto de forma semântica. Para aparência usaremos CSS.

Um bloco de texto na página Html pode ser uma porção de coisas:

  • Um parágrafo
  • Um título
  • Uma lista, ou um ítem de uma lista
  • Uma citação
  • Um endereço
  • Código de programação
  • Texto predefinido
  • Texto enfatizado
  • etc.

Observe novamente, todos estes indicadores são nomes de coisas lógicas em uma página html. Não indicam nunca a aparência. É claro que uma lista na sua cabeça tem uma determinada aparência. Mas em Xhtml indicar que um bloco de texto é uma lista, tem exatamente este objetivo: indicar que é uma lista. A aparência é conseqüência.

Vamos começar com as coisas simples.

Parágrafos

Em xHtml todo o texto corrido como este que estou escrevendo deve ser delimitado com o tag ‘p’. Desta maneira:
<p>Este é o primeiro parágrafo. Veja que uma frase na mesma linha não deve ser delimitada. Um parágrafo é diferente de uma frase, ok?</p>

<p>Veja que este é o segundo parágrafo. A aparência padrão de parágrafos já coloca um pequeno espaço entre parágrafos. Isso é configurável via CSS, aliás toda a aparência é.</p>

Títulos

As páginas Web são recheadas de títulos. Como estes títulos aí em cima: “Parágrafo”, “Títulos”, “Terceira Aula: Classificando o conteúdo”. Observe que existem títulos e subtítulos. No caso deste artigo, “Parágrafo” é um subtítulo de “Terceira Aula….”

Para permitir a construção de títulos e subtítulos o xHtml permite a utilização de até 6 níveis de títulos: ‘h1′, ‘h2′, ‘h3′, ‘h4′, ‘h5′ e ‘h6′. O nível 1 é para os títulos mais importantes da página e ou os outros devem ser usados para caracterizar subtítulos.

Neste site Tecnoclasta (http://www.tecnoclasta.com), por exemplo, o nome do site no topo da página tem título de nível 1: <h1>Tecnoclasta</h1>, os títulos dos artigos tem título de nível 2: <h2>Terceira Aula: Classificando o conteúdo</h2>, os títulos das sessões a direita, nível 3: <h3>Assine Tecnoclasta</h3>, e por fim os subtítulos dentro de um artigo tem nível 4: <h4>Parágrafos</h4>.

Observe que a hierarquia de títulos é construída de acordo com a importância relativa de cada uma das informações, não tem nenhuma relação com aparência. De novo: esqueça a aparência por enquanto.

Listas

Outro tipo de informação comum em uma página web são as listas. Listas existem dois tipos: numeradas e não-numeradas. As lista não numeradas usam dois tags ‘ul’ (unordered list) e ‘li’ (list item), respectivamente para delimitar a lista, e o ítem da lista. Para cada ítem da lista ele coloca um marcador, que pode ser uma seta ou bolinha. Assim:

<ul> use este para o ínício

<li>primeiro item da lista</li>
<li>segundo item da lista</li>
<li>terceiro item da lista</li>

</ul> e este para o fim da lista

Resultado:

  • primeiro item da lista
  • segundo item da lista
  • terceiro item da lista

As listas numeradas automaticamente incluem números antes de cada ítem da lista. Funcionam igual a lista não-numerada. No exemplo anterior trocando ‘ul’ por ‘ol’ (ordered list) obteríamos:

  1. primeiro item da lista
  2. segundo item da lista
  3. terceiro item da lista

Não é necessário digitar os números.

Listas de Definição

Em várias situações precisamos construir uma lista de definições, como num dicionário. Em uma lista de definições nós temos os termos a serem definidos e temos cada uma de suas definições. Para construir uma lista de definição temos 3 tags:

‘dl’
De definition list, delimita o início e fim da lista
‘dt’
Delimita cada um dos termos da lista
‘dd’
Delimita cada defininição da lista

A própria lista acima foi construída em forma de lista de definição. Veja o código:

<dl>
<dt>’dl’</dt><dd>De definition list, delimita o início e fim da lista</dd>
<dt>’dt’</dt><dd>Delimita cada um dos termos da lista</dd>
<dt>’dd’</dt><dd>Delimita cada defininição da lista</dd>
</dl>

Endereços

Indicar o endereço de um local:

<address>Este é meu endereço</address>

Citações

Quando citamos o texto de um livro, site ou mesmo uma frase de outro autor utilizamos a tag ‘cite’: <cite>Ser ou não ser, eis a questão.</cite>

Uma segunda maneira de fazer citações é utilizar o tag ‘q’ de quotation ou cotação. Este tag automaticamente <q>”coloca um texto entre aspas”</q>. Porém não é reconhecido pelo Internet Explorer (os testes do aluno Fábio Costa nem no IE7 funciona. Testes do aluno Cristian indicaram que no Ie8 está ok). Portanto dê preferência ao ‘cite’ e ao ‘blockquote’.

Para blocos de citações mais longas com parágrafos inteiros temos ainda o tag ‘blockquote’. Observe que ele exige um ou mais blocos dentro:

<blockquote><p>Esta citação inclue mais de um parágrafo</p>
<p>Este é o segundo parágrafo da citação</p></blockquote>

Sem os tags ‘p’ dentro do blockquote o código não é validado.

Para os tags ‘blockquote’ e ‘q’ é opcional indicar quem é o autor da citação. Use o parâmetro ‘cite’:
<q cite=”Einstein”>A velocidade da luz é igual para todos os referenciais inerciais.</q>

O texto em ‘cite’ não é mostrado, mas fica armazenado para o robô dos sistemas de busca.

Código

Código de programação é um dos tipos de informação mais comuns em sites. Este site mesmo está repleto de códigos. Para indicar que algo é código temos o tag ‘code’:
<code>
for(i=0;i<10;i++){
System.out.println('contar até 10: '+i);
}
</code>

Ênfase e ênfase forte

Para destacar uma frase ou palavra no meio de um parágrafo temos duas opções: utilizar de ênfase ou de ênfase forte. Os tags são, respectivamente, ‘em’ e ‘strong’:

<p>Isso é um parágrafo. Isso é <em>importante e deve ser destacado</em>. No entanto isso é <strong>ainda mais importante e deve ser ainda mais destacado.</strong></p>

Observe que a aparência padrão para ‘em’ é o itálico e ‘strong’ é o negrito. Mas isso é o padrão e podem ser modificados via CSS. Textos enfatizados devem fazer parte de um parágrafo, ou outro tipo de bloco, como code, cite, etc.

Texto pré-tabulado

Para entender este ‘tag’, temos que aprender a forma que o navegador lida com espaços, enter e tabs. Estes caracteres são descartados, desprezados pelos navegadores e substituídos por um espaço. Assim uma porção de espaços, tabs e enters, viram um espaço:

Uma tabela digitada assim (pontos são espaços):

Nome……..n1……n2……média<enter>
José……….4,0…..5,0….4,5<enter>

Seria apresentada pelo navegador assim:

Nome.n2.n2.média.José.4,0.5,0.4,5

Para colocar textos com tabulação definida por espaços, utilizamos o tag ‘pre’. Exemplo:

<pre>
nome……..n1……n2……média<enter>
José……….4,0…..5,0….4,5
</pre>

Desta maneira iria funcionar conforme o esperado. Isso é, com os espaços e retorno de linha apresentados.

Sobrescrito e Subscrito

Para textos subscritos (subscribed) e sobrescritos (supercribed), temos respectivamente os tags ‘sub’ e ‘sup’:

H<sub>2</sub>SO<sub>4</sub> : H2S04.
a<sup>2</sup>= b<sup>2</sup>+c<sup>2</sup> : a2=b2+c2

Por hoje é só. Na próxima aula vamos lidar com links, tabelas e blocos, e por incrível que pareça iremos terminar XHTML. Formulários vai ficar para um momento mais adequado do curso. (quando vermos javascript).

Quero lembrar que o curso não tem intenção de esgotar o assunto com todos os detalhes, mas dar o pontapé inicial, e indicar material para aprofundamento. Fazer o básico bem feito, para conseguir acompanhar o vasto material disponível na net, esta é a visão.

Exercitando

  • Para exercitar a matéria apresentada, vamos treinar a codificação copiando todo o conteúdo deste artigo para um editor de texto comum e montando uma página Xhtml. Esqueça por enquanto os links. Validar no validator do W3C.
  • Se você tem algum site de sua autoria, refaça uma das páginas utilizando unicamente os tags apresentados nesta aula, e outros definidos nos dois links apresentados em aprofundando. Valide.

Aprofundando

Estudar o padrão do W3c:

Cuidado: não considerar os tags e atributos marcados como DEPRECATED.

Dúvidas? vá para o fórum.

Procure os mais baratos Livros sobre a Web, Livros sobre Java, Livros HTML ou Livros JSP nas melhores lojas do Brasil.

1

Segunda Aula: Página mínima XHTML

segunda-feira, 11 de junho de 2007
.!.

Sejam bem vindos, esta é a segunda aula de Programação Web em Java, para saber mais sobre o curso, começe em Curso de Programação Web
O conteúdo da Web precisa estar codificado segundo um padrão. A partir da aula de hoje vamos estudar o padrão mais atual para codificação Web: o XHTML.

killshot divx

Este é um documento mínimo codificado em Xhtml 1.0 padrão:

<!DOCTYPE html
      PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br">
  <head>
  <title>Um título</title>
 <meta http-equiv="Content-Type"  content="text/html; charset=iso-8859-1" />
  </head>
  <body>
 </body>
 </html>

Vamos analisar as partes importantes:

1, 2, 3 doctype: indica a versão do padrão que estará utilizando. Existem várias possibilidades como Html4.1 transactional, strict e frameset, Xhtml1.0 transactional, strict e frameset e outros. No nosso caso usaremos o padrão Xhtml Strict 1.0. Teremos uma aula só para conhecer os outros padrões.

4 e 11 html: download toy story marcador (tag) que indica o início efetivo da página html. As propriedades xml:lang e lang indicam a língua em que o documento está escrito. Use “pt-br” para português do Brasil. “en” para inglês.

5 e 8 head: bloco de cabeçalho. Dentro deste bloco iremos colocar as informações importantes sobre a página. Estes dados ajudarão os navegadores montarem o conteúdo de maneira que foi planejada pelo programador. E os motores de busca do google e outros obter informações para posicionar sua página corretamente. Os conteúdos colocados aqui não serão mostrados diretamente na página do navegador.

6 title: títudo da página. Texto que será colocada na barra de título do navegador e usada pelos motores dos buscadores para nomear o conteúdo de sua página.

7 meta content-type: indica detalhes de codificação de caracter para o navegador.

9 e 10 body: corpo ou conteúdo da página. Tudo que você quizer mostrar na área principal do navegador estará dentro deste bloco.

Todos os ítens apresentados são obrigatórios em uma página Xhtml padrão.

Exemplo Prático

Vamos fazer um exemplo prático que realmente funciona?
Para isso utilize um editor de texto simples: gedit, kedit, bloco de notas, vi, etc. No exemplo falta preencher alguma coisa dentro do bloco body:

... (todo o cabeçalho igual ao exemplo acima)
<body>
<p>Olá Mundo! Esta é minha primeira página XHTML padronizada e funcional.</p>
</body>
</html>

Salve o documento com extensão *.html. E pronto.
-Tag <p> delimita um parágrafo do documento. Cada um dos parágrafos devem ser delimitados individualmente.

Para ver como ficou sua primeira página abrir o arquivo com os navegadores Firefox e Ie:

Ie:

Arquivo/Abrir/Procurar…
Localizar o arquivo criado e clicar Abrir.

Firefox:

Arquivo/Abrir Arquivo…
Localizar o arquivo criado e clicar Abrir.

Para ambos existe um atalho de teclado: CTRL+O. (que funciona melhor no Firefox)

Você deverá ver no navegador o texto digitado entre os tags <p> e </p>. Nossos exercícios em xhtml serão todos testados desta maneira.

Para verificar se você seguiu corretamente o padrão, existe uma ferramenta online que faz o teste de conformidade. Entre em validator.w3.org selecione o seu arquivo e clique em “Check”. Se tudo estiver certo verá a mensagem “Congratulations”. No caso de erro o sistema apresenta o que você fez de errado. Corrija o que ele pediu e tente novamente.
Guarde o endereço do “Validator” no seu favoritos. Será necessário durante todo o curso.

Algumas regras para conseguir a validação:
- Os caracteres maiúsculos e minúsculos são obrigatoriamente como apresentados. (HTML <> html)
- Cuidado com o final do tag meta: …harset=iso-8859-1″ /> Observe que depois das aspas usamos espaço, barra e maior. O espaço é obrigatório.
- Cuidado ao usar o Ctrl+c e Ctrl+v do navegador: verifique que todas as aspas ” estão trocadas por aspas inglesas. Apague e use a aspa dupla que fica próxima ao número 1 do teclado. Recomendo pelo menos uma vez você mesmo digitar todo o código para se acostumar. Isso ajuda muito na memorização.
- Todo o resto é obrigatório.

Dúvidas até aqui? Corra para o fórum. (eu estarei lá somente terça, mas tem os moderadores)

Mais dados no cabeçalho.

No cabeçalho ou Head podemos colocar uma série de informações sobre o documento. Com estes dados o navegador e os sistemas de busca podem entender melhor o conteúdo do documento. O título do documento é a principal informação do cabeçalho. Porém com o tag meta podemos definir uma série de outras informações úteis:

<meta name=”author” content=”Prof. Luís Eduardo” /> O autor do documento.
<meta name=”copyright” content=”© 1996 Indústria Ltda ” /> Questões de copyright
<meta name=”keywords” content=”trabalho,mudanças,java” /> Importantíssimo: palavras chave para o motor de busca do Google e Yahoo.
<meta name=”date” content=”1994-11-06T08:49:37+00:00″ /> Data de criação formatada conforme orientador [RFC2616 sessão 3.3]

<meta name=”description” content=”Roteiro da Aula número 2″ /> Descrição do conteúdo da página
… você utiliza outra meta que julga importante? divulgue no fórum.

>>> Corrigido: a meta keywords é no plural.

Exercícios:

  • Monte uma página completa e validada no W3.org com o conteúdo pedido na última aula.
  • Caso tenha alguma página html de sua autoria que esteja fora do padrão Xhtml, identifique os problemas usando o validador e corrija o cabeçalho. (Apague o conteúdo todo antes de tentar validar. Corrigir o conteúdo fica para outra aula, ok?)
  • Faça o mesmo com uma página de algum site famoso. (que tal o Tecnoclasta?)

Aprofundando:

Para a próxima aula:

  • Planeje um texto bem completo com títulos, tabelas, listas. Vamos fazer tudo isso semana que vem. Ainda não escreva código html. Faremos após a próxima aula.

Procure os mais baratos Livros sobre a Web, Livros sobre Java, Livros HTML ou Livros JSP nas melhores lojas do Brasil.