terça-feira, 8 de janeiro de 2013

Redis - Otimizando sites como NoSQL

Bom dia,
estou estudando sobre NoSQL com Redis e achei um slide muito interessante  de Allisson Azevedo, com uma abordagem muito prática, me ajudou muito em meus estudos e foi muito esclarecedor. Espero que ajude vocês que estão passeando pelo mundo NoSQL.

quarta-feira, 22 de agosto de 2012

Checked ou Unchecked?

Bom Dia,

hoje enquanto navegada no blog da Caelum, encontrei um artigo de base muito intressante, com um tema que muita gente não explora a fundo e nem reflete muito sobre o assunto, Exceptions.
Um dos trechos do texto mostra que isso é uma verdade "Quantas vezes você não ficou nervoso com o seu colega desenvolvedor, que jogou uma exceção sem mensagem nenhuma e não há como ter a mínima idéia do que aconteceu?", isto já aconteceu comigo inumeras vezes, me deparar com uma exception que me obrigou a depurar o código e encontrar a sua origem para fazer o tratamento correto, e não foi nada agradavél perder todo este tempo que poderia ter cido menor se o desenvolvedor tivesse tratado corretamente aquela exceção.

Espero que seja de grande ajuda ...Lidando com Exceptions

quarta-feira, 11 de abril de 2012

Encontrando dependencias com "Maven Repository"

O post hoje vai ser bem objetivo e diréto.

Durante o kickoff de um projeto aqui na empresa, reparei que alguns colaboradores estavam encontrando suas dependencias de umas formas meio complicadas, logo imaginei que você poderia ter as mesmas dificuldades então lá vai minha dica: quando você não estiver encontrando a sua dependencia no site do próprio fornecedor, você pode utilizar uma ferramenta muito interessante "Maven Repository" ele é um grande indice onde você pode encontrar suas dependencias de forma simples. Basta especificar o nome do grupo, artefato ou descrição e ele tráz todas as dependencias, listadas versão por versão e clicando na versão desejada ele ainda apresenta todas as dependencias relacionadas ao artefato em questão, sem mais delongas o link esta aqui embaixo.

terça-feira, 18 de outubro de 2011

Cron e Crontrab - agendando tarefas no Unix / Linux

Na empresa que trabalho atualmente, temos um software que realiza diversas interações com softwares escritos em C/C++, Shell, Python, Perl e alguns softwares do Linux.
Hoje tive que realizar uma interação entre JAVA e Cron, vou explicar um pouco sobre este que achei muito simples e interessante.

Oque é Cron e para que serve?
É um software de agendamento de rotinas para a plataforma Unix.
Imagine que você tem um determinado diretório que precisa ter seu conteúdo movido para outro diretório e voltar ao seu conteúdo padrão de tempos em tempos,
ou um exemplo mais claro, você precisa gerar um backup de sua pasta local para a pasta de rede todo dia no final do espediente por segurança.
Utilizando o serviço de agendamento do Cron você pode agendar qualquer tipo de tarefa seja ela uma tarefa de manutenção, segurança ou meramente administrativa.
Você pode executar comandos em shell, python, perl, etc ...

Agora vamos ver o Cron em funcionamento:
O primeiro passo é editar o arquivo de configuração do Cron que se chama Crontab.

O arquivo deve ser preenchido da seguinte maneira:
*     *      *     *     *     Comando_para_executar.sh
┬   ┬    ┬    ┬    ┬
│    │    │    │    │
│    │    │    │    │
│    │    │    │    └───── day of week (0 - 7) (Sunday=0 or 7)
│    │    │    └────────── month (1 - 12)
│    │    └─────────────── day of month (1 - 31)
│    └──────────────────── hour (0 - 23)
└───────────────────────── min (0 - 59)

Um exemplo bem simples:
* * * 18 30 /home/lucasluiz/bin/backup.sh

Você deve preencher os parametros com os seguintes valores:
Minutos: de 0 a 59;
Horas: 0 a 23;
Dias do mês: 0 a 31;
Mês: de 1 a 12;
Dias da semana: de 0 a 7;
Comando: comando, tarefa, script, processo que deve ser executado em seu Job.

Este foi um post bem simples para repassar a experiência de hoje, até mais!

Referências:

quinta-feira, 13 de outubro de 2011

PHP + Mac OSX, Problemas simples pedem soluções simples

Enquanto fazia alguns testes no meu apache. Me deparei com o seguinte erro:
"Error: 2002 - No such file or directory"

Não é muito dificil lembrar o nome de um arquivo importante para qualquer comunicação que seja com MySQL "mysql.sock".
Um problema simples de resolver, vamos lá:

1 passo: Encontrar o arquivo "mysql.sock"
sudo find / -name mysql.sock
/private/tmp/mysql.sock

2 passo: Encontrar o arquivo "php.ini"
sudo find / -name  php.ini
/private/etc/php.ini

3 passo: Editar o arquivo "php.ini" e alterar o parametro do destido "mysql.sock"
sudo vi /private/etc/php.ini

4 passo: Altere o valor da linha
"mysql.default_socket = /var/mysql/mysql.sock"
por
"mysql.default_socket = /private/tmp/mysql.sock"

Agora é só reiniciar o apache e ver o resultado, até a próxima!

terça-feira, 27 de setembro de 2011

Spring Framework e UTF-8

Se não estou enganado, em cinco anos trabalhando como analista de sistemas, foi a primeira vez  que me deparei com um problema de encodificação "UTF-8".
Tentei resolver o problema de diversas maneiras:


O projeto esta em Struts 1.3.8, o primeiro passo foi verificar a resposta da minha requisição.
request.getParameter("param")
new String((request.getParameter("param").getBytes(), "UTF-8")
new String((request.getParameter("param").getBytes(), "ISO-8859-1")
E confirmei minhas suspeitas, a String chegava na action do struts com os valores errados e não achei maneiras de converte-los.


Verifiquei as JSP's e as definições de encode estavam corretas:
<%@page contentType="text/html" pageEncoding="UTF-8"%>


Em seguida, verifiquei um dos arquivos de configuração do Tomcat o "server.xml":
<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" URIEncoding="UTF-8" />


E pra variar um pouco, encontrei a solução no site do GUJ: implementar um filtro do Spring.
Após adicionar algumas linhas ao "pom.xml" e ao "web.xml":


"pom.xml"
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6</version>
</dependency>


"web.xml"
<filter>
<filter-name>charsetFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>charsetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


Testei em diversas rotinas do aplicativo e todos os problemas com encodificação e acentos estavam resolvidos.

quinta-feira, 1 de setembro de 2011

Habilitando PHP no Mac OSX


Vamos lá, não há muito oque falar neste post tentei abordar tudo de uma forma simples.


No terminal digite: 
'sudo vi /private/etc/apache2/httpd.conf'


Descomente a linha:
LoadModule php5_module      libexec/apache2/libphp5.so


Entre no diretório onde esta o php.ini.default e faça uma cópia dele para definir os parâmetros do php5
caso contrario as configurações padrão serão aplicadas automaticamente:
'cd /private/etc'
'sudo cp php.ini.default php.ini'


Edite o arquivo 'php.ini' na linha 305 procure a palavra 'error_reporting' altere para: 
'error_reporting = E_ALL'


Importante: Esta alteração vai impedir que alguns erros importantes sejam omitidos.


Agora a parte gráfica que deixa tudo mais fácil, rs :)
System Preferences > Sharing > Internet & Network > Web Sharing


Na tela acima você já pode visualizar os diretórios tanto via http para serem acessados pelo navegador e onde salvar os arquivos físicos.


Qualquer dúvida estou ai ...


http://foundationphp.com/tutorials/php_leopard.php

segunda-feira, 29 de agosto de 2011

Sonatype Nexus - Configuração e Instalação (Maven)

Para quem não conhece o Maven:
Um dos principais problemas do desenvolvimento java é a gestão de suas dependências, sejam elas WebServices, Jars, etc ...
Maven foi implementado justamente ai para corrigir isso, gerencia suas dependencias e builds, através de um arquivo centralizado "pom.xml".
Mas isto é assunto para outro post especifico sobre Maven.
Agora vamos lá ....


Primeiro passo é fazer download do Nexus no site da Sonatype e fazer deploy em um WebContainer de sua escolha.
http://nexus.sonatype.org/downloads/nexus-webapp-1.9.2.2.war



Eu particularmente implementei em um Tomcat :)
Logo após é simples acessar http://localhost:8080/nexus-webapp-1.9.2.2/ e pronto ... esta funcionando.


Por favor altere a senha padrão, usuario e senha padrão são:
usuario: admin
senha: admin123


Agora chegou a parte dificil deste tutorial facil, como configurar meus aplicativos maven para utilizar o meu  proxy?








Qualquer dúvida sobre a configuração, e implementação é só mandar email ou comentar 
aqui no post.
Até a próxima ...


http://maven.apache.org/
http://sonatype.org
http://nexus.sonatype.org/index.html

sexta-feira, 26 de agosto de 2011

Podcasts extremamente indicados


Este post vai ser breve, gostaria de deixar uma relação de Podcasts que eu acompanho sobre TI.
Comecei a ouvir Podcast pra passar o tempo no busão, metro, etc ... aquele trânsito de SP que todos nós amamos, hoje só falta mandar email ou ligar pro pessoal perguntando quando sai o próximo, vale citar que todos os podcasts abaixo tem ITunes :)

GuanaCast
Extremamente inreverente, aborda temas extremamente interessantes sobre assuntos técnicos, carreira, Mercado convidados interessantissimos.
Os pessoal tem uma ótima didatica tanto pra quem esta chegando na area de TI, quanto pra quem tem experiencia.
SEO, CMS, Twitter, Software Livre, Google, Links Patrocinados.

Grok Podcast
Conteúdo técnicamente muito rico e aborda uns temas muito interessantes, curiosidades e afins.
Rails on Rails, Python, Django, Node.js, *Erlang, IOS, Android
 
Databasecast
Aborda muitos temas especificos de banco de dados com coisas que são usadas no dia-a-dia.
SQL Server, Oracle, MySQL, PostgreSQL, NoSQL, DB2, Informix, Sybase.