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

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.

Continuar a ler

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!