October 14, 2009
Programação, Python
No Comments
Para instalar o setuptools no Python 2.6 no Windows baixe os seguintes arquivos:
- setuptools-0.6c9.tar.gz
- setuptools-0.6c9-py2.6.egg
Estes arquivos estão no site: http://pypi.python.org/pypi/setuptools.
Depois extraia o arquivo setuptools-0.6c9.tar.gz e execute o seguinte comando:
python ez_setup.py setuptools-0.6c9-py2.6.egg
O comando acima irá instalar o setuptools no diretório de instalação do python. Para executar o easy_install basta que no PATH do sistema esteja o diretório Scripts que está dentro da pasta de instalação do Python.
September 23, 2009
Java, Java EE, Programação, Uncategorized
No Comments
Este post foi traduzido e alterado deste link:
http://blog.cherouvim.com/the-stupidest-things-ive-done-in-my-programming-job/
Observação: Não fui eu quem escreveu este post. Apenas fiz a tradução e alteração pois achei muito interessante.
As coisas estúpidas feitas quando se trabalho com programação
- ORM
- Estupidez
Construir um framework próprio de ORM.
- Consequências
O projeto vira uma bagunça depois de 2 anos de manutenção com gambiarras para passar pelo meu framework ORM desenvolvido e chamar comandos SQL’s customizados.
- O que deveria ter sido feito?
Usar hibernate, iBATIS, Cayenne ou outros parecidos.
- EAV
- Estupidez
Usar uma modelagem de banco de dados do tipo Entity-Attribute-Value model.
- Consequências
Solução não escalável e impossibilidade de rodar queries úteis no banco de dados.
- O que deveria ter sido feito?
Usar uma modelagem de banco de dados normalizada.
- Acesso ao Banco de dados
- Estupidez
Sincronizar o acesso ao banco de dados com uma conexão compartilhada.
- Consequências
Escalabilidade zero. Tempos de respostas muito lentos quando mais de 10 usuários estavam utilizando a aplicação.
- O que deveria ter sido feito?
Não fazer isto e utilizar um pool de conexões como c3p0 e usar uma “nova” (reutilizada) conexão retornada do pool para cada ciclo de request / response.
- IDE
- Estupidez
Evitar aprender e utilizar uma IDE.
- Consequências
Falta de habilidade de compilar, testar e fazer o deploy da aplicação rapidamente e / ou geralmente fazer qualquer coisa útil.
- O que deveria ter sido feito?
Familiarizar-me com uma IDE. Ex.: NetBeans, eclipse, etc.
- Transações
- Estupidez
Não usá-las.
- Consequências
Corromper os dados da aplicação.
- O que deveria ter sido feito?
Usar transações do banco de dados. No MySQL usar InnoDB.
- Prepared Statements
- Estupidez
Usar Statements, concatenação de strings e escapar caracteres para montar queries “seguras”.
- Consequências
Possibilidade de SQL Injections na aplicação. É possível logar utilizando por exemplo “or 1=1;delete from users;” e alterar o estado do banco de dados de uma forma muito desagradável.
- O que deveria ter sido feito?
Usar Prepared Statements que montam e escapam corretamente as queries dependendo do driver JDBC utilizado.
- Lógica de Negócios
- Estupidez
Fazer isto nos templates (JSP).
- Consequências
Aplicação de manutenção difícil.
- O que deveria ter sido feito?
Fazer isto utilizando o padrão MVC com servlets ou com um Front Controller. Melhor se utilizar um framework MVC open source como Struts, Spring MVC, etc.
August 30, 2009
Programação
No Comments
Essa semana troquei o repositório svn de um sistema meu do meu desktop para o site http://www.xp-dev.com. Tive que trocar todas as working copies do meu notebook e desktop para referenciar essa nova localização.
Para fazer isso basta utilizar o seguinte comando:
svn sw –relocate <localização antiga> <nova localização>
July 27, 2009
Programação
No Comments
Semana passada no trabalho perdi umas 2 horas com o problema ORA-17410: No more data to read from socket. Em diversos lugares falava que era porque o oracle não estava suportando o modo de conexões compartilhadas. Tentei alterar o oracle para dar o suporte para conexões compartilhadas mas sem sucesso.
Após algumas tentativas, verifiquei que o problema era ocasionado quando fazia um select no banco de dados e esse select utilizava um índice específico. Depois de dropar e recriar o índice este erro parou de acontecer.
July 21, 2009
Java EE
No Comments
Depois de muito tempo consegui fazer minha aplicação utilizando Freemarker (template engine) + Sitemesh (web page layout framework) + Spring (IOC, etc) funcionar.
Basicamente, basta configurar no web.xml o filtro do Sitemesh (com.opensymphony.sitemesh.webapp.SiteMeshFilter), a servlet do Freemarker que vem com o Sitemesh (com.opensymphony.module.sitemesh.freemarker.FreemarkerDecoratorServlet) e a servlet do Spring MVC (org.springframework.web.servlet.DispatcherServlet).
O filtro do Sitemesh é aplicado a todas as requisições, a servlet do freemarker às urls *.ftl e a servlet do Spring às urls *.html.
O problema que eu tive foi que os templates do Freemarker e do Sitemesh não eram encontrados. No web.xml, um dos parâmetros iniciais da servlet do Freemarker é o diretório dos templates (TemplatePath). Configurei este parâmetro para “/WEB-INF/templates/”. E no arquivo decorators.xml configurei que os templates do Sitemesh ficavam no diretório “/decorators”. O que acontecia é que o diretório dos templates do Sitemesh deveriam ficar dentro do diretório dos templates do Freemarker. Logo a estrutura de diretórios é dessa maneira: /WEB-INF/templates/decorators.
Segue abaixo o link com a aplicação de exemplo desta integração:
http://www.fnbrandao.com.br/blog/files/freemarker.tar.gz
May 15, 2009
Esportes, Parapente
2 Comments
Há algum tempo atrás venho pensando seriamente em fazer algum esporte radical. Depois de conversar bastante, achei um esporte interessante: parapente. No dia 18 de março, fui até atibaia para fazer um vôo duplo para ver como que é esse esporte.
O que posso dizer é que é muito bom, e apesar de meu medo sobre a segurança do esporte, este parece ser muito seguro. Ainda não sei quando e se vou mesmo começar a fazer as aulas para voar sozinho.
Seguem abaixo algumas fotos:




As fotos estão em: http://picasaweb.google.com/fabio.nb/ParapenteVooDuploAtibaiaPedraGrande180409
Os vídeos estão em: http://www.youtube.com/view_play_list?p=622B966AA3F0F01C
April 22, 2009
Deep Purple, Shows
No Comments
Show do Deep Purple!!! Atrasadas, mas estão aí as fotos.
Seguem abaixo algumas fotos:




As fotos estão em: http://picasaweb.google.com/fabio.nb/DeepPurple060309
April 22, 2009
Kiss, Shows
No Comments
Kiss!!! You wanted the best, You’ve got the best, the hottest band in the world!
Seguem abaixo algumas fotos:




As fotos estão em: http://picasaweb.google.com/fabio.nb/Kiss070409
February 20, 2009
In Flames, Shows
No Comments
Fui no show do Claustrofobia + In Flames, que foi muito bom. O que foi ruim foi o local do show: Santana Hall (fica na Av. Cruzeiro do Sul, perto do Metrô Carandiru), pois havia uma mureta no meio da pista, e a pista era muito pequena. Mas mesmo assim o show valeu a pena!
Seguem abaixo algumas fotos:




As fotos estão em: http://picasaweb.google.com/fabio.nb/ClaustrofobiaInFlames150209
December 14, 2008
Queen, Shows
No Comments
Fui no show do Queen, que foi muito bom.
Seguem abaixo algumas fotos:




As fotos estão em: http://picasaweb.google.com/fabio.nb/Queen261108
« Previous Entries Next Entries »