Projecto em destaque na PROGRAMAR: Hydriney

Os cálculos renais, popularmente conhecidos por “pedras nos rins” são um dos problemas mais comuns na área clínica de Urologia. Os cálculos renais formam-se por meio de cristais que se separam da urina e que ao unirem-se formam pedras.

Os doentes com cálculos de ácido úrico tomam o medicamento Uralyt-U. O calendário de controlo é um folheto associado ao medicamento e que permite o apoio fulcral ao tratamento da doença. Este artefacto permite ao doente registar valores para que o médico possa verificar se a situação do paciente se encontra em ordem.

Continuar a ler

Revista PROGRAMAR nº 58 — Outubro de 2017

A Revista PROGRAMAR está de volta com mais uma edição. Desta vez temos como tema de capa o artigo Raspberry Pi Hadoop, da autoria de António C. Santos. Adicionalmente, nesta edição poderá encontrar mais 14 artigos, que listamos de seguida:

  • Correndo uma Aplicação Web Java em Azure, passo a passo (Nuno Cancelo)
  • Junit (Raphael Amoedo)
  • Criar uma aplicação móvel com jQuery Mobile (Jorge Cardoso)
  • Lua – Linguagem de Programação – Parte 13 (Augusto Manzano)
  • Tipos de dados int e variantes na linguagem C (Patricio Domingues, Victor Távora)
  • Feed RSS em C# .NET Core no Azure Web App em Linux (Ricardo Cabral)
  • ESP32 – MICROPYTHON (Bruno Horta)
  • Pomar Musical (Bruno Santos)
  • C# – De List para DataTable em 30 + 2 linhas! (António Santos)
  • Análise do livro Node.js – Construção de Aplicações Web (Bruno Horta)
  • Análise do livro TypeScript – O Javascript moderno para criação de aplicações (João Sousa)
  • A Revolução da Blockchain – A Tecnologia do Futuro (Pedro Tavares)
  • Segurança em Aplicações Android (Pedro Tavares)
  • Blockchain and Merkle Tree (Pedro Tavares)
  • RGPD (Rita Peres)
  • Sophia, a Humanoide (Rita Peres)
  • Projecto em destaque na PROGRAMAR: Hydriney (Tânia Valente)

Clique aqui para fazer o download desta Edição!

The Geeks Will Inherit the Earth

Apesar de possivelmente controverso o título deste editorial, não é para controvérsias o meu objectivo, na sua escrita.

A verdade é que possivelmente muitos dos leitores, se identificam como “geeks”! Como pessoas curiosas, dedicadas, ávidas de conhecimento, dispostas a caminhar as outras milhas, mesmo na adversidade! Pessoas extraordinárias!

Com este Verão já em curso, quente,  até por vezes demasiado quente, sonolento e complexo, entre o calor, a praia, montes de festivais, livros e notícias que dão vontade de não as ver, muitas vezes me lembro da música, que serve de título a esta edição! “Os geeks herdarão a terra”!

Continuar a ler

Raspberry Pi Alexa

Introdução

Existem diversos serviços de assistente pessoal inteligente, no entanto um dos populares em IoT é a Alexa da Amazon, que vem por default do dispositivo Amazon Echo Dot.

A Alexa, denominada com base na antiga biblioteca de Alexandria, é a assistente pessoal inteligente desenvolvida pela Amazon, que permite que se comunique por voz com um dispositivo, se lhe dêem comandos e o dispositivo execute ou controle equipamentos, reproduza música, efectue pesquisas, etc… Este artigo surge após o desafio colocado pelo Bruno Horta, no grupo Movimento Maker Portugal e que eu tive o prazer de aceitar e concluir dentro do prazo previsto!

Por detrás deste serviço existe um sistema de processamento de linguagem natural, desenvolvido pela Amazon, que permite que a voz humana seja compreendida, permitindo a execução das instruções dadas pelo utilizador.

Continuar a ler

Pseudorandom Number Generators (PRNGs)

Pseudo-random Number Generators, ou simplesmente PRNGs, são algoritmos para geração de números com propriedades semelhantes à dos números aleatórios (random numbers). Os PRNGs produzem sequências de números aparentemente independentes, normalmente seguindo uma distribuição uniforme, com base numa expressão matemática. São normalmente definidos pelos seguintes aspetos: o seu output é determinístico, periódico e depende de um valor de inicialização, conhecido como seed. Este tipo de algoritmos (os PRNGs) são normalmente mais rápidos que a geração de números realmente aleatórios no /dev/random ou /dev/urandom (por exemplo, disponíveis numa distribuição Linux), uma vez que o SO usa o input de dados de interfaces de hardware, e.g., o rato, tráfego de rede da NIC (Network Interface Controller), etc.

Um outro exemplo de um true random number generator é o random.org, onde são usados dados de ruído atmosférico como input de aleatoriedade.

Continuar a ler

Algoritmo Back-Propagation

Nesta edição trazemos até vós, caros leitores, uma abordagem ao algoritmo de backpropagation. Este algoritmo foi desenvolvido nos anos 80 por Rumelhant, Hinton e Williams e é um dos algoritmos mais conhecidos das redes neuronais.

De forma a melhor introduzirmos o tema, uma rede neuronal artificial é inspirada no funcionamento nosso próprio sistema funcional enquanto humanos. Ou seja, é uma rede que aprende a cada experiência vivenciada. Um dos constituintes principais do sistema nervoso humano é o neurónio. Esta célula é responsável pela condução dos impulsos nervosos, e comunicam entre si através de sinapses. Por sua vez a sinapse é a região onde dois neurónios entram em contacto entre si, sendo que os impulsos recebidos, por exemplo, pelo neurónio X, são processados passando a informação resultante ao neurónio Y por meio de uma substância neurotransmissora. Sem querer alongar muito este tema biológico, podemos apenas dizer que os neurónios são formados por dendritos (funcionam como terminais de entrada), pelo corpo central (onde ocorre o processamento) e pelos axónios (que por sua vez funcionam como terminais de saída).

Continuar a ler

Up-ciclar a Velhinha Aparelhagem Hi-Fi

Introdução

É comum ouvir falar em reciclar objectos, equipamentos, etc… referindo-se ao envio para desmontagem e reciclagem de materiais. Claro que a reciclagem e os três Rs, são algo de bom que podemos fazer pelo ambiente. No entanto este artigo foca-se no “up-cicle”, que basicamente consiste no processo de pegar num equipamento já obsoleto, mas ainda funcional e acrescentar-lhe funcionalidades, de forma a torná-lo novamente útil.

Ao longo deste artigo iremos construir o circuito para transmissão de áudio e web-rádio para um equipamento Hi-Fi padrão, de forma a mantermos o equipamento “actualizado”, na actualidade tecnológica! No caso concreto em que isto foi feito, teve por objectivo aproveitar uma antiga aparelhagem Hi-Fi, já com uns bons anos, mas que ainda tem um bom amplificador áudio e umas boas colunas e alguns efeitos de equalização merecedores de “alguma extensão de vida”. Este projecto foi num instructable, bastante interessante, sobre este mesmo tema e inspirado no “up-cycle” do Bem Heck show.

Continuar a ler

De DataTable para ficheiro CSV (mais comum do que seria agradável)

Tal como o título sugere, é mais comum do que seria “agradável”, ter de fazer transformações de dados de DataTable, para ficheiros CSV separados por vírgulas ou ponto-e-vírgula, para se transferirem dados nas mais diversas situações! Seria muito mais agradável usar um formato tipo XML ou mesmo JSON do que usar CSV! No entanto o CSV está para ficar, tendo em 2005 sido alvo de RFC para formato comum e Mime Type para transferência de ficheiros (RFC4188).

Ao longo do artigo será apresentada uma classe, bastante simples para escrever dados oriundos de uma DataTable para ficheiro em formato CSV de acordo com o RFC4180 e posteriormente em formato CSV separado por ponto-e-vírgula, conforme é comummente usado para transferência de dados entre sistemas “legados”.

Os dados armazenados num objecto do tipo DataTable, encontram-se num formato suportado pela framework .Net para armazenamento em memória. Como se trata de um objecto existem diversos métodos bastante úteis que podem ser chamados. Muitos deles bastante úteis quando se pretende trabalhar com os dados em memória. No entanto a classe DataTable não tem suporte para escrita de ficheiros CSV.

Continuar a ler

A “Arte da Guerra” e a tecnologia

É possível que para muitos o título possa parecer de uma estranheza absurda, quase atroz talvez, ou mesmo sem nexo. No entanto o título indica exactamente o que é pretendido, ao abordar a aplicação de um livro que data do século V AC, escrito por um estratega militar chinês, Sun Tzu.

O que pode ter um texto sobre guerra a ver com software? Talvez mais do que se imagina, pois muitos dos princípios descritos no livro, têm uma aplicação bastante mais vasta que a vertente bélica, havendo inclusive já estudos sobre a aplicação desses princípios a vertentes como a gestão e o negócio.

O livro, encontra-se dividido em treze capítulos, cada um dedicado a um aspecto concreto, que apesar da amplitude do texto, denota sempre a vertente bélica do mesmo. No entanto isto não invalida a sua aplicação ao software! Ora vejamos.

Continuar a ler