tag:www.iv4.pt,2008:/postsIV4 Blog2011-12-12T20:49:48ZEnkiIV4geral@iv4.pttag:www.iv4.pt,2008:Post/172011-12-12T20:49:00Z2011-12-12T20:49:48ZCurso de Ruby on Rails - Janeiro 2012<p>Novo Curso de Ruby on Rails!<br />
<strong>14 e 21 de Janeiro</strong><br />
<a href="http://iv4.pt/curso/ruby-on-rails">Mais informações…</a></p>tag:www.iv4.pt,2008:Post/162011-11-16T15:11:45Z2011-11-16T15:11:45ZCurso de Ruby on Rails - Dezembro 2011<p>Curso de Ruby on Rails<br />
<strong>10 e 17 de Dezembro</strong></p>tag:www.iv4.pt,2008:Post/152011-10-06T15:42:00Z2011-10-06T15:42:19ZCurso de Ruby on Rails - Novembro<p>Curso de Ruby on Rails<br />
<strong>5 e 19 de Novembro</strong></p>tag:www.iv4.pt,2008:Post/142011-09-01T23:14:00Z2011-09-01T23:14:06ZCurso de Ruby on Rails 24 de Setembro e 1 de Outubro<p><a href="http://iv4.pt/curso/ruby-on-rails-intensivo">Curso Intensivo de Ruby on Rails</a></p>
<p>Dias <strong>24 de Setembro e 1 de Outubro</strong>.</p>tag:www.iv4.pt,2008:Post/132011-09-01T22:46:00Z2011-09-01T22:46:12ZInstalação Do Ruby 1.9.2 E Do Rails 3 No Ubuntu 10.10 Com O Virtual Box<h3>Virtual Box e Ubuntu</h3>
<p>1. Instalar o Virtual Box e o Ubuntu:</p>
<p>a) Fazer download do Virtual Box e instalá-lo.<br />
b) Fazer download do Ubuntu 10.10 e instalá-lo.<br />
Os seguintes passos de instalação foram baseados (bastante) nos seguintes tutoriais: <br />
<a href="http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and-you">ubuntu-ruby-rvm-rails-and-you</a> <br />
<a href="http://www.rubyinside.com/how-to-install-ruby-1-9-2-and-rails-3-0-on-ubuntu-10-10-4148.html">how-to-install-ruby-1-9-2-and-rails-3-0-on-ubuntu-10-10-4148</a></p>
<p>2. Abrir um terminal indo ao menu applications (no topo superior esquerdo) > Accessories > Terminal</p>
<p>3. Começamos por instalar o aptitude: sudo apt-get install aptitude</p>
<p>4. E actualizá-lo: sudo aptitude update (actualiza a lista de pacotes para a versão mais actual)</p>
<p>5. De seguida instalamos: <br />
Git (a version control system) e o curl que são necessários para instalar e usar o <span class="caps">RVM</span><br />
e build-essential que é necessário para compilar o ruby e outros</p>
<p>usando o comando: sudo aptitude install build-essential git-core curl<br />
<span class="caps">RVM</span></p>
<p>Ruby Version Manager (<span class="caps">RVM</span>) é uma ferramenta que permite, de forma fácil, instalar, gerir e trabalhar com vários ambientes de ruby na mesma máquina.</p>
<p>Para determinada aplicação podemos precisar da versão de ruby 1.8.7 e para outra do ruby 1.9.2, o <span class="caps">RVM</span> resolve esses problemas de forma muito fácil.</p>
<p>Para além das diferentes versões de ruby, podemos precisar, e é muito comum, ter várias gems instaladas por aplicação. Com o <span class="caps">RVM</span> também conseguimos isso usando os gemsets. Se precisarem de mais informação podem consultar a documentação.</p>
<p>6. como já temos o git-core e o curl instalados podemos começar a instalação do <span class="caps">RVM</span> com o seguinte comando: <br />
bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer ) Com este comando, o ruby vai ser instalado na nossa directoria home, criando assim um ambiente mais estanque, acessível só para nós.</p>
<p>7. Uma vez instalado o rvm precisamos de adicionar a seguinte linha no nosso ficheiro ~/.bashrc. Esta linha vai carregar o <span class="caps">RVM</span>: echo ‘[[ -s “$<span class="caps">HOME</span>/.rvm/scripts/rvm” ]] && source “$<span class="caps">HOME</span>/.rvm/scripts/rvm”’ >> ~/.bashrc <br />
8. Recarregar o ficheiro ~/.bashrc. Pode ser feito executando o comando . ~/.bashrc , ou, fechando e voltando a abrir o terminal</p>
<p>9. O <span class="caps">RVM</span> disponibiliza um comando que nos informa que pacotes são necessários instalar para colocar o ruby a funcionar: rvm notes <br />
Resultado:</p>
<ol>
<li>For Ruby (<span class="caps">MRI</span> & ree) you should install the following OS dependencies: ruby: aptitude install build-essential bison 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 <br />
A instalação destes pacotes vai-nos facilitar a vida, embora nem todos sejam necessários no início <br />
sudo aptitude install build-essential bison 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</li>
</ol>
<p>10. Com o <span class="caps">RVM</span> e todos os pacotes instalados podemos passar à instalação do Ruby 1.9.2: rvm install 1.9.2</p>
<p>11. Indicamos ao rvm para usar o ruby que instalamos rvm use 1.9.2 <br />
Podemos verificar que ruby está a usar com:ruby -v</p>
<p>12. E que tal torná-lo o nosso ruby pré-definido? rvm —default use 1.9.2 <br />
Agora, sempre que abrirmos um terminal, este ruby vai-nos estar disponível</p>
<h3>Rails</h3>
<p>13. Instalar o Rails é simples: gem install rails. Como o <span class="caps">RVM</span> colocou a instalação de ruby na nossa home, não é necessário usar o sudo. <br />
Para além do rails, também instalou as suas dependências, incluindo o bundler.</p>
<h3>Criar Uma Aplicação Rails</h3>
<p>rails new iv4_app</p>
<p>cd iv4_app</p>
<p>bundle install instala as gems requeridas pela aplicação</p>
<p>Lançar o servidor: rails server</p>tag:www.iv4.pt,2008:Post/122011-04-25T18:57:00Z2011-04-25T19:57:14ZTest Driven Development com Ruby e Rails - Junho e Julho de 2011<h4>Quando:</h4>
<p><strong>27 e 28 de Junho</strong> [9:00 às 18:00]</p>
<p><strong>9 e 16 de Julho</strong> [9:00 às 18:00]</p>
<h4>A quem se dirige:</h4>
<p>Formação dirigida a quem pretende aprender as práticas e técnicas necessárias para começar a escrever testes.</p>
<h4>Pré Requisitos:</h4>
<ul>
<li>Ter conhecimentos básicos de ruby e rails.</li>
<li>Ter um portátil.<br />
<br/></li>
</ul>
<h4>Localização:</h4>
<p>A formação realizar-se-á em Lisboa (num espaço a anunciar)</p>
<h4>Programa:</h4>
<ul>
<li>Test:Unit</li>
<li>RSpec</li>
<li>Cucumber</li>
</ul>
<p><br /></p>
<h4>Preço:</h4>
<p><strong>190€</strong> (<span class="caps">IVA</span> Incluído)</p>
<p><strong>170€</strong> (<span class="caps">IVA</span> Incluído) se for pago até 3 semanas antes do início do curso.</p>
<h4>Modo de Inscrição:</h4>
<p>Enviar um email para <a href="mailto:%67%65%72%61%6c@%69%76%34.%70%74">geral</a> com o nome, morada e número de contribuinte para a factura.</p>tag:www.iv4.pt,2008:Post/112011-04-25T15:38:00Z2011-04-25T17:38:39ZCurso Intensivo de Ruby on Rails - Junho e Julho de 2011<h4>Quando:</h4>
<p>1º curso: <strong>25 de Junho e 2 de Julho</strong> [9:00 às 18:00]</p>
<p>2º curso: <strong>5, 7, 12 e 14 de Julho</strong> [19:00 às 22:30]</p>
<p>3º curso: <strong>Cancelado!</strong> 18, 19, 20 e 21 de Julho [14:00 às 18:00]</p>
<h4>A quem se dirige:</h4>
<p>Formação dirigida a quem pretende desenvolver para a web de forma rápida e ágil.</p>
<h4>Pré Requisitos:</h4>
<ul>
<li>Ter conhecimentos básicos de programação e <span class="caps">HTML</span>.</li>
<li>Ter um portátil.<br />
<br/></li>
</ul>
<h4>Localização:</h4>
<p>A formação realizar-se-á em Lisboa (num espaço a anunciar)</p>
<h4>Programa:</h4>
<ul>
<li>Ruby 1.9.2 o essencial</li>
<li>Rails 3
<ul>
<li>Introdução</li>
<li>Estrutura de uma aplicação Rails</li>
<li>Princípios básicos do <span class="caps">MVC</span> e do RESTful</li>
<li>Criar uma aplicação Rails</li>
<li>Models</li>
<li>Database migrations</li>
<li>Active Record</li>
<li>Views e Controllers</li>
<li>Layouts e Rendering</li>
<li>Action View form helpers</li>
<li>Action Controller</li>
<li>Routing</li>
</ul></li>
<li><span class="caps">TDD</span> & <span class="caps">BDD</span> Cucumber + Rspec</li>
<li>Heroku</li>
</ul>
<p><br /></p>
<h4>Preço:</h4>
<p><strong>180€</strong> (<span class="caps">IVA</span> Incluído)</p>
<p><strong>160€</strong> (<span class="caps">IVA</span> Incluído) se for pago até 3 semanas antes do início do curso.</p>
<h4>Modo de Inscrição:</h4>
<p>Enviar um email para <a href="mailto:%67%65%72%61%6c@%69%76%34.%70%74">geral</a> com o nome, morada e número de contribuinte para a factura</p>tag:www.iv4.pt,2008:Post/102011-02-05T23:59:00Z2011-02-05T23:59:47ZCurso Intensivo de Ruby on Rails - 5 e 12 de Março de 2011<h4>Duração:</h4>
<p>Dois <strong>sábados</strong>, das <strong>9:00 às 18:00</strong></p>
<h4>A quem se dirige:</h4>
<p>Formação dirigida a quem pretende desenvolver para a web de forma rápida e Ágil.</p>
<h4>Pré Requisitos:</h4>
<ul>
<li>Ter conhecimentos básicos de programação e <span class="caps">HTML</span>.</li>
<li>Ter um portátil.<br />
<br/></li>
</ul>
<h4>Localização:</h4>
<p>A formação realizar-se-á no espaço <a href="http://coworklisboa.pt/pages/contactos">coworklisboa</a></p>
<h4>Programa:</h4>
<ul>
<li>Ruby 1.9.2 o essencial</li>
<li>Rails 3
<ul>
<li>Introdução</li>
<li>Instalação do Rails</li>
<li>Estrutura de uma aplicação Rails</li>
<li>Princípios básicos do <span class="caps">MVC</span> e do RESTful</li>
<li>Criar uma aplicação Rails</li>
<li>Models</li>
<li>Database migrations</li>
<li>Active Record</li>
<li>Views e Controllers</li>
<li>Layouts e Rendering</li>
<li>Action View form helpers</li>
<li>Action Controller</li>
<li>Routing</li>
</ul></li>
<li><span class="caps">TDD</span> & <span class="caps">BDD</span> Cucumber + Rspec</li>
<li>Github</li>
<li>Heroku</li>
</ul>
<p><br /></p>
<h4>Preço:</h4>
<p><strong>180€</strong> <span class="caps">IVA</span> Incluído</p>
<h4>Modo de Inscrição:</h4>
<p>Enviar um email para <a href="mailto:%67%65%72%61%6c@%69%76%34.%70%74">geral</a> com: nome, morada e número de contribuinte para a factura</p>tag:www.iv4.pt,2008:Post/82010-10-21T12:35:00Z2010-10-21T13:35:07ZCurso Intensivo de Ruby on Rails - 15 e 22 de Janeiro de 2011<h4>Duração:</h4>
<p>Dois <strong>sábados</strong>, das <strong>9:00 às 18:00</strong></p>
<h4>A quem se dirige:</h4>
<p>Formação dirigida a quem pretende desenvolver para a web de forma rápida e ágil.</p>
<h4>Pré Requisitos:</h4>
<ul>
<li>Ter conhecimentos básicos de programação e <span class="caps">HTML</span>.</li>
<li>Ter um portátil.<br />
<br/></li>
</ul>
<h4>Localização:</h4>
<p>A formação realizar-se-á no espaço <a href="http://coworklisboa.pt/pages/contactos">coworklisboa</a></p>
<h4>Programa:</h4>
<ul>
<li>Ruby 1.9.2 o essencial</li>
<li>Rails 3
<ul>
<li>Introdução</li>
<li>Instalação do Rails</li>
<li>Estrutura de uma aplicação Rails</li>
<li>Princípios básicos do <span class="caps">MVC</span> e do RESTful</li>
<li>Criar uma aplicação Rails</li>
<li>Models</li>
<li>Database migrations</li>
<li>Active Record</li>
<li>Views e Controllers</li>
<li>Layouts e Rendering</li>
<li>Action View form helpers</li>
<li>Action Controller</li>
<li>Routing</li>
</ul></li>
<li><span class="caps">TDD</span> & <span class="caps">BDD</span> Cucumber + Rspec</li>
<li>Github</li>
<li>Heroku</li>
</ul>
<p><br /></p>
<h4>Preço:</h4>
<p><strong>180€</strong> <span class="caps">IVA</span> Incluído</p>
<h4>Modo de Inscrição:</h4>
<p>Enviar um email para <a href="mailto:%67%65%72%61%6c@%69%76%34.%70%74">geral</a> com: nome, morada e número de contribuinte para a factura</p>tag:www.iv4.pt,2008:Post/92010-10-21T12:25:00Z2010-10-30T08:28:33ZQuickstart Ruby on Rails Workshop<h4>Duration:</h4>
<p>One <strong>saturday</strong>, from <strong>9:00 to 18:00</strong></p>
<h4>Pre-Requirements:</h4>
<p>Basic knowledge of programming and <span class="caps">HTML</span>.</p>
<h4>Location:</h4>
<p>In a hotel [To be defined] in Lisbon</p>
<h4>Program:</h4>
<ul>
<li>Ruby 1.9.2 essential</li>
<li>Rails 3
<ul>
<li>Introduction</li>
<li>Installing Rails</li>
<li>Structur of a Rails application</li>
<li>Basic principles of <span class="caps">MVC</span> and RESTful</li>
<li>Creating a Rails application</li>
<li>Models</li>
<li>Database migrations</li>
<li>Active Record</li>
<li>Views and Controllers</li>
<li>Layouts and Rendering</li>
<li>Action View form helpers</li>
<li>Action Controller</li>
<li>Routing</li>
</ul></li>
<li><span class="caps">TDD</span> & <span class="caps">BDD</span> Cucumber + Rspec</li>
<li>Github</li>
<li>Heroku</li>
</ul>
<p><br /></p>
<h4>Price:</h4>
<p><strong>80€ + <span class="caps">IVA</span> = 96,8€</strong></p>tag:www.iv4.pt,2008:Post/62009-11-23T16:03:00Z2009-11-23T16:03:54ZCurso de iniciação ao Ruby e ao Ruby on Rails<p>Curso gratuito com o objectivo de divulgar o ruby e o ruby on rails:</p>
<p><strong>Duração:</strong></p>
<p>4 aulas de 3 horas<br />
Das 9.00 às 12.30</p>
<p><strong>A quem se dirige:</strong></p>
<p>Formação dirigida tanto a profissionais sem experiência com programação de aplicações web como a programadores que desejam aprender a utilizar o Ruby on Rails para construir aplicações e sites com acesso a bases de dados de forma ágil, fácil e produtiva.</p>
<p><strong>Pré Requisitos:</strong></p>
<p>Ter conhecimento equivalente nas linguagens <span class="caps">HTML</span>.</p>
<p>A formação realizar-se-a numa sala cedida pela <span class="caps">ESCE</span> – Escola Superior de Ciências Empresariais do Instituto Politécnico de Setúbal Campus do <span class="caps">IPS</span> – Estefanilha 2914-503 Setúbal <span class="caps">GPS</span>: Latitude 30º31′21.91”N – Longitude: 8º50′28.93”O</p>
<p><strong>Programa:</strong></p>
<ol>
<li>Linguagem Ruby</li>
</ol>
<ol>
<li>Rails:</li>
<li>Introdução</li>
<li>Instalação do Rails</li>
<li>Estrutura de uma aplicação Rails</li>
<li>Princípios básicos do <span class="caps">MVC</span> e do RESTful</li>
<li>Criar uma aplicação Rails</li>
</ol>
<ol>
<li>Rails:</li>
<li>Models</li>
<li>Database migrations</li>
<li>Active Record</li>
</ol>
<ol>
<li>Rails:</li>
<li>Views e Controlers</li>
<li>Layouts e Rendering</li>
<li>Action View form helpers</li>
<li>Action Controller</li>
<li>Routing</li>
</ol>
<p><strong>Inscrições e + info:</strong><br />
http://wdesign-it.com/blog/ror/</p>
<p>O meu obrigado à Célia :-)</p>tag:www.iv4.pt,2008:Post/52009-10-07T10:05:00Z2009-10-07T11:05:48ZAumentar a velocidade das app Apache/Passenger Rails<p>Instalei o Yslow e claro, não saiu logo a nota máxima, mas com as seguintes afinações no apache, quase que foi suficiente para lá chegar.</p>
<p>Com a instalação e execução de dois módulos, consegue-se aumentar a velocidade de resposta das vossas aplicações rails sobre apache/passenger.</p>
<p>O primeiro módulo permite que os recursos que são servidos pelo web server tenham expire headers, permitindo ao browser saber se precisa de obter esse recurso outra vez ou não. Aumentado assim a velocidade de carregamento da página.</p>
<p>O outro é a compressão dos ficheiros enviados pelo servidor, reduzindo a largura de banda utilizada e os tempos de transferência dos ficheiros para o browser.</p>
<p>Para tal basta executar os comandos:</p><table class="CodeRay"><tr>
<td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre>1<tt>
</tt>2<tt>
</tt></pre></td>
<td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }">a2enmod expires<tt>
</tt>a2enmod deflate<tt>
</tt></pre></td>
</tr></table>
<p>Que activam os módulos de expiração dos headers e o de compressão dos ficheiros.</p>
<p>Depois é ir à directoria /etc/apache2/sites-available e adicionar nos ficheiros as seguintes entradas:</p><table class="CodeRay"><tr>
<td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre>1<tt>
</tt>2<tt>
</tt></pre></td>
<td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"> # gzip html, css and js<tt>
</tt> AddOutputFilterByType DEFLATE text/html text/css application/x-javascript application/javascript<tt>
</tt></pre></td>
</tr></table>
<table class="CodeRay"><tr>
<td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre>1<tt>
</tt>2<tt>
</tt>3<tt>
</tt>4<tt>
</tt>5<tt>
</tt></pre></td>
<td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"> ExpiresActive On<tt>
</tt> # far future expires headers<tt>
</tt> <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"><tt>
</tt> ExpiresDefault "access plus 1 year"<tt>
</tt> </FilesMatch><tt>
</tt></pre></td>
</tr></table>
tag:www.iv4.pt,2008:Post/42009-10-07T09:30:00Z2009-10-07T10:30:51ZPartilhar cookies por diversos domínios<p>Costumo usar subdomínios para separar os diversos idiomas. (portuguespodcast.com, futegobos.com)</p>
<p>No entanto essa abordagem traz um problema com as cookies. Em especial quando se utiliza cookies para manter a sessão de um utilizador.</p>
<p>O que acontece é que quando se passa de um subdomínio para outro a cookie não é passada e o utilizador perde a sessão, tendo como resultado ter de se logar outra vez.</p>
<p>Para resolver esse problema, e permitir que as cookies sejam partilhadas pelos subdomínios, no config/environment.rb tem de se adicionar :domain e alterar para :key</p><table class="CodeRay"><tr>
<td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre>1<tt>
</tt>2<tt>
</tt>3<tt>
</tt>4<tt>
</tt>5<tt>
</tt></pre></td>
<td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }"> config.action_controller.session = {<tt>
</tt> :key => '_oseudominio_session',<tt>
</tt> :secret => 'umachavecompelomenos30caracteres',<tt>
</tt> :domain => '.oseudominio.com'<tt>
</tt> }<tt>
</tt></pre></td>
</tr></table>
tag:www.iv4.pt,2008:Post/32009-09-22T09:44:00Z2009-09-22T10:44:24ZRails indexes<p>Têm uma aplicação rails e não sabem se adicionaram todos os Índices necessários?</p>
<p>Há um plugin que pode ajudar: <a href="http://github.com/eladmeidar/rails_indexes">rails_indexes</a></p>
<p>Adiciona uma rake task que procura os índices em falta e mostra as respectivas migrations de criação.</p>
<p>Este plugin cria os índices olhando para as associações entre os objectos active record e para as chamadas ao método find.</p>tag:www.iv4.pt,2008:Post/22009-09-20T14:11:00Z2009-09-20T15:11:56ZApache2 Reload, Start, Stop ...<p>O comando para reiniciar o apache, para não me esquecer :)</p><table class="CodeRay"><tr>
<td class="line_numbers" title="click to toggle" onclick="with (this.firstChild.style) { display = (display == '') ? 'none' : '' }"><pre>1<tt>
</tt>2<tt>
</tt></pre></td>
<td class="code"><pre ondblclick="with (this.style) { overflow = (overflow == 'auto' || overflow == '') ? 'visible' : 'auto' }">/etc/init.d/apache2 {start|stop|restart|reload|force-reload|start-htcacheclean|stop-htcacheclean}<tt>
</tt> </pre></td>
</tr></table>