Marcos Sousa’s Blog

Blog sobre desenvolvimento de software
  • rss
  • Home
  • Sobre

Como instalar o Macports no Mac Snow Leopard

Marcos Sousa | January 14, 2010

Recentemente fui tentar instalar o pyccuccy para testá-lo, mas a instalação será tema para outro post. Até o momento ainda não tinha usado o GIT por linha de comando, apenas pelo plugin do eclipse no Mac (Está bem, os projetos em Java mesmo). Só que instalar o Macports no Snow Leopard me gerou um certo stress, ao acessar o site me deparei que o Macports 1.7.0 não tem suporte para o Snow Leopard. Porém fui até o código fonte do projeto e notei que os fontes já suportam a versão 10.6.2. Com base nisto criei o seguinte script para instalar o macports a partir do código fonte (deve ser executado como sudo):

1
2
3
4
5
6
7
8
9
#!/usr/bin/env bashcd /tmp
svn co http://svn.macports.org/repository/macports/trunk/base/
cd base
./configure
make
sudo make install
cd ..
sudo rm -r base
sudo port -v selfupdate

O código é bem simples, porém funcionou sem problemas e já o usei umas 2 vezes. Fica a dica para quem precisar. E fica a dica ainda maior para salvar o código como um executável para não ter que ficar digitando comandos todas as vezes, ou seja, Dont Repeat Yourself (DRY).

Comments
No Comments »
Categories
DRY, Mac OS
Tags
DRY, Mac, shell script, Snow leopard
Comments rss Comments rss
Trackback Trackback

Instalar o driver Mysql para Python no Mac Snow Leopard

Marcos Sousa | January 2, 2010

Já tem algum certo tempo que gostaria de compartilhar esta experiência. Durante os tempos vagos, estou buscando além de ler livros, estou também buscando conhecer novas linguagens. Sempre que posso estou dedicando um certo tempo para aprender algo a mais em Ruby e Python. Como desenvolvi na grande maioria dos casos para web, escolhi o Ruby on Rails e Django como o foco inicial dos estudos.

O meu primeiro problema encontrado com Python foi quando eu pensei em persistir os dados no Mysql. É uma tarefa relativamente simples, porém devido a versão incorreta do Mysql para a versão do sistema operacional, colocar o driver no “classpath” do python me rendeu uma certa dor de cabeça. Usando o Mac OS X 10.6, também conhecido como Snow Leopard, eu tinha o Mysql a versão x86 instalada. O correto é ter a versão x86_x64.

Como um bom desenvolvedor preguiçoso, resolvi criar um script shell para não ter problemas ao ter que reinstalar o driver em novas ocasiões. Seguindo as recomendações iniciais do site oficial do driver a primeira versão do script foi algo semelhante, ao script abaixo:

1
2
3
4
5
6
7
#!/usr/bin/env bash

curl -o MySQL-python-1.2.3c1.tar.gz http://ufpr.dl.sourceforge.net/project/mysql-python/mysql-python-test/1.2.3c1/MySQL-python-1.2.3c1.tar.gz
tar -vzxf MySQL-python-1.2.3c1.tar.gz
cd MySQL-python-1.2.3c1
python setup.py build
python setup.py install

É importante lembrar que é preciso ter o gcc para executar o script acima. Para isto basta instalar o XCode disponível como pacote opcional no DVD de instalação do mac, ou baixado através da página de download oficial. Executando a instrução abaixo para certificar que a instalação foi bem sucedida

1
>>> import MySQLdb

Me deparei com o seguinte erro:

1
2
3
4
5
6
7
8
import sys, pkg_resources, imp
Traceback (most recent call last):
File “”, line 1, in
File “MySQLdb/__init__.py”, line 19, in
import _mysql
File “build/bdist.macosx-10.5-x86/egg/_mysql.py”, line 7, in
File “build/bdist.macosx-10.5-x86/egg/_mysql.py”, line 6, in __bootstrap__
ImportError: dynamic module does not define init function (init_mysql)

Após olhar atentamente a documentação do driver, listas de discussões e blogs notei que a versão do Mysql era origem do problema. Diante disso, criei um script para desinstalar o mysql:

1
2
3
4
5
6
7
8
9
#!/usr/bin/env bash
/Library/StartupItems/MySQLCOM/MySQLCOM stop
rm /usr/local/mysql
rm -rf /usr/local/mysql*
rm -rf /Library/StartupItems/MySQLCOM
rm -rf /Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
# Editar o arquivo /etc/hostconfig e remover a linha MYSQLCOM=-YES-

Feito isto, instalei novamente o Mysql na versão 5.5 x86_x64. Depois disso, apenas para certificar que estava executando o script correto, adicionei uma flag dizendo a versão para qual o driver era destinado. As duas últimas linhas do primeiro script foram substituídas por estas:

1
2
ARCHFLAGS='-arch x86_64' python setup.py build
ARCHFLAGS='-arch x86_64' python setup.py install

Nota: apenas desinstalar o mysql que requer a execução como super usuário.

Fica a dica para que possa ajudar alguém que esteja iniciando e que encontre o mesmo problema. ;)

Comments
2 Comments »
Categories
Django, Python
Tags
Django, driver, mysql, Python, python-mysql-driver
Comments rss Comments rss
Trackback Trackback

Balanço Agile Conference 2009

Marcos Sousa | October 4, 2009

Para ser sincero este post estava nos meus rascunhos deste o terceiro dia de evento, mas sempre queria escrever algo mais, e acabou mofando aqui nos rascunhos.

O evento foi como eu esperava, sensacional. A começar pela primeira palestra Craftsmanship de Robert Martin, o Uncle Bob, falando sobre habilidades que visam resolver difíceis questões como: qualidade X velocidade e dersordem X foco. Em relação a qualidade de software, ele criticou os desenvolvedores que são bons debuggers. Segundo ele, se um desenvolvedor é um ótimo debugger, é bem provável que a qualidade do código que ele desenvolve não é satisfatória. Se o código está bem escrito e ocorre um problema, é mais fácil encontrar o erro com um simples olhar no código do que ter que depura-lo.

Para fechar o dia fui numa apresentação sobre técnicas para melhorar a qualidade dos diálogos dentro dos times. Foi muito interessante, pois após uma breve introdução falando das diferenças entre diálogo e discussão, foram formados grupos de quatro pessoas  para discussão dos pontos abordados e a cada 10 minutos o grupo apresentava as conclusões e novos grupos eram formados.

O segundo dia foi incrível. Iniciou-se com o keynote “I Come to Bury Agile, Not to Praise It” onde foi abordado o estágio atual do qual as práticas ágeis se encontram: ganhando cada vez mais espaço em grandes projetos. Após fui em companhia com o pessoal da Globo.com (Andréia, Evandro Flores, Victor Pantoja, Roberta, Viviane e o Otávio) para a palestra Death by Scrum Meeting de Pete Behrens. Nos divertimos bastante fazendo a parte prática (na foto) no qual foi abordado técnicas de organização dos itens no backlog, na ocasião relacionamos animais por tipo, tamanho, etc. Também foi discutido o timebox e os objetivos e a importância que cada reunião possui dentro do ambiente scrum.

Na parte da tarde, assisti uma excelente apresentação da Mary Poppendieck falando práticas de desenvolvimento de software. Ela disse em sua apresentação que se tornar um expert leva tempo, exige dedicação, não mudar de trabalho com frequência, alocar tempo específico para aprendizado e tempo para inovação, afinal eficiência nem sempre deve ser o objetivo. Ela também apresentou algumas técnicas para contratação de bons profissionais, não muito longe das apresentadas neste post.

Logo após participei da apresentação The Lean Lego Game dos brasileiros Francisco Trindade e Danilo Sato. Através de um ambiente descontraído eles apresentaram conceitos como Waste, Pull, Push, Yatai. Pena que não consegui montar a casa no tempo correto :( .

Para fechar o dia com chave de ouro, participei do Open Agile Office da ThoughtWorks. Com uma vista exuberante do milenium park, o escritório é muito bem estruturado. Tive a oportunidade de conversar com diversos ThoughtWorkers, conhecer o que eles fazem, algumas ferramentas que eles possuem. A apresentação do Martin Fowler foi impecável.

No terceiro dia, assisti uma apresentação sobre liderança em Agile. Uma apresentação de 180 minutos. No início foi interessante, Bud Phillips através de uma breve apresentação de cada participante abordou aspectos como a relação de liderança, escopo do produto, cultura e estrutura. Dentro destas vertentes é possível levantar aspectos como: oportunidades de mundanças, aspectos blocantes, questionamentos e elementos bem desenvolvidos.

Para fechar o dia, Gerad Mezaros falou de atividades importantes que devem acontecer antes da primeira iteração. Ele disse que em projetos waterfall há o desejo de se planejar até a hora em que o software entrará em desuso e projetos agile iniciam-se antes da hora, em muitos casos sem um planejamento adequado. Segundo ele é preciso ter bom censo para não se gastar muito tempo planejando e nem iniciando o desenvolvimento sem um planejamento mínimo necessário.

A apresentação sobre criação de arquivos mocks do brasileiro Paulo Caroli foi ótima, pessoal interagindo ao longo dos exemplos apresentados, muitos questionamentos. E quem estiver interessado, o Paulo disponibilizou os exemplos no google code: http://code.google.com/p/mocksamples

Diferentemente dos eventos aqui no Brasil geralmente em locais abertos, com expositores ao centro das salas, no Agile conference era local fechado com mais de 20 salas distribuídas em 2 torres com 3 andares cada. Para ser sincero, em alguns momentos me sentia perdido por lá.

O número de brasileiros foi outro fatos que me impressionou. Nos intervalos era difícil não ouvir conversas em português espalhadas. Acredito que havia mais de 50 brasileiros, sempre que conversava com alguma pessoa que falava que era brasileiro, todos comentavam o número e a euforia passada de nós brasileiros.

Valeu a pena todo o meu esforço e meu investimento feitos para ir ao evento. Aprendi muito e sei que posso aplicar diversas idéias que ajudarão no dia-a-dia do meu trabalho.

Comments
1 Comment »
Categories
Agile, Agile Conference 2009, Scrum, TDD
Tags
Agile, Agile Conference, Agile Conference 2009, Agile2009, Kanban, Lean, Scrum, XP
Comments rss Comments rss
Trackback Trackback

« Previous Entries

Núvens de tags

Agile Agile2009 Agile Conference Facelets GET Hibernate IDE incompatiblidades Itext Java Java EE Java Magazine Java Server Faces JavaServer Faces Java Vídeo Magazine Jboss jboss-seam-itext Jboss Developer Studio Jboss Seam JDBC type: 7 JPA JSF JSFUnit linux Microsoft No Dialect mapping for JDBC type: 7 Page Actions PostGreSQL RHDS rich:fileUpload Rich Faces RichFaces RichFaces 3.2 Scrum Seam-gen Seam Framework Seam PDF Spring Spring Framework TDD URL Rewrite URL User Friendly Vídeo Aula Variable Resolver XP

Meus últimos tweets

  • Lots of issues solved in python petshop project. I really love to have access to the source code, I feel more comfortable to solve them #win 1 hour ago
  • Você trabalha muito ? http://bit.ly/acRVHJ (via @handersonbf) #rimuito #nerd #geek 5 hours ago
  • RT: @jeveaux: RT @makoto_vix Olha o que esta no site do serra ! http://bit.ly/9b1lY4. #boa 13 hours ago
  • Using Google Calendar for planning my activities for this week. As usual just 5hs/day to sleep. Now, let's try to follow it! 1 day ago
  • Lost in Pandora, an extra season of LOST: http://meme.yahoo.com/marcossousa/p/8Rzv4E2 1 day ago
  • The correct spell of CCAA: http://meme.yahoo.com/marcossousa/p/wKmeANO #dumb 1 day ago
  • Inscrição feita para o Open Hack Brazil 2010. Nos encontramos lá. http://tinyurl.com/yjhkw4c #brhackday 3 days ago
  • RT: @mynameisflaw: Gilead + GWT don't work with Seam Remoting! :( 3 days ago
  • @guinascimento @igocoelho Foi muito bom mesmo. Além da festa que fizemos aquele Bloomin Onion estava muito gosto. 3 days ago
  • RT: @gchapiewski: RT @smashingmag: Removing Features: How To Avoid Feature Creep - http://bit.ly/9HT3Da 3 days ago

Anúcios

Categorias

  • .net
  • Agile
  • Agile Conference 2009
  • Artigos
  • Atualidades
  • c++
  • cinema
  • Django
  • DRY
  • Eventos
  • Flex
  • Formula 1
  • Hibernate
  • IDE
  • Inutilidades
  • Java
  • Java EE
  • Java Server Faces
  • Jboss Seam
  • linux
  • Mac OS
  • Microsoft
  • Open-source
  • Palestras
  • Python
  • RAD
  • RIA
  • RichFaces
  • Scrum
  • Software Livre
  • Spring
  • Spring Annotations
  • TDD
  • Testes
  • Uncategorized
  • Vídeo Aulas

Links recomendados

  • AJ Soluções
  • Ary Júnior
  • Erko Bridee
  • Fragmental
  • Fragmental TW
  • Guilherme Chapiewski
  • Handerson Frota
  • Jeveaux
  • Juliano Carniel
  • Onipresente
  • Passes de Letra
  • PortalJava.com
  • Rafael Carneiro
  • Rafael Pontes

DevMedia Post’s

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox