Postagens

Humor de Programador

Quem disse que programadores não tem senso de humor? O comentário abaixo foi retirado de uma resposta do stackoverflow: // // Dear maintainer: // // Once you are done trying to 'optimize' this routine, // and have realized what a terrible mistake that was, // please increment the following counter as a warning // to the next guy: // // total_hours_wasted_here = 16 // Mais no stackoverflow .

TED x SP

A um tempinho eu escrevo ou adiciono links de videos que assisto do TED que acho interessantes. Desta vez estou escrevendo a respeito para avisar que será realizada uma das convenções do em São Paulo . Os palestrantes, como se espera do TED, fazem parte das mais diversas áreas. Entre eles temos Regina Casé atriz e apresentadora, Ronaldo Lemos diretor de Técnologia e Sociedade na escola de direito da FGV, entre outros . Para participar está sendo feita uma triagem questionando sobre o que o "Brasil pode oferecer ao mundo" e "O que o inscrito tem a oferecer ao Brasil", entre outras. Você pode também acompanhar via Twitter em http://twitter.com/tedxsp . Espero que seja tão interessante quanto os demais vídeos que já assisti deste projeto.

A parábola do Git

Resolvi fazer uma tradução livre do texto The Git Parable do Tom Preston-Werner. Boa leitura.... A parábola do Git Git é um sistema simples mas extremamente poderoso. A maioria das pessoas tentam ensinar Git pela demonstração de alguns comandos chegando a um "tadaaaaa.", acredito que este método seja ineficiente. Esta abordagem vai ensiná-lo a usar Git para realizar tarefas simples, mas os comandos irão sempre parecer encantamentos mágicos. Fazer qualquer coisa além do trivial será aterrorizador. Enquanto não compreender os conceitos nos quais o Git é feito você se sentirá perdido. A seguinte parábola vai levá-lo através da criação de um sistema similar ao Git a partir de sua base. Entender os conceitos apresentados aqui é a melhor preparação para alcançar o poder total do Git. Os conceitos em si são bastante simples, mas criam uma imensa gama de funcionalidades. Leia esta parábola do começo ao fim e deverá ter poucos problemas para tornar-se um mestre nos vários comandos do...

Git - entendendo a lógica

Muito bem, git é uma ferramenta fantástica, mas as vezes ficava curioso com o como as coisas funcionavam internamente. Procurando na net, encontrei a The Git Parable , uma historinha sobre o mecanismo interno e como chegou ao que é. Elucidativo demais. Git is a simple, but extremely powerful system. Most people try to teach Git by demonstrating a few dozen commands and then yelling “tadaaaaa.” I believe this method is flawed. Such a treatment may leave you with the ability to use Git to perform simple tasks, but the Git commands will still feel like magical incantations. Doing anything out of the ordinary will be terrifying. Until you understand the concepts upon which Git is built, you’ll feel like a stranger in a foreign land. Para ler com paciência: http://tom.preston-werner.com/2009/05/19/the-git-parable.html

Conficker

O Conficker é um Worm para Windows que está rodando na rede desde outubro de 2008 e tem se tornado a praga da internet. Se seu computador tem dado muitas falhas de conexão sem motivo aparente, pode ser que você esteja sendo hospedeiro do mesmo. Maneira rápida de descobrir? Acesse http://www.confickerworkinggroup.org/infection_test/cfeyechart.html É só observar quantas imagens aparecem na parte superior e comparar com a descrição que vem abaixo. Descobriu que está infectado? Aqui tem links para atualizações da Microsoft: http://en.wikipedia.org/wiki/Conficker#Removal Boa sorte!

mooUrl Ubiquity Command

Brincando com a API do Ubiquity , acabei fazendo este comando para utilizar o moourl de forma similar ao tinyurl. Vamos então ao código: /* * mooUrl command for Firefox Ubiquity extension. * date: 03/04/2009 * author: Renato Aquino <renato.aquino@gmail.com> * add with <link rel="commands" href="mooUrl.js"/> to your page */ C mdUtils. C reateCommand({ name : "moourl" , takes : { "url to shorten" : noun_type_url} , icon : "http://moourl.com/favicon.ico" , description : "Replaces the selected URL with a <a href=\"http://moourl.com\">MooUrl</a>" , author : {name : "Renato Aquino" , email : "renato.aquino@gmail.com" } , license : "GPL" , baseUrl : "http://moourl.com/create/?source=" , preview : function ( pblock , urlToShorten ){ pblock.innerHTML = "Replaces the selected URL with " , jQuery.get( this .baseUrl + urlT...

Linux counter

Imagem
Já havia me esquecido que o Linux Counter continua funcional!!! Quem mais tem?

Zend Framework

Como trabalho bastante com PHP, já havia postado anteriormente minha opinião sobre o framework Codeigniter e Symfony , agora é a vez do Zend Framework . Tal qual o esperado de uma empresa como a Zend, este framework é bastante maduro e amplo. Um dos pontos distintos que notei é o acoplamento fraco entre as classes do mesmo, ou seja, uma parte não depende necessáriamente da outra para ser utilizada. Caso o programador opte por seguir a estrutura padrão e o modelo mvc do mesmo, as classes devem ser conectadas para realizar as tarefas que o mesmo deseja. Como destaque de classes totalmente independentes cito o Zend_Validate e o Zend_Form . Você pode utilizar as classes do Zend_Form e do Zend_Validate em qualquer script PHP, mesmo que este não utilize mais nada do Framework. As desvantagens que encontrei começaram pela documentação. As APIs estão pouco descritas e o guia de referência não cobre todo o pacote de classes. Quanto ao design do projeto, acredito que o único problema que en...

Linux e o mundo das versões

Neste tempo que estou desenvolvendo com C++ tenho trabalhado com diversas versões de software e, ultimamente, a palavra "versão" tem sido um problema para quase tudo. Apenas para citar um exemplo, vou comentar sobre o sqlite . Estou desenvolvendo um software para uma base CentOS5 , ou seja, estou limitado a atualizar algumas coisas que a base do sistema depende. Como o yum é dependente do sqlite, não posso atualizar a versão do mesmo da 3.3 para a atual 3.6.11 . O que eu perdi com isso já que ambas são da versão 3? Suporte a mutexes , prepared statements melhorados e tempo de desenvolvimento. Agora coloque na lista outras bibliotecas como libvmime , libarchive , libsmbclient , google-ctemplate , gtest , etc. Ainda bem que para facilitar minha vida, tenho utilizado ferramentas como autoconf , automake e libtool ... mas dessas eu falo depois. ;)

Wrapper para SQLite em C++

Tenho codificado uma série de pequenas bibliotecas para um produto e como BD para as configurações estamos utilizando o SQLite . O maior problema encontrado foi utilizar a API propria do SQLite , que embora até relativamente simples, mostrou-se complexa na hora de fazer uma simples consulta. Para facilitar as coisas estive pesquisando por classes wrappers e encontrei o CppSqlite . O site tem um exemplo bastante completo do uso. Assim que eu testar o mesmo com mais profundidade vou postar aqui minhas impressões a respeito.

News

Report um pouco atrasado mas lá vai. Deixei meu cargo de "Analista de Suporte" na Rádio Panamericana S/A para ingressar na equipe de desenvolvimento da BluePex Security Solutions . Essa mudança não foi apenas de empresa e cargo, mas inclui uma mudança de cidade também. Deixei a loucura de São Paulo para tentar a vida na cidade de Limeira . Acredito que terei uma série de desafios novos, com o tempo vou reportando.

Projeto 10^100 do Google

Tudo bem, eu não tenho que anunciar porquê daqui a uma semana todo mundo vai estar falando disso, mas lá vai. Para comemorar 10 anos o Google está lançando o projeto 10^100 (10 para os 100?). Basicamente a idéia é pedir a sua idéia do que pode ser benéfico para ajudar os outros e com os esforços conjuntos de todos, após selecionar as melhores idéias, implementar o mesmo. O tema é amplo demais, e nem sei se consigo explicar direito a idéia. Para ler mais a respeito: http://googleblog.blogspot.com/2008/09/project-10100.html Site oficial do projeto: http://www.project10tothe100.com

Curso de Metodologia de Programação

Andei perdendo um tempinho para baixar e colocar em execução no meu iPod os vídeos do curso de metodologia de programação publicados pela universidade de Stanford , mas está valendo a pena. O curso tem o foco em metologias e não em uma linguagem em sí, embora ensine Java para usar como ferramenta no desenrolar do mesmo. Logo no primeiro vídeo o professor Mehran Sahami explica muito bem o nível de conhecimento necessário para assistir as aulas e resume-se a identificar se o computador está ligado. Até onde assisti, o curso explica de forma bastante intuitiva vários conceitos de programação. Cobre rápidamente diversos tópicos, incluíndo um pouquinho de história, programação Top-Down, conceitos de OO , etc. Tudo de forma muito simples, fazendo parecer algo trivial e causando vários insights. Quem deseja aprender Java ou melhorar seu conhecimento teórica sobre programação pode perder um tempinho que não vai se arrepender. Infelizmente não encontrei legendas para os vídeos, senão poderia f...

Framework CodeIgniter para PHP

Depois de algum tempo usando o Symphony , cheguei a duas conclusões: 1- é muito bem feito. 2- é muito pesado. As aplicações que costumo desenvolver podem, depois de um tempo, chegar a uma complexidade razoável e tornar difícil organizar todo o código, dai a idéia de utilizar um framework. Mas, o framework deve ajudar e não atrapalhar seu desenvolvimento, e no critério velocidade o Symphony deixou um pouco a desejar para mim. O custo mínimo para desenvolver uma aplicação é alto demais e a carga de qualquer página parece que vai derrubar o servidor. Voltei então a pesquisar sobre frameworks para PHP e depois de pular os clássicos Prado e CakePHP , acabei encontrando o CodeIgniter . A primeira vista o CodeIgniter parece um amontoado de código perdido, mas observando com mais cuidado é possível notar que o framework é simples e leve. Provavelmente um dos detalhes é ele não assumir nada por você, ou seja, se você precisa de conexão à banco de dados na sua aplicação, precisa adicionar na c...

Sites com recursos para Flash

Um amigo enviou um email com uma lista de sites, que ele foi conhecendo ao longo do tempo, sobre desenvolvimento de animações Flash. Bom, as descrições dele estão junto: http://www.27bobs.com O cara desse site simplesmente não faz mais nada na vida além de flash pq o que ele faz é insano, mais decorativo do que efetivo. http://www.flashguru.co.uk/ Se é sobre flash, está aqui, muito mais atualizado do que o próprio site da Adobe. http://www.bestflashanimationsite.com/ Váááááááááários sources, muita coisa legal. http://www.flashdeveloper.nl Site muito bom pra tutoriais e sources. http://www.flashkit.com/ O bom e velho flash kit, tem tudo. http://www.flash-extensions.net Site de extensões pro flash, eu já comprei uma a um tempo atrás,ajuda muito nossa vida, sempre o custo/benefício vale a pena. http://www.flash-template-design.com Site de templates, tem alguns grátis e outros pagos vc consegue xupinhar. http://www.flash-template-design.com Outro depósito de flashs, mesma coisa do de c...

Como disperdiçar seu tempo - Compilando AS3

Gastei um tempão tentando encontrar um erro nas classes que estava desenvolvendo para um projeto em Flash, mas sempre recebendo a mesma mensagem: Error #1046: Type was not found or was not a compile-time constant Depois de verificar algumas duzias de vezes, resolvi procurar no Google por alguma luz. Pois bem, com o novo compilador do AS3 é necessário declarar as classes como públicas ou então ele simplesmente as ignora. Ou seja, mudar de: class SuaClasse extends OutraClasse{} para: public class SuaClasse extends OutraClasse{} Claro que só consegui resolver isso porque outro sofrido fez um post no seu blog com esta solução. Agora, o compilador do Flash não podia dar um avizo não?

Melhorias do Firefox 3

Estive lendo a lista de melhorias no Firefox 3 e achei muito legal alguns dos adendos. Acredito que devam existir muitos e muitos outros legais que já existam não só no Firefox mas em diversos browser como padrões DOm ou coisa do gênero, mas quando eu encontrar algum lugar que liste os mesmos eu crio uma postagem aqui no Blog. Bom, voltando ao Firefox, eu particularmente gostei das melhorias de JavaScript que agora está com suporte a versão 1.8, novas funcionalidades DOM e no suporte de CSS . Tem muita coisa mesmo, pra quem desenvolve páginas, é sempre bom dar uma olhada. http://developer.mozilla.org/en/docs/Firefox_3_for_developers

AS3 e bugs com Tween

Quando estava programando a animação Flash que comentei anteriormente , encontrei um problema que acontecia quando disparava varias animações com a classe Tween do Flash. Por algum motivo, as animações deixavam de executar no meio, e todo o posicionamento dos itens ficava errado. Depois de buscar um pouco, encontrei num forúm da Adobe um comentário que dizia que o Garbage Collector do Flash excluía as instâncias da classe Tween que não estivessem referênciadas em nenhum lugar. Um exemplo pode facilitar o entendimento. Temos um MovieClip chamado mc e desejamos animar sua posição horizontal (x) , deslocando o mesmo da posição atual para + 100 pixels. Criamos então uma instância da classe Tween e passamos os parâmetros para o construtor. new Tween(mc,'x',Regular.easeOut,x,x+100,0.6,true); Logo após criada, esta instância já executaria a animação e terminado seu trabalho não existe mais nenhum motivo para manter uma referência da mesma. O problema ocorre durante a animação de x ...

Conversor de videos para iPod

Imagem
Adquiri um iPod Video faz um tempinho com a intenção de passar o tempo nas horas do trajeto entre minha casa e o trabalho. Uma das coisas chatas que aconteceu logo no começo foi a dificuldade em converter os diversos formatos de vídeo para um formato que o iPod/iTunes pudessem aceitar. Passado algum tempo, encontrei a maravilhosa lista de softwares gratuitos da Koyotesoft. Entre as ferramentas existe uma chamada Free iPod Video Converter que é pra mim uma das mais práticas. Essa ferramenta consegue converter formatos FLV, divx, xvid, mpg, mp4, dvd, vob, avi, wmv, asf e acredito que mais alguns que você tenha instalado o plugin do DirectShow . A qualidade padrão de conversão não é das melhores e o programa sequer tenta ser o melhor compactador de vídeo, mas o importante é que a qualidade basta e o arquivo final é aceito pelo iPod. Se quizer arriscar, pode editar as opções de tamanho entre outras.

Animação em Flash com AS3

Imagem
Estive trabalhando em uma animação flash para a Jovem Pan FM que exibe uma lista das 5 primeiras músicas com as respectivas imagens e links para conteúdo do bloco Hit Parade . Para completar a dor de cabeça, eu que não entendo nada de flash, resolvi fazer em Action Script 3 . Basicamente a animação faz a carga de um arquivo XML que é passada por parâmetro na tag object e o mesmo possui uma imagem do artista e a lista de músicas, links para ouvir, letra, ringtone, video e compra na loja do grupo ( Baixahits ). Como nem todas as músicas possuem todos os links foi necessário um pouco de programação para determinar se deve-se exibir ou não os ícones do mesmo. Toda a movimentação do conteúdo foi feita por AS e acredito que 13 Kb foi um tamanho razoavel para o que a animação faz. Quem quizer ver o mesmo em funcionamento procure na home page da jpfm pela animação com a cara da imagem abaixo . Se interessar para alguem ver os fontes do mesmo é só entrar em contato.