Conservadorismo tecnológico, até que ponto?
Ultimamente tenho me deparado com algumas questões relativas à adoção de novas tecnologias. No momento não estou falando especificamente de uma tecnologia, mas sim no geral.
Qual aplicação realmente precisa de um uptime de 99,99999999…99999%? Poucas? Muitas? Eu diria que quase nenhuma! Por exemplo esse blog, ou outros blogs. Que diferença faz se o Dreamhost cai (pelo menos) uma vez por mês (seria por semana?), deixando meu site fora do ar por algumas horas? Nesse caso pra mim nenhuma, ninguém morreu por isso. Pelo menos não que eu saiba. Se você conheceu alguém que morreu porque não conseguiu acessar meu blog, me informe urgentemente para eu trocar logo de host, ou muitas outras poderão morrer também! :)
É claro que sempre achamos muito ruim quando necessitamos utilizar aquele serviço e, na hora h, está fora do ar… Se por isso você perdeu dinheiro, então está na hora de buscar outro compatível que dê a você o uptime de que necessita ou poderá perder mais ainda, certo?
O grande ponto que gostaria de alcançar é: até que ponto vale a pena a adoção de uma tecnologia mais antiga visando a imaginária segurança da robustez em detrimento de uma mais moderna que traga vantagens de produtividade e recursos? Claro, ninguém possui a resposta para todos os casos, cada um deve ser analisado à parte, levando em consideração todos os fatores envolvidos.
O fato é que em nossas vidas utilizamos software beta o tempo todo! Será que algum dia existirá um software verdadeiramente estável?
7 comentários : 26.09.2007 01:44 PM
Sistema de inscrições e eu
Durante todos os outros anos do Fórum do Software Livre do Rio de Janeiro utilizávamos um sistema de inscrições que era feito em PHP. Esse sistema já havia sido adaptado ao nosso evento, resgatado de um outro evento de estudantes de computação. Todo ano novas modificações para ele se adaptar às novas necessidades. Esse ano decidi escrever mesmo uma outra aplicação e não poderia ser diferente, escolhi Rails como framework base.
O grande problema que criei por essa minha decisão foi: onde hospedar? A nossa parceira Hostnet ainda não fornece serviço de hospedagem para Rails e na Unirio não tínhamos nenhum servidor preparado para isso. Sobrou hospedar juntamente com meu site, no Dreamhost. Após 3 ou 4 dias com o sistema no ar estávamos tendo muitas reclamações referentes ao desempenho. Lento, muito lento (coisa que não acontece com o site principal não sei o motivo). E claro, com alguns momentos down.
Solução 1: preparar um servidor na Unirio. Sistema que estava instalado no servidor disponível: Fedora Core 4. Se alguém conhece Fedora sabe que isso está muito desatualizado. Ou seja, um monte de pacotes antigos, apache antigo, ruby antigo, sem adaptador mysql para ruby etc. DESCARTADO!
Solução 2: propus levantar um servidor virtual com Ubuntu server e recursos modestos que eu me encarregaria de configurar tudo. Duas horas depois de receber o acesso ssh para configurar o servidor (e já 3h da manhã de algum dia da semana passada) estava tudo no ar, com apache rodando Rails utilizando fastcgi. Não me atrevi a colocar em mongrel, pois não li nenhuma documentação sobre ele ainda. IMPLANTADO!
Ok, até então se saindo muito bem. Até que no último domingo, dia 23, faltou luz na Unirio por 4 horas. O no-break, claro, não segurou, sem gerador… foi tudo por água abaixo. Quase metade do dia com o serviço fora do ar, pois os servidores precisavam ser religados e entrar domingo numa Universidade pública não é algo trivial, muito jogo de cintura com os seguranças e ligações telefônicas até conseguir liberação para fazer coisa que dura 5 minutos.
Enfim… voltou ao ar no fim da noite… Valeu Max!
1 comentário : 25.09.2007 06:57 PM
icard mobile, chamada para testadores

Durante o ano passado tive o prazer de trabalhar numa startup focada em mobile, com pessoas muito legais e fazendo softwares j2me de primeira linha. Infelizmente a startup não deu certo, mas as coisas legais não acabaram. O primeiro desenvolvimento em j2me foi o icard mobile. Trata-se de um pequeno aplicativo j2me que envia cartões de visita virtuais via e-mail. Ele fez um sucesso razoável no exterior, principalmente sudeste asiático, chegando a enviar alguns milhares de cartões por dia.
Através do site, mediante informação do código de registro que se recebe ao efetuar o cadastramento pelo aplicativo, é possível fazer upload de uma imagem que ficará no canto à direita do cartão e também escolher entre 6 cores diferentes de fundo para o seu cartão. É um serviço gratuito e que pode ajudar nas horas em que seu cartão de visita acabou, normalmente nos piores momentos ;).
Originalmente todo o backend do sistema estava desenvolvido em lua. Durante essa semana, efetuei a migração para Rails e fiz pequenos ajustes necessários na aplicação j2me.
O domínio original do serviço era www.icardmobile.com, mas ele foi perdido. Ainda não sei o que farei em relação a isso. Por hora, quem tiver interesse acesse http://icard.mergulhao.info e veja os detalhes.
Espero em breve fazer a internacionalização do site e do aplicativo que no momento estão disponíveis apenas em inglês.
Por favor reportem situações de funcionamento e não funcionamento, enviando para mim a marca, o modelo dos aparelhos testados e os problemas encontrados. Sugestões de novas funcionalidades são bem-vindas. Aguardo o feedback!
0 comentários : 23.09.2007 11:54 PM
Inscrições abertas para o V Fórum de Software Livre

Atenção pessoal! Estão abertas as inscrições para o V Fórum de Software Livre do Rio de Janeiro. Para se inscrever visite o site e abra o menu correspondente. A inscrição para participação nas palestras e circulação na área do evento é GRATUITA. Os minicursos são cobrados com desconto para estudantes e servidores públicos.
Esse ano mais uma vez contamos com quatro dias de fórum: dois no Clube de Engenharia e mais dois, na Unirio, com foco no público técnico. Na Unirio, além das palestras também teremos minicursos diversos visando introdução ou aprofundamento de assuntos técnicos pertinentes ao mundo do Software Livre.
Avançando um passo de cada vez, esse ano temos a confirmação do nosso primeiro palestrante internacional: Maddog Hall! Foi uma grande conquista para o nosso evento. Esperamos com isso conseguir um pouco mais de visibilidade da comunidade de Software Livre do Rio de Janeiro, que sabemos ser grande, mas infelizmente muito dispersa.
Até lá!
1 comentário : 21.09.2007 06:38 PM
Bluezone em Itajubá
Semana passada tive o prazer de apresentar o BlueZone para o pessoal de Itajubá. Na seção de artigos já está disponível para download os slides da apresentação.
0 comentários : 07.09.2007 11:29 AM
Dreamhost deploy com capistrano
Realmente o capistrano me surpreendeu bastante pela utilidade e facilidade de uso. Assim que possível vou passar a realizar deploy de todos os meus sistemas/sites/etc que estão rodando na web utilizando ele - inclusive os que não rodam em Rails! O teste dessa vez foi no sistema de inscrições do Fórum de Software Livre desse ano. Quem quiser testar para ver como está ficando e sugerir mudanças acessar: http://inscricao.mergulhao.info.
Deixo aqui um passo a passo para quem quer fazer deploy de uma aplicação utilizando Capistrano e o Dreamhost (pode facilmente ser adaptado para outros hosts). Antes de tudo, instale o capistrano. Caso não esteja utilizando o Dreamhost, certifique-se que o seu servidor possui o svn cliente de linha de comando instalado.
ATENÇÃO: Todos os comandos aqui listados são executados em seu ambiente local de desenvolvimento.
1. Crie um subdomínio/domínio no painel de controle do Dreamhost, habilite o fastcgi e aponte o diretório web para algo semelhante:
/home/USUARIO/sistema.dominio.com/current/public
2. Acesse a sua conta via ssh e apague o diretório current que foi criado pelo Dreamhost em /home/USUARIO/sistema.dominio.com/
3. Siga esses passos se desejar efetuar o deploy sem a necessidade de digitar a senha do ssh a todo momento.
4. Configure seu config/enviroment.rb para modo produção e o config/database.yml com a base de produção.
5. Substitua seu public/dispatch.fgci por esse(dica pega do Klaus):
#!/usr/bin/ruby1.8
require File.dirname(__FILE__) + "/../config/environment"
require 'fcgi_handler'
class RailsFCGIHandler
private
def frao_handler(signal)
dispatcher_log :info, "asked to terminate immediately"
dispatcher_log :info, "frao handler working its magic!"
restart_handler(signal)
end
alias_method :exit_now_handler, :frao_handler
end
RailsFCGIHandler.process! nil, 6
6. Configure seu public/.htaccess de acordo, substituindo a linha:
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
Por:
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
7. Rode o capify no diretório de desenvolvimento da sua aplicação:
capify .
8. Utilize a receita abaixo(config/deploy.rb) configurando-a de acordo:
# Receita de deploy de apps Rails para o Dreamhost. Capistrano V2.
# Pode ser facilmente adaptada para outros hosts compartilhados.
# Por Sylvestre Mergulhao em 20/08/2007
# Email: contato (at) mergulhao.info
# Site: http://mergulhao.info
# Define o nome da aplicacao e o dominio a qual estara linkada no dreamhost
set :application, "inscricao.mergulhao.info"
# Define seu usuario no dreamhost
set :user, "mergulhao"
# Define o local do seu repositorio svn
set :repository, "http://mergulhao.info/inscricao/trunk"
# Nao precisa ser alterado daqui pra baixo!
set :use_sudo, false
set :deploy_to, "/home/#{user}/#{application}"
set :domain, "#{user}@#{application}"
role :app, domain
role :web, domain
role :db, domain, :primary => true
namespace :deploy do
desc "Restarts all FCGI processes."
task :restart, :roles => :app do
# NOTA: Segundo o reaper a opcao --dispatcher esta depreciada, verificar
# outra solucao.
run "#{current_path}/script/process/reaper --dispatcher=dispatch.fcgi"
end
end
9. Faça commit de tudo pro svn.
10. Rode o setup e verifique se não ocorre nenhum erro. Esse comando somente precisa ser executado no primeiro deploy. Ele é responsável por criar a estrutura de diretórios necessária no servidor.
cap deploy:setup
11. Rode o deploy com as migrações:
cap deploy:migrations
Para executar os próximos deploys basta executar:
cap deploy
Se existirem migrações para realizar:
cap deploy:migrations
Se eu não esqueci de colocar nenhum passo e deu tudo certo, sua aplicação estará no ar. É claro que estamos seguindo aqui algumas convenções, como estar utilizando svn para controle de versões. Espero que seja útil, estou aberto a receber o feedback sobre isso, deixe-me saber se você utilizou essa receita com sucesso(e com fracasso também!).
É isso!
5 comentários : 03.09.2007 01:35 AM




