quarta-feira, novembro 18, 2009

Crie seu próprio sítio virtual em uma hora por R$30,00


Hourglass
Uploaded by darque9
Em apenas uma hora criei e coloquei no ar um domínio próprio para este sítio. Custou só R$30,00, o preço do domínio. Foi mais rápido do que eu pensava, mas isto porque eu já sabia tudo que tinha que fazer.

São tantos pequenos detalhes, tanta coisa que tem saber a priori, que eu teria demorado dias se tivesse que aprender como fazer. É o tipo de conhecimento legal de compartilhar. Para fazê-lo, é só seguir os passos abaixo.

Crie um blogue no Blogger.com

Visite Blogger.com e crie um blogue para você. Escolha nome, template, configurações etc. Cheguei a pensar em hospedar meu próprio blogue com o excelente WordPress, mas seria mais uma encheção de saco para configurar, manter, atualizar etc. O pouco tempo que tenho para o blogue quero gastar produzindo conteúdo, mas, nerd que sou, é difícil me conter para não ficar um tempão futucando a tecnologia.

Escolha seu domínio

Considerando que você quer um domínio .br, vá no Registro.BR e na caixa de busca que tem lá, vá entrando os domínios que deseja.

várias terminações possíveis, cada uma significa uma coisa que ninguém sabe o que é. A dica é: se o nome que deseja estiver disponível, escolha a .COM.BR pois é a mais usada. Este meu .PRO.BR, escolhi porque parece de profissional, mas oficialmente é de professor.

Neste ponto em que estamos, você ainda não registrou o domínio, apenas verificou que ele está disponível.

Configure o DNS para seu domínio

Pule esta seção. Agora o próprio Registro.BR te deixa registar os servidores DNS no site deles.

O Domain Name Server (DNS) é um tipo de servidor na internet que mapeia um nome, como mosquito.pro.br, para o computador específico onde ficam as páginas. Você não precisará colocar um servidor no ar. Como tudo na Internet, há uma opção 0800.

O EveryDNS é um servidor DNS gratuito, onde você pode registrar qualquer domínio. Crie uma conta lá e registre seu domínio. O que você tem que fazer mesmo é criar um campo CNAME associando o endereço www.seudominio.xxx.br ao ghs.google.com. É importante iniciar com www. Opcional é criar um campo do tipo A apontando para um endereço IP qualquer. Ficaria assim:

Registre seu domínio

Volte ao Registro.BR e compre de verdade seu nome de domínio. Caso ainda não tenha uma conta lá, precisará criar uma. Ao registrar, entre no campo de "name server" com os endereços ns1.everydns.com, ns2.everydns.com, ... Depois eles vão te mandar a cobrança por email. Será seu único custo.

Associe seu domínio ao blogue

Este é mole. Volte no Blogger.com, entre em Settings -> Publishing e selecione "Hospedar no meu próprio domínio". Preencha lá com www.seudominio.xxx.br.

Aí que fiquei impressionado com a rapidez de tudo. Cerca de meia hora depois de fazer isto, meu domínio novo já estava valendo. Tá certo que eu já tinha o blogue criado e contas em todos os serviços, teria demorado mais caso fosse tudo do zero. O fato é que mais tempo demorei para escrever este texto do que para colocar um domínio novo no ar:-).

Extras

O principal acabou, agora é um adendo avançado. Acho que já passa do ponto de coisas que pessoas não técnicas, mas inteligentes e motivadas, conseguem fazer.

Brinco que uma maneira boa de saber se uma empresa é tecnicamente competente é ver se é possível acessar o site dela sem colocar www. no endereço. Isto indicará pelo menos que eles têm alguém que entende das coisas cuidando da infra-estrutura.

Com esta configuração, eu não sei como configurar direto o mosquito.pro.br para o blogue. O EveryDNS não deixa o domínio principal ser um CNAME, o que tem sentido. Minha solução foi apontar para um endereço IP onde tenho um servidor, e lá configurar um host virtual do Apache para fazer um redirect permanente para o endereço com o www. De qualquer forma, eis como ficou minha configuração do Apache:
<VirtualHost *:80>
   ServerName mosquito.pro.br

   RewriteEngine on
   RewriteRule ^/(arquivos/.*)$ /mosquito/$1 [last]

   RewriteRule ^(.*)$ http://www.mosquito.pro.br$1 [R=permanent,last]
</VirtualHost>
A última linha é uma expressão regular boba que faz o redirect permanente de todas as chamadas para o mesmo endereço com www. O macete fica por conta da outra regra de rewrite que me dá algo muito útil que o Blogger não deixa. Agora posso publicar meus próprios arquivos, basta colocá-los em uma pasta específica e acessar em uma URL com /arquivos/.

quinta-feira, novembro 12, 2009

Desenvolvimento de software: O que sabemos que funciona?

O que não falta em desenvolvimento de software é achismo. Fulano acha isso. A nova moda de desenvolvimento diz aquilo. É um alívio ver destacado o que sabemos de verdade. Achei duas ótimas referências sobre fatos em Engenharia de Software.

Uma é esta apresentação abaixo, onde o autor começa discutindo o método científico, e depois lista vários fatos realmente conhecidos sobre desenvolvimento de software:


Outro artigo excelente é esta reportagem sobre pesquisas de engenharia de software feitas na Microsoft. O pesquisador Nachi Nagappan tem acesso livre a todos os grupos de desenvolvimento dentro da Microsoft. Cada um tem um jeito diferente de trabalhar: alguns usam asserções, outros testes unitários, outros trabalham distribuídos pelo mundo. Como a Microsoft registra cada modificação em seu sistema de controle de versões a cada bug aberto e a cada módulo modificado, Nagappan tem dados maravilhosos a seu dispor. E ele tira conclusões surpreendentes. Tá certo que talvez nem todo lugar tenha programadores da qualidade dos da Microsoft, mas acredito que dá para generalizar suas descobertas.

Como brinde, vale lembrar que outra fonte de fatos sobre experimentos é a coluna "Voz da Evidência" publicada na revista IEEE Software.

terça-feira, novembro 10, 2009

Agora em novo endereço!

Seja bem-vindo a nosso novo endereço:

www.mosquito.pro.br

Agora que resolvi dar um gás neste blogue, nada melhor que um domínio de verdade. Todos os links antigos continuarão a funcionar, assim como o RSS com as atualizações.

Selenium, a melhor ferramenta para testes de aplicações web


Avançando no Terceiro Milênio, não dá mais para conceber a construção de uma aplicação Web sem ter testes automatizados. Não fazendo testes automáticos, você estará jogando na mão de seu cliente a responsabilidade de testar a aplicação. Este é um trabalho que deveria ser seu. Não fazê-lo é um desrespeito com quem te paga. Estará também jogando dinheiro fora, pois quanto mais tempo você demora para descobrir um erro, mais custoso é consertá-lo.

E pra fazer testes funcionais de aplicações web, a ferramenta é uma só: Selenium. É tudo de bom: grátis, open source e bem feito. Um dos melhores projetos de código aberto que existem por aí.

O Selenium te permite testar um sítio virtual em vários browsers e sistemas operacionais. Testa Javascript e ajax. Nada melhor para achar problemas de incompatibilidade.

O Selenium na verdade não é um único projeto, mas um ecossistema de diferentes softwares que interagem entre si. Os principais projetos são:
Selenium Core
O núcleo do Selenium é uma biblioteca Javascript que te dá basicamente dois tipos de comandos. Um para comandar um browser: clicar em links, preencher formulários, fazer uma ação depois de aparecer algo na tela etc. Outro tipo é para fazer asserções, como se há um texto presente, se tal elemento está sendo exibido, se a página foi corretamente carregada etc. É a pedra fundadora do Selenium. Inspirado nos Testes Fit, você define os seus passos de testes em uma tabela – no caso em HTML – que é interpretada, executada e um relatório final com sucessos e erros é gerado.

Selenium IDE
Fazer as tabelas de teste do Selenium IDE é muito trabalhoso. Inventaram então este sensacional plugin para o Firefox. Com ele você pode gravar toda uma sessão de navegação e dar playback nela depois. Durante a gravação vários comandos extras são adicionados ao menu de contexto (botão direito) do Firefox. Estes comandos lhe permitem fazer asserções sobre o que está sendo gravado, como, por exemplo, selecionar um texto na tela e incluir uma asserção para verificar se o texto selecionado está presente.

É um barato ver seu navegador funcionando sozinho, como se fosse controlado por um fantasma. Chefes e clientes adoram. Apesar de serem gravados no Firefox, os testes podem ser executados em qualquer navegador e sistema operacional.

Selenium Remote Control
Aqui o negócio começa a ficar sério. O Selenium Remote Control te permite controlar um browser e fazer asserções de dentro de uma linguagem de programação. Você passa a ter acesso a loops, funções (para não repetir código de testes) e, o melhor, às bibliotecas da linguagem. Dá para rodar um teste e depois conectar direto à base de dados para verificar se os dados foram corretamente modificados.

Um workflow comum é você gravar um teste inicial no Selenium IDE, dar um "Save As" para ser gerada uma versão para a sua linguagem de programação favorita (Python, Ruby, Java ...) e então criar testes mais sofisticados. Seus testes podem ser executados dentro de um framework de testes, como os da família xUnit, e rodar dentro de seu processo de Integração Contínua.

Selenium Grid
Uma coisa temos que assumir: fazer testes comandando um browser é lento. Muito lento. Especialmente depois que se começa a ter mais de uma centena de testes. Tá certo que são testes funcionais, ninguém está esperando que obedeça às regras de velocidade de testes unitários, mas pegar um erro dias depois, é demais. O Selenium Grid vem resolver isto, ele distribui os testes para executarem em paralelo em vários computadores diferentes. É chato de configurar, mas a recompensa é grande quando os testes começam a demorar muito.

Já usei o Grid até mesmo para realizar testes de stress em uma aplicação. Tá certo que não é a ferramenta mas apropriada, mas dependendo de aplicação web é (mal) feita, pode ser a única alternativa.

E a boa notícia é que uma das melhores referências sobre o Selenium é em Português! É o excelente Blogue do Seu Enium. Lá você aprende do beabá a usar o Selenium Grid, passando pela divertida explicação do porquê do nome Selenium.

Outra coisa muito legal que se pode fazer com o Selenium é automatizar sua vida. Sabe as aplicações Web com uma terrível interface e que você é obrigado a usar? Aquelas que você tem que clicar em um milhão de lugares e preencher um monte de campos para chegar onde quer? Basta gravar um script no Selenium IDE que faz tudo pra você. O macete é nos momentos que preencher um dado específico (como uma senha), colocar um comando para o Selenium esperar um texto da tela seguinte para continuar a executar. Nada melhor para evitar uma tendinite.

Por fim, vale deixar o aviso de que o Selenium não é nenhuma bala de prata. É uma ferramenta fundamental para se entregar aplicações web de qualidade, mas não é trivial usá-lo bem. É preciso bons testers para pegar os casos que podem dar problemas e não testar apenas o caminho de execução principal. Colocar os comandos certos para que erros intermitentes não aconteçam é mais uma arte do que uma ciência. Se sua empresa tiver a mentalidade de que testers são imbecis (sim, isto existe), não vai funcionar. É preciso que os desenvolvedores trabalhem junto com os testers para que as aplicações sejam fáceis de testar. Testar widgets de algumas bibliotecas Javascript pode ser bem enrolado.

Não é por estar fazendo testes com uma super-ferramenta é que você poderá prescindir de seu cérebro.

segunda-feira, novembro 09, 2009

Navegação e SEO, ajude o Google a encontrar suas páginas


Caravel
Originally uploaded by Lajoso
Nesta SEOgunda aprenderemos sobre o terceiro aspecto mais importante para seu sítio virtual ficar bem na fita com o Google: a navegação.

Navegar pelos sítios virtuais pode ser assustador. Serpentes marinhas gigantescas podem devorar seu browsers. O mar ferverá quando se atravessar a linha do Equador. Do ponto de vista de SEO, a função da navegação é guiar seguramente o Google pelo seu sítio, permitindo que ele não só encontre todas suas páginas, como descubra quais são as mais importantes.

Primeira coisa é entender como os mecanismos de busca descobrem as páginas que irão catalogar. Cada buscador tem um software que funciona como se fosse um browser, chamado de robô. Ao visitar uma página, ele automaticamente grava a página e clica em todos os links presentes. Para cada nova página visitada, ele clica nos links e visita todas as novas páginas. Vai assim até visitar todas as páginas de seu site.

A principal característica deste robô é que ele é burro. Ele não preenche nenhum formulário, não entende Javascript e (quase) não entende Flash. A única coisa que ele faz é ver o texto de suas páginas e clicar em links.

O que nos leva à Primeira regra SEO de navegação: toda página de seu sítio virtual tem que poder ser acessada apenas clicando em links a partir da página principal.

Se o robô do Google não puder chegar na sua página apenas clicando, ela não será indexada e nunca poderá ser o resultado de nenhuma busca (tá bom, tá bom, falaremos de sitemaps no futuro). O robô não preencherá um simples campo de busca para poder achar suas páginas antigas. Se você, por exemplo, publica notícias que expiram, mantenha um link para toda notícia expirada. Uma delas pode ter exatamente aquela palavra usada em um busca e ser responsável por lhe trazer um novo usuário.

Cada vez mais os sites criam esquemas de navegação mais espertos, cheios de animações e guéri-gueris. Apesar de divertidas, estas navegações podem destruir o ranking de seu site nos mecanismos de busca. O robô não entende Javascript nem Flash, as principais tecnologias destas animações. Se não entende, ele não conseguirá navegar nem catalogar suas páginas.

Segunda regra SEO de navegação: seu sítio virtual tem que ter uma barra de navegação para suas principais seções feita em HTML simples, usando apenas a tag <A HREF>. Se você tiver uma navegação para seções em Javascript, é preciso que ela degrade graciosamente e continue a funcionar mesmo ao desligar o Javascript do browser. Se tiver uma navegação em Flash, faça uma outra em HTML puro no pé de cada página.

Tome cuidado se você usa um Content Management System (CMS) que lhe gera automaticamente uma navegação. Ainda outro dia fiz uma consultoria SEO e me deparei com um CMS cuja navegação de seções padrão era toda em Javascript. O CMS tentava ser esperto, tinha um código para identificar se era o robô do Google que estava visitando. Se fosse, era mostrada uma navegação em HTML simples em vez da em Javascript. Só que mostrar uma página diferente para o robô e para o ser humano é uma das práticas mais abominadas pelos mecanismos de busca. É chamada de Cloaking e é muito fácil de ser descoberta. Nunca faça isto. Mesmo que os desenvolvedores do CMS estejam fazendo o cloaking de boa fé, não tem como o Google saber disto. Uma bobagem assim pode remover todo seu site das buscas do Google!!!

Estas barras com links também permitem que o mecanismo de busca identifique as principais seções de seu site. Estas seções serão links a mais que você terá direito na página de resultados de busca. Veja por exemplo o excelente trabalho que o Google faz para achar as seções do jornal New York Times:


Claro que nem sempre o Google acerta. Por isto você precisa ajudá-lo com uma boa navegação e arquitetura de informação. Ou você acha mesmo que Naruto é uma das seções mais importantes da Wikipédia? :-)


Você não pode dizer explicitamente pro Google as seções de seu site, apenas sugerí-las através dos links de navegação. Se acontecer contigo alguma tragédia como esta das seções da Wikipédia, não precisa ficar desesperado. Crie uma conta gratuita no serviço de Webmaster Tools do Google e remova as seções que você não quer que apareça.


Aguarde agora nossa próxima emocionante e informativa SEOgunda. Semana passada aprendemos sobre o mais importante elemento HTML para SEO, hoje foi terceiro aspecto mais importante. O que falta?

E se você for ansioso demais para esperar o desenrolar da série para otimizar seu site, lembro que já fiz e estou fazendo consultorias SEO/SEM. Entre em contato no email PauloNeves(arroba)gmail.com

segunda-feira, novembro 02, 2009

SEOgunda, pois segunda é dia de SEO e SEM

Gastar uns trocados em Search Engine Optimization (SEO) e Search Engine Marketing (SEM) é um dos dinheiros mais bem gastos para o dono de um website. Todo sítio virtual é no fundo um investimento em marketing. De que vale este investimento se seus clientes não te acham?

Para que seus clientes te achem na Internet, é preciso que antes agradar a outro visitante: Mr. Google. Suas páginas têm que ser feitas para que o mecanismo de busca as entenda e tire o máximo de informações delas. Não é difícil, nem tem mágica. É só não deixar o cara que desenvolveu seu site fazer muita bobagem.

O problema é que tem muito enganador por aí. O sujeito que promete colocar seu site no primeiro lugar do Google está te enrolando. Resolvi então iniciar uma série de posts para contar os "segredos" de SEO e SEM. Como publicarei um artigo toda segunda-feira, intitularei a série: "Segunda é dia de SEO". Serão nossas SEOgundas!(Ai!)

Vou começar com a mais importante dica de SEO. É uma coisa simples, mas que pode fazer a grande diferença para acharem seu sítio pelos mecanismos de busca.

É a tag <title> do HTML. Nela você coloca o – supresa! &ndash título de sua página. O problema dela é que ninguém presta atenção neste título. Quando vê a página, ele só aparece na barrinha da janela do navegador. É fácil passar desapercebido que não foi corretamente preenchido. Veja por exemplo como aparece o título desta página:


A tag <title> é importante porque:
  • As palavras que estão ali têm um peso maior para o mecanismo de busca. Se o usuário buscar por uma palavra presente no <title>, sua página tem mais chances de ser retornada.

  • O texto do <title> aparecerá na página de resultados do Google. Coloque ali termos que convencerão ao usuário a clicar na sua página. Nada adianta sua página estar em primeiro lugar se o usuário clica na segunda.

  • O <title> é importante para usabilidade. Ele que permite diferenciar sua página entre as várias que estão abertas no seu desktop. O <title> também especifica como a página ficará guardada nos seus Favoritos.

Isto quer dizer que você vai colocar todo seu texto no <title> e sua página aparecerá no resultado de todas as buscas, certo? Errado. Somente os 65 primeiros caracteres são considerados pelo Google. Qualquer coisa depois será ignorada.

Uma boa regra para construir seu <title> é dividí-lo em 3 partes:

Título do conteúdo da página | Seção do site | Nome do site

Na primeira, vem o título da página mesmo. Por exemplo, se for uma notícia de um evento, você coloca aí a manchete. Se for um produto em um sítio de compras, coloque o nome do produto. Se for uma página sobre um pessoa, coloque o nome dela. A melhor maneira é fazer isto automaticamente no próprio sistema que gera as páginas. Algumas páginas mais importantes valem o esforço de fazer isto manualmente. Preencha o <title> com as palavras que o usuário pode usar para buscar pelo assunto da página. Lembre-se de colocar as palavras mais importantes sempre no início, pois estas são levadas mais em conta pelo Google.

Feche o <title> com o nome da seção de seu sítio onde está a página, isto pode dar um pista do assunto para o Google. Por fim coloque o nome do seu site no final, especialmente se ele tiver palavras que as pessoas usam para buscar.

Vamos fazer isto com um exemplo. Digamos que você está vendendo uma TV Sony Bravia. Você deve colocar o nome Sony Bravia, o nome do modelo, a seção e por fim o nome da loja:
Sony Bravia KDL-52V5100 - 52" LCD - 1080p (FullHD) | TV | Casas Maria
E aí tem um dos detalhes mais importantes. Na hora de preencher as palavras chave, é preciso se colocar no ponto de vista do usuário. Talvez Eletrodomésticos seja o nome do seu departamento que vende o produto. Só que ninguém busca por "Eletrodoméstico" no Google. O sujeito está querendo é uma TV. O nome de sua seção deve ser "TV" no singular.

Tentar pensar como seu usuário é um dos aspectos mais importantes para otimização SEO. Só que isto daí já é assunto para um outro post...

E se você for ansioso demais para esperar o desenrolar da série, aviso que já fiz e estou fazendo consultorias SEO/SEM. Entre em contato no email PauloNeves(arroba)gmail.com