Skip to content
May 1 09

Vulnerabilidade XSS no jogo System Empires

by João Pedro Pereira

Hoje venho mostrar-vos como é fácil encontrar vulnerabilidades em páginas web, para inaugurar esta nova “categoria” do blog o website escolhido foi o jogo web-based System Empires jogo este que tenho vindo a jogar e a falha nele explorada será o tipo de falha Cross-site scripting (XSS) esta falha, para os que não sabem, permite fazer injecção de código numa página, esta é uma vulnerabilidade client-side pois só se dá no browser da vítima e não afecta, directamente, o servidor.

Nota: esta falha é apenas vísivel a membros registados no jogo. Vulnerabilidade corrigida (mais informações)

read more…

Apr 28 09

Concurso de Artigos da Wiki P@P

by João Pedro Pereira

A Wiki P@P tem como objectivo ser o maior, e de melhor qualidade, repositório de conhecimento de língua portuguesa relacionado com o tema programação. Assim existe o objectivo de todos os programadores portugueses passarem na Wiki, lerem conteúdo, editarem conteúdo e criarem conteúdo. A filosofia da Wiki é isto: partilhar conhecimento!

A Wiki Team tem como principal objectivo de existência a manutenção da plataforma Wiki P@P e das regras / estrutura dos artigos. Tem também uma tarefa importante no controlo da qualidade de artigos existente. Assim é à comunidade é que cabe, tal como em qualquer outra plataforma colaborativa do género wiki, a criação de conteúdo e o melhoramento do conteúdo já existente.

Para dinamizar a Wiki, a comunidade decidiu organizar um concurso com a duração de dois meses, para premiar o maior e melhor contribuidor, e com isto tentar dar uma nova dinâmica à plataforma Wiki. Para mais informações sobre o concurso, veja o regulamento.

Esperamos a vossa participação!

Permalink: http://blog.portugal-a-programar.org/2009/04/28/concurso-de-artigos-da-wiki-pap/

E vocês o que acham desta iniciativa?

Apr 3 09

Diminuir Load Times no Carregamento de Páginas Web

by João Pedro Pereira

Um aspecto muito importante que é necessário ter em conta aquando do desenvolvimento de páginas web é a acessibilidade de uma página e do tempo que a página demora a estar pronta para ser utilizada, pois caso o tempo de carregamento (load time) seja elevado, os visitantes não vão gostar podendo até retroceder e não voltar a essa página, logo load times elevados correspondem quase que directamente a visitantes / utilizadores / membros / clientes perdidos.

Tempo de carregamento baixo = – tempo perdido = utilizador contente

Então podemos concluir que é necessário diminuir os tempos de carregamento das páginas e neste artigo vão ser abordadas várias formas de como reduzir os tempos de carregamento tendo em conta a optimização do JavaScript, do CSS, das imagens bem como optimização do lado do servidor nomeadamente com a utilização de PHP. read more…

Mar 14 09

JavaScript OOP #2 – Conceitos Básicos

by João Pedro Pereira

Neste artigo relativo a JavaScript Orientado a Objectos vamos abordar a programação orientada a objectos de uma forma mais soft explicando a todos os que nunca viram POO (Programação Orientada a Objectos) em JavaScript, os conceitos básicos.

Criando Construtores

Em JavaScript, um construtor é nada mais que uma função comum, que é instanciada numa variável. Essa instância cria-se através da palavra reservada new, indicando a criação de um novo objecto.

function MyFunction() {}
var MyVar = new MyFunction();

Definir Propriedades

Propriedades, ou também conhecidas como atributos, são dados que ficam encapsulados no escopo do objecto com que são relaccionadas.

Utilizemos um exemplo mais comum  e menos abstracto como por exemplo as caracteristicas de uma pessoa.

function Individuo() { return this; }
 
var eu = new Individuo();
eu.nome = "João Pedro Pereira";
eu.altura = "186";

No código acima, definimos um nome e uma altura apenas ao objecto eu. Qualquer outro objecto criado a partir de Individuo não terá essa propriedade. Podemos ver a utilidade disto quando precisamos de dar caracteristicas mais restrictas ao objecto. No entanto, caso estejamos a falar de caracteristicas que serão comuns a todos os objectos ai já será mais dispendioso fazê-lo desta forma, mas felizmente existem alternativas.

read more…

Mar 12 09

Um novo estilo de interface

by João Pedro Pereira

Um site que costumo frequentar é o TED e ontem encontrei um vídeo que tinha de partilhar.
Quem nos fala é a Pattie Maes do MIT e que apresenta o trabalho de Pranav Mistry.

Lembram-se do Minority Report com o Tom Cruise em que ele tem aquela interface espetacular? Estes investigadores chegaram a algo do género, na minha opinião bastante mais interessante…

Está simplesmente espetacular o modo como funciona, a simplicidade e as funcionalidades apresentadas, penso que será fantástico quando estes aparelhos saírem no mercado, vai revolucionar a maneira como se usa a tecnologia. Vai libertar muito mais as pessoas e no entanto torná-las mais utilizadoras da tecnologia.

Mas palavras para quê? Visualizem, estabeleçam uma opinião e digam o que acham disto.

Feb 9 09

Template System KISS #1

by João Pedro Pereira

English Version:

The template system was developed with two objectives.
The first, turn the development of new designs and the adaptability to new/other situations.
The second objective was creating a system that itself was easy to manage, to change and to add new features, like a plugin system or new funcions that will be used on the application. For that I’ve followed a KISS (Keep It Simple Stupid) principle.

I hope it will be usefull for your projects. If so, let me know.

I’m open to comments, sugestions for the next version, etc.
Download: Download Template System
P.S – Sorry for the bad documentation and my bad english

 

 

Versão em Português:

Como tinha prometido aqui está o meu sistema de templates.
Este sistema de templates foi desenvolvido tendo em conta dois aspectos.

O primeiro, o de facilitar o desenvolvimento de novos desenhos e de adaptação dos mesmo às situações necessárias, o segundo aspecto centra-se na própria personalização do sistema, tendo em conta uma filosofia KISS é possível com a simplicidade do sistema, no futuro, adicionar-lhe facilmente características como a adaptação para utilizar um sistema de plugins no core da aplicação ou mesmo simplesmente adicionar-lhe funções base que sejam necessárias num outro sistema (caso se queira fazer uma passagem deste módulo para outra aplicação).

Espero que vos seja útil. Se for, gostava de o saber.

Estou aberto a comentários, sugestões para uma próxima versão, etc.

Download: Download do Sistema de Templates
P.S – Desculpem a má documentação.

Jan 26 09

Concurso de Projectos de Programação P@P

by João Pedro Pereira

A comunidade Portugal-a-Programar está a organizar um concurso de projectos de programação em português, aberto à participação de todos os interessados.

Este concurso está aberto a qualquer programador e encontra-se dividido em duas categorias “Projectos de software livre/aberto” e “Projectos de software proprietário”. Irá ser realizado de dois em dois meses, alternando entre as duas categorias acima mencionadas, encontrando-se as datas dos concursos e prazos de entrega de trabalhos, disponíveis no regulamento.

Com o concurso a P@P pretende contribuir para a dinamização e divulgação das diversas linguagens de programação, assim como prestar reconhecimento aos programadores pelos seus trabalhos.

O vencedor terá direito a alguns prémios, entre os quais uma T-Shirt do P@P, alojamento para o projecto no servidor do P@P, entre outros de possíveis patrocinadores.

As datas dos concursos e respectivos prazos de entrega de trabalhos podem ser conhecidos online, acedendo à página do regulamento.

Jan 13 09

JavaScript OOP #1

by João Pedro Pereira

Uma linguagem que poucos sabem abordar a nível de Programação Orientada a Objectos (OOP – Oriented Object Programming) é o JavaScript e por isso pretendo fazer uma breve abordagem a este tema. Não irei fazer uma introdução sobre o que é a Programação Orientada a Objectos por isso é aconselhável que o leitor tenha as noções bases de utilização desta técnica, bem como que tenha uma noção básica da linguagem de programação abordada.

A linguagem JavaScript tem um estilo bastante particular no que toca a Programação Orientada a Objectos, não é uma sintaxe dificil de aprender mas comporta-se de forma diferente do que os programadores de linguagens compiladas como o Java ou o C++ estão habituados.
Isto porque o JavaScript não é uma Linguagem Orientada a Objectos completamente desenvolvida mas sim uma linguagem estruturada, e não estão implementados alguns conceitos classes e instâncias mas existem objectos, protótipo e herança implicita bem como variáveis públicas e privadas.

O JavaScript suporta variáveis / funções privadas declaradas usando a palavra reservada var. Propriedades publicas e métodos “priveligiados” são declarados utilizando a expressão this
Métodos “priveligiados” podem aceder variáveis / funções privadas que não estão acessíveis fora da classe.
read more…

Dec 5 08

Desenvolvimento Plataforma Pessoal #1

by João Pedro Pereira

Neste momento a plataforma na qual a main deste site e a área de clientes se baseam é criada e mantida por mim, como é desenvolvida no meu tempo livre ainda há muito para fazer e para idealizar. Muita coisa poderá ainda mudar, mesmo a nível do repositório de conhecimento porque talvez não seja bem aquilo que eu queira… pelo menos em termos de aspecto vai mudar.

Agora passando ao assunto principal deste post, a plataforma de desenvolvimento.
A ideia é ter uma página de entrada onde exista informação sobre mim, os meus últimos trabalhos e os meus contactos principais.
Depois através de apenas 1 clique e com boa visibilidade exista ligação para todos os pontos essenciais; o blog, o meu portfolio, a área de clientes e o repositório de conhecimento (artigos, ferramentas, … )

O core da plataforma vai ter suporte multi-língua ( português e inglês ), apesar de não existir a possibilidade de manter os artigos, os posts e as ferramentas em ambas as linguagens mas o portfolio, a página inicial e a área de clientes serão módulos que utilizarão obrigatóriamente esse sistema.
Sistema de templates que já está quase terminado mas quero dar-lhe uns toques finais antes de sair, sistema este que publicarei também para que possa ser usado em outros sistemas por quem assim o desejar.

O core da área de clientes será separado do restante tendo apenas em comum o módulo multi-língua e o sistema de templates, pois o restantes sistema não necessita das caracteristicas que vou implementar na área de clientes, pelo menos para já não necessita da maioria dos sistemas.
Ora bem o sistema terá suporte de módulos isto porque não tenho propriamente tempo para estar sempre a fazer manutenção de um sistema que seja apenas um capricho, desta forma posso adicionar fácilmente novas funcionalidades, modificar módulos completos sem interferir com o resto do código existente. Ponto da situação, core da área de clientes, sistema de templates, sistema multi-lingua, sistema de módulos (ou sistema de plugins como preferirem chamar-lhe), depois necessita de um gestor de bases de dados, será core built-in e de momento só vejo necessidade de desenvolver algo com suporte a MySQL porque é (talvez) o sistema de bases de dados usado na maioria dos webservers que por ai andam; de um sistema de segurança que fará todo o tipo de verificações, modificações, alertas, etc., sistema de logs, porque eu gosto de ter tudo certinho gosto de saber o que está a falhar, o que precisa de ser mudado, e também possíveis tentativas de hacking feitas ao sistema, ao fazer log tenho uma margem de manobra maior, podendo através da análise do padrão de tentativas de hacking, corrigir erros que possam existir antes de serem explorados, um sistema de parsing fixo, com possibilidade de receber extensões através de plugins.

Para já são estas as ideias a desenvolver… Ainda há muita coisa para estruturar e para pensar mas estas são as guidelines que tenho de momento e que servirão de orientação ao trabalho.

Sugestões? Comentários? Criticas? Agradeço! ;)

Nov 25 08

Bem vindos

by João Pedro Pereira

Acaba de nascer o meu blog, depois de uma tentativa com pouco sucesso de um primeiro blog que não teve as visitas e a interactividade escritor <-> leitor desejada decidi criar este novo blog, agora no meu servidor privado.

Pois os blogs são para serem comentados, apreciados, criticados! E sim este último ponto é o ponto que eu mais desejo ver neste blog, CRITICA! Temos de ser criticos para que o nosso trabalho possa ser melhorado, os erros corrigidos.
Por isso não fiquem de pé atrás, comentem, critiquem, se não houver nada a criticar digam-no, mas digam alguma coisa.

O tema: Vou tentar transmitir a todos o pouco que sei sobre XHTML, CSS, Padrões Web, Acessibilidade, PHP, JavaScript, Perl, Pascal, C, resumindo, tentar transmitir o que sei e o que posso… mas aviso desde já que desejo que o blog também sirva para aprender através do teu feedback.

Podem também editar aqui para fazer request de artigos.

O blog servirá também para apresentar novidades sobre trabalhos, desenvolvimentos a nível da plataforma do website principal, etc.