Procura-se um designer

Estou em busca de um designer para trabalhos freelance. O trabalho básico é o desenvolvimento de páginas web e de interfaces para sistemas web. Não precisa estar localizado no Rio de Janeiro, mas preciso ter garantias de que os acordos serão cumpridos nos prazos.

Requisitos:

Contam pontos:

Entrar em contato direto em pvt. Veja as formas de contato.

2 comentários : 31.05.2007 06:36 PM

Não sejam medíocres!

Se alguém me pergunta: Você saber X?. Tenho apenas duas respostas diretas: Sim ou Não. Dizer não apenas de vez em quando, é até perdoável, passável. Dizer não com frequência é derrotista. Como assim você não sabe algo simples como X!?. Dizer não o tempo todo é admitir uma fraqueza. Dizer não sempre é assumir a própria incompetência.

(…)

Agora, se disser Sim com frequência, prepare-se para ser massacrado. Ninguém gosta de pessoas que falam Sim o tempo todo. Porque elas se sentem inferiorizadas: Como assim ele sabe e eu não? E por causa disso todos tentarão derrubá-lo, por pura e simples mesquinharia. Chegarão ao ponto de dizer grande coisa que ele sabe, eu poderia saber. Poderia, mas não sabe.

(…)

Média da Média
E qual o problema de ser a média? Por que preciso ser diferente de todo mundo?

(…)

Quero que todos lembrem de uma coisa: a palavra média é raíz para outra: Medíocre e garanto que ninguém se sente lisonjeado em ser chamado de medíocre. Lembrem-se disso da próxima vez que pensarem que está tudo bem em se considerarem parte da média.

O texto é do Fábio Akita. Em torno do inglês ele comenta sobre várias situações em que a maioria das pessoas simplesmente aceitam o seu status de medíocre.

É um texto polêmico, que muitos acham arrogante, mas é esse o ponto. É um dos melhores posts do Akita e coloca em palavras a grande realidade.

Faz lembrar a música dos Móveis Coloniais:

Não vou mentir
Não sua média você será
Medíocre

Leia na íntegra

0 comentários : 24.05.2007 01:40 PM

Encontro do XP Rio

Participei pela primeira vez - na última quinta-feira, dia 17 de maio - do encontro do grupo XP Rio, que visa debater sobre a utilização da metodologia de desenvolvimento XP (eXtreming Programming). Na reunião, Vinícius Teles, junto com a equipe da Improve It e do Grupo Santa Isabel, apresentou o projeto Lucidus, que está sendo desenvolvido para o Grupo utilizando metodologia XP e Ruby on Rails.

Mais detalhes sobre XP você encontra no site da Improve It. Estão disponíveis também as fotos do encontro. E um podcast com o áudio de toda a reunião de duas horas e meia, além dos slides para acompanhamento.

0 comentários : 21.05.2007 12:59 AM

Associações com ActiveRecord

Vou contar um pouco da minha experiência com o ActiveRecord do Rails. Trata-se do has and belongs to many – hbtm – e do has many through, inserido no Rails 1.1.

As associações hbtm são resultado de relações muitos para muitos – ou n para n – entre duas tabelas do banco de dados. Por exemplo, imagine um livro. Esse livro pode ser enquadrado em diversas categorias simultaneamente. Reciprocamente, uma categoria pode possuir diversos livros enquadrados. Nesse caso teríamos duas classes de modelo:

class Book < ActiveRecord::Base  
  has_and_belongs_to_many :categories  
end

e

class Category < ActiveRecord::Base  
  has_and_belongs_to_many :books  
end

E temos o modelo de dados:

activerecord1.png

A tabela books_categories não precisa de modelo. Ela é mapeada automaticamente pelo has_and_belongs_to_many. Para adicionar uma categoria a um livro:

book.categories << Category.find(1)
book.save

E para recuperar todos os livros de uma categoria pode-se fazer:

books = Category.find(1).books

Dentro da variável books estarão todos os livros(um array de livros) que pertencem a categoria com id igual a 1. O mesmo vale no sentido contrário:

categories = Book.find(1).categories

A variável categories será um array das categorias a qual o livro com id igual a 1 pertence. Simples não?

Mas e se o relacionamento em si possuir atributos também? No nosso caso, isso significa a tabela books_categories possuir atributos que pertencem ao relacionamento, e não a categoria ou ao livro isoladamente. Esse caso não é tratado pelo has and belongs to many. É aí que entra o has many through.

Alterando o modelo de dados para:

activerecord1.png

Temos agora a substituição da tabela books_categories pela tabela comments, que provê as mesmas informações da anterior e mais um comentário. Então agora cada livro possui um comentário que por sua vez está associado a uma categoria. Esse comentário poderia ser usado, por exemplo, para explicar por que a pessoa que cadastrou o livro incluiu-o naquela categoria. Os modelos ficam agora:

class Book < ActiveRecord::Base  
  has_many :comments  
  has_many :categories, :through => :comments
end
class Comment < ActiveRecord::Base  
  belongs_to :book  
  belongs_to :category  
end
class Category < ActiveRecord::Base  
  has_many :books, :through => :comments    
end

Agora podemos fazer coisas como:

category = Category.find(1)
comment = Comment.new :content => "meu comentario", :category => category
book.comments << comment
book.save

Ou apenas:

book.categories << Category.find(1)

E o comentário virá em branco. Pode-se também:

books = Category.find(1).books

Que retornará todos os livros pertencentes a uma categoria. Podemos também:

categories = Books.find(1).categories

Onde teremos todas as categorias de um livro. Além disso:

comments = Books.find(1).comments

Onde teremos todos os comentários de um livro. Lembrando que cada objeto comment ainda possui a categoria associada a ele.

Para testar as coisas e garantir que o código que eu escrevi aqui estava ok, no fim eu resolvi testá-lo. E usei migração para geração da base de dados, como forma fácil de migrar do primeiro modelo para o segundo. Então esse poderá ser o tema do próximo post.

Por favor, se encontrar qualquer erro nas informações ou no código, não exite em informar nos comentários para que eu possa corrigir.

3 comentários : 17.05.2007 11:35 PM

Problemas acontecem... principalmente com discos rígidos

É pessoal, a coisa tá feia. Fazia tanto tempo que isso não acontecia comigo, que já até tinha esquecido que poderia acontecer. O hd do meu desktop queimou. Junto se foram diversas fotos, alguns documentos e uns esqueletos de projeto… com certeza uma perda, mas acho que nada muito prejudicial – bom pelo menos não que eu me lembre no momento. Pelo menos ainda tenho o notebook para trabalhar, mas já estava querendo atualizar ele para o Ubuntu 7.04, muitos já me disseram que está muito bom. Se ele reconhecer a minha wifi sem eu ter que entrar na linha de comando eu tiro o chapéu ;-).

Bom então estou eu agora aqui fazendo backup das últimas coisas que me restam no notebook para depois atualizá-lo para a última versão do Ubuntu. E enquanto isso resolvi escrever alguma coisa por aqui, já que hoje era um dos dias que tinha tirado minha noite para escrever sobre Rails, mas devido a esse imprevisto não foi possível. Bom se tudo der certo – pois sai de baixo né, quando chove m…, nunca é garoa, já dizia um amigo meu – no próximo post vou falar sobre algo que estudei no mês passado que é o has many through e compará-lo com o has and belongs to many. No começo achei muito confuso, mas depois que entendi o conceito ficou tudo muito claro e sem dúvida é uma ótima funcionalidade que foi adicionada no Rails 1.2 ou 1.1, não me recordo exatamente agora.

Pelo menos uma coisa boa aconteceu hoje! Estava eu blogeando por aí numa hora vaga no trabalho, quando caí no blog do Luciano Ramalho. Luciano é um cara sensacional, bebemos várias cervejas juntos já. Conheci ele a uns dois anos atrás quando veio para a 3a. Semana de SL aqui do Rio de Janeiro, na Unirio. Até então conhecia ele como O CARA do Zope aqui no Brasil. Hoje descobri que ele está dando umas boas estudadas também no Ruby e no Rails! Tem até foto do cara com o Matz :-). TODO LIST: Conversar com o Luciano assim que possível.

0 comentários : 09.05.2007 11:31 PM

Finalmente, ao assunto principal!

Resolvi criar esse site para divulgar um pouco de meu trabalho profissional e também para ter um espaço próprio onde pudesse publicar os projetos em que estou envolvido, bem como trocar dicas e informações.

Sou um aficionado por tecnologia, desenvolvimento e software livre. Já passei por inúmeras (mais de uma dúzia talvez) linguagens de programação, mas há aproximadamente um ano conheci a linguagem Ruby e foi amor à primeira vista ;-). Dedico muito do meu tempo ao aprendizado do framework MVC de desenvolvimento para web Rails, que é escrito em Ruby. Espero poder postar aqui algumas dicas e macetes sobre o Rails, que cada vez me deixa mais fascinado. Atualmente, posso me dizer feliz por trabalhar cem porcento com tecnologias livres. Mais sobre o meu perfil você encontra na seção Sobre.

Recentemente, encerrei o curso de Bacharel em Sistemas de Informação pela UNIRIO. Do meu trabalho de conclusão, que está disponível na seção Artigos, resultou minha palestra “Nos Trilhos com Rails” apresentada no último FISL, mês passado. Na mesma seção deixarei outros artigos e palestras que realizei nos últimos anos assim como pretendo continuar atualizando-a com meus trabalhos futuros.

Sejam todos bem vindos e espero que voltem sempre :-).

Obs: assim que possível o RSS estará disponível para ficar mais fácil o acompanhamento do site.

0 comentários : 02.05.2007 10:47 PM

Está difícil no Rio de Janeiro

Fugindo um pouco da idéia inicial desse site, fica aqui um desabafo sobre a atual situação da cidade onde vivo. Há mais ou menos um mês, no show do Roger Waters na Apoteose, foi-se o meu celular… E agora, no último sábado, foi-se a minha carteira, furtada na Lapa por um meliante qualquer. E por R$50,00 que havia lá dentro foi-se junto cartão de banco, crédito, carteira de motorista etc e que, diante de todo trabalho que terei para recuperá-los, valem mais que o dinheiro.

Por esse e outros motivos está cada vez mais complicado por aqui e cada vez mais penso em ir para uma cidade onde as coisas ainda não estejam no nível em que estão no Rio de Janeiro.

0 comentários : 01.05.2007 10:34 PM