Jump to content

Blogs

 

04 Too many open files (no handles left)

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? Be

staff

staff

 

Os segredos do lado negro da BIOS

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 ri

staff

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 ex

staff

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 avanc

staff

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 per

staff

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

staff

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

staff

staff

 

Introdução aos testes Unitários em C# com MS Unit Test

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é

staff

staff

 

Depois da casa roubada, trancas na porta!

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

staff

staff

 

Android com C# – Introdução ao desenvolvimento

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

staff

staff

 

Internet das Coisas – Introdução Prática

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

staff

staff

 

A interface humano-computador e a sua relação com o conceito de qualidade no desenvolvimento de software e sua percepção aos olhos do usuário (parte II)

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 1

staff

staff

 

Videochamada/videoconferência: o projecto SeeMe

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

staff

 

Tinker Board

Hoje 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 ent

staff

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

staff

 

Windows 10: As novidades do Creators Update (Build 15063 – Version 1703)

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 disponi

staff

staff

 

Revista PROGRAMAR nº 56 — Maio de 2017

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 e

staff

staff

 

/* A todos os bravos que chegaram tão longe! */

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 pou

staff

staff

 

Docker: Overview

Sou muito apologista da metodologia “set it and forget it”, configurar as coisas uma vez e reutilizar vezes sem conta a mesma configuração, infraestrutura. Abstrairmos de tal forma, que o foi configurado sirva para o uso geral da nossa aplicação ou projeto. Isto é muito giro, mas pouco realista se tivermos em mente a montanha de projetos e aplicações que estão montadas por Portugal (e não só) a fora. Tipicamente, a forma como eu fazia, seria criar uma máquina virtual (principalme

staff

staff

 

API REST com Spring Boot (parte 2)

Nesta segunda parte, vamos então adicionar ao nos- so projecto um sistema que nos permita criar logs personalizados sobre o acesso à nossa API. Sempre que desenvolvemos uma aplicação, devemos logo de inicio tratar de providenciar um bom sistema de logs já que ele é uma parte fundamental, seja durante o desenvolvimento, seja durante a operação da aplicação. É através das mensagens de log (em ficheiro ou no ecrã) que podemos determinar o que realmente está a acontecer na nossa a

staff

staff

 

JavaFX: Passos Seguintes

No artigo anterior dei uma breve introdução sobre como programar com JavaFX, conceitos simples que permite começar a desenvolver aplicações gráficas. Neste artigo vou explorar outros temas interessantes do ponto de vista de desenvolvimento e de manutenção de projetos de software com interfaces gráficas de desktop. Ao longo da minha carreira já desenvolvi e participei em projetos de software de raiz, mas grande parte dela foi a manter e a melhorar aplicações legacy, e deixem-me q

staff

staff

 

Um bot para Telegram com o jogo da velha (Jogo do Galo)

Num mundo com tantas aplicações de chat instantâneo, o Telegram destaca-se pela rica API que disponibiliza para criação de bots. Os bots são pequenos programas que podem interagir com os utilizadores e prestar serviços, como executar comandos, gerir arquivos ou imagens e até mesmo propor jogos! Há já algum tempo que a comunidade Python explora bibliotecas como a Telebot e mais recentemente, a Telepot. Embora a diferença no nome das duas seja apenas uma letra, o desenho da Telepot par

staff

staff

 

Um bot para Telegram com o jogo da velha (Jogo do Galo)

Num mundo com tantas aplicações de chat instantâneo, o Telegram destaca-se pela rica API que disponibiliza para criação de bots. Os bots são pequenos programas que podem interagir com os utilizadores e prestar serviços, como executar comandos, gerir arquivos ou imagens e até mesmo propor jogos! Há já algum tempo que a comunidade Python explora bibliotecas como a Telebot e mais recentemente, a Telepot. Embora a diferença no nome das duas seja apenas uma letra, o desenho da Telepot par

staff

staff

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.