Arquivo da Categoria: A Programar

Artigos da secção “A Programar”.

Através dos Olhos de uma rede Neuronal

Neste artigo, vou apresentar um dos modelos de deep learning mais utilizados para o reconhecimento e classificação de imagens: a Convolution Neural Network (CNN), cujo objetivo é aprender a reconhecer objetos, através de um processo de treino de visualização sucessiva de imagens pré-classificadas.

As aplicações de um algoritmo capaz de classificar imagens, são fáceis de encontrar, desde o reconhecimento de escrita, condução autónoma, diagnóstico médico por imagem, etc.

Assim, uma CNN é uma Artificial Neural Network (ANN ou rede neuronal), tal como apresentada no artigo da edição anterior, cuja leitura é recomendada para uma melhor compreensão do presente artigo: Deep Learning passo a passo; onde os dados de entrada da rede, em vez de serem variáveis independentes são antes uma imagem pré-processada.

Continuar a ler

Introdução ao SonarQube

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 instância de SonarQube e como configurar diversos scanners para analisar os projetos Java e C# no meu Macbook.

Let’s start

Uma chamada de atenção antes de começar a usar a imagem Docker do SonarQube:

By default, the image will use an embedded H2 database that is not suited for production.

Continuar a ler

SEO e Desenvolvedores: unindo esforços para o desenvolvimento

É comum haver estresse entre SEOs e programadores. Como profissional SEO que está em contato com outros profissionais da área em todo o mundo e constantemente ouvindo as mesmas queixas, percebi que o motivo é muito simples: falta de diálogo entre profissionais e equipas.

De um lado, programadores que percebem muito de código e pouco de SEO. De outro, SEOs que percebem de performance e, por vezes, pouco de código. O SEO trabalhará sobre o site e o backoffice construído antes pelo programador, logo, qualquer falha no processo anterior causará falhas no trabalho do SEO.

Por outro lado, há muitos programadores que trabalham autonomamente ou em empresas cujo foco não é SEO, mas que compreendem a necessidade de algum conhecimento no assunto seja para entregar um melhor trabalho para o cliente ou para destacarem o próprio serviço. E, na realidade, o ideal é que essas duas áreas andassem de mãos dadas. Vejamos como integrá-las!

Continuar a ler

Blockchain

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 algumas coisas, mas é um tecnologia tão recente que ainda faz com que haja pouca informação. Blockchain é um conceito, um conceito definido como “base de dados descentralizada”. A primeira implementação deste conceito foi o bitcoin e desde então muita coisa aconteceu.

Mas sobre isso não me vou alongar muito porque a internet está repleta destas definições. Onde me pretendo alongar um pouco mais é mostrando ao leitor como pode fazer para criar/desenvolver algo.

Existem muitas implementações do conceito de blockchain, mas o que vai ser usado aqui é a Ethereum, que foi a primeira a trazer smart contracts. De forma muito breve, os smart contracts permitem desenvolver ações dentro da blockchain.

Continuar a ler

ASP.NET Core, Angular 5 – CRUD com Entity Framework

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 Core, Angular 5 e Entity Framework, seguindo a abordagem de base de dados primeiro “database first” suportando as operações básicas de uma base de dados (create, read, update e delete, CRUD).

O exemplo do artigo foi feito no Visual Studio 2017 Community, com .NET Core 2.1, Node.JS LTS e a base de dados em SQL Server 2017. Poderia ter sido feito o mesmo com ADO.NET, mas no caso optou-se por Entity Framework. De igual modo, poderia ter sido feito o mesmo exemplo com ReduxJS, mas novamente a opção prendeu-se com a framework Angular, pelo seu vasto suporte e utilização, bem como a facilidade com que se desenvolve de forma a suportar diversas plataformas.

Continuar a ler

Classes de infraestrutura: a classe Using

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 cada objeto represente uma entidade real, uma parte do todo que é o software, com uma responsabilidade bem definida e uma vida útil determinada pelo exercício dessa responsabilidade, e não mais do que isso. Uma classe utilitária ou um método estático acabam por ir contra o exercício desse objetivo.

No entanto, podemos separar o nosso design em duas partes distintas: domínio do problema e infraestrutura.

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