Posts de June, 2010

[Felipe Santiago] Vida de freela [Semana 1] – Aclimatação

Friday, June 25th, 2010

Faz exatamente uma semana que me tornei oficialmente um profissional freelancer, depois de ter entrege minha carta de demissão na empresa. Como antecipei uma decisão que tomaria alguns meses mais tarde, não me preparei adequadamente. Mesmo com esse pequeno período de nova vida, já posso dar algumas dicas para os que estão pensando em se tornar free lancer também.

Estrutura de escritório

Acho muito importante criar um ambiente na sua casa para poder trabalhar em paz. Se esse ambiente for um quartinho-escritório, ou até mesmo seu quarto, é importante ter uma mesa e uma boa cadeira. Eu ainda não montei a minha estrutura pois estou mudando de quarto no meu apartamento (que é dividido). Mas esse certamente vai ser o meu primeiro investimento.

Reserva financeira

É importante antes de se aventurar na vida de freela conseguir criar uma reserva financeira, para eventuais problemas de fluxo de caixa. É claro que eu também não fiz isso, e agora estou correndo atrás do money perdido.

Contatos e mais contatos

Agora você vai precisar vender muito mais o seu peixe de que quando você era empregado. Portanto, ponha sua massa cinzenta para funcionar e pense numa forma eficaz conseguir contatos. Esteja sempre presente e solicite feedback sobre seu comportamento.

Portfolio

É importante ter um site com os projetos e trabalhos que você já participou ou criou. Além disso, você deve explicitar que serviços são oferecidos.

Leitura/Informação

É importante ler muito, se informar, estar por dentro de ferramentas que possam lhe ajudar durante o dia-a-dia. Rapidamente posso indicar 3 blogs: Fala Freela e Carreira Solo. Gosto muito também do blog Tecla SAP.

Horário

Ser freela não significa falta de compromisso. Você pode ter muito mais flexibilidade do que um trabalhador assalariado, mas o que não pode haver é irresponsabilidade. Por isso a minha dica é: crie uma agenda onde seja incluído atividades físicas e o trabalho, além das refeições e o período de descanso, é claro.

Conclusão

Ser freelancer tem muitos pontos positivos mas para produzir bem é bom criar algumas rotinas e responsabilidades. Essas foram as minhas primeiras impressões sobre esta nova fase da minha vida, porém, você poderá esperar novos artigos a respeito desse tema.

[Felipe Santiago] Vida de freela – Semana 1 e a aclimatação

Friday, June 25th, 2010

Faz exatamente uma semana que me tornei oficialmente um profissional freelancer, depois de ter entrege minha carta de demissão na empresa. Como antecipei uma decisão que tomaria alguns meses mais tarde, não me preparei adequadamente. Mesmo com esse pequeno período de nova vida, já posso dar algumas dicas para os que estão pensando em se tornar free lancer também.

Estrutura de escritório

Acho muito importante criar um ambiente na sua casa para poder trabalhar em paz. Se esse ambiente for um quartinho-escritório, ou até mesmo seu quarto, é importante ter uma mesa e uma boa cadeira. Eu ainda não montei a minha estrutura pois estou mudando de quarto no meu apartamento (que é dividido). Mas esse certamente vai ser o meu primeiro investimento.

Reserva financeira

É importante antes de se aventurar na vida de freela conseguir criar uma reserva financeira, para eventuais problemas de fluxo de caixa. É claro que eu também não fiz isso, e agora estou correndo atrás do money perdido.

Contatos e mais contatos

Agora você vai precisar vender muito mais o seu peixe de que quando você era empregado. Portanto, ponha sua massa cinzenta para funcionar e pense numa forma eficaz conseguir contatos. Esteja sempre presente e solicite feedback sobre seu comportamento.

Portfolio

É importante ter um site com os projetos e trabalhos que você já participou ou criou. Além disso, você deve explicitar que serviços são oferecidos.

Leitura/Informação

É importante ler muito, se informar, estar por dentro de ferramentas que possam lhe ajudar durante o dia-a-dia. Rapidamente posso indicar 3 blogs: Fala Freela e Carreira Solo. Gosto muito também do blog Tecla SAP.

Horário

Ser freela não significa falta de compromisso. Você pode ter muito mais flexibilidade do que um trabalhador assalariado, mas o que não pode haver é irresponsabilidade. Por isso a minha dica é: crie uma agenda onde seja incluído atividades físicas e o trabalho, além das refeições e o período de descanso, é claro.

Conclusão

Ser freelancer tem muitos pontos positivos mas para produzir bem é bom criar algumas rotinas e responsabilidades. Essas foram as minhas primeiras impressões sobre esta nova fase da minha vida, porém, você poderá esperar novos artigos a respeito desse tema.

[Felipe Santiago] Plano 5 – Primeira ação

Monday, June 21st, 2010

Conforme mencionei por aqui no início deste ano, estou elaborando um plano de ação para os próximos 5 anos que inclui um grande pacote de ações efetivas (logicamente) para alcançar alguns objetivos concretos.

A primeira ação tomada rumo ao objetivo de me tornar independente financeiramente foi a de pedir demissão. Isto porque não acredito que alguém consiga alcançar a independência financeira sendo assalariado. Já falei um pouco do que penso em um post anterior.

Por outro lado, eu mais do que nunca, preciso me capitalizar. Com essa necessidade, automaticamente assim que pedi demissão me tornei oficialmente um profissional desenvolvedor de projetos web free lancer. Sendo assim, agora tenho uma cartilha de serviços oferecidos para atender a necessidade das pessoas que precisem de um projeto web, seja para desenvolver um site, hotsite ou sistema/intranet. Veja a seguir:

  • Desenvolvimento de websites dinâmicos implementados em PHP, Ruby on Rails e Python/Django;
  • Blogs, Hotsites e Sites desenvolvidos em WordPress e Joomla;
  • Consultoria em S.E.O para melhorar o posicionamento de sites em  mecanismos de busca;
  • Desenvolvimento de sistemas web e Intranets.

Abaixo segue uma lista do úttimos projetos que participei:

  • G1: www.g1.com.br
  • Entretenimento: entretenimento.globo.com
  • Sistema Sua Empreza: www.suaempreza.com.br
  • Sites mobile da Globo (m.globo.com)
  • DLA International: www.dla.com.br
  • Blog Roadie: www.roadie.com.br
  • Primeira Chance: www.primeirachance.com.br
  • Fórmula 1 ao vivo: www.formula1aovivo.com
  • Felipe Pavão: www.felipepavao.com

Também farei uma série de ajustes neste site para que meu futuro cliente possa acompanhar meu trabalho e atualizações deste blog. Então, se você conhece alguém que está precisando de serviços web e gosta do meu trabalho, não deixe de me indicar. Pode deixar que eu pago o chopp no próximo papo.

[Emerson Macedo] Seu software também deve comunicar-se corretamente

Wednesday, June 16th, 2010

Alguns estudos apontam que o maior problema da maioria das empresas é a comunicação. Esforços incansáveis são feitos para melhorar isso e todos sabemos que é um grande desafio. Mas e o Software? Será que este também não deveria comunicar-se de forma mais clara com seus usuários?

Exemplo triste – Aconteceu comigo :(

Ontem a tarde me aconteceu uma situação pouco comum. Após terminar o jogo do Brasil pela Copa 2010, fui com minha esposa ao supermercado fazer algumas compras. Compramos um bocado de coisas. Diria que fiquei mais de 1 hora no mercado. Na hora de pagar, eis que surge um problema. O cartão Alimentação Pass da Sodexo não funcionou. A máquina informou a seguinte mensagem: “FALHA NA COMUNICAÇÃO” (que imagino ser um problema de rede ou algo do tipo). A caixa do mercado repetiu o processo em outra máquina e o problema permaneceu. Até ai tudo bem. Afinal, indisponibilidade é algo que pode acontecer.

Passado alguns minutos, a caixa chamou o fiscal do mercado que nos atendeu de forma simpática e pegou uma outra máquina para tentar novamente fazer o pagamento (nesse momento eu já estava pensando em usar o cartão do banco de deixar pra lá o sodexo). Eis que a máquina informa que o saldo estava zerado, ou seja, teoricamente em alguma das passagens a compra foi paga. Percebi então que uma simples ida ao mercado ia me dar uma dor de cabeça sem tamanho.

O simpático fiscal, ao verificar o problema, foi a gerência da loja para tirar relatórios e verificar o que aconteceu. Voltando, a única coisa que saiu no relatório foram transações não concluídas. Nesse momento eu perguntei ao fiscal: O sistema não informa qual foi o problema? Ele me disse: Não, o sistema só informa que não foi relalizada. Acabei ficando sem saber o que estava acontecendo de fato, já que meu saldo estava zerado. A minha única certeza é que em algum lugar foi debitado a compra do meu cartão sodexo.

O próximo passo foi tentar verificar na sodexo. Abri meu iphone e entrei no site para verificar o saldo. Digitando o número do cartão e cpf, recebi a mensagem “Não foi encontrado um cartão para os dados informados”. Achei um pouco estranho e liguei para um amigo, passei meus dados e pedi para ele verificar, pois poderia ser que o site não oferecesse um comportamento correto no browser do iphone. Ele verificou e a mesma mensagem apareceu. Caiu a ficha. Estava acontecendo algum problema grave na Sodexo.

Liguei então para central de atendimento. O atendimento eletrônico me pediu o número de cartão e senha e em seguida me informou o saldo. Para minha surpresa, o saldo era o dobro do saldo que deveria ser, ou seja, nem estava zerado, nem estava correto. Comecei a falar com o atendente e pedi meu saldo novamente. Ele me disse: Seu saldo é zero. Retruquei: Como zero se o atendimento eletrônico me disse o saldo X? Ele respondeu: Houve uma queda geral nos sistemas e estamos dando o prazo de até as 00:00 de hoje para tudo voltar ao normal.

No fim das contas paguei com cartão de débito do banco.

Análise do problema.

Após esse incidente, pensei um pouco sobre esse sistema de pagamentos.

Sobre a compra, provavelmente o que aconteceu é que o Sodexo debitou o valor e como a máquina não respondeu e o sistema caiu, a transação deve ter ficado pendente, prendendo meu saldo. Nesse momento, fazia sentido não ter saldo até que o sistema fosse restabelecido por completo. Mesmo assim, alguma coisa me incomodou. Por que a mensagem de retorno não poderia informar o que estava acontecendo? Não poderia informar alguma coisa melhor que “FALHA NA COMUNICAÇÃO”? Naquela hora, eu não sabia se o problema era da Sodexo, que não informava um código/retorno de erro adequado, ou se a máquina não tratava os retornos de erros corretamente.

Enviar mensagens de erro corretamente e fazer tratamento de forma adequada são fundamentais na comunicação com o usuário, quando o sistema apresenta comportamentos inesperados. A falta de atenção nisso é mais comum do que parece e vou exemplificar. Existem diversos sistemas que ignoram mensagens, como por exemplo situações onde um dos lados (ou ambos) em uma comunicação  ignoram os status code http. Ex:

HTTP/1.1 200 OK
Content-Type: text/xml

<error>
  <code>123</code>
  <message>Ocorreu um erro</message>
</error>

Percebeu o problema?

Outro caso bem comum acontece quando quem envia uma mensagem para um objeto trata todos os retornos de erros de forma igual e não mostra claramente a mensagem. Ex:

try {
  objeto.fazAlgumaCoisa();
catch (Exception e) {
  log.error("Deu algum erro");
}

Já vi muito código assim e isso dificulta bastante pra quem está tentando entender o que está acontecendo.

Pior que isso foi o sistema web me dizer que não achou meu cartão, quando na verdade algum outro sistema que esse se comunica estava fora do ar. Não podia simplesmente informar algo como “Nosso sistema está em manutenção, previsão de retorno para X horas”? Cartão inexistente é inadmissível, pois certamente o cliente ficará confuso sobre o que está acontecendo.

E o saldo no atendimento eletrônico que estava dobrado? Eu aprendi certa vez que esse tipo de informação deveria vir de somente um lugar. No caso eu obtive 3 valores diferentes para meu saldo, o que me indica que esse principio não foi respeitado.

E sobre a indisponibilidade do sistema? Que tal enviar automaticamente um SMS/twitter/email ou qualquer outra coisa para que os clientes possam se preparar para esse tipo de situação? Ser pego de surpresa é sempre ruim.

Conclusão

Comunicação não é só importante entre pessoas. Nossos Softwares precisam comunicar-se adequadamente com seus usuários. Muitos ignoram isso completamente. Tenho certeza que podemos melhorar isso.

Post Footer automatically generated by Add Post Footer Plugin for wordpress.

[Emerson Macedo] Seu software também deve comunicar-se corretamente

Wednesday, June 16th, 2010

Alguns estudos apontam que o maior problema da maioria das empresas é a comunicação. Esforços incansáveis são feitos para melhorar isso e todos sabemos que é um grande desafio. Mas e o Software? Será que este também não deveria comunicar-se de forma mais clara com seus usuários?

Exemplo triste – Aconteceu comigo :(

Ontem a tarde me aconteceu uma situação pouco comum. Após terminar o jogo do Brasil pela Copa 2010, fui com minha esposa ao supermercado fazer algumas compras. Compramos um bocado de coisas. Diria que fiquei mais de 1 hora no mercado. Na hora de pagar, eis que surge um problema. O cartão Alimentação Pass da Sodexo não funcionou. A máquina informou a seguinte mensagem: “FALHA NA COMUNICAÇÃO” (que imagino ser um problema de rede ou algo do tipo). A caixa do mercado repetiu o processo em outra máquina e o problema permaneceu. Até ai tudo bem. Afinal, indisponibilidade é algo que pode acontecer.

Passado alguns minutos, a caixa chamou o fiscal do mercado que nos atendeu de forma simpática e pegou uma outra máquina para tentar novamente fazer o pagamento (nesse momento eu já estava pensando em usar o cartão do banco de deixar pra lá o sodexo). Eis que a máquina informa que o saldo estava zerado, ou seja, teoricamente em alguma das passagens a compra foi paga. Percebi então que uma simples ida ao mercado ia me dar uma dor de cabeça sem tamanho.

O simpático fiscal, ao verificar o problema, foi a gerência da loja para tirar relatórios e verificar o que aconteceu. Voltando, a única coisa que saiu no relatório foram transações não concluídas. Nesse momento eu perguntei ao fiscal: O sistema não informa qual foi o problema? Ele me disse: Não, o sistema só informa que não foi relalizada. Acabei ficando sem saber o que estava acontecendo de fato, já que meu saldo estava zerado. A minha única certeza é que em algum lugar foi debitado a compra do meu cartão sodexo.

O próximo passo foi tentar verificar na sodexo. Abri meu iphone e entrei no site para verificar o saldo. Digitando o número do cartão e cpf, recebi a mensagem “Não foi encontrado um cartão para os dados informados”. Achei um pouco estranho e liguei para um amigo, passei meus dados e pedi para ele verificar, pois poderia ser que o site não oferecesse um comportamento correto no browser do iphone. Ele verificou e a mesma mensagem apareceu. Caiu a ficha. Estava acontecendo algum problema grave na Sodexo.

Liguei então para central de atendimento. O atendimento eletrônico me pediu o número de cartão e senha e em seguida me informou o saldo. Para minha surpresa, o saldo era o dobro do saldo que deveria ser, ou seja, nem estava zerado, nem estava correto. Comecei a falar com o atendente e pedi meu saldo novamente. Ele me disse: Seu saldo é zero. Retruquei: Como zero se o atendimento eletrônico me disse o saldo X? Ele respondeu: Houve uma queda geral nos sistemas e estamos dando o prazo de até as 00:00 de hoje para tudo voltar ao normal.

No fim das contas paguei com cartão de débito do banco.

Análise do problema.

Após esse incidente, pensei um pouco sobre esse sistema de pagamentos.

Sobre a compra, provavelmente o que aconteceu é que o Sodexo debitou o valor e como a máquina não respondeu e o sistema caiu, a transação deve ter ficado pendente, prendendo meu saldo. Nesse momento, fazia sentido não ter saldo até que o sistema fosse restabelecido por completo. Mesmo assim, alguma coisa me incomodou. Por que a mensagem de retorno não poderia informar o que estava acontecendo? Não poderia informar alguma coisa melhor que “FALHA NA COMUNICAÇÃO”? Naquela hora, eu não sabia se o problema era da Sodexo, que não informava um código/retorno de erro adequado, ou se a máquina não tratava os retornos de erros corretamente.

Enviar mensagens de erro corretamente e fazer tratamento de forma adequada são fundamentais na comunicação com o usuário, quando o sistema apresenta comportamentos inesperados. A falta de atenção nisso é mais comum do que parece e vou exemplificar. Existem diversos sistemas que ignoram mensagens, como por exemplo situações onde um dos lados (ou ambos) em uma comunicação  ignoram os status code http. Ex:

HTTP/1.1 200 OK
Content-Type: text/xml

<error>
  <code>123</code>
  <message>Ocorreu um erro</message>
</error>

Percebeu o problema?

Outro caso bem comum acontece quando quem envia uma mensagem para um objeto trata todos os retornos de erros de forma igual e não mostra claramente a mensagem. Ex:

try {
  objeto.fazAlgumaCoisa();
catch (Exception e) {
  log.error("Deu algum erro");
}

Já vi muito código assim e isso dificulta bastante pra quem está tentando entender o que está acontecendo.

Pior que isso foi o sistema web me dizer que não achou meu cartão, quando na verdade algum outro sistema que esse se comunica estava fora do ar. Não podia simplesmente informar algo como “Nosso sistema está em manutenção, previsão de retorno para X horas”? Cartão inexistente é inadmissível, pois certamente o cliente ficará confuso sobre o que está acontecendo.

E o saldo no atendimento eletrônico que estava dobrado? Eu aprendi certa vez que esse tipo de informação deveria vir de somente um lugar. No caso eu obtive 3 valores diferentes para meu saldo, o que me indica que esse principio não foi respeitado.

E sobre a indisponibilidade do sistema? Que tal enviar automaticamente um SMS/twitter/email ou qualquer outra coisa para que os clientes possam se preparar para esse tipo de situação? Ser pego de surpresa é sempre ruim.

Conclusão

Comunicação não é só importante entre pessoas. Nossos Softwares precisam comunicar-se adequadamente com seus usuários. Muitos ignoram isso completamente. Tenho certeza que podemos melhorar isso.

[Rafael Biriba] IST-Rio: Inscrições abertas - Vestibular 2010: 2º semestre

Monday, June 14th, 2010

 

http://www.faetec.rj.gov.br/ist-rio

http://www.faetec.rj.gov.br/ist-rio

Estão abertas as inscrições para o vestibular de acesso ao curso de Análise de Sistemas Informatizados do IST-Rio (Instituto Superior de Tecnologia em Ciência da Computação do Rio de Janeiro), para o segundo semestre de 2010.

São oferecidas 17 vagas para o turno da manhã e 17 vagas para o turno da noite. As inscrições podem ser feitas pelo site da FAETEC, ou pelo link: http://200.150.155.210/faetec_2010.2/ na opção Vestibular Faetec - IST.

O período para inscrições termina dia 25 de junho de 2010, segundo as informações no site da organizadora do concurso.

De acordo com o INEP/MEC o curso (Análise de Sistemas Informatizados do IST-Rio) é o 2º melhor do Rio de Janeiro e o 8º melhor do Brasil…

Não perca essa oportunidade! Qualquer dúvida ligue para (21) 2332-4048. Boa Sorte a todos os candidatos… ;)

Links Úteis:
Site do instituto:  http://www.faetec.rj.gov.br/ist-rio/
Link direto para inscrição no vestibular: http://200.150.155.210/faetec_2010.2/Inscricao/Formulario.asp?opcao=4
Link direto para o edital: http://200.150.155.210/faetec_2010.2/Divulgacao/MANUAL_2010-2_Superior.pdf
Link direto para o anexo de datas/vagas/etc: http://200.150.155.210/faetec_2010.2/Divulgacao/ANEXOs_SUPERIOR.pdf

 

Abaixo segue umas imagens do instituto:
istrio


Leia também:

[Felipe Santiago] Pai rico, pai pobre

Saturday, June 12th, 2010

Com este artigo, pretendo iniciar uma série de resenhas sobre livros que tenho lido, sejam eles técnicos, de administração, finanças ou marketing, cujas áreas me interesso bastante. “Pai rico, pai pobre” tem um título bastante curioso, marca pessoal do autor Robert Kiyosaki, que já assinou outros best-sellers e abusa de nomes curiosos para suas obras.

Para começar, não gosto quando rotulam livros de dicas como sendo auto-ajuda. O autor compartilha da sua visão para que consigamos avaliar o curso de nossas vidas e até mesmo alterar. Os exemplos que utiliza, sendo seus próprios causos ou de pessoas que conheceu, são de muita utilidade e possuem lógica. Lógica esta, que em determinados períodos de nossas vidas a perdemos, pois estamos muito envolvidos na “Corrida dos Ratos”.

O livro

Bom, já comecei a mencionar alguns dos termos que o autor utiliza. A “Corrida dos Ratos” é a história de todas as pessoas assalariadas. Ganham seu dinheiro, gastam todo sem guardar nada. Recebem aumentos, aumentam seu padrão de vida, adquirem bens, dívidas, e não conseguem guardar nada. E no final da vida, precisam depender da aposentadoria do governo para viver. Esse curso de vida é muito perigoso, pois com o dinamismo do mercado, as empresas mudam a toda hora, enxugam seus quadros, e você que possue um grande salário um dia, pode se encontrar quebrado no dia seguinte.

Saindo da corrida

Para sair da “Corrida dos ratos” é preciso agir. Não há como se tornar rico sendo assalariado: você apenas enriquece alguém mas não a si mesmo. Então é importante durante o tempo em que estiver empregado investir nos seus ponto fracos, para que assim que estiver controlando seus investimentos, possa estar seguro em suas ações. Além disso, é muito mais importante diminuir suas despesas e passivos, para que possa comprar ativos. Ativos são coisas que colocam dinheiro no seu bolso. Sendo assim, considera-se uma pessoa rica, quando sua porção de ativos seja suficiente para gerar dinheiro e para mantê-la sem que ela precise trabalhar formalmente.

O momento

Não vejo melhor momento para enriquecer como o que vivemos agora. Teremos copa em 2014, olímpiadas em 2016 e muito por fazer no país. Somos um país em construção e as oportunidades estão aí. Basta colocarmos nossas mentes para funcionar. O caminho é empreender, criar, oferecer soluções onde a sociedade falha.

Como o autor diz, nos momentos em que estamos com dificuldades financeiras, nossa mente consegue criar soluções para que faça o dinheiro acontecer. Sendo assim, aproveite o momento e utilize da sua inteligência financeira para enriquecer.

Conclusão

Este livro me ajudou muito a notar alguns pontos fracos e tomar determinadas decisões que serão explicadas em um próximo artigo. De qualquer forma, indico para todas as pessoas a leitura, pois é um livro de leitura fácil e com altíssima didática. Boa leitura e até a próxima.

[Gabriel Falcão] lettuce 0.1 official release

Tuesday, June 8th, 2010

27 days after its first release candidate, lettuce is now much mature and also got new features.

Lettuce is a BDD tool written in python, 100% based on cucumber.

There are two reasons for the name:

  • Lettuce is a green vegetable, just like cucumber the idea is that your tests must be always green.
  • Letuce is the name of a brazillian band that I pretty much like

Hands on!

There are links to lettuce’s official documentation at the end of this post, but there is a sneak peak:

Features are described in files with .feature extension and must be, by defaul within your project, in a folder called “features“.

Features are described like this:

Feature: Introduce lettuce to my friends
  In order to show it working
  As lettuce author
  I want to create a scenario that passes

  Scenario: Concatenate names
    Given I have the following names:
      | name | surname |
      | john | doe     |
      | ian  | murdock |
    When I join them
    Then I see the data:
      | joined       |
      | Doe, John    |
      | Murdock, Ian |

In order to define steps all you need to do is write a new python file wihin features folder, Lettuce will import them all, recursively.

Example:

# -*- coding: utf-8 -*-
from lettuce import step, world, before
from some_module import NameJoiner

# setup
@before.each_scenario
def set_joined(scenario):
  world.joined = []

# steps
@step(‘I have the following names’)
def set_names(step):
  world.people = step.hashes

@step(‘join them’)
def join_names(step):
  for person in world.people:
    joiner = NameJoiner(
      name=person["name"],
      surname=person["surname"]
    )
  world.joined.append(joiner.join())

@step(‘I see the data’)
def check_names(step):
  for name, data in zip(world.joined, step.hashes):
    assert name == data[‘joined’]

(the full example is available here aqui)

Motivation

Since I started with TDD in Python I had many experiences, I’ve tested many mock mock libraries and test techniques.
In web projects I’ve used Pyccuracy, so that I could both describe behaviour of the application and make automated acceptance tests.

Althrough, I had a chance to try Cucumber with Django here at globo.com, and the result was: I fell in love with it, and had incredibly productive features, such as step tables which allows drawing a ascii table and map it into a list of hashes, and the scenario outlines.

From there I had THE inspiration: to implement a tool that works exactly like Cucumber, but in python.

Why ?

Python programmers it’s easier and frictionless to use libraries written in Python. I personally avoid mixing programming languages in a single project, some technologies can suit perfectly in the project, no matter in what language, but if there is a Python option, I will give it a go.

Cucumber IMHO one lib to make ruby even more “sexy” :)
Build a robust application, well tested required patience, what about turn it into fun ! ?
It’s easier to package python modules for debian/ubuntu.

Besides, even considering the fact that  Cucumber already supports, would be more interesting to user pure python within step definitions.
Supposing that a web application will be written with Django and Cucumber, would be very useful to manipulate models within step definitions. However turning it possible, would need efforts to run rubypython, which the latest release dates october 2009.

Examples of similar libraries between python and ruby

Web framework:

ruby: rails
python: django

Micro web framework:

ruby: sinatra
python: cherrypy

Automated deploy:

ruby: capistrano
python: fabric

Behaviour-driven development:

ruby: cucumber
python: lettuce ?! (maybe ?! Who knows ?! :P )

More on lettuce

Documentation

Available at http://lettuce.it covers all supported features until now.

Contribute!

I’ll appreciate all kinds of feedback, to do so we have some channels:

Lettuce is under GNU GPL 3+ and have a long way until get robust, and any kind of help is welcome: patches, documentation, language support and so on!

Grab it, and happy hacking :)

[Felipe Santiago] Gem MySQL no Mac OS x Leopard

Sunday, June 6th, 2010

Essa dica é rápida e serve para quem tem problemas ao instalar a gem do MySQL toda vez que vai preparar um ambiente de desenvolvimento Rails. Se você instalou o MySQL executando o .dmg, faça a instalação da gem igual ao que foi sugerido no link abaixo.

http://wonko.com/post/how-to-install-the-mysqlruby-gem-on-mac-os-x-leopard

Fazendo dessa forma, você conseguirá definir os paths corretos para os executáveis do MySQL.

Até a próxima.