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

Revista PROGRAMAR

  • artigos
    119
  • comentários
    30
  • visualizações
    122346

Autores deste blog

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

Sobre este blog

Artigos neste blog

staff

Nesta edição trazemos até vós a review de um dos livros mais recentes da FCA Editora, o Android: Bases de Dados e Geolocalização de Ricardo Queirós. Como seria de esperar, este é um livro com a qualidade habitual que este autor já nos habituou. Direccionado para os profissionais de informática (e também para os entusiastas e curiosos) que queiram dar os primeiros passos na programação Android com destaque claro está para as bases de dados e geolocalização. Contudo devo dizer-vos que os leitores mais experientes no assunto, não ficarão desiludidos com este livro em particular, uma vez que os temas abordados têm todo o interesse, tenhamos 0 ou 10 anos de experiência nesta temática.

O livro é constituído por oito capítulos, sendo que os mesmos estão divididos por duas partes. A linguagem de programação usada nos exemplos dados é o Java.

Ler mais…


staff

A arte da criação de programas auto-replicativos parece estar perdida no tempo. Não podemos confundir um programa auto-replicativo com malware, cavalos de tróia, worms, etc. Um programa auto-replicativo não executa nenhum tipo de código para danificar hardware ou software, pelo contrário apenas tenta replicar-se de diversas formas ou métodos e é por norma escrito numa linguagem de baixo nível, como por exemplo assembly. A parte mais interessante e importante do programa ao contrário de um malware não é um pedaço de código para causar danos, mas antes pelo contrário apenas o código que per- mite que o programa se replique.

Apesar de muitas vezes se confundirem as duas tarefas, um programa auto-replicativo é uma forma de criatividade, engenho e inovação, com o objectivo de criar um programa que se consiga manter num sistema informático evitando ser apagado e replicando-se de forma inteligente, evitando a sua detecção e consequente remoção. É quase como fazer um avião de papel, ajustar as “asas”, o “nariz”, colocar ou não um “leme de cauda”, etc e atirar para ver que distância é percorrida antes de inevitavelmente aterrar, ou melhor, cair! Em momento algum se pretende que o programa, tal como o avião, dure “ad aeternum”, sendo o interesse apenas no lapso de tempo que ele durará até ser totalmente removido.

Ler mais…


staff

Introdução

As ameaças de segurança aos dispositivos, dados e informações são um assunto importante no dia a dia e evoluem com frequência. Por isso, é necessário contar com hardware, software e ferramentas que sirvam como uma barreira para os riscos que os utilizadores enfrentam em atividades como navegar na internet, instalar aplicações ou simplesmente ligar o computador.

Ameaças como o hacking ou infeção de equipamentos com vírus e malware, acontecem tanto a nível pessoal como empresarial e, algumas vezes, podem acontecer simultaneamente em ambos os cenários. Por isso, o primeiro passo para reforçar a segurança da nossa informação é utilizar equipamentos com ferramentas atualizadas, como por exemplo, PCs com Windows 10.

Ler mais…


staff

Um dos pontos mais importantes, apontados no estudo das Interfaces Humano-Computador (IHC), é a preocupação em desenvolver sistemas voltados ao usuário a partir da premissa “desenvolver sistemas pensando e considerando o usuário em todo o seu processo” (SILVA, 2008, p. 92). É fundamental haver a preocupação do desenvolvimento do software em atender as especificidades e necessidades do usuário, a partir da ótica usada na Engenharia de Software (ES) consoante ao estudo da IHC.

Silva (2008, p. 92) cita Nielsen que em seu estudo classifica os métodos de avaliação de sistemas em três categorias.

Ler mais…


staff

Atualmente, muito se fala em inteligência artificial. O Google investe, a Microsoft, a Amazon, a Uber, o Facebook, a Apple… E essa lista não para por aqui. Nós sabemos que é uma tecnologia pujante, que, juntamente com a correta análise do Big Data, certamente será uma das ferramentas mais poderosas que nós teremos no futuro próximo.

A ideia deste artigo é falar um pouco da inteligência artificial, mais precisamente abordar os algoritmos das redes neurais artificiais (RNA), sua arquitetura, seu funcionamento e suas principais aplicações.

Ler mais…


staff

Mini Maker Faire Castelo Branco

Decorreu no passado dia 10 de Junho a Mini Maker Faire em Castelo Branco. Correndo o risco de ser suspeita, uma vez que Castelo Branco será sempre a minha cidade de eleição, é com orgulho que vos digo que este foi um evento que decorreu com todo o sucesso esperado. A PROGRAMAR como Media Partner do Evento, esteve no local, e posso dizer-vos que nesse dia, todos os caminhos iam ter à Mini Maker Faire.

Organizado pela AICB, a Associação de Informática de Castelo Branco, este evento teve a participação de vários makers e de mais de duas centenas de pessoas estiveram presentes.

Ler mais…


staff

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

  • Pseudorandom Number Generators (PRNGs) (Pedro Tavares)
  • Algoritmo BackPropagation (Rita Peres)
  • UP-CICLAR a velinha apareglhagem HI-FI (António Santos)
  • Análises de Hardware: SONOFF RF (António Santos)
  • C# -De DataTable para ficheiro CSV (mais comum do que seria agradável) (António Santos)
  • Kernel Panic – A “Arte da Guerra” e a tecnologia – (António Santos)
  • SQL Curtas – Cursores: O Bom, o Mau e o SQL… (André Melancia)
  • Análise do Livro: Desenvolvimento em Swift para iOS  (Nuno Cancelo)
  • Análise do Livro: Bases de Dados e Geolocalização  (Rita Peres)
  • Como criar um programa auto-replicativo em assembly, para GNU/Linux (António Santos)
  • Windows 10: Ferramentas de Segurança (Nuno Silva)
  • MODELOS DE AVALIAÇÃO DE INTERFACE  (Augusto Manzano)
  • Redes neurais artificiais: o que são? Onde vivem? Do que se alimentam? (Alex Lattaro)
  • Mini Maker Faire Castelo Branco (Rita Peres)

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


staff

Esta é a 26ª edição em que vos escrevo, fez este mês cinco anos e sete meses que tenho a honra e o privilégio de editar a Revista PROGRAMAR, tantas vezes lutando conta o tempo, escrevendo até altas horas, escrevendo mais do que seria “habitual”, fazendo mais um “git push”, esticando os limites, contornando o tempo, a disponibilidade, pedindo aos autores mais um esforço, para que se faça mais uma edição!

O que seriam “demasiados ficheiros abertos”? Seriam 25 demais? Seriam antes 26? Bem, não querendo fazer profecias, mas desafiando todos aqueles que participam, já foram publicadas 55 edições, esta é a 56ª! Esperemos que falamos tantas quanto o máximo número possível de ser representado em binário com 16 bits sem sinal! Seja esse o objectivo e essa a vontade, de quem escreve e de quem lê!

Num momento de “maior sanidade”, menos ousado, mas ambicionado, num lapso de tempo que se espera não seja muito alargado, chegaremos à edição 64! Pode não parecer muito mas se fossem bits, muito se poderia representar! Façamos um “git push”, tenhamos a vontade, e daqui por um ano e alguns meses, estaremos a ler a 64ª edição!

Até lá, boas leituras e muita escrita
António Santos


staff

Introdução

A BIOS

Ao longo dos anos, muito tem sido escrito sobre possíveis vectores de vulnerabilidade utilizando a bios. No entanto, além do antigo vírus de Chernobyl, que acabou por apagar a BIOS, pouco tem sido dito.

Tal como amplamente descrito, a BIOS é um firmware de arranque designado a ser executado assim que um computador recebe corrente. A função inicial da BIOS é identificar e testar os dispositivos de sistema, como a placa gráfica, as unidades de armazenamento (disco rígido), antigamente as drives de disquetes (agora já são incomuns) e outro hardware, com o objectivo de preparar a máquina e colocá-la num estado conhecido, de forma a que os softwares armazenados nos meios de armazenamento possam ser carregados e executados, para lhes ser “entregue” o controlo do computador. Este processo é o chamado “booting”, que é a abreviatura de “bootstrapping”.

Nos computadores PC compatíveis, alguns periféricos, tais como unidades de disco rígido, placas gráficas, etc… têm a sua própria extensão da ROM da BIOS, com o objectivo de fornecer funcionalidades adicionais. Os sistemas operativos e outro software designado para o efeito, criam uma interface para as aplicações utilizarem estes dispositivos.

Ler mais…


staff

Otimizando os sistemas embebidos

Recentemente calhou em conversa com um amigo meu sobre programação de sistemas embebidos, visto que ele estava a avançar com um projeto muito interessante com um equipamento semelhante ao Arduino. Esta conversa relembrou-me os tempos em que programava em ANSI C (de 89) num LPC2106 da Phillips e aos tempos que andava a aprender ANSI C (de 89) e o belo do assembly, e surgiu a ideia para este artigo.

Quando alguém começa a programar num Arduino (ou equipamentos semelhantes) vai seguindo os exemplos que vai encontrando e vai adaptando às usa necessidades. No entanto, mais cedo ou mais tarde, vai querer implementar uma ideia que teve e, quem sabe, mais tarde transformar essa solução num produto que possa comercializar. A ideia deste artigo é oferecer um conjunto de técnicas e de pontos de interesse a ter em atenção por forma a maximizar os recursos que já têm, reduzindo o “desperdício” dos recursos.

Ler mais…


staff

Tipos em Python

Python sempre foi uma linguagem fortemente tipada, para surpresa de muitos que confundem a tipagem dinâmica com a ausência de tipos. Na realidade, os tipos em Python funcionam tão bem e de forma tão automática que muitas vezes esquecemos que eles existem.

Mas nem tudo é perfeito. Hoje existem programas gigantescos escritos em Python e os programadores precisam de ferramentas poderosas para entender e navegar neste código. Aí tínhamos um problema, pois ferramentas de edição mais avançadas com recursos de autocomplete (intellisense), refactoring e simplesmente de navegação no código fonte se tornaram extremamente complexas. Dadas as propriedades dinâmicas da linguagem, escrever este tipo de ferramentas para o programador Python se tornou uma tarefa complicada. Cada ferramenta era responsável por inferir o tipo de cada método ou função sendo chamada e esta não é uma tarefa simples, uma vez que temos poucas indicações de tipo no programa em si.

Ler mais…


staff

Gerir a Qualidade do Código

Vamos dar uma martelada? Quem nunca ouviu esta expressão enquanto trabalhava numa aplicação, quer seja no seu desenvolvimento, quer seja na sua manutenção. Este tipo de prática não abona em nada as nossas aplicações e com o tempo acaba por ser um procedimento, uma feature da aplicação que não nos conseguimos livrar.

Este simples exemplo, é apenas um num enorme lote de más práticas que são realizados ao longo dos tempos em muitos projetos. Como fica a nossa aplicação, a sua performance, o seu grau de manutenção, de legibilidade? Podemos dizer que a aplicação tem qualidade?

Quando falamos de qualidade, do que nos estamos a referir? O que é a Qualidade? O que é a Qualidade de uma aplicação? Como podemos medir? Como a podemos gerir?

Ler mais…


staff

Cifra Feistel

Nesta edição decidimos trazer até si, caro leitor, um artigo sobre uma cifra que data ao ano de 1973. Criada por Horst Feistel enquanto trabalhava na IBM, este algoritmo pertence à criptografia simétrica.

Para os leitores que não estão tão habituados a este tema, existem dois tipos de cifras. A simétrica e a assimétrica. Em termos práticos, a criptografia simétrica tende a ser mais rápida uma vez que exige menos capacidade computacional. Contudo é considerada menos segura uma vez que a mesma chave é usada para encriptar e desencriptar a informação é partilhada pelos diversos intervenientes (na criptografia assimétrica são usadas duas chaves distintas – a chave privada para desencriptar e a chave pública para encriptar a informação – apenas a chave pública é partilhada entre emissor e receptor sendo que a chave privada é usada para decifrar a informação).

Ler mais…


staff

NodeMCU e Telegram Bots

Introdução

Existem imensas formas interessantes de colocar um equipamento a comunicar, de forma mais ou menos simples. Na edição 51, foi abordada esta temática mais focada na utilização de sockets, para comunicar com o dispositivo. Continuando um pouco a temática, desta feita, é sobre a utilização do popular software de chat Telegram, utilizando chatbots, para comunicar com o circuito.

O Telegram, é um popular serviço de mensagens instantâneas, baseado na nuvem, disponível para a esmagadora maioria dos sistemas operativos, bem como em formato de aplicação web. Entre as muitas características que o podem destacar, convém realçar o facto de ser de código aberto, possuir criptografia ponto-a-ponto, e um serviço de APIs independentes. Além de tudo isso, existem bibliotecas para o uso do telegrama na internet das coisas (IoT), como é o caso da Universal Telegram Bot Library.

Ler mais…


staff

Introdução

Neste artigo será apresentada uma introdução básica aos testes unitários exemplificando como os escrever na linguagem C#, usando as ferramentas que acompanham o Visual Studio Community. Escrever testes de caso é uma parte importante do teste de software. Testar software é sempre um “quebra-cabeças” para programadores e testadores pois existem imensos tipos de casos de teste possíveis. Os testes unitários são um método pelo qual pedaços de um programa, módulos ou até conjuntos de módulos, são testados por forma a determinar se estão em condições de serem utilizados.

Para escrevermos bons testes unitários, devemos entender como é que um caso de teste funciona, e porque precisamos de o testar!

Ler mais…


staff

Muito se tem falado desde a passada sexta-feira sobre cyber-segurança, mas antes disso pouco se dizia. Isso faz lembrar o ditado português, “depois da casa roubada, trancas na porta”. Ora bem, na passada sexta-feira, um ransomware, infectou imensos sistemas, colocando os dados reféns de um resgate a ser pago aos criadores do malware. Até aqui, nada de inédito, este tipo de ataques tem sido cada vez mais co- mum! O estranho é o “pânico” gerado em volta da situação e mais estranha será a falta de uma política “pró-activa” de prevenção!

Um ransomware, encripta os dados contidos nos discos rígidos e solicita um pagamento de um resgate! Bem, se existirem cópias de segurança, para quê pagar resgate? Restaura-se a cópia de segurança e recomenda-se aos “autores” do “dito cujo” que vão “plantar nabos num qualquer deserto”, porque os dados continuam disponíveis e o ataque foi apenas mais um fracasso! Situação em que se poderia dizer que “venha de lá o assalto” que as trancas estão na porta! Mas infelizmente numa grande quantidade de situações tal não aconteceu!

Ler mais…


staff

Nesta edição vamos fazer a review do Livro Android com C# – Introdução ao Desenvolvimento escrito por Henrique Loureiro.

O livro introduz o programador que tem conhecimentos em .NET, nomeadamente em C#, ao paradigma de desenvolvimento em mobile, utilizando o Visual Studio com plataforma de desenvolvimento e utilizando o Xamarin para o desenvolvimento mobile.

O livro está organizado em duas partes, a primeira mais teórica com alguns exercícios para consolidar os conhecimentos no final de cada um dos capítulos e uma segunda parte com alguns projetos completos mais abrangentes.

Ler mais…


staff

Desde há anos que se têm vindo a desenvolver equipamentos e soluções com ligação à internet e intranets, para as mais diversas funcionalidades. Muito do que anteriormente era conhecido como automação agora é chamado de internet das coisas.

Neste livro o autor apresenta a temática da internet das coisas (IoT), mantendo um foco bastante prático ao longo dos capítulos. Começa com uma introdução, que incluiu uma breve história da internet das coisas, e procede apresentando algumas das tecnologias disponíveis, abordando alguns pontos de maior interesse, como o caso de machine learning.

Ler mais…


staff

Apesar do conceito de qualidade poder ser “mensurado” este é, em essência, abstrato. A mensuração da qualidade depende do nível de satisfação que se deseja atingir junto ao cliente. Um produto de qualidade, aos olhos do cliente é aquele que atende suas expectativas e necessidades e não necessariamente se este produto é ou não durável aos olhos de outrem.

O desenvolvimento de melhores interfaces desde o início da era da computação eletrônica com o advento do computador ENIAC de 1945/46 construído para o exército Norte-Americano com o objetivo de ser usado no seu laboratório de pesquisa balística (MORENO, 2011) tornou-se matéria de estudo, mais aprofundada, aos longos dos anos sub- sequentes na medida em que a computação passou a ser mais popular e acessível a seres humanos comuns da sociedade. Ao longo dos anos posteriores a partir de meados da década de 1940 nota-se que há uma maior preocupação com as questões de usabilidade dos computadores.

Ler mais…


staff

A Gateway SeeMe pretende apresentar uma solução de baixo custo para a obtenção de videochamada, videoconferência de qualidade. No decorrer do artigo mostra-se que uma solução IP é independente das características de rede, tanto corre sobre uma rede de pacotes, como sobre uma rede de circuitos. Explicam-se as diferenças entre a comunicação de voz e a de videoconferência.

Ler mais…


staff

Tinker Board

Tinker BoardHoje trago até vós caros leitores, um artigo sobre a Tinker Board. Os leitores mais acérrimos certamente sabem que sou uma fã incondicional da família Raspberry Pi. Ora a Tinker Board, é uma concorrente séria ao Raspberry Pi 3. Capaz de desviar o olhar dos fãs mais convictos, como é o meu caso. De uma forma rápida e sem rodeios, esta nova aposta da ASUS desvia-nos o olhar porque apesar de ser ligeiramente mais cara que o Pi 3, as vantagens são maiores do que a diferença de preço entre os dois modelos.

Lançada em Fevereiro de 2017 (de uma forma um pouco “atabalhoada” uma vez que houve distribuidores que a começaram a vender antes da data oficial de lançamento, o que obrigou a um rápido lançamento por parte do departamento de Marketing da ASUS), está disponível na Europa por valores entre os 65€ e 70€. Este micro computador tem um processador quad-core Rockchip RK3288 e gráficos ARM Mali-T764.

Ler mais…


staff

Programar Saturday 2017

No passado dia 1 de Abril teve lugar o Programar Saturday 2017 na Microsoft Lisbon Experience. Foram várias as sessões técnicas assim como workshops que estiveram ao dispor de todos os participantes. Cerca de cinquenta pessoas estiveram presentes, tornando este evento um sucesso. Nesta edição não podíamos deixar de deixar um agradecimento “oficial” a todos os que contribuíram desde a organização, voluntários, oradores e participantes.

Ler mais…


staff

Introdução

Pouco tempo depois do lançamento do Windows 10 Anniversary Update, mais propriamente a 11 de agosto de 2016, a Microsoft lançou a Build 14901, a primeira Development Branch da “Redstone 2” e cujo nome de código que viria mais tarde a ser oficializado como Creators Update. Após 8 meses de desenvolvimento e do lançamento de 47 Builds (28 para PC e 19 para Mobile), a Microsoft deu como terminado o trabalho em torno desta atualização e anuncia o dia 11 de abril como a data da disponibilização geral para todos os utilizadores na versão PC e 25 de abril para a versão Mobile.O Creators Update foi criado para potenciar a criatividade, transformar as ideias em realidade e permitir que qualquer utilizador possa deixar a sua marca no mundo. Também aqui foi fundamental a participação dos cerca de 10 milhões de Windows Insiders que, através do seu feedback, ajudaram a construir mais uma grande atualização.

Vejamos então de forma resumida algumas das novidades mais importantes disponíveis para o consumo e também para empresas.

Ler mais...

 

staff

A Revista PROGRAMAR está de volta com mais uma edição. Desta vez temos como tema de capa o artigo Os segredos do lado negro da BIOS, da autoria de António C. Santos. Adicionalmente, nesta edição poderá encontrar mais 13 artigos, que listamos de seguida:

  • Otimizando os sistemas embebidos (Nuno Cancelo)
  • Tipos em Python  (Nilo Menezes)
  • Gerir a Qualidade do Código  (Nuno Cancelo)
  • Cifra Feistel (Rita Peres)
  • NODEMCU E TELEGRAM BOTS  (António C. Santos)
  • C# – C# – Introdução aos testes Unitários em C# com MS Unit Test (António C. Santos)
  • Kernel Panic – Kernel Panic ( Depois da casa roubada, trancas na porta!)(António C. Santos)
  • Análise ao livro Android com C# – Introdução ao desenvolvimento (Nuno Cancelo)
  • Internet das Coisas – Introdução Prática (Sara Freixo)
  • Interface Humano-Computador, Nanotecnologia e a dependência tecnológica  Parte II(Augusto Manzano)
  • VIDEOCHAMADA/VIDEOCONFERÊNCIA O PROJECTO SEEME  (João Pereira Rosa)
  • Tinker Board (Rita Peres)
  • PROGRAMAR Saturday 2017 (Rita Peres)

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


staff

Poderia começar o editorial por escrever o resto do comentário em código, mas seria quase um “abuso” ao qual não me vou dar!

Como um dia disse, um incontornável personagem da história da tecnologia, não se conectam os pontos olhando para a frente, mas sim para traz. A tecnologia é isso mesmo, um movimento “perpétuo”, em frente, sem parar, sem esperar, sem pausas, a uma velocidade cada vez mais estonteante. Cheio de surpresas e segredos, cheio de revezes e avanços, cheio de tudo um pouco! Mas acima de tudo, cheio! Cheio porque tem um pouco de todos os que nele trabalham, participam, se envolvem! Sem distinção de géneros, classes ou outras que possam existir!

Ler mais…


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade