Páginas

terça-feira, 19 de maio de 2020

Cara, como discutir política é chato

Não, absolutamente não! Discutir política não é chato, chato é discutir futebol, por uma simples razão, não se discute futebol.


Veja bem, não estou falando de programas especializados, mas sim de um grupo de amigos.


Futebol é paixão, futebol é gosto, não adianta um torcedor de um time multi campeão ficar criticando um torcedor de um time de terceira divisão, o torcedor deste não vai mudar sua torcida, isso é paixão. Então, a "discussão" sobre futebol se limita a piadas e gozações.


Discutir política, hoje em dia, se tornou uma discussão de paixão. Quando alguém apresenta um argumento não recebe contra argumentos de volta, mas, sim, recebe perguntas para mudar o foco, recebe piadinhas, recebe críticas pessoais, frases como "quem vive de passado é museu", etc. Discutir política virou discutir futebol.


Eu acompanhei esta era brasileira cheio de esperança, quando as pessoas foram às ruas pedir a saída da Dilma e a política tomou um espaço nas rodas de amigos. Tentei, inclusive mostrar a algumas pessoas que suas posições eram hipócritas e insustentáveis. Mas, acabei caindo na realidade e percebendo que estas pessoas não querem mudar, pois, é questão de paixão.


Então, talvez, para reflexão, se você quer discutir política, pense nisso: "Sou capaz de ignorar minha paixão?"

terça-feira, 12 de julho de 2016

Review Pinlock FogCity Universal

Venho compartilhar minha experiência com a película antiembaçante FogCity da Pinlock para qualquer capacete na forma de um pequeno review.

quarta-feira, 1 de junho de 2016

SQL Injection

Esta postagem vem bater em uma tecla repetitiva que possui material exaustivo na internet, inclusive nesta nossa língua nativa, e apesar de ser um dos conceitos de segurança mais importantes no desenvolvimento de aplicações com banco de dados, é incrivelmente ignorada no ensino da programação, seja em cursos, faculdades ou tutoriais e artigos na internet.

Navegando pela internet pode ser que você encontre algum tópico em fórum com uma resposta minha insistindo para que os participantes do fórum atentem para a falha de codificação permitindo SQL Injection, e isto pode acabar parecendo uma insistência desnecessária, abusiva ou até arrogante, mas, estamos falando em segurança.

segunda-feira, 16 de novembro de 2015

Adicionando Driver JDBC Oracle no Jboss/Wildfly

Nesta postagem vamos verificar uma das formas de adicionar o driver JDBC Oracle (ojdbc) em um servidor JBoss ou WildFly, tarefa que, apesar de fácil, possui documentação difícil de encontrar na web, e muitas vezes a documentação encontrada corresponde a versões antigas do servidor, configuração que não é utilizada nas versões mais atuais.

A configuração que iremos demostrar é baseada nos servidores JBoss EAP 6, JBoss AS 7 e Wildfly.

Antes de continuarmos, caso precise identificar a versão mais adequada do driver Oracle a ser utilizada, consulte a postagem anterior Determinando o Driver JDBC Oracle Adequado.

terça-feira, 23 de junho de 2015

Determinando o Driver JDBC Oracle Adequado

O uso do driver JDBC adequado no seu ambiente de sistemas Java previne alguns erros inconvenientes e pode trazer ganho em performance e gestão de recursos. Nesta postagem vamos indicar a forma de identificar qual o driver JDBC para bancos Oracle mais adequado de acordo com o seu ambiente.

quinta-feira, 2 de outubro de 2014

Formatando Datas em Java

Nesta postagem vamos analisar como formatar datas para exibição ao usuário. Passando do simples e direto método java.util.Date.toString() e indo a exemplos prontos da completa e personalizável classe java.text.SimpleDateFormat.

Esta postagem serve como um complemento a nossa postagem anterior Formatando Mensagens em Java, onde, apesar de apresentar alguns exemplos de formatação de datas, o foco era a formatação de mensagens textuais completas, independente do tipo de dado.

segunda-feira, 4 de agosto de 2014

Números Aleatórios em Java

Nesta postagem vamos ver alguns métodos de geração de números aleatórios ou randômicos em Java (o termo randômico é correto mas prefiro aleatório), entender alguns termos relacionados ao assunto, como pseudoaleatório e determinístico, verificar alguns conceitos de previsibilidade e segurança envolvidos nestes valores gerados e algumas formas de geração de valores dependendo do objetivo.

quarta-feira, 30 de julho de 2014

Mapeamento de tipos SQL em Java

Ao trabalhar com banco de dados em Java fazemos uso dos drivers JDBC. Estes drivers são fornecidos pelos desenvolvedores dos bancos de dados e seguem uma implementação definida pelo Java e realizam, entre diversas responsabilidades, o mapeamento entre a forma que uma informação é armazenada no banco de dados e os tipos primitivos ou classes em Java, que são o que efetivamente iremos trabalhar durante nossa codificação. O principal objetivo do JDBC é a abstração do sistema de banco de dados, mas esta abstração não é totalmente infalível e algumas práticas devem ser observadas, entre elas o correto mapeamento entre os tipos, nesta postagem vamos realizar uma pequena análise nesta prática.

terça-feira, 8 de julho de 2014

Redirecionando System.out e System.err para Arquivos

As chamadas System.out.print e System.err.print devem ser os recursos mais comumente utilizados em Java, e frequentemente utilizado nos exemplos deste blog, mas este tipo de recurso deve ser utilizado com objetivo limitado principalmente em testes ou debugs rápidos, sendo preferível o uso de uma API de log para o registro de mensagens importantes na avaliação da saúde de uma aplicação. Mas, você gostaria de continuar utilizando as chamadas System por uma questão de apego ou qualquer outro motivo, então veremos nesta postagem como redirecionar a saída destas chamadas para um arquivo.

quarta-feira, 26 de fevereiro de 2014

Configurando Interfaces de Rede Virtuais em Linux

Em máquinas com uma placa de rede às vezes são necessárias algumas configurações especiais caso seja necessário definir mais de um endereço IP. Entre estas configurações especiais temos a definição de interfaces virtuais e alias de interface. Nesta postagem vamos verificar estas configurações em uma máquina Debian.

segunda-feira, 3 de junho de 2013

Instalando Liferay CE 6.1 no Debian Squeeze

Nesta postagem vamos ver como instalar o Liferay CE 6.1.1 (pacote com Tomcat 7) no Debian Squeeze, com criação de usuário específico e configuração de daemon através de script init.d.

sexta-feira, 1 de março de 2013

DVD Player Automotivo Pioneer AVH-P3280BT

Nesta postagem vou compartilhar minha experiência de uso do aparelho Pioneer AVH-P3280BT.

sexta-feira, 22 de fevereiro de 2013

Gerar Hashs em Linux

Recentemente precisei gerar hashs SHA de alguns passwords para configurações de autenticação em alguns aplicativos. Precisava gerar estas informações de algum modo oculto e confiável, procurei na internet e não achei nenhuma informação direta, mas com base em algumas dicas cheguei em uma solução para console Linux.

sexta-feira, 28 de setembro de 2012

Ordenação de Strings com Números em Java

A ordenação de Strings em Java normalmente é utilizada com o java.util.Comparator da própria classe String, mas existe um pequeno detalhe quando os nossos textos possuem números em sua composição.
Imagine o seguinte conjunto de Strings:
"img_1", "img_5", "img_10"
Ao ordenar estas Strings com a ordenação padrão do Java teremos:
"img_1", "img_10", "img_5"
Mas este resultado não é útil quando se espera uma ordenação conceitual onde os números devem representar uma ordem dentro do conjunto de informações. Então, nesta postagem venho compartilhar uma solução para este problema.

sexta-feira, 21 de setembro de 2012

Será que é queijo à parmegiana?

*CHEDDER A PARMEDIANA?
O que será que estava sendo servido neste restaurante:
- Queijo cheddar à parmegiana?
- Chester à parmegiana?
- Ou um simples bife à parmegiana com queijo cheddar?

Bem! Só espero que a coitada da Diana não tenha entrado na lista de ingredientes...

sexta-feira, 24 de agosto de 2012

SQL e Valores NULL

Bancos de dados permitem o uso de um valor especial: o NULL, mas seu uso deve obedecer a alguns pequenos detalhes que podem causar um grande impacto no seu software.

terça-feira, 5 de junho de 2012

Enviando E-Mail com Java

Nesta postagem vamos ver como enviar e-mail, incluindo formato multipart, anexos e imagens incorporadas, dentre outras configurações úteis.
Existem algumas APIs de e-mail disponíveis, e dentre elas uma que se destaca na comunidade é a Commons Mail da Apache, mas aqui iremos nos dedicar a API JavaMail que é disponibilizada pela Oracle.

quinta-feira, 10 de maio de 2012

Maven: Acessando um Repositório Particular

Normalmente, em uma empresa, uma equipe de desenvolvimento com projetos baseados em Maven irão utilizar um repositório central particular com o objetivo de espelhar os repositórios remotos bem como armazenar os artefatos gerados pela equipe. Este tipo de configuração permite que o download de artefatos para a máquina do desenvolvedor seja muito mais rápida por não depender de acessos constantes a internet, ou seja, a partir do momento em que o artefato esteja disponível no repositório particular, a velocidade de obtenção deste artefato por um desenvolvedor fica limitado apenas a velocidade de rede; e, também, a publicação dos artefatos produzidos pela equipe de desenvolvedores no repositório particular facilita a configuração de um ambiente de integração contínua.

Nesta postagem venho compartilhar a configuração local em nosso ambiente de trabalho, encontrada após testes, e definida como a melhor forma de uso (até o momento).

sexta-feira, 20 de abril de 2012

Exportando módulos do JBoss AS no Eclipse

Recentemente encontrei um problema de dependência de bibliotecas durante desenvolvimento de um padrão de projetos em EJB, mais especificamente: precisava utilizar a dependência do core do Hibernate para realizar consultas JPA baseadas em Example e Criterion. O problema encontrado foi a inexistência da biblioteca "hibernate-core.jar" no Server Runtime do JBoss AS 7.1.
A solução que encontrei não possui muita documentação na internet, já que a maioria dos projetos atuais utiliza Maven e as dependências são descritas no pom, mas é uma solução formal e correta do ponto de vista do Eclipse.

terça-feira, 27 de março de 2012

Criando dll JNI para Acesso a Outra dll

Nesta postagem quero compartilhar um processo de desenvolvimento de uma dll JNI para acesso a uma dll de mini-impressora da Bematech que precisei fazer nos idos de 2007. Achei o meu documento relatando a solução durante uma limpeza de arquivos obsoletos e decidi postar no blog para que fique disponível na web.