Segunda-feira de manhã. Enquanto Asa, Diogo, Ariane e Milho enfrentavam o barco até São Sebastião e mais algumas horas no mecânico para arrumar o carro, ficamos no Bonete eu, Nano e Ale consertando as telhas que o vento forte quebrou durante a noite. Pela vila muitas casas com telhas a menos, algumas antenas parabólicas no chão e na nossa porta uma panela, provavelmente trazida pelo vento, cuja a origem é desconhecida.
Fim da imersão do hacklab. Foram sete dias no Bonete de Ilhabela com praticamente toda a equipe do Hacklab (Diogo, Milho, Ariane, eu, Nano e Asa). O único ausente foi o Bruno, preso em São Paulo, estudando para a prova de transferência para Ciências da Computação na USP.
Focamos essa semana no desenvolvimento da versão 2.0 do Estúdio Livre e do Mapsys. Ao todo foram realizados 42 commits.
No que diz respeito ao Mapsys, avançamos bastante em direção ao primeiro release de testes da versão, previsto para daqui há duas semanas. Fizemos o código de praticamente todas as novas telas feitas pelo Renato (designer do sistema). Terminamos de implementar os seguintes recursos: tags nos nodes, autocomplete, feeds na página dos nodes e filtros sob demanda na interface de relatórios.
O Mapsys está sendo reescrito do zero, independente do Tikiwiki e com base nas histórias de desenvolvimento que foram criadas numa reunião de planejamento entre o Hacklab e os clientes do sistema. É possível ver o que já foi feito no http://teste.mapsys.org.br.
O Estúdio Livre está praticamente pronto para o lançamento da versão 2.0. Decidimos fazer o release de uma versão 2.-1 com o que desenvolvemos durante a imersão no dia 30 desse mês. Terminamos a migração dos recursos da versão antiga para a nova estrutura de código baseada no Tiki e no Persistent Object?. Incluímos suporte a tags nos blogs e nos fóruns e criamos uma nova estrutura para a página inicial.
Na próxima versão, o sistema terá duas páginas de abertura. A primeira, a "página estática", apresentará ao visitante o conteúdo do site. Será uma mistura de um "sobre o site" com um mapa de navegação. O usuário que já conhece o EL poderá optar por pular essa página e acessar diretamente a "página dinâmica" que trará os últimos posts realizados num blog.
Também criamos e codamos a tela para a interface de envio de publicações. Uma publicação pode conter vários arquivos de tipos diferentes, dessa forma será possível criar dentro do acervo do Estúdio Livre um álbum de músicas ou então criar uma publicação de um vídeo e disponibilizar nela diferentes formatos do mesmo vídeo. Esse é o principal recurso novo da versão que estamos desenvolvendo.
Em meio ao código desse novo recurso, numa conversa que todos estavam presentes, descobrimos uma falha de segurança grave no acervo do Estúdio Livre (melhor descrita no post abaixo sobre esse assunto). A falha foi imediamente corrigida. Provavelmente ninguém havia descoberto essa falha antes e se descobriu não explorou. Dedicamos o resto dessa noite à discussões sobre segurança nos dois sistemas em busca de outras falhas semelhantes.
Nos despedimos com uma frase na cabeça: "geral para defal".
Pra alguns um belo passeio na praia. Pra outros um verdadeiro teste dos próprios limites.
Não existe outra maneira de descrever a imersão 2.0.
No meio da mata, sem comunicação com o resto do mundo (fora "as internets"), 6 hacklabers e "o ale" colocaram a prova seus conhecimentos de desenvolvimento de software, agricultura, esportes de praia e, mais importante de todos, culinária.
Desconhecido aos habitantes do laboratório 100linhas, as compras tinham sido feitas por um "vegetariano".
Para supresa geral, no lugar da carne, do queijo e da cerveja, haviam grãos. Muitos grãos. Muitos.
De súbito, os pobres carnívoros iniciaram uma nova dieta baseada quase que completamente em grãos, e imediatamente começaram a aparecer os efeitos colaterais.
Inicialmente pequenos, quase que como sopros de vento, tímidos, inodoros, os flatos começaram a aparecer. Um barulinho aqui, uma risadinha ali, a coisa começou a piorar.
Acontece que para estômagos acostumados a ingerir grandes quantidades de carne, os grãos não davam conta do recado. Mal desciam, eram sublimados pelo sistema digestório. Não sobrava nada, só a impressão.
Dia após dia a flatulência aumentava, e as pessoas não reconheciam mais nem o próprio flato.
Foi que então chegou o frio intenso, e apesar do perigo incendiário, não havia outra saída senão o fogo.
Desconcertados com a situação, só restava aos carnívoros infelizes se consolarem com músicas e versos
dieta de grãos
sente o cheiro do feijão
já comi faz um tempão
tô pagando a prestação
Que nos levou a tirar uma única conclusão: muitos grãos geram flatulência excessiva.
Depois de uns tantos commits e muitos "rollBecks", como é de praxe, foram-se os paulistas e veio o sol
No início da madrugada do 21 de julho (1h da manhã de sexta para sábado, logo depois de "conSertar a antena"), numa inofensiva conversa sobre formatos (mais especificamente extensões) permitidos no upload de arquivos de texto no acervo do Estúdio Livre, como num passe de mágica, uma epifania fez com que percebêssemos a existência de uma falha de segurança crítica.
Por um lapso coletivo, o acervo permitia não só o upload de arquivos PHP, como também o acesso direto, e consequemente a execução dos mesmos. Apesar de ser uma falha muito conhecida e documentada, ficou escondida e passou desapercebida tanto dos desenvolvedores, quanto da comunidade de usuários e dos $cr1p7 kIDz d3 M&rd@, em mais de um ano de existência do acervo.
Tal falha possibilita a execução de qualquer código arbitrário de PHP dentro do servidor. Claro que isso não possibilita o acesso root, mas seria muito fácil explorar a falha para ganhar admin no Estúdio Livre, deletar o banco de dados ou derrubar a máquina. Felizmente não acordamos nenhum dia vendo a seguinte imagem:
Com um teste simples (sim, nos subimos um PHP no acervo e tiramos um print screen) pudemos verificar experimentalmente a existência da falha.
Em menos de dez minutos, o problema estava resolvido e o Estúdio Livre e Seguro novamente (tá, ele não tava seguro antes, mas ninguém sabia).
"Analisando as experiências observadas, acreditamos que a prática de Imersôes eXtremas aumenta consideravelmente a capilaridade dos fluxos de comunicação de uma equipe, além de propiciar um ambiente de alta criatividade e produção. Ao utilizar um sistema durante o seu desenvolvimento (prática normalmente denominada de eat your own dog food, que traduzimos como Comendo sua própria Merda) aumentam as possibilidades de encontrar-se defeitos e oportunidades para refatoração e simplificação do design."
Alexandre Freire - O ensino de Programação eXtrema - na Academia, Indústria e Governo
"Given enough eyeballs, all bugs are shallow"
Eric Raymond - The Cathedral and the Bazar
Além da versão 2.0 do Estúdio Livre, durante a imersão, também estamos avançando no código da versão 2.0 do Mapsys. Estamos reestruturando todo o código, agora independente do Tikiwiki e com uma nova interface. Para mais informações veja o plano de desenvolvimento.
No momento estamos desenvolvendo a nova estrutura para tags, feeds RSS ou Atom, a estrutura dos filtros na interface de relatórios e o sistemas de busca.
É possível acompanhar o que já foi feito no http://teste.mapsys.org.br/. A nova interface também está disponível lá.
Misture as farinhas, o sal e o fermento. Junte a água morna aos poucos, sempre amassando, até dar ponto .
Sove bem o pão até a massa ficar homegênea e com uma boa liga. Deixe crescer por uma hora, depois deixe a massa no formato que pretende assar e deixe crescer por mais uma hora.
Coloque o pão no forno médio pré-aquecido e em cerca de 50 minutos deve estar pronto.
Diferente do acervo que esta no ar, o acervo2.0 diferencia uma publicação de um arquivo em disco. Uma publicação é uma entidade do acervo, enquanto que um arquivo é apenas um arquivo. Uma publicação pode ter vários arquivos, mas um arquivo não existe sem publicação. Como exemplo, você pode subir um video em vários formatos e compactações. A publicação é a mesma (o video que você produziu), mas os arquivos são todos diferentes.
No tema bolha (o tema padrão), a página de publicação só possibilita a visualização de um arquivo. Desenhamos uma tela nova, baseada na tela anterior e na identidade visual do bolha.
Nesta tela, temos as informações da publicação junto com a visualização de um dos seus arquivos. O arquivo que é carregado primeiro é o arquivo que foi marcado como arquivo de capa. Clicando nos thumbnails dos outros arquivos, a página é recarregada visualizando o novo arquivo.
Adicionamos também os permalinks, possibilitando link direto pros arquivos em si (útil para linkar o arquivo em sindicâncias).
O svg da tela já está no cvs do estdiolivre, mas parece que a incubadora retirou a interface web pro cvs deles :(. Interessados podem pedir ajuda pra conseguir o svg.
Enquanto estamos desenvolvendo, ficamos online no canal do IRC #casinha no irc.freenode.net
Em geral, começamos a codar no final da tarde e vamos até o começo da madrugada. Durante o dia aproveitamos o Sol na praia ou trabalhando no terreno da futura casa :-)
autor: Alexandre Freire
enviado por: alex
em: 19/07/07
tipo: Texto
Um Script-Fu pro GIMP.
Pega imagens de
1280x960pixels que são matrizes de 4x4 imagenzinhas de 320x240 pixels, geradas normalmente no modo multiburst de câmeras digitais, e transforma em um gif animado.
Copiar o arquivo para ~/.gimp-2.x/scripts/
Para ...
(leia mais...)