Kernel Panic: Fatal Exception

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 à comunidade! Somos a “exception”, que alguns acham “fatal exception”, sem retornar e sem “catch”, numa espécie de loop interminável!

Continuar a ler

Raspberry Pi Hadoop

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 alguns exemplos demonstrativos.

Continuar a ler

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

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 tentado em realizar algumas experiências envolvendo o desenvolvimento de uma aplicação utilizando Java como linguagem de programação.

Continuar a ler

JUnit

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), assert de Exception melhorado, agrupar testes por Tags, etc.

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

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 principais para a criação de uma aplicação móvel.

Continuar a ler

Lua – Linguagem de Programação – Parte 13

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 tange a definição e uso de sub-rotinas (métodos).

Continuar a ler

Tipos de dados int e variantes na linguagem C

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 do compilador gcc 5.3.1, e uma plataforma de 64 bits Lubuntu 17.04 com o gcc 6.3.0. A primeira é designada por L32, a segunda por L64. Note-se que ambos as versões do compilador usam nativamente a norma C11 (2011) da linguagem C.

Tipos de dados int

Como em muitas outras linguagens de programação, a linguagem C define um conjunto de tipos de dados inteiros. São exemplos os tipos de dados signed char, signed short, signed int e signed long e as variantes sem sinal, unsigned char, unsigned short, unsigned int e unsigned long. Na revisão à linguagem designada por norma C99 foi acrescentado o tipo inteiro long long, nas variantes com (signed) e sem (unsigned) sinal.

Continuar a ler

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

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 disponibilizar uma página de Internet ou framework mas permite muito mais do que isso mais a frente vou demonstrar algumas funcionalidades.

Continuar a ler

ESP32 – MicroPython

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, 448KiB de ROM para funções internas e de arranque, 520KiB de SRAM para colocarmos o nosso código e por fim a cereja no topo do bolo é o facto ser constituído por 2 módulos de conectividade um Bluetooth Low Energy e Wi-Fi 802.11/b/g/n/e/i, comparando com o ESP8266 tem o módulo BLE a mais, tem muito mais memória e muito mais processamento, e não esquecendo que os 2 cores permitem agora executar código em paralelo, coisa que raramente acontece nos micro-controladores comuns de baixo custo, sim este ESP32 custa por volta de 6 euros e pode ser adquirido em http://aliexpress.com.

Na imagem abaixo podemos visualizar a arquitectura do ESP32.

Pomar Musical

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.