quinta-feira, 20 de março de 2014

Retrospectiva de 2 anos e um vislumbre do futuro

Caros leitores! Depois de quase 12 meses, resolvi dar um jeito de separar um tempo para uma nova postagem. Nem que fosse um pouquinho de tempo por dia.


Antes de mais nada, quero manifestar minha satisfação com as visitas ao blog que continuam vindo de tantas partes que eu nem imaginava, e também pedir desculpas por tanto tempo parado. Mas pretendo neste post atualizar os leitores sobre as muitas mudanças que aconteceram na vida deste blogueiro que vos escreve e que também refletirão nos futuros posts do blog.


O "Informata Brasileiro" aqui passou os anos 2011 e 2012 estudando intensamente tecnologias "top of mind" para desenvolvimento de software, tomando como referências radares tecnológicos de empresas influentes no ramo.

terça-feira, 2 de abril de 2013

Quebrando a Cifra de Vigenère

A disciplina de Criptografia é outra que tem se revelado bastante interessante. Na última aula ficou como tarefa quebrar um texto criptografado com a cifra de Vigenère, método de criptografia descrito por Giovan Battista Bellaso em um livro de sua autoria datado de 1553.

Para quem possui pouco ou nenhum conhecimento sobre criptoanálise, este método pode parecer inquebrável, ou seja, indecifrável. Mas através de algumas técnicas básicas é possível quebrá-lo facilmente, como vou demonstrar com um programa que escrevi em Ruby para a tarefa da disciplina.


sábado, 23 de março de 2013

Simulando Redes com NS-3 e Python/C++

Recentemente, em uma das aulas do Mestrado na PUCRS, comecei a brincar com simulação de redes de computadores utilizando o software NS-3, um simulador de eventos de redes focado em pesquisas e uso educacional.

Pretendo compartilhar aqui parte do aprendizado e das descobertas feitas com o uso desta ferramenta.

Vou apresentar uma rápida visão do processo de instalação do ns-3 e dar uma passada no primeiro exemplo que acompanha o pacote do simulador.

sábado, 16 de março de 2013

Mais um pouco de ScalaTest

No post anterior, sobre Mockito, falei um pouco sobre ScalaTest, sem, no entanto, entrar em detalhes.
No post atual, pretendo então relatar alguma experiência que tive com a linguagem Scala e com a biblioteca ScalaTest.

quinta-feira, 14 de março de 2013

Testes com Mockito e um pouquinho de ScalaTest

Recentemente, retornando ao TDD com Java, resolvi experimentar o Mockito. Descobri um mocking framework muito interessante, fácil de utilizar e versátil.


A documentação é relativamente ampla, por isso só vou dar um breve relato de como foi minha experiência, com o intuito também de motivá-lo a explorar mais essa biblioteca e testar em seus projetos.


sexta-feira, 1 de março de 2013

Java 7 e suas novidades de sintaxe

Já há rumores sobre Java 9, mas para quem, assim como eu, ainda estava no Java 6 e se atrasou um pouco para conferir as novidades do Java 7, vale a pena dar uma conferida nas novas facilidades introduzidas na linguagem e como elas podem melhorar o código dos seus projetos.
Algumas mudanças entram na categoria chamada de Syntactic Sugar, o que, resumidamente, são novidades introduzidas somente a nível de linguagem para facilitar a vida do programador, sendo em momento de compilação revertidas à sintaxe padrão. Um exemplo anterior de uma melhoria ao estilo Syntactic Sugar introduzida no Java 5 é o autoboxing e unboxing (conversão automática entre valores primitivos e seus respectivos wrapper objects).
Vou apresentar aqui as seguintes novidades: switch com String, novidades nos numéricos, tratamento de múltiplas exceções, try-with-resources e diamond syntax.

terça-feira, 1 de janeiro de 2013

Que tal migrar para Haml?

Que tal começar 2013 migrando as telas de seus projetos Rails para Haml? Ou pelo menos de um de seus projetos?
A experiência pode ser mais empolgante do que você pensa!

O Rails utiliza ERb na camada de visão por padrão, mas é possível mudar para outras opções e até mesmo criar a sua própria.

terça-feira, 11 de dezembro de 2012

Módulos e Mixins com Ruby

No post sobre blocos em Ruby, rasguei elogios para a linguagem quanto à versatilidade e simplicidade. Neste post vou pular essa parte (que acredito estar implícita) e falar sobre módulos e mixins em Ruby.

Assim como os blocos, os módulos também estão presentes em toda parte no código de uma aplicação desenvolvida com Ruby on Rails. O framework Rails faz amplo uso dessa facilidade da linguagem Ruby para disponibilizar funcionalidades por todas as camadas da aplicação, o que também pode ser explorado pelo desenvolvedor em funcionalidades próprias.

Para quem vem da linguagem Java, módulos podem se parecer com as interfaces, no entanto, diferem em aspectos fundamentais.

terça-feira, 4 de dezembro de 2012

Objetos em JavaScript

Me lembro que fiquei muito intrigado quando ouvi de um colega da área que sua linguagem de programação preferida atualmente era JavaScript. Esse camarada foi instrutor em uma conceituadíssima escola de desenvolvimento e, na ocasião em que nos falamos, era consultor sênior em uma grande empresa igualmente muito bem conceituada, logo, sabia do que estava falando, por isso fiquei mais intrigado ainda.

Na sequência dos acontecimentos, o destino me levou a parar em um projeto onde fiz uso intensivo de JavaScript. Bela coincidência!

Simplificando TDD com FactoryGirl

Com o conceito de Extreme Programming (XP), publicado em 1999 por Kent Beck, surgiu também o conceito de Test Driven Development (TDD), que propôs a elaboração de códigos de testes antes da implementação efetiva da aplicação.
Os testes sendo implementados primeiro são então seguidos pela implementação da funcionalidade que os faça passar. Com isso, desde seu início até a implementação de suas últimas funcionalidades, o software estará o máximo possível coberto por testes que garantam sua estabilidade e confiabilidade. Uma grande vantagem é a possibilidade de sempre poder realizar refatorações no código, bastando garantir que os testes continuem passando, mantendo assim um código limpo e de alta qualidade e manutenibilidade.

Mas o objetivo aqui é falar da FactoryGirl, uma RubyGem criada pela thoughtbot que simplifica o desenvolvimento de TDD em Rails, sendo uma alternativa ao uso de fixtures.