Arquivo da Categoria: Artigos

Artigos da Revista PROGRAMAR.

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 :)

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.

A primeira parte do livro aborda a configuração necessária para compilarmos o TypeScript para JS utilizando packages disponíveis para NodeJS, bem como a configuração de ferramentas de debug no Visual Studio Code. Embora existam outros IDEs que suportam a linguagem TS, o livro explora apenas o Visual Studio Code, sem referenciar outros, como por exemplo o WebStorm.

Todas as configurações necessárias são muito bem explicadas, permitindo a leitores sem qualquer experiência em JS ou TS reproduzi-las sem problemas.

A segunda e principal parte deste livro, aborda a linguagem TS de forma técnica, explicando a sua semântica, sintaxe, bem como as capacidades de validação e controlo realizadas aquando da compilação. São apresentados os seguintes temas: tipos básicos; funções; interfaces; classes; outros tipos; módulos.

De uma forma muito concisa e com exemplos práticos, toda esta parte do livro demonstra o grande potencial do TS, principalmente a nível de prevenção de erros e aplicações técnicas da linguagem. Analisa, ainda, muitas das características próprias desta linguagem que, por exemplo, o JS não suporta. Algumas dessas características são a capacidade de utilização de tipos genéricos, interfaces e StrongType.

Na minha opinião, enquanto programador Java com conhecimentos pouco aprofundados em JS, penso que alguns utilizadores menos experientes poderão ter dificuldades em entender alguns conceitos adjacentes ao JS, pois não são explicados no contexto, apenas apresentados sucintamente.

Outro aspecto que gostaria de ter visto abordado neste livro é o “Async Await”, conceito familiar para programadores C# e JS, que já está disponível no Typescript desde a versão 1.7.

A terceira, e última, parte lança o desafio de criar um projecto, utilizando o conhecimento obtido na leitura deste livro.

Considero uma iniciativa positiva por parte do autor em criar este desafio aos leitores, pois desta forma permite consolidar os conhecimentos, aspecto que deveria estar mais presente em livros técnicos.

Apesar do TypeScript, devido à utilização de Angular em alguns projectos pessoais, não ser desconhecido para mim, achei este livro muito completo e útil para programadores com ou sem experiência em TypeScript.

Parabéns ao autor Luís Abreu e à Editora FCA por este excelente livro e por terem abordado o TypeScript que, na minha opinião, vem conquistar programadores de Java, C# e PHP e incentivar a utilização do TypeScript em projectos.

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

Blockchain and Merkle Tree

A bitcoin é o nome de batismo de uma criptomoeda que teve um enorme impacto quando foi libertada na Internet e também todo o conceito e tecnologia em seu redor foi alvo de pura análise e investigação nos últimos anos. A aceitação desta criptomoeda foi de tal maneira exponencial que se refletiu de imediato na sua crescente valorização no mercado [1].

Uma das tecnologias base da bitcoin é a blockchain, que representa uma solução efetiva para resolver o problema das transações duplicadas (double-spent) numa rede de pares (peer-to-peer ou p2p). No jargão do bitcoin, a blockchain não é mais que um ledger (um ‘livro-razão’) que guarda o registo de todas as transações ocorridas na rede. Esta tecnologia apareceu de facto na altura certa. Ela permite a implementação de sistemas descentralizados em redes p2p sem a necessidade de uma trusted third party como forma de validar transações ou ações num dado ecossistema. Ao invés disso, cada par na rede possui uma cópia do livro-razão onde consegue efetuar todas as validações necessárias sem a necessidade eminente desse terceiro nó de comunicação onde supostamente estaria localizado unicamente o “livro-razão”.

Continuar a ler

RGPD

Nos últimos tempos muito se tem falado sobre uma determinada sigla… a GDPR ou RGPD… aqui na PROGRAMAR decidimos dar uma olhadela neste assunto. Para ficarmos esclarecidos e ajudarmos o leitor a ficar mais esclarecido. E é este o motivo pelo qual este artigo surgiu.

Assim sendo vamos a isto… em português a sigla significa Regulamento Geral de Proteção de Dados (RGPD), também conhecida por GDPR – General Data Protection Regulation.

Todos nós sabemos que cada vez mais informação é poder. Vivemos num mundo em que tecnologia e informação andam cada vez mais de mãos dadas.

Continuar a ler