29.8.05

Roubo de celular

Nunca roube um celular de um desenvolvedor ;)

25.8.05

Acegi Security

Um framework de segurança impressionante e muito bem documentado para uso com o Spring Framework.

Summary: Acegi Security is an open source project that provides comprehensive authentication and authorisation services for enterprise applications based on The Spring Framework. Acegi Security can authenticate using a variety of pluggable providers, and can authorise both web requests and method invocations. Acegi Security provides an integrated security approach across these various targets, and also offers access control list (ACL) capabilities to enable individual domain object instances to be secured. At an implementation level, Acegi Security is managed through Spring's inversion of control and lifecycle services, and actually enforces security using interception through servlet Filters and Java AOP frameworks. In terms of AOP framework support, Acegi Security currently supports AOP Alliance (which is what the Spring IoC container uses internally) and AspectJ, although additional frameworks can be easily supported.

23.8.05

Torvalds licencia e cobra pelo uso do nome Linux

Aprendam, crianças: é assim que se ganha com software livre! :)
(já pensou se ele decide cobrar royalties de todo mundo...?)

When to use XML (again)

A moda do "XML everywhere" parece estar diminuindo, depois do modismo que tomou conta dos últimos anos (e levou à construção de milhares de sistemas lentos e mal estruturados, mundo afora). Para evitar novos erros básicos de utilização de uma tecnologia que já se consolida como um dos "building blocks" essenciais em diversas arquiteturas de sistemas, a pergunta nunca deve ser esquecida: quando usar XML?

22.8.05

Os erros da versão 1.0

Por que projetos novos falham? Por que é tão comum jogar-se a versão 1.0 fora e refazer tudo do zero, quando um projeto entra em produção ou começa a sua evolução? Alguns dos erros mais comuns são fáceis de detectar, e (espera-se) corrigir.

19.8.05

Drivers JDBC

Uma lista com os mais comuns drivers JDBC disponíveis, e instruções de uso. Um bookmark interessante!

17.8.05

Criptografia Quântica

O Diretor Executivo, Sr.Leonardo icciardi, ministrará no 1º Congresso de Segurança da Informação na UFRJ, no dia 23 desse mês às 11 da manhã, a primeira apresentação de um sistema em pleno funcionamento com o uso da Criptografia Quântica.

Mais de detalhes sobre a Criptografia Quântica em http://www.dsc.ufcg.edu.br/~gmcc/mq/criptografia.html

A guerra contra o terrorismo...

...Em uma versão Bourne shell. Para o bom geek que não entende direito de política internacional, mas adora compilar um kernel.


$ cd /middle_east
$ ls
Afghanistan Iraq Libya Saudi_Arabia UAE
Algeria Israel Morrocco Sudan Yemen
Bahrain Jordan Oman Syria
Egypt Kuwait Palestine Tunisia
Iran Lebanon Qatar Turkey

$ cd Afghanistan
$ ls
bin Taliban
$ rm Taliban
rm: Taliban is a directory
$ cd Taliban
$ ls
soldiers
$ rm soldiers
$ cd ..
$ rmdir Taliban
rmdir: directory "Taliban": Directory not empty
$ cd Taliban
$ ls -a
. .. .insurgents
$ chown -R USA .*
chown: .insurgents: Not owner
$ cd ..
$ su
Password: *******
# mv Taliban /tmp
# exit
$ ls
bin
$ cd bin
$ ls
laden
$ cd ..
$ rm -r bin/laden
bin/laden: No such file or directory
$ find / -name laden
$
$ su
Password: *******
# mv bin /tmp
# exit
$ pwd
/middle_east/Afghanistan
$ cd /opt/UN
$ ln -s /Bad_Guys/Al_Qaeda /middle_east/Iraq/.
ln: cannot create /middle_east/Iraq/Al_Qaeda: Permission denied
$ su
Password:*******
# ln -s /Bad_Guys/Al_Qaeda /middle_east/Iraq/.
# cd /middle_east/Iraq/Al_Qaeda
Al_Qaeda: does not exist
# rm /middle_east/Iraq/Al_Qaeda
# mkfile 100g /middle_east/Iraq/Al_Qaeda
mkfile: No space left on device
# rm /middle_east/Iraq/Al_Qaeda
# cd /opt/Coalition/Willing
# mkfile 1b /middle_east/Iraq/Al_Qaeda
# chown -R USA:Proof /middle_east/Iraq/Al_Qaeda
#exit
$ cd /middle_east/Iraq
$ ls
saddam
$ ls
saddam
$ ls
saddam
$ ls -a
. .. saddam
$ find / -name [Ww][Mm][Dd]
/Korea/North/wMd
$ wall Propaganda.txt
Broadcast Message from USA (pts/1) on USS_Abraham_Lincoln Th May 1st
Mission Accomplished!
$ rm saddam
saddam: No such file or directory
$ find / -name saddam
/var/opt/dictators/spiderhole/saddam
$ wall NewsWorthy.txt
Broadcast Message from USA (pts/1) on Time.Magazine Sat Dec 13
We Got Him!
$ mv /var/opt/dictators/spiderhole/saddam /opt/jail
$ cd /opt/USA
$ cp -Rp Democracy /middle_east/Iraq
$ cd /middle_east/Iraq/Democracy
$ ./install
Install Error: Install failed. See install_log for details.
$ more install_log
Installed failed!
Prerequisite packages missing
Conflicting package Wahhabism found in /midde_east/Saudi_Arabia
Packages Church and State must be installed separately
File System /PeakOil nearing capacity
Please read the install guide to properly plan your installation.
$

15.8.05

John Carmack e o J2ME

Falando nele, encontrei este post no seu blog que fala sobre a experiência de desenvolver jogos para celulares, principalmente usando Java. Tanto os pontos positivos quanto negativos são ressaltados, além de alguns comentários sobre as diferenças entre o desenvolvimento de jogos megalomaníacos para PC e os bem limitados que cabem nas plataformas móveis atuais. Ele também fala um pouco de como surgiu a idéia do DoomRPG.

Alguns trechos para atiçar os ânimos:

The biggest problem is that Java is really slow. On a pure cpu / memory / display / communications level, most modern cell phones should be considerably better gaming platforms than a Game Boy Advanced. With Java, on most phones you are left with about the CPU power of an original 4.77 mhz IBM PC, and lousy control over everything.


[...]


Write-once-run-anywhere. Ha. Hahahahaha. We are only testing on four platforms right now, and not a single pair has the exact same quirks. All the commercial games are tweaked and compiled individually for each (often 100+) platform. Portability is not a justification for the awful performance.

Quake 3 GPL

Os desenvolvedores de jogos e pretendentes no mundo inteiro estão de pulso acelerado por causa dessa notícia: John Carmack anunciou que o código-fonte de Quake 3 será liberado, licenciado pela GPL, assim como foi feito antes com os jogos anteriores da Id.

Já é possível antecipar os milhares que baixarão o código-fonte inteiro, para nunca olhar para ele (bom talvez uma ou duas vezes, rapidamente). Mas também devem aparecer vários projetos interessantes aproveitando o código, como os que já existem baseados em Q2, o Quake original e até mesmo Doom.

Do ponto de vista da engenharia de software, Quake 3 é um sistema enorme e de grande complexidade. É interessante notar que a indústria de jogos não é muito conhecida por usar os métodos da moda, e que John Carmack é menos "antenado" ainda, apesar da qualidade inegável dos jogos da empresa.

14.8.05

Calculando Estimativas: o Método de Pontos de Caso de Uso

Estimar o porte - e conseqüentemente, o custo de produção - de um sistema não é uma tarefa fácil. Na grande maioria dos casos, as estimativas costumam ser lançadas sem qualquer preocupação com uma medição formal, resultando em cronogramas imprecisos - e algumas vezes, desastrosos.
A análise de sistemas Orientados a Objetos já utiliza, comumente, os diagramas de Casos de Uso (Use Cases) para descrever as funcionalidades do sistema de acordo com a forma de utilização por parte dos usuários. A técnica de análise de dimensão por Casos de Uso foi criada para permitir que seja possível estimar o tamanho do sistema ainda na fase de levantamento de Casos de Uso, utilizando-se dos próprios documentos gerados nesta fase de análise como subsídio para o cálculo dimensional.
Artigo completo aqui!

12.8.05

Ruby + Eclipse

Pra quem anda se aventurando no Ruby on Rails e não é habituado com Ruby, existe um plugin interessante para a IDE Eclipse: o RDT faz syntax highlighting, code completion, teste de expressões regulares... Nice!

11.8.05

Upgrading to Hibernate 3

Certo dia você acorda, inspirado, temerário e sentindo-se o mais confiante dos geeks.

- Já sei! Vou fazer um upgrade na camada de persistência de nosso sistema! Deixa eu só baixar o Hibernate 3...


Nem tudo são flores. O último release do Hibernate agregou tantas mudanças arquiteturais e conceituais que a equipe do projeto achou por bem eliminar a compatibilidade (backward compatibility). Para o desespero dos desinformados...

O artigo Upgrading to Hibernate 3 - a war story é um relato de quem já teve que passar pela atualização e sobreviveu. Sem maiores traumas, e sem noites sem dormir.

10.8.05

'Write once, run anywhere' not working for phones

O padrão J2ME foi definido e proposto para evitar que a grande variedade de form factors dos dispositivos móveis tornasse o desenvolvimento de aplicações um inferno de incompatibilidades e versões dedicadas. O resultado: um padrão muitíssimo limitado (MIDP 1.0), seguido por um padrão visualmente mais flexível, mas com severas restrições de acesso a recursos de hardware (MIDP 2.0). O MIDP 3.0 vem por aí, e (mais uma vez) promete ser a solução de todos os problemas. Mas com os dispositivos móveis evoluindo mais rápido do que qualquer outro dispositivo computacional da história, será que o padrão vai chegar a tempo?

Este artigo do cnet.com debate o problema e, como sempre, joga lenha na eterna (e cansativa) discussão "Java versus qualquer outra coisa"...

7.8.05

J2ME Polish

Uma ferramenta de build que permite "polir" aplicações J2ME, adaptando-as a dispositivos com características específicas, com um mecanismo meio estranho de tags (macros?) espalhadas pelo código da aplicação.
O site também inclui uma relação de devices J2ME, incluindo as APIs que eles implementam.

5.8.05

Syndromes of Forgotten Programmers

Quanto mais você cospe linhas de código (e inevitavelmente, acaba esbarrando nas linhas de código cuspidas por outros desenvolvedores mundo afora), mais percebe como pessoas diferentes pensam diferente - e acabam por criar software que reflete suas mentes (maníacas, complicadas, pouco criativas, preguiçosas...). As "síndromes de programador" são tão comuns que deveriam ser ensinadas em faculdade.

The Rube Goldberg Syndrome
Rube Goldberg was a cartoonist famous for incredibly complex solutions to life’s simpler problems. His programming counterparts never tire of demonstrating to everyone what incredibly complex and talented programmers they are...even in simple situations that don’t call for it.

The Mother Hen Syndrome
Mother Hens have a bad case of nesting instinct, at least when it comes to IF..THEN..ELSE constructs. I recently had to debug a program with 14 levels of nested IFs. These probably do not occur as often as they seem. It’s just that if over-nested IFs exist in a program a debugging trail generally leads to them.

The Garbage Collector Syndrome
Garbage Collectors are incapable of deleting a line of code, no matter how useless or obsolete it might be. The programs they work on resemble mazes, full of commented-out code and unused modules. Imagine what these programs will be like in another 10-20 years!


E tem muito mais no artigo "Syndromes of Forgotten Programmers".

4.8.05

MIDP 3 Use Cases - Java ME Developer community input

The MIDP3 Expert Group (EG) is currently in the process of defining use cases to be used as the basis for the MIDP3 requirements definition.

The EG considers your feedback/input on use cases important.

To capture your input, a new bucket has been created on the J2ME Devcommunity Wiki. Use cases that are captured will be passed on to theMIDP3 Expert Group for consideration.

Before posting your use cases, please read existing entries to avoid duplicates. Also, please followed the specified format.

You can find the "JSR 271 MIDP3 Developer Community Use-CasesRepository" on the main Wiki clone page @ http://www.j2medeveloper.com/wiki.

2.8.05

Mentawai 1.1

Foi lancado uma nova versão deste framework WEB "made in Brazil". As novas features vão desde autorização, IoC e file upload até diversas melhorias e ajustes.

Para quem não conhece, o Mentawai vem com uma proposta de ser um framework com uma curva de apredizagem bem pequena para aquelas pessoas que não tem tempo a perder aprendendo um framework novo. Só para ter uma ideia, ele chegou a abolir o uso de XML para as suas configurações.

1.8.05

As 7 Fases de um Projeto

1. Entusiasmo
2. Desilusão
3. Confusão
4. Pânico
5. Caçada aos culpados
6. Punição dos inocentes
7. Promoção dos não participantes