Archive for the 'Geek' Category

semantic mashup

hello-world-music.png

O som das cenas.

para rir… e ouvir….

Nem tudo pode ter uma apresentação tão arrebatadora como Mihaela, Mihaela, Vlade e Florin, que formaram, em 1994, o conjunto musical romeno Class.

Tão diferentes de Method (metal) e Property (metal) e Prototype (what else!?,… sure… é à mão cheia!).

Aggregation?, psychedelic 60s “Mind Odyssey”, Delegation? r&b 70s “The Promise of Love”, Inheritance rock, 90s. “Dreams Breaking on the Shore”. Override? mid-90s jungle, “Consume and Destroy”.

Mas quem diria que Database (ON TOUR) existe, mas:

we don’t have a description for this artist yet, care to help?

Até porque Table (ON TOUR) é um lo-fi indie trio de Chicago, Column um electronic duo de Copenhaga, Entity, .. argh… , Procedure… argh!?.. Trigger?!

E Thread? uma banda grunge de Seattle, anos 90:

They were a local band and never made it out of Seattle.

Sorry, dudes.

Package? ska originário de Mulhouse, France. Framework? 90s hardcore de Syracuse, NY., Instance? blues rock do Oregon e Process, … ui…

There are at least 5 artists/groups with the name Process.

Não pode ser boa coisa.

Enfim, assuntos tão diversos e divertidos como Idiom, Architecture, Debug,

Compile, Callback, Hook (ON TOUR), Crash, Query, Superclass, Template, Handler ou até mesmo um singelo Captcha.

Tudo demasiado óbvio, talvez, mas e então Multiple Replication?

E com um bocadinho de imaginação… (mais ainda?) … até mesmo uns quantos Design Patterns se podem ouvir.

Por mais investigação que se faça está tudo “à vista”.

exit-there-are-several-bands-with-this-name.png

Old song for a new wage

Esta música foi gravada na minha cave há já mais de um ano. O Carlos apareceu por cá uma tarde e trouxe o Neil Leyton consigo. O Neil gravou umas guitarras, eu gravei outras, o Carlos cantou e 4 dias depois estávamos a ouvir esta mistura na passagem de ano.


“Promise Land” (Miguel Machado)

A única coisa que me ocorre é que podíamos fazer mais coisas destas.

Carlos Figueiredo - Promise Land - Download mp3 (192Kbps)

Notícia: O Neil tem um album novo (outro!) e está para sair em Setembro de 2008.

Nota: mais som e mais downloads aqui.

Python at last!

Trabalho com PHP há 12 anos mas nunca me tornei um fundamentalista. Certamente que prefiro o PHP a qualquer ASP mas não posso nunca fechar a porta a outras linguagens. Nomeadamente Java, Python, Ruby e Perl, com os quais já tive alguns “encontros”, mais ou menos complexos, e me enchem de curiosidade.

O problema está na falta de oportunidades. Quando tenho um projecto para implementar não posso optar por uma linguagem que não domino, não posso sair do meu domínio e colocar em risco a produtividade, qualidade e valor-hora do meu trabalho. Felizmente que não me têm faltado projectos, portanto continuo longe destas aventuras.

Mas finalmente eis que surge a oportunidade: Python (zope) at last!

Alguém tem dicas?

UPDATE:

Introduzindo Olive, mais uma Framework MVC para PHP

Acabei de publicar o primeiro exemplo de uma aplicação implementada sobre a minha framework MVC, o Olive.

Porquê escrever uma framework? Porquê chamar-lhe Olive? Essas respostas já estão na (parca) documentação que coloquei no wiki. Mas posso adiantar que Olive é algo muito português, que reporta às origens beirãs da minha família (também válido para outros portugueses, desde algarvios a transmontanos). E também que é divertido ter componentes da aplicação que se chamam OliveTree ou OliveField.

olivedemoapplication.jpg

A framework está em rápido desenvolvimento e conto ter uma versão 1 totalmente documentada até ao final de 2008. Quem se interessar pelo assunto pode entrar em contacto comigo, porque a Olive precisa de alguma ajuda.

Posso-vos dizer que é um projecto interessante, por esta e aquela razão, mas sou suspeito. Vejam por vocês mesmos.

Para já apenas as layers de Controlo e Output estão verdadeiramente funcionais e os exemplos publicados são parcos, mas já mostram algumas das características interessantes do projecto, tais como flexibilidade (output por smarty ou old schoool, configuração por xml, yaml ou db, ajax por html, json ou xml), modularidade (controls, modules, components, widgets), performance (uma obsessão) e sintaxe produtiva (pelo menos divertida).

Quanto à camada dos dados, o M do MVC, está a sofrer um refactor verdadeiramente intestinal: no original a class central (OliveConnection) foi desenvolvida como Singleton para facilitar o acesso aos métodos de carregamento das definições de tabelas, views, procedures, etc… tipo:

$res = OliveConnection::table('blog')->row($id);

Burrice, porque isso não permitia fazer várias ligações, ligações a bases de dados diferentes por exemplo. Enfim… agora o acesso passará a ser feito através de um método estático na class da aplicação, que retorna uma conexão por pedido (ou a conexão primária por defeito)

// conexão primária (primeira a ser criada)
$res = OliveApp::connection()->table('blog')->row($id);
// chamar conexão por nome
$res = OliveApp::connection('remote')->table('blog')->result();

ou

// criar query SELECT sobre tabela/view "blog"
$res = OliveApp::connection()->select('blog')
  // escolher campos
  ->fields('data', 'titulo', 'texto', 'autor.nome AS autor_nome')
  // filtrar
  ->where_equals('categoria_id', $cat_id)
  // ordenar
  ->orderby('data DESC')
  // limitar
  ->limit(10);

Também planeio implementar no próximo sprint artefactos como “embrulhar” os resultados das querys numa class que implemente a interface Iterator (PHP5) para permitir

// cool
foreach($res as $row) { ... }

// em vez de old school
while($row = $db->fetch_row($res)) { ... }

Mas antes disso, actualizar a documentação.

Javascript Frameworks: Prototype vs JQuery

No decurso do desenvolvimento da minha framework MVC tenho-me questionado onde e como encaixar os widgets necessários para que seja Ajax ready.

Há muito que uso a framework Prototype para as artes mágicas do javascript e estava decidido a usá-lo como base para todo o desenvolvimento no V do MVC, mas tinha já programado uma pequena investigação para não me precipitar, até porque o facto de tanto o JQuery como o Prototype usarem o $ torna-os, à partida, ligeiramente incompatíveis.

Depois de ler uns quantos artigos e as suas acesas discussões acabo por ficar mais virado para o JQuery. Como é óbvio (a posteriori é fácil dizer que é óbvio) tudo o que seja possível numa das frameworks acaba por o ser também (mais linha menos linha) na outra. A grande diferença entre os dois poderá estar na utilização que lhes queremos dar.

O Prototype extende o Javascript tornando-o mais OOP e assim permite escrever código mais reutilizável e mais natural para programadores que sejam demasiado OO para aceitar uma linguagem instance oriented como o Javascript. Não é o meu caso, por mais que gosto do meu terreno natural, fascina-me sempre a diferença, que neste caso reside na estrenha beleza do javascript tal como ele é; não luto para o modificar, antes prefiro compreender os seus mecanismos “prototipados” de herança e instanciação.

Quanto ao JQuery parece ser mais directo na forma como ataca as questões que comunmente necessitamos de resolver neste tempo de ajaxização da web. Mais, o source é mais leve e está organizado num sistema de plugins, bem, documentado e acessível no site. Cool, é mesmo o que eu precisava. Goodbye Prototype + script.aculo.us + mootools, hello JQuery.

Bons e maus artigos, excelentes exemplos e discussões:

Update: Como acabo de perceber que afinal o JQuery permite ser “configurado” para funcionar em compatibilidade com o prototype, vou tomar a opção de manter a possibilidade de usar os dois na minha framework:


// prototype select one and bind
$('someid').observe('click', function(event) { alert(this); event.stop(); });


// prototype select collection and iterate
$$('.someclass').each(function(link) {
link.observe('click', function(event) { alert(link); event.stop(); });
});


// JQuery (in compatibiliy mode, with alias $j) always selects zero or more
$j('.someclass').click(function(event) { alert(this); event.stop(); } );

Holly Crap

Quando o tipo à tua frente diz algo do género ao virar uma esquina, tratando-se de um “local” com experiência neste tipo de “passeios” é melhor pensar duas vezes antes de olhar para baixo.

levada.jpg

Uma Levada é um carreiro de água construído (com recurso a que artes mágicas!?) há 50 anos para transportar àgua para efeitos de rega ou produção de energia. Tornaram-se também numa espécie de cartão de visita turístico da ilha da Madeira, mas não acredito que os alemães balofos que vejo por aí a passear de carro consigam transpor estes obstáculos.

Um agradecimento especial aos meus formandos que me levaram nesta aventura (com toda a segurança) desde a Boa Morte até Serra d’Água, ao longo do vale da Ribeira Brava.

Holly Crap!

Melhor Wiki (para projectos de desenvolvimento e não só)

os Wikis são para colaborar! Brevemente irei começar a publicar documentação e código da minha framework e dos seus projectos associados. Para esse efeito tenho estado a experimentar alguns sistemas para suportar o site que quero colocar online. Wikis, principalmente.

Para quem quiser escolher um wiki php, com ou sem base-de-dados, este artigo pode ser interessante.

Click para continuar a ler “Melhor Wiki (para projectos de desenvolvimento e não só)”

Um “momento de verdade”, tocante e inspirador.

Na última semana ouvi várias pessoas falar acerca da passagem de Alvin Toffler por Lisboa e acerca do seu discurso inspirador.

Mas será?

Acabei de ver uma entrevista de Mário Crespo a Alvin Toffler. É muito bonito, ver estes dois senhores a conversar. O mais bonito mesmo é por volta dos 2:40, a gargalhada babada do Mário Crespo depois do Toffler o bajular.

Mas desculpem, além desse momento sórdido, não encontro nada de inspirador. A tecnologia evoluiu muito para lá do que vemos hoje? A humanidade está a entrar numa nova era? Em breve teremos implantes biomecânicos? Os países perderam poder relativo para outras forças internacionais como as corporações? O futuro avizinha-se caótico.

Duh! O que há de inspirador numa figura cinzenta que se promove como o envangelista dos futuros óbvios, desnecessários e inevitáveis?

Esqueçam tudo isso. É fácil: sigam para este momento verdadeiramente inspirador, com um homem dos nossos dias:

Henry Rollins, em Israel, sobre a guerra.

Shalom. Good Night.

Who needs designers?!

Make My Logo Bigger

Muito boa esta campanha. É assim mesmo rapazes. Afinal, quem precisa de designers?

Este assunto é um velho conhecido, não só dos designers, como de todos os que trabalham na indústria da comunicação, e os developers também conhecem bem este problema.

Na pele.

Já muitas piadas se fizeram acerca disto e é verdade que as verdades têm que ser ditas. É tudo uma questão de frontalidade (e credibilidade para a assumir, claro).

Claro, gostava mesmo de ver um designer levar esta dica a sério:

…wear it to your next client meeting. When they see the shirt, they’ll know their request is bogus.

Make My Logo Bigger

O engraçado nesta campanha é que ela se dirige aos próprios designers, promovendo os serviços de programação de uma equipa de developers. Paradoxalmente utiliza todos os dont’s que o video sarcasticamente enumera, nomeadamente o factor emocional.

Rui Costa marca na despedida, Sporting 0 - Benfica 2

(ver o post “E se o Rui Costa, na sua despedida, não tivesse saído a 5min do fim?” acerca da verdadeira despedida do maestro, no jogo frente ao Vitória de Setúbal)

O último derbi de Rui Costa correu de feição ao “maestro”. O Benfica inaugurou o marcador em Alvalade por intermédio de Rui Costa na cobrança de um livre descaído sobre a esquerda, minutos antes de cair o pano sobre a primeira parte. Na segunda parte, já com Mantorras em campo, Rodriguez voltou a marcar de cabeça a passe do angolano, depois de uma diagonal interior de Di Maria que desposicionou a defesa do Sporting.

A ver vamos.







Close
E-mail It
ok