<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>Marcus Derencius - Home</title>
  <id>tag:derenci.us,2009:mephisto/</id>
  <generator version="0.7.3" uri="http://mephistoblog.com">Mephisto Noh-Varr</generator>
  <link href="http://derenci.us/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://derenci.us/" rel="alternate" type="text/html"/>
  <updated>2009-10-09T04:17:47Z</updated>
  <entry xml:base="http://derenci.us/">
    <author>
      <name>marcus</name>
    </author>
    <id>tag:derenci.us,2009-10-09:174</id>
    <published>2009-10-09T04:17:00Z</published>
    <updated>2009-10-09T04:17:47Z</updated>
    <category term="erlang"/>
    <category term="osx"/>
    <category term="rabbitmq"/>
    <link href="http://derenci.us/2009/10/install-rabbitmq-on-osx" rel="alternate" type="text/html"/>
    <title>Install RabbitMQ on OSX</title>
<content type="html">
            &lt;p&gt;So, finally I&#8217;m installing RabbitMQ on my workstation. It&#8217;s been a while that I&#8217;m not using macports to manage application packages here, so here are the steps I took to install rabbitmq:&lt;/p&gt;


	&lt;p&gt;1) Install Erlang&lt;/p&gt;


	&lt;p&gt;Download the .dmg from Rudix project. http://rudix.org/packages-def.html#erlang&lt;/p&gt;


	&lt;p&gt;Note: I also downloaded and installed wget from Rudix.&lt;/p&gt;


	&lt;p&gt;2) Install simplejson python library&lt;/p&gt;


	&lt;p&gt;python -m easy_install simplejson&lt;/p&gt;


	&lt;p&gt;3) Download RabbitMQ Source Code&lt;/p&gt;


	&lt;p&gt;cd /tmp&lt;/p&gt;


	&lt;p&gt;wget http://www.rabbitmq.com/releases/rabbitmq-server/v1.6.0/rabbitmq-server-1.6.0.tar.gz&lt;/p&gt;


	&lt;p&gt;tar -xvzf rabbitmq-server-1.6.0.tar.gz&lt;/p&gt;


	&lt;p&gt;mv rabbitmq-server-1.6.0 /usr/local/lib/erlang/lib/rabbitmq-server&lt;/p&gt;


	&lt;p&gt;4) Build and install RabbitMQ&lt;/p&gt;


	&lt;p&gt;cd /usr/local/lib/erlang/lib/rabbitmq-server&lt;/p&gt;


	&lt;p&gt;make&lt;/p&gt;


	&lt;p&gt;sudo make install &lt;span class=&quot;caps&quot;&gt;TARGET&lt;/span&gt;_DIR=/usr/local/rabbitmq-server &lt;span class=&quot;caps&quot;&gt;SBIN&lt;/span&gt;_DIR=/usr/local/bin &lt;span class=&quot;caps&quot;&gt;MAN&lt;/span&gt;_DIR=/usr/local/man/&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://derenci.us/">
    <author>
      <name>marcus</name>
    </author>
    <id>tag:derenci.us,2008-03-30:82</id>
    <published>2008-03-30T23:22:00Z</published>
    <updated>2008-08-06T21:21:23Z</updated>
    <category term="nginx"/>
    <category term="sysadmin"/>
    <category term="thin"/>
    <link href="http://derenci.us/2008/3/nginx-e-thin" rel="alternate" type="text/html"/>
    <title>nginx e thin</title>
<content type="html">
            &lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Esse blog funciona com EnterpriseRails + Passenger com Apache.&lt;/p&gt;


	&lt;p&gt;Apenas uma pequena nota:&lt;/p&gt;


	&lt;p&gt;Apartir de agora (momento deste post! Duh!) este blog passa a ser baseado em thin (1 instância) se comunicando via unix sockets com o nginx.&lt;/p&gt;


	&lt;p&gt;O litespeed estava indo bem, mas a performance rails dele não impressionava (e eu também não me esforcei para melhorá-la), resolvi trocá-lo por um tempo. Pelo menos ele já está configurado aqui, fácil de fazer benchmarks comparando. E como pretendo usar a combinação atual em futuros projetos, nada melhor que usar esse blog como laboratório.&lt;/p&gt;


	&lt;p&gt;Algo bacana do nginx é que o php (ainda tenho alguns sites em &lt;a href=&quot;http://www.typo3.org&quot;&gt;&lt;span class=&quot;caps&quot;&gt;TYPO3&lt;/span&gt;&lt;/a&gt; ) roda bem nele via fastcgi.&lt;/p&gt;


	&lt;p&gt;Prometo publicar os passos e configurações que utilizei aqui.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://derenci.us/">
    <author>
      <name>marcus</name>
    </author>
    <id>tag:derenci.us,2008-02-09:69</id>
    <published>2008-02-09T18:16:00Z</published>
    <updated>2008-02-09T18:17:02Z</updated>
    <category term="deployment"/>
    <category term="rails"/>
    <link href="http://derenci.us/2008/2/instalando-gems-localmente-em-shared-hosting" rel="alternate" type="text/html"/>
    <title>Instalando Gems Localmente em Shared Hosting</title>
<content type="html">
            &lt;p&gt;Desafio de sábado à tarde sem onda e sol:&lt;/p&gt;


	&lt;h3&gt;Arrumar a geração de thumbnails de imagens do attachment-fu&lt;/h3&gt;


	&lt;p&gt;Semana passada instalei uma pequena aplicação que desenvolvi para a imobiliária de um amigo ( &lt;a href=&quot;http://www.eabitamambuca.com&quot;&gt;&lt;span class=&quot;caps&quot;&gt;EAB&lt;/span&gt; Itamambuca&lt;/a&gt; ) na &lt;a href=&quot;http://www.tehospedo.com.br&quot;&gt;Te Hospedo&lt;/a&gt;. Essa aplicação usa o attachment-fu para gerar thumbnail das fotos dos imóveis. E parou de funcionar após a instalação.&lt;/p&gt;


	&lt;p&gt;Logo imaginei que alguma gem estava faltando. Acessei o servidor via &lt;span class=&quot;caps&quot;&gt;SSH&lt;/span&gt; e vi que apenas o rmagick estava instalado. Mas estava funcionando muito bem:&lt;/p&gt;


&lt;pre&gt;
eabitama@eabitamambuca.com [~/eab/current]# script/console production
Loading production environment (Rails 2.0.2)
&amp;gt;&amp;gt; require 'image_science'
MissingSourceFile: no such file to load -- image_science

&amp;gt;&amp;gt; require 'mini_magick'
MissingSourceFile: no such file to load -- mini_magick

&amp;gt;&amp;gt; require 'RMagick'
LoadError: /usr/lib/ruby/site_ruby/1.8/x86_64-linux/RMagick2.so: undefined symbol: SketchImage - /usr/lib/ruby/site_ruby/1.8/x86_64-linux/RMagick2.so

&amp;gt;&amp;gt;  quit
&lt;/pre&gt;

	&lt;h3&gt;Solução rápida: Instalar o mini_magick localmente&lt;/h3&gt;


	&lt;p&gt;1. Passo: criar o arquivo .gemrc no home do seu usuário conforme modelo abaixo, onde &lt;strong&gt;eabitama&lt;/strong&gt; é o seu usuário.&lt;/p&gt;


&lt;pre&gt;
eabitama@eabitamambuca.com [~]# cat .gemrc 
gemhome: /home/eabitama/ruby/gems
gempath:
- /home/eabitama/ruby/gems
- /usr/lib/ruby/gems/1.8
&lt;/pre&gt;

	&lt;p&gt;1.1 &#8211; Criar a pasta para o armazenar os gems&lt;/p&gt;


	&lt;p&gt;Na tehospedo já tem uma pasta para os gems locais: ~/ruby/gems. Caso você queira criar na mesma estrutura:&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;mkdir -p ruby/gems&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;2. Instalar o gem:&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;gem install mini_magick&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;3. Configurar a nova pasta de gems no environment da sua aplição:&lt;/p&gt;


	&lt;p&gt;Adicione a seguinte linha no seu production.rb: (substituia eabitama pelo seu usuário)&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;ENV['GEM_PATH'] = '/home/eabitama/ruby/gems:/usr/lib/ruby/gems/1.8'&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;4. Reinicie o fastcgi&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;killall -HUP dispatch.fcgi&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;5. Pronto.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://derenci.us/">
    <author>
      <name>marcus</name>
    </author>
    <id>tag:derenci.us,2008-02-05:63</id>
    <published>2008-02-05T14:57:00Z</published>
    <updated>2008-02-05T14:58:27Z</updated>
    <category term="sysadmin"/>
    <link href="http://derenci.us/2008/2/sysadmin-com-vps" rel="alternate" type="text/html"/>
    <title>Dica de Sysadmin para quem tem VPS</title>
<content type="html">
            &lt;p&gt;&lt;acronym title=&quot;Virtual Private Server&quot;&gt;VPS&lt;/acronym&gt; são uma mão na roda para que desenvolver e hospedar aplicação web, pois te oferecem o controle do ambiente como de um servidor real, com o preço de hospedagem compartilhada.&lt;/p&gt;


	&lt;p&gt;E  dica que quero passar é relacionada a segurança da sua &lt;span class=&quot;caps&quot;&gt;VPS&lt;/span&gt;, que normalmente fica &#8220;abandonada&#8221;.&lt;/p&gt;


	&lt;p&gt;No Ubuntu/Debian, existem 2 pacotes muito legais: logwatch e denyhosts.&lt;/p&gt;


	&lt;p&gt;O logwatch gera um email diário com uma visão geral de tudo que aconteceu com o seu servidor, apartir da análise dos principais logs. Alguns items desse email:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;pacotes .deb instalados&lt;/li&gt;
		&lt;li&gt;processos agendados no cron que foram executados&lt;/li&gt;
		&lt;li&gt;quantidade de logins efetuados&lt;/li&gt;
		&lt;li&gt;email processados / bloqueados&lt;/li&gt;
		&lt;li&gt;espaço em disco utilizado&lt;/li&gt;
		&lt;li&gt;entre outras informações&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;O denyhosts é um utilitário que monitora os acessos inválidos via ssh ao servidor, e adiciona no /etc/hosts.deny o IP de quem errar por mais de 10 vezes seguida sua senha ou tentar 5 vezes acessar com usuário desconhecido.&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Instalação&lt;/strong&gt;&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;apt-get install logwatch denyhosts&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;Caso você ainda não tenha instalado um &lt;acronym title=&quot;Mail Transport Agent&quot;&gt;MTA&lt;/acronym&gt;, recomendo o postfix:&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;apt-get install postfix&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;E configure o email root@ para ser redirecionado para o seu email.&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;echo root: seu_email@provedor.com &amp;gt;&amp;gt; /etc/aliases&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;newaliases&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;Dica: após instalar o denyhosts, não faça o logout do seu servidor, espere o primeiro email ser enviado, por seu IP pode ser bloqueado caso você errou algumas vezes sua senha no passado. Caso seu ip seja incluído, adicione ele no arquivo /etc/hosts.allow&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;ALL: 200.200.200.200 # caso seu ip seja 200.200.200.200 &lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;Você vai ficar impressionado com a quantidade de ataques que seu servidor recebe. Instalei na minha vps novinha, e são pelo menos 2 IPs bloqueados por dia.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://derenci.us/">
    <author>
      <name>marcus</name>
    </author>
    <id>tag:derenci.us,2008-02-04:62</id>
    <published>2008-02-04T01:52:00Z</published>
    <updated>2008-02-04T01:53:01Z</updated>
    <category term="rails"/>
    <link href="http://derenci.us/2008/2/fastcgi-e-authenticate_or_request_with_http_basic" rel="alternate" type="text/html"/>
    <title>FastCGI e authenticate_or_request_with_http_basic </title>
<content type="html">
            &lt;p&gt;Digamos que você está em pleno carnaval mudando de hospedagem uma aplicação em Rails.&lt;/p&gt;


	&lt;p&gt;E que também, você migrou ela para Rails 2.&lt;/p&gt;


	&lt;p&gt;Imagine que essa aplicação está em uma &lt;a href=&quot;http://tehospedo.com.br&quot;&gt;hospedagem compartilhada&lt;/a&gt;, e que você decidiu usar o novo método authenticate_or_request_with_http_basic para proteger o backend dessa aplicação.&lt;/p&gt;


	&lt;p&gt;Então aparece um problema muito estranho: essa autenticação funciona na sua máquina, mas não em produção. Em produção só dá senha inválida.&lt;/p&gt;


	&lt;p&gt;Relaxe, aqui vai uma solução rápida:&lt;/p&gt;


	&lt;p&gt;No .htaccess troque a linha:&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;por:&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;RewriteRule ^(.*)$ dispatch.fcgi [E=X-HTTP_AUTHORIZATION:%{HTTP:Authorization},QSA,L]&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;Pronto, agora você pode aproveitar a madrugada deste domingo de carnaval sem problemas.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://derenci.us/">
    <author>
      <name>marcus</name>
    </author>
    <id>tag:derenci.us,2008-02-03:61</id>
    <published>2008-02-03T22:19:00Z</published>
    <updated>2008-02-03T22:20:31Z</updated>
    <category term="folksr"/>
    <category term="textmate"/>
    <link href="http://derenci.us/2008/2/vote-for-textmate-como-editor-favorito" rel="alternate" type="text/html"/>
    <title>Vote For - Textmate como Editor Favorito</title>
<content type="html">
            &lt;p&gt;O site &lt;a href=&quot;folksr.de&quot;&gt;Folksr&lt;/a&gt; foi lançado é a idéia dele é criar uma maneira distribuída de votação, utilizando microformats. Basicamente, você pública um link em seu website/blog e adiciona um valor a url: &quot;vote-for&quot;, e diz que você vota a favor, contra ou abstém.&lt;/p&gt;

&lt;p&gt;O site é feito em Ruby on Rails pelo &lt;a href=&quot;http://www.artweb-design.de&quot;&gt; Sven Fuchs&lt;/a&gt;, que mantêm um blog que gosto muito.&lt;/p&gt;

&lt;p&gt;Todo essa explicação é para publicar o meu primeiro voto:  &lt;b&gt; &lt;a href=&quot;http://macromates.com/&quot;&gt;Textmate como meu editor de texto favorito. &lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://derenci.us/">
    <author>
      <name>marcus</name>
    </author>
    <id>tag:derenci.us,2008-01-18:41</id>
    <published>2008-01-18T20:24:00Z</published>
    <updated>2008-01-18T20:25:44Z</updated>
    <category term="hosting"/>
    <category term="news"/>
    <link href="http://derenci.us/2008/1/ano-novo-hospedagem-nova" rel="alternate" type="text/html"/>
    <title>Ano Novo, Hospedagem Nova</title>
<content type="html">
            &lt;p&gt;Este blog está de casa nova: Uma bela &lt;span class=&quot;caps&quot;&gt;VPS&lt;/span&gt; da &lt;a href=&quot;http://linode.com&quot;&gt;Linode&lt;/a&gt; .&lt;/p&gt;


	&lt;p&gt;Há 2 anos atrás, inspirado com o novo ano, assinei a Dreamhost para hospedar alguns sites em &lt;span class=&quot;caps&quot;&gt;TYPO3&lt;/span&gt;:http://www.typo3.org e pequenas aplicações Rails. Eu já não botava muita fé na qualidade dos serviços da dreamhost pois não existe milagre quanto a infraestrutura de rede e servidores. Se eles ofereciam planos fora da realidade do mercado, alguma hora iria dar zica.&lt;/p&gt;


	&lt;p&gt;E deu logo depois que assinei o plano, quando fui fazer uma reunião durante o desenvolvimento de uma aplicação, e a naqule dia a Dreamhost teve diversas panes, incluindo incêndio no seu datacenter.  Nada funcionou, ficando fora do ar por vários dias. Apartir deste dia desisti de qualquer coisa séria com eles. Mas como eu indiquei para alguns conhecidos que queriam hospedar sites em php, fiquei todo esse tempo sem pagar pelo meu plano.&lt;/p&gt;


	&lt;p&gt;A única aplicação rails que deixei lá, era este Blog. Como eu sei que o mephisto tem um bom &#8220;cache&#8221;, a lentidão da dreamhost não pesaria muito para os visitantes. Mas para eu gerenciar e inserir novos artigos, estava muito sofrível. Fiquei postergando essa migração do blog para um ambiente melhorzinho, pois eu tenho estado muito ocupado ultimamente, e meu tempo livre está muito disputado ( esposa, filho, cachorros, praia, sono).&lt;/p&gt;


	&lt;p&gt;E desde 2007, não indico nem recomendo mais a dreamhost, portanto &#8220;no more free hosting&#8221; e não vou renovar com eles em 2008.&lt;/p&gt;


	&lt;p&gt;Então, 2008 este blog começa com casa nova. O primeiro passo foi dado: ontem assinei a &lt;span class=&quot;caps&quot;&gt;VPS&lt;/span&gt;, habilitei o Ubuntu Gutsy, instalei todos os pacotes p/ ruby &#38; rails, e estou testando o Litespeed Free como servidor web/rails.&lt;/p&gt;


	&lt;p&gt;Até agora está tudo indo bem.&lt;/p&gt;


	&lt;p&gt;Nas próximas semanas devo migrar alguns sites que tenho em &lt;span class=&quot;caps&quot;&gt;TYPO3&lt;/span&gt; para Radiant/Geego/Sandstone e enterrar a dreamhost de vez, e o legado &lt;span class=&quot;caps&quot;&gt;PHP&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;Algo que não posso deixar de notar é como o painel de controle da Linode é bacana. Mais completo em termos de funcionalidades e controle da VM que o da Slicehost, que utilizo bastante no meu dia-a-dia na Surgeworks.&lt;/p&gt;


	&lt;p&gt;E outra coisa que gostei da Linode é a possibilidade de ver a utilização do servidor Host das VMs.&lt;/p&gt;


	&lt;p&gt;&lt;img title=&quot;Repare como está baixo o uso do Host&quot; src=&quot;http://derenci.us/assets/2008/1/18/GrabberRaster_0001.jpg&quot; alt=&quot;Repare como está baixo o uso do Host&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;Isso aí. Feliz 2008.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://derenci.us/">
    <author>
      <name>marcus</name>
    </author>
    <id>tag:derenci.us,2007-12-24:27</id>
    <published>2007-12-24T18:23:00Z</published>
    <updated>2007-12-24T18:24:12Z</updated>
    <category term="offtopic"/>
    <link href="http://derenci.us/2007/12/feliz-natal" rel="alternate" type="text/html"/>
    <title>Feliz Natal</title>
<content type="html">
            &lt;p&gt;&lt;img src=&quot;http://farm2.static.flickr.com/1126/839840908_663f19fd6d.jpg?v=0&quot; alt=&quot;Papai Noel&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Um Feliz Natal para todos, desde os que já estão offline celebrando, ou que ainda está ralando. &lt;/p&gt;

&lt;p&gt;Que o Papai Noel seja bonzinho com todos!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://derenci.us/">
    <author>
      <name>marcus</name>
    </author>
    <id>tag:derenci.us,2007-11-09:25</id>
    <published>2007-11-09T22:22:00Z</published>
    <updated>2007-11-09T22:22:47Z</updated>
    <category term="prototype"/>
    <link href="http://derenci.us/2007/11/scripteka-com-extenses-para-o-prototype" rel="alternate" type="text/html"/>
    <title>Scripteka.com - Extens&#245;es para o Prototype</title>
<content type="html">
            &lt;p&gt;Foi lançado o Scripteka.com, um site que lista (ou pretende listar) todas as extensões ou plugins baseados no frameworks javascript &lt;a href=&quot;http://www.prototypejs.org&quot;&gt;Prototype&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;O site é muito bem feito, e os visitantes poderão se registrar para poder dar sua nota para cada plugin.&lt;/p&gt;


	&lt;p&gt;Fica ai uma pontinha de inveja, porque estava na minha lista de planos fazer um site como este. Isso é algo que o Jquery e o Ext já mantêm em seus websites uma lista de plugins, mas tanto o prototype como scriptaculous não fazem.&lt;/p&gt;


	&lt;p&gt;&lt;span class=&quot;caps&quot;&gt;URL&lt;/span&gt;: &lt;a href=&quot;http://www.scripteka.com&quot;&gt;http://www.scripteka.com&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://derenci.us/">
    <author>
      <name>marcus</name>
    </author>
    <id>tag:derenci.us,2007-10-25:23</id>
    <published>2007-10-25T18:12:00Z</published>
    <updated>2007-10-25T18:13:22Z</updated>
    <category term="rails"/>
    <link href="http://derenci.us/2007/10/rails-plugin-bundle-fu" rel="alternate" type="text/html"/>
    <title>rails plugin: bundle-fu</title>
<content type="html">
            &lt;p&gt;&lt;img src=&quot;http://bundle-fu.googlecode.com/files/bundle_fu.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;Resumindo: esse plugin é essencial em qualquer projeto que tenha mais de um arquivo de javascript ou css.&lt;/p&gt;


	&lt;p&gt;Vantagem: O tempo de resposta da sua aplicação melhora sensivelmente sem nenhum esforço.&lt;/p&gt;


	&lt;p&gt;Dica: caso queira desabilitar o bundle_fu, adicione &lt;strong&gt;?bundle_fu=false&lt;/strong&gt; no final de uma url da sua aplicação que o bundle_fu não vai consolidar os javascripts e css.&lt;/p&gt;


	&lt;p&gt;Para instalar:&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;script/plugin install http://bundle-fu.googlecode.com/svn/tags/bundle_fu&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;ou via piston:&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;piston import http://bundle-fu.googlecode.com/svn/tags/bundle_fu vendor/plugins/bundle_fu&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;&lt;a href=&quot;http://code.google.com/p/bundle-fu/&quot;&gt;http://code.google.com/p/bundle-fu/&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://derenci.us/">
    <author>
      <name>marcus</name>
    </author>
    <id>tag:derenci.us,2007-10-09:21</id>
    <published>2007-10-09T23:06:00Z</published>
    <updated>2007-10-09T23:06:49Z</updated>
    <category term="rails"/>
    <link href="http://derenci.us/2007/10/rails-rejectconf-barcamp-sao-paulo" rel="alternate" type="text/html"/>
    <title>Rails+Rejectconf+BarCamp@S&#227;o Paulo</title>
<content type="html">
            &lt;p&gt;O &lt;a href=&quot;http://akitaonrails.com/2007/10/9/encontro-de-rails-em-sampa&quot;&gt;Akita&lt;/a&gt; lançou a idéia de fazer um encontro Rails em São Paulo. Algo no esquema RejectConf, onde cada um chega e apresenta, por uns 15 a 20 minutos, alguma coisa pro pessoal, sem muito compromisso. Por fim, um bate papo com um tema principal.&lt;/p&gt;


	&lt;p&gt;Eu acho que é uma iniciativa muito legal, ainda mais que hoje em dia metade do pessoal que trabalha com Rails está isolado (seja como eu trabalhando em casa, ou nos freelances fora do horário).&lt;/p&gt;


	&lt;p&gt;Acredito que algo no final de outubro ou até a 1a semana de novembro seja o ideal, pois depois começa o ritmo de final de ano, com o pessoal saindo de férias.&lt;/p&gt;


	&lt;p&gt;Encontro vocês por lá. Assim que tiver alguma novidade ou mais detalhes, coloco por aqui.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://derenci.us/">
    <author>
      <name>marcus</name>
    </author>
    <id>tag:derenci.us,2007-10-09:20</id>
    <published>2007-10-09T22:37:00Z</published>
    <updated>2007-10-09T22:42:05Z</updated>
    <category term="rails"/>
    <link href="http://derenci.us/2007/10/rosettastone-com-powered-by-radiant-cms" rel="alternate" type="text/html"/>
    <title>RosettaStone.com - Powered by Radiant CMS</title>
<content type="html">
            &lt;p&gt;O novo site da &lt;a href=&quot;http://www.rosettastone.com&quot;&gt;Rosetta Stone&lt;/a&gt; foi desenvolvido com o &lt;a href=&quot;http://www.radiantcms.org&quot;&gt;Radiant &lt;span class=&quot;caps&quot;&gt;CMS&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;O site tem um layout muito bonito, leve e de acabamento de primeira qualidade.&lt;/p&gt;


	&lt;p&gt;Esse é um sinal muito positivo para a Radiant &lt;span class=&quot;caps&quot;&gt;CMS&lt;/span&gt;.&lt;/p&gt;


	&lt;p&gt;Fonte: &lt;a href=&quot;http://blog.lathi.net/articles/2007/08/28/new-radiant-website&quot;&gt;http://blog.lathi.net/articles/2007/08/28/new-radiant-website&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://derenci.us/">
    <author>
      <name>marcus</name>
    </author>
    <id>tag:derenci.us,2007-08-16:18</id>
    <published>2007-08-16T13:58:00Z</published>
    <updated>2007-08-16T14:02:00Z</updated>
    <category term="firefox"/>
    <category term="ubuntu"/>
    <link href="http://derenci.us/2007/8/firefox-no-ubuntu-cuidado-c-colorzilla" rel="alternate" type="text/html"/>
    <title>Firefox no Ubuntu - Cuidado c/ Colorzilla</title>
<content type="html">
            Para quem usa o Ubuntu, ou qualquer outro linux, não instale a extensão Colorzilla no Firefox. Eu instalei, e desde então o Firefox não consegui iniciar (Segmentation Fault). 

Após pesquisar um pouco, vi que a Colorzilla era a causa. Removi ela, e pronto.
          </content>  </entry>
  <entry xml:base="http://derenci.us/">
    <author>
      <name>marcus</name>
    </author>
    <id>tag:derenci.us,2007-07-27:12</id>
    <published>2007-07-27T13:50:00Z</published>
    <updated>2007-07-27T13:50:37Z</updated>
    <category term="firebug"/>
    <category term="firefox"/>
    <category term="performance"/>
    <category term="yslow"/>
    <link href="http://derenci.us/2007/7/acelere-a-performance-do-seu-site-com-yslow" rel="alternate" type="text/html"/>
    <title>Acelere a performance do seu site com YSlow</title>
<content type="html">
            &lt;p&gt;O  &lt;a href=&quot;http://com3.devnet.re3.yahoo.com/yslow/&quot;&gt;YSlow&lt;/a&gt; é uma extensão para o &lt;a href=&quot;http://www.spreadfirefox.com&quot;&gt;Firefox&lt;/a&gt; que se integra com o &lt;a href=&quot;http://www.getfirebug.com/&quot;&gt;Firebug&lt;/a&gt; e faz uma análise de performance do seu site, como por exemplo o número de chamadas http, compactação dos arquivos javascript/css, etc.&lt;/p&gt;


	&lt;p&gt;Este blog ganhou um belo &lt;strong&gt;F&lt;/strong&gt;.&lt;/p&gt;


	&lt;p&gt;&lt;img src=&quot;/assets/2007/7/27/yslow_results.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;


	&lt;p&gt;Mais uma tarefa para o meu to-do list, assim que eu melhorar um pouquinho minha avaliação, publicarei os resultados aqui.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://derenci.us/">
    <author>
      <name>marcus</name>
    </author>
    <id>tag:derenci.us,2007-07-21:8</id>
    <published>2007-07-21T01:57:00Z</published>
    <updated>2007-07-21T01:57:59Z</updated>
    <category term="backup"/>
    <category term="rake"/>
    <link href="http://derenci.us/2007/7/backup-do-banco-com-rake" rel="alternate" type="text/html"/>
    <title>Backup do Banco com Rake</title>
<content type="html">
            &lt;p&gt;&lt;span class=&quot;dropcap&quot;&gt;U&lt;/span&gt; m task para o rake que faz o backup do banco de dados. Na verdade, uma ligeira melhoria nesta &lt;a href=&quot;http://tiago.zusee.com/blog/2007/06/12/rake-task-para-backup-de-banco-de-dados-em-rails/&quot;&gt;task&lt;/a&gt; para utilizar o host durante a execução do mysqldump, necessário para dump na &lt;a href=&quot;http://www.dreamhost.com/r.cgi?144573&quot;&gt;Dreamhost&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Dentro da pasta lib/tasks, crie um arquivo chamado backup.rake com o conteúdo abaixo.&lt;/p&gt;


&lt;pre&gt;&lt;code class=&quot;ruby&quot;&gt;require 'find'
namespace :db do
  desc &amp;quot;Backup the database to a file. Options: DIR=base_dir RAILS_ENV=production&amp;quot;
  task :backup =&amp;gt; [:environment] do
    datestamp = Time.now.strftime(&amp;quot;%Y-%m-%d&amp;quot;)
    hourstamp = Time.now.strftime(&amp;quot;%H-%M-%S&amp;quot;)
    base_path = ENV[&amp;quot;DIR&amp;quot;] || &amp;quot;db&amp;quot;
    backup_base = File.join(base_path, 'backup')
    backup_folder = File.join(backup_base, datestamp)
    backup_file = File.join(backup_folder, &amp;quot;#{RAILS_ENV}_#{hourstamp}_dump.sql&amp;quot;)
    File.makedirs(backup_folder)
    db_config = ActiveRecord::Base.configurations[RAILS_ENV]
    host = &amp;quot; -h #{db_config['host']} &amp;quot; if db_config['host'] and !db_config['socket']
    sh &amp;quot;mysqldump #{host} -u #{db_config['username']} -p#{db_config['password']} #{db_config['database']} &amp;gt; #{backup_file} ; bzip2 -z #{backup_file}&amp;quot;
    dir = Dir.new(backup_base)
    all_backups = dir.entries[2..-1].sort.reverse
    puts &amp;quot;Created backup: #{backup_file}.bz2&amp;quot;
  end
end&lt;/code&gt;&lt;/pre&gt;

	&lt;p&gt;Depois é só executar:&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;rake db:migrate&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;ou&lt;/p&gt;


	&lt;p&gt;&lt;code&gt;rake db:migrate RAILS_ENV=production&lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;E para resturar o banco:&lt;/p&gt;


	&lt;p&gt;&lt;code&gt; bzcat db/backup/2007-07-20/production_18-11-43_dump.sql.bz2 | mysql -u root mephisto_development &lt;/code&gt;&lt;/p&gt;


	&lt;p&gt;&lt;em&gt;(manual ainda &#8211; talvez idéia para uma outra task. Mas prefiro não facilitar muito o restore por enquanto, pois pode causar estragos.)&lt;/em&gt;&lt;/p&gt;
          </content>  </entry>
</feed>
