quarta-feira, 22 de setembro de 2010

Mude suas idéias sobre o Javascript

É do time dos programadores que odeiam Javascript e amaldiçoam o dia em que a linguagem surgiu? Bom no vídeo abaixo Doug Crockford fala das partes boas da linguagem. Ele admite que muita coisa na linguagem é medonha e nos faz duvidar da qualidade da mesma como o operador "+" que serve para somar e concatenar e os erros silenciosos que podem surgir no código entre outras inconveniências. Mas ele comenta que muita coisa chata é devido ao modelo DOM adotado pelos browsers (maior fonte de incompatibilidades). Além do mais a vida de um programador Javascript hoje em dia é bem melhor do que alguns anos atrás, hoje temos bibliotecas como JQuery, ferramentas como FireBug e browsers um pouco mais compatíveis.

Vendo o cara falar da linguagem com uma certa paixão me fez olhar para ela com outros olhos. Ah! E de quebra a apresentação tem umas partes bem engraçadas.

quarta-feira, 15 de setembro de 2010

O Prazer de programar

Depois de ver o yahoo fazer um instant search 5 anos atrás (e não ter conseguido emplacar), o google fazer um recentemente e todos os outros que vieram depois (youtube, google maps, twitter, será que existe um instant search para o Osama Bin Laden?) resolvi fazer um ... hã, bem... menos cristão digamos.

É o RedTube Instant Search. Para quem não conhece o RedTube, se tiver mais de 18 anos é só procurar no google e se não tiver vai acabar procurando mesmo assim né? O processo de funcionamento é bem simples, ele pega o termo de busca digitado envia para o mecanismo de busca do site, lê o html gerado pelo site e retorna o primeiro vídeo do resultado. Para ler o html gerado usei a excelente biblioteca SimpleDOM que é escrita em PHP mesmo.

O código está bem cru, não checa por eventuais erros, quando por exemplo não se acha nenhum vídeo a partir do termo desejado. Devo dizer que foi um pouco difícil se concentrar no projeto, depois de testá-lo estava com a mão doendo, de tanto programar é claro. Link para donwload do código logo abaixo:

Update: Um gentil samaritano cedeu um pouco de espaço para experimentação do programa, não preciso dizer que a página é NSFW. Teste a vontade aqui.

Download.

domingo, 12 de setembro de 2010

Árvores para que te quero?!

Atualmente estou lendo o livro "Data Structures And Algorithms" (que pode ser obtido de graça e legalmente aqui).

Meu treinamento formal nestes assuntos foi muito insuficiente e como estas disciplinas são a base de todo o software eu achei que seria muito bom aprender sobre isso.

Estruturas de dados em forma de árvores não são muito frequentes no desenvolvimento de software web usando bancos de dados relacionais. A não ser naqueles casos onde por exemplo você tem categorias que possuem subcategorias e estas subcategorias podem possuir suas próprias subcategorias, ou no caso de menus e submenus de vários níveis. Uma das causas disso é a própria arquitetura dos bancos de dados relacionais, que não foi pensada para tratar estes casos. Como escrever uma consulta sql que retorne uma categoria e também todas suas subcategorias não importando a quantidade e nem o aninhamento das subcategorias?

É claro que as pessoas criaram soluções que permitem armazendar e recuperar informações estruturadas como árvores em bancos relacionais, já vi que existem soluções no Oracle e Postgre que permitem tranquilamente escrever a consulta sql citada acima.

No intuito de treinar e aprender mais sobre Árvores Binárias (com ajuda do livro "Data Structures And Algorithms") eu escrevi um pouco de código (PHP) que talvez possa ajudar outras pessoas também interessadas em aprender sobre este tipo de estrutura de dados. O código é bem simples e apenas permite a inserção e recupreação dos nós de uma árvore. Também imprime esta árvore na saída padrão.

Download Código.