António Pedro Cunha Santos

Com uma enorme paixão por tecnologia, autodidacta desde tenra idade, cresceu com o ZX Spectrum. Tem vasta experiência em implementação e integração de sistemas ERP, CRM, ERM, BI e desenvolvimento de software por medida nas mais diversas linguagens. Diplomado do Curso de Especialização Tecnológica em Tecnologias e Programação de Sistemas de Informação pela ESTG-IPVC. Membro da Comunidade Portugal-a-Programar desde Agosto de 2007, é também membro da Sahana Software Foundation, onde é Programador Voluntário. Neste momento é aluno no Instituto Politécnico de Viana do Castelo, na Escola Superior de Tecnologia e Gestão no curso de Licenciatura em Engenharia Informática.
LinkedIn GitHub Twitter Google+

A arte, o engenho e muita diversão!

A Arte

Programar pode ser uma arte, apesar de ser uma acção e não necessariamente uma “expressão” no sentido mais conservador. Nesse caso um programa seria “uma forma de arte” e consequentemente os developers seriam artistas.

Ainda assim, isto nem sempre é observado desta forma! Numa atitude quase que “patológica” ou “desenquadrada” pro- gramar é muitas vezes visto como um ofício, uma tarefa, um trabalho e não propriamente uma forma de arte! Por exemplo e sem divagar muito, ensinam-se artes plásticas, expressão dramática, música, etc… nas escolas, no entanto ainda não existe de forma “massificada” a programação como matéria de ensino e estudo! Ainda que pareça precoce ver os mais novos a aprender a programar, certo será admitir que hoje em dia qua- se todos sabem usar um tablet, ou mesmo um computador!

Continuar a ler

Introdução à programação com Python, Algoritmos e lógica de programação para iniciantes

Para a review desta edição, foi-me oferecido pelo autor, o livro Introdução à Programação com Python: Algoritmos e lógica de programação para iniciantes, 2ª edição.

Dividido em 12 capítulos, o livro apresenta uma estrutura bem organizada e de leitura suave, até para os maus adversos leitores de livros técnicos. Começa por apresentar a motivação para a aprendizagem, capaz de cativar tanto iniciantes como estudantes que recorram ao livro para consolidar conhecimentos.

Continuar a ler

long long ago; /* in a galaxy far far away */

O título até parece brincadeira, mas é sério! E compila em C99! E foi assim, há muito, muito tempo, que a primeira edição da revista, foi publicada, fazia o ano de 2006, não numa “galáxia muito, muito distante”, mas num URL perto de todos nós! E assim o tempo passa! Tal qual história de ficção engraçada ou de mitologia clássica, a revista volta até aos seus leitores, como uma “fénix renascida” do famoso Albus Dumbledore, retirada de um livro conhecido de todos, ou de quase!

Não vale a pena fazer “resumos do ano passado”, porque o passado é “história que contamos”, não é mais do que isso, nem menos do que isso aqui não se tentam contar histórias, pelo contrário, tentamos “fazer história”.

Fazer história é dar uso àquela que é uma das mais elementares capacidades do ser humano e que nos distingue dos restantes mamíferos, a capacidade de criar! Para alguns pode parecer estranho, mas programar é criar “novos mundos” escrevendo código, é como pintar um quadro, como esculpir uma peça, como escrever um livro, onde a sintaxe e a semântica devem fazer um sentido inequívoco.

Ouso dizer, sem querer ser demasiado ousado, que programar, sendo um verbo transitivo, pode significar mais do que apenas a divisão de um problema entregue a um equipamento eletrónico, em instruções que este aceite. Significará imaginar algo, construir esse algo “abstrato” mentalmente, e por fim descrever esse algo em instruções capazes de serem executadas por um equipamento. Assim, de certa forma poder-se-ia dizer que programar é tão importante como escrever, ler, sonhar, pensar, definir, controlar, fazer uma complexa miríade de tarefas, dentro e fora do âmbito criativo. Isso faria de todos os programadores, entusiastas, aspirantes a programadores, verdadeiros artistas!

Parafraseando algo que li num chat, faz algum tempo, “o nosso dever para com a vida, é aprendermos o que pudermos, ensinarmos o que soubermos, melhorarmos tudo em que tocamos, ajudar tudo o que conseguirmos, criar o que nos for possível e deixar tudo melhor do que encontrarmos, para os que vierem depois de nós”, não porque seja “socialmente correto” dizer tudo isto, mas antes porque um programador, é uma “mente inquieta”, uma “mente inquisidora”, “criadora”, artista e cientista, de bits e bytes descritos! E nesses bits e bytes, aquilo que outrora lemos como ficção, poderá ser algo imprescindível no dia a dia, do amanhã! Algo que faça a diferença, para alguém, ainda que pouca seja, será sempre alguma! Será o “sabre de luz, de um personagem de cinema, ou o comunicador da ficção de 1966. Quem sabe até a “Nimbus 2000” de atleta dos livros, numa competição desencantada, numa escola onde se chega de comboio a vapor, ou um simples rodapé, de um qualquer livro escrito.

Até à próxima edição, boas leituras!
António Santos

Criptografia e segurança por hardware com Arduino/Genuino ou outros sistemas por I2C

Introdução ao problema

Cada vez mais se lêem notícias sobre os perigos da internet das coisas, desde um ataque massivo de negação de serviço distribuída (Distributed Denial of Service) que excedeu larguras de banda de 799Gbps, até botnets de dispositivos IoT, etc…

Uma das preocupações de quem desenvolve produtos IoT, sejam software, hardware ou ambos, acaba por ser a segurança desses dispositivos, e até que ponto a segurança por software é suficiente num dispositivo que pode controlar por exemplo, um sistema de alarme, ou o controlo de aquecimento, etc…

Continuar a ler

Instalando um servidor VPN num Raspberry Pi

Introdução

Uma rede privada virtual (VPN) é uma rede de comunicações privada, construída sobre uma rede de comunicações pública, como o caso da internet. O tráfego de dados é transmitido pela rede pública, mas encriptado de forma a não permitir que esteja acessível a quem não é destinado. Uma VPN é apenas uma ligação estabelecida sobre uma infraestrutura pública ou compartilhada, usando tecnologias de tunelamento e criptografia para manter seguros os dados transmitidos.

A importância do uso de VPNs é cada vez mais falada, uma vez que o uso de hotspots wifi abertos é cada vez maior. Isto torna cada vez mais comum o uso de locais onde existam hotspots, pontos de frequentes ataques, recorrendo a dispositivos simples e muitas vezes feitos propositadamente para o efeito de levar a cabo intercepção e captura de dados contendo passwords, sessões, etc…

Continuar a ler

GameJAM

O Global Game Jam é o maior evento de jam (criação de jogos) do mundo que acontece em locais físicos por todo o mundo . É um hackathon focado no desenvolvimento de jogos. É o crescimento de uma ideia de que, no mundo fortemente conectado, poderíamos unir-nos, ser criativos, compartilhar experiências e expressarmo-nos de muitas maneiras usando jogos de vídeo. É um fim de semana de criação de jogos, num processo iterativo em que todas as etapas se realizam em poucos dias.

Continuar a ler

Entrevista a: Edite Amorim

Revista PROGRAMAR (RP): Fale-me um pouco de si e do seu percurso.

Edite Amorim (EA):  Hum… Nasci no Porto em 80, e estudei na Póvoa de Varzim, onde vivi até aos 26 anos. Era muito distraída na escola, estava sempre a mil com cem ideias e demasiada energia. Falava muito. Fiz patinagem artística 12 anos, estive para ir para a Escola Profissional de Teatro e em vez disso fiz o Secundário na área de Desporto.

Continuar a ler

TC BANKCALL #TEMPORARY I HOPE HOPE HOPE

Todos os percalços fazem parte da “evolução”, de versão para versão! E desta feita o atraso nesta edição, foi fruto de um dos maiores percalços até agora enfrentado! Mas como sempre sobrevivemos, superamos, evoluímos! E passados 10 anos, cá estamos!

Para esta edição, estava com imensas dificuldades em escolher um título para o editorial, até que me lembrei daquilo que nos acontece, a todos nós que desenvolvemos e criamos tecnologia! Aquelas situações em que escrevemos algo, ou ligamos algo, e acreditamos com todas as forças, que vai funcionar, ainda que seja algo temporário! E nessa perene memória lembrei-me de um comentário que li, no recentemente tornado público, código fonte desenvolvido para o modulo lunar da missão Apollo 11, que colocou o primeiro Homem na lua! Um singelo comentário quase que humorístico, onde se pode ler “Temporary, I hope hope hope”.

Continuar a ler

O meu primeiro Jogo em MonoGame

Muitos programadores chegaram ao mundo da programação através do fascínio do desenvolvimento de jogos. Desde as cassetes de ZX Spectrum, que demoravam eternidades a carregar e a criação de jogos era uma tarefa muitas vezes hercúlea, até aos dias de hoje, a criação de jogos percorreu um longo caminho e hoje podemos encontrar várias plataformas dedicadas ao seu desenvolvimento.

Para facilitar a criação de jogos para múltiplas plataformas foi criada a framework MonoGame, baseada na framework XNA da Microsoft, que apresenta uma grande facilidade de aprendizagem. Seguindo o princípio “Escreve uma vez, corre em todo o lado”, ao desenvolvermos um jogo com MonoGame, ele irá correr em iOS, Android, Mac OS X, tvOS, Windows, Linux, Playstation4 e mais.

Neste artigo vamos criar um jogo do princípio ao fim, passo a passo, desde a criação do interface de utilizador até ao adicionar da lógica de jogo.

Continuar a ler

O silêncio e os interrupts

Ainda que possa parecer o título de um “filme de tercei- ra categoria”, qualquer semelhança é apenas mera coincidência fruto de um qualquer infortúnio das palavras! Passando as brincadeiras, e mudando para o verdadeiro assunto do artigo, todos ouvimos falar de interrupts (sinal emitido pelo hardware ou software enviado ao processador, indicando que um evento necessita de atenção imediata), para os mais “vintage” da tecnologia que passaram pelos “tormentos” de configurar os interrupts nas BIOS cada vez que se acrescentava uma placa num PC, o conceito será certamente mais familiar, mas não se trata de interrupts de hardware ou software que escrevo! Trata-se antes das “interrupções” no trabalho de um programador e na relação das interrupções com a produtividade.

Continuar a ler