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.

De List para DataTable em 30 + 2 linhas!

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:

Continuar a ler

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

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 dedicar mais atenção a esta bela plataforma, que quando aplicada correctamente pode ser uma melhor opção a outras de maior porte, por exemplo o Java EE ou .Net.

Continuar a ler

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

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á-nos a conhecer o TypeScript (TS), uma linguagem/superset do JS, com o objetivo de aproximar linguagens como Java e C# ao Javascript, ao disponibilizar algumas características presentes nestas linguagens. O livro intitulado TypeScript, o JavaScript Moderno para Criação de Aplicações de Luís Abreu, editado pela FCA, permite ao leitor iniciar ou aprofundar o seu estudo em relação ao TS, dividindo-se três partes principais: instalação e configuração; descrição técnica; projecto exemplo.

Continuar a ler

A Revolução da Blockchain – A Tecnologia do Futuro

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 razão, tem o objetivo de guardar registos de transações e os registos de todas essas transações são atualizados em cada nó da rede e não apenas no nó central de gestão (porque efetivamente esse nó não existe). Sempre que é consumada uma transação na rede todos os nós da rede são informados. Ele funciona com base numa cadeia de blocos, nada mais do que um conjunto de informações que são ligadas a cadeias adjacentes. Estes blocos são públicos, no sentido em que todos os nós da rede podem aceder a essa informação. Porém, estes blocos quando são processados não podem ser alterados nem apagados. Além disso, novos registos só podem ser feitos mediante um processo de auditoria.

Continuar a ler

Segurança em Aplicações Android

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, ao longo do código? Sim.
  • É possível construir um apk totalmente seguro — à prova de bala?

Este artigo tem o objetivo de passar alguns procedimentos de forma a que qualquer developer, ou fulano com conhecimentos básicos sobre Android, consiga auditar sua própria aplicação antes que esta seja publicada e maliciosamente explorada.

E respondendo à última questão: -”Nim”.

Continuar a ler