Pesquisar aqui

quarta-feira, 30 de outubro de 2019

Python - Bibliotecas

ATÉ AGORA APRENDEMOS A TRABALHAR COM ALGUNS COMANDOS DA BIBLIOTECA PADRÃO DE PYTHON, MAS AGORA VOU ENSINAR A ESTENDER A LINGUAGEM PARA OUTRAS LISTAS DE COMANDOS.

Em programação, uma biblioteca (do inglês librarie) é um conjunto de recursos usados para ajudar a desenvolver o programa, contendo dados de configuração ou de ajuda, comandos, classes, valores, códigos, entre outros.

A biblioteca padrão de Python é bastante completa e extensa oferecendo uma grande gama de recursos. Contém facilidades para escrever aplicações para a internet, contando com diversos formatos e protocolos como HTTP. Também existem módulos para criar interfaces gráficas, conectar bancos de dados e manipular expressões regulares(irei desenvolver manipulação de strings em publicações futuras).

Nota: Para mais informações especificas sobre a biblioteca padrão de Python consulte o seguinte link que direciona para uma página oficial da linguagem: pypi.org

Existem muitas mais funcionalidades para além das que estão na biblioteca padrão da linguagem, que podem ser importadas  através de comandos. Essas bibliotecas podem ser encontradas no Python Package Index(PyPI), que é um "armazém de software" da linguagem que contém bibliotecas entre outros documentos desenvolvidos e partilhados pela comunidade Python.


Existem mais de 200 mil projetos e 2 milhões de ficheiros partilhados e aprovados por mais de 300 mil utilizadores por todo o mundo.

Para utilizar uma biblioteca basta descarregar o respetivo ficheiro e aplicar o seguinte comando:

import 'nome da biblioteca'

em que não se usam as aspas. Dando um exemplo com a biblioteca math:

import math

e assim pode-se usar todos os comandos e funcionalidades pertencentes à biblioteca.
Para importarmos apenas um comando específico de uma biblioteca, podemos utilizar:

from 'nome da biblioteca' import 'nome do comando'

mais uma vez sem colocar as aspas. Exemplificando com a biblioteca random:

from random import randint

e assim só podemos utilizar o respetivo comando que importámos.

Algumas das bibliotecas mais importantes em Python são:

  • time;
  • sys;
  • os;
  • math;
  • random;
  • tkinter;
  • smtplib;
entre outras, irei explicar o funcionamento e utilidade destas e outras biblioteca especificamente em publicações futuras.


Referências:





C++ - Output de variáveis


O output para a consola não se limita a um valor de cada vez. Podemos passar várias mensagens ao mesmo tempo, seguidas.
Quando falei sobre o operador sizeof, o código exemplo utilizava exatamente isso. Tinhamos uma mensagem, seguida de "<<" e a variável que eu queria.
Podemos passar a quantidade de variáveis e mensagens que quisermos para a consola, sempre separadas do "<<".

Por exemplo:
int month = 10;

cout << "Estamos no mes " << month << "!" << endl;

Aqui, temos uma mensagem "Estamos no mes ", e uma variável, que por ser uma variável, pode mudar. Logo, podemos mudar apenas a variável e a mensagem vai mudar consoante o valor da variável.

Obviamente que esta variável "month" tem de ser uma int, dado que os meses são números inteiros de 1 a 12.
Claro que este exemplo é muito simples, mas imaginem o quão útil é usar variáveis em um código que precisa do mesmo valor em vários lugares.

"Mês" está escrito sem acento circunflexo porque o C++ não suporta este carácter especial originalmente. Porém existe uma forma de tornar isto possível e vou falar futuramente.

 Outro exemplo:

int num = 2;
char a = 'A';
float fl = 1.52;

cout << num << a << fl << endl;


Reparem que as variáveis estão seguidas, daí no output não haver espaços entre elas.
E como podem ver, podemos misturar variáveis de tipos de dados diferentes o quanto quisermos. A liberdade é nossa.

É assim que fazemos o output de variáveis pela consola. Não há restrições desde que estejam sempre separados por "<<". Isto no "cout", claro. Existe pelo menos outra forma de output para a consola famosa, que vem da linguagem C, e vou falar dela também futuramente.

Referências

terça-feira, 29 de outubro de 2019

Empresas mais importantes na indústria da IoT (PT.01)

Esta semana vou dedicar os meus posts às maiores empresas desta grande indústria que é a IoT.

1º- Grupo Alibaba


Este grupo chinês não é só um dos maiores da IoT mas também um dos maiores do mundo. Em 2018 anunciou que conjuntamente com a Siemens irá lançar o MindSphere. Este será um sistema operativo que irá conectar produtos, plantas ou sistemas, dando a possibilidade de analisar profundamente os dados recolhidos. Tudo isto com grande aplicabilidade na indústria ou até mesmo nas smart cities, sendo os seus sensores tão precisos que serão capazes de monitorizar os eventos que acontecem dentro de uma cidade.





2º - JD.COM


É também chinesa e uma das maiores no setor do retalho. Esta empresa conseguiu o incrível feito de criar o maior sistema a nível mundial de entregas por drone. Para isso necessitou de combinar várias tecnologias como IoT, AI e machine learning. No final do ano passado (2018) efetuou uma parceria com a Intel para explorar as possibilidades de IoT no smart retail. Usando essa tecnologia para entender os hábitos dos seus consumidores.









3º - DHL

A maior empresa de logística a nível mundial é também uma das que está mais à frente nesta corrida tecnologia. A DHL apercebeu-se do potencial da IoT e desenvolveu vários sensores que incorporou nas suas rotas habituais de entregas, diminuindo o tempo de entrega em cerca de 50%! Para além disso, a DHL também está a inserir sensores individuas em cada produto que indicam não só a sua localização, mas também o seu estado. Possibilitando assim uma melhor planificação, visibilidade e eficiência.








Blogue pessoal sobre tech:

Imagens:

Fontes:

segunda-feira, 28 de outubro de 2019

Cortes e Transições

Cortes e Transições

Hoje falo deste assunto que é bastante enervante quando das duas uma: ou não acontece ou acontece demasiado.


Quando não acontece: Na verdade nem diria que quando não há transições seja mau, pelo contrário acho extremamente bom. O facto de uma cena ser apenas uma gravação é extraordinário. Em cinema poucas vezes isto acontece mas quando acontece conseguimos entender que está ali muito trabalho.
Dou um exemplo de um filme no qual não só acontece mas acontece de forma espetacular: Atonement.
https://www.youtube.com/watch?v=WN_N8pe8UqE

Nesta cena há uma perfeita sincronização entre figurantes, movimentos de câmara, cenário, entrada e saída de personagens, tudo isto num longo Take de cinco minutos.

Quando acontece demasiado: A isto já estamos habituados. Neste momento toda a gente é "Youtuber" mas nem toda a gente tem noção do que é sê-lo. Acontece mais com pessoas mais novas, aprendem a fazer umas transições interessantes e subitamente os vídeos estão cheios delas. O mesmo acontece com os Cortes. Haverá necessidade de cortar entre ca-da sí-la-ba? Não! A única coisa que isso mostra é uma falta de "à vontade" brutal quando em frente a uma câmara.
https://www.youtube.com/watch?v=wvzmBd0fQ_U

Python - Variáveis

EM PYTHON COMO EM QUALQUER LINGUAGEM DE PROGRAMAÇÃO TRABALHAMOS COM VARIÁVEIS.

Variáveis são um dos recursos mais básicos das linguagens de programação; são utilizadas para armazenar valores em memória, e permitem-nos guardar e utilizar esses dados com facilidade a partir de um nome que nós definimos.

Como referido na ultima publicação, o Python pode manipular variáveis básicas como strings (str), números inteiros (int) ou reais (float).

Para criar uma variável basta escrever: 
'o nome que pretendemos'  = valor
como por exemplo:

mensagem = "Olá!"
num = 25
pi = 3.141592653

a variável 'mensagem' é uma string; a variável 'num' é um numero inteiro(int), a variável 'pi' é um numero de ponto flutuante(float).

Para exibir o conteúdo dessas variáveis basta usar o comando já falado print:


print(mensagem)
print(n)
print(pi)

e na consola deverá aparecer:


1
2
3
Olá!
25
3.141592653

Nota: as variáveis podem ser nomeadas com letras e números, tendo em atenção dois fatores.

  • A primeira letra ser sempre minúscula;
  • Não usar palavras reservadas à linguagem:

Referências:


C++ - Operador sizeof


Já sabemos o que é um tipo de dado e já conhecemos os tipos primitivos.
É importante também saber a quantidade de memória que cada tipo utiliza. Pelo menos no C++, quanto mais memória pudermos poupar melhor. Não seria sensato usar um double para uma variável que pode só usar inteiros, por exemplo.

Size of (sizeof)
O operador sizeof é usado para verificar qual é o tamanho (size) em bytes de um tipo de dado.
Para usá-lo, escrevemos
sizeof(type)
Onde type é o nosso tipo de dado.

Vamos então ver o tamanho em bytes de cada tipo primitivo:
#include <iostream>
using namespace std;

int main(){
    cout << "Size of int: " << sizeof(int) << endl;
    cout << "Size of float: " << sizeof(float) << endl;
    cout << "Size of double: " << sizeof(double) << endl;
    cout << "Size of bool: " << sizeof(bool) << endl;
    cout << "Size of char: " << sizeof(char) << endl;
}

Compilando e executando...

E realmente, estes são os tamanhos corretos.

No futuro, podemos usar o sizeof para verificar o tamanho de outros tipos de dados que aparecerão.

Referências

domingo, 27 de outubro de 2019

Primeiras Tecnologias na Industria Aeronáutica

A tecnologia na industria aeronáutica tem vindo cada vez mais a tornar-se extremamente importante no avanço da mesma. Para entendermos essa importância é necessário irmos ao passado para que possamos perceber que tecnologias eram usadas no principio de toda a aviação e ver a mudança que essa tecnologia tem vindo a causar na industria.
As primeiras tecnologias foram nada mais nada menos que os chamados mostradores analógicos em que era tudo a base a experiência do piloto não havia nenhum automatismo disponível naquela época. Exemplo disso são os instrumentos mais importantes para o controlo da aeronave o altímetro, o horizonte artificial, e a velocidade que o avião se encontra no ar.

Representação de um Altímetro utilizado antigamente
Representação de um Horizonte Artificial antigo
Representação de um AirSpeed Indicator antigo

Leis da Robótica


Leis da Robótica

As Três Leis Robóticas são em verdade três princípios idealizados pelo escritor Isaac Asimov. Isaac Asimov foi um prolífico escritor não apenas de ficção científica mas também de obras científicas, publicando ao todo mais de 500 livros e contos durante a sua longa carreira como escritor. Uma das suas obras mais famosas é "Eu, Robô" que já foi adaptado para cinema. As leis criadas pelo escritor servem para permitir o controle e limitar os comportamentos dos robôs que Asimov trazia à existência nos seus livros de ficção científica.


Legenda: Um típico robô anterior às leis de Asimov, conforme visto na primeira versão animada do Superhomem.

  • 1ª Lei: Um robô não pode ferir um ser humano ou, por inação, permitir que um ser humano sofra algum mal.
  • 2ª Lei: Um robô deve obedecer as ordens que lhe sejam dadas por seres humanos excepto nos casos em que tais ordens entrem em conflito com a Primeira Lei.
  • 3ª Lei: Um robô deve proteger sua própria existência desde que tal proteção não entre em conflito com a Primeira ou Segunda Leis.

Com estas leis Isaac Asimov possibilita a coexistência e harmonia entre os humanos e os robôs.