terça-feira, janeiro 27, 2015

Parabéns a mim

Este é o último ano com um digito, este blog faz hoje 9 anos, quase com uma década...quem diria que teria uma vida tão longa e que aparentemente ainda está para durar, deve ser por não ter sido afectado com os cortes na saúde, como não tem reforma o governo também não se importa que continue vivo.

Assim de repente só me consigo lembrar de um hobby que faço há mais tempo ininterruptamente que escrever no blog, que é a natação, o que ajuda a explicar a quantidade de vezes que 'meto água', mas vá lá o blog vai-se mantendo à tona e ainda não parece ter sinais de ir ao fundo.

Daqui a 1 ano cá estarei (espero eu) para comemorar 1 década, até lá muitos disparates, idiotices, inutilidades e afins serão escritas por aqui, não esperem grande melhoria porque isto não é como o vinho do Porto quanto mais velho melhor, bem pelo contrário isto com  idade só tem tendências a piorar.

sexta-feira, janeiro 23, 2015

Sanitizar HTML por javascript

O significado da palavra sanitizar neste contexto significa limpar o HTML de código potencialmente malicioso, seja ele introduzido propositadamente (na maior parte das vezes) ou seja inadvertidamente por desconhecimento. No caso de utilizar a sanitização por javascript é importante notar que estamos a sanitizar HTML que apenas pode estar errado por desconhecimento de quem o insere, ou então é necessário voltar a revalidar a sanitização do lado do servidor, pois quem quer introduzir especificamente código malicioso facilmente ultrapassará uma limpeza por javascript.

Estando esta salvaguarda feita e querendo eu fazer a sanitização por javascript, andei à procura de algumas bibliotecas de javascript que me pudesse auxiliar, pois de certeza que já mais gente precisou disto. Acabei por fazer uma pré selecção das 3 seguintes:
A primeira é uma biblioteca que inclusivamente é utilizada pelo google, mas ao ler a documentação não  fiquei esclarecido  como se utilizavam as whitelist, e como estava a perder já mais tempo do que eu achava que era razoável acabei por desistir de usar esta biblioteca, inclusivamente ainda andei a olhar o código desta biblioteca e não fiquei convencido que suporte whitelists, mas ao mesmo tempo acho estranho que algo utilizado pelo Google seja tão limitado!

A terceira biblioteca utiliza outras bibliotecas do NPM, e como considerei que era um absurdo a quantidade de bibliotecas que era necessário fazer download para algo tão simples como limpar HTML não gostei muito da solução.

Acabei por escolher a 2ª opção, simples, e em menos de 30 minutos tinha o meu problema resolvido. Gostei da flexibilidade como são definidas as whitelists, não gostei dos nomes das API, não são nada indicativos do que são mas olhando a documentação rapidamente se percebe como se faz. Já existem 3 whitelists disponibilizadas pela biblioteca com diferentes níveis de restrições mas é facílimo definir novas whitelists personalizadas. Deixo aqui um pequeno exemplo de uma possível implementação:

    var sanitizer = new Sanitize({
        elements: ['p','h1','h2','h3','a','b','i','br','ul','ol','li'],
        attributes: {
            a: ['href'],
            '__ALL__': ['width', 'height']
        },
        protocols: {
            a: { href: ['https'] }
        }
    });

    $(".inputToSanitize").each(function (index) {
            
            var sanitized = sanitizer.clean_node($(this).html());
            $(this).html(sanitized);
    }

quarta-feira, janeiro 14, 2015

Não somos só futebol

Com todo o mérito que tem, nos últimos dias só se ouve falar de Cristiano Ronaldo e da 3ª bola de ouro, esquecendo a imprensa portuguesa (excepção ao Jornal de Notícias de hoje) de outros feitos desportivos portugueses além fronteiras.

Falo especificamente do Dakar, provavelmente a prova motorizada mais dura do Mundo, especialmente depois de se ter mudado para a América do Sul e que acontece todos os anos durante os primeiros dias do ano. Quem viu a etapa de 2ª feira no deserto de sal, que com a chuva se tornou num pântano de sal com temperaturas quase negativas, e depois de passar por isso ainda chegaram ao verdadeiro deserto de areia com temperaturas elevadíssimas, tudo isto ainda potencializado com a altitude quase sempre acima dos 3000m, percebe claramente o porquê da dureza desta prova, que etapa verdadeiramente épica para ser recordada.Talvez por gostar de motas, por haver portugueses a dar cartas nesta disciplina e porque acho que é maneira mais dura de se fazer o Dakar, este é um evento desportivo que acompanho todos os anos dando especial atenção às motas.


Nos últimos anos a KTM tem dominado incontestavelmente, mas este ano e até agora os pilotos portugueses da Honda Paulo Gonçalves e Hélder Rodrigues têm tido uma prestação brilhante a honrar o nome da marca e o nome de Portugal. Para se ter a noção, e a imprensa desportiva não realça isto, em 9 etapas há 3 vitórias portuguesas! Hélder Rodrigues já ganhou duas vezes e o Paulo Gonçalves ganhou uma vez, não fosse a etapa de 2ª feira onde o Hélder teve problemas mecânicos e estaria agora muito perto do pódio, em relação ao Paulo ocupa agora um 2º lugar na classificação geral. Faltam agora 4 etapas já com alguma distância de segurança para o 3º lugar é esperado que o Paulo ataque o primeiro classificado o espanhol Marc Coma. Pela experiência e qualidade do espanhol acho muito difícil recuperar o tempo, mas pode sempre acontecer uma queda ou uma avaria mecânica, é o Dakar, por isso há ainda uma réstia de esperança.

Depois da vitória de ontem hoje o primeiro a sair para a estrada é o Hélder Rodrigues, passado 2 minutos o Paulo Gonçalves e passados outros 2 minutos o Marc Coma. Prevejo que seja o jogo do gato e do rato o Hélder vai esperar pelo Paulo, porque são os dois da mesma equipa, e vão tentar ganhar tempo ao Marc Coma. Já o espanhol vai tentar recuperar os 2 minutos que vai partir atrás do Paulo, tentar colar a ele e segui-lo até ao final da etapa, ganhando-lhe assim 2 minutos para a classificação geral...estou curioso para ver o que vai sair desta batalha, espero que tudo corra bem para os portugueses, e se perderem tempo que seja por culpa própria e não por algum azar.

Pode parecer mas não me esqueci do Rúben Faria, mais discreto este ano, mas estamos a falar do 2º classificado do Dakar 2013. Contudo, mesmo estando mais discreto ocupa o 7º lugar da classificação geral, mesmo tendo de apoiar o Marc Coma, seu colega da KTM, quem sabe não consiga ainda ganhar uma destas 4 últimas etapas.

Em relação aos carros, e apesar da Toyota estar a fazer um trabalho notável, a Mini está com um domínio e uma consistência que dificilmente pode ser contrariada, como tem sido nos últimos anos. Nos camiões é mais do mesmo, como nos últimos anos também, o domínio dos russos da Kamaz é  de tal maneira avassalador que preparam-se para estar nos 3 primeiros lugares do pódio.

sexta-feira, janeiro 02, 2015

S. Silvestre Amadora 2014

A S. Silvestre da Amadora acho que é a prova que eu faço há mais anos, e há-de ser sempre uma prova no meu calendário anual, gosto imenso do ambiente. O ano passado estava de cama por isso não consegui participar, este ano experimentei pela primeira vez o novo percurso, continua bastante duro para uma corrida de estrada, é difícil manter ritmos devido ao constante sobe e desce, mas está mais fácil que no percurso antigo.

Nos 2 dias anteriores à prova fiz uns pequenos treinos que não correram mesmo nada bem, em ambos tive ataques de asma quando treinava as acelerações em rampas, ao ponto de ter quase de parar por não conseguir respirar, por isso a minha confiança para a prova era zero. Como não me sentia bem decidi não arriscar nos primeiros quilómetros como costumo fazer, nada de grandes esticões ao início para ganhar tempo. Disse ao Pre para colar em mim, ele queria fazer abaixo dos 45 minutos (e conseguiu) o que era um bom objectivo para mim, logo era uma boa maneira de controlar o ritmo porque o ritmo do Pre é muito certinho.

Ao final da primeira rotunda olho para trás e deixo de ver o Pre, desacelero um pouco e tento me aperceber onde ele estava mas em mais de 1000 pessoas não estava fácil. Nisto passa o Bruno Martinho por mim, ainda lhe pergunto pelo Pre mas ele também não o tinha visto, decidi então seguir ao ritmo do Bruno.

Ao fim de 3 quilómetros estávamos no ponto mais elevado da corrida, a parte pior tinha terminado e tinha conseguido aguentar o ritmo do Bruno, nessa altura foi quando me senti pior, estava com dificuldades em respirar e o Bruno voltou a dar um esticão como o terreno começava a descer, desliguei o meu sensor de dor, o tentei ir com ele. Aos 4 quilómetros íamos com 17m30s, tendo em consideração que tinha sido quase sempre a subir e eu estar com problemas respiratórios, estar a fazer um ritmo mais rápido que 4m30s/km era bom mas ainda haviam muitos quilómetros para pagar este ritmo. Por volta dos 5,5 quilómetros o Bruno diz-me para seguir, achei estranho porque até ali ele não tinha dado sinal de abrandar, mas lá continuei a minha corrida.

Já não tinha lebre e nesta altura era por minha conta, passei a última rampa sem me desgastar muito guardando alguma coisa para os últimos 3,5 quilómetros. Aos 7 quilómetros ia com 30m10s, tendo em consideração que grande parte do que faltava era a descer, só um grande desfalecimento me impediria de fazer abaixo dos 45 minutos no final. O último quilómetro coincidia com o primeiro, por isso sabia que os últimos 800 metros seriam numa ligeira subida mas que naquela altura poderia fazer estragos. A parte da descida até aos últimos 800 metros controlei um bocado para poupar forças para o sprint final. Logo a seguir a contornar a rotunda que dava início à subida vejo o Bruno a entrar na rotunda, ele apesar de tudo não tinha perdido quase tempo para mim. Estava na altura de começar a bater com os calcanhares no rabo senão ainda era apanhado pelo Bruno. Ainda ultrapassei uma mão de corredores nessa última subida, para acabar com um resultado que não esperava de todo.


Pouco mais de 30 segundos depois chegou o Bruno a quem tenho de agradecer imenso pela ajuda que me deu na primeira metade da corrida, a muito lhe devo o meu tempo final. O Pre acabou por bater em muito o record dele, fez 44m30s, pela primeira vez desceu a barreira dos 45 minutos e logo numa corrida como esta, aqui se prova que o treino regular acaba sempre por trazer resultados. E finalmente o Nuno que há muito estava parado queria fazer abaixo dos 55 minutos e conseguiu 54m40s, todos conseguimos cumprir as nossas metas.

Dados da minha prova:
  • Tempo final: 42m16s
  • Velocidade média: 14,2km/h
  • Tempo médio por quilómetro: 4m14s