E a onda de LOL<alguma-coisa> (ver lolcats) chega à programação: LOLCode
HAI
CAN HAS STDIO?
PLZ OPEN FILE "LOLCATS.TXT"?
....AWSUM THX
........VISIBLE FILE
....O NOES
........INVISIBLE "ERROR!"
KTHXBYE
I hear there’s rumors on the, uh, Internets
Durante meu primeiro estágio como programador web, pediram para eu fazer pequenas alterações na área dinâmica de um site. Eram uns scripts bem simples, que liam informações do banco de dados e as exibiam nas páginas em HTML. Se houvesse algum problema e o script não conseguisse completar a operação, um email de alerta era enviado para o suporte da empresa.
Depois de fazer as tais alterações, eu, NA INOCÊNCIA e com medo de fazer alguma besteira e deixar o site fora do ar, resolvi colocar meu email pessoal na lista de endereços que recebiam as mensagens de erro.
Mais de 3 anos depois, a empresa foi vendida, o site (aparentemente) foi abandonado e toda vez que alguém acessa uma página do site, uma mensagem de erro é prontamente entregue na minha caixa de entrada.
Oséias perde.
OLX (de OnLine eXchange) é um site de classificados que tem tudo para se tornar um dos líderes do segmento. Lançado em 2006 pelo criador do Arremate.com, Alec Oxenford, e seu sócio Fabrice Grinda, o site possui versões para mais de 30 países e está disponível em português, espanhol, inglês, francês e italiano.
Seguindo o formato do craigslist, o OLX possui uma interface bem simples, com áreas específicas para as principais cidades de cada país e dezenas de categorias de anúncios, incluindo uma área para vagas de empregos e cadastro de currículos.
A navegação pelo site é bem fácil e o processo de criação de anúncios é muito rápido, contando inclusive com um editor WYSIWYG. As páginas são otimizadas para buscadores e possuem URLs amigáveis e uso adequado de tags de título, o que em pouco tempo deve se reverter em um elevado número de acessos vindos de sites de busca. Enquanto escrevo esse texto, o domínio olx.com.br possui pouco mais de 16.000 páginas indexadas pelo Google.
No Brasil existem algumas dezenas de sites no segmento de classificados, com destaque para Balcão.com e Classificados Brasil. Recentemente a Globo.com lançou o Zap e iniciou uma forte campanha de marketing, inclusive com anúncios na TV, mas por se tratar de um serviço pago, acredito que não venha a se tornar um forte concorrente (dando uma olhada agora, percebe-se a pouca quantidade de anúncios disponíveis). Tem ainda o MercadoLivre, que apesar de cobrar pelos anúncios, com certeza é a primeira opção para a maioria das pessoas que procuram negociar algum item pela internet. De acordo com o Alexa, o MercadoLivre está em 178° no ranking de sites mais acessados no Brasil.
Links relacionados:
Sites de classificados grátis
Sobre o OLX
Entrevista com o Fabrice Grinda, um dos fundadores do OLX
Duas coisas que eu odeio:
1) ser obrigado a me cadastrar em sites para poder acessar serviços simples, como ler uma notícia ou fazer um download.
2) não poder excluir completamente o meu cadastro na hora que eu bem entender.
Solução para o problema 1: bugmenot ou uso de dados falsos (viva o mailinator).
Solução para o problema 2: atualizar o cadastro com dados falsos e, na impossibilidade de alterar o email, criar um filtro marcando todas as mensagens recebidas daquele site como spam.
Did you know these basic Firefox tips?.
Algumas coisas que eu não sabia que era possível fazer:
TinyURL é um site que oferece o serviço de encurtamento de URLs. Na página principal do site, eles dão como exemplo o endereço:
http://www.mapquest.com/maps/map.adp?ovi=1&mqmap.x=300&mqmap.
y=75&mapdata=%252bKZmeiIh6N%252bIgpXRP3bylMaN0O4z8OOUkZWY
7NRH6ldDN96YFTIUmSH3Q6OzE5XVqcuc5zb%252fY5wy1MZwTnT2pu%2
52bNMjOjsHjvNlygTRMzqazPStrN%252f1YzA0oWEWLwkHdhVHeG9sG6cMrf
XNJKHY6fML4o6Nb0SeQm75ET9jAjKelrmqBCNta%252bsKC9n8jslz%252fo1
88N4g3BvAJYuzx8J8r%252f1fPFWkPYg%252bT9Su5KoQ9YpNSj%252bmo
0h0aEK%252bofj3f6vCP
que poderá ser substituído por algo como:
http://tinyurl.com/6
Bem melhor, não? Eu não acho.
Existem dois problemas com esse tipo de serviço. Primeiro, você nunca sabe qual é o endereço real do link. Somente após visitar a página é que você vai descobrir se o conteúdo corresponde com a descrição do link, se é uma página que você já acessou ou uma página que você simplesmente não queria acessar.
O segundo problema é que, se o TinyURL tiver algum problema técnico, adeus link. Nesse exato momento, por exemplo, estou tentando acessar um link que vi em um blog e que usa o serviço Peqno (clone brasileiro do TinyURL), mas não consigo porque o Peqno está fora do ar.
Obviamente não há nada de errado em encurtar uma URL para mandar para um amigo via email ou IM, mas para publicar um link na web não me parece uma boa solução. Nesses casos, mesmo que a URL original seja muito grande, ela acaba sendo mais “amigável” do que a encurtada.
Para mais informações, leia o blog do Matt Cutts, funcionário do Google que freqüentemente publica dicas valiosas sobre SEO.
Quando ocorre algum problema no Windows e o Explorer é reiniciado (somente o Explorer, não o computador), alguns ícones de programas que estavam no system tray (ao lado do relógio) podem desaparecer, mesmo quando o programa continua em execução.
A solução tosca é dar ctrl+alt+del, encerrar o processo e abrir o programa novamente. Funciona, mas dependendo da aplicação você pode perder dados ou causar problemas mais sérios.
Um programinha que resolve isso é o Win-Res-Q, que exibe uma lista dos processos sendo executados e permite que você restaure as janelas perdidas. Ele não precisa ser instalado, basta baixar os 140KB e executar.
Uma pessoa me perguntou por email “por que usar um framework de desenvolvimento e em que ele vai ajudar o programador?”. Escrevi uma resposta provavelmente incompleta, mas vou postar aqui, pois acho que muita gente tem essa dúvida e, ao buscar pelo assunto no Google, não consegui encontrar uma boa explicação em português.
——————————————————-
Basicamente a função de um framework é tornar o desenvolvimento de sistemas mais simples, rápido e organizado. Para fazer isso, o framework oferece uma estrutura e uma série de padrões para o desenvolvimento, além de uma biblioteca de código e outras facilidades.
Quando eu falo em estrutura, me refiro à organização de arquivos e de código. Por exemplo, no CakePHP, todos os layouts (que são arquivos em HTML) devem estar localizados no diretório “/views/layouts” e todos os arquivos CSS devem estar no “/webroot/css”. Além disso, se eu quiser escrever uma função pra realizar uma tarefa X, existe um lugar específico no sistema pra eu colocar essa função. Isso obriga o programador a manter o sistema organizado.
Quanto aos padrões de desenvolvimento, me refiro por exemplo ao MVC, que é um design pattern para abstração de dados e provavelmente é o conceito mais importante do Cake. Não vou entrar em detalhes, mas tem uma explicação legal aqui.
Ao usar a estrutura e os padrões do framework, o programador evita que o sistema se torne bagunçado e de difícil entendimento, o que é relativamente fácil de acontecer quando se programa “na unha”.
Um bom framework oferece também uma biblioteca de código para realizar as tarefas mais comuns, como acesso a banco de dados, manipulação de sessões, AJAX, etc. Tudo pronto pra usar, bastando o programador ler as especificações e entender o funcionamento.
Acredito que em sistemas de pequeno porte o uso de um framework seja dispensável, mas em sistemas mais complexos ele é essencial. Ao usar um framework você pode focar no problema do cliente ao invés de perder tempo planejando como o sistema vai se comportar internamente.
Seguem alguns links com mais informações:
CakePHP - A “tasty” solution for PHP programming
Top 13 reasons to use a web framework and never look back
When you shouldn’t use a framework.
Atualização em 2007-06-04: Foi lançado no mês passado o livro Frameworks para Desenvolvimento em PHP, que parece ser uma boa referência para quem ainda não se decidiu sobre qual framework usar. Do site do autor: “O livro mostra aos leitores diversos frameworks de desenvolvimento que agilizam o processo de criação e manutenção de aplicativos web. Cada framework é apresentado na prática por meio do desenvolvimento de um aplicativo, de modo que o leitor pode ver sua serventia em um caso real. Neste livro, são apresentados os frameworks mais utilizados: CakePHP, Symfony, Zend Framework, CodeIgniter e Prado.”.