Alexandre Gaigalas e a web.

Sobre

Durante minhas pesquisas e o desenvolvimento de projetos eu desabafo no Twitter, que também tem muito da minha vida pessoal.

Ao contrário da maioria das pessoas, meu Facebook tem mais interação profissional do que pessoal, e respondo poucas mensagens privadas. Você pode me encontrar facilmente nos grupos PHP Brasil e REST Brasil .

Publico código com frequência em formato de gists e em repositórios das organizações Respect e Aeronautics.

Em geral, meu nome de usuário em qualquer serviço é alganet, o que me torna simples de encontrar.

Web Semântica

Meu principal interesse é a Web Semântica , um conjunto de tecnologias para a web.

Web Semântica, que define como dados puros podem ser expostos para livre consulta na web não deve ser confundida com a semântica de documentos HTML , que não define dados, apenas como uma informação pré-existente deve ser marcada de forma adequada para publicação.

Intimamente relacionada está também a Linked Data , que se importa com a manutenção de um conjunto distribuído e global de dados usando tais tecnologias.

Apresentações

Meu mais famoso trabalho relacionado ao tema é uma apresentação que fiz no TDC 2012, Armazenamento de Dados para Web Semântica (vídeo e slides).

Outros slides sobre Linked Data e Web Semântica e Dados também estão publicados.

Publicações

Publiquei alguns artigos sobre Web Semântica no pla.net.br e fiz um esboço de especificação de um protocolo para relacionamento granular de URIs por seus nomes.

REST

REST é um estilo de construir software em rede, o estilo projetado para a web e do qual todas as suas tecnologias derivam.

Projetos

O Respect\Rest é um microframework para PHP que possui fortes convenções que orientam o desenvolvedor a aprender e utilizar o estilo REST e a negociação de conteúdo, tratamento de erros, cache, autenticação e links do protocolo HTTP e padrões derivados.

Uma tradução do Respect\Rest para os paradigmas nativos do JavaScript deu origem ao Aeronautics\Concorde, que funciona no servidor com node.js e em navegadores modernos, trazendo o conceito de roteamento e hipermídia para o cliente e servidor de maneira uniforme.

Apresentações

Varrendo APIs REST em Larga Escala Utilizando PHP
Explica algumas técnicas utilizadas na Kingo Labs para varrer dados de APIs sociais como Twitter e Facebook.
REST: Faça o Serviço Direito
Em suas primeira e segunda versões o foco é nas regras arquiteturais do REST e suas relações com tecnologias populares.
Na terceira versão são abordados os temas menos explorados pelas publicações populares de REST, tais como hipermídia, camadas, arquitetura de servidores e código sob demanda.
REST in PaaS
Aborda o uso de REST para distribuição em serviços de nuvem e a incrível relação que essa arquitetura tem com a arquitetura orgânica da web, o que a faz barata, escalável e de alta performance.

Linguagens

Eu tenho um interesse incomum por linguagens e idiomas. Meu maior esforço nessa área envolve o desenvolvimento de linguagens de domínio específico (DSLs) internas e semi-internas hospedadas em outras linguagens de propósito geral. Resumidamente, meu trabalho envolve usar a riqueza gramatical de linguagens genéricas para criar camadas eficientes de abstração.

Projetos

Meu projeto mais famoso é o Respect\Validation, uma DSL interna, híbrida entre funcional e orientada a objetos para regras de validação em PHP. A DSL em si começa na forma com a qual objetos que implementam uma determinada interface podem ser aninhados em um Composite apenas por injeção de dependência de construtores:

<?php
use Respect\Validation\Rules;

// Montando um validador pela sua arquitetura interna
$validTwitter = new Rules\AllOf(
    new Rules\String,
    new Rules\Alnum('_'),
    new Rules\Length(1, 15)
);

Em cima dessa arquitetura, contudo, a DSL se desenvolve:

<?php
use Respect\Validation\Validator as v;

// Montando o mesmo validador acima utilizando chains:
$validTwitter = v::string()->alnum()->length(1, 15);

Ambos os mecanismos tem resultados idênticos. A chain tem como responsabilidade expor uma interface declarativa para os processos de construção e composição de regras de validação.

// Ambos funcionam da mesma forma
$validTwitter->validate('alganet');

Aviso

Há conteúdo inacabado! O RSS também está inacabado!