nuxlli
um pluguinho
um pluguinho
Jun 9th
Como disse no post anterior estamos trabalhando o jQuery e Asset Packger. So que existe um pequena incompatibilidade entre esses dois.
O Asset Packer tem um pequeno bug que dificulta na hora de trabalhar com arquivos javascript ou css que tenham ponto no nome, como em Jquery-1.2.3.js. O que acontece e que ele usa a função File.extname, que busca pela extensão de um arquivo dado seu nome completo. Então quando você insere no arquivo de configuração do Asset como: jquery-1.2.3, ele interpreta que a extensão desse arquivo já foi digita, e que ela é .3, inserido o arquivo com o nome errado no cabeçalho da página.
Um solução é adicionar o nome completo do arquivo: jquery-1.2.3.js, isso funciona, mas apenas em modo desenvolvimento. O Asset Packger compila todos os arquivos de um grupo em um único arquivo, mas a função que processa os arquivos no helper e no compile são diferentes, sendo que o compile não verifica se já existe um extensão no nome do arquivo, ela apenas julga que é necessário adicionar o .js na hora de incluir os arquivos na compilação.
Para resolver esse problema eu fiz um fork do projeto no Github e corrigi com um pequena modificação.
Jun 9th
No projeto de e-commerce que estou trabalhando, estávamos com um problema de sobre peso nas páginas, chegando inclusive a 1.4 MB em algumas partes do site.
O principal motivo desse peso todo eram as imagens e banners, como em quase todo site, uma vez resolvido este problema também tivemos problemas com a biblioteca de Javascript: o Prototype. Que o Prototype é gordinho, quase todo mundo já sabe, a questão era como resolver isso. A resposta veio com o jQuery, uma biblioteca Javascript infinitamente superior tanto em recursos como no fato de oferecer versões compactas das bibliotecas que a constitui.
Antes de tentar o jQuery, experimentei usar algumas ferramentas de “compactação” para Javascript, a mais conhecida foi o YUI Compressor, a ferramenta padrão de compressão do projeto Mootools, mas não obtive sucesso, a compactação não funciona com a Prototype, o código final gerado é invalido, e não há muito o que fazer, o problema esta na maneira com que a Prototype foi feita.
Então depois de alguns dias de pesquisa e substituição, consegui achar todos as funcionalidades e bibliotecas equivalentes para o jQuery, uma vez feita a substituição lembrei de plugin que já tinha visto para Rails que podia deixa a coisa ainda melhor.
O Asset Packer é um plugin para auxiliar na utilização de Javascript e Css, com base em um arquivo de configuração pode-se definir pacotes de css ou javascript, da-lhes um nome, e depois incluir esse pacote com apenas um chamada, além disso ele conta com um tarefa rake que permite gerar uma versão compacta dos pacotes.
O grande atrativo do Asset Packer, e que ele inclui o javascript ou css em sua forma descompactada ou compactada de acordo com environment, permitindo ao desenvolvedor trabalhar com os códigos sem compactação durante a fase de desenvolvimento e inserindo as versões compactadas quando em fase de produção. Além destes recursos o Asset Packer ainda trabalha junto ao controle de versão (infelizmente por enquanto apenas com Subversion) e pode ser configurado para gerar as versões compactadas diretamente no servidor, através de configurações junto ao Capistrano.
May 29th
É isso pessoal, depois de 3 anos e meio morando em Curitiba estou de volta a Patos de Minas. Saudades de Curitiba não vão faltar, foram 3 anos de muitas felicidades, amigos e aprendizado.
A explicação para essa guinada na vida são muitas, primeiro que o projeto em que estou trabalhando esta começando a render seus frutos, o que por si só já seria motivo o suficiente para voltar. Mas além disso a saudade da família e da terra bateu, Curitiba é um cidade maravilhosa e diferente do que muitos falam, seu povo e receptivo, basta saber chegar e conversar
Infelizmente não consegui terminar a faculdade em Curitiba, o que não chega a ser um problema, aqui em Patos tem dois cursos de informática e todos me agradam. Graças a tecnologia a vida muda pouco, o acesso as informações é fácil tanto quanto era em Curitiba, e agora que conheci um pedaço do Brasil viajar se tornou ainda mais divertido, com certeza minhas viagens para treinamento, palestras, eventos e cursos pelo Brasil devem aumentar.
Eu diria que Patos é uma Curitiba em miniatura, as coisas aqui são boas, a cidade é limpa, organizada, e tem algo que me agrada mais do que em Curitiba: as festas, ainda não estou participando de nada, o tempo não tem permitido, mas com certeza neste requisito a coisa e mais animada por aqui.
E vamo que vamo…
May 21st
Depois de um mês do fim do fisl 9.0, finalmente sobrou um tempo para falar sobre a Arena de Programação, acompanhado do fato de que o N95, um dos prémios da arena, chegou hoje pela manha
Para quem não sabe a arena é um evento que acontece dentro do fisl, sendo este o segundo ano de arena, e esperamos que muitos outros ainda venham. O objetivo geral da arena é promover a integração entre os programadores do mundo livre e gerar algum tipo de contribuição com essa integração. No ano passado tivemos uma arena voltada ao projeto Debian, e esse ano ao projeto Gobo Linux e a plataforma de desenvolvimento móvel da Nokia.
Na primeira fase tivemos um processo de seleção com base em patch que deveriam ser feitos para o projeto Gobo Linux, mais informações aqui. Graças ao fato de que o número de inscrições nesse processo foi aquém do esperado, eu pude participar, meus patch foram enviados com 1 semana apenas de antecedência.
Já no primeiro dia de arena a coisa pegou fogo, fomos divididos em grupos de 4 programadores, e cada equipe recebeu um N95, onde constavam uma lista de tarefas a serem executadas com o aparelho usando python. Terminei este dia frustado, tínhamos feito muita coisa, mas nada tinha ficado realmente pronto e funcional, ficamos com um tarefa pronta, e todas as outras semi acabadas. Fui pro hotel cabisbaixo e pronto pra receber a notícia de que não havíamos nos classificado.
Passei uma noite de cão, pois decidi que não ia deixar aqueles códigos besta me vencer, como tinha instalado o emulador da plataforma S60 um domingo antes de ir para o fisl, resolvi que faria o que não consegui fazer durante o dia, obs: isso não contava em nada, fiz porque era um desafio que deveria ser vencido, mas não iria mudar a decisão do dia seguinte.
Na manha de sexta estava lá as 9:00, cansando pra caramba da noite anterior, mas ainda sim tive um tempo pra fazer mais alguns testes e refinar as tarefas que eu tinha feito durante a noite. No fim consegui terminar uma das tarefas e desenrolar uma outra, de um joguinho, mas como o emulador não tem suporte ao acelerómetro, o joguinho ficou só na teoria de que funcionaria.
Qual foi a surpresa de saber que nossa equipe tinha classificado, os códigos que entregamos mesmo na sua maioria incompletos, estavam dentro do esperado, de fato tínhamos feito um bom trabalho. Foi uma grade satisfação saber que todo o trabalho que tinha feito a noite anterior, não tinha sido em vão, ninguém da organização ficou sabendo sobre isso, mas pessoalmente teve um imenso valor.
Eu não sou de forma algum experiente em programação em Python. Eu trabalho com programação a uns 10 anos, mas Python nunca foi o meu forte, mesmo com várias semelhanças com Ruby, que tem sido minha linguagem principal nos últimos meses, o Python era de certa forma um obstáculo.
Mas as 24 horas que passei programado, 12 da quinta feira, e mais 12 da noite que virei programando, com certeza me preparou pra o trabalho que veria em seguida. Então, logo após o anuncio de quais as equipes que tinha se classificado ficamos sabendo que as equipes deveriam se re-arranjar em grupos de três.
Minha equipe mudou e passei a trabalhar com dois programadores de Joeville, nem sabia eu que essa seria a equipe vencedora. Recebemos um N800 e a árdua tarefa de criar um leitor de ODF para o aparelho, usando pymaemo.
A tarefa em si não seria complexa, não fosse o tempo pra programar. Levando em conta que os aparelhos só ficaram disponíveis lá pelas 12h da sexta feira e que teríamos que entregar de volta ás 21h, e que no sábado teríamos mais umas 4 horas para termina o trabalho, ficamos com umas 13 horas de aparelho disponível para trabalhar.
Novamente mais um dia puxado de trabalho, pegando um pouco mais leve, afinal eu estava a mais de 24h sem dormir e com um agravante que quase ninguém sabia, eu passei por um cirurgia de apendicite no final do mês de março, e ainda não estava completamente recuperando, inclusive tendo que trocar curativos.
Mais um dia se foi e muito trabalho ainda tinha que ser feito, uma vez definido o caminho que queríamos seguir o trabalho estava nos trilhos, mas ainda longe de ser concluído. Novamente fui para casa e para mais algumas horas de trabalho noturno, cheguei no hotel tomei um banho e dei um tempo comendo uma parmejiana com amigos no Copão. De volta ao hotel passei mais uma noite em claro estudando pra o dia seguinte, como não tinha o aparelho, e dessa vez nem o emulador, passei a noite estudando sobre xslt (que estávamos usando na solução) e mais um pouco sobre Python e as bibliotecas que estávamos usando.
No dia seguinte a coisa foi um susto, em menos de 4 horas conseguimos juntar o trabalho que os três estavam fazendo e fazer um programa funcional a tempo de entregar, nossa estratégia se mostrou eficiente, pois mesmo trabalhando separados, estávamos sempre trocando ideia sobre o todo. Cada um pegou seu pedaço e trabalhou firme nele.
As horas seguintes ao fim da arena foram as mais duras que já passei, tínhamos que esperar das 12h até as 20h, quando aconteceria o encerramento do fisl, e teríamos o anuncio do resultado. Eu estava tremendamente cansado, com mais de 48 horas de olhos abertos, mas nem tentei deitar em um cato e descansar, estava ansioso d+ para isso.
As 19h rolou uma apresentação das equipes finalistas, falamos sobre nossas soluções, e fizemos um pequeno momento de reflexo sobre a possibilidade de continuar o projeto que tínhamos começado ali. Passado isso fomos andando para o teatro principal para o encerramento do evento, as borboletas no estômago já estavam do tamanho de elefantes, e a ansiedade de saber o resultado era visível no rosto de cada participante que tinha chegado ate ali.
Como sempre o anuncio dos vencedores começou pela ordem inversa e os ganhadores do terceiro e segundo lugar foram anunciados por primeiro. Neste 2 minutos que dura entre o anuncio do segundo lugar e o primeiro existe um vazio na cabeça de quem espera o resultado que é indiscritível, afinal, ou foi tudo ou foi nada, e as chances em números são as mesmas para os dois lados. Então o anuncio do vencedor e algo que não se pode dizer em palavras, ficamos tão feliz que pulamos os três abraçados por um longo e feliz minuto.
Depois disso a coisa só fica melhor, você leva horas para perceber o que aconteceu, e que você realmente ganhou. Receber o prémio e algo fantástico, mas saber que você deu conta é ainda melhor, e a loucura e algo que domina facilmente a gente nesse momento.
Logo depois de mostrar com toda felicidade o N800 que tinha ganhando ao público, escutei um sonoro “joga, joga, joga!!!”, era uma plateia maravilhada com os prémios, e que clamava de alguma forma pra participar daquilo, não pensei duas vezes, virei para uma mesa, deixei minha sacola, e comecei a desmontar meu W300 na busca pelo chip GSM, que não queria sair de forma alguma, quando consegui arranca-lo do aparelho foi apenas um grito: “PEGUE O CARREGADOR COMIGO DEPOIS”, estava feito, tinha jogado meu celular para plateia que o recebeu com toda a felicidade.
Depois disso veio a entrevista para a impressa, e maravilhosos momentos de comemoração e orgulho da conquista. O N800 foi explorado de todas as formas, e tenho grandes planos de participar do seu desenvolvimento, seja com projetos Open Source ou pessoais. O N95 demorou um pouco para ser entregue, mas finalmente chegou e é outro brinquedo sem igual.
Quanto ao projeto que desenvolvemos para o N800 a coisa esta andando, ainda não temos nenhum release, mas em breve devemos postar alguma novidade por aqui, quem quiser acompanhar o andamento do projeto pode acessar o site do projeto: http://code.google.com/p/odfmobile/ ou ainda o repositório do mesmo: http://github.com/nuxlli/odfmobile
May 15th
Semana passada eu falei aqui sobre o que eu acho sobre o Firefox 3 ser o browser padrão do Ubuntu, e agora também do Fedora 9. Mas hoje estou aqui pra elogiar o trabalho que estão fazendo no Firefox, não se preocupe eu também me acho maluco por ter opiniões tão divergentes de mim mesmo
Hoje resolvi testar o FF 3 no Leopard, e só posso dizer uma coisa: ficou do c….., sério, estou espantado ate agora, como eles trabalharam bem em cima da compatibilidade visual com os SOs. No Linux com Gnome essa melhora e pouco perceptiva, principalmente pelo Firefox já ter uma cara de aplicação gtk.
Mas no Leopard isso ficou muito bem feito, o navegador se adapta ao visual do SO muito bem. Destaque para os botões de navegação e para abas. Mas as melhorias não ficam só nisso, anteriormente eu tinha usado a linha 1.5 e 2 do navegador no Mac, dava uns problema de renderização que faziam aparecer manchas e objetos perdidos pela tela, nunca vi ninguém reclamando disso, mas nunca funcionou bem pra mim.
Agora esta tudo 100%, mesmo na versão beta, estou usando desde de ontem a noite e só tive um crach, e foi com o youtube aberto, coisa que acontece com certa frequência e todas as versões do ff que já usei.
Eu ainda continuo achando que colocar um software ainda em versão beta em um trabalho dito final é um erro, mas só tenho elogios ao Firefox 3.
May 14th
Bom pessoal depois de muito pensar (que nada decidi em duas horas), resolvi registrar o domínio e mudar de casa.
O wordpress.com foi uma boa, mas ele é limitado em termos de recursos e não te oferece todo o poder do WordPress, então, aqui estamos com um novo visual e hospedando no VPS do projeto Shopcerto (qualquer dia desses falo sobre o projeto).
Espero escrever mais, e escrever bem, tenho lido os posts anteriores e ainda tem muito a caminhar.
May 3rd
Ao que parece o pessoal do Ubuntu estavam certo em colocar o Firefox 3 nesta ultima versão da distro. Pela noticia no blog do del.icio.us, uma das minhas extensões preferidas, a Delicious Bookmarks já tem uma versão para o Firefox 3. Fico feliz que isso tenha acontecido rapidamente, poucos dias após o lançamento do Ubuntu, com certeza é um incentivo a quem não vive sem suas extensões a migrar logo.
Em um post anterior falei sobre minha tentativa usar o Ubuntu 8.04, na época ainda beta. Um dos problemas que apontei foi a imatura decisão de colocar o Firefox 3 (beta) na distribuição final do Ubuntu. Mesmo após a novidade do del.icio.us, continuo achando que para uma distro que pretende ser a queridinha dos desktops, a decisão de colocar um software ainda em versão de teste, não é das melhores já tomadas pela equipe do Ubuntu.
Não que o Firefox seja o rei da estabilidade em qualquer uma de suas versões, longe disso, agora esse tipo de decisão e que diferencia distros como Red Hat e Debian do Ubuntu, estou aqui a usar o Debian em sua ultima versão, e ainda não vejo no gedit suas novas funcionalidades, como a de temas para as cores, que já estão presentes no Ubuntu dês da versão anterior.
Isso é ruim? O Debian perde pontos com os usuários por isso? Com certeza, pelo menos com parte dos usuários, mas não com maioria. Porque o sistema tem uma resposta para isso: estabilidade. Escutei algo interessante no finalzinho da competição da arena: “… de fato o Ubuntu é feito para usuário leigos, até travar o Linux eles conseguiram fazer…”, não me lembro mais quem foi que disse, mas estava certo, de que adianta levar o desktop Linux até os usuários se não estamos levando justamente aquilo que sempre pregamos: Linux é confiável e estável!
Talvez minha opinião esteja errada, afinal o Ubuntu já vai para mais de 4 anos de vida, e é um sucesso tremendo, e depois usuários de Windows estavam acostumados com mais travadas do que estão vendo no Ubuntu, então está valendo não é mesmo? Mas eu sinceramente, preferia ver os usuários de desktop chegando ainda mais tarde, mas pegando a casa mais em ordem
Apr 23rd
A primeira coisa que perguntei ao pessoal do INdT quando vi o N800 foi: “É possível ligar algum aparelho USB nele? Como um impressora por exemplo?”.
Eu sempre fui louco por aparelho móvel que tivesse tal funcionalidade, sempre achei que era uma questão de pequenos ajuste para que isso funcionasse. O pessoal do INdT disse que era possível, mas que era necessário usar um adaptador especial que fornecesse energia, porque o N800 por padrão não fornecesse energia pela porta USB.
Ontem procurando na internet os esquema para esse adaptador, disposto a construir um, eis que encontro uma solução melhor para o problema, o USBControler, nas palavras do desenvolvedor do software: “Even Ars technica went the hard way of soldering a cable. This is not the way to do it my friends. On a computer-like device, the way is to ‘solder software’, not hardware.”.
Por sorte eu tenho o adaptador que ele especifica, um plug usb fêmea-fêmea, baixei e instalei a ultima versão do USBControler (baixem a ultima versão, nas versões anteriores é necessário reiniciar o aparelho para alternar entre os modos USB Hots e USB OTG). Meus testes foram:
Resultado: É perfeitamente possível que se possa ligar qualquer periférico USB no N800, pois meus teste foram em dispositivos usb que precisam de fornecimento de energia, e funcionaram, coisas como impressoras, que tem sua própria fonte de energia devem funcionar com facilidade, a questão toda esta nos drivers, o N800 é um aparelho muito bom, mais ainda sim é móvel, ou seja tem limites de memória e espaço de armazenamento, por isso algumas coisas foram deixadas de fora do kernel padrão. O que não é de toda um problema, sendo ele um Linux com um processador suportado por GCC, não há limites para o que possa ser portado e feito com ele.
Apr 21st
Tenho uma mania de instalar distro em versões betas, e me decepcionar com elas, e quando me decepciono mudo de distro e taxo a antiga como ruim.
Isso aconteceu a algum tempo quando usava Fedora Core 7 e resolvi testa ainda em versão de desenvolvimento o Fedora Core 8, tive uma surpresa, o sistema estava incrivelmente ruim, instável e visualmente mau acabado (mas claro cara pálida! era beta não é mesmo?). Nesta época voltei ao Ubuntu e fiquei nele ate a agora na versão 7.10.
Mas de novo repeti o mesmo que fiz com o Fedora, simplesmente não gostei do Ubuntu 8.04, minha primeira birra é com o Firefox 3, não era hora, não era hora mesmo de colocar ele em uma versão final de distro. Depois fiquei puto com a quantidade de problemas que ele me deu dentro da Arena, primeiro eram travamentos sem menor sentido no meio de codificações em gedit. Depois foi um problema que me impediu de assistir alguns screencasts em ogg. Depois fui instalar o SDK do maemo e tive uma serie de problemas com dependências mau resolvidas. Em fim não foi ele quem me ajudou a ganhar a arena, disso eu tenho certeza. Eu sei que ele ainda é beta, mas sei que eles não vão colocar o Firefox 2 na versão final, e só por isso já fico com o pé atrás quanto a qualidade final.
Como solução aos problemas fui atrás de um amigo do Fedora, resolvi dar uma nova chance ao bicho. Depois de alguns problemas com o dvd de instalação, chamaram um engenheiro Fedora para resolver o problema (quando lembra o nome dele atualizo aqui), ele executou alguns teste, como o de memória e de mídia, mas não encontrou o problema, percebi que era no carregamento do drive pcmcia, mas ele não disse nada. Fim das contas ele pegou um Live, e esse sim, foi instalado sem problemas.
Estou realmente encantado com o Fedora 8, um estabilidade do cão, o sistema parece estar muito mais rápido do que o Ubuntu, e o acabamento visual é inigualável. O Firefox não trava a mais de dois dias, e consegui instalar o SDK do maemo sem problemas.
Mas dessa vez não vou repetir o erro de antes, vou esperar sair uma versão final do Ubuntu 8.04 e dar uma chance ao bichinho também, vai que tenho novas surpresas.
Apr 14th
Semana passada voltei a utilizar o Linux em tempo integral, devido alguns problemas de sinal com a placa da vivo estava usando Windows por um tempo. Depois que instalaram a ADLS voltei ao bom e velho Ubuntu, mas o meu já estava pedindo uma formatação, desde da compra do notebook, tinha feito uma única instalação do Ubuntu, na época o Ubuntu 6.10, depois foram só atualizações para chegar ate a versão 7.10.
Resolvi instalar a versão de teste do Ubuntu Hardy 8.04, a principio um pequeno bug na instalação: o Ubuntu agora exibe um menu logo no boot que permite escolher a linguagem na qual ele carregara o sistema, escolhendo Português, na hora de instalar ele não passa da tela de escolha do teclado, fica reiniciando o X, no meu caso escolhendo inglês durante o boot resolveu o problema.
O mais chato por enquanto tem sido um bug na tela de login do GDM, alias bug que já vinha acontecendo no 7.10, a fonte da caixa de login fica gigantesca coisa de 100 pontos, não da para ler o que se escreve nela, mas não chega ser um bug que atrapalhe, só deixa feio mesmo.
Outra mancada na bola ao meu ver é a imatura escolha do Firefox 3, não consigo enxergar nenhuma vantagem em colocar uma versão ainda em desenvolvimento no pacote. Ele ainda é incompatível com a maior partes das extensões, não é nem um pouco estável, em fim poderiam muito bem ter esperado e depois lançado como pacote de atualização, não tive duvida deixei o bichinho de lado e baixei o 2.
Fora estes pontos há uma serie de coisas bem legais na nova versão:
Ele conseguiu fazer funcionar as teclas de controle de brilho e áudio do notebook, coisa que eu tinha gasto horas para fazer funcionar no 7.10, e não só as teclas de brilho e áudio mais também as de multimídia funcionaram.
O controle de wireless parece mais estável também, com menos problemas de identificação com o Acess Point, na versão 7.10 vire e mexe eu estava tendo que redigitar a senhas. Uma pergunta pra quem souber, como posso limpar os perfis de rede wireless no Ubuntu?
Minha placa de som finalmente foi detectada sem problemas, dês da primeira instalação do Ubuntu mesmo no meu antigo Desktop eu sempre tive que adicionar algumas linhas no arquivo de configuração do alsa, felizmente dessa vez nada foi necessário.
Me decepcionei um pouco em não conseguir rodar o VMware player, precisava dele para pegar algumas coisas que estavam na máquina virtual do Ubuntu que usava no Windows, depois precisava dele pra levantar o Windows e testar o SDK de desenvolvimento para Symbian, acabei por instalar o VirtualBox que funcionou perfeitamente (com exceção do problema de USB que já acontecia no 7.10). Acredito que para instalar o VMware é só uma questão de compilar alguns drivers para o Kernel, mas não estava de tempo nem paciência para isso.
No fim das contas o sistema não é la grande mudança em relação ao 7.10, mas tem uma serie de refinamentos por baixo do capu de promoveu uma melhora principalmente em performasse como em todas as ultimas versões do Ubuntu, agora é ir atualizando (e bota atualizando nisso, todo dia pela manhã são na média de 150MB de atualizações) e esperar mais estabilidade e a versão final.
dica: Tive um problema com vídeo no Skype, a máquina travou completamente, a solução e desabilitar os recursos avançados de vídeo. Vá em Sistema -> Preferencia -> Aparência, na ultima aba “Efeitos Visuais” escolha nenhum e mande aplicar, depois que termina o vídeo e só voltar lá e habilitar os efeitos novamente.