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.

Começando pela capa do livro, o leitor mais atento vai verificar que o autor trata as bibliotecas de código como livrarias, bem… para um programador livrarias é um sitio onde compramos livros, já bibliotecas no contexto informático, são boas composições de código que nós facilitam a vida no desenvolvimento de novas aplicações, no entanto é um mero clichê.

Iniciando a leitura do livro começamos com um belo resumo dos excelentes 8 capítulos que compõem o livro, deixando qualquer leitor entusiasmado para ler na totalidade. O termo livrarias parece ter desaparecido nas primeiras páginas, sendo agora tratado pelo termo correcto bibliotecas, mas… aparentemente foi falso alarme já que o autor utiliza tanto um termo como outro ao longo do livro. Esquecendo o termo livrarias, viro o foco para plataforma Node.js, aqui o autor consegue passar perfeitamente a mensagem utilizando poucas palavras e descomplicando o assunto.

No primeiro capítulo a autor justifica o porquê do Node.js, explica a arquitectura assíncrona de eventos, já que esta é uma das grandes potencialidades no Node.js.

De seguida, ainda no capítulo 1 mostra como configurar o ambiente de desenvolvimento, aqui o autor utiliza uma maquina Windows para exemplificar passo a passo a configuração. Ambientes em Mac OS ou Linux não são tratados neste livro, algo que me deixou um pouco desiludido.

No capítulo 2 as coisas começam a ficar interessantes, aqui o módulo Express é explicado detalhadamente e com exemplos, este módulo permite ao programador definir rotas e componentes middleware. Este é um óptimo capitulo para ficar com boas bases para criar uma aplicação baseada na arquitectura MVC (Model-View-Controller).

O capítulo 3 vem falar sobre motores de templates, nomeadamente o Jade e Vash. O autor explica com mais detalhe o Jade e um pouco mais sucintamente o Vash. Aconselha também ao leitor a utilizar o Jade. No entanto se já efetuou alguma pesquisa sobre motores de templates ou se está a começou a usar, deve ter especial atenção que o motor Jade passou agora a chamar-se Pug, o autor não faz referência a isso como é normal, pois o livro começou a ser escrito em 2015 e a alteração de nome de Jade para Pug é muito recente. De qualquer forma tudo o que é descrito no livro funciona perfeitamente e mesmo que o leitor tente instalar o Jade o repositório NPM sabe apontar para o módulo correcto.

Para aqueles que adoram criar interfaces espectaculares, então o capítulo 4 é o indicado.

Aqui o autor explica muito detalhadamente como melhorar a nossa aplicação e aumentar a rapidez com que desenvolvemos. Utilitários como Bootstrap, Bower e Grunt são muito importantes para quem vai desenvolver ou desenvolve aplicações Node.js no seu dia a dia.

O Bootstrap permite ao programador criar uma interface que responda bem em qualquer tamanho de ecrã, seja um iMac de 27 polegadas ou um smartphone. O Bower permite gerir bibliotecas otimizando as dependências comuns entre elas, já o Grunt faz com que tarefas rotineiras sejam realizadas automaticamente. Se o leitor ainda não é um expert, não tem de ter receio porque tudo é explicado passo a passo com uma linguagem muito simples.

Temas sobre bases de dados e Single Page Applications são tratados nos capítulos 5 e 6. Para os aficionados do NoSQL o autor explica como utilizar o MongoDB em aplicações Node.js, mas também não deixa de lado as bases de dados relacionais, e explica também mais sucintamente como as utilizar, sendo que é com bases de dados NoSQL que o Node.js se sente como peixe na água afirma o autor.

Chegando quase ao fim do livro temos o capítulo 7, nos dias que correm este tema não deve ser deixado ao acaso. Nele o autor fala sobre como proteger as aplicações com autenticação e limitar acesso a funcionalidades com base numa autorização. Para o efeito é utilizado o módulo Passport que em conjunto com o módulo Express já conhecido do capítulo 2, tornam as coisas muito simples para o programador.

Por fim o capítulo 8 é dedicado a tecnologias gerais, nomeadamente criptografia, sockets, gestão de buffers e acesso ao sistema de ficheiros. Como leitor e programador recomendo muito este último capítulo, já que nos dá uma ideia do que existe para criarmos aplicações profissionais e robustas.

Com isto deixo os meus parabéns ao Eng. Luís Abreu autor deste excelente livro, não só pela escrita directa e clara, mas também pela segurança e certeza com que aborda os temas deste livro, dando sempre o seu parecer com base na sua vasta experiência.

Recomendo este livro tanto para quem quer iniciar a programação na plataforma Node.js, e para quem quer ter um bom livro de consulta ao lado do teclado.

Obrigado FCA pela publicação e António Santos pelo envio :).

Aguardo pelo proximo :)