[0] Raspberry Pi + ESP8266 = "Light" | Revista PROGRAMAR

Rita Peres - Hoje em dia, muito se tem falado do conceito de casa inteligente através de IoT. Isto é, tornar a nossa casa inteligente através de pequenos projectos. Se

[0] Através dos Olhos de uma rede Neuronal

Sérgio Saraiva - Neste artigo, vou apresentar um dos modelos de deep learning mais utilizados para o reconhecimento e classificação de imagens: a Convolution Neural

[0] Introdução ao SonarQube

Nuno Cancelo - Na edição 56 falei sobre a gestão da qualidade do código e introduzi o SonarQube e algumas das suas funcionalidades. Neste artigo, vou configurar uma

[0] SEO e Desenvolvedores: unindo esforços para o desenvolvimento

Aline Rossi - É comum haver estresse entre SEOs e programadores. Como profissional SEO que está em contato com outros profissionais da área em todo o mundo e

[0] Blockchain | Revista PROGRAMAR

Bernardo Vieira - Muitos dizem que vai mudar o mundo, outros acreditam que pode vir a ser um problema. A verdade é que está a revolucionar a forma como se fazem e pensam

[0] ASP.NET Core, Angular 5 - CRUD com Entity Framework | Revista PROGRAMAR

António Pedro Cunha Santos - Ao longo deste artigo, que espero ser o primeiro de uma série, irá ser abordado como criar uma aplicação web, com apenas um form, recorrendo a ASP.NET

[0] Classes de infraestrutura: a classe Using

Nuno Picado - Em Object Oriented Programming (OOP), classes utilitárias são de evitar. O mesmo se pode dizer de métodos estáticos. Um bom design OOP deve procurar que

[0] Água Fresca, Scooby!

António Pedro Cunha Santos - Ao longo deste artigo vai ser construído um projecto bastante simples que tenta resolver um problema igualmente simples! O dos animais de estimação e o

[0] Windows ML (ML.NET C#)

Rita Peres - Agora que a época das férias está praticamente terminada, trazemos para os leitores mais distraídos, um tema que aqui na Programar achámos que não deveria

[0] Os Geeks "herdarão" o mundo! | Revista PROGRAMAR

António Pedro Cunha Santos - O título parece agressivo, mas não é de todo essa a minha intenção! Dito isto vamos ao artigo propriamente dito! Em 2008, nos EUA foi eleito o primeiro

[0] Pessoas, Dados & Privacidade

Fernando Martins - O tema da privacidade está na ordem do dia, devido essencialmente ao escândalo da Cambridge Analytica com os dados do Facebook e ao Regulamento Geral de

[0] Criação Rápida de Sites Responsivos com Bootstrap

António Pedro Cunha Santos - Nesta edição, trazemos até vós leitores um livro de uma temática cada vez mais actual, uma vez que cada vez mais usamos a internet “em todo o lado”! Cada

[0] Business Intelligence – Da Informação ao Conhecimento

Vitor Veiga - Sendo esta a primeira review para a Revista Programar, queria desde já agradecer ao António Santos e à FCA pela oportunidade e pelo envio do livro. O

[0] Criação Rápida de Sites Responsivos com Bootstrap

António Pedro Cunha Santos - Nesta edição, trazemos até vós leitores um livro de uma temática cada vez mais actual, uma vez que cada vez mais usamos a internet “em todo o lado”! Cada

[0] Explorar Ethereum com Raspberry Pi

Adrew Back - A tecnologia blockchain ainda é um tópico incrivelmente quente e tem sido assim há algum tempo, devido em grande parte à riqueza que as criptomoedas –

[0] Crypto-Jacking via ARP Poisoning em Redes Wi-fi

Pedro Tavares - Nestes últimos tempos, minerar criptomoedas com recursos de outros utilizadores tem-se tornado numa forma viável de ganhar dinheiro online, deixando de

[0] HTTPS – Que Informação é Protegida

Pedro Tavares - Atualmente o tráfego web começa a adotar um protocolo padrão e generalizado — o HTTPS. No passado era comum associar ligações seguras (HTTPSecure) a

[0] Como Surge o RGPD e Quem é o Data Protection Officer?

Pedro Tavares - A 25 de maio de 2018 entrou em vigor o Regulamento Geral de Proteção dos Dados Pessoais (RGPD). São procedimentos que terão de ser observados pelas

[0] Processo de Desenvolvimento de Software, o Ciclo de Vida Clássico Sobre a Ótica da Norma ISO/IEC/IEEE 12207:2017

Augusto Manzano - O processo de desenvolvimento de software pode ser entendido, segundo Macoratti (2014) como “um conjunto de atividades, métodos, ferramentas e práticas

[0] Quality Assurance – mas afinal do que se trata?

Patrícia Duarte Mateus - Embora a qualidade de um produto ou serviço seja fundamental, até há pouco tempo muitas empresas tendiam a dedicar muito grande parte do tempo disponível

[0] Entrevista a Prof. Nuno Garcia

Rita Peres - Revista PROGRAMAR (RP): Fale-nos um pouco de si e do seu percurso na tecnologia. Nuno Garcia (NG): O primeiro computador em que mexi (e foi mesmo só

[0] Revista PROGRAMAR nº 60 — Setembro de 2018

António Pedro Cunha Santos - A Revista PROGRAMAR está de volta com mais uma edição. Desta vez temos como tema de capa o artigo CRaspberry + ESP8266 = “Light”, da autoria de António C.

[0] O vale da sombra do ; “ponto-e-vírgula”

António Pedro Cunha Santos - Existem diversas expressões para se referirem a “horas negras”, locais temíveis, etc... etc... etc... Mas entre todos os adeptos de tecnologia, o mais universal e conhecido, creio que seja o “vale da sombra do ponto-e-vírgula”, por onde, todos aqueles que escrevem código, acabam por passar, uma e outra vez, seja a

[0] Computação em Grelha, cross-platform usando BOINC

António Pedro Cunha Santos - Ao longo de diversas edições fui escrevendo sobre clusters recorrendo ao SBC (single board computer) Raspberry Pi. Tendo em conta que cada vez existem mais dispositivos inteligentes (smart devices), dei por mim a pensar no eventual uso de tais dispositivos, que passam uma parte substancial do seu tempo de “vida útil”

[0] Introdução ao Sonatype Nexus

Nuno Cancelo - Há algum tempo atrás, enfrentei um desafio ao gerir/ manter um projeto de software. Porque o cliente em que estava trabalhava na altura, tinha múltiplas equipas de desenvolvimento a trabalhar em múltiplas tecnologias e, admitamos, trabalhar com equipas que não tem estrutura e organização é um desespero. Então,

[0] Adobe PhoneGap Build: para construção de aplicações móveis híbridas

Jorge Cardoso - Introdução No artigo Criar uma aplicação móvel com jQuery Mobile vimos como usar a framework jQuery Mobile para programar uma aplicação Web direcionada a dispositivos móveis. Neste artigo, vamos ver como usar o serviço PhoneGap Build da Adobe para gerar uma aplicação para Android. Adobe PhoneGap PhoneGap é uma

[0] SoapUI: Uma ferramenta muito útil para quem desenvolve web services

Sérgio Ildefonso - O SoapUI O SoapUI é uma aplicação open source utilizada em testes de web services de arquitecturas orientadas a serviços (SOA) ou transferências de estado representacional (REST). É uma aplicação multi-plataforma desenvolvida em Java. Existe também uma versão profissional que suporta múltiplas origens de dados de

[0] Xamarin Forms – usando Xamarin Effects

Sara Silva - Este artigo tem como objetivo mostrar como usar efeitos no desenvolvimento de aplicações móveis usando a framework Xamarin Forms. Introdução A framework Xamarin Forms permite abstrair a camada de user interface entre as diversas plataformas, ie, através desta framework podemos escrever um único código que define toda

[0] Deep Learning Passo a Passo

Sérgio Saraiva - Muito se tem falado ultimamente no tema da Inteligência Artificial (IA) respetivas ramificações, razão pela qual decidi trazer um exemplo prático sobre o tema, nomeadamente um caso de uso de uma rede neuronal artificial (RNA), que através de um processo de treino (análise sucessiva de observações), infere/aprende

[0] Introdução ao Sass

Ricardo Queirós - Introdução O desenvolvimento para a web está a mudar! Hoje em dia é incontornável que um programador web frontend não domine apenas a tríade HTML+CSS+JavaScript, mas que tenha um conhecimento (nem que seja básico) do que são pré-processadores, gestor de dependências, ferramentas de automatização de tarefas de

[0] C# – Excel | Revista PROGRAMAR

Rita Peres - Ainda é muito usual depararmos-mos com ficheiros de processamento Excel, ou não fosse o Excel a mais famosa folha de cálculo até aos dias de hoje. Neste artigo, procuramos de uma forma simples mostrar ao caro leitor como podemos tirar partido do processamento do Excel, fazendo um pequeno programa que nos permite

[0] Como Configurar o Wi-Fi no ESP8266

Bruno Horta - O nosso famoso ESP8266 veio para ficar, cada vez mais este microcontrolador é utilizado para desenvolver dispositivos fantásticos, é verdade que o ESP pode ser utilizado como um simples MCU, mas é a sua capacidade de se ligar a uma rede Wi-Fi, faz dele a escolha perfeita no que toca dispositivos IoT. Este artigo tem foco em três diferentes soluções que permitem programar o ESP de forma a que este se consiga ligar a uma rede Wi-Fi. É sabido que da primeira vez que o ESP é energizado este tem de

[0] Cifras e mais Cifras

António Pedro Cunha Santos - Neste artigo decidi “revisitar” um tema que sempre me despertou interesse e que tive de abordar num projecto que fiz em 2015. O objectivo era encriptar, de forma a que fosse possível desencriptar, dados, bastando para tal saber um conjunto de informações (identificador, chave e chave-mestra), uma vez que a cada dado, apenas corresponde um identificador (fechadura) e para se chegar à chave que acabará por abrir, são precisas duas chaves (chave e a chave-mestra). Quase como a caixa forte do tio p

[0] A elegância da simplicidade

António Pedro Cunha Santos - UNIX is very simple, it just needs a genius to understand its simplicity. Começar um artigo por uma citação não será propriamente ortodoxo, não obstante, sendo uma coluna de opinião, de alguém que “não se importa”, não creio que seja “grave”! Ler mais…

[0] SQL Curtas #3: Mais um conjunto de dúvidas

André Melancia - Aqui ficam mais algumas dúvidas que nos surgiram nas últimas semanas em encontros presenciais e nas redes sociais. O que é a “collation”? Uma “collation” é a forma que cada SGBD (Sistema de Gestão de Bases de Dados) tem de “ordenar” e de “comparar” um conjunto de dados. Ler mais…

[0] Business Intelligence no SQL Server

Rita Peres - Nesta edição trazemos até vós, caros leitores, a review acerca do novo livro da FCA do autor Alberto Magalhães – Business Intelligence no SQL Server . Na sua essência as bases de dados são simplesmente contentores de informação. Quando um determinado sistema permanece durante anos sem grandes alterações, todos nós sabemos que acrescentar mais uma feature ou outra facilmente implica quase sempre a adição de mais uma tabelinha para facilmente termos dados “à mão”, tornando-se mais uns “pontos” pa

[0] Segurança Prática em Sistemas e Redes Com Linux

António Pedro Cunha Santos - Um livro destinado a professores, estudantes, profissionais e interessados nesta temática, mais actual que nunca, aborda de forma concisa e prática os conceitos teóricos subjacentes ao tema, de forma bastante sintética, mas sem perder a essência do que é mais relevante, para quem se “aventura” nesta temática, bem como para quem pretende consultar informação. Ao longo de onze capítulos, são abordados temas como encriptação, recorrendo a PGP (Pretty Good Privacy), certificados digitais (x.509), a

[0] Vulnerabilidades Web em 2017

Pedro Tavares - Foi registado um número recorde de vulnerabilidades em 2017 nas aplicações web, incluindo categorias bem conhecidas, como XSS, mas também novas categorias, como desserialização insegura. O número de vulnerabilidades na IoT também cresceu descontroladamente e com um impacto extremamente severo. Também o PHP e o WordPress continuam de mãos dadas no que toca a vulnerabilidades em CMS e server-side. Por fim, uma vulnerabilidade de dia zero (zero day vulnerability) afetou o Apache Struts e que conto

[0] RGPD – O Antes e o Depois

Pedro Tavares - O Regulamento Geral de Protecção de Dados (RGPD) entra em vigor a 25 de Maio de 2018, com o intuito de tornar as leis da União Europeia (UE) mais homogéneas, em termos do tratamento e processamento de dados dos cidadãos. Mas as novas normas repercutem-se em todo o mundo, já que mesmo as empresas de fora da UE terão

[0] SoftEther VPN Project, implementação em Windows, GNU/Linux, MacOS, Android, iOS

António Pedro Cunha Santos - É comum falar-se em VPNs, de forma a que pareçam complexas, caras e difíceis de configurar, mas como veremos ao longo deste artigo, são até fáceis de configurar e de instalar, até mesmo em dispositivos móveis. O que é? Uma VPN é uma virtual private network, ou seja, uma rede virtual privada em que a comunicação

[0] Testes em Sistemas Orientados a Objetos: Modelo Tradicional vs Modelo OO

Augusto Manzano - Para estabelecer as estratégias dessa apresentação é fundamental considerar há grande discussão existente sobre o uso dos paradigmas de programação estruturada (PE) também chamada programação procedimental, e a programação orientada a objetos (POO). O termo paradigma, no contexto do desenvolvimento de software se

[0] Microsoft 365: Ferramentas de Deploy, Segurança e Compliance

Nuno Silva - Introdução Os constantes ataques informáticos às organizações com o objetivo de subtrair dados ou provocar uma disrupção do negócio, levam as empresas e administradores de sistemas a ter um foco permanente na segurança e a procurar ferramentas que os ajudem a prevenir, proteger e responder a estas ameaças. A pensar

[0] CRM – Plataforma ou Customizado

Pedro Azevedo - Neste artigo quero levantar a problemática que passa muitas vezes pela nossa cabeça: devemos utilizar uma plataforma para um determinado objetivo onde já temos muita coisa implementada, ou devemos avançar para um desenvolvimento customizado para podermos ter as coisas como queremos e não termos que pagar

[0] SQL vs NoSQL

Rita Peres - Hoje em dia cada vez mais as bases de dados estão a ocupar um lugar de destaque no nosso mundo tecnológico. Queremos guardar os nossos dados, ter acesso aos mesmos o mais rápido possível e processá-los para termos respostas rápidas. Antigamente os dados guardados eram específicos, em “tabelas contentores”. Hoje, principalmente com Big Data, o … Continuar a lerSQL vs NoSQL →

[0] Entrevista a Bruno Horta

António Pedro Cunha Santos - Revista PROGRAMAR (RP): Fala-me um pouco de ti e do teu percurso na tecnologia. Bruno Horta (BH): Bem aos 14 anos os meus pais deram-me o meu primeiro computador, até a data apenas tinha mexido um Spectrum 128k de uns amigos, no entanto depois daquele dia que recebi o meu computador e podia explorar o … Continuar a lerEntrevista a Bruno Horta →

[0] Python: História e Ascendência

Danilo Morais da Silva - Este artigo aborda a história e ascendência da linguagem de programação Python, destacando a sua ascendência diante da comunidade de desenvolvedores, uma vez que a mesma encontra-se em constante adesão sendo implantada e implementada em diversos sistemas, hardwares e aplicações com uma proposta simplificada e que colabora significativamente com os recursos tecnológicos disponíveis na atualidade. … Continuar a lerPython: História e Ascendência →

[0] A Revolução da Blockchain – A Tecnologia do Futuro

Pedro Tavares - Desde o início do ano de 2009 que uma moeda virtual tem vindo a marcar a diferença no horizonte dos pagamentos digitais. O principal ingrediente do bitcoin [1] é uma tecnologia inderrubável que até então nem tinha sido muito notada — a blockchain [1] [2] (white paper). A blockchain é uma tecnologia sofisticada que permite … Continuar a lerA Revolução da Blockchain – A Tecnologia do Futuro →

[0] Node.js - Construção de Aplicações Web | Revista PROGRAMAR

Bruno Horta - Olá a todos, esta é a primeira vez que faço uma review para a revista Programar, queria desde já agradecer ao António Santos e à FCA pela oportunidade e pelo envio do livro. Quem me conhece, sabe que dou preferência a um livro impresso aos digitais, apesar de ser um aficionado das tecnologias, a leitura … Continuar a lerNode.js – Construção de Aplicações Web →

[0] Criar uma aplicação móvel com jQuery Mobile

Jorge Cardoso - Introdução Já muito foi escrito sobre a biblioteca jQuery para JavaScript, incluindo alguns artigos na Revista Programar (por exemplo, Mitos do jQuery e jQuery: Usar ou Não Usar?). No entanto, existem outros projectos “irmãos” do projecto jQuery que são igualmente interessantes para programado- res e designers Web, como as frameworks jQuery Mobile e jQuery UI. … Continuar a lerCriar uma aplicação móvel com jQuery Mobile →

[0] Correndo uma Aplicação Web Java em Azure, passo a passo

Nuno Cancelo - Como alguns vós sabem, eu pertenço à organização da Comunidade NetPonto e há uns tempos organizamos o Visual Studio Launch Party nas instalações da Microsoft Portugal. Nesse evento, tivemos o Miguel Caldas a realizar o Keynote onde ele, entre muitas mensagens, destacou: “Nós queremos correr o vosso software” É uma mensagem simples, mas poderosa, que … Continuar a lerCorrendo uma Aplicação Web Java em Azure, passo a passo →

[0] TypeScript: o Javascript moderno para criação de aplicações

JoaoSousa - O Javascript (JS) tem vindo a tornar-se uma linguagem de programação cada vez mais popular, sendo neste momento usada para desenvolver aplicações standalone, APIs, aplicações Web, entre outras. Apesar da sua grande versatilidade, o JS é diferente de outras linguagens muito utilizadas, como Java e C#. Esta linguagem não suporta o uso de tipos genéricos, … Continuar a lerTypeScript: o Javascript moderno para criação de aplicações →

[0] Lua – Linguagem de Programação – Parte 13

Augusto Manzano - Neste artigo são apresentadas algumas operações complementares ao conjunto de informações indicadas em outros artigos, tais como: passagem de parâmetro por matriz, funções anónimas (lambda), funções aninhadas (clousure), simulação do uso e tratamento de exceções, matrizes internas e compilação de programas. Passagem de parâmetro por matriz A linguagem Lua diferencia-se em diversos detalhes de linguagens … Continuar a lerLua – Linguagem de Programação – Parte 13 →

[0] Revista PROGRAMAR nº 59 — Fevereiro de 2018

António Pedro Cunha Santos - A Revista PROGRAMAR está de volta com mais uma edição. Desta vez temos como tema de capa o artigo Computação em Grelha, cross-platform usando BOINC, da autoria de António C. Santos. Adicionalmente, nesta edição poderá encontrar mais 23 artigos, que listamos de seguida: Introdução ao Sonatype Nexus – Nuno Cancelo Adobe PhoneGap Build para construção de aplicações … Continuar a lerRevista PROGRAMAR nº 59 — Fevereiro de 2018 →

[0] Kernel Panic: Fatal Exception

António Pedro Cunha Santos - Existem imensas piadas, umas mais elaboradas outras menos elaboradas, em volta de “exceptions” (excepções)! Uma excepção, indica mais do que ser uma “excepção”, indica algo que não correu como esperado, ou como previsto, ou como suposto, em suma “como”! ;) No meio de tantas excepções (exceptions), e sem “entrar em pânico”, afinal não somos um “kernel” qualquer, aparece a “exception” à regra, que somos todos que lê-mos a PROGRAMAR, escrevemos, participamos, dedicamos o nosso tempo a

[0] Raspberry Pi Hadoop

António Pedro Cunha Santos - Continuando as “aventuras” com o Raspberry Pi e a temática do processamento paralelo e distribuído, sobre o qual escrevi na edição 48 em Março de 2015, decidi desta vez trazer uma outra temática interessante, para quem gosta destas “aventuras”. Desta vez em vez de ser MPICH será Apache Hadoop! Ao longo deste artigo, em que se prevê que o leitor não disponha de conhecimento prévio sobre Hadoop, irá ser montado um cluster Apache Hadoop, recorrendo a unidades Raspberry Pi, e executados

[0] Correndo uma Aplicação Web Java em Azure, passo a passo

Nuno Cancelo - Como alguns vós sabem, eu pertenço à organização da Comunidade NetPonto e há uns tempos organizamos o Visual Studio Launch Party nas instalações da Microsoft Portugal. Nesse evento, tivemos o Miguel Caldas a realizar o Keynote onde ele, entre muitas mensagens, destacou: “Nós queremos correr o vosso software” É uma mensagem simples, mas poderosa, que mostra a mudança da postura perante outras tecnologias que não sejam .NET, como seja o PHP ou o Java. Já há algum tempo que estou ten

[0] JUnit

Raphael Amoedo - JUnit é um framework open-source para escrever e executar testes em Java. Com ele também é possível executar os asserts que verificam se uma condição é verdadeira. Recentemente (18/07/2017) foi lançada uma versão milestone (provavelmente não é uma versão final e completa) do JUnit 5, que necessita do Java 8. A primeira aparência é que existem várias funcionalidades legais, tais como testes parametrizados (poder passar vários parâmetros para um mesmo teste executar várias vezes

[0] Criar uma aplicação móvel com jQuery Mobile

Jorge Cardoso - Introdução Já muito foi escrito sobre a biblioteca jQuery para JavaScript, incluindo alguns artigos na Revista Programar (por exemplo, Mitos do jQuery e jQuery: Usar ou Não Usar? ). No entanto, existem outros projectos “irmãos” do projecto jQuery que são igualmente interessantes para programado- res e designers Web, como as frameworks jQuery Mobile e jQuery UI . Neste artigo, foco-me na jQuery Mobile explicando a sua filosofia de programação, e mostrando alguns dos componentes principai

[0] Lua – Linguagem de Programação – Parte 13

Augusto Manzano - Neste artigo são apresentadas algumas operações complementares ao conjunto de informações indicadas em outros artigos, tais como: passagem de parâmetro por matriz, funções anónimas (lambda), funções aninhadas (clousure), simulação do uso e tratamento de exceções, matrizes internas e compilação de programas. Passagem de parâmetro por matriz A linguagem Lua diferencia-se em diversos detalhes de linguagens de programação estruturadas e orientadas a objeto, principalmente o que

[0] Tipos de dados int e variantes na linguagem C

Patricio Domingues - Introdução Este artigo foca os tipos de dados int e variantes disponíveis na linguagem de programação C. Na parte inicial, o artigo apresenta os tipos de dados inteiros ditos tradicionais. Seguidamente, o artigo introduz os tipos inteiros orientados para a portabilidade, tais como o int8_t , uint_fast64_t e similares. Os principais conceitos são ilustrados com exemplos, executados, sempre que conveniente, em duas plataformas Linux: uma plataforma de 32 bits Lubuntu 16.04 com a versão 5.3.1

[0] Feed RSS em C# .NET Core no Azure Web App em Linux

Ricardo Cabral - Neste artigo vou demonstrar como criar uma aplicação web Model-view controller (MVC) que vai ler o Feed RSS dos artigos da Revista PROGRAMAR em C# .NET Core 1.1 para Docker. A aplicação vai ser disponibilizada no Azure Web App em Linux através Docker Hub. Azure Web App O serviço Azure Web App permite que uma aplicação web desenvolvida em .NET, .NET Core, Java, Node.js, PHP, Python e Ruby esteja disponível em qualquer utilizador através da Internet. Para alguns o Web App é uma forma de disponibi

[0] ESP32 – MicroPython

Bruno Horta - Para aqueles que andam no mundo da Internet das Coisas o micro controlador ESP8266 já deve ser um conhecido, para quem nunca ouviu falar aconselho a experimentar, pois desenvolver dispositivos que tenham que ser ligados a uma rede Wi-Fi nunca foi tão simples. Então se o ESP8266 é assim tão bom porque é que eu estou aqui a falar do ESP32… bem este super micro controlador… sim super porque conta 2 cores de 240MHz dentro de um microprocessador Tensilica Xtensa de 32 bit Ultra Low Power, 448K

[0] Pomar Musical

Bruno Santos - O pomar musical foi um projeto feito, inicialmente, para o evento Eletrónica e Informática, organizado pela Associação de Informática de Castelo Branco. Este evento visava mostrar projetos amadores e profissionais que se faziam, não só em Castelo Branco, mas em todo o país. O pomar musical usa um Raspberry PI 2 modelo B e o Adafruit Capacitive Touch Shield MPR121 para o Raspberry PI e é programado usando a linguagem Python.

[0] De List para DataTable em 30 + 2 linhas!

António Pedro Cunha Santos - Não será de todo estranho, pelo menos para alguns, a necessidade de converter uma lista de um dado tipo para Data- table, em C#. O mais comum, seria criar um novo objecto do tipo DataTable, criar as colunas e iterar a lista, adicionando as linhas ao datatable, a cada iteração. Isto seria no mínimo trabalhoso, além de pouco eficiente. O código seria pouco elegante e semelhante ao seguinte: Ler mais…

[0] Node.js – Construção de Aplicações Web

Bruno Horta - Olá a todos, esta é a primeira vez que faço uma review para a revista Programar, queria desde já agradecer ao António Santos e à FCA pela oportunidade e pelo envio do livro. Quem me conhece, sabe que dou preferência a um livro impresso aos digitais, apesar de ser um aficionado das tecnologias, a leitura de um livro fisico traz-me um conforto e uma concentração que não consigo nos electrónicos. O livro Node.js não poderia ter chegado em melhor altura, pois neste momento estou a dedic

[0] TypeScript: o Javascript moderno para criação de aplicações

JoaoSousa - O Javascript (JS) tem vindo a tornar-se uma linguagem de programação cada vez mais popular, sendo neste momento usada para desenvolver aplicações standalone, APIs, aplicações Web, entre outras. Apesar da sua grande versatilidade, o JS é diferente de outras linguagens muito utilizadas, como Java e C#. Esta linguagem não suporta o uso de tipos genéricos, interfaces e não é StrongTyped, características fundamentais para muitos programadores. O livro que apresentamos nesta edição dá-

[0] A Revolução da Blockchain – A Tecnologia do Futuro

Pedro Tavares - Desde o início do ano de 2009 que uma moeda virtual tem vindo a marcar a diferença no horizonte dos pagamentos digitais. O principal ingrediente do bitcoin [1] é uma tecnologia inderrubável que até então nem tinha sido muito notada — a blockchain [1] [2] (white paper). A blockchain é uma tecnologia sofisticada que permite salvaguardar registos de uma forma distribuída e não centralizada uma vez que não existe uma entidade de gestão central. Este sistema também conhecido como livro ra

[0] Segurança em Aplicações Android

Pedro Tavares - O ficheiro de uma aplicação Android é chamado de Android Package (apk), e não é mais que um ficheiro Zone Information Protocol (ZIP) comprimido. Começamos com algumas breves questões: É possível descomprimir um apk? Sim. Então, também é possível ler o código-fonte de um apk? Sim. Os apks são reversíveis através de engenharia reversa? Sim. Isso quer dizer que, é possível encontrar dados sensíveis como, por exemplo, palavras-passe e Application Programming Interface (API) keys

[0] Blockchain and Merkle Tree

Pedro Tavares - A bitcoin é o nome de batismo de uma criptomoeda que teve um enorme impacto quando foi libertada na Internet e também todo o conceito e tecnologia em seu redor foi alvo de pura análise e investigação nos últimos anos. A aceitação desta criptomoeda foi de tal maneira exponencial que se refletiu de imediato na sua crescente valorização no mercado [1]. Uma das tecnologias base da bitcoin é a blockchain, que representa uma solução efetiva para resolver o problema das transações dupli

[0] RGPD

Rita Peres - Nos últimos tempos muito se tem falado sobre uma determinada sigla… a GDPR ou RGPD… aqui na PROGRAMAR decidimos dar uma olhadela neste assunto. Para ficarmos esclarecidos e ajudarmos o leitor a ficar mais esclarecido. E é este o motivo pelo qual este artigo surgiu. Assim sendo vamos a isto… em português a sigla significa Regulamento Geral de Proteção de Dados (RGPD), também conhecida por GDPR – General Data Protection Regulation. Todos nós sabemos que cada vez mais informação é poder.

[0] Sophia, a humanoide

Rita Peres - Nos próximos dias vai decorrer em Lisboa mais uma edição do WebSummit. Espera-se que mais uma vez este evento seja um sucesso. Contudo este artigo não é sobre sobre o WebSummit, mas sim sobre uma participante especial da cimeira que nos despertou a atenção. Dia 7 de Novembro sobe ao palco, Sophia um robot humanoide. E o que é que este humanoide tem de especial pode perguntar o caro leitor…? Sophia foi a primeira humanoide a obter o estatuto de cidadã. Este facto ocorreu no final do mê

[0] Projecto em destaque na PROGRAMAR: Hydriney

Tânia Valente - Os cálculos renais, popularmente conhecidos por “pedras nos rins” são um dos problemas mais comuns na área clínica de Urologia. Os cálculos renais formam-se por meio de cristais que se separam da urina e que ao unirem-se formam pedras. Os doentes com cálculos de ácido úrico tomam o medicamento Uralyt-U. O calendário de controlo é … Continuar a lerProjecto em destaque na PROGRAMAR: Hydriney →

[0] Revista PROGRAMAR nº 58 — Outubro de 2017

António Pedro Cunha Santos - A Revista PROGRAMAR está de volta com mais uma edição. Desta vez temos como tema de capa o artigo Raspberry Pi Hadoop, da autoria de António C. Santos. Adicionalmente, nesta edição poderá encontrar mais 14 artigos, que listamos de seguida: Correndo uma Aplicação Web Java em Azure, passo a passo (Nuno Cancelo) Junit – (Raphael Amoedo) Criar … Continuar a lerRevista PROGRAMAR nº 58 — Outubro de 2017 →

[0] The Geeks Will Inherit the Earth

António Pedro Cunha Santos - Apesar de possivelmente controverso o título deste editorial, não é para controvérsias o meu objectivo, na sua escrita. A verdade é que possivelmente muitos dos leitores, se identificam como “geeks”! Como pessoas curiosas, dedicadas, ávidas de conhecimento, dispostas a caminhar as outras milhas, mesmo na adversidade! Pessoas extraordinárias! Com este Verão já em curso, quente,  … Continuar a lerThe Geeks Will Inherit the Earth →

[0] Raspberry Pi Alexa

António Pedro Cunha Santos - Introdução Existem diversos serviços de assistente pessoal inteligente, no entanto um dos populares em IoT é a Alexa da Amazon, que vem por default do dispositivo Amazon Echo Dot. A Alexa, denominada com base na antiga biblioteca de Alexandria, é a assistente pessoal inteligente desenvolvida pela Amazon, que permite que se comunique por voz com … Continuar a lerRaspberry Pi Alexa →

[0] Pseudorandom Number Generators (PRNGs)

Pedro Tavares - Pseudo-random Number Generators, ou simplesmente PRNGs, são algoritmos para geração de números com propriedades semelhantes à dos números aleatórios (random numbers). Os PRNGs produzem sequências de números aparentemente independentes, normalmente seguindo uma distribuição uniforme, com base numa expressão matemática. São normalmente definidos pelos seguintes aspetos: o seu output é determinístico, periódico e depende de um … Continuar a lerPseudorandom Number Generators (PRNGs) →

[0] Algoritmo Back-Propagation

Rita Peres - Nesta edição trazemos até vós, caros leitores, uma abordagem ao algoritmo de backpropagation. Este algoritmo foi desenvolvido nos anos 80 por Rumelhant, Hinton e Williams e é um dos algoritmos mais conhecidos das redes neuronais. De forma a melhor introduzirmos o tema, uma rede neuronal artificial é inspirada no funcionamento nosso próprio sistema funcional enquanto … Continuar a lerAlgoritmo Back-Propagation →

[0] Up-ciclar a Velhinha Aparelhagem Hi-Fi

António Pedro Cunha Santos - Introdução É comum ouvir falar em reciclar objectos, equipamentos, etc… referindo-se ao envio para desmontagem e reciclagem de materiais. Claro que a reciclagem e os três Rs, são algo de bom que podemos fazer pelo ambiente. No entanto este artigo foca-se no “up-cicle”, que basicamente consiste no processo de pegar num equipamento já obsoleto, mas … Continuar a lerUp-ciclar a Velhinha Aparelhagem Hi-Fi →

[0] Sonoff RF | Revista PROGRAMAR

António Pedro Cunha Santos - Equipamento: Sonoff RF Fabricante: Itead SKU: IM15116003 Dimensões: (C)88*(L)38*(A)23mm Nesta edição pela primeira vez será feita uma review de um equipamento/componente mais destinado ao pessoal “maker” e aos entusiastas do IoT. Neste caso é um Sonoff RF, basicamente um relé controlado remotamente, bastante engraçado para domótica e outros projetos de IoT. Especificações gerais Voltagem de … Continuar a lerSonoff RF →

[0] De DataTable para ficheiro CSV (mais comum do que seria agradável)

António Pedro Cunha Santos - Tal como o título sugere, é mais comum do que seria “agradável”, ter de fazer transformações de dados de DataTable, para ficheiros CSV separados por vírgulas ou ponto-e-vírgula, para se transferirem dados nas mais diversas situações! Seria muito mais agradável usar um formato tipo XML ou mesmo JSON do que usar CSV! No entanto o … Continuar a lerDe DataTable para ficheiro CSV (mais comum do que seria agradável) →

[0] A “Arte da Guerra” e a tecnologia

António Pedro Cunha Santos - É possível que para muitos o título possa parecer de uma estranheza absurda, quase atroz talvez, ou mesmo sem nexo. No entanto o título indica exactamente o que é pretendido, ao abordar a aplicação de um livro que data do século V AC, escrito por um estratega militar chinês, Sun Tzu. O que pode ter … Continuar a lerA “Arte da Guerra” e a tecnologia →

[0] Cursores: O Bom, o Mau e o SQL... | Revista PROGRAMAR

André Melancia - O Bom Uma simples query SQL permite visualizar informação (retornada em formato tabular), sendo essa informação lida por um qualquer programa (app, site, etc.). Mas o que acontece se quisermos que o próprio motor SQL trate a informação? Consideremos uma tabela de colaboradores duma empresa. Todos os meses temos que processar o ordenado. Para isso … Continuar a lerCursores: O Bom, o Mau e o SQL… →

[0] Desenvolvimento em Swift para iOS

Nuno Cancelo - Nesta edição vamos fazer a review do Livro Desenvolvimento em Swift para iOS escrito por Luís Marcelino e Catarina Silva, ambos professores no Politécnico de Leiria e co-autores do livro Desenvolvimento em iOS – iPhone, iPad e iPod Touch – Curso Completo, também editado pela FCA. Ao longo de dez capítulos os autores constroem uma … Continuar a lerDesenvolvimento em Swift para iOS →

[0] Android: Bases de Dados e Geolocalização

Rita Peres - Nesta edição trazemos até vós a review de um dos livros mais recentes da FCA Editora, o Android: Bases de Dados e Geolocalização de Ricardo Queirós. Como seria de esperar, este é um livro com a qualidade habitual que este autor já nos habituou. Direccionado para os profissionais de informática (e também para os entusiastas … Continuar a lerAndroid: Bases de Dados e Geolocalização →

[0] Como criar um programa auto-replicativo em assembly, para GNU/Linux

António Pedro Cunha Santos - A arte da criação de programas auto-replicativos parece estar perdida no tempo. Não podemos confundir um programa auto-replicativo com malware, cavalos de tróia, worms, etc. Um programa auto-replicativo não executa nenhum tipo de código para danificar hardware ou software, pelo contrário apenas tenta replicar-se de diversas formas ou métodos e é por norma escrito numa … Continuar a lerComo criar um programa auto-replicativo em assembly, para GNU/Linux →

[0] Windows 10: Ferramentas de Segurança

Nuno Silva - Introdução As ameaças de segurança aos dispositivos, dados e informações são um assunto importante no dia a dia e evoluem com frequência. Por isso, é necessário contar com hardware, software e ferramentas que sirvam como uma barreira para os riscos que os utilizadores enfrentam em atividades como navegar na internet, instalar aplicações ou simplesmente ligar o … Continuar a lerWindows 10: Ferramentas de Segurança →

[0] Modelos de Avaliação de Interface

Augusto Manzano - Um dos pontos mais importantes, apontados no estudo das Interfaces Humano-Computador (IHC), é a preocupação em desenvolver sistemas voltados ao usuário a partir da premissa “desenvolver sistemas pensando e considerando o usuário em todo o seu processo” (SILVA, 2008, p. 92). É fundamental haver a preocupação do desenvolvimento do software em atender as especificidades e … Continuar a lerModelos de Avaliação de Interface →

[0] Redes neurais artificiais: o que são? Onde vivem? Do que se alimentam?

Alex Lattaro - Atualmente, muito se fala em inteligência artificial. O Google investe, a Microsoft, a Amazon, a Uber, o Facebook, a Apple… E essa lista não para por aqui. Nós sabemos que é uma tecnologia pujante, que, juntamente com a correta análise do Big Data, certamente será uma das ferramentas mais poderosas que nós teremos no futuro … Continuar a lerRedes neurais artificiais: o que são? Onde vivem? Do que se alimentam? →

[0] Mini Maker Faire Castelo Branco

Rita Peres - Decorreu no passado dia 10 de Junho a Mini Maker Faire em Castelo Branco. Correndo o risco de ser suspeita, uma vez que Castelo Branco será sempre a minha cidade de eleição, é com orgulho que vos digo que este foi um evento que decorreu com todo o sucesso esperado. A PROGRAMAR como Media Partner … Continuar a lerMini Maker Faire Castelo Branco →

[0] Revista PROGRAMAR nº 57 — Julho de 2017

António Pedro Cunha Santos - A Revista PROGRAMAR está de volta com mais uma edição. Desta vez temos como tema de capa o artigo Raspberry Pi Alexa, da autoria de António C. Santos. Adicionalmente, nesta edição poderá encontrar mais 14 artigos, que listamos de seguida: Pseudorandom Number Generators (PRNGs) (Pedro Tavares) Algoritmo BackPropagation (Rita Peres) UP-CICLAR a velinha apareglhagem HI-FI (António … Continuar a lerRevista PROGRAMAR nº 57 — Julho de 2017 →

[0] Revista PROGRAMAR nº 57 — Julho de 2017

António Pedro Cunha Santos - A Revista PROGRAMAR está de volta com mais uma edição. Desta vez temos como tema de capa o artigo Raspberry Pi Alexa, da autoria de António C. Santos. Adicionalmente, nesta edição poderá encontrar mais 14 artigos, que listamos de seguida: Pseudorandom Number Generators (PRNGs) (Pedro Tavares) Algoritmo BackPropagation (Rita Peres) UP-CICLAR a velinha apareglhagem HI-FI (António … Continuar a lerRevista PROGRAMAR nº 57 — Julho de 2017 →

[0] 04 Too many open files (no handles left)

António Pedro Cunha Santos - Esta é a 26ª edição em que vos escrevo, fez este mês cinco anos e sete meses que tenho a honra e o privilégio de editar a Revista PROGRAMAR, tantas vezes lutando conta o tempo, escrevendo até altas horas, escrevendo mais do que seria “habitual”, fazendo mais um “git push”, esticando os limites, contornando o … Continuar a ler04 Too many open files (no handles left) →

[0] Os segredos do lado negro da BIOS

António Pedro Cunha Santos - Introdução A BIOS Ao longo dos anos, muito tem sido escrito sobre possíveis vectores de vulnerabilidade utilizando a bios. No entanto, além do antigo vírus de Chernobyl, que acabou por apagar a BIOS, pouco tem sido dito. Tal como amplamente descrito, a BIOS é um firmware de arranque designado a ser executado assim que um … Continuar a lerOs segredos do lado negro da BIOS →

[0] Otimizando os sistemas embebidos

Nuno Cancelo - Recentemente calhou em conversa com um amigo meu sobre programação de sistemas embebidos, visto que ele estava a avançar com um projeto muito interessante com um equipamento semelhante ao Arduino. Esta conversa relembrou-me os tempos em que programava em ANSI C (de 89) num LPC2106 da Phillips e aos tempos que andava a aprender ANSI … Continuar a lerOtimizando os sistemas embebidos →

[0] Tipos em Python

Nilo Menezes - Python sempre foi uma linguagem fortemente tipada, para surpresa de muitos que confundem a tipagem dinâmica com a ausência de tipos. Na realidade, os tipos em Python funcionam tão bem e de forma tão automática que muitas vezes esquecemos que eles existem. Mas nem tudo é perfeito. Hoje existem programas gigantescos escritos em Python e os … Continuar a lerTipos em Python →

[0] Gerir a Qualidade do Código

Nuno Cancelo - Vamos dar uma martelada? Quem nunca ouviu esta expressão enquanto trabalhava numa aplicação, quer seja no seu desenvolvimento, quer seja na sua manutenção. Este tipo de prática não abona em nada as nossas aplicações e com o tempo acaba por ser um procedimento, uma feature da aplicação que não nos conseguimos livrar. Este simples exemplo, … Continuar a lerGerir a Qualidade do Código →

[0] Cifra Feistel

Rita Peres - Nesta edição decidimos trazer até si, caro leitor, um artigo sobre uma cifra que data ao ano de 1973. Criada por Horst Feistel enquanto trabalhava na IBM, este algoritmo pertence à criptografia simétrica. Para os leitores que não estão tão habituados a este tema, existem dois tipos de cifras. A simétrica e a assimétrica. Em … Continuar a lerCifra Feistel →

[0] NodeMCU e Telegram Bots

António Pedro Cunha Santos - Introdução Existem imensas formas interessantes de colocar um equipamento a comunicar, de forma mais ou menos simples. Na edição 51, foi abordada esta temática mais focada na utilização de sockets, para comunicar com o dispositivo. Continuando um pouco a temática, desta feita, é sobre a utilização do popular software de chat Telegram, utilizando chatbots, para … Continuar a lerNodeMCU e Telegram Bots →

[0] Introdução aos testes Unitários em C# com MS Unit Test

António Pedro Cunha Santos - Introdução Neste artigo será apresentada uma introdução básica aos testes unitários exemplificando como os escrever na linguagem C#, usando as ferramentas que acompanham o Visual Studio Community. Escrever testes de caso é uma parte importante do teste de software. Testar software é sempre um “quebra-cabeças” para programadores e testadores pois existem imensos tipos de casos … Continuar a lerIntrodução aos testes Unitários em C# com MS Unit Test →

[0] Depois da casa roubada, trancas na porta!

António Pedro Cunha Santos - Muito se tem falado desde a passada sexta-feira sobre cyber-segurança, mas antes disso pouco se dizia. Isso faz lembrar o ditado português, “depois da casa roubada, trancas na porta”. Ora bem, na passada sexta-feira, um ransomware, infectou imensos sistemas, colocando os dados reféns de um resgate a ser pago aos criadores do malware. Até aqui, … Continuar a lerDepois da casa roubada, trancas na porta! →