Hoje li um artigo falando à respeito da prática conhecida como "release early, release often". Nele o autor tentava expor as diferenças entre fazer liberações frequentes e fazer apenas liberações "maduras". Segundo ele, com liberações frequentes normalmente a versão inicial tem vários bugs, que são corrigidos à cada versão até chegar ao ponto onde tudo funciona corretamente. Por outro lado, se a prática escolhida é de apenas liberar releases maduros, são feitos poucos releases e neles o software deve estar totalmente livre de bugs.
Agora eu pergunto: o que você acha melhor, liberações frequentes ou liberações maduras?
Bem, será que as duas formas realmente são mutuamente exclusivas? Não podemos ter as duas ao mesmo tempo? Eu acredito que sim!
Para mim, liberações frequentes não significa liberar funcionalidades com bugs e deixar pra corrigir mais tarde, todo o release deve estar livre de bugs. A qualidade do software deve ser ponto indiscutível. O que muda é a quantidade de funcionalidades e não a qualidade delas.
A grande vantagem dos releases frequentes é ter um feedback o mais cedo possível do usuário. Quanto antes o usuário puder usar o software, ver se ele está adequado à realidade e dar o feedback, melhor. Um detalhe importante é que, o fato das funcionalidades estarem livres de bug não significa que elas necessariamente precisam estar "completas". E, por "completas" eu me refiro a "atender todas as necessidades possíveis e imagináveis". O mais importante é disponibilizar o quanto antes a parte principal da funcionalidade, obter o feedback e à partir dele ir expandindo o software.
Em resumo, pra mim o que melhor funciona é: liberar frequentemente, mesmo que a funcionalidade não esteja cobrindo todas as possibilidades, e obter o feedback o mais cedo possível. Sem que para isso a qualidade do software seja comprometida.
terça-feira, 29 de novembro de 2011
quarta-feira, 5 de outubro de 2011
Steve Jobs: o gênio do nosso tempo
Como todos já devem saber, hoje faleceu Steve Jobs.
Para definir Steve Jobs, só conheço uma palavra: GÊNIO. Copiando um artigo que vi a pouco tempo atrás, podemos verificar a definição de gênio.
Na Wikipedia diz o seguinte:
Em qualquer definição possível para a palavra gênio, Steve Jobs se encaixa perfeitamente!
Para quem ainda não viu, recomendo assistir o discurso que Steve fez na Universidade de Stanford em 2005. Altamente inspirador!
Para definir Steve Jobs, só conheço uma palavra: GÊNIO. Copiando um artigo que vi a pouco tempo atrás, podemos verificar a definição de gênio.
Na Wikipedia diz o seguinte:
“Genius is something or someone embodying exceptional intellectual ability, creativity, or originality, typically to a degree that is associated with the achievement of unprecedented insight.”Vejamos, dos itens acima, quais o Steve Jobs tinha?
- Habilidade intelectual excepcional - Sim!
- Criatividade - Sim!
- Originalidade - Sim!
Agora, vejamos a definição de gênio para Immanuel Kant:
“Genius is a talent for producing something for which no determinate rule can be given, not a predisposition consisting of a skill for something that can be learned by following some rule or other.”E, para Arthur Schopenhauer:
“Talent hits a target no one else can hit; Genius hits a target no one else can see.”
Em qualquer definição possível para a palavra gênio, Steve Jobs se encaixa perfeitamente!
Para quem ainda não viu, recomendo assistir o discurso que Steve fez na Universidade de Stanford em 2005. Altamente inspirador!
Marcadores:
Apple
segunda-feira, 3 de outubro de 2011
Tutorial - Instalando o RVM no Ubuntu 11.04
Nesse rápido tutorial vou mostrar como instalar o RVM no Ubuntu 11.04. Esses passos devem servir para outras distribuições Linux, mas não testei.
Para quem não conhece, o RVM é um utilitário que permite que mais de uma versão do Ruby seja instalada na mesma máquina. Com ele é possível configurar cada projeto para usar uma versão diferente do Ruby.
A instalação do RVM não tem muito segredo, mas sempre tem algum detalhe que esqueço, por isso resolvi deixar aqui anotado o passo-a-passo. As informações aqui apresentadas retirei do guia oficial de instalação do RVM. Sugiro verificar esse link para informações sempre atualizadas.
A seguir, instale o RVM executando os seguintes comandos:
Com isso feito, você pode executar o comando "rvm requirements" para listar as bibliotecas necessárias para executar cada versão do Ruby. Caso você deseje executar o Ruby MRI, instale as bibliotecas executando o comando abaixo:
Por fim, deve-se instalar a versão do Ruby desejada. Para instalar a versão 1.9.2 do Ruby MRI, execute o comando abaixo:
Primeiro, defina a gemset a ser usada. O comando abaixo cria uma gemset usando o Ruby 1.9.2 para o projeto "teste":
Instale o Rails:
Crie a aplicação:
E, por fim, dentro do diretório da aplicação, crie o arquivo .rvmrc:
O arquivo .rvmrc é usado pelo RVM para carregar a gemset utilizada no seu projeto. Para que o arquivo seja detectado, execute o comando abaixo e confirme a mensagem que será exibida.
Para quem não conhece, o RVM é um utilitário que permite que mais de uma versão do Ruby seja instalada na mesma máquina. Com ele é possível configurar cada projeto para usar uma versão diferente do Ruby.
A instalação do RVM não tem muito segredo, mas sempre tem algum detalhe que esqueço, por isso resolvi deixar aqui anotado o passo-a-passo. As informações aqui apresentadas retirei do guia oficial de instalação do RVM. Sugiro verificar esse link para informações sempre atualizadas.
Instalando
Antes de instalar o RVM é necessário ter alguns pacotes que por padrão não estão instalados no Ubuntu. Para obter esses pacotes, execute o comando abaixo:sudo apt-get install git git-core curl
A seguir, instale o RVM executando os seguintes comandos:
bash < < (curl -s https://rvm.beginrescueend.com/install/rvm)
echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
source .bash_profile
Com isso feito, você pode executar o comando "rvm requirements" para listar as bibliotecas necessárias para executar cada versão do Ruby. Caso você deseje executar o Ruby MRI, instale as bibliotecas executando o comando abaixo:
sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison
Por fim, deve-se instalar a versão do Ruby desejada. Para instalar a versão 1.9.2 do Ruby MRI, execute o comando abaixo:
rvm install 1.9.2
Com isso a instalação do RVM está concluída.
Usando
Apenas para fins de exemplo, abaixo estão os comandos utilizados para criar uma nova aplicação Rails usando o RVM.Primeiro, defina a gemset a ser usada. O comando abaixo cria uma gemset usando o Ruby 1.9.2 para o projeto "teste":
rvm use 1.9.2@teste --create
Instale o Rails:
gem install rails
Crie a aplicação:
rails new teste
E, por fim, dentro do diretório da aplicação, crie o arquivo .rvmrc:
cd teste
rvm use 1.9.2@teste --rvmrc
O arquivo .rvmrc é usado pelo RVM para carregar a gemset utilizada no seu projeto. Para que o arquivo seja detectado, execute o comando abaixo e confirme a mensagem que será exibida.
cd .
Finalizando
Os comandos apresentados aqui funcionam no Ubuntu 11.04, porém, eles também devem funcionar em outras versões do Linux. Para informações atualizadas, sugiro verificar o guia oficial de instalação do RVM.
Marcadores:
Desenvolvimento,
Ruby
segunda-feira, 26 de setembro de 2011
Dica: instalando gems no Ubuntu ao usar o RVM
Essa é uma dica rápida para um problema que me deparei ao utilizar o Ruby on Rails no Ubuntu 11.04.
Ao tentar instalar alguma gem (e.g. gem install bundler) você pode receber o erro abaixo. Pelo que percebi, esse erro ocorre apenas ao utilizar o RVM.
Corrigir esse erro é bastante simples, basta instalar a biblioteca zlib e reinstalar a versão do Ruby que está instalada na RVM.
Para instalar a biblioteca zlib execute o comando abaixo:
Para reinstalar a versão do Ruby instalada na RVM use os seguintes comandos:
Lembrando que a versão do Ruby pode ser diferente da exibida no comando acima (1.9.2). Para verificar qual a versão, utilize o comando "rvm list".
Com isso, você já pode prosseguir com a instalação das gems! Mais detalhes você encontra no StackOverflow, que foi onde encontrei essa solução.
Ao tentar instalar alguma gem (e.g. gem install bundler) você pode receber o erro abaixo. Pelo que percebi, esse erro ocorre apenas ao utilizar o RVM.
ERROR: Loading command: install (LoadError) no such file to load -- zlibERROR: While executing gem ... (NameError) uninitialized constant Gem::Commands::InstallCommand
Corrigir esse erro é bastante simples, basta instalar a biblioteca zlib e reinstalar a versão do Ruby que está instalada na RVM.
Para instalar a biblioteca zlib execute o comando abaixo:
rvm pkg install zlib
Para reinstalar a versão do Ruby instalada na RVM use os seguintes comandos:
rvm remove 1.9.2rvm install 1.9.2
Lembrando que a versão do Ruby pode ser diferente da exibida no comando acima (1.9.2). Para verificar qual a versão, utilize o comando "rvm list".
Com isso, você já pode prosseguir com a instalação das gems! Mais detalhes você encontra no StackOverflow, que foi onde encontrei essa solução.
Marcadores:
Desenvolvimento,
Ruby
sexta-feira, 7 de janeiro de 2011
O backup do Windows é muito ruim
A quase um ano escrevi a respeito da estratégia de backup que uso no meu micro pessoal. Recomendo que você leia aquele artigo antes de continuar. Até o momento não tive nenhum problema com as ferramentas que utilizo, a não ser uma: a ferramenta de backup do próprio Windows 7.
Ao escrever esse artigo pensei em um título, mas a única coisa que não saia da minha cabeça era: “o backup do Windows é muito ruim”. Verdade, é muito ruim! Acho melhor copiar os arquivos manualmente que depender dele.
Não vou ficar aqui reclamando do Windows, mas em resumo, alguns dos problemas que tive foi incompatibilidade com o “backup contínuo” do IDrive, que não funcionava quando o backup do Windows estava ativo. Além disso, em certas ocasiões o Windows não detectava o HD contendo o backup, mostrando apenas uma mensagem de erro super genérica, com um código que nada ajudava.
Há vários programas desse tipo, o que escolhi foi o GFI Backup Home Edition. Escolhi esse programa por ser simples, gratuito e tem tudo o que preciso.
O funcionamento dele é muito simples, basta criar uma tarefa de backup, onde são configuradas as pastas que devem ser incluídas no backup, o local onde o backup será gravado, a periodicidade do backup (diário, semanal…) e algumas opções a mais se necessário.
No site do produto tem maiores informações: GFI Backup Home Edition.
Independente da forma escolhida para se fazer o backup, tenha certeza que você vai conseguir restaurar os arquivos!!
Ao escrever esse artigo pensei em um título, mas a única coisa que não saia da minha cabeça era: “o backup do Windows é muito ruim”. Verdade, é muito ruim! Acho melhor copiar os arquivos manualmente que depender dele.
Não vou ficar aqui reclamando do Windows, mas em resumo, alguns dos problemas que tive foi incompatibilidade com o “backup contínuo” do IDrive, que não funcionava quando o backup do Windows estava ativo. Além disso, em certas ocasiões o Windows não detectava o HD contendo o backup, mostrando apenas uma mensagem de erro super genérica, com um código que nada ajudava.
A nova ferramenta de backup
No lugar do backup do Windows procurei uma ferramenta que simplesmente copiasse os arquivos e pastas escolhidos para o HD de backup, sem compactação, e sem fazer mais nada. Assim, poderia restaurar os arquivos manualmente sem depender do programa em caso de uma emergência.Há vários programas desse tipo, o que escolhi foi o GFI Backup Home Edition. Escolhi esse programa por ser simples, gratuito e tem tudo o que preciso.
O funcionamento dele é muito simples, basta criar uma tarefa de backup, onde são configuradas as pastas que devem ser incluídas no backup, o local onde o backup será gravado, a periodicidade do backup (diário, semanal…) e algumas opções a mais se necessário.
No site do produto tem maiores informações: GFI Backup Home Edition.
O IMPORTANTE NÃO É O BACKUP, MAS SIM A RECUPERAÇÃO
Essa frase temos que repetir sempre: o importante não é o backup, mas sim a recuperação.Independente da forma escolhida para se fazer o backup, tenha certeza que você vai conseguir restaurar os arquivos!!
Marcadores:
Diversos
Assinar:
Postagens (Atom)