Bom vamos lá com mais um pouquinho de HTML5, nesse pequeno post pretendo demonstrar através de um simples formulário de contato algumas das facilidades que o HTML5  proporciona ao desenvolvedor, é óbvio que coisas muito mais interessantes estão por vir, algumas já estão aí, mas não funcionam corretamente na maioria dos browsers e suas diversas versões.
Um dos principais objetivos do HTML5 é facilitar o desenvolvimento, disponibilizar mais recursos e evitar a necessidade de inserção de scripts e códigos avulsos.
Para uma pequena demonstração vou utilizar um simples formulário de contato (muito utilizado em websites) contendo os campos: Nome, E-mail e Comentário. Para esse caso todos os campos são de preenchimento obrigatório e o campo e-mail precisa ter um sintaxe válida. 
A validação de todos esses campos inclusive o campo e-mail será feita utilizando HTML5, os mais saudosistas podem até sentir falta da validação com Javascript, PHP, etc (sic). Mas o fato é que com HTML5 setando apenas algumas propriedades dos inputs, tudo isso se resolve, otimizando em muito o desenvolvimento.

Let's Code

Bom em primeiro lugar vamos definir a nossa página como HTML5,  utilizando a notação a seguir:
<!DOCTYPE HTML>
               <html  lang="pt-br">
     <head>
                <meta charset="UTF-8">
      <title>Contato HTML5-Validações Exemplo</title>
     </head>


Com a notação acima definimos a página como HTML5 : <!DOCTYPE HTML>
Definimos a linguagem que será utilizada : <html  lang="pt-br">
E também a codificação  de caracteres do documento: <meta charset="UTF-8">

Com isso já temos o suficiente para que nossa página possa ser executada com HTML5, no idioma e codificação de caracteres da nossa vontade.
Para definirmos os campos como obrigatórios basta definir a propriedade dos inputs required para true

                                                                                          required = "true"

Picture
Código HTML5 - Input required
Isso já é suficiente para tornar os campos de preenchimento obrigatório. Lembrando que com HTML5 a propriedade maxlenght também está disponível para os campos do tipo textarea.
Para a validação do campo e-mail a única mudança é em relação a definição do type do nosso input, com essa mudança o HTML5, já fará o trabalho de validação , ou seja, já sabe que ali é requerido um campo que contenha um endereço de e-mail válido ao menos quanto a sintaxe.

                                                                                                type = "email"
Picture
Código HTML5 - Input type email
Lembrando que cada navegador exibirá uma mensagem personalizada para a validação dos campos, essa mensagem também será exibida de acordo com o idioma utilizado no navegador que estiver acessando o formulário:
Picture
Formulário Contato - HTML5
Picture
Formulário Contato - HTML5 (Validando input Nome)
Picture
Formulário Contato - HTML5 (Validando sintaxe input e-mail)
Essas validações foram testadas nos navegadores Chrome, Mozilla Firefox, IE 9. Existem outros tipos de input como: date, datetime, number, search que facilitarão em muito o desenvolvimento, mas que ainda não são suportados por todos os navegadores. (Veja mais em: http://www.w3schools.com/html/html5_form_input_types.asp).
Segue abaixo o arquivo com o código para download:
contato.html
File Size: 1 kb
File Type: html
Download File

Bom é isso aí, um exemplo simples e prático, mas que pode facilitar em muito o dia a dia do desenvolvedor. Feito isso é só utilizar sua linguagem preferida para fazer o envio dos dados. Até a próxima.

Hands On!
Daniel Paulo de Assis
 
 
Esse post é um pequeno tutorial de como configurar o servidor de aplicações web Java  Apache Tomcat na IDE de desenvolvimento Eclipse, para esse exemplo foi utilizada a versão Helios da IDE e a versão 7.0 para o servidor Tomcat, mas provavelmente as dicas sitadas aqui funcionarão em outras versões da IDE e do Servidor Apache Tomcat, utilize conforme a sua necessidade.
Para acompanhar o tutorial é necessário a "instalação" da IDE Eclipse e do servidor Apache Tomcat:
Eclipse Download   (Eclipse IDE for Java EE Developers)
Tomcat Download  (Windows Service Installer  ou Windows zip) 32 ou 64 bits de acordo com o seu S.O.

Bom vamos lá, podemos dividir esse simples tutorial em 4 passos:

1ºPasso

Clique com o botão direito do mouse, na aba Servers  no menu Show View da IDE Eclipse, selecione
New -> Server, como na imagem abaixo, 

Caso essa aba não esteja disponível você pode exibi-lá através das do Menu: Window -> Show View -> Servers.
Picture

2ºPasso

Selecione uma das versões do servidor Apache Tomcat que serão exibidas na caixa de diálogo e clique em Next, lembrando que você pode  filtrar pelo nome do servidor para facilitar a busca. Para esse exemplo, foi escolhida a versão 7.0 do Apache Tomcat, segue exemplo  abaixo.
Picture

3º Passo

Feito isso será solicitado que você escolha o diretório de instalação do Apache Tomcat, você pode utilizar tanto a pasta de instalação no caso do Windows Service Installer ou a pasta onde extraiu os arquivos ou no caso de ter baixado o arquivo zip. Selecione o diretório e clique em Next. Segue imagem com exemplo.
Picture

4º Passo

Feito isso será exibido um diálogo com as opções para adicionar ou remover projetos, caso você ainda não tenha ou não deseje adicionar nenhum projeto é só clicar em Finish. Se deu tudo certo seu servidor Apache Tomcat, está pronto para ser utilizado.
Picture
Após concluída a configuração será exibido na aba Servers do Show View o novo servidor, clicando com o botão direito do mouse em cima do servidor algumas opções como: Start, Debug, Propriedades do servidor são exibidas como na imagem abaixo.
Picture
Prontinho é isso aí, tutorialzinho rápido e simples, espero que possa ajudar alguém que precise, até a próxima.

Hands On!
Daniel Paulo de Assis
 
 
 Imagem
Já ouviu falar em Geolocalização? Talvez você não tenha ouvido falar do termo em si, mas provavelmente você utiliza a geolocalização mais do que imagina. Ela está presente no seu dia a dia, quando você utiliza o GPS, faz um check-in em uma rede social ou traça uma rota em um mapa partindo do ponto onde você está. Resumindo, a geolocalização é uma maneira de mostrar aonde você se encontra no planeta terra(rs) através da latitude e longitude. É interessante e ao mesmo tempo assustador pois isso envolve uma questão muito interessante, a nossa privacidade. É óbvio que os navegadores e outros dispositivos que utilizam a geolocalização sempre questionam o usuário sobre a ativação do recurso ou compartilhamento da informação. Vamos entender um pouco mais sobre as técnicas que tornam possíveis a utilização desse recurso fantástico.

Métodos de Geolocalização

Há três  maneiras populares de um agente de usuário descobrir sua posição no globo:
  1. Geolocalização IP:
    É o método usado pela maioria dos navegadores web em computadores. Através de consultas whois e serviços de localização de IP, vai determinar a cidade ou região em que você está.
  2. Triangulação GPRS:
     Dispositivos conectados a uma rede de celulares e sem um GPS, ou com o GPS desligado, podem determinar sua posição pela triângulação das antenas GPRS próximas. É bem mais preciso que o método baseado em IP, vai mostrar em que parte do bairro você está.
  3. GPS:
    É o método mais preciso. Em condições ideais, a margem de erro é de apenas 5 metros.

    Embora essas sejam as três maneiras mais populares de se resolver o problema, podem não ser as únicas. Alguns agentes de usuário podem usar uma combinação desses métodos, ou mesmo um novo método que venha a ser inventado. Por isso, a Geolocation API é agnóstica em relação ao método usado. Há apenas uma maneira de ligar e desligar o "modo de alta precisão", o que vai ter significado diferente em cada agente de usuário.(
    GEOLOCATION API - Métodos de Localização)
Para não ficar só na teoria, nesse post vou disponibilizar um pequeno exemplo que utiliza a Geolocation API (HTML5) em conjunto com a Google Maps API, para exibir a localização no mapa através de um marker(marcador).

Vamos por em prática

O uso da API é extremante simples e o código é executado em Javascript. Para obter a posição precisamos basicamente executar o seguinte script:

navigator.geolocation.getCurrentPosition();

Então vamos criar a função (Javascript) para a fazer a chamada ao método da API:

function getLocation(){
          navigator.geolocation.getCurrentPosition();

}

Para detectar se o dispositivo que faz a chamada dá suporte a API incluímos o seguinte trecho ao código:

function getLocation(){
       if(navigator.geolocation){

             navigator.geolocation.getCurrentPosition();


       }else{
            alert("Geolocalização não é suportada por esse dispositivo");
      }
}

Bom, mas com esse trecho de código ainda não conseguimos obter a latitude e longitude, para que isso aconteça precisamos conhecer os parâmetros que são passados ao método da API para posterior  recuperação das coordenadas:

 navigator.geolocation.getCurrentPosition(showPosition,getError, true or false);

Onde showPosition é o método que vai recuperar a latitude e longitude. Esse método recebe um parâmetro position que será responsável pela recuperação das  nossas coordenas como no exemplo abaixo. Simples assim:

function showPosition(position){

     
var latitude = position.coords.latitude;
     
var longitude = position.coords.longitude;
}



O método getError é opcional, porém importante, através dele podemos tratar os erros e também o feedback do usuário, caso por exemplo ele não aceite compartilhar as informações, recuperaremos essa informação através desse método. 

function getError(erro) {
     if (
erro.PERMISSION_DENIED) {
         alert('Usuário não aceitou compartilhar sua localização');
     }
}


Esse método recebe um parâmetro que pode ser uma das seguintes constantes:
  • PERMISSION_DENIED: usuário negou acesso as informações
  • POSITION_UNAVAILABLE: posição indisponível
  • TIMEOUT: tempo limite esgotado
  • UNKNOWN_ERROR: erro desconhecido ou inesperado

O exemplo exibe  uma função  alert para tratar o erro, mas pondere os avisos e notifique o usuário somente se necessário. Avisos demasiados podem incomodar, se ele não aceitou compartilhar suas informações talvez não haja a necessidade de avisá-lo sobre isso.

O 3º e último parâmetro recebido por getCurrentPosition() também é opcional: enableHighAccuracy,  pode receber valores true ou false, caso seja definida como true e o dispositivo disponha de um GPS então poderemos obter uma localização mais precisa. 

Bom, com isso e um pouco de conhecimento em desenvolvimento você pode usar a criatividade e fazer um bom proveito da API. Os navegadores que suportam a Geolocation API são: Internet Explorer 9+, Firefox, Chrome, Safari e Opera.

Exemplo

O exemplo disponibilizado a seguir é uma página html que exibe a latitude, longitude e um marcador em um mapa da Google Maps API de acordo com as coordenadas recuperadas. Para que o exemplo funcione corretamente é necessário que a página seja executada em um servidor web(IIS, Tomcat, Apache)  e que se tenha acesso a internet. Lembrando que de acordo com o método de Geolocalização utilizado, a localização pode não ser tão precisa. Ao executar o exemplo clicando no botão Localizar você será questionado se deseja disponibilizar a sua localização. Ressaltando que cada dispositivo ou navegador exibirá uma mensagem personalizada.
Página de Exemplo - Geolocation API e Google Maps API
Página de Exemplo - Geolocation API e Google Maps API
Como o foco é a API de Geolocalização, a explicação sobre os métodos da API Google Maps ficaram para outro post. Segue abaixo o arquivo para da download do arquivo com o código de exemplo. O código está bem comentado é bem simples e  objetivo.  
geolocation.html
File Size: 3 kb
File Type: html
Download File

Quer saber um pouco mais sobre Geolocation API e HTML, segue as referências utilizadas para esse post:

Bom é isso aí, até a próxima se Deus quiser.

Hands On!
Daniel Paulo de Assis
 

HTML5

29/07/2013

0 Comments

 
Desenvolvedor Web? Acostumado a lidar com código HTML(Hypertext Markup Language),disponibilizar conteúdo multimídia (fotos, vídeos, áudio, etc), fazer validações em campos, formulários, enfim, rotinas básicas de um desenvolvedor Web. Já ouviu falar de HTML5 ? Bom, então vamos lá, tentar descrever de maneira resumida e com base em fontes confiáveis o que é o HTML5 e quais as melhorias e o impacto desse novo padrão para o desenvolvimento Web.
 Imagem
De acordo com o W3C (http://www.w3.org/)  a Web é baseada em 3 pilares:
  • Um esquema de nomes para localização de fontes de informação na Web, esse esquema chama-se URI.
  • Um Protocolo de acesso para acessar estas fontes, hoje o HTTP.
  • Uma linguagem de Hypertexto, para a fácil navegação entre as fontes de informação: o HTML.
É necessário que se fale um pouco sobre a história do HTML para que possamos entender o que é e o porquê do HTML5 existir, então vamos lá:

HTML (Breve resumo...)
OHTML  foi desenvolvido por Tim Berners-Lee e ganhou popularidade na década de 90, desde o princípio o HTML foi criado com o objetivo de ser uma linguagem que fosse independente de navegadores, S.O's e que tornasse acessível as informações publicadas através dessa linguagem  a outros dispositivos com características diferentes, como por exemplo tamanho de tela, resolução, etc. 

Entre 1993 e 1995, o HTML ganhou as versões HTML+, HTML2.0 e HTML3.0, onde foram propostas diversas mudanças para enriquecer as possibilidades da linguagem. Contudo, até aqui o HTML ainda não era tratado como um padrão.( O começo e a interoperabilidade )

Quando o HTML4 foi lançado, o W3C alertou os desenvolvedores sobre algumas boas práticas que deveriam ser seguidas ao produzir códigos client-side (códigos que são executados no computador do usuário e não no servidor).
Contudo, o HTML4 ainda não trazia diferencial real para a semântica do código. o HTML4 também não facilitava a manipulação dos elementos via Javascript ou CSS.(O HTML5 e suas mudanças)

Pequenos ou grandes problemas de execução de código em diferentes navegadores se tornam cada vez mais frequentes , e a medida que novos navegadores surgem, a tendência é que a situação saia do controle caso não exista um padrão a ser seguido  e uma linguagem que permita fácil inserção de códigos adicionais que facilitam a vida do desenvolvedor web como scripts, por exemplo.
É muito comum encontrar websites que funcionam corretamente no navegador A, mas que encontram problemas no navegador B e C, se esta situação é complicada para os usuários finais(perdem o direito de escolha do navegador preferido)  imagine para os desenvolvedores que são obrigados a escrever páginas e  scripts e realizarem teste e mais testes para ter a certeza que vão funcionar corretamente em todos os navegadores. Pois é...

WHAT Working Group (WHATWG)
Descontentes com o rumo  que as coisas tomavam, um grupo formado por desenvolvedores de empresas como Mozilla, Apple e Opera fundaram o Web Hypertext Application Technology Working Group ou WHATWG e se uniram para escrever o HTML5.
Em Outubro de 2006, Tim Berners-Lee anunciou que trabalharia juntamente com o WHATWG na produção do HTML5, o que só aumentou a credibilidade do projeto.

HTML5 ( O que é exatamente?)
O HTML5 é a nova versão do HTML4 e veio com o objetivo de se padronizar a maneira como os desenvolvedores escrevem código e organizam as informações dentro da página.

HTML5 será o novo padrão para HTML., a versão anterior do HTML, HTML 4.01, veio em 1999 e a web mudou muito desde então.
HTML5 é um trabalho que ainda está em progresso, no entanto, os principais navegadores suportam muitos dos novos elementos do HTML5 .(What is HTML5?)

Um dos principais objetivos do HTML5 é facilitar a manipulação do elemento possibilitando o desenvolvedor a modificar as características dos objetos de forma não intrusiva e de maneira que seja transparente para o usuário final.(O que é o HTML5?).

Entre as principais mudanças e características do HTML5 estão:

  • ferramentas para a CSS e o Javascript ;
  • recursos que facilitam a disponibilização de conteúdo multimídia;
  • criação de seções comuns e específicas como rodapé, cabeçalho, sidebar, menus;
  • recursos para construção de formulários, controles como calendário, email (validações mais básicas prontas);
  • mais interatividade sem a necessidade de instalação de plugins e perda de performance;
  • código interoperável, pronto para futuros dispositivos e que facilita a reutilização da informação de diversas formas.
O HTML5 ainda não é um padrão oficial e nem todos os navegadores fornecem suporte completo a todas as funcionalidades, porém a maioria dos navegadores como Safari, Chrome, Firefox, Opera, Internet Explorer estão adicionando mais recursos do HTML5 a suas novas versões.
O WHATWG tem mantido o foco para  que nenhum site desenvolvido anteriormente tenha que ser totalmente refeito para se adequar aos novos padrões e, ao mesmo que o HTML5  seja compatível com os navegadores mais recentes.
Segue abaixo um documento HMTL5 com as TAGS mínimas requeridas :
<!DOCTYPE html>
<html>
    <head>
        <title>Título do documento</title>
   </head>

   <body>
        O conteúdo do documento......
   </body>

</html>

-------------------------------------------------------------------
Adaptado http://www.w3schools.com/html/html5_intro.asp
Caso tenha interesse em se aprofundar mais no assunto, utilize os links com as referências desse post ou se inscreva no curso da Microsoft Virtual Academy e saiba um pouco mais sobre o assunto: 
http://www.microsoftvirtualacademy.com/training-courses/html5-homologado-pelo-w3c
Bom é isso aí até a próxima, provavelmente com algum exemplo na prática sobre HTML5.

Hands On!
Daniel Paulo de Assis
 
 
Esse post tem como objetivo tentar compartilhar algumas dicas simples que podem facilitar em muito a vida do "programmer", para projetos grandes ou pequenos algumas coisas nunca mudam.
 Imagem
Créditos da imagem: http://devcv.me/2013/07/i-am-going-to-run-it/
Bom é isso mesmo, pequenas atitudes podem fazer a diferença e evitar que  a sua cabeça  esquente desnecessariamente durante um projeto, é óbvio que algumas dicas que darei aqui podem não ser  úteis se você trabalha em uma empresa que possui suas regras e particularidades, mas  acho que surtirá grande efeito se você é desenvolve projetos pessoais, acadêmicos ou trabalha em uma empresa onde você tem liberdade para definir sua maneira de trabalhar.

Então vamos começar, algumas dicas podem parecer óbvias mas muitas vezes "esquecemos" de por em prática:

  1. Nunca comece um projeto(por menor que seja) sem a documentação mínima, isso inclui os diagramas básicos como: Casos de Uso, Entidade-Relacionamento, especificações entre outros, acredite vai fazer falta;
  2. Crie um diretório(pasta) para o projeto e salve ali tudo que tiver relação com o projeto, crie subdiretórios separando os arquivos por categoria e data;
  3.  Se possível trabalhe com linguagem de programação e ferramentas conhecidas (IDE's, SGBD), o domínio desses itens vai trazer um ganho de tempo considerável, aprender durante o projeto pode não ser uma experiência  agradável;
  4. Faça cópias de segurança(backups) do código, base de dados. bibliotecas e documentação em um drive online, existem vários free com uma capacidade de armazenamento considerável como :

    Google Drive 
    SkyDrive
    DropBox

     Lembre-se de adicionar data aos arquivos isso facilitará a busca no caso de uma recuperação.

  5. Anotações nunca são demais, mantenha uma espécie de diário do projeto, anote possíveis alterações no código, correções de erros, check-list de itens concluídos. Seu arquivo de anotações pode ser digital ou não, muitos desenvolvedores preferem o papel para colocar idéias, esboços e anotações em prática;

  6. Não economize comentários no código, eles te ajudarão ou ajudarão outros programadores em futuras manutenções, mas seja coerente não há necessidade de comentários em trechos "óbvios" do código;

  7. Mantenha seu código organizado e indentado, em muitos casos ele será visualizado e até mesmo editado por seus amigos de trabalho, a maioria das IDE's fornecem comandos que deixam o código em uma indentação padrão;
  8. A utilização de uma ferramenta de versionamento de código(Subversion, CVS, Maven) também otimizam o desenvolvimento, esteja você desenvolvendo sozinho ou em equipe.

Bom é isso aí no próximo post, volto com algo mais prático, afinal de conta "mão na massa" é o que interessa.

Hands On!
Daniel Paulo de Assis
 
 
Bom pra começar esse post se faz necessário uma breve introdução do que é XML, suas possíveis utilizações, seguindo a linhagem do blog, vou tentar resumir da melhor maneira possível sem muitos termos técnicos,pois o foco desse post é o desenvolvimento

XML (eXtensible Markup Language)

Como o próprio nome já diz XML é uma linguagem de marcação (que utiliza tags), se assemelha ao HTML por exemplo, o objetivo do XML é o transporte de dados  e não a exibição dos mesmos. 

XML pode ser utilizado em vários aspectos do desenvolvimento:
  • Armazenamento de Dados;
  • Parametrização e configuração de ambientes;
  • Web Services.
As tags XML não são predefinidas, o que isso quer dizer? 
Você pode criar as suas próprias tags de acordo com sua necessidade.

Mas a grande vantagem do XML é que através da sua padronização resolve o problema de incompatibilidade existentes no "mundo do desenvolvimento", isso mesmo, com o uso do XML, os desenvolvedores se tornam independentes de preocupações com hardware, software, S.O's e linguagens de programação.
Ex:
  "Um arquivo XML gerado em um S.O Windows  com a linguagem de programação C# (Sharp) pode facilmente ser interpretado em um S.O Linux com a linguagem de programação Java, para isso é necessário somente saber qual padrão esse arquivo foi gerado e será possível a recuperação dos dados"

Segue abaixo alguns links que podem ser interessantes para saber um pouco mais sobre XML:

http://www.w3.org/XML/

http://www.w3schools.com/xml/

Vamos ao desenvolvimento...

Para exemplo vou utilizar uma lib que facilita muita nossa vida para a manipulação XML, é a XSream, para esse caso específico estou usando xstream-1.3.1, mas para download no site nesta data já se encontra disponível a ver 1.4.4.
O  mais interessante dessa lib e desse exemplo é que o arquivo gerado  é criado a partir de um objeto Java, isso mesmo podemos trabalhar tranquilamente com o padrão de orientação a objetos, utilizando os métodos getters e setters para setar e recuperar valores e a XStream faz esse intermédio tornando as coisas muito mais fáceis.
Esse exemplo é o mais básico de todos, no site da XStream existem vários tutoriais passo a passo para diversas formas de utilização, nos próximos posts pretendo disponibilizar a manipulação de estruturas mais complexas como listas por exemplo.
Gerando o arquivo...

Esse pequeno trecho de códio já "transforma"  o nosso objeto do tipo pessoa (nome, idade) para o formato XML:

/** Instancia simples da classe XSTream **/
XStream xStream = new XStream();

/** Criando apelido para a classe que gerara o xml (opcional) **/
xStream.alias("Pessoa", Pessoa.class);

E com mais esse trecho de código geramos o arquivo em disco:

/** Criando o arquivo em disco **/
FileWriter file = new FileWriter("C:\\pessoa.xml", true);
file.write(xStream.toXML(pessoa));
file.close();



Lendo o arquivo...

Para a leitura do arquivo gerado em disco utilizamos o código a seguir:

/**
* Instanciando objeto da Classe XStream(DomDriver é utilizado para o
* fazer o parse sem a necessidade de add novas libs
**/

XStream xStream = new XStream(new DomDriver());

/** Lendo o arquivo em disco **/
File file = new File("C:\\pessoa.xml");
FileInputStream input = new FileInputStream(file);

xStream.alias("Pessoa", Pessoa.class);

/** Fazendo o cast para o tipo de objeto Pessoa **/
Pessoa xml = (Pessoa) xStream.fromXML(input);

/** Imprimindo o resultado no console **/
System.out.println("Nome  :" + xml.getNome());
System.out.println("Idade :" + xml.getIdade());


Basicamente é isso aí, segue abaixo os arquivos para download da lib (Xstream.1.3.1) e do projeto (Eclipse).
xstream-1.3.1.jar
File Size: 431 kb
File Type: jar
Download File

xmlcreation.zip
File Size: 5 kb
File Type: zip
Download File

Até a próxima.

Hands On!
Daniel Paulo de Assis
 
 
Bom, de volta com mais um post que acredito que pode ser muito útil,  o envio de e-mail. Dentro de uma aplicação muitas vezes existe a necessidade de se fazer o envio de um e-mail, como por exemplo:
  • envio de usuário e senha;
  • alteração de usuário e senha;
  • formulário de contato;
  • suporte da aplicação.

Esse exemplo utiliza a linguagem de programação Java e faz uso da lib (mail.jar), que facilita em muito o nosso trabalho, nos próximos posts pretendo disponibilizar também um exemplo de envio de email com PHP. Pra esse caso utilizei as configurações de Servidor para emails do Hotmail, mas essa configuração pode ser alterada editando o servidor SMTP e a porta de acordo com o servidor utilizado. Com essa configuração o envio do email se restringe a remetentes que utilizem o smtp (smtp.live.com) e a porta (587), mas os e-mails podem ser disparados para outros tipos de conta  como (gmail, yahoo, etc)
A seguir o download da lib (mail.jar) e do projeto de exemplo (Netbeans), espero que seja bastante útil.
mail.jar
File Size: 507 kb
File Type: jar
Download File

enviaemail.rar
File Size: 12 kb
File Type: rar
Download File

Bom é isso aí, até a próxima.

Hands On!
Daniel Paulo de Assis
 
 
Se você está começando a desenvolver em algum momento já se deparou  ou vai se deparar com um arquivo com a extensão ".properties", para quem desenvolve há algum tempo esse é um arquivo comum e que facilita em muito a vida do "desenvolvedor", o arquivo properties pode ter muitas funcionalidades dentro de uma aplicação, como por exemplo : 
  • parametrização de consultas sql,
  • permissões dentro do sistema,
  • variáveis de conexão,
  • internacionalização, etc...

Nesse post vou falar, como nos outros posts em uma linguagem não muito técnica  e sim simples e objetiva.

O arquivo properties é composto basicamente de duas partes:

   Key ou Chave 
   Value ou Valor


Onde a chave pode ser considerada a modo grosso uma parâmetro que receberá um valor como no exemplo abaixo:

Chave          Valor
user      =   admin
senha   =   admin123

Utilizando os métodos da Classe Properties é possível manipular esses arquivos, lendo, editando e salvando as propriedades conforme a necessidade. IDE's de desenvolvimento como Eclipse e Netbeans já possuem o arquivo properties incluídos em nos tipos padrões de arquivos que podem ser criados. Lembrando que os arquivos "properties" podem estar dentro ou fora da sua aplicação (Web ou Desktop) de acordo com sua necessidade. Se você pretende efetuar alterações no arquivo em tempo de execução ele deve ficar externo ao seu .jar. 
 
O exemplo que vou disponibilizar nesse post foi desenvolvido na IDE Netbeans, não é um exemplo Web mas pode ser adaptado conforme a necessidade.

Nesse projeto de exemplo existem quatro métodos:
  •  readPropertiesInterno: (Lê um arquivo properties dentro do contexto do projeto)
  • readPropertiesExterno: (Lê um arquivo properties fora do contexto do projeto)
  • writePropertiesInterno: (Edita um arquivo properties dentro do contexto do projeto)
  • writePropertiesExterno: (Edita um arquivo properties fora do contexto do projeto)

Para a leitura externa o arquivo deve estar em um caminho que coincida com o mesmo relacionado no projeto.

Bom segue abaixo arquivo com o projeto para download, se puder ajudar de alguma forma estou à disposição.

manipulaproperties.rar
File Size: 13 kb
File Type: rar
Download File

O arquivo login.properties encontra-se dentro da pasta files do projeto, para executar os métodos basta retirar os comentários dos métodos dentro da classe Main.

É isso aí até a próxima.

Hands On!
Daniel Paulo de Assis
 
 
Precisando da Tabela FIPE?

Só quem já precisou dessa bendita tabela e não encontrou nada a respeito sabe do que eu estou falando, até onde sei  a Fundação FIPE não disponibiliza nenhum webservice ou algo do tipo que viabilize o acesso aos dados da tabela, até onde ouvi falar eles disponibilizam os dados mais por uma boa quantia, enfim... se você está precisando dos dados da tabela aqui vai uma ajudinha.

Procurando uma forma de acessar os dados da web encontrei algumas códigos e a maioria não funcionou como o esperado porém pesquisando um pouco mais encontrei um que deu certo: Link para o Site.
Nesse repositório estão todos os dados necessários para a recuperação da tabela FIPE e o autor explica passo a passo como fazer a utilização do código. Basta baixar dois arquivos : index.htm  e fipe.json  e você pode rodar no seu servidor web (rodei no Apache e funcionou), feito isso o arquivo fipe.json será populado com todos os dados da tabela.

Pronto? Não, é necessário fazer a leitura do arquivo fipe.json, no meu caso eu queria salvar os arquivos em uma base de dados para uso posterior então vou postar como fiz para transformar o arquivo no formato json em um banco de dados com as informações da tabela FIPE.

Caso não consigam baixar direto do site segue os arquivos index.htm e fipe.json:

fipe_json.rar
File Size: 291 kb
File Type: rar
Download File

Ok, criado o arquivo no formato json agora precisamos fazer a sua leitura, e ao mesmo tempo a inserção na base de dados, segue abaixo o download dos arquivos para  a criação da base de dados, tabelas, sequences, também existe um arquivo sql que faz a normalização do banco através de alguns inserts baseados na tabela base de veículos.  Só ressaltando o banco de dados usado para esse caso é o PostgreSQL.
sql_completo.rar
File Size: 1 kb
File Type: rar
Download File

Logo abaixo segue o projeto para IDE Eclipse com o código que faz a leitura  do arquivo json e insere na base de dados, caso você programe em outra linguagem ou utilize outra IDE Java, você pode utilizar o código como exemplo, o que foi desenvolvido aqui pode ser desenvolvido em qualquer linguagem. Para a execução do projeto é necessário o uso de duas libs que também estão anexadas logo abaixo. Não se esqueça de fazer as devidas alterações na classe de conexão com o banco no projeto, alterando seu usuário, ip e senha. Antes de fazer a leitura, abra o arquivo fipe. json  e remova do início do vetor o texto "fipe =" , ficando somente o vetor com os dados, salve o arquivo e estará pronto para fazer a leitura.
leiturajsonfipe.zip
File Size: 10 kb
File Type: zip
Download File

libs.rar
File Size: 531 kb
File Type: rar
Download File

Bom feito o download dos arquivos vamos as etapas para conseguir chegar ao resultado esperado, lembrando que você deve ter o mínimo conhecimento em programação, uso de IDE's e banco de dados o foco nesse post não é ensinar nada sobre  desenvolvimento e sim a recuperação dos dados da tabela.

1ºPasso:  Executar  index.htm e gerar arquivo fipe.json atualizado.
2ºPasso: Criar a base de dados fipe com as tabelas e sequences pertinentes.
3ºPasso: Abrir o projeto leiturajson (Eclipse) adicionar as libs, executar o projeto que vai ler o arquivo json e popular a tabela Veículos.
4ºPasso: Dentro do SGBD ou console executar os scripts de insert que fazem a normalização (divide as tabelas retirando a redundância de dados).
5ºPasso: Você pode se basear no scripts de select que está na pasta sql_completo, para exibir o resultado nos padrões do site da fipe.

Pronto se tudo deu certo, nesse momento você deve estar com uma base de dados completa com os dados da tabela fipe atualizados. Fique livre para alterar o código de acordo com a sua necessidade a idéia aqui era só dar uma luz pra quem precisa desses dados.

Hands On!
Daniel Paulo de Assis
 
 
Bom como prometido no post anterior, nesse post vou falar sobre algumas ferramentas para a confecção de Diagramas que se baseiam no modelo UML (Unified Modeling Language), só ressaltando que o foco mais uma vez é na dica de utilização das Ferramentas e não nos conceitos UML, bem como também não será especificado como usar essa ou aquela ferramenta.

Relembrando:

UML (Unified Modeling Language): é uma linguagem de modelagem não proprietária, tem como objetivo a abstração do sistema que permite ao "desenvolvedor", visualizar um desenho do sistema e a comunicação entre seus objetos.

Diagrama: O Diagrama ou  diagramas que possam fazer parte da modelagem, nada mais são que a representação gráfica da UML, ou seja, o modelo  UML existe sem os diagramas.

Existem vários tipos de diagramas que compõem o modelo UML entre eles estão Diagrama de Casos de Uso (Use Case), Diagramas de Classe, Diagramas de Sequência, entre outros.

Ferramentas

Seguindo na mesma linha do post anterior, vou citar ferramentas com as quais já trabalhei entre essas ferramentas estão ArgoUML e o Dia Portable.

Sendo que a ArgoUML é uma ferramente poderosíssima, desenvolvida em Java que suporta os mais variados tipos de diagrama como:
  • Diagrama de Classes
  • Diagrama de Sequência
  • Diagrama de Casos de Uso
  • Diagrama de Atividades
O diagrama de classes pode ser "desenhando" com suporte direto as linguagens:
  • C#(Sharp)
  • PHP 4 e 5
  • C++
  • Java
Isso proporciona a geração automática das classes a medida que o diagrama é construído, essas classes poderão ser exportadas posteriormente, essa é apenas alguma das várias qualidades que essa ferramenta possui.

Vou falar um pouco também sobre a ferramenta DiaPortable, que também é uma ferramenta para modelagem UML,
como próprio nome já diz ela é portable e portanto não há necessidade de instalação, é uma ferramenta bastante intuitiva que permite uma construção bem rápida e personalizada dos diagramas.
Além do Modelo UML ela também dá suporte a outros modelos como:
  • BPMN
  • ER
entre outros tantos, realmente é uma ferramenta bem prática e de fácil manejo.

A ideia não é comparar as ferramentas e sim a dica de uso, portanto  considero a ArgoUML uma ferramenta muito poderosa mas que necessita um conhecimento mais profundo para sua utilização e a Dia Portable uma ferramenta mais prática, ambas trabalham com exportação dos diagramas em vários formatos inclusive imagem o que é muito interessante para documentação.

Bom é isso aí, vou deixar os links para download caso alguém se interesse:

ArgoUML 
Caso não queira instalar a ArgoUML, você pode utilizar através do Java Web Start :
ArgoUML (JWS)

Dia Portable

Hands On!
Daniel Paulo de Assis

 


    Arquivos

    August 2013
    July 2013
    June 2013



    Digite o seu email:

    Delivered by FeedBurner



Related Posts Plugin for WordPress, Blogger...