nov 29

Como iniciar um planejamento financeiro

Vou começar esclarecendo que nada daqui é a pura verdade, não quero impor nada, apenas tentar ajudar pessoas que convivem com muito mês para pouco salário. Não são dicas originais minhas, apenas uma breve compilação de artigos ou livros que li sobre o assunto e de práticas que realizo que me permitem falar um pouquinho sobre o assunto.

O primeiro passo é saber os seus gastos fixos mensais, por exemplo contas de luz, telefone, cartão, cursos, faculdade, ônibus, gasolina, etc. Mesmo que varie um pouco de mês para mês, é possível se ter uma noção de um valor médio a ser gasto. Anote tudo em uma planilha eletrônica, ou caso você prefira, em um papelzinho mesmo. Um parêntese: recomendo utilizar as planilhas, pois você poupa tempo com o cálculo dos totais, a organização fica melhor, você consegue organizar todos os meses do ano em uma mesma folha. Atente sempre ao cartão de crédito, sempre saiba o quanto você tem que pagar, pelo menos nas próximas 2 faturas.

Segundo passo, despesas variáveis: não deixe o que sobrar para gastar, separe um valor fixo para suas possíveis despesas do mês como saídas, compras, jantares românticos extensíveis até o almoço do dia seguinte, etc. Essa parte é um pouco mais complicada porém é necessária para que você deixe de ser um consumidor compulsivo e passe a ser um consumidor consciente e controlado.

Terceiro,  “Você é rico pelo que você poupa, não pelo que você ganha!”, esta frase eu ouvi de uma professora de educação financeira, em algum jornal da TV que não lembro qual agora. Logo, você deve também adicionar na sua planilha de controle de gastos seus investimentos, alguns dizem que no mínimo você deve investir 10% do que você ganha, eu recomendo 20% no mínimo, porém não é regra, nem sempre é possível fixar tal valor, porém todos devem investir algo todo mês, pois só criando esse hábito e considerando como despesa fixa, você conseguirá a disciplina necessária para sempre poupar mais e mais.

Crie uma linha totalizando os gastos e agora que você já tem todos os gastos listados e seu total acrescente o quanto você ganha em algum lugar da planilha, para que assim possa calcular  o quanto lhe sobra no mês. Outra dica, sempre que sobrar dinheiro ao fim do mês, invista-o, poupe-o.

Essas são dicas básicas, podem parecer óbvias, mas se seguidas lhe ajudaram bastante em controlar despesas e conseguir desfrutar melhor do seu rico dinheirinho.

nov 23

Investindo em fundos de ações

Não sou nenhum expert no assunto, apenas um mero aventureiro diria eu, mas alguns pontos que levo em consideração para escolher um fundo na hora de investir vou atentar aqui.

Primeiramente fundos de ações aplicam a maior parte do capital em ações (dã) , porém pode aplicar também em renda fixa, como tesouro, CDBs, etc. Isso depende muito de como está o mercado. Logo, é um fundo de risco alto, mas para quem quer se “aventurar” em ações e não tem tempo para acompanhar segundo a segundo a movimentação da bolsa, pode ser uma boa pedida. Os rendimentos são diários.

Para entrar num fundo você só precisa ter conta em algum banco que disponibilize tal serviço ou contratar alguma corretora.

Uma vantagem dos fundos, é que o IR é sempre de 15% em cima dos rendimentos, ou seja, pode ser uma boa alternativa no curto prazo.

Ao escolher um fundo atente aos seguintes quesitos que podem influenciar muito na sua rentabilidade

  1. Taxa de administração, que normalmente é anual: procure sempre fundos com taxas mais baixas. Essa taxa independe se você terá rendimentos positivos ou negativos, comprou cota no fundo, vai pagar, normalmente na proporção de 1/252 por dia.
  2. Se quiser resgatar em menos de 30 dias, você irá pagar IOF, aqui tem uma tabela com os valores e explicando melhor o IOF
  3. Dê preferência por fundos diversificados, não é regra, se você confiar em ações de uma determinada empresa, vá fundo. Mas minha opinião é que fundos de papéis diversificados tendem a sofrer menos com as oscilações do mercado, já que a queda de alguns é contrabalanceada com a subida dos outros.

Isso aqui é só um informativo, se tiver realmente interesse, procure uma corretora, se informe, leia os prospectos dos fundos, acompanhe por uns dias a tabela de rentabilidades, que alguns sites fornecem como por ex.: o do banco do brasil. Basicamente o quanto você estiver informado sobre determinado investimento resultará nos frutos a serem colhidos dele.

nov 17

Investimento em renda fixa com Tesouro Direto

Para você que está acostumado a poupar, utilizando a Caderneta de Poupança, porém não está satisfeito com a rentabilidade de 0,5 % + TR, também não está predisposto a arriscar seu dinheiro na bolsa, e não tem pressa em resgatar esse dinheiro, recomendo fortemente investir no tesouro direto.


Basicamente são 3 formas de investimento, que são em :

1) Títulos pré-fixados, onde você já sabe de antemão quanto será sua rentabilidade bruta na data de vencimento do título.  Porém caso você precise deste dinheiro antes, você poderá sair perdendo, já que caso na data em que deseje vender a rentabilidade dele esteja maior do que a que você comprou, ninguém vai pagar o valor que você pagou por um título que vale menos. Essa opção é a mais previsível ao longo prazo, porém a mais arriscada no curto.

2) Títulos pós-fixados indexados ao IPCA, onde você tem uma taxa básica de juros, acrescidas da variação da inflação. Este é o investimento mais adequado para você que é cauteloso, pois seu dinheiro não desvalorizará, ele seguirá a inflação.

3) Títulos pós-fixados indexados a taxa SELIC, que “é um índice pelo qual as taxas de juros cobradas pelo mercado se balizam no Brasil” (Wikipedia).

Os títulos 1 e 2 tem 2 modalidades ainda, que são as que pagam juros semestrais além do rendimento normal e as que rendem normalmente.

Um outro detalhe é que na hora da compra, você paga uma taxa a CBLC e ao seu agente de custódia, normalmente seu banco, mas nada que vá comprometer muito seu investimento. Outro ponto é de que como este é um investimento a longo prazo, o IR incide regressivamente, ou seja, quanto mais tempo você deixar seu dinheiro menos imposto pagará, o ideal é no mínimo 2 anos, que só assim cai pra 15% o IR.

Se você quiser investir realmente dê uma lida antes nas informações contidas no site do tesouro direto, que lá tem todas as informações necessárias para você começar a investir, além de simulador, calculadora, etc.

nov 10

JSF com JSTL, utilizando tag c:if

Primeiramente, não recomendo sua utilização, prefiro usar para testar se algum componente deve ser exibido ou não o atributo rendered das tags do JSF. Mas caso seja necessário sua utilização temos que atentar para 2 pontos, primeiro que a expressão não se inicia com # como as EL do JSF, mas sim com $;  segundo isso só funciona com jstl 1.1 ou 1.2, devendo ser utilizada assim a uri “http://java.sun.com/jsp/jstl/core” ao invés de “http://java.sun.com/jstl/core”, que é da 1.0 .

Assim sendo um teste simples ficaria da seguinte maneira:

<c:if test="${MB.atributo != null}">
      ...
</c:if>

É isso, estava passando por esse problema hoje e depois de googlar um pouco achei a solução e estou aqui repassando.

nov 08

Configurando JPA com Hibernate

Neste post vou mostrar o básico para fazer funcionar o JPA  com hibernate , utilizando o hsqldb, que é um banco de dados leve e muito bom para testes de desenvolvimento.

Inicialmente precisaremos das bibliotecas do hibernate que nesta versão já vem com as do JPA 2, porém isso não influenciará muito nessa configuração básica caso esteja usando o JPA. Agora crie uma pasta lib para colocar os .jar e adicione-os ao build path do projeto.

O segundo passo é criar a nossa Persistence Unit, que provê a definição do contexto de persistência, contendo os metadados relativos a tal.


Para isso deve ser criado um arquivo XML chamado persistence.xml e deve ser colocado dentro da pasta META-INF dentro da sua pasta de códigos fontes, no eclipse, utilizando a configuração default ficaria :  “src/META-INF/persistence.xml” . Este arquivo ficará com a seguinte configuração :

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
    <persistence-unit name="pu" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" />
            <property name="hibernate.connection.url" value="jdbc:hsqldb:hsql://localhost/nomedobanco" />
            <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver" />

            <property name="hibernate.connection.password" value="senha" />
            <property name="hibernate.connection.username" value="usuario" />

            <property name="hibernate.archive.autodetection" value="class"/>
            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="show_sql" value="true" />
            <property name="format_sql" value="true" />

        </properties>
    </persistence-unit>
</persistence>

Obs.: Caso esteja utilizando o JPA  troque a linha da tag <persistence> por:

<persistence version=”1.0″
xmlns=”http://java.sun.com/xml/ns/persistence” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd”>

Feito isso precisamos agora configurar como pegar o EntityManager, que é uma interface para interagir com o contexto de persistência.

Para isso criaremos um singleton que através da fábrica EntityManagerFactory pegaremos uma nova instância de EntityManager caso não tenha nenhuma aberta, ou retornará a que já está aberta. Será criada a classe JPAUtil:

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class JPAUtil {
      private static EntityManagerFactory emf = null;
      private static EntityManager em = null;

      public static EntityManagerFactory getEntityManagerFactory() {
            if (emf == null)
                 emf = Persistence.createEntityManagerFactory("pu");
            return emf;
      }

       public static EntityManager getEntityManager() {
             if (em != null && em.isOpen())
                   return em;
             else {
                   em = getEntityManagerFactory().createEntityManager();
                   return em;
             }
       }

}

Isso já basta para testar se está funcionando, a conexão com o banco. Para testar agora criaremos uma classe de testes utilizando o JUnit para verificar se está tudo ok. Criaremos a classe JPATest:

import static org.junit.Assert.*;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;

import org.junit.Test;

public class JPAtest {
	@Test
	public void testaConexaoJPA() {
		EntityManager em = JPAUtil.getEntityManager();
		EntityTransaction transaction = em.getTransaction();
		transaction.begin();
		transaction.commit();
		boolean isconectado = em.isOpen();
		em.close();
		assertTrue(isconectado);
	}
}

Pronto, se tudo estiver correto ficará verde o teste do JUnit. Em outro post mostrarei como implementar um DAO para JPA.

nov 03

Utilizando C3p0 para resolver problemas de falha na conexão com banco

Coloquei uma aplicação no servidor da DailyRazor,  utilizando hibernate com hbm e mysql. Rodando a aplicação localmente no meu tomcat, e apontando para o banco remoto funcionava perfeitamente, porém quando rodava do servidor acessando o banco de dados local, funcionava por um minuto e em seguida a seguinte exceção era lançada: “com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure”. Procurando na internet ( lê-se google) achei vários motivos, que em nada me ajudaram, como por exemplo não permissão de acesso ao banco via TCP/IP, banco fora do ar, etc. Então preferi passar a bola para o pessoal da hospedagem e abri um ticket (Um parenteses aqui: O serviço de suporte do Daily Razor é excelente, resolvem tudo muito rápido.) e logo em seguida foi-me passada a solução: utilizar o C3p0 setando as seguintes configurações no hibernate.cfg.xml:

<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.idle_test_period">300</property>
<property name="hibernate.c3p0.timeout">120</property>
<property name="hibernate.c3p0.max_size">25</property>
<property name="hibernate.c3p0.min_size">1</property>
<property name="hibernate.c3p0.max_statement">0</property>
<property name="hibernate.c3p0.preferredTestQuery">select 1;</property>


Essa é a configuração default, a única coisa que precisei modificar foi o tempo de timeout, já que eles tem como tempo de timeout para o MySQL 300, segundo eles por questões de estabilidade.
Fica aí a dica, mesmo que não precise recomendo a utilização do C3p0 para pooling de conexão com o banco de dados, pois melhora a performance da aplicação. Nesse blog aqui tem algumas informações a mais.