Desenho de árvore binária em Python

30/11/2008

Como comentei no post anterior estou fazendo faculdade, o que sugou bastante o meu tempo. Na faculdade desenvolvi alguns pequenos projetos (sozinho ou em equipe), e realizei alguns trabalhos, vou tentar publica-los aqui aos poucos.

Na matéria de Estrutura de Dados o professor aceitou que os exercícios fossem feitos na linguagem que o aluno quisesse, a limitação era apenas a capacidade dele de entender a lógica (talvez ele não tivesse aceito em linguagens funcionais por exemplo). E é claro, já que eu podia escolher, escolhi Python😀

Recentemente desenvolvemos uma árvore binária e apesar de não solicitado desenvolvi também uma representação gráfica da mesma, assim ficaria mais fácil depura-la. Achei o resultado suficiente interessante para compartilhar com vocês, espero que gostem.

O código é um pouco extenso para publicar no corpo do post então coloco aqui os links para download, porém o wordpress não suporta arquivos .py, então converti-os para PDF (se alguém tiver sugestões de como melhorar este processo aceito dicas). Até a próxima.

Voltando (de novo)

30/11/2008

Pessoal, foi um ano muito corrido (e ainda não acabou). Me afastei do blog e de diversas outras atividades. Também peço desculpas a todos aqueles que comentaram e nem tiveram a devida atenção.

Os principais motivos foram meu ingresso na Unijorge no inicio deste ano, meu curso de inglês e meu processo de saída do meu emprego atual.

Espero aparecer aqui com muito mais frequência, já tenho uns 3 artigos engatilhados e tentarei trazer a tona alguns assuntos que geraram vários comentários por aqui.

Até em breve.

Publicação dos vídeos da PyConBrasil3

21/10/2007

Conforme eu já tinha informado em um post anterior, assim que o vídeo da minha palestra estivesse disponível eu publicaria aqui.

Inicialmente apenas 3 vídeos tinham sido publicados (posso estar um pouco errado com este número). Nos últimos dois dias a quantidade de vídeos subiu para 19, e para minha felicidade o meu estava incluso !😀

Ele pode ser visto aqui, e os outros vídeos da PyConBrasil3 podem ser encontrados aqui.

Sugiro que os interessados em Python fiquem de olho no segundo link, pois a quantidade e variedade dos vídeos publicados ainda deve crescer bastante.

Suporte ao DLR no mono

5/09/2007

Na sexta-feira pela manhã (31/08/2007), apresentei uma palestra falando sobre IronPython para ASP.net, incluindo várias notas a respeito da situação do IronPython no Mono.

Em algumas destas notas comentei que ainda não havia suporte no Mono ao DLR (descontando o código no SVN), e portanto a nova versão (ainda em alpha) do IronPython não funcionaria. E um pouco depois da minha palestra leio no Google Reader, Mono 1.2.5 lançado e entre os destaques o suporte para DLR, segue um trecho do original:

This release fixes various issues that were exposed by IronPython 2.0 preview release and the Dynamic Language Runtime from Microsoft. They are both functional on this release.

Me senti como se tivesse enganado todo mundo, pois, acabara de dizer na minha palestra que o Mono ainda não suportava DLR.😉

Fico muito feliz em ver o Mono progredindo tão rápido.😀

Saldo parcial da PyConBrasil 3

1/09/2007

Depois de uma viagem longa (algo em torno de 12 horas de viagem), três vôos (ao invés de dois) e uma viagem de ônibus (não prevista), cheguei…

Muito python, plone, zope, grok, django, palestras com enfoque científico, palestras extras noturnas e um pouco de happy hour, pois, ninguém é de ferro.

Conheci uma renca de novas bibliotecas e ferramentas python, fui apresentado à novas aplicações, mais uso governamental e muito mais.

Consegui sobreviver à minha palestra, e dizem os amigos que fui bem… Em alguns dias os vídeos estarão disponíveis e irei postar aqui o local para download e/ou stream.

Agora vou voltar à PyConBrasil, at+

De malas prontas para PyConBrasil 3

29/08/2007

Após um longo inverno neste blog voltarei a postar e espero que sem tantas ausências.

Estarei embarcando para a PyConBrasil em 3 horas, minha palestra sobre IronPython para ASP.NET está pronta (nada impede que ainda melhore ela até a apresentação), e pode ser acessada aqui.

Aceito críticas e sugestões, os exemplos serão postados depois, até por que pretendo fazer um na hora da apresentação.

Até a próxima.

PyConBrasil 3

Será que estou muito dependente do Google ???

13/12/2006

Google na veia !

Tirei este screenshot uma dia desses, quando tinha percebido que minhas abas no Firefox estavam muito repetitivas.

😉

Para quem não conhece cada serviço:

  1. Google: Minha página personalizada do google, cheio de coisas que acompanho
  2. Gmail: Não conhece?? De que planeta você é ?
  3. Google Agenda: Uma agenda de compromissos, totalmente Web 2.0, com suporte para múltiplas agendas (tenho uma pessoal e outra do trabalho) e ao compartilhamento dos compromissos
  4. Google Reader: Leitor de RSS com a assinatura do google. Ah RSS, se você ainda não conhece ou não usa, não tem a menor idéia do que está perdendo…

Observação: É bem fácil montar este screenshot, mas ele realmente aconteceu e sem nenhum planejamento, depois disto já vi isto ocorrer de novo, porém com mais abas abertas, não sendo um “Google Exclusive“.

IronPython para ASP.net, mãos a obra !

4/11/2006

Hoje fiz meu primeiro teste com IronPython para ASP.net, e espero ajudar quem mais tiver vontade de sair do basicão (tomara que não me processem pelo plágio😉 ) C#, Java, JSP, ASP, PHP, etc. Não que estas linguagens/ambientes sejam ruins, apenas Python que é muito bom !😀

Requisitos:

Meu teste:

Tendo o Framework .Net 2.0 instalado, ainda é necessário instalar o Visual Web Developer (3Mb do setup + 40Mb de download sem os opcionais) e o IronPython for ASP.net (12Mb), este último ainda “sugeriu” um patch de correção no .Net 2.0 que ele mesmo instalou após a minha confirmação (acredito que o patch era um requisito).

Após a conclusão da instalação fui no Visual Web Developer e solicitei um novo Web Site e neste dialogo informei que a linguagem seria IronPython.

ip01.png

Ele me trouxe um esqueleto básico e nele escrevi o seguinte código para teste (como não consegui colocar no post com um formato bacana resolvi colocar o código em um link a parte):

É obvio que boa parte do Default.aspx pode ser gerado pelo próprio design do Visual Web Developer.

Pronto, já é possível rodar a aplicação e ver o resultado.

Observação: usuário e senha estão fixos, teste e 123 conforme é possível ver no método Authenticate.

Problemas encontrados:

  • Editor genérico: ainda não está totalmente adaptado ao código python, o maior exemplo disto é quando terminamos o código de um if, pressionamos Enter seguido de um Backspace, em qualquer editor preparado para Python ele retornaria até a coluna em que começamos o if, no Visual Web Developer ele volta apenas um caracter;
  • Auto-complete pobre: basicamente o auto-complete só funciona com as classes e funções definidas no próprio modulo e as construções básicas e builtins da Python;
  • Herança do aspx (inherits): Pelo que eu li existe este recurso mas ainda não consegui fazer funcionar-lo (aceito sugestões);😉
  • Web-services: ainda não possui suporte;
  • Acentuação: toda a saída vindo do código python está vindo sem acento neste teste, fiz várias experiências e ainda não encontrei a solução.

TODO:

  • Estudar o problema da acentuação
  • Tentar rodar este exemplo no Mono
  • Descobri a questão do inherits

Conclusões:

O suporte do IronPython para ASP.net me parece bem promissor considerando que este ainda é um CTP (Community Technology Preview) Release. O suporte para ASP.net já é funcional, a leitura do White Paper (leitura recomendada) me mostrou o trabalho que foi necessário fazer para que o ASP.net suportasse linguagens dinâmicas (por enquanto apenas IronPython).

Afinal, está chegando a hora das linguagens dinâmicas e se a Microsoft não quiser ficar de fora terá que aperfeiçoar ainda mais o seu framework (assim como a Sun está fazendo com o dela) para melhor acolher estas linguagens.

A comunidade IronPython começou a se formar há pouco tempo, porém, já pipocam alguns artigos na internet, numericamente são poucos mas freqüentes.

Me perdoem pelo enorme post, mas espero que tenha valido a pena, este é o meu primeiro post neste estilo, aceito críticas e sugestões. Valeu !

Atualização: Tive um problema com a imagem, mas já está resolvido !

Atualização 2: Código fonte agora está em um link com sintaxe colorida (powered by VIM)

IronPython caminhando… a passos largos !

3/11/2006

Eu já estava pensando em escrever um post sobre IronPython há algum tempo, e com o empurrão que recebi hoje pela manhã, não tive dúvida, a hora é esta.😉

Fui em uma reunião de uma consultoria que estou prestando sobre digitalização de imagens, estávamos discutindo métodos, ferramentas e bibliotecas para a implantação de uma rotina de digitalização em um software pré-existente e avaliando se faríamos em .Net (acessando via DCOM talvez) ou Win32, também discutindo sobre que linguagem utilizar se fosse .Net, e eu como sempre citei além de C#, Delphi e VB.Net, a Python, e um dos presentes na mesa (que até esta reunião eu não conhecia) citou IronPython.

Fiquei muito satisfeito em ver que mais pessoas estão avaliando o uso de IronPython como linguagem de desenvolvimento para .Net.

Ainda comentei rapidamente (para não desviar do assunto principal) que há poucos dias (acho que ontem) foi lançado oficialmente o suporte de IronPython para ASP.net com um plugin para o Microsoft Visual Studio (inclusive o Express).😀

Segue abaixo alguns sites e blogs sobre IronPython:

Atualização: Quando me refiro ao Express, o certo seria dizer:
Microsoft Visual Web Developer 2005 Express Edition que é gratuito

Vim 7 no Ubuntu Dapper

18/09/2006

Vi um post na br-linux falando da versão 7.0 do VIM, e fiquei sem nenhuma paciência de aguardar o Edgy para tê-lo comigo…

Procurei um pouco e achei duas opções para a atualização no meu Ubuntu Dapper amd64:

  1. Compilar a partir dos fontes no repositório do Edgy para o Dapper
  2. Baixar os arquivos compilados para amd64 e instala-los via dpkg, e aqui os pacotes para i386

Optei pela segunda e segui os seguintes passos:

  • Detectei os pacotes vim instalados: dpkg -l ‘vim*’ | grep ^ii (deve ter jeito melhor)
  • Criei um novo diretório e baixei nele os pacotes equivalentes aos que eu já tinha instalado
  • Removi todos os pacotes do VIM: sudo apt-get –purge remove vim (ele vai remover também o ubuntu-base e ubuntu-minimal, não se preocupe, pode confirmar, estes são apenas pacotes virtuais que agrupam todos os pacotes básicos do ubuntu, e como estamos removendo um destes pacotes, o pacotão virtual precisa ser removido)
  • Estando no diretório aonde estão os arquivos executei: sudo dpkg -i vim*
  • Pronto

Agora preciso rever meus arquivos de configuração do vim para tirar mais vantagem das novidades.

Até a proxima.


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.