Publicado por Vinicius Manhães Teles há
aproximadamente 1 mês.
Venha participar do Hora Extra, nosso chopp semanal!
Amigos do Rio de Janeiro, vocês estão todos convidados a fazer hora extra na segunda-feira em nosso escritório no Leblon. O escritório é o Informal na Conde de Bernadote (perto da Cobal e da Sendas). O pessoal chega para trabalhar umas 19:30h-20:00h
Freqüentadores assíduos:
Rafael Lima - BielSystems/Myfreecomm
Eu - Improve It
Marcos Tapajós - Improve It/Surgeworks
André Kupkovski - Improve It (Projeto Lucidus)
Alexandre Novello - Grupo Santa Isabel (Projeto Lucidus)
Sylvestre Mergulhão - Redeparede
Henrique Bastos - Myfreecomm
Freqüentadores não tão assíduos e convidados:
Marcelo Alvim - Grupo Santa Isabel (Projeto Lucidus)
Marcelo Murad - Living Consultoria
Felipe Barreto - Mobits
Juan Bernabó - Teamware
Bernardo Rocha - Surgeworks
Lucas Mundim - Intelitiva
Felipe Mesquita - Intelitiva
Guilherme Chapiewski - Globo.com
Vitor Pellegrino - Globo.com
Se tiver interessado, fale comigo ou com o Rafael.
Publicado por Vinicius Manhães Teles há
aproximadamente 1 mês.
Compramos templates imediatamente por R$ 500. E essa é só uma das 4 formas de se dar bem com o Be on the Net!
Há duas semanas descrevemos como designers poderiam trabalhar conosco para viabilizar os sites que começarão a ser criados sobre o Be on the Net a partir de dezembro. De lá para cá, conversamos com inúmeros designers que não só se interessaram pela proposta, mas também deram muito feedback útil.
Com base nas conversas, percebemos que o modelo inicial que havíamos idealizado não seria dos melhores. Aproveitando o feedback recebido e ponderando mais sobre o assunto, definimos uma nova forma de atuação que nos parece melhor e ao mesmo tempo mais simples. Conversas com designers nos últimos dias confirmaram que este caminho é mais promissor. Então, vejamos as quatro formas de se dar bem com o Be on the Net, caso você seja um designer.
Estamos comprando templates. Até o dia primeiro de dezembro, aquele que estiver a fim de criar um template para o Be on the Net poderá fazê-lo e nos enviar. Se gostarmos (e queremos muito gostar), iremos comprar seu template pelo valor de R$ 500,00. Se você fizer vários e nós gostarmos, compraremos todos eles, cada um ao preço de R$ 500,00. Detalhes operacionais virão mais abaixo.
O acordo para a compra de um template implica que ele será disponibilizado para os clientes do Be on the Net como Creative Commons Atribuição 2.5 Brasil. Assim, eles poderão adotar o template que preferirem para seu site e não terão que pagar nenhuma taxa de setup ou adesão para começarem a usar o Be on the Net. Basta escolher o template e colocar o site no ar. Sendo que há um detalhe essencial. Seu template, uma vez comprado por nós, ficará exposto no site do Be on the Net e o seu nome estará lá, como autor do template. Isso não é tudo. Seu nome terá um link para o seu site, blog, ou onde quer que você exponha seu trabalho. Queremos que todos saibam quem fez cada template e tenham condições de chegar até você facilmente. Em suma, queremos promover seu trabalho!
Quando um cliente do Be on the Net escolher seu template e o site dele for ao ar, seu nome aparecerá na parte inferior de cada uma das páginas do site como responsável pela criação daquele layout. Mais uma vez, seu nome estará com um link para a sua página na internet. Não precisa dizer que o objetivo, de novo, é te promover. Detalhe importante é que seu page rank no Google tenderá a subir, já que haverá um link para o seu site em cada uma das páginas de cada um dos sites que usarem seu template. E, quanto melhor o template, mais clientes do Be on the Net tenderão a usá-lo. Só para dar idéia dos números, o Be on the Net só será lançado mês que vem e a fila de espera já tem quase 200 pessoas!
Este é um pouco mais de médio prazo, mas é importante saber desde já. Dentro de alguns meses lançaremos planos de revenda. Através deles, você poderá fazer sites para seus clientes usando a infra-estrutura do Be on the Net, mas com condições especiais para você. Com isso, você poderá se livrar da parte técnica de fazer um site para um cliente, dedicar-se apenas ao design e ainda faturar uma grana através de mensalidades. Detalhes sobre a forma de operacionalizar isso virão em um futuro próximo, mas acreditamos que esta modalidade pode vir a se tornar uma forma fabulosa de gerar receita para designers em todo o Brasil. E o que é melhor, receita repetível, através de mensalidades.
Não queremos que clientes e designers tenham que se preocupar com a infra-estrutura de um site, por isso cuidamos desta parte.
Nossa visão do Be on the Net segue algumas premissas bem definidas:
Não queremos que clientes e designers tenham que se preocupar com a infra-estrutura de um site, por isso cuidamos desta parte.
A melhor forma de produzir sites bonitos e funcionais é atraindo os melhores designers para formarem um ecossistema em torno do Be on the Net. Para isso, é essencial que eles possam se beneficiar tanto quanto possível do Be on the Net e possam se promover através dele.
A Improve It deve fornecer uma alternativa simples e rápida para que os clientes do Be on the Net coloquem um site no ar. O uso de templates é importante neste sentido. Mas, é essencial que clientes do Be on the Net e designers tenham liberdade para interagir e fechar acordos de serviço entre si, para que os clientes interessados em layouts personalizados possam tê-los. Nada melhor que fazer com que estes clientes tenham acesso fácil às pessoas que bolaram os templates que estão no Be on the Net, as quais, portanto, já conhecem o modelo de trabalho e sabem o que precisa ser feito.
Tá interessado? Quer saber quais os próximos passos?
Se você se interessou, há três coisas a fazer.
Entre em contato conosco para nos informar que você tem interesse em preparar um template para o Be on the Net. Ao fazer isso, envie-nos todas as informações de contato que você tiver. Para nós é particularmente importante, além do email e telefone, o seu usuário no Skype. Se não tiver um, por favor crie e assegure-se de ter um alto-falante e microfone conectados ao computador. Skype é uma de nossas formas de comunicação preferida, por ser bastante eficaz e não ter nenhum custo. É essencial que você envie seus contatos, para que nós também possamos te enviar os nossos emails, Skype, GTalk etc. Queremos que você nos encontre facilmente para tirar qualquer dúvida que apareça.
Você precisará conhecer os HTMLs que compõem um site típico no Be on the Net. Para isso, criamos um projeto no GitHub, onde você encontrará os arquivos e instruções necessárias. Se você não sabe o que é o GitHub, não se preocupe, basta fazer o download dos arquivos. Mas, se você sabe usar o GitHub, acompanhe o projeto e faça um clone dele.
Mãos à obra. Lembre-se de que precisamos receber os templates até primeiro de dezembro. É possível que aceitemos novos templates após esta data, mas a prioridade é primeiro de dezembro.
Neste momento já há um grupo de designers que está trabalhando na criação de templates. São aqueles com os quais conseguimos conversar nas últimas duas semanas. Nosso objetivo é ter o máximo de templates possível até primeiro de dezembro. Pode parecer que trata-se de uma concorrência, dada a quantidade de pessoas que já têm interesse nisso e as próximas que terão a partir deste post. Entretanto, o objetivo não é criar uma competição. Não queremos que ninguém seja eliminado. Pelo contrário. Queremos, tanto quanto possível, aproveitar o trabalho de todos.
Isso não significa que vamos aceitar trabalhos que estejam aquém do que desejamos, mas sim que iremos dar o máximo de orientação a vocês para que compreendam o que estamos buscando. Se alguém nos submeter algo que não aprovarmos, não iremos simplesmente rejeitar. Vamos explicar o que pode ser feito para chegar onde desejamos. Vamos ajudar cada uma de vocês ao máximo para que o trabalho chegue ao ponto de ser aprovado e seja incorporada na base de templates do Be on the Net. Acredite, se você quiser participar disso, você pode e nós vamos ajudar no que for necessário.
Até pouco tempo atrás eu acreditava fortemente que o Be on the Net poderia fazer uma enorme diferença nos negócios dos nossos clientes. Mas, cada vez mais, percebo que isso também vale para os designers que embarcarem neste projeto, sobretudo os que fizerem isso logo. Acreditem, vocês terão muitos, muitos, muitos negócios pela frente! E, no que depender de nós, faremos o que estiver ao nosso alcance para que isso aconteça. Então, mãos a obra!
Publicado por Marcos Tapajós há
aproximadamente 1 mês.
Acabei de fazer um post sobre as minhas impressões após usar um pouco o CouchDB. Dessa vez fiz o post em inglês mas pretendo traduzir assim que eu tiver mais tempo e menos tendinite. Quem quiser ir conferindo o original:
Publicado por Marcos Tapajós há
aproximadamente 1 mês.
Tem gente "chutando" Demeter.
Minha idéia era escrever um post dessa série por semana, mas infelizmente uma tendinite tem me atacado e está meio complicado ficar escrevendo muito. Por isso mesmo esse segundo artigo será bem compacto. Todos os códigos citados nesse post fazem parte de um projeto How Test que está disponível em: http://github.com/tapajos/how-test
Nesse post a minha idéia é mostrar de forma bem simples como funciona um mock object no Rspec e no Test::Unit(usando o mocha).
Para exemplificar eu vou fazer uma crítica a uma construção que eu tenho visto muito em diversos projetos e que viola a Lei de Demeter(Principle of Least Knowledge). Ou como dizia, o meu amigo, Bernardo, "Tem gente chutando Demeter!".
Vamos a um exemplo dessa violação:
Supondo que você tenha um modelo Account que se relaciona ao modelo User.
class Account < ActiveRecord::Base
belongs_to :user
end
O grande problema é que nesse tipo de construção você está "conhecendo" coisas demais e certamente vai pagar por isso num futuro breve, quando você precisar fazer um refactoring e tiver que mudar em vários lugares. Imagina se o User deixa de ter um "name" e passa a ter um "full_name".
Para resolver esse tipo de problema basta você concentrar esse "conhecimento" no seu modelo Account da seguinte forma:
class Account < ActiveRecord::Base
belongs_to :user
def user_name
user.name
end
end
OBS: Vou me concentrar apenas no problema com o nome e não vou me preocupar em validar se o relacionamento foi estabelecido.
Bem, finalizada a crítica a uma falha de design OO vamos ao objetivo desse post, mostrar como *EU* testaria esse problema.
Como eu falei no post anterior, não gosto muito de usar fixtures para testes unitários e por isso mesmo vou apelar aos mock objects. Se você não está muito familiarizado com mocks sugiro que pare por aqui e leia um pouco mais sobre isso. Uma referência rápida pode ser o wikipedia mas realmente sugiro que vá mais adiante.
Testando usando RSpec(usando o framework de mock padrão):
before(:each) do
@account = Account.new
@user_mock = mock_model(User)
@account.stub!(:user).and_return(@user_mock)
end
describe ".user_name" do
it "should delegate to user.name" do
@user_mock.should_receive(:name).and_return("Tapajós")
@account.user_name.should == "Tapajós"
end
end
Testando usando Test::Unit com mocha:
setup :create_model
def test_user_name
@user_mock.expects(:name).returns("Tapajós")
assert_equal "Tapajós", @account.user_name
end
private
def create_model
@account = Account.new
@user_mock = mock("User")
@account.stubs(:user).returns(@user_mock)
end
Explicando...
Em ambos os casos eu preciso que a minha account simule o relacionamento com User e para isso eu vou retornar um mock object. Isso é feito pelas linhas:
RSpec:
@account.stub!(:user).and_return(@user_mock)
Test::Unit:
@account.stubs(:user).returns(@user_mock)
Após o setup ou o before, temos um modelo @account onde o @account.user retorna um mock.
Feito isso eu preciso configurar o meu mock, isto é, informar que ele receberá uma mensagem name (chamada do método .name) e essa retornará o meu nome(sim, sou egocêntrico). Isso é feito pelos métodos "should_receive" e "expects" conforme as linhas abaixo:
Depois que nossos mocks foram devidamente configurados podemos, finalmente, fazer nossa verificação do retorno, isto é, simplesmente chamar nossos métodos conferir o retorno. Pronto teste feito com sucesso, sem precisar recorrer a banco de dados nem configurar fixtures.
Nesse momento deve ter surgido uma dúvida: "Porque uma hora você usa stub! e outra um should_receive?"
A resposta é bem simples, o stub! não faz um verify no final enquanto a outra chamada sim. Na pratica isso significa:
Stub! ou stubs
Quando eu uso stub!(ou um Stubs) eu estou configurando o meu modelo account para responder pelo método user retornando o @mock_user porém não me interessa quebrar esse teste caso você não chame esse método.
Should_receive ou expects
Quando eu uso should_receive(ou um expects) eu estou configurando o meu mock user para responder pelo método name porém caso esse método não seja chamado eu devo quebrar meu teste, pois isso seria um comportamento indesejável.
Porque usar mocks?
Ao contrário do que muita gente pensa o uso de mocks não é um bicho de 7 cabeças, é bem simples. Na verdade testar é algo simples, desde que você tenha domínio do ferramental e os mocks são realmente úteis em diversos casos.
Imagina que o seu sistema precise fazer consultas a uma api publica do Yahoo e para isso você tenha criado uma classe de consultas. Você não vai querer(nem o Yahoo vai gostar) ir lá no servidor toda vez que você rodar os seus testes. Isso tornaria os seus testes lentos e impossível roda-los offline. Nesse caso você resolve seu problema "mockando" essa classe.
Publicado por Vinicius Manhães Teles há
aproximadamente 1 mês.
Estamos começando a produzir uma série de screencasts que servirão de apoio ao Be on the Net. Neste sentido, hoje fizemos um pequeno piloto e o resultado encontra-se abaixo. Ainda é algo muito preliminar, mas para algumas poucas horas investidas e considerando nossa pouca experiência na produção deste tipo de conteúdo, ficou melhor que o esperado.
Em tempo, o site em questão é o da fotógrafa Patricia Figueira. Quanto ao screencast, eu fiz o roteiro e o Leandro fez todo o restante, inclusive a locução. Valeu, Leandro! :-)
Publicado por Leandro Mello há
aproximadamente 1 mês.
Estamos procurando um grupo de excelentes designers com quem possamos manter um relacionamento duradouro. E você pode ser um deles.
Nosso produto em desenvolvimento, Be on the Net, está avançando rumo a seu lançamento.
Se depender do número de pessoas interessadas nele, podemos dizer que já somos um potencial sucesso: hoje, mais de cento e cinqüenta pessoas aguardam ansiosamente em nossa lista de espera para terem um site lindão só seu.
Assim que o Be on the Net for lançado, atenderemos estas pessoas uma a uma, para dar a elas layouts simples, belos e personalizados. Para a fila fluir, vamos adotar a seguinte prática: o cliente da vez vai passar dois maravilhosos dias em contato conosco para, todos juntos, darmos saída ao design lindão dele. Mas só isso: dois expedientes. Depois disso, venha o próximo da fila. Para ela fluir, como dissemos.
Puro CSS
Para a fila fluir mais ainda, é aí que você entra. Be on the Net é um aplicativo web que já tem HTML e JavaScript prontinhos para o usuário, só precisando de seu CSS para deixar o site com a cara do cliente. Portanto, estamos a partir de agora convocando webdesigners de todo o Brasil para faturar dindim com o que sabem fazer de melhor: puro CSS.
A dinâmica e as possibilidades
Funciona assim: os designers desse Brasil — você, por exemplo — vão oferecer, assim como nosso designer, um freela de dois dias para uma pessoa da nossa lista de espera. Ao final de dois expedientes, o cliente sai com design pronto, paga um troquinho atraente para ele, você sai com grana e a Improve it, com uma comissãozinha simbólica. Simples assim.
E é aí que entram as possibilidades! Há várias maneira de você fazer grana com o Be on the Net!
Você pode:
Passar seu mês ajudando-nos com design:
Se você é um freelancer que tem bastante tempo disponível para pequenos sprints de dois dias, pode faturar com a quantidade de layouts por mês — supondo que você trabalhe dois dias da semana, passe um dia fazendo a faxina e passe os últimos dois dias com o cliente seguinte, são dois clientes por semana, oito por mês. Um único layout dá um troquinho, mas oito dão uma grana! Dá para basicamente viver de CSS para Be on the Net.
Virar uma máquina de produzir design:
Se você se considera uma máquina superpoderosa de design, pode realizar a proeza de completar um layout em um único dia. Neste caso, acontecem mais coisas boas: o cliente leva um desconto, mas você não recebe menos: recebe a mesma coisa que em dois dias. E em vez de oito layouts por mês, pode conseguir até dezesseis. Fatura o dobro.
Revender Be on the Net para seus clientes:
Seja você freelancer ou empregado numa agência de imagem ou design, você pode incorporar à sua carteira de clientes o Be on the net. Ou seja, faz (ou refaz) os sites para seus clientes com seu CSS bonitão sobre nossa estrutura. Neste caso, você nos paga as mensalidades dos Be on the Net’s de seus clientes e faz lucro com o seu preço de revenda. E não precisa ficar que nem um tarado fazendo um layout por dia.
Se você e seu cliente entrarem em comum acordo de ceder o design como Creative Commons e o dispolibilizar como template para futuros clientes no site do Be on the Net, vocês dois são recompensados e saem ganhando ainda mais (detalhes adicionais nas próximas semanas).
Estas são as formas mais básicas de ganhar dinheiro. Mas há mais possibilidades! E se você faz vários layouts por mês em um dia cada um, e seus clientes todos concordam em ceder como Creative Commons? Putz, enxurrada de dinheiro! E por aí vai.
Que poderes você deve ter
Simples: os poderes que qualquer ninja teria. :-) O Be on the Net funciona sobre um código XHTML 1.0 Strict válido e um JavaScript impecável. Para você figurar entre nosso grupo seleto de designers, gostaríamos que tivesse o mesmo carinho com seu design, orientando-o plenamente aos web standards. O que você precisa:
Usar CSS3 válido;
Esquecer tabelas. O HTML já vem pronto, totalmente tableless, para você estilizar com a fluidez que quiser;
Esquecer Flash. Flash é muito, muito lindo, e só. O Be on the Net não usa Flash, só puro CSS;
Fazer um design totalmente cross-browser. IE6 e 7, Safari, Firefox, Opera, Flock, Chrome, Camino, Konqueror, e por aí vai (mas fique à vontade para fazer firulas não-essenciais nos que forem standards-compliant, hehe!);
E claro, ter um layout final de dar água na boca. Esquema de cores agradável, tipografia legível, diagramação de encher os olhos, e a bela e sempre bem-vinda simplicidade. Que beleza.
Para terminar... por enquanto
Ainda há muito a decidirmos sobre dindim. O preço que o cliente vai pagar nestes dois dias de setup, o desconto que ele vai levar se terminar em um dia, o que você vai ganhar a cada trabalho e o que vamos ou não receber como comissão, isso tudo ainda está em definição.
O que buscamos é alinhar interesses — o que o cliente paga é leve e bem atraente; ele ganha o Be on the Net dele logo, sai feliz o quanto antes e colhe os lucros de seu novo site em pouco tempo; o tempo curto inspira-o a pensar em simplicidade e a se preparar para ajudar você, no melhor estilo “menos é mais”; você recebe uma baita grana associando criatividade de ação, qualidade e quantidade — se você é bom, queremos você por perto como freela mais vezes, ora! :) —; ganha nome em nosso site; e nós multiplicamos nossas mãos ganhando um montão de parceiros — e todos nós garantimos o leitinho das crianças no processo! ;)
Vamos adorar lucrar fazendo da web um lugar melhor. E seu cliente vai adorar você pelo site lindão.
Espalhe (bem) a notícia, divulgue por todos os meios: estamos procurando um grupo de excelentes designers com quem possamos manter um relacionamento duradouro. E você pode ser um deles. Se estiver interessado(a), entre em contato — links para seus melhores trabalhos serão muito bem-vindos!