Mostrando postagens com marcador python. Mostrar todas as postagens
Mostrando postagens com marcador python. Mostrar todas as postagens

segunda-feira, 22 de março de 2010

otubo no Yahoo! Open Hack Day Brasil 2010: O day-after

en_US:
An awesome event, unlike any I've ever gone so far.
Unlike the Intercon's, Campus Party's and the FISL. Yahoo was very happy to come up with such an event and the reasons are quite simple.


 Perfect atmosphere for fun, and that's exactly what it is: fun. (Photo: velozocomz)

1) Perfect atmosphere: air-conditioning (and believe me, a good temperature is ideal for the creativity), food on a regular frequency, free coffee, stable wifi, video games and toys. In parallel, they played music chosen by twitter (not having to fight) and in the cold dawn had even Monty Python session on screen. Exactly what you need to get a friendly environment for computer geeks to create and have fun.

2) The purpose of the event: The proposal is clear, get together some computer geeks interested in creating new things, put a friendly environment and encourage them with prizes. Clear that Yahoo is not dumb, the main award categories are for libraries and technology of Yahoo (off course, I would do the same). But something that is interesting is the support for creating and developing over any platform, including things VERY low level, like the Arduino.

3) Fantastic team: The Yahoo team was extremely professional and friendly. Always trying to help, whether solving technical problems or playing Guitar Hero. Either through post-its on the dashboard or twits on screen, the means of communication for problem solving was very transparent and straightforward.

Just a curious detail, Yahoo that I'm sorry, but I thought Open Hack Day a term means overrated. 90% of projects were mashups (including mine). But ok, did not hurt anything, just making my point.




And now the star of the event: The Gas Finder.

Met
Luciano Camilo there on Saturday. He had an almost completed project that mines information at the ANP, build a table and exports in XML to find cheap fuel using google maps. He wanted to make a mashup with this YQL. I thought: Man! Let's put it on a phone and use GPS and so on and so! Okay, we had an idea, two programmers and a goal: Complete a proof of concept until 13h the next day.


Gas Finder on the projector. Glad I did not crashed on time. (Photo: imbertti)

After some headaches with Android, ASE, Python and YQL, we managed to finish the prototype of Gas Finder almost at 5 am Sunday. Everything commited and we are testing and polishing edges here and there. On Sunday the presentation was good, thank god it didn't crashed with timeout - what use to happen when getting YQL info or GPS signal. In the end, I am proud to announce I recieved from Fabio Akita the award for the best YQL application with Gas Finder! HELL YEAH!

More information and other projects can be found on the blog or Chapiewski William James Doria.

I hope to go next year to play a little more. Thanks Yahoo, thanks Luciano. :-)


pt_BR:

Um evento sensacional, diferente de todos que já fui até agora. Diferente dos Intercon's dos Campus Party's e do FISL. Yahoo foi muito feliz em montar um evento desses e os motivos são bem simples.


 Atmosfera perfeita para copmuteiros se divertirem, e é exatamente disso que se trata: diversão. (foto: velozocomz)

1) Atmosfera perfeita: Ar condicionado (e acredite, uma temperatura boa é IDEAL para fazer o lado criativo funcionar), comida em uma frequência regular, café à vontade, wifi estável, video games, brinquedos e puffes. Em paralelo, rolou música escolhida por twitter (pra não ter briga) e na madrugada fria teve até sessão de Monty Python no telão. Exatamente tudo o que você precisa pra ter um ambiente amigável pra computeiros criarem e se divertirem bastante.

2) O objetivo do evento: A proposta é bem clara, juntar computeiros interessados em criar coisas novas, botar num ambiente amigável e incentivá-los com prêmios. Claro que o Yahoo não é bobo, as principais categorias de premiação são de bibliotecas e tecnologias do Yahoo (lógico, eu também faria o mesmo). Mas algo que é interessante é o apio à criação e ao desenvolvimento em cima de qualquer plataforma, incluindo coisas BEM baixo nível, como o Arduino.

3) Equipe fantástica: A equipe do Yahoo foi extremamente profissional e simpática. Sempre tentando nos ajudar, seja resolvendo problemas técnicos ou fazendo par no Guitar Hero. Seja por meio de post-its no painel ou twitts no telão, o meio de comunicação para a resolução de problemas foi bastante transparente e direto ao ponto.

Só um detalhe curioso, Yahoo que me desculpe, mas achei Open Hack Day um termo meio overrated. 90% dos projetos foram de mashups (incluindo o meu). Mas ok, não atrapalhou em nada, só me fez pensar.

E agora a grande estrela do evento: The Gas Finder.

Conheci o Luciano Camilo lá no sábado. Ele já tinha um projeto quase completo de garimpar informações na ANP para montar uma tabela (e exporta num XML amigável) os postos com combustível barato usando google maps e tal. Ele queria fazer um mashup disso com YQL e tal. Pensei na hora: Cara! Vamos botar isso no celular e usar GPS e tal e coisa! Pronto, tínhamos uma idéia, dois computeiros e um objetivo: Terminar uma prova de conceito até 13h do dia seguinte.

Gas Finder em operação no projetor. Ainda bem que não crashou na hora. (foto: imbertti)

E não é que foi? Depois de algumas dores de cabeça com Android, ASE, Python e YQL conseguimos terminar o protótipo do Gas Finder lá pelas 5h da manhã do domingo. Commitamos tudo e ficamos testando e polindo umas arestas aqui e alí. No domingo a apresentação foi boa, não travou e nem crashou - o que costumava acontecer se desse timout no YQL ou na hora de pegar o sinal do GPS. Resumo da Ópera, tivemos a felicidade de receber da mão de Fábio Akita o prêmio de melhor aplicação YQL. HELL YEAH!

Mais informações e outros projetos podem ser encontrados no blog do Guilherme Chapiewski ou no Tiago Dória.

Espero poder ir ano que vem pra nerdear madrugada a dentro. Valeu Yahoo, valeu Luciano. :-)

ps.: Pode parecer post-puxa-saco, post-pago, blé, mas é tudo verdade.

sexta-feira, 4 de abril de 2008

Vim, taglist e ctags: Programando com produtividade

Cof! Cof! Quanta poeira! Sim, eu sei. Já faz quase um mês que não escrevo. Mas tenho algumas boas descuplas: Fui contratado no LTC e muita coisa mudou: Rotina nova - acordar e chegar em casa em horários diferentes e aula na Unicamp. Computador novo - sim a Lisa se foi. Com a chegada do notebook da IBM a sempre presente Lisa deu lugar ao Maizena.

Bom, o fato é que já dentro da IBM entrei em um projeto majoritariamente em Python. Uns pedaços em shell script, mas a grande maioria em Python. O que me forçou a ser um pouco mais produtivo do que o normal. Com Vim e ferramentas adequadas isso é bastante fácil. :-)

Indo direto ao assunto, ao final deste breve tutorial, iremos ter algo parecido com o screenshot acima: Teremos uma lista de classes e métodos do projeto todo em uma janelinha (split) do Vim. A tela lateral é gerada com o plugin TagList e a lista de classes e métodos (as informações em si) é com o ctags. Tudo muito simples.

Primeiro vamos entender o programa ctags: Ele lê arquivos fonte (e até agora eu já testei com C e Python) e gera um arquivo de tags que contém informações relevantes tais como: Declaração de variáveis, declaração de funções (em caso de linguagem estruturada), classes e seus métodos (em caso de linguagem orientada a objeto) e por ai vai. As tags são orientadas ao caminho do arquivo de onde foram lidas as informações, isso quer dizer que gerar um arquivo de tagas com o caminho absoluto do arquivo é mais interessante do que gerar o mesmo arquivo com o caminho relativo já que vamos manipular informações dentro de um projeto inteiro. Trocando em miudos:

$ find $(pwd) -regex ".*py$" | xargs ctags

Execute este comando na raiz do projeto, ele irá ler todos os arquivos .py e irá mapeá-los com ctags gerando o arquivo tags. Note que o diretório de procura será $(pwd), isto fará com que as tags tenham o caminho absoluto do arquivo mapeado.

Agora, você terá que copiar o arquivo de tags para cada um dos diretórios do projeto:

$ find $(pwd) -type d -exec cp -v tags {} \;


(Quem tiver dúvidas no shell só deixar nas caixas de comentários que eu explico)

Depois de criar e copiar o arquivo de tags para cada diretório de seu projeto, agora é hora de usar TagList dentro do vim. Baixe o arquivo, descompacte e copie o arquivo taglist.vim para dentro de ~/.vim/plugin e taglist.txt para ~/.vim/doc:

$ cp taglist.vim ~/.vim/plugin
$ cp taglist.txt ~/.vim/doc


Agora é só correr pro abraço. O comando mais importante que você deve aprender agora é TlistOpen. Deve saber também que dentro do split você pode apertar F1 e receber ajuda sobre os comandos e keybinds que pode usar para navegar nas classes e métodos.

:TlistOpen

E agora, o mais legal de tudo: Com a split aberta (e com as classes e métodos do arquivo atual lá), você pode usar as keybinds do ctags para pular diretamente para métodos em outras classes e em outros arquivos. Por exemplo, com o cursor em cima de um método qualquer você pode apertar Ctrl+] e pular automaticamente para o arquivo onde está implementado o método. A split irá mostrar a classe em questão e seus métodos como mostra a figura abaixo:

Espero ter ajudado os programadores por ai! :-)