Pesquisar aqui

sábado, 22 de fevereiro de 2020

Hackers voltam a atacar dispositivos IoT

Foi identificado à poucos dias um acontecimento, no mínimo, interessante. Os Hackers estão cada vez mais empenhados em conseguir acesso a sistemas de controlo de prédios inteligentes. Principalmente os sistemas de portas que monitorizam as entradas e saídas de funcionários. Mas não é pela razão que deve estar a pensar (obter acesso aos dados e reconhecer padrões, vendendo depois essa informação). O intuito é usar estes milhares de dispositivos como botnets (computadores todos conectados à internet e que comunicam entre si) para possuírem mais dispositivos, fortalecendo um ataque de DDoS. Para quem não sabe, um ataque de DDoS é quando alguém torna uma rede, sistema ou dispositivo inoperável porque lhe enviou demasiados dados. Sendo assim, quantos mais dispositivos a enviar dados, mais forte é o ataque.
O principal sistema afetado é o NSC smart building access control systems, que é utilizado em diversos prédios empresariais, um pouco por todo o mundo. Os sistemas de segurança desta empresa têm diversos problemas graves identificados à quase um ano, porém a mesma nada fez para os tentar retificar.
Este acontecimento leva-nos de novo à discussão sobre a falta de segurança que os dispositivos de IoT apresentam. Como já aqui tinha afirmado, os dispositivo de IoT são conhecidos por terem predefinições de segurança muito fracas e mecanismos que dificultam as atualizações e correções. Para além disso, os sistemas de IoT não costumam ser monitorizados com o mesmo rigor que os outros sistemas de TI (tecnologia da informação).
Com o número de dispositivos a crescer exponencialmente, é cada vez mais apetecível aos Hackers, controlar estes sistemas.


imagem:

  • URL
  • consultada no dia 23/02/2020


fontes:

Como os robôs poderam ajudar a proteger os nossos oceanos (parte 3)

O terceiro método será melhorar o tratamento de águas residuais.
A robótica oceânica esta a mostrar-se ser útil para a indústria de tratamento de águas residuais. Como parte de uma parceria de RoBi-X, a Aarhus Band e a Blue Ocean Robotics estão procurando maneiras de usar a tecnologia robótica para melhorar o ambiente de trabalho, a produtividade e o uso de recursos nas estações de tratamento de águas residuais. A purificação da água também é importante, pois as águas residuais são largadas no mar e em lagos. Os robôs também podem garantir que as estações de tratamento aumentem a sua capacidade enquanto libertam líquidos limpos.

Image result for biobot analytics lugage

Um exemplo de avanço tecnológico neste tratamento das águas é a nova criação da Biobot Analytics. Esta empresa criou pequenos dispositivos robóticos que fornecem dados sobre águas residuais e a saúde de regiões inteiras. Do tamanho de uma bagagem de mão (como se pode ver no exemplo acima), essas máquinas oferecem dados sobre doenças, exposição a produtos químicos, vírus, contaminantes em alimentos e muito mais. Também é uma ferramenta útil para rastrear prescrição e uso de drogas ilícitas nas comunidades. Até a próxima!

iOS 8 - v.8.0.1


iOS 8.0.1


  Esta foi a primeira versão do oitavo sistema operativo lançado pela Apple sendo lançada no dia 24 de setembro de 2014  e esteve disponível para o iPhone 4 e posterior, iPod Touch de 5ª geração e iPad 2 e posterior.
  Esta versão trouxe várias correções de bugs. Esta versão acabou por ser retirada pois desabilitava o Touch ID e a conectividade à rede móvel em alguns dispositivos. Por o que acabei de dizer, a Apple recomendou aos utilizadores reinstalar a versão original do iOS 8.

sexta-feira, 21 de fevereiro de 2020

Como os robôs poderam ajudar a proteger os nossos oceanos (parte 2)

O segundo método, e o primeiro desta semana, será realizar monitoramento ambiental.
Às vezes, é um desafio monitorar o que está acontecendo no fundo do mar. A robótica biomimética do oceano está a mudar isso, à medida que estas máquinas cruzam o oceano em missões de vigilância. Por exemplo, os caranguejos robóticos coletam dados no fundo do mar, e as medusas robóticas podem monitorar o que está acontecendo em ambientes mais específicos.




O Instituto de Pesquisa de Navios e Engenharia Oceânica da Coréia projetou um caranguejo autônomo de 1672 euros, que pode atingir uma profundidade subaquática de 200 metros. Este robô não gera nuvens de iodo ou detritos, como veículos subaquáticos (ROVs). O caranguejo também possui um sistema de navegação baseado em radar doppler, para que possa ver nas condições mais sombrias. Com as suas várias câmeras, incluindo uma câmera HD colorida, este consegue ampliar objetos e espécies para ver o que está acontecendo nas profundezas do oceano. Se ainda estiveres interessado sobre este robô vê o vídeo acima que demonstra o caranguejo em ação. Até à próxima!

iOS 7 - v.7.1.2


iOS 7.1.2


  Esta versão do sistema operativo da Apple foi lançada no dia 30 de junho de 2014, estando disponível para o iPhone 4 e posterior, iPod Touch de 5ª geração e posterior e para o iPad 2 e posterior.
  O que veio com esta atualização do sistema operativo foi a melhoria da conectividade do iBeacon, um erro que afetava a classe de proteção de dados dos anexos dos mails e a correção de um erro que afetava as transferências de dados de alguns acessórios de terceiros, incluindo também leitores de códigos de barras.
  Esta foi a última versão do iOS 7 desenvolvida.

C++ - Trígrafos

Alguns caracteres têm uma representação alternativa, chamada sequência de trígrafo (trigraph).
Trígrafos são sequências de três caracteres (dois pontos de interrogação '?' mais outro).

Os trígrafos são automaticamente "transformados" nos seus caracteres respetivos onde quer que apareçam.


Porém, nem todos os compilers suportam os trígrafos, por isso não é recomendável usá-los.

Programa exemplo
#include <iostream>
using namespace std;

int main()
{
    cout<<"Hey, ??(man??)!";
}
Neste programa utilizamos dois trígrafos, ??( e ??), que representam os caracteres [ e ], respetivamente.
Deste modo, este programa vai ter um output esperado de:
Hey, [man]!


Referências (18/02/2020)

Python - News 9.1

COMO É A NONA PUBLICAÇÃO DE PYTHON - NEWS, HOJE VOU APRESENTAR 9 RAZÕES PARA APRENDER PYTHON NO ANO DE 2020!
  • Simples e fácil de aprender: Python é uma linguagem de programação relativamente simples de aprender, tanto é que muitos dizem que sua lógica lembra bastante a da aprendizagem do inglês, além de utilizar vocabulário do inglês do quotidiano, o que facilita bastante a leitura do código. A lógica é assim: praticamente só se diz ao computador o que você quer!

  • Versatilidade (múltiplas possibilidades): A simplicidade do Python é tamanha que suscita até insultos de algumas pessoas do mercado, a dizer que a linguagem não permite a execução de coisas complexas. UM ENGANO! Pode ir-se muito longe com Python já que ele carrega toda a potência necessária para desenvolver o que se quiser. É possível trabalhar em diversas frentes, o Python é praticamente a soja do mundo da tecnologia!

  • Alta demanda: Facebook, Google, Amazon, Netflix, Dropbox, entre diversas outras empresas gigantes possuem projetos de tecnologia cuja base é Python. Além disso, como é fácil de usar, tem sido a linguagem mais considerada por empresas em estágios iniciais, as conhecidas startups. Acho que não é preciso dizer mais nada.

  • Open source: O facto de ser código aberto também facilitou bastante a popularização do Python. O bom de ser open source é que te dá a possibilidade de aprender e entender todos os aspectos da linguagem.

  • Disponibilidade de recursos: Como já referi em publicações anteriores, existem mais de 125 mil bibliotecas de Python disponíveis atualmente, o que torna a linguagem ainda mais popular e acessível. Por essas bibliotecas e, também, pelo excelente material padrão que acompanha o Python, é bastante comum iniciar um projeto sem que você precise codificar muita coisa.
Infelizmente terei de continuar numa próxima publicação de Python News, assim esta será a 9.1 e a continuação será 9.2, até lá, Boa Programação!

Referências:

quarta-feira, 19 de fevereiro de 2020

C++ - Whitespaces

Os whitespaces são, exatamente como o nome diz, espaços em branco.
Estes permitem ao compilador distinguir os diferentes elementos do código.

Por exemplo:
int value;
Aqui, temos um espaço que separa "int" de "value". Assim, o compiler sabe que os dois elementos, int e value (tipo de dado e identifier da variável) são diferentes.

É bem óbvio que seja necessário usar espaços, pois assim como na literatura, estes são necessários para se entender quando acaba uma palavra e quando começa outra.

Pode-se usar mais de um espaço. Logo, é o mesmo ter
int space;
e
int     space;

Nem sempre é necessário usar whitespaces, pois já temos outro símbolo (operador) a separar as palavras, mas normalmente sempre se coloca para leitura mais fácil.

Por exemplo:
value=number+age;
 é valido e o mesmo que
value = number + age;

Referências (18/02/2020)

Python - Herança de Classes (Parte 1)

JÁ APRENDEMOS SOBRE CLASSES, AGORA VAMOS APRENDER A SUA "HERANÇA"!

A herança de classes permite-nos definir uma classe que herda todos os métodos e propriedades de outra classe:
- Classe-mãe é a classe que é herdada, também chamada de classe base. 
- Classe filho é a classe que herda de outra classe, também chamada classe derivada.

Nota: na maioria das minhas publicações tento traduzir ao máximo todas as denominações e conceitos, mas existem palavras que só fazem sentido ou soam melhor na língua inglesa, por isso se acharem algum nome estranho já sabem.


Criar uma classe parente: começemos por criar uma classe base que seja simples:

class Person:
  def __init__(self, fname, lname):
    self.firstname = fname
    self.lastname = lname

  def printname(self):
    print(self.firstname, self.lastname)

x = Person("Nyck", "Brandão")
x.printname()

Ou seja, criamos a classe Person(pessoa), com duas propriedades, 'fname'(firstname) e 'lname'(lastname), adicionámos ainda um método 'printname' e definimos uma variável x com o primeiro nome 'Nyck' e o último 'Brandão'.

Tivemos um bom começo, mas agora só podemos continuar na segunda parte, lanço o desafio para quem quiser tentar criar uma classe derivada da classe acima, boa programação!


Referências:

segunda-feira, 17 de fevereiro de 2020

Coronavírus? A IoT pode ajudar a prevenir este tipo de surtos mundiais!

O surto atual do mais recente coronavírus tem gerado uma grande repercussão por todo o globo. Tendo sido até decretado o estado de emergência mundial pela OMS (Organização Mundial de Saúde). Felizmente, o surto não só possui uma taxa de mortalidade bastante baixa, mas também está a ser bem contido pelas autoridades chinesas. Mas será que já se perguntou de que maneira a Internet das Coisas pode ajudar? Eu digo-lhe.
Talvez não saiba mas a China é a líder mundial em termos de investimentos na IoT, seguida pelo Japão. Para além disso, a China já usa um complexo sistema de vigilância que usa IoT para cobrir uma grande parte das suas cidades. Como tal, já possui o dinheiro e até alguma infraestrutura para suportar aquele que seria um projeto pionário com um intuito de ser global, mas com grande dificuldade de tal ser concretizado. A ideia surge de Dilip Sarangan (um pesquisador da área da Internet das Coisas) que propõe colocar sensores por todo o mundo que fossem capazes de identificar a presença de algum vírus, que utilizariam as câmaras de vigilância e a inteligência artificial para identificar e monitorar essa pessoa, podendo até monitorar todos os indivíduos que se relacionaram com a pessoa infetada. 
Apesar de ser muito improvável a aplicação desta proposta num futuro próximo em escala global, a China poderia ser um bom começo, tendo já experiência na adoção de soluções de IoT em larga escala.
Com o mundo cada vez mais pequeno devido ao tráfego aéreo de pessoas, soluções destas podem vir a ser cruciais para assegurar que surtos como a Peste negra, o Sarampo ou a Gripe A não voltam a acontecer. E que tal ser você o próximo impulsionador deste tipo de soluções?



imagem:

  • URL
  • consultada no dia 09/02/2020


fontes:

C++ - Keywords

Keywords são palavras reservadas pelo próprio C++ que já têm uma função designada desde o início.

Os tipos de dados, por exemplo, têm cada um uma keyword:
  • int
  • bool
  • char
  • double
  • float
Por já serem "do próprio C++", nunca podem haver variáveis, funções, etc, com esse identifier.

Lista de todas as keywords:

O único erro nesta tabela é o main, que não é considerado uma keyword. É, porém, uma função já pré-declarada.

Referências

Python - News 8

VERSÃO PYTHON 2 SERÁ RETIRADA ATÉ ABRIL DE 2020!

A comunidade de desenvolvimento central do CPython está a pedir aos utilizadores que mudem para o Python 3, pois será a única versão que será actualizada para erros e vulnerabilidades de segurança.

Após quase 20 anos de desenvolvimento na versão Python 2, a última versão principal 2.7 será lançada em Abril de 2020 e todo o desenvolvimento será interrompido para o Python 2. Os usuários são convidados a mudar para o Python 3 para se beneficiar de seus muitos aprimoramentos, como bem como evitar possíveis vulnerabilidades de segurança no Python 2.x após Abril de 2020. Essa acção lançará recursos limitados para a comunidade de desenvolvedores principais do CPthyon para outros trabalhos importantes.

A versão final de manutenção do Python 2.7 foi originalmente planeada para 2015. No entanto, demorou 5 anos para dar às pessoas tempo suficiente para mudar e trabalhar em estreita colaboração com fornecedores e redistribuidores para garantir que as opções de migração suportadas do Python 3 estivessem disponíveis. Parte do motivo desse atraso ocorreu porque o modelo de texto mais rigoroso do Python 3 estava forçando a resolução de problemas não triviais de manipulação de Unicode no interpreter de referência e na biblioteca padrão e nas bibliotecas e aplicativos migrados

No futuro, o Python 3 será a única versão principal do CPython que é activamente mantida por bugs e problemas de segurança.

Pessoalmente, eu sempre trabalhei com Python 3, e todas as publicações que eu faço no blog são somente destinadas a essa versão!


Referências:

domingo, 16 de fevereiro de 2020

iOS 7 - v 7.1.1


iOS 7.1.1


  Esta atualização do sistema operativo foi lançada no dia 22 de abril de 2014 estando disponível para o iPhone 4 e posterior, iPod Touch de 5ª geração e iPad 2 e posterior.
 As melhorias/correções que vieram com esta atualização foram a melhoria do reconhecimento de impressões digitais através do Touch ID e a correção de um erro que poderia afetar a capacidade de resposta do teclado.

Como os robôs poderam ajudar a proteger os nossos oceanos (parte 1)

Os avanços tecnológicos atingiram quase todos os setores e processos. Hoje, os especialistas têm robôs ajudando os oceanos através de sistemas de satélite, sensores de baixo custo e muito mais. Seja analisando áreas com excesso de plástico ou reintroduzindo certas espécies nos recifes, os oceanos podem experimentar um futuro mais limpo e seguro com a ajuda dos robôs.
Eu dividirei esta notícia em partes para abordar com mais detalhe as seis maneiras pelas quais a robótica poderá, e em alguns exemplo até já está, ajudar a proteger os nossos oceanos em 2020.




O primeiro método será melhorar a eficiência de combustível dos navios.
Todos os anos, os barcos produzem 1.000 megatons (uma medida de força de explosões) de emissões de gases de efeito estufa. No entanto, a plotagem de rotas com menor consumo de combustível poderá reduzir esse número e ajudar os navios a economizar o uso de combustível.
A Open Ocean Robotics criou barcos equipados com sensores, câmeras e dispositivos de comunicação para capturar informações de qualquer lugar do oceano. Eles usam a energia do sol e do vento para viajar por meses sem produzir nenhuma das suas próprias emissões. Como os barcos coletam dados continuamente, eles usam sistemas de satélite e comunicação para enviar informações aos usuários em tempo real.


Assim este processo oferece dados precisos relacionados às condições climáticas e previsões e as pessoas podem usar essas informações para otimizar as rotas dos navios que cortam os custos de combustível e reduzem os gases de efeito estufa. Até a próxima!