Segmentation Fault

60 edições.

Gostámos do número 60! É um número interessante!

Há 60 segundos num 1 minuto. Há 60 minutos numa hora. Na tabela ANSI de proteção, 60 equivale ao relé de balanço de tensão. E para nós, aqui na PROGRAMAR, 60 edições são a continuidade de um projeto.

Segmentation Fault é o tema deste editorial, porque em teoria poderia acontecer em qualquer contexto! Uma vez que se trata de uma tentativa de acesso “não autorizado” a algo!

Continuar a ler

Raspberry Pi + ESP8266 = “Light”

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 pesquisarmos um pouco, facilmente temos acesso aos mais variados exemplos de passos a seguir para de facto conseguimos ter, de forma fácil e económica, a tecnologia do nosso lado, a fazer as coisas que queremos. Mas por vezes “fazer o click” não é assim tão simples…

A ideia deste artigo surgiu para responder a um pedido de “várias famílias”… porque apesar de haver tutoriais e mais tutoriais acerca deste assunto, às vezes é preciso um elo de ligação. E aqui na PROGRAMAR, nesta edição comemorativa, tentámos criar esse pequeno elo de ligação. Este artigo é então dedicado aos leitores que querem iniciar a descoberta da “casa inteligente”, mas que ainda são assolados por dúvidas. Porque às vezes essas pequenas dúvidas são a diferença entre “Ii e funcionou!” e “Mas porque raio isto não funciona se fiz todos os passos?!”

Continuar a ler

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

Água Fresca, Scooby!

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 calor! Quem tem cão, sabem bem que a água fresca é a melhor forma de o nosso amigo de quatro patas se refrescar! Isto pela simples razão dos cães não transpirarem, como outros mamíferos! Os cães perdem temperatura principalmente pela respiração e pela ingestão de líquidos. Se não estivermos em casa o dia todo, e partindo do princípio que o cão não sabe abrir a torneira, a água no recipiente aquece e deixa de estar fresca!

O objectivo deste “projecto”, por assim dizer, é simples, vamos disponibilizar água fresca ao animal, de forma automática e evitando desperdícios!

Continuar a ler

Windows ML (ML.NET C#)

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 passar em branco… No passado mês de Maio, foi lançada pela Fundação .NET a biblioteca ML.NET.

Vamos por partes… ML significa Machine Learning… ou seja a aprendizagem da máquina, o que nos leva para a área da inteligência artificial, que nos dias de hoje está cada vez mais ativa.

Continuar a ler