A Caelum utiliza softwares e bibliotecas open source e valoriza a participação nessa comunidade. Nossos desenvolvedores participam não somente dos projetos open source da Caelum, mas também têm seus próprios e colaboram em outros projetos nacionais e internacionais.
Seja fazendo patches ou idealizando e construindo-os para suprir nossas próprias necessidades, esses são os projetos opensource dos quais participamos e uma breve descrição de cada um deles, assim como o site do projeto - onde você pode conseguir mais informações.
VRaptor
Framework controlador MVC nacional, baseado fortemente em inversão de controle, injeção de dependências e, em especial, convenções sobre configurações. Bem simples de usar, é uma opção para quem está cansado dos inúmeros XMLs. É utilizado em diversas empresas e projetos opensource, no Brasil e no exterior.
GUJ
O Grupo de Usuários Java, fundado em 2001 e hoje com mais de 50.000 usuários, é controlado por uma aplicação em Java para a web que utiliza VRaptor e Hibernate. Uma terceira versão em Ruby on Rails está em etapa final de desenvolvimento e substituirá a atual em breve.
Caelum Stella
O Stella é um projeto em Java totalmente desenvolvido utilizando TDD que visa suprir as necessidades do dia a dia brasileiro. Ele conta com validadores de documentos nacionais, geradores de boleto, entre outras funcionalidades. Já está sendo utilizado por desenvolvedores da ADIBE, da UOL e outras empresas.
JForum
O JForum é um sistema de fóruns em Java completo e robusto, com uma interface atraente e código simples e organizado, tornando-o fácil de estender e customizar. Atualmente, é utilizado em fóruns de grande movimento como o GUJ e o JavaRanch.
Hibernate
Largamente utilizado por desenvolvedores Java e, mais recentemente, .Net, o Hibernate é uma ferramenta ORM que permite tratar em sintaxe Java os objetos que serão guardados ou recuperados de um banco de dados. Entre outras ventagens, o Hibernate é capaz de lidar com dependências complexas entre tabelas num banco de dados.
Mirror
Mirror é um projeto pessoal de membros da Caelum que cansaram de dar voltas e mais voltas para utilizar a API de Reflection do Java e decidiram desburocratizar seu uso. Com o Mirror, através de uma interface fluente é possível utilizar reflection de um modo muito mais legível e simples.
JQuery
Uma biblioteca simples e concisa que simplifica o trabalho necessário para websites dinâmicos que necessitam de funcionalidades como AJAX e portabilidade entre browsers.
Tubaina
Desenvolvido em Java J2SE, Tubaina é um gerador de apostilas que tem a função de simplificar a geração de livros-texto. Escrevendo usando uma marcação simples, obtemos saídas em HTML ou PDF bonito e customizável, com syntax highlight de código Java, Ruby, .properties e XML, além de quadros de destaque e listas.
Selenium DSL
Para fazer testes de integraçao, nota-se a dificuldade em utilizar o Selenium puramente. Só que testes precisam ser facilmente escritos, então criamos essa DSL que atende a grande parte das necessidades diárias do programador Java web, incluindo verificação do HTML gerado e do JavaScript executado.
XStream
Uma biblioteca em Java criada pela Codehaus para facilitar a serialização de e para XML, antes tão complexa com o SAX. O XStream facilita esse processo, criando XML simples e conciso ao guardar apenas as informações que realmente não podem ser obtidas através de reflection.
Paranamer
O Paranamer é um projeto da Codehaus que resolve um grande problema ao lidar com Reflection em conjunto com frameworks para web e linguagens de script como Ruby: o fato de o compilador jogar fora os nomes dos parâmetros. Essa biblioteca guarda em cache os nomes de parâmetros necessários para lidar com esses frameworks e linguagens.
Waffle
Um framework de Java para a web também baseado em convenção sobre configuração. Bastante fácil de utilizar, o Waffle conta também com uma taglib bastante completa e que supre as necessidades do dia a dia da programação para web.
PicoContainer
Um dos pioneiros em inversão de controle e injeção de dependências, o PicoContainer é uma versão minimalista e funcional dessa prática bastante adotada em projetos grandes por facilitar testes unitários e melhorar manutenabilidade, entre outras vantagens, com uma sintaxe simples.
Maven
Maven é uma solução da Apache, hoje amplamente utilizada em softwares livres, que visa automatizar o processo de gerenciamento de dependências e build do projeto. Entre outras vantagens, o Maven é uma ferramenta para Java estensível com o uso/construção de plugins.
HInjector
O HInjector é uma biblioteca que estende containers como o PicoContainer e o Spring para lidar com injeção de dependências em objetos gerenciados pelo Hibernate. Com isso, podemos implementar DDD de forma mais simples, por exemplo.
Jetty Rails
Esse projeto procura facilitar o desenvolvimento com JRuby on Rails eliminando a necessidade de reempacotar e fazer deploy a cada modificação. Potencializando o feedback instantâneo, o JettyRails permite rodar aplicações em JRuby on Rails numa JVM Jetty.
Clustered JRuby
Clustered JRuby é um projeto que provê uma forma de compartilhar objetos entre várias instâncias de JRuby. A idéia é permitir a criação de clusters em JRuby, utilizando, para isso, Terracota ou NailGun .
Tail
Uma biblioteca em Java para Desktop de análise grafista de ações da bolsa de valores, o Tail é capaz de receber e processar informações provenientes da BOVESPA e até sugerir bons momentos de compra e venda, baseado em técnicas usadas por economistas. O projeto tem como público alvo os investidores homebroker.
JOrigami
JOrigami é uma implementação de um solucionador do "Fold and Cut problem". É provado que qualquer polígono dado pode ser dobrado. O projeto Java é capaz de projetar quantas e quais dobras são necessárias para chegar ao polígono pedido.
AcMus
O AcMus é um projeto que visa mensurar a qualidade acústica de salas, emitindo um sinal e medindo a resposta capturada pelo microfone da máquina em que roda. O projeto é desenvolvido na USP e já foi utilizado em diversas salas de exibição no Brasil e na Alemanha.
Archimedes
Um CAD gratuito, o Archimedes é desenvolvido em Java para Desktop, principalmente por alunos e ex-alunos do IME/USP e oferece, atualmente, as ferramentas de um CAD 2D. Entre seus clientes, estão arquitetos estudantes de arquitetura brasileiros e estrangeiros, principalmente da Itália.
PythonGraph
O PythonGraph é uma biblioteca que facilita lidar com grafos em Python. O projeto atualmente dá suporte a grafos com ou sem direção e pesos nas arestas. Diversos algoritmos comumente necessários também têm sua implementação, como fecho transitivo, buscas em largura e profundida, etc.
IEs4Linux & IEs4Mac
Uma grande dificuldade dos desenvolvedores web e designers que utilizam Linux e Mac é como verificar o visual da sua página no Internet Explorer. IEs4Linux e IEs4Mac provêem a solução para esses desenvolvedores através de um Bash Script que faz funcionar o browser da Microsoft em Linux.
Tatame
Um sistema gerenciador de Dojos de programação desenvolvido em Ruby on Rails que permite agendar dojos, confirmar presença e postar retrospectivas. Apesar de bastante simples, é o sistema que gerencia os Dojos na Caelum.
Panda
Um projeto criado para atender as necessidades dos professores de computação da USP, o Panda permite que professores e monitores coloquem enunciados e recebam exercícios de alunos. O sistema em Java para web ainda conta com fórum de discussão e mensagens particulares, entre outras funcionalidades.
Pulga
O Pulga é uma ferramenta que visa proporcionar aos estudantes e pesquisadores de matemática uma forma mais fácil de estudar sistemas dinâmicos complexos sem ter que se preocupar em escrever código e compilá-lo.
LibCGI
Programar em CGI pode ser muito complicado e sua curva de aprendizado é certamente um tanto mais longa do que o que se deseja. A LibCGI é uma biblioteca que permite programar em C para CGI.
TestSlicer
Acelera o processo de build de um projeto, permitindo que o mesmo só execute os testes afetados pelo último commit.