Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Revista PROGRAMAR

  • artigos
    200
  • comentários
    0
  • visualizações
    131032

Autores deste blog

  • staff 152
  • jpaulino 17
  • anolsi 16
  • apocsantos 6
  • Rui Carlos 4
  • Hipnoted 2
  • HecKel 1
  • pedrotuga 1
  • _JR_ 1

Sobre este blog

Artigos neste blog

 

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. Ler mais…

staff

staff

 

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). Ler mais…

staff

staff

 

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. Ler mais…

staff

staff

 

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. Ler mais…

staff

staff

 

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.

staff

staff

 

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.

staff

staff

 

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: Ler mais…

staff

staff

 

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

staff

staff

 

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.

staff

staff

 

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. Ler mais…

staff

staff

 

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”. Ler mais…

staff

staff

 

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”. Ler mais…

staff

staff

 

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. Ler mais…

staff

staff

 

Sophia, a humanoide

Nos próximos dias vai decorrer em Lisboa mais uma edição do WebSummit. Espera-se que mais uma vez este evento seja um sucesso. Contudo este artigo não é sobre sobre o WebSummit, mas sim sobre uma participante especial da cimeira que nos despertou a atenção. Dia 7 de Novembro sobe ao palco, Sophia um robot humanoide. E o que é que este humanoide tem de especial pode perguntar o caro leitor…? Sophia foi a primeira humanoide a obter o estatuto de cidadã. Este facto ocorreu no final do mês de Outubro sendo que o Reino da Arábia Saudita concedeu a Sophia oficialmente o estatuto de cidadã do país. E sim, esta foi uma decisão polémica. A verdade é que um país com costumes muito próprios como a Arábia Saudita concedeu a cidadania à Sophia, logo a mesma é uma cidadã desse país. Muitos dizem que a humanoide tem mais direito do que as mulheres desse mesmo país. E isto sim, é algo controverso. Voltando um pouco atras, Sophia foi criada pela Hanson Robotics, pela mão do CEO da empresa, o Dr. David Hanson. Este senhor tem já reputação de criar robôs que parecem e atuam de forma humana. Sophia foi criada para ser um robot social, o seu design foi projetado para poder ser uma mais-valia para ajudar nos cuidados de saúde, terapia, educação e aplicações de atendimento ao cliente. É um facto de que os robots são projetados para serem parecidos com os humanos mas a verdade é que a Sophia é talvez o robot mais avançado do mundo neste aspeto das parecenças humanas. Ler mais…

staff

staff

 

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. Ler mais…

staff

staff

 

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 Carreira) 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!

staff

staff

 

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”! No passado mês de Junho, tive a oportunidade de ver como um conjunto de geeks (developers, makers, arquitectos, engenheiros, gente das mais diversas áreas), começou a organizar-se numa rede social, para usar os seus conhecimentos e talentos, para fazer tentar fazer a diferença que ´”nós geeks” podemos fazer, para mudar o mundo fazendo-o um pouco melhor! Esta edição, gostava de a dedicar a todos os que fazem diferença, não ficando a ver “o tempo passar”, mas se inquietam todos os dias, para fazer a diferença nas mais diversas áreas , nos mais diversos sectores, nas mais diversas situações! Aqueles que independentemente de tudo, decidem estar inquietos e fazer algo! A todos esses, dedico-vos a revista e deixo-vos o muito obrigado por serem inquietos! Pois como tive oportunidade de ler, “Muda uma vida, muda o Mundo”, obrigado por mudarem o Mundo! Até à próxima edição, boas leituras!
António Santos

staff

staff

 

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. Ler mais…

staff

staff

 

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. Ler mais…

staff

staff

 

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). Ler mais…

staff

staff

 

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. Hardware Neste projecto será usado um NodeMCU e um Módulo VS1053, ambos disponíveis na net. A corrente neste caso concreto é fornecida por uma derivação da alimentação do leitor de cassetes áudio, neste caso o equipamento “up-ciclado”, tinha uma saída de 5V DC que foi aproveitada para este efeito.

staff

staff

 

Sonoff RF

Equipamento: Sonoff RF Fabricante: Itead SKU: IM15116003 Dimensões: (C)88*(L)38*(A)23mm Nesta edição pela primeira vez será feita uma review de um equipamento/componente mais destinado ao pessoal “maker” e aos entusiastas do IoT. Neste caso é um Sonoff RF, basicamente um relé controlado remotamente, bastante engraçado para domótica e outros projetos de IoT. Ler mais…

staff

staff

 

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. Ler mais…

staff

staff

 

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. Ler mais…

staff

staff

 

Cursores: O Bom, o Mau e o SQL…

O Bom Uma simples query SQL permite visualizar informação (retornada em formato tabular), sendo essa informação lida por um qualquer programa (app, site, etc.). Mas o que acontece se quisermos que o próprio motor SQL trate a informação? Consideremos uma tabela de colaboradores duma empresa. Todos os meses temos que processar o ordenado. Para isso executamos algo (e.g. um stored procedure), que tem toda a “magia” e complexidade lá dentro. Mas precisamos de executar tantas vezes quantos registos tivermos. Isso não é possível com um simples SELECT. Aqui entram os cursores. São uma figura demoníaca muito mal tratada, mas que se virmos bem são até bastantes simples. Ler mais…

staff

staff

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.