quinta-feira, 24 de dezembro de 2009

Formulário para recuperar contas roubadas do gmail/orkut/docs google

Se você já tentou recuperar sua senha e não conseguiu, o Google, assim como a maioria dos provedores de serviços de internet, oferece um formulário para recuperar contas roubadas. Preencha os campos com atenção, pois determinar quando um desses pedidos é legítimo não é fácil. Perceba que, assim como você pode recuperar a conta por meio dele, alguém poderia roubá-la de você se soubesse a resposta destas perguntas. Por isso, eles tomam muito cuidado ao decidir aceitar a solicitação ou não.

segunda-feira, 25 de maio de 2009

Criando um projeto com Struts 1.x

1-  Criar um projeto Web - Dynamic Web Project;
2-  Dentro da pasta WEB-INF criar uma pasta para colocar as tag-libs do struts. Particularmente, prefiro criar com o nome "struts" para referenciar as libs organizadamente dentro do projeto;
3- Descompactar o arquivo struts-blank que contém os arquivos necessários para montar o projeto;
4- Dentro do diretório \struts-blank\WEB-INF deverá ser copiado os seguintes arquivos para a pasta criada anteriormente no item 4:
        *    struts-bean.tld;
        *    struts-html.tld;
        *    struts-logic.tld;
        *    struts-nested.tld;
        *    struts-tiles.tld.

5- Dentro do diretório \struts-blank\WEB-INF\lib deverá ser copiado os arquivos a seguir para a pasta WEB-INF\lib do projeto criado anteriormente no item 1:
* antlr.jar;
* commons-beanutils.jar;
* commons-digester.jar;
* commons-fileupload.jar;
* commons-logging.jar;
* commons-validator.jar;
* jakarta-oro.jar;
* struts.jar.
6- Copiando os arquivos de configuração; dentro do diretório \struts-blank\WEB-INF copiar os arquivos a seguir para a pasta WEB-INF do projeto criado anteriormente no item 1:
* struts-config.xml;
* tiles-defs.xml;
* validation.xml;
* validator-rules.xml;
* web.xml.
7- Dentro da pasta WebContent do projeto criado anteriormente no item 1 criar uma pasta onde serão armazenadas as páginas jsp's. No caso do exemplo será dado o nome de pages.
8- Criar um arquivo para redirecionamento, nesse caso será chamado de index.jsp que deverá ficar na pasta WebContent do projeto criado anteriormente no item 1. O conteúdo desse arquivo pode ser visto logo a seguir:
9-   Entrar no arquivo struts-config e localizar a tag "";
10- Inserir a tag "
" que irá efetuar o redirecionamento;
11- Entrar no arquivo struts-config e localizar a tag "
";
12- Inserir a tag "" que irá carregar a página hello.jsp:
13- Criar um arquivo chamado "hello.jsp" que será carregado ao entrar;
14- Subir o servidor de web e entrar com a url "http://localhost:8080/NOME_DO_SEU_PROJETO"

domingo, 15 de março de 2009

Dicionário de imposto de renda

A seguir seguem alguns termos que podem ser úteis para quem deseja prestar as contas com a receita federal (imposto de renda):
  • ANTECIPAÇÃO
Se um contribuinte tem valores a receber, pode pedir um empréstimo no banco antes que o dinheiro chegue, apresentando a declaração como "garantia".
  • CÔNJUGE
Marido, mulher, companheiro ou companheira. O casal pode declarar em conjunto ou separadamente.
  • DARF (Documento de Arrecadação da Receita Federal)
Documento pode ser usado para recolher impostos e contribuições pela Secretaria da Receita Federal. Se o contribuinte tem imposto a pagar, é necessário a emissão do DARF.
  • DEDUÇÃO
Desconto sobre o valor de uma série de despesas. Não é todo tipo de despesa que pode ser deduzida.
  • DIRF (Declaração de Imposto de Renda Retido na Fonte)
Documento necessário para gerar a declaração de pessoas jurídicas e físicas que pagaram ou creditaram rendimentos em que tenha havido retenção do imposto de Renda na fonte durante o ano.
  • ESPÓLIO
É a declaração dos bens de pessoa que já tenha falecido quando não foi concluído o inventário.
  • INFORME DE RENDIMENTO
Resumo anual dos rendimentos tributáveis e não tributáveis que as empresas empregadoras e bancos devem enviar aos seus empregados.
  • IRRF (Imposto de Renda Retido na Fonte)
É o imposto que é retido diretamente na fonte pagadora. Pode ser descontado diretamente do salário (o que ocorre na grande maioria dos casos, vide demonstrativo de pagamento mensal).
  • LIVRO CAIXA
Balanço das despesas dedutíveis que fazem parte do exercício da profissão, que os autônomos devem manter.
  • MALHA FINA
É a verificação detalhada da Receita sobre as declarações. Ela que "detecta" as declarações entregues com erro, não foram checadas ou omissão de valores recebidos.

  • RESTITUIÇÃO
Valor apurado na declaração quando o contribuinte teve mais imposto retido do que o que deveria.

Esse foi um breve resumo de alguns termos que a Secretaria da Receita Federal utiliza para que os contribuintes prestem as contas corretamente. É importante que os contribuintes visitem o site da Receita para que sejam solucionadas quaisquer outras dúvidas.

JSF - Erro no resource bundle

Apesar de ser um pouco tarde, acabei de solucionar um problema e fiquei disposto a postar a solução. Estou montando um projeto utilizando as seguintes ferramentas:
  • Ide Eclipse;
  • JSF;
  • Plug-in do JBoss Tools;
  • Facelets;
  • Rich-Faces.
Ao executar o projeto estava ocorrendo o seguinte erro:
java.util.MissingResourceException: Can't find bundle for base name test.resources.MessageResources, locale pt_BR
java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:836)
java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:805)
java.util.ResourceBundle.getBundle(ResourceBundle.java:699)
javax.faces.component.MessageFactory.getMessage(MessageFactory.java:122)
javax.faces.component.MessageFactory.getMessage(MessageFactory.java:199)
javax.faces.component.MessageFactory.getMessage(MessageFactory.java:232)
javax.faces.component.MessageFactory.getMessage(MessageFactory.java:209)
javax.faces.component.UIInput.addConversionErrorMessage(UIInput.java:1074)
javax.faces.component.UIInput.validate(UIInput.java:630)
O problema é que não estava sendo possível encontrar o arquivo resource.properties. Para contornar esse problema foi necessário adicionar o no arquivo faces-config:




Obviamente que o arquivo de resources ficou na seguinte estrutura do projeto:
  • JavaSource\resources_pt_BR.properties.
Espero ter ajudado, posteriormente esterei colocando alguns problemas para ajudar a comunidade de desenvolvimento.





domingo, 20 de julho de 2008

Exceções em Java

O conceito de uma exceção em programação é quando algo não ocorre conforme o desejado, logo é iniciado (ou não dependendo da previsão do desenvolvedor) um processo / programa. Em Java há recursos para que essas exceções sejam devidamente tratadas nas cláusulas TRY / CATCH / FINALLY. Sugerindo a classe abaixo:

package br.com.excecoes.everton;

public class Telefone{

public String returnDDD(String str){
return str.substring(0, 3);
}
}

Esse método retornaria o prefixo do telefone, ou seja, os três primeiros dígitos. É importante ressaltar que esse método funcionaria, embora não seja tratado o tipo de informação que está sendo passada por parâmetro, isto é, se esse método receber "null", será lançado uma NullPointerException; se for recebido uma string vazia, a exibição para o usuário final seria StringIndexOutOfBoundsException, convenhamos para um usuário final, é uma situação altamente desagradável receber esse tipo de mensagem na tela do sistema. Vamos aplicar boas práticas de orientação a objetos, cada método deve assumir a responsabilidade pela validação dos dados que recebe. No código a seguir, serão efetuadas algumas revisões no método returnDDD lançando exceções:

public class Telefone {
public String returnDDD(String str) throws Exception{
if(str==null){
throw new IllegalArgumentException("Parâmetro nulo");
}else if(str.length() < 3){
throw new IllegalArgumentException("Tamanho do parâmetro tem que ser maior do que 3");
}
try{
int prefixo = Integer.valueOf(str.substring(0, 3));
}catch(NumberFormatException numEx){
throw new NumberFormatException("Prefixo tem que ser um número");
}
return str.substring(0, 3);
}
}

Revisado o código, a informação recebida é devidamente tratada. Caso seja recebido um valor null para o texto, será lançado uma NullPointerException; caso venha uma string vazia a exibição será StringIndexOutBoundsException. Em ambos situações ocorrem bugs do método returnDDD, sendo que não deveriam acontecer em nenhuma circunstância. Por isso foram criadas exceções mais específicas para que o sistema tenha o mínimo de respostas amigáveis. No caso do nosso método, são tratados mais exceções, como por exemplo o tamanho mínimo da string e se realmente é um valor numérico.

Abaixo temos a classe main que faz a chamada da classe Telefone:

public class ExcecoesJava {
public static void main(String[] args) {
Telefone fone = new Telefone();
try{
System.out.println("O prefixo do telefone eh: " +
fone.returnDDD("12"));
}catch(IllegalArgumentException ex){
System.out.println(ex.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}

Vamos verificar algumas mensagens de acordo aos parâmetros passados:
  • parâmetro "011-55556666", a resposta seria: O prefixo do telefone eh: 011;
  • parâmetro null, a resposta seria: Parâmetro nulo;
  • parâmetro "12", a resposta seria: Tamanho do parâmetro tem que ser maior do que 3.

Os parâmetros e respostas em "vermelho", seriam condições negativas, ou seja, erros que seriam passados como parâmetros, embora devidamente tratados por nosso programa.

Sequência
Sempre trate as exceções pela sua respectiva hierarquia, note que no nosso método a última exceção lançada é a Exception, por ser a mais genérica.

Conclusão
O artigo descrito anteriormente teve o intuito de abordar alguns pontos interessantes sobre manipulação de exceções, obviamente existem mais a ser estudado - melhorar os conceitos sempre nos ajuda a entender melhor o mecanismo de tratamento fornecido pelo Java. É importante ressaltar que por mais trabalhoso que aparente, é fundamental o devido tratamento dos erros. Certamente, o projeto será mais robusto, tendo o cuidado de lidar com os erros de forma mais específica, em uma linguagem que possue um mecanismo de tratamento de erros altamente sofisticado.

sábado, 19 de julho de 2008

Compatibilidade de Servidores JAVAEE

Estava no site da sun e encontrei algo muito interessante, uma lista de servidores compatíveis com a tecnologia JAVAEE, isto é, homologados pela Sun MicroSystems. É importante ressaltar que não está sendo mencionado o JBOSS, um dos servidores de aplicações mais utilizados. O JBOSS é um produto maduro, instalado em alguns ambientes de produção de diversos segmentos de mercado por todo o mundo. Para conferir os servidores homologados acesse Compatibility Servers.

terça-feira, 4 de março de 2008

Download da JRE - Java

Hoje em dia diversos programas são feitos em java, inclusive a versão do aplicativo para efetuar a aplicação do imposto de renda exige que seja feito download da JRE java, assim como a diversidade de programas existentes no mercado. Para isso, é necessário que seja feito download para que sejam executados corretamente (para os programadores interpretados pela JVM). Esse aplicativo contém somente o básico para rodar aplicativos java em qualquer equipamento.
Para efetuar o download entrar em: JAVA, sendo que há opções para efetuar download independentemente do sistema operacional utilizado (Windows / Linux / Solaris / Apple).