Um ano de existência

17 Apr 2012 . category: article . Comments
#offtopic

Introdução

Neste post offtopic gostaria de falar um pouco sobre o site, o sistema que estou programando e a apresentação de alguns números.

Evolução

Inicialmente hospedei o site no wordpress.com, ainda estava trabalhando na Ci&t e viajando todos os dias e tinha muito tempo para fazer algo novo. Em agosto aluguei meu próprio espaço e movi minha instancia do wordpress para lá. Até então não podia utilizar o Google Analytics, portanto os dados que irei apresentar não foram computados desde abril mas desde de agosto.

Em setembro, no feriado da independência, pensei em criar meu próprio cms e assim poderia de forma mais fácil colocar no ar coisas que eu tinha em mente já que meu forte não é PHP. No inicio pensei em utilizar o framework Catalyst desenvolvido em Perl, gosto muito dessa linguagem e queria aprender coisas novas. Depois de algumas brincadeiras percebi que iria demorar demais para colocar alguma coisa em produção sendo que teria que aprender a usar um framework totalmente novo para mim. Além disso queria usar algumas tecnologia que iriam complicar um pouco mais o desenvolvimento, não por causa da tecnologia em si, mas sim por ser algo que sai da maioria dos padrões.

Em 14 de setembro iniciei o desenvolvimento do cms utilizando o framework Ruby on Rails, que conheço bastante, e o banco de dados nosql MongoDB. Em 18 de outubro coloquei a primeira versão em produção. Importei todos os posts e comentários que foram feitos no worpress para o novo sistema.

Após a primeira versão em produção comecei a criar funcionalidades e melhorias que eu tinha na planeja. Então criei meu próprio sistema de exibição das minhas apresentações, faço o upload de um arquivo pdf e a apresentação é exibida no site, inclusive em fullscreen utilizando as teclas padrões. Construí meu próprio sistema de snippets, “estendi” o markdown utilizado no sistema e criei um comando para exibir snippets, assim os exemplos dos artigos também serão exibidos em sua própria sessão. Adicionei um cadastro de links onde salvo meus favoritos e para facilitar o uso do recurso criei um plugin para o Firefox, onde é exibido um menu com uma lista dos favoritos dividido em tags, opção de adicionar um novo favorito e opção de adicionar um novo snippet.

O tempo médio de resposta do sistema para cada request está em torno de 170ms, e estou monitorando sempre para melhorar o sistema de cache do site. Neste contexto foi incorporado o uso do banco nosql Redis para meu próprio controle de pageviews. Tenho essa preocupação com o frontend também, por isso tenho todos os meus códigos javascript e css compactados e adicionados em um único arquivo, esse processo é realizado no deploy. Além disso também tenho adotado a utilização de css sprites.

Também criei uma funcionalidade para facilitar a criação de novos widgets que são utilizados na barra lateral. Os widgets criados até agora utilizando este recurso são:

  • Exibição de QRCode contendo informações de contato [RW]

    Na barra lateral é exibido uma imagem contendo um QRCode que é gerado a partir da administração do site. Após edição das informações a imagem é automaticamente gerada.

  • Últimos posts publicados [R]

    Este é um widget que não possui opção de edição. Seu conteúdo é gerado dinamicamente quando um novo post é publicado.

  • Últimos links adicionados aos favoritos [R]

    Este é um widget que não possui opção de edição. Seu conteúdo é gerado dinamicamente quando um novo post é publicado.

  • Exibição do meu status no Spoj [R]

    Criei um script que de tempos em tempos ele recupera minhas informações no Spoj e exibe através do widget na barra lateral.

Ainda há muitas coisas que quero fazer, mas já estou feliz com o resultado atual.

Dados de Visitas

Relembrando, os dados que serão exibidos foram computados após agosto de 2011. Aĺem disso, todos nós sabemos que números muitas vezes não dizem nada e que também são facilmente manipulados, porém estou tentando fazer com que essas informações sejam úteis para mim, Por isso adoto atitudes, como por exemplo, quando estou logado no sistema o código do analytics e outras ferramentas que utilizo para gerar estáticas são desativados, portanto minhas próprias visitas não contam.

Os 5 posts mais visitados

Título Visualizações
Desenvolvimento para Android - Carregando um banco SQLite criado externamente 351
Abandonando a IDE do Arduino 273
Desenvolvimento para Android - Trabalhando com SQLite 247
Criação de Bibliotecas Dinâmicas em C 240
Desenvolvimento para Android - Utilizando uma ListView 202

Futuro

Ainda tenho um backlog um pouco grande de coisas para fazer. Muita coisa está feita apenas visando a minha utilização, que tornar estes pontos mais genéricos e assim que estiverem prontos eu quero liberar o sistema com a licença AGPL. Mas por enquanto estou arrumando a casa.

Quero adotar mais o uso de html5 para demarcar conteúdos do site, terminar meu sistema de busca, parametrizar algumas coisas que estão fixas no código, etc…

Conclusão

Estou bem feliz com o resultado que tive neste primeiro ano de existência do site. No inicio acreditava que seria apenas mais uma tentativa de manter um blog como outras que tive anteriormente.

Tenho recebido alguns feedbacks através de email e redes sociais, porém gostaria de tê-los em forma de comentários no site, por isso eu peço que usem o espaço que foi construído para isso. Se alguém está tendo algum problema ou sabe de algum ponto que precisa ser melhorado, por favor, peço que avisem-me.


Me

Tenho estudado esse mundo mágico da programação desde 2005. Já consegui sustentar minha família usando Ruby, Java, Python, C++ e Javascript. O resto tenho usado para diversão ou aprendizado.