Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo MarceloCastro

Divulgada a grade das trilhas Java do TDC 2012

Mais uma vez, o SouJava participa da organização do TDC (The Developers Conference) , que acontece neste ano entre os dias 4 a 8 de Julho, e eu tive a oportunidade de colaborar na montagem das trilhas Java do evento. Gostaria de agradecer aos profissionais que contribuíram com as trilhas Java submetendo mais de quarenta (40) palestras por meio do Call4Pappers do evento. Gostaria ainda, agradecer todos os " Beta-testers" que realizaram a inscrição antes mesmo da programação do evento estar disponível, e convido a todos a conferir a programação das trilhas Java . Trilha Java University Coordenação de Marcelo de Castro e Jonnes Tahara Trilha Java EE University Coordenação de   Eder Magalhães   e   Mauricio Leal Trilha Java EE Coordenação de  Eder Magalhães  e  Otávio Santana Trilha Java Coordenação de Marcelo de Castro e Otávio Santana (*)As trilhas University são destinadas a estudantes e profissionais que estão inicia...

JustJava 2012: Chamada de Trabalhos

Desde 2000, o JustJava se destaca como o principal evento independente sobre a tecnologia Java no Brasil. Organizado pela Sociedade de Usuários da Tecnologia Java, SouJava, com a realização da Sociedade de Usuários de Informática e Telecomunicações – Sucesu-SP, traz sempre os últimos acontecimentos e tendências da tecnologia Java. Este ano o JustJava será realizado nos dias 18 e 19 de maio e as submissões estão abertas até 29 de fevereiro 7 de março ( anúncio da prorrogação no SouJava.org ) , aceite o convite do SouJava, contribua com o  JustJava 2012 , e fazendo submissões que podem ser para realização de palestra, debate ou mini palestras nos macro temas: Core Java, Enterprise Java, Mobile, Casos de sucesso e outros assuntos ligados a Plataforma Java. Mais detalhes na página da chamada de trabalhos do JustJava2012  no SouJava.org.br . Confira a participação da Globalcode no JustJava 2011: http://globalcode.com.br/noticias/JustJava2011 Pa...

JavaMail: Enviando mensagem HTML com anexos

Introdução Depois do post "JavaMail: Enviando e-mail com Java" , que apresentava como enviar um e-mail com Java, resolvi complementar a assunto apresentando como enviar uma mensagem formatada, em HTML , e também como realizar o envio de anexos. Bibliotecas Além da biblioteca JavaMail, veja mais no post anterior , é necessário incluir o JavaBeans Activation Framework (JAF), apenas se a versão utilizada for anterior ao JSE 6.0 , que já tem o JAF incluso. O JAF está disponível em http://www.oracle.com/technetwork/java/javase/downloads/index-135046.html , e neste download encontramos, alguns exemplos na pasta demo , documentação, incluindo javadocs, na pasta docs e a biblioteca activation.jar , que deve ser acrescentada no classpath da aplicação para versões anteriores ao JSE 6.0. Exemplo Primeiramente devemos realizar a configuração da javax.mail.Session e da javax.mail.internet.MimeMessage , estes passos podem ser vistos no post anterior . Agora vamos montar um...

JavaMail: Enviando e-mail com Java

Introdução Além da necessidade de envio de e-mail ser comum a várias aplicações, foi a pergunta de um aluno da Academia Java ,  “Como enviar um e-mail com Java?”, que me motivou a escrever este post sobre JavaMail. JavaMail Para realizar o envio de e-mail por meio de uma aplicação Java, precisamos da biblioteca JavaMail, pois ela não é incluída no Java SE. A biblioteca está disponível em http://www.oracle.com/technetwork/java/index-138643.html . Neste download, além da biblioteca mail.jar que inclui a implementação completa da API e providers, também é disponibilizada a documentação da biblioteca ( javadoc ) na pasta docs , alguns exemplos na pasta demo e partes da implementação em lib . A forma mais simples de utilizar a JavaMail e incluir o mail.jar , porém para uma aplicação que só envia e-mail como o nosso exemplo, necessitamos apenas dos arquivos mailapi.jar e smtp.jar , economizando 177KB. Como a economia é pouca e as aplicações evoluem, vamos adicionar o mail.j...

Java e Redes: Implementando um ServerSocket

Introdução Uma dúvida de um aluno da Academia Java  me incentivou a dar continuidade ao assunto de programação Java para redes, iniciado em Java e Redes: Consultando um serviço com Socket  que mostrava como consultar um serviço do NIST por meio da API de redes da Plataforma Java, este post apresenta a implementação de um java.net.ServerSocket que responde aos clientes com um determinado arquivo. Exemplo Para a criação de um ServerSocket que será responsável por escrever os bytes de um determinado arquivo no canal de comunicação com o cliente, definiremos a porta no construtor, conforme segue: int port = 8080; ServerSocket server = new ServerSocket(8080); Apenas a criação do objeto server da classe ServerSocket não permite ainda a comunicação, para tanto é necessário que o ServerSocket passe a aceitar conexões, e isto é feito pelo método accept , este método é bloqueante, ou seja, faz com que o programa fique parado até que o servidor receba uma requisição, e quan...

Java e Redes: Consultando um serviço com Socket

Introdução Neste post será abordada a utilização da Plataforma Java para desenvolvimento de um aplicativo de rede que consulta a um serviço do NIST- National Institute of Standars and Technology que fornece o horário oficial do EUA. *Para saber mais visite http://www.time.gov/about.html e http://tf.nist.gov/tf-cgi/servers.cgi . JSE e Networking A Plataforma Java na sua versão padrão disponibiliza API que torna simples o desenvolvimento de aplicativos para rede. Conforme a própria documentação o pacote java.net  pode ser dividido em duas seções: Uma API de baixo nível com as seguintes abstrações: Addresses, que representam identificadores de rede como endereços IP Sockets, que representam mecanismo para comunicação bidirecional Interfaces, que representam interfaces de rede Uma  API de alto nível com as seguintes abstrações: URIs, que representam Universal Resource Identifiers. URLs, que representam Universal Resource Locators. Co...

Fechando o 2º ano do Ensino Médio com chave de ouro: Programação, Arduino, Automação e Cloud Computing

No início do ano (2010), mais precisamente em março, fiz um post sobre a introdução da Academia do Programador no Ensino Médio da Escola Fernão Gaivota, e agora ao término do ano apresento um projeto desenvolvido pelos alunos intitulado "CodeHome". A Escola Fernão Gaivota realiza um evento anual intitulado “Fernão de Portas Abertas”, que tem como objetivo apresentar projetos desenvolvidos pelos alunos para toda comunidade. O projeto desenvolvido pelos alunos da Academia do Programador ( Bianca, Caroline, Catarina, Leticia, Natália, Symon e Wesley ) consistia na construção de uma casa de madeira com teto solar sensível a luminosidade controlado pelo Program-Me e pela placa Tomad@. Programação do firmware Mesmo antes da montagem da casa o firmware foi desenvolvido pelos alunos da Academia do Programador. Para a realização da programação, a turma foi divida em grupos e o programa escolhido foi o que conseguiu atender as necessidades do problema proposto, que consistia basicam...

Por que (byte) 157 = -99? Parte 3 de 3

Depois de falar sobre a conversão entre as bases binária e decimal na primeira parte deste artigo e sobre a representação de inteiros em Java na segunda parte , finalmente, trataremos da conversão (cast) de tipos primitivos, e conseguiremos entender efetivamente Por que (byte) 157 = -99? Conversão de tipos primitivos inteiros Para responder a pergunta do título, vamos precisar saber o número de bits/bytes utilizados para representar cada um dos tipos primitivos inteiros na Plataforma Java. O tipo byte ocupa 1 byte ou 8 bits O tipo short ocupa 2 bytes ou 16 bits O tipo int ocupa 4 bytes ou 32 bits O tipo long ocupa 8 bytes ou 64 bits Então vamos observar a mensagem que se obtém ao tentar compilar o seguinte código: public class TesteConversao { public static void main(String[] args) { int inteiro = 157; byte b = inteiro; } } A mensagem apresentada é: TesteConversao.java:4: possible loss of precision found : int required: byte byte b = inteiro; ^ 1 error...

Por que (byte) 157 = -99? Parte 2 de 3

Conforme dito na primeira parte deste artigo, que mostra a Conversão entre as bases binária e decimal , para entender a razão pela qual a conversão 157 para o tipo byte resulta em -99 (noventa e nove negativo), nesta segunda parte vamos tratar a representação binária de inteiros na Plataforma Java. Representação de inteiros em Java Em Java, não existem tipos inteiros sem sinal ( unsigned ) e é utilizado o complemento de dois para representar os inteiros, onde o primeiro bit (mais significativo) é utilizado para representar o sinal, sendo 0 (zero) para positivo e 1 (um) para negativo. Para obter a representação binária dos números inteiros positivos basta pegar o valor binário 1001 1101 (no caso, 157 em decimal) e preencher os bits a esquerda com zero de acordo com o tipo da variável. Em um post anterior sobre os Literais da Linguagem Java foi esclarecido que um literal inteiro, no caso 157, é do tipo int , então vamos preencher com zeros, inclusive o bit de sinal, conforme s...

Por que (byte) 157 = -99? Parte 1 de 3

A motivação para escrever este artigo foi responder a seguinte pergunta: Por que (byte) 157 = -99 ? Porém, para entender o motivo pelo qual a conversão 157 para o tipo byte resulta em -99 (noventa e nove negativo), antes precisamos entender três pontos: Conversão entre as bases binária e decimal Representação binária de inteiros na Plataforma Java (parte 2) Conversão (cast) de tipos primitivos (parte 3) Inicialmente estes três pontos seriam abordados em um mesmo post, como ele cresceu demais o dividi em três partes, cada uma tratando de um dos pontos apresentados, e começando pelo primeiro: Conversão entre as bases binária e decimal Para converter um número decimal para binário, realizamos sucessivas divisões por 2 (base) até que o resultado da divisão seja 0 (zero) e utilizamos os restos para compor o binário. O resto da primeira divisão representa o dígito de menor significância e o resto da última divisão representa o dígito de maior significância, conforme exemplo: ...

Colaborar com o TDC 2010 foi ...

Tive a oportunidade de colaborar nos três dias do #TDC2010 , e vou contar um pouco da trilha que participei no Sábado, a trilha Java . Vou começar com uma curiosidade sobre o credenciamento, que estava marcado para ser iniciado as 8h30, porém antes deste horário mais de cem pessoas já estavam credenciadas, fato que mostra que o comprometimento da comunidade que madrugou em um Sabadão. A abertura do Sábado foi realizada no Auditório, comandada pela Yara que além de realizar os agradecimentos chamou os coordenadores das trilhas do dia: Pablo Madril (Java) , Felipe Rodrigues (Ruby) , Alexandre Porcelli (noSQL) e Giovanni Bassi (.NET) para realizarem a apresentação das respectivas trilhas. Depois fomos para a sala reservada para a trilha Java e a primeira palestra do dia foi: O tiro certo: como escolher APIs e frameworks Java que prosperam com Fabiane Nardon , Fabio Velloso e Ted, foi muito legal, no formato de perguntas e com a participação intensa de todos, e ficou claro que uma esc...

Literais da Linguagem Java

Na última semana, tive uma conversa com um profissional Java iniciante que me apresentou dúvidas sobre o uso de valores hexadecimal na linguagem, inicialmente entendi que ele precisava da representação textual de um valor hexadecimal, então apresentei um método da classe wrapper Integer, conforme segue: int valor = 15; System.out.println(Integer.toHexString(valor)); //Imprime f Só então após mostrar este exemplo, ficou claro que ele precisava exatamente do contrário, ou seja, qual a forma mais fácil de converter um número hexadecimal para um número decimal para atribuição a uma variável primitiva inteira. Esclareci que para isso não havia necessidade de conversão, bastaria usar uma literal hexadecimal presente na linguagem Java da seguinte forma: int valor = 0xf; // ou 0XF System.out.println(valor); //Imprime 15 Este episódio me motivou a escrever este post sobre os literais da Linguagem Java, então vamos lá. De acordo com a especificação da linguagem (The Java™ Language Specification ...

Academia do Programador no Ensino Médio

Logo após o lançamento da Academia do Programador , esta carreira foi apresentada para a Flávia Teresa de Lima, que é a Coordenadora Pedagógica do Ensino Médio da Escola Fernão Gaivota , que após verificar o pré-requisito, o conteúdo e os objetivos, ressaltou: “Trabalhar este conteúdo ajudaria o desenvolvimento do pensamento lógico, visto que o exercício realizado na resolução de um problema computacional consiste na análise dos objetivos determinados, das ferramentas disponíveis, bem como a definição dos passos necessários para alcançar estes objetivos possibilita a reversibilidade do pensamento e o pensamento antecipatório. Habilidades que são fundamentais para a construção do conhecimento.” Então a ideia de incluir a Academia do Programador como conteúdo integrante do Ensino Médio foi amadurecendo e foi definido que em 2010 os alunos do 2º ano do Ensino Médio teriam 2 aulas semanais dedicadas a Academia do Programador, totalizando as 80h desta carreira. A experiência que tive...