sexta-feira, 24 de junho de 2011

RMI e sua relação com Padrões de Projeto

Eu percebi que algumas pessoas estão tendo dificuldades com a implementação do trabalho de RMI do prof. Marinaldo. Então, pensei em falar um pouco sobre como funcionam as coisas por trás do RMI.

Como vcs devem ter visto em vários exemplos na internet, pra implementar um serviço servidor-consumidor em RMI é necessário a criação de uma interface que represente o objeto a ser compartilhado e uma classe no servidor que implemente essa interface. Além disso, é necessário criar uma Stub para o objeto em si e que deve estar presente no cliente, junto com a interface.

Pode parecer um pouco complexo mas não é. Para prover a transparência que o RMI se propõe a fazer no código, ele usa um padrão de projeto chamado Proxy Pattern. Este padrão diz o seguinte: "O objetivo do padrão Proxy é criar um objeto que faça a intermediação entre um objeto real e outros objetos que façam uso deste"...

terça-feira, 14 de junho de 2011

Slony: Clusterização e Replicação de Dados no Postgres

Imagine a seguinte situação: Você é um feliz proprietário de uma empresa que oferece serviços pela internet (pode ser qualquer serviço, seja criativo) e possui seu site em php, seu banco de dados postgres, e é muito feliz com o que faz.

No entanto, você têm a brilhante idéia de oferecer um serviço web (Soap, RMI, Corba, whatever) para o serviço que você já disponibiliza. Com o tempo, seu serviço vai ficando mais e mais famoso, e o acesso vai ficando pesado. Você aumenta o seu link, muda a infra-estrutura interna da sua startup mas algo parece não estar acelerando.

Com certeza o seu gargalo pode ser o banco de dados.

Quando pensamos nesses sistemas com grande volume de dados, a primeira palavra que vem a mente é escalar. Além de desejar que cada uma das pesquisas no sistema executem o mais rápido possível, precisamos criar meios para que, quando necessário, seja fácil adicionar mais recursos (como memória ou novos servidores) e o sistema consiga tirar proveito deles. Para isso muitas vezes precisamos ir além das diversas otimizações de performance e escalabilidade, como por exemplo a criação de um índice para buscas, o uso de caches e de chamadas assíncronas.

quinta-feira, 9 de junho de 2011

Criando senhas seguras (ou você têm exatamente 3 senhas)

Hoje vamos falar de algo diferente. Vamos falar de senhas. Vi um artigo no Hacker News sobre senhas e resolvi falar um pouco sobre o assunto.

Primeiramente, repetindo o título do artigo, você têm exatamente três senhas, não é mesmo?

Você têm exatamente três senhas. A primeira delas você usa para todos aqueles logins que você não dá muita atenção e que não possuem nada de importante que possa ser alvo de roubo de identidade. É a senha que você usa quando um site qualquer solicita que você "crie uma conta gratuita" para fazer alguma coisa, e que você provavelmente não voltará mais a entrar.

A segunda senha, é uma senha mais elaborada. Uma senha de média segurança. Na maioria das vezes, têm entre 8 e 12 caracteres alfanuméricos, e muito improvavelmente, não possui caracteres especiais. Esta é a senha que você usa no seu e-mail, no facebook, no MSN e em outros serviços que você preze um pouco pela segurança.

A terceira senha é a que você usa para contas bancárias, ou para aquele único e-mail que serve de canal para centenas de serviços (Obrigado Google) ou para aquele seu perfil fake que você não quer que ninguém descubra. Essa senha é mais elaborada, e em alguns casos, você a criou sem usar nenhuma informação pessoal sua.

Ou, como na grande maioria dos casos, você possui só uma senha, que compartilha com todos os serviços citados aí em cima. A maioria das pessoas não dá muita atenção às suas senhas e, ainda arrisco dizer, que a maioria esmagadora não têm sequer um gerenciador de senhas ou uma política de senhas. Too bad for you.

Vocês lembram o que aconteceu com a Sony há algumas semanas? Segundo o link do começo desse post, a maioria das pessoas usava a mesma senha do Facebook para se conectar na rede da Sony. E ninguém pode se considerar seguro quando se trata de senhas. Então, vamos aprender um pouco do bê-a-bá da segurança de senhas ...

Política de criação de Senhas

Criar senhas fortes e seguras para TODOS os serviços online que você usa, e mantê-las seguras, não é algo que você deveria pensar em fazer ...

quinta-feira, 2 de junho de 2011

Você NÃO é um Engenheiro de Software

Semana passada foi dia do Orgulho Nerd e também o Dia da Toalha e também o dia que saiu Star Wars - A New Hope foi lançado, em 1977. E ainda no espírito, estava aqui a pensar sobre o que é desenvolvimento de software na verdade. Há uma quantidade enorme de metáforas à respeito disso:


Quais são as melhores metáforas?

Na minha opinião, a melhor de todas é a de que a de que programação é como cuidar de um Jardim, que nem diz Andy Hunt and Dave Thomas. Este texto vêm abordar justamente esta idéia. Espero que vocês gostem...