O Autor
Posts Recentes
Nuvem de tags
Comentários
- kadu on Susto com roteador wifi
- Alexandre Fugita on Novos blogs saindo do forno
- Alexandre Fugita on Gmail novo, problema novo
- Alexandre Fugita on Permalinks do Wordpress no Nginx
- Pedro on Gmail novo, problema novo
Blogroll
Meta
Isso irritou profundamente muitas pessoas e, no geral, foi encarado como uma péssima idéia.
Veja e Doctor Who
Published by George Guimarães
Alguém na revista Veja assiste Doctor Who.
Capa de Veja de 2 de julho de 2008 (edição 2067):
Doctor Who 2005 S01E02 (The End of the World):
A personagem acima é Lady Cassandra O’Brien.Δ17. O Doutor e Rose viajam 5 bilhões de anos no futuro e Lady Cassandra é a última humana “pura” do universo. Ela ficou assim após 708 cirurgia plásticas e se transformou num ser de pele esticada numa moldura. Seu cérebro fica alojado num jarro abaixo da moldura (não mostrado).
Na hora que vi a revista lembrei do seriado (ajudou o fato de eu ter começado a assistir há mais ou menos uma semana atrás). Achei curioso. Será que o diagramador/designer/seja-lá-quem-faz-isso sabia do seriado?
Susto com roteador wifi
Published by George Guimarães
Tenho um Linksys Wrt54G modificado pra funcionar com o firmware alternativo DD-WRT.
Hoje tomei um baita susto. Todas as luzes das portas cabeadas estavam acesas. O wifi funcionava, mas não conseguia conectar ao meu modem. Aliás, as portas cabeadas estavam “mortas”, sem sinal quando ligava no computador.
Já tava xingando e vendo o preço de um novo no Submarino, mas consegui ressuscitar o maldito. Foi só reescrever o bendito firmware de novo (pelo wifi, o que não é recomendado). Mas na procura por soluções tive até que abrir o roteador e tava quase curto-circuitando a memória flash (posto fotos depois).
Enfim…. faz tempo que não postava e tô aproveitando o impulso de resolver o problema. Nem vou colocar links nem nada. Depois posto uma história melhor. Só queria deixar claro que esse não é um problema do DD-WRT. Parece ser um problema do próprio hardware da Linksys (que nunca havia dado problema até agora). Nem o hard reset funcionou.
Apresentação no WebDevCamp
Published by George Guimarães
Aqui está a apresentação que eu fiz no WebDevCamp SP 07.
Os dois dias do evento foram muito proveitosos. Foi corrido pra caramba (tinha também que entregar o trabalho de formatura, mas enfim.. isso é história pra outro post).
Logo devem sair os vídeos do evento. Depois eu coloco no blog.
Permalinks do Wordpress no Nginx
Published by George Guimarães
Este blog funciona sem Apache (e, portanto, sem mod_php).
Ele é “servido” através de uma combinação do nginx (um http server e proxy reverso rápido e simples) e do FastCGI (que é onde eu interpreto os códigos PHP do Wordpress). Só essa combinação já daria um post (está anotado).
Mas eu quero deixar aqui uma dica. Para mudar os permalinks do Wordpress para algo como /ano/mês/post, ao invés do tradicional ?p=num-do-post, você precisa alterar alguns paramêtros de redirecionamento. O Wordpress até te dá uma receita de como fazer isso no Apache.
No nginx, basta usar o trecho abaixo dentro de uma seção “server”.
if (!-e $request_filename) { rewrite ^(.+)$ /index.php?q=$1 last; }
O que o trecho acima faz é checar se a URL acessada corresponder a um arquivo. Se o arquivo (ou diretório) existir, o nginx retorna sem modificar nada. Se a URL não corresponde a um arquivo/diretório, ele é interpretado como um permalink. A opção ‘last’ garante que essa será a última vez que a URL será redirecionado (para evitar loops infinitos).
Gmail novo, problema novo
Published by George Guimarães
Tenho usado a nova versão da interface do Gmail. Não gostei muito. Achei que ficou lerda na hora de carregar da primeira vez, e os cliques ficaram mais insensíveis (parece que estão anestesiados.)
Mas o que me irritou mesmo foi quando eu clico para abrir um anexo. Meu Firefox transforma a aba atual do Gmail em uma aba em branco e mostra a mensagem de “abrir ou salvar o download?”. Geralmente eu escolho salvar e então a aba continua branca. Nem o “Back” funciona.
Contudo, isso é um problema da extensão Tab Mix Plus, e há uma solução. Entre nas opções do Tab Mix Plus, entre em Links, depois clique no ‘editar’ ao lado do “Prevenir abas em branco…”, e remova a linha “/disp=attd&view=att/”.
Pronto. Isso deve funcionar.
Adestrando o mongrel com monit
Published by George Guimarães
Se você “serve” suas aplicações rails usando o mongrel, tome cuidado.
Conforme o uso do cluster mongrel que você possui, ele tende a consumir cada vez mais RAM.
É um aumento gradual e lento, mas ocorre. A solução é reiniciar o mongrel_cluster de vez em quando, para liberar a memória RAM acumulada. Claro, cada vez que você inicia o mongrel de novo, o primeiro acesso à sua aplicação é um pouco mais lento. Mas acho que isso é melhor do que deixar os mongréis soltos comendo sua RAM e arriscando a travar (crash) a qualquer momento. (Estou instituindo agora que o plural de mongrel é mongréis).
Para automatizar essa tarefa, podemos utilizar o monit, que nada mais é do que o seu operador-de-datacenter-automatico-tabajara. No site deles há um grande número de exemplos de configurações.
Podemos configurá-lo para checar os processos do mongrel e restartá-los caso alguma coisa esteja errada, seja um aumento no consumo de memória, seja um consumo exagerado de cpu. Obviamente, se o processo desaparecer do nada, o monit se encarrega de iniciá-lo novamente. E tudo isso com um sistema de alertas via email, um servidor http para acompanhar o sistema e uma sintaxe de configuração praticamente humana. Fantástico, não? Deixa o nagios no chinelo, fácil, fácil.
Para instalar, versão Debian:
1 | apt-get install monit |
Exemplo do meu monitrc (rodando em produção nos servers do Pagestackr):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | set daemon 30 #checa os processos a cada 30 segundos set logfile syslog facility log_daemon set mailserver localhost set mail-format { from: monit@pagestackr.com } set eventqueue #caso o servidor SMTP não esteja funcionando, guardar os alertas basedir /var/monit slots 1000 set alert email_do_responsavel@servidor.com set httpd port 2812 and use address localhost allow localhost allow admin:monit check system localhost if loadavg (1min) > 3 then alert if loadavg (5min) > 2 then alert if memory usage > 60% then alert if cpu usage (user) > 70% then alert if cpu usage (system) > 30% then alert if cpu usage (wait) > 20% then alert include /etc/monit/*.conf |
A configuração do monit é fácil de entender. Neste arquivo, configuramos o monit para checar os processos a cada 30 segundos, usar o servidor SMTP local para enviar emails de alertas, usar o servidor http na porta 2812 (é importante sempre configurar o servidor http do monit. Não se preocupe, a configuração como eu coloquei só aceita conexões locais e através do login admin/monit), e também definimos alguns alertas para a máquina em questão.
A última linha permite que a gente configure cada servico/processo separadamente.
Arquivo mongrel.conf:
1 2 3 4 5 6 7 8 | check process mongrel_8000
with pidfile /var/www/app/pagestackr/shared/pids/mongrel.8000.pid
start program = "/usr/bin/mongrel_rails cluster::start -C /etc/mongrel_cluster/pagestackr.yml --clean --only 8000"
stop program = "/usr/bin/mongrel_rails cluster::stop -C /etc/mongrel_cluster/pagestackr.yml --clean --only 8000"
if totalmem > 40 MB for 4 cycles then restart
if cpu > 60% for 4 cycles then restart
if 3 restarts within 5 cycles then timeout
group mongrel |
Aqui definimos onde está o pid do mongrel em questão. Você deve repetir a configuração para cada instância do mongrel. É importante você ter configurado um arquivo de configuração do mongrel_cluster também (no meu caso, o arquivo pagestackr.yml).
Como podemos perceber, caso a instância do mongrel ultrapasse certos valores, ela é reiniciada (e também recebemos um alerta no email). Se houver muitos reinícios consecutivos, o monit desiste e envia um alerta (isso é útil para não ocasionar um loop infinito).
Antes de iniciar o monit, e se você usa Debian, você precisa descomentar a seguinte linha do arquivo /etc/defaults/monit:
# You must set this variable to 1 for monit to start startup=1
Iniciando o monit:
monit start
Pra finalizar, se você usa o Capistrano pra efetuar o deployment do seu aplicativo no servidor, você precisa alterar as tarefas de start e stop da aplicação para “monit -g mongrel start” e “monit -g mongrel stop”.
É isso. Agora você explorar o comando “monit status” e acessar o servidor http do seu servidor para checar o monit.
Caso você tenha ficado com alguma dúvida, escreva nos comentários (logo abaixo).
Apresentação no RejectConf
Published by George Guimarães
Estou “embedando” a apresentação que eu fiz durante o RejectConf 2007 na USP. O slideshare destruiu parte da formatação, mas nada que atrapalhe o conteúdo. O evento foi filmado. Assim que o pessoal editar os vídeos, eu posto aqui.
Minha apresentação focou sobre a nossa história durante o Rails Rumble (competição para criar um aplicativo web em Rails em 48 horas) e sobre temas como deployment e escalabilidade.
O evento foi muito interessante e pude encontrar pessoas que eu só conhecia virtualmente.
Depois eu posto meus comentários sobre o RejectConf. (Assim que minha internet ficar estável. Passei o domingo tentando conectar, sem sucesso. Maldito speedy).
Brave new blog
Published by George Guimarães
Pessoal, finalmente achei um tema pro Wordpress interessante. O nome desse tema é Greenway 3C, e você pode achar ele neste blog.
Ainda vou modificar ele um pouco, mudar a foto do prédio (vou colocar uma do meu cachorro), talvez mudar o lugar da data do post (prefiro perto do título do blog, não no final do post) e adicionar mais coisas na sidebar.
Se vocês tiverem alguma sugestão, mandem!
Novos blogs saindo do forno
Published by George Guimarães
Estou com um problema. Sou novo ao mundo do Wordpress. Já usei a conta gratuita deles, mas lá não dá pra configurar temas (dá pra mexer um pouco), nem plugins (que são a diversão do Wordpress).
Acabo de configurar o futuro (aviso quando estiver pronto) endereço deste blog (http://blog.georgeguimaraes.com) e o blog do Pagestackr (http://blog.pagestackr.com).
Agora peço ajuda aos meus amigos blogueiros para saber quais são os plugins essenciais. Já estou navegando pela seção de temas e plugins do Wordpress. Hmm.. o feriado vai ser promissor.. =D
Ah sim… só um comentário. Eu ia usar o Apache e sua configuração de Virtual Hosts pra servir as páginas PHPs. Pois bem. Foi a terceira e (espero) última vez que eu tento configurar virtual hosts no Apache. Não consigo!
Desisti e parti para meu novo amigo, o nginx. Leve, rápido, simples de configurar. (isso também eliminou o problema de ter 2 servidores http na mesma máquina, pois o nginx já estava sendo usado como load-balancer pro mongrel).
Vou sentir saudades!
Published by George Guimarães
…


