Extrair dados do cartão de cidadão

Neste artigo vou demostrar como se podem obter dados do cartão de cidadão utilizando a linguagem de programação JAVA e validar os dados de identificação.

Porquê Java? Não vejo muitos artigos a utilizar Java e é uma linguagem que continua a ser utilizada nas universidades, nas empresas de desenvolvimento de software e não só. Já vi em fóruns de comunidades pedidos de ajuda para obter os dados do cartão de cidadão, mas o pedido que mais encontro é como obter a fotografia. Este artigo foi feito a pensar nessas questões. Também inclui funções de validação do número de bilhete de identidade e cartão de cidadão, número de identificação fiscal, número de identificação da segurança social e número de identificação bancária.

Continuar a ler

Android Monkey Test: Um “Macaco” ao Serviço dos Programadores Android

O processo de criar e desenvolver uma aplicação não passa apenas pela programação propriamente dita. Tudo começa pela análise de requisitos, planeamento, programação e por fim o teste ao que foi implementado para garantir que tudo funciona como o previsto.

Todos os programadores fazem testes (“debug”) às suas aplicações em busca de erros execução ou situações inesperadas que possam ocorrer no decorrer da execução da aplicação desenvolvida. É neste processo que a ferramenta Android Monkey Test é extremamente interessante para quem desenvolve para a plataforma móvel Android.

Continuar a ler

Programação (in)Segura – Transbordo de Memória

Introdução

O software assume cada vez mais uma importância primordial no nosso dia-a-dia. De facto, é crescente o número de dispositivos com o qual interagimos quotidianamente e cujo funcionamento está dependente de software. Exemplos incluem, obviamente, computadores e tablets, bem como dispositivos ditos inteligentes, como telemóveis, relógios e televisões. Outros exemplos abarcam sistemas de transportes como automóveis, aeronaves e barcos, e sistemas de domótica, para citar apenas alguns dos mais conhecidos. Dado a complexidade associada não só à criação e manutenção de programas informáticos como ainda dos sistemas que pretendem controlar, o software está sujeito a ocorrência de erros. Alguns desses erros podem ser aproveitados por indivíduos ou entidades com intenções maliciosas para subverter os dispositivos controlados, comprometendo deste modo, parcial ou totalmente, a segurança dos sistemas.

Este artigo analisa os erros do tipo transbordo de memória, em particular os que poderão ocorrer no segmento de pilha. O artigo foca alguns dos problemas de segurança que estão associados a situações de transbordo de memória afeta ao segmento de pilha. Os exemplos de código apresentados foram testados num sistema Linux – Lubuntu 14.04 / 32 bits, com kernel versão 3.13.04. Os exemplos foram compilados com a versão 4.8.2 do compilador de linguagem C GNU Collection Compiler (GCC).

Continuar a ler

Elm

Resumo

Como vamos ver, Elm é bastante pequena e simples, o que torna fácil criar interfaces gráficas para a Internet. Elm quando compilada tem como alvos JavaScript, HTML e CSS. Elm é uma linguagem ainda muito jovem, foi criada em 2012 e está na versão 0.16 (https://en.wikipedia.org/wiki/Elm_%28programming_language%29).

Introdução

Elm utiliza o paradigma de programação FRP (Functional Reactive Programming), ou seja é uma linguagem funcional que está alerta ao tempo. Por outro lado desenvolvimento em Elm diverge da maioria das alternativas porque não utiliza a arquitetura MVC (Model, View & Controller). O fluxo de informação num programa Elm, que corre dentro do navegador de Internet, segue apenas uma direção tal como se pode ver na imagem abaixo.

Continuar a ler

Automação com GENUINO

Introdução

A plataforma Genuino, tornou-se bastante popular ao longo dos anos, sendo uma das plataformas mais usadas em projectos de IoT e automação, tanto pelo seu baixo custo como pela sua capacidade de processamento e de I/O (input/output). Para os leitores que estão menos familiarizados com este tema, o Genuino é análogo da marca Arduino.cc, tendo sido criado pelos co-fundadores do Arduino Massimo Banzi, David Cuartielles, Tom Igoe e David Mellis. Na prática, o Genuino é usado para as boards vendidas fora dos EUA.

Isto é, a marca Genuino certifica também a sua autenticidade com a filosofia de hardware aberto e de código aberto que sempre caracterizou os valores do Arduino. As placas Genuino e Arduino partilham os mesmos componentes e as mesmas características. São as mesmas boards, mas a “marca” do circuito é determinada pelo país. O Arduino é comercializado dentro dos EUA e o Genuino fora dos EUA.

Continuar a ler

O papel do profissional de Marketing & Comunicação no sector das TIs em Portugal

No 29º Encontro das Geek Girls Portugal, lançaram-me o desafio de “transformar” a apresentação e escrever um artigo para a Programar, o que me traz hoje até vos, caros leitores.

Gostaria de vos apresentar e sensibilizar para debater alguns pontos sobre o contributo de um profissional de Marketing & Comunicação no sector das TIs. Ao longo deste artigo foco-me em alguns pontos debatidos ao longo do encontro, que se destinou essencialmente aos profissionais de Marketing que estejam a abraçar o desafio de desenvolver um gabinete de Marketing & Comunicação numa empresa do sector das TIs. De acordo com a minha experiência pessoal e profissional, deverão ter em mente os seguintes aspectos:

Continuar a ler

JavaScript 6

O JavaScript já não é só a linguagem de script da Web. Com o passar dos anos, cada vez mais pessoas recorrem a esta linguagem para automatizar a realização de várias tarefas, uma vez que tem um número infindável de utilizações práticas, que vão desde a criação de páginas Web até à administração de máquinas com diferentes sistemas operativos. Por conseguinte, o conhecimento das funcionalidades de JavaScript é uma mais-valia no currículo de qualquer programador.

Introdução

Neste livro são apresentadas as principais novidades, características e funcionalidades da versão 6 da linguagem JavaScript, com recurso a exemplos práticos. Para além de novos objetos e métodos que foram adicionados aos objetos existentes, esta nova versão introduz também várias novidades ao nível da sintaxe (por exemplo, a definição de classes) que contribuem para simplificar a escrita de código e aumentar a produtividade do programador. 

Continuar a ler

Modelação de Dados em UML – Uma Abordagem por Problemas

A utilização de linguagens formais para representação de aspectos de sistemas informáticos tem vários anos, tendo o UML – Unified Modeling Language – sido adoptado como um standard pelo Object Management Group (OMG) em 1997. No entanto, creio poder dizer que essa formalização, nos últimos anos, tem caído algo em desuso, em detrimento de modelos menos formais mas mais perceptíveis: ou seja, os developers têm-se preocupado mais em desenhar, quando o fazem, diagramas que sejam perceptíveis por outros, sem se preocuparem excessivamente no grau de adequação desses diagramas a standards existentes, dos quais o UML sobressai.

Continuar a ler

O que esconde o CQRS

Introdução

O que é o CQRS (Command Query Responsibility Segregation)? Quais os seus benefícios? Que desafios esconde?

Estas são algumas das questões que este artigo pretende responder, demonstrando que o CQRS parte de um princípio simples e que é capaz de evoluir para dar resposta a problemas mais complexos.

O que é o CQRS?

As origens do CQRS são baseadas no CQS (Command-Query separation), um princípio criado por Bertrand Meyer durante o desenvolvimento da linguagem de programação Eiffel.

Continuar a ler