Ruby on Rails na WebMobile

10 de agosto de 2008 ~ 2 comentários ~ Tags:,

Ruby on Rails é um framework minimalista que chama cada vez mais atenção do mainstream. Dia-a-dia a comunidade avança, com encontros (Rails Summit está chegando), publicações e artigos e reportagens em revistas especializadas. E é com grande satisfação que divulgo que a WebMobile, da editora DevMedia, traz, a partir dessa edição, um micro curso apresentando as funcionalidades do RoR.

Vale a pena correr a banca e me conferir lá ;)

P.S.: Mês que vem tem Minas on Rails ’08. Em breve novas informações desse evento.


Mudanças no Rails 2.2

2 de agosto de 2008 ~ 2 comentários ~ Tags:

O Rails 2.2 está chegando e ao baixar o Edge para testar o novo recurso de internacionalização (uma das grandes novidades), me deparei com a primeira diferença da versão: o arquivo de conexão com o MySQL não está mais integrado ao framework. É isso o que diz o log do development.log:

!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.

Como o próprio log já sugere, é só instalar o gem, mas atenção: é preciso especificar o path do arquivo mysql_config, através do flag "--with-mysql-config". Para o Mac OS X, a instalação pode ser feita com:

sudo gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

e no Ubuntu, com:

sudo gem install mysql -- --with-mysql-config=/usr/bin/mysql_config

Depois disso, é só correr pro abraço!


MacLimpeza Pro

20 de julho de 2008 ~ 3 comentários ~ Tags:

Eu era um feliz dono de um MacBook branco acizentado até que resolvi experimentar o Limplex. Após utilizar métodos como borracha branca (trabalhoso) e algodão, sem sucesso na limpeza do MacBook, resolvi finalmente experimentar o produto que muita gente já utilizava, e que já estava em casa por quase 3 meses sem uso.

O produto, segundo o site do fabricante, é vendido em lojas como a Saraiva, Extra, Kalunga (onde comprei), entre outras. A aplicação é simples: basta usá-lo com a esponja que vem junto no kit em movimentos circulares. Depois, é só usar um pano branco macio para tirar o excesso do produto. Para limpar o display, usei algodão seco.

ps. Aproveitei e tentei limpar meu Nokia 1108, que estava amarelado. Não tive nenhum sucesso em obter o branco original.


Protegendo projetos com o .htaccess

16 de julho de 2008 ~ 2 comentários ~ Tags:, ,

O Apache pode te ajudar a proteger um projeto com seu sistema de autenticação. E isso é mais fácil do que você pensa. Para tal, crie um arquivo .htaccess com o seguinte conteúdo:

AuthUserFile /home/leonardo/public_html/project/.htpasswd
AuthGroupFile /dev/null
AuthName "Restricted Access"
AuthType Basic
<limit GET>
require valid-user
</limit>

Após isso, crie um .htpasswd com os dados de usuário e senha (atenção ao caminho do arquivo). A senha é criptografada e o conteúdo do arquivo é algo como o seguinte:

leo:4tHAiRmQ4OpjM

Para criptografar a senha use um dos vários serviços por aí existentes. Para proteger um projeto em Rails, a solução também funciona bem, desde que seu .htaccess esteja na pasta public de sua aplicação


Usando ApacheBench para testes: Apache/mod_rails e Nginx/mongrel

15 de julho de 2008 ~ 3 comentários ~ Tags:, , ,

O ApacheBench é um software do Apache usado para fazer testes de perfomance de servidores web, independente do servidor usado. Isso é muito útil para comparar o desempenho de diversas configurações, mas nem sempre pode apresentar a realidade do ambiente.

O ApacheBench é distribuído nos ambientes Linux pelo pacote apache2-utils - versões para Mac OS e Windows podem ser encontradas no site do software. Em distribuições como o Ubuntu, para instalá-lo basta um apt-get install apache2-utils (como super-usuário). A partir daí, o comando ab fica disponível em seu terminal e é só correr para o abraço!

Um teste pode ser feito com o comando:

ab -n 100 -c 5 http://www.leonardofaria.net/

O Flag '-n' indica o número de requisições, enquanto a opção '-c' indica a ocorrência de conexões simultâneas. A saída do comando acima é semelhante a:

This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking www.leonardofaria.net (be patient).....done

Server Software:        Apache/2.2.8
Server Hostname:        www.leonardofaria.net
Server Port:            80

Document Path:          /
Document Length:        0 bytes

Concurrency Level:      5
Time taken for tests:   16.460184 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Non-2xx responses:      100
Total transferred:      41600 bytes
HTML transferred:       0 bytes
Requests per second:    6.08 [#/sec] (mean)
Time per request:       823.009 [ms] (mean)
Time per request:       164.602 [ms] (mean, across all concurrent requests)
Transfer rate:          2.43 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:      255  291  21.2    287     361
Processing:   442  506 131.1    485    1732
Waiting:      438  492  42.9    484     655
Total:        698  797 137.9    774    2040

Percentage of the requests served within a certain time (ms)
  50%    774
  66%    804
  75%    812
  80%    818
  90%    878
  95%    925
  98%    982
  99%   2040
 100%   2040 (longest request)

Dezenas de possibilidades podem ser traçadas com esses testes.
Nos meus benchmarks, realizei basicamente 2 testes: a renderização do index.html default do framework e a renderização de um Time.Now do Ruby. Em ambos os testes, o desempenho do nginx + mongrel_cluster foi superior ao Apache + mod_rails. Esse teste também foi feito por aí, e com resultados semelhantes ao meu.

Desse modo, em uma balança estão Apache/mod_rails e Nginx/mongrel_cluster. De um lado, pesam a facilidade de deployment e o crescente uso em shared hosts. De outro lado pesam a rapidez do servidor e a 'dificuldade' do deployment. E aí? De que lado você vai ficar?


Rails Screencasts

11 de julho de 2008 ~ 2 comentários ~ Tags:,

É incrível a qualidade de material existente sobre Rails. A comunidade está cada vez mais crescendo e para quem está vindo para o lado Rails da força, nada mau uns screencast para aprender.

  1. Learnivore é um agregador com diversos sites de screencasts, incluindo os listados a seguir.
  2. Railscasts: já são 117 episódios do mais conhecido site de vídeos.
  3. PeepCode: screencasts de ótima qualidade, entretanto, pagos (o Júlio fez um ótimo post sobre isso).
  4. Ruby Plus: outro site interessante de conteúdo.
  5. ThinkRefresh: um site com um bom número de screencasts.
  6. Learncasts: o Lucas Húngaro começou sua série de screencasts.
  7. Git: git parece ser ainda um mistério, mas não se você ver esses screencasts.
  8. TDD Screencast: não assisti ainda, mas promete ser um screencast bem bacana.
  9. [update] o Carlos Brando também tem screencasts brilhantes! (E não deixe de conferir o Rails Podcast Brasil, do qual ele também participa.)
  10. RubyPulse é um novo site de screencasts
  11. Sceencasts sobre o Textmate
  12. 17 videos cobrindo o básico sobre Ruby

Nasceu: codestacker.com

2 de julho de 2008 ~ 4 comentários ~ Tags:,

Nasceu meu projeto Rails de 2 fins-de-semana: codestacker (é em minúsculas, tá?) é um site para compartilhamento de código, anônimo ou não, público ou privado. Existem vários sites semelhantes ao codestacker, entretanto, quis fazer minha solução cobrindo minha abordagem para o problema e como posso solucioná-lo.

Tenho vários features que ainda não implementei, caí na real e lancei o básico do serviço. Existirão outros fins-de-semana para atualizações.

Então é isso, vejo todo mundo .


annotate_model, gem útil da semana

30 de junho de 2008 ~ 5 comentários ~ Tags:

Trabalhar com Rails é certeza de encontrar ótimo material para trabalhar/documentar sua aplicação. Tenho uma lista de plugins/gems úteis para o desenvolvimento, o que daria um enorme post. Seguindo os conceitos do Getting Real, rapidinho vou postando (é muito material).

O primeiro da lista é o annotate_model, um gem que gera para cada model as informações da estrutura da tabela daquela entidade. Por exemplo:

# == Schema Information
# Schema version: 20080628203259
#
# Table name: comments
#
#  id         :integer(11)     not null, primary key
#  name       :string(255)
#  email      :string(255)
#  body       :text
#  code_id    :integer(11)
#  created_at :datetime
#  updated_at :datetime
#

class Comment <ActiveRecord::Base

Uma forma de se conhecer os atributos de uma entidade é, a partir do script/console, digitar: Model.new.attributes, entretanto com o gem, o conhecimento dessas informações fica bem mais fácil.

Após instalada (sudo gem install annotate-models), bastar executar o comando annotate na pasta do seu aplicativo. Simples, rápido e quebra um galhão.


Passenger no painel de preferências do Leopard

28 de junho de 2008 ~ 2 comentários ~ Tags:,

Que o mod_rails veio para revolucionar o deployment de Rails, todo mundo já sabe. Agora, me deparei com isso:

Como no Locomotive, criaram, com RubyCocoa, um painel para gerenciar suas aplicações. Agora, nem é mais preciso declarar cada aplicação no httpd.conf. Virou brincadeira, né?

Para funcionar, bastar ter Mac OS 10.5.2 e Pessenger 2.0.1 instalados.


Extendendo a classe Tween do Flash

10 de junho de 2008 ~ 1 comentário ~ Tags:, ,

A cada trabalho que volto ao Actionscript, me deparo com soluções interessantíssimas para problemas comuns. Esse post falar sobre classes de transição

Color Tween

A classe Tween é responsável por fazer transições de objetos do Flash. Entre essas transições estão mudanças nos eixos, na largura, na altura e na opacidade de objetos, não existindo transições entre cores. Existem alguns protótipos para isso, mas a melhor solução que encontrei foi usar a classe TweenColor, que extende a classe padrão encontrada no Flash.

Para usá-la, basta copiar o pacote, instalar (via Extension Manager) e começar a usar. Um rápido exemplo funcional:

import mx.transitions.TweenRGB;

var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
var label:TextField = container.createTextField("label", 1, 0, 0, 150, 20);
label.text = "Hello World";

container.onRollOver = function():Void {
    var mytween = new TweenRGB(this, "", Regular.easeInOut, 0x000000, 0xff0000, 3, true);
}

Tween Extended

A classe Tween Extended multiplica as possibilidades de se usar a classe Tween padrão. Como a Color Tween, ela também permite a transição entre cores e além disso, possibilita passar de uma só vez, múltiplos parâmetros (_x, _y, _alpha, _width, _height, _xscale, _yscale e _rotation) para um Tween de um objeto.

O Leonardo França e o Erick Sousa já explicaram o funcionamento dessa classe.

Outras classes de transição

Antes de surgir a classe Tween (Flash 2004 - Actionscript 2), surgiram outras classes interessantes para transição. Uma é a MC Tween 2, do brasileiro Zeh Fernando e a outra é lazo. Para ambas, basta copiar e instalar a extensão e começar a usar.


Página 9 de 31« Primeiro‹ Anterior5678910111213Próximo ›Último »

Últimos textos do blog

Tagcloud

abraweb acadêmico actionscript ajax apache apple arteccom asp autosimulado backup benchmark beta bh blogosfera bookmarklet bookmarklets brasil browser censura chucknorris cms codestacker concurso crítica css dashboard deployment desenvolvimento design dicas divinópolis dotmac download dreamhost economia empreendedorismo empreendorismo encontro estatísticas extreme programming feedburner firefox fireworks flash flickr ftp game git globo gmail golive google greasemonkey guerrilha hack host howto htaccess html humor ie inss internet banking iphone ipod is® javascript jquery layout leopard linux listas live locomotive mac meme microsoft miguxês minasonrails mod_rails mp3 msn mysql off tropic opensocial opera orkut oscommerce parser passenger pc personalidade pesquisa php plugin plugins pog portfolio produtividade publicidade rails refurbished regex resenha review ria rss ruby rádio safari sandbox screencast screensaver script.aculo.us seo shoutcast silverlight software spam startup stevejobs suporte swf switch são paulo teste textmate trabalho tumblelog tumblr tutorial twitter ui uml usabilidade validação viral wallop web2.0 webalizer webdesign webdevelopment webkit webmail webmobile webobjects webstandards windows wordpress xml yahoo youtube

Veja todos os textos →