Revista PROGRAMAR nº 60 — Setembro de 2018

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. Santos e Rita Peres. Adicionalmente, nesta edição poderá encontrar mais 19 artigos, que listamos de seguida:

  • Através dos Olhos de uma rede Neuronal – Sérgio Saraiva
  • Introdução ao SonarQube – Nuno Cancelo
  • SEO e Desenvolvedores: Unindo esforços para o desenvolvimento – Aline Rossi
  • Blockchain – Bernardo Vieira
  • ASP.NET Core, Angular 5 – CRUD com Entity Framework – António Santos
  • Classes de infraestrutura: a classe Using – Nuno Picado
  • C# – Windows ML (ML.NET C#) – Rita Peres
  • Maker – Água fresca, scooby! – António Santos
  • Kernel Panic – Os Geeks “herdarão” o mundo! – António Santos
  • Core Dump – Pessoas, Dados & Privacidade – Fernando Martins
  • Retro Computing – Imperial March [BASIC] – António Santos
  • Review do livro: Business Intelligence – Da Informação ao Conhecimento 3. Edição Atualizada – Vitor Veiga
  • Review do livro: Criação Rápida de Sites Responsivos com Bootstrap – António Santos
  • DesignSpark – Explorar Ethereum com Raspberry Pi
  • Crypto-Jacking via ARP Poisoning em Redes Wi-fi – Pedro Tavares
  • HTTPS – Que Informação é Protegida – Pedro Tavares
  • Como Surge o RGPD e Quem é o Data Protection Officer? – Pedro Tavares
  • Processo de Desenvolvimento de Software, o Ciclo de Vida Clássico Sobre a Ótica da Norma ISO/IEC/IEEE 12207:2017 – Augusto Manzano
  • Quality Assurance – mas afinal do que se trata? – Patricia Mateus
  • CRM – Plataforma ou Customizado – Pedro Azevedo
  • Entrevista a: Prof. Nuno Garcia

Clique aqui para fazer o download desta Edição!

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

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 “voar” no ANSI-C, passando pelo Java, o C++, o PHP e o C#, para não falar em todas as outras linguagens…

Verdade se diga que algures, em algum momento na nossa vida de tecnologia, passaremos por esse “vale profundo”, onde reina a escuridão da sombra do ponto-e-vírgula e dos erros de compilação, onde a linha apontada pelo compilador nada tem a ver com a linha onde verdadeiramente falta o dito cujo mal-afamado ponto-e-vírgula!

Continuar a ler

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

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” em “idle” (sem utilização, mas ainda assim ligados), para tarefas de computação. Algo parecido com o SETI@Home, de há uns anos atrás, quando eu era bem mais novo e a internet por cá, ainda chegava por “dial-up”.

É resumidamente isso que vos apresento neste artigo! Uma plataforma simples de instalar e utilizar, dedicada à computação distribuída, utilizando diversas plataformas e diversos dispositivos, aproveitando o tempo destes equipamentos, quando estão por exemplo parados a carregar baterias ou ligados à corrente mas inactivos.

Continuar a ler

Introdução ao Sonatype Nexus

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, vagueei pela internet em busca de uma infraestrutura onde fosse possível guardar todos os artefactos dos “projetos”, independentemente da tecnologia utilizada. Foi então que me deparei com alguns, mas a minha predileção foi para Nexus Repository OSS versão 3.x.

Continuar a ler

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

Introdução

No artigo Criar uma aplicação móvel com jQuery Mobile [Programar #58] 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 framework de desenvolvimento de aplicações móveis híbridas. Aplicações híbridas são aplicações que combinam componentes nativos e componentes web. Do ponto de vista do utilizador e da plataforma móvel, uma aplicação híbrida é indistinguível de uma aplicação nativa. No entanto, internamente, uma aplicação híbrida utiliza um componente web view que contém a maioria do conteúdo e lógica da aplicação – ou seja, a aplicação é essencialmente programada como se de um aplicação web se tratasse. A framework PhoneGap, baseada em Apache Cordova, permite que as aplicações híbridas tenham acesso a funcionalidades nativas através de componentes específicos para cada plataforma móvel (e.g., Android, iOS, Windows) mas cuja interface é exposta em JavaScript (o programador não se preocupa com a plataforma).

Continuar a ler

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

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 testes, geração de testes automatizados, análise inteligente de pedidos, etc.

Entre outras funcionalidades, o SoapUI permite:

  • Invocação de web services
  • Inspecção de web services
  • Geração de testes de carga em web services
  • Geração de testes de segurança em web services
  • Geração de documentação de web services

Continuar a ler

Xamarin Forms – usando Xamarin Effects

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 a aplicação e que irá ter a sua representação gráfica respeitando é claro o controlos gráficos de cada plataforma. Refiro-me é claro às plataformas iOS, Android e Windows, cujo UX difere em alguns aspetos.

Continuar a ler

Deep Learning Passo a Passo

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 correlações existentes num conjunto de dados (dataset). Mas primeiro vamos definir os conceitos de: Inteligência Artificial, Machine Learning, Deep Learning, sendo artigo relativo a este último.Deep Learning: definições

Caso de uso

Mais do que os dados em si, o objetivo é apresentar na prática o funcionamento de uma RNA. Para o efeito, foram utilizados dados reais extraídos da base de dados pública do INE dos censos populacionais de 2011 (disponível online), onde a partir de um conjunto de variáveis não relacionados se vai tentar inferir se determinada zona populacional (subsecção estatística), tem mais mulheres ou homens (resposta binária).

Continuar a ler

Introdução ao Sass

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 building e de geração de estrutura de código, transpiladores, compiladores, minificadores, etc. Na verdade, estas ferramentas começam, cada vez mais, a fazer parte do workflow de desenvolvimento das nossas aplicações web. Mesmo não sendo uma exigência para o desenvolvimento, estas ferramentas podem economizar muito o tempo de um programador.

Quando uma página Web começa a ficar mais complexa, é frequente vermos vários ficheiros CSS com inúmeras regras e com um nível razoável de redundância. Uma forma de economizar tempo, e de manter todas essas regras de uma forma mais flexível, é através do uso de pré-processadores de CSS. Estas ferramentas usam recursos até aqui indisponíveis no contexto da criação de folhas de estilo. Desta forma, o código torna-se mais organizado, permitindo que os programadores trabalhem mais rapidamente e cometam menos erros.

Continuar a ler

C# – Excel

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 facilmente processar e criar novos ficheiros resultado partindo do Excel.

Para este artigo proponho algo simples, imaginemos uma empresa que produz vários tipos de brindes e merchandising. Os comerciais ao longo do mês vão criando encomendas dos vários clientes. A nossa empresa trabalha com dois armazéns distintos, mas o responsável pelo setor do armazém ao longo do mês recebe esses mesmos pedidos e regista os pedidos numa folha de Excel para lhes dar despacho. No final do período de processamento, o departamento financeiro precisa de saber ao certo qual o numero de encomendas efetuadas para poder emitir a fatura ao cliente final. Para este exemplo vamos considerar que vendemos três tipos de canetas. Azuis, pretas e vermelhas. Consideramos também que temos três clientes (somos uma pequena empresa) e que como é normal para cada cliente acordamos um valor específico de cada cor de caneta, sendo esse valor diferente para cada cliente.

Continuar a ler