Pesquisar aqui

sábado, 9 de janeiro de 2021

Amazon drone delivery

A amazon drone delivery é um projeto iniciado pela amazon que propõe fazer entregas de encomendas de baixa assa através de drones.

Estes seriam equipados com sensores de diversos tipos, sendo até capazes de ver todo o ambiente á sua volta e desviar-se de obstáculos, como árvores e linhas elétricas. estes drones seriam capazes de carregar cargas até 2.3kg, mesmo parecendo pouco, a empresa afirma que um quando das suas encomendas entram nessa categoria.

Com os devidos sistemas de segurança e aprovação, estes drones seriam capazes de diminuir os preços das encomendas e os seus tempos de entrega.

Realidade Virtual e Realidade Aumentada

continuação do post anterior...

A pesquisa Global Realidade Aumentada e Realidade Virtual Hardware market 2021 fornece uma visão geral básica da indústria, incluindo definições, classificações, aplicações e estrutura da cadeia da indústria. O relatório de mercado Global Realidade Aumentada e Realidade Virtual Hardware é fornecido para os mercados internacionais, bem como tendências de desenvolvimento, análise de cenário competitivo e status de desenvolvimento de regiões-chave. Políticas e planos de desenvolvimento são discutidos, bem como processos de manufatura e estruturas de custos também são analisados. Este relatório apresenta adicionalmente o consumo de importação / exportação, dados de oferta e demanda, custo, preço, receita e margens brutas.



A lista dos PRINCIPAIS JOGADORES no Relatório de Mercado Realidade Aumentada e Realidade Virtual Hardware são: 

-Google
-Oculus Rift                                    
-Leap Motion
-Sony
-Avegant Glyph
-CyberGlove Systems                        

-Pokémon Company
-Zeiss VR One
-Razer OSVR
-Facebook
-Microsoft
-GoPro
-Vuzix Corporation
-FOVE VR
-Vuzix
-HTC
-Meta
-Samsung Electronics
-Eon Reality
-Augementa

Linguagens de Programação: Entrada 19 - Vale a pena pagar por um curso online de Python?

    Se não sabes nada de Python e queres aprender deverás começar por algo que não te arrependas, por exemplo uns videos, ou alguns manuais grátis que existem na internet.


    Mas, se ambicionas tornar-te um geek do Python, então talvez consderes comprar um guia de Python avançado. De qualquer das formas, não é obrigatório, já que hoje em dia existem milhões de informações sobre qualquer assunto online. Podes também utilizar blogs onde pões as tuas dúvidas, ou nservidores , por exemplo no discord, que te ajudam imenso.


    Por isso, respondendo ao titulo, na minha opinião, não acho que nã vaçe a pena pagar, por um curso online de Python, a não ser que seja estritamente obrigatório, ou realmente precises. :-)


Grandes projectos para Blender em 2021

"Deixemos 2020 para trás e aguardemos com expectativa um novo ano, e novos projetos no Blender." 

Em 2020, o Blender assistiu a enormes desenvolvimentos, tanto técnica como criativamente. Houve nada menos do que quatro lançamentos, incluindo um de Apoio a Longo Prazo. Do lado do Estúdio, um novo Filme Aberto chamado Sprite Fright, e encontra-se atualmente nas fases iniciais de produção. 

E este ano, há um monte de outras inovações a surgir.








1º Submarino Nuclear(USS Nautilus)

O USS Nautilus foi construído sobre a direção do Capitão Hayman G. Rickover um engenheiro nativo da Rússia que juntou-se ao departamento nuclear dos EUA no ano de 1948. Em 1947 o Capitão comandou uma equipa de engenheiros com o objetivo de construir o 1º submarino nuclear, e assim nasceu o USS Nautilus uns anos antes da sua previsão. Um revolucionário submarino muito maior e mais eficiente que qualquer outro na altura, possuía 100 metros de comprimento e pesava 3 180 toneladas, era capaz de aguentar submergido por períodos inimagináveis na altura, atingia uma velocidade de 20 knots (37km/h). Este submarino depois de uma carreira de 25 anos, foi considerado como um marco histórico e por isso no ano de 1986 foi guardado no museu: Submarine Force Museum em Groton.











Submarinos Nucleares

Um submarino nuclear, é um submarino que invés de ter o convencional diesel-elétrico, é movido por um reator nuclear, este motor com energia radioativa aquece a água criando vapor movendo uma turbina criando assim um campo eletromagnético, capaz de alimentar o submarino inteiro. 
O uso de propulsores nucleares demonstraram serem muito vantajosos dando a capacidade de um submarino permanecer de baixo de água durante 6 meses, e não precisa de ser abastecido durante 25 anos.
O 1o submarino nuclear: USS Nautilus


A importância da tecnologia em sumbarinos militares

A guerra entre submarinos tem sido sempre uma questão de esconder e encontrar o inimigo. Com o avanço tecnológico as maneiras de encontrar e esconder submarinos têm andado num conflito que depende muito da tecnologia, mas com o passar dos anos estatisticamente com dados públicos verifica-se que é mais fácil esconder um submarino, pois o ambiente onde ele encontra-se é profundo, escuro irregular e barulhento.
A tecnologia altera por completo o poder militar que um país possui. Por um lado grandes descobertas revolucionárias melhoram a capacidade de camuflagem de um submarino, mas por outro também podem facilitar a deteção de submarinos. Tecnologias deste tipo são muito difíceis de prever existindo múltiplos exemplos: na década de 1970 e 1980 devido a uma tecnologia que captava o reflexo dos submarinos na água fez com que os submarinos Americanos durante um ataque parecessem pequenos peixes a olhar para um barco enorme.
Submarino Akula-class


Dual Extrusion - Pros

Pros:

 -Suportes: De uma perspetiva funcional, talvez a vantagem mais significativa da extrusão dupla seja sua capacidade de combinar um material padrão com um material de suporte facilmente dissolvível. Isso é extremamente útil porque não apenas elimina a necessidade de remover os suportes, mas também garante que nenhuma marca de suporte seja deixada na impressão final. Os filamentos solúveis mais populares usados ​​para estruturas de suporte são PVA e HIPS. O PVA se dissolve em água, enquanto o HIPS se dissolve em limoneno.

 -Cores: se você estiver interessado em estética, uma vantagem óbvia da impressão 3D de extrusão dupla é a capacidade de imprimir em duas ou mais cores diferentes. Isso também pode desempenhar um papel funcional se você precisar que diferentes regiões de uma impressão se destaquem umas das outras. Os exemplos podem incluir modelos educacionais em áreas anatômicas ou automotivas. Você também pode criar efeitos interessantes de gradiente para o produto acabado.

 -Velocidade: ao dividir o trabalho entre duas extrusoras separadas, você pode economizar o tempo que suas impressões demoram, otimizando a produção. Seja imprimindo uma peça com várias cores, propriedades de materiais ou estruturas de suporte, você não terá que esperar muito para que sua ideia se torne realidade.

 -Força: a extrusão dupla oferece a oportunidade de reforçar seu principal material de impressão com algo mais resistente. Por exemplo, um bico pode imprimir a maior parte de uma parte de PLA enquanto o outro imprime apenas áreas específicas usando um filamento à base de fibra de carbono. Desta forma, a impressão final pode ser muito mais forte.

Dual Extruder - Impressão 3D

Dual Extrusion:


O que é?:

    Nos primeiros dias da impressão 3D, os fabricantes de FDM estavam limitados a imprimir um material por vez porque havia apenas um bico(nozzle). Com o desenvolvimento da extrusão dupla(dual extrusion) nos últimos anos, os fabricantes passaram a ter o poder de imprimir peças compostas por dois ou mais materiais.
    O processo de impressão com "dual extruders" é o mesmo das impressoras 3D FDM de extrusora simples “normais”. A única diferença é que a impressora alterna automaticamente entre os filamentos em tempos designados.


Este processo é bastante mais caro que o normal, ou seja apenas com um nozzle ou bico, pois a própria impressora é mais cara, gasta mais eletricidade e necessita do dobro dos motores e ventoinhas associadas ao extruder. 

QGroundControl

    QGroundControl fornece controle total de voo e planejamento de missão para qualquer drone habilitado para MAVLink. Seu objetivo principal é facilidade de uso para usuários profissionais e desenvolvedores. Todo o código é fonte aberta, então você pode contribuir e desenvolvê-lo como quiser.
    QGroundControl roda em Windows, OS X, Linux, iOS e Android, s
uporta vários pilotos automáticos: PX4 Pro, ArduPilot ou qualquer veículo que se comunique usando o protocolo MAVLink e funciona com todos os tipos de veículos suportados pelo PX4 Pro e ArduPilot (multi-rotor, asa fixa, VTOL, etc.)

MAVLink

    MAVLink é um protocolo de mensagens muito leve para comunicação com drones (e entre componentes de drones integrados).

    O MAVLink segue um padrão de design híbrido moderno de publicação-assinatura e ponto a ponto: Os fluxos de dados são enviados / publicados como tópicos, enquanto os subprotocolos de configuração, como protocolo de missão ou protocolo de parâmetro, são ponto a ponto com retransmissão.

    As mensagens são definidas em arquivos XMLCada arquivo XML define o conjunto de mensagens suportado por um sistema MAVLink específico, também conhecido como "dialeto". O conjunto de mensagens de referência que é implementado pela maioria das estações de controle de solo e pilotos automáticos é definido em common.xml (a maioria dos dialetos é construída sobre esta definição).

    O conjunto de ferramentas MAVLink usa as definições de mensagem XML para gerar bibliotecas MAVLink para cada uma das linguagens de programação suportadasDrones, estações de controle de solo e outros sistemas MAVLink usam as bibliotecas geradas para se comunicar. Eles são normalmente licenciados pelo MIT e, portanto, podem ser usados sem limites em qualquer aplicativo de código fechado sem publicar o código-fonte do aplicativo de código fechado.


O que é PX4?


    PX4 é um software de controle de voo de código aberto para drones e outros veículos não tripulados. O projeto fornece um conjunto flexível de ferramentas para que os desenvolvedores de drones compartilhem tecnologias para criar soluções personalizadas para aplicativos de drones. O PX4 fornece um padrão para fornecer suporte a hardware de drones e pilha de software, permitindo que um ecossistema crie e mantenha hardware e software de forma escalonável.     PX4 faz parte da Dronecode, uma organização sem fins lucrativos administrada pela Linux Foundation para promover o uso de software de código aberto em veículos voadores. Dronecode também hospeda QGroundControl, MAVLink e o SDK.

sexta-feira, 8 de janeiro de 2021

Realidade virtual Hardware tamanho do mercado.

Realidade Aumentada e Realidade Virtual Hardware Tamanho do 
Mercado, Análise da Participação em 2021 e pesquisa aprofundada sobre Dinâmicas de Mercado


Prevê-se que o mercado global Realidade Aumentada e Realidade Virtual Hardware aumentará a uma taxa considerável durante o período de previsão, entre 2021 e 2026. Em 2021, o mercado estava a crescer a uma taxa constante e com a crescente adoção de estratégias pelos principais participantes, o mercado deverá crescer .

O relatório também rastreia as últimas dinâmicas do mercado, como fatores impulsionadores, fatores restritivos e notícias do setor, como fusões, aquisições e investimentos. Tamanho do mercado global Realidade Aumentada e Realidade Virtual Hardware (valor e volume), participação de mercado, taxa de crescimento por tipos, aplicações e combina métodos qualitativos e quantitativos para fazer previsões micro e macro em diferentes regiões ou países.

O relatório final adicionará a análise do impacto do COVID-19 nesta indústria.

– No surto de COVID-19, este relatório fornece uma análise do impacto do COVID-19 na economia global e na indústria Realidade Aumentada e Realidade Virtual Hardware.

– Abrange a análise do impacto do COVID-19 sob a ótica da cadeia da indústria.

– Além disso, considere o impacto do COVID-19 na economia regional.

amostra do relatório : www.marketreportsworld.com/enquiry/request-covid19/16103730

[IDS] Groovy: O que é?

Definição


    Apache Groovy é uma linguagem de programação compatível com a sintaxe Java e orientada a objetos desenvolvida para a plataforma Java. Esta linguagem dinâmica possui muitos recursos semelhantes a Python, Ruby, Smalltalk e Pero. O código-fonte do Groovy é compilado em Java Bytecode para que possa ser executado em qualquer plataforma que tenha o JRE instalado. O Groovy também executa muitas tarefas nos bastidores, o que o torna mais ágil e dinâmico.

    A linguagem Groovy pode ser usada como linguagem de script para a plataforma Java. É quase como uma super versão do Java que oferece recursos empresariais do Java. Ele também oferece muitos recursos de produtividade, como suporte DSL, encerramentos e digitação dinâmica. Ao contrário de algumas outras linguagens, ele foi projetado como um companheiro, não um substituto do Java.


[IDS] Docker + Jenkins: Como iniciar o serviço do Jenkins em docker container

Tendo o docker instalado na máquina um terminal é suficiente para iniciar o serviço.


docker run -p 8080:8080 --name=containercomjenkins jenkins/jenkins

O que significa cada argumento do comando?
  • "docker run" : O docker executa processos em containers individuais. Um container é um processo executado em um host qualquer - podendo este ser local ou remoto (no exemplo do artigo o host é local). Quando um operador é executado "docker run", o processo do container que é executado é isolado por ter seu próprio sistema de arquivos, sua própria rede e sua própria árvore de processo isolada/separada do host. 
  • "--name=[ARG]" : É uma forma de identificar o container através de um nome, sem ser pelo UUID.
  • "-p PORTA_HOST:PORTA_CONTAINER": Define as portas que devem estar abertas e qual sentido as informações devem ir.
  • "jenkins/jenkins" : É o nome da imagem. Uma vez que não existe localmente, ele vai fazer o pull da imagem ao Docker Hub.
    Uma vez iniciado, precisamos de encontrar nos logs a password para o administrador do serviço:


    Visto que o redirecionamento de portas está 8080->8080, podemos acessar a interface gráfica do serviço em http://localhost:8080/. E utilizamos a password encontrada nos logs:


    E instalamos as extensões recomendadas (costumam facilitar a utilização de ferramentas como os 'Folders' e credentials, etc.):

    Após a instalação temos a configuração inicial completa!


    Et voilà,



[IDS] Pipeline: O que é?

    Em engenharia de software, um pipeline consiste em uma cadeia de elementos de processamento ( processos , threads , corrotinas , funções , etc. ), dispostos de forma que a saída de cada elemento seja a entrada do próximo; o nome é por analogia a uma canalização física. Normalmente, alguma quantidade de buffer é fornecida entre elementos consecutivos. As informações que fluem nesses pipelines costumam ser um fluxo de registros , bytes ou bits , e os elementos de um pipeline podem ser chamados de filtros; isso também é chamado de padrão de design de tubos e filtros . Conectar elementos em um pipeline é análogo à composição de funções .

    Estritamente falando, um pipeline é linear e unidirecional, embora às vezes o termo seja aplicado a fluxos mais gerais. Por exemplo, um pipeline basicamente unidirecional pode ter alguma comunicação na outra direção, conhecido como um canal de retorno ou backchannel, como no hack lexer , ou um pipeline pode ser totalmente bidirecional. Fluxos com árvore unidirecional e topologias de grafo acíclico direcionado se comportam de forma semelhante a pipelines (lineares) - a falta de ciclos os torna simples - e, portanto, podem ser vagamente chamados de "pipelines".

Para onde vamos...

Agência da União Europeia de Cibersegurança

Nas próximas entradas vou falar sobre cada uma delas mais ao pormenor.

Como chegámos aqui...

PHP vs JavaScript - o que escolher ao entrar no mundo da programação?

Atualmente, existem mais de 600 linguagens de programação completamente diferentes no mercado. Portanto, não é de se estranhar que se queremos começar a aprender um deles, queiramos escolher aquele que tem uma ampla gama de aplicações que serão úteis em um setor de alta demanda. Quais são as diferenças básicas entre PHP e JavaScript?

Qual é a linguagem PHP?

PHP é uma linguagem de programação conhecida como script. Geralmente é usado para criar um site. É caracterizado pela viabilidade do lado do servidor e, conseqüentemente, não é visível para o usuário. Permite a geração dinâmica de páginas, criando e modificando um arquivo no servidor, limitando a disponibilidade de dados de subpágina no site, criptografando dados e utilizando cookies.

Um exemplo de seu uso é um formulário em um site. Possibilita o manuseio de bancos de dados, porém, é necessário conhecimento de SQL. PHP foi referido como uma linguagem lenta, mas sua versão mais recente, PHP7, melhorou seu desempenho ao introduzir algumas mudanças importantes. O PHP é mais freqüentemente encontrado em sistemas de gerenciamento de conteúdo, fóruns, aplicativos de correio e bancos de dados.

PHP não é difícil de aprender, graças à sua dinâmica ele se torna bastante flexível ao escrever código e não é fortemente tipado. Sua sintaxe é bastante simples. Especialmente a última versão do PHP7, que elimina muitos bugs, tornou-se muito mais adequada para iniciantes.

Embora o PHP seja uma linguagem bastante antiga, não há sinais de que sua popularidade começará a declinar. Isso provavelmente ocorre porque a maioria dos sites mais populares o usa. Além disso, está em constante aperfeiçoamento, como prova a última versão do PHP7.

O que é JavaScript?

JavaScript é uma linguagem de alto nível tipada dinamicamente. É utilizado para criar um website, garantindo a sua interatividade e tratamento de eventos, validação de formulários e construção de elementos de navegação. Usar a linguagem dessa forma é facilitado por uma biblioteca como a jQuery. Ao usar JavaScript, o TypeScript também é frequentemente usado, o que permite mais digitação estática e programação orientada a objetos mais fácil. Esta linguagem também é usada na criação de jogos de computador para navegadores.

JavaScript não é uma linguagem complicada para aprender programação, especialmente porque é caracterizada por um alto nível. Ele pode ser escrito com um bloco de notas comum ou navegador. No entanto, o problema pode ser que o código funcione de maneira diferente em navegadores diferentes. Porém, com o seu desenvolvimento, essas diferenças diminuem, principalmente devido à padronização muito dinâmica. Além disso, é uma linguagem de thread único. Na prática, isso significa que apenas uma operação pode ser realizada por vez. Este é um problema no caso de aplicativos grandes porque as operações subsequentes serão bloqueadas pelas anteriores. Como resultado, quanto maior o aplicativo, mais problemas aparecem. Aprender a língua em si não é difícil, mas aprendê-la mais tarde na prática pode ser uma tarefa exigente.

No entanto, esta é uma linguagem que você deve conhecer se estiver interessado em páginas de programação. O JavaScript se desenvolve extremamente dinâmico, principalmente considerando as bibliotecas e frameworks, que aparecem com bastante frequência.

Qual a melhor escolha - PHP ou JavaScript?

No entanto, cada uma dessas linguagens tem suas vantagens e desvantagens, além de nos servir antes para outras atividades. Portanto, é melhor usar os dois idiomas ao mesmo tempo. Às vezes acontece que, por motivos de segurança, o JavaScript está desabilitado. Isso torna cada linha de código escrita em JavaScript fora do alcance do usuário. Além disso, o código escrito nesta linguagem é facilmente visível. Porém, a vantagem é a velocidade, que não é afetada pela velocidade do link. No caso do PHP, os scripts são interpretados pelo servidor, mas isso causa um grande atraso. Outra desvantagem é a carga na unidade de computação do servidor. Mas o PHP é uma linguagem invisível para os outros, então nosso código é mais seguro. Somente usando os dois idiomas, podemos criar um aplicativo seguro e totalmente funcional.

Como criar um mecanismo de modelo usando JavaScript

O design

O design inicial do mecanismo de template será bastante simples. Ele simplesmente interpola valores de um

data
objeto. Vai usar
{{valueName}}
 para interpolar valores.

Renderização Simples

Primeiro, vamos criar uma função de renderização simples que pega o modelo e os dados e renderiza o valor.

var render = (template, data) => {
	return template.replace(/{{(.*?)}}/g, (match) => {
		return data[match.split(/{{|}}/).filter(Boolean)[0]]
	})
}

Basicamente, tudo o que faz é pesquisar qualquer coisa que esteja entre colchetes e substitui-o pelo nome dentro 

data
Você pode escrever seus modelos como este e irá retirá-los do objeto de dados.

Hi, my name is {{name}}!
render("Hi, my name is {{name}}!", {
name: "shadowtime2000"
});

Mas há um problema, você não pode ter espaços nas interpolações.

render("Hi, my name is {{ name }}!", {
name: "shadowtime2000"
})
/*
Hi, my name is undefined!
*/

Isso requer que você tenha espaços dentro do objeto de dados, o que não é tão limpo. Podemos fazer com que permita espaços cortando os espaços em branco iniciais e finais do nome dos dados antes da interpolação.

var render = (template, data) => {
	return template.replace(/{{(.*?)}}/g, (match) => {
		return data[match.split(/{{|}}/).filter(Boolean)[0].trim()]
	})
}

Isso é muito bom, mas para modelos maiores não seria tão rápido porque tem que analisá-lo o tempo todo. É por isso que muitos motores de template suportam compilação, onde o template é compilado em uma função JS mais rápida que pode pegar os dados e interpolar. Vamos adicionar compilação ao nosso mecanismo de template, mas antes disso, precisamos adicionar uma função de análise especial.

Análise

Já que a análise pode ser um pouco entediante, vamos apenas reutilizar algum código de outro mecanismo de modelo JS. Eu teria usado o mecanismo de análise Eta, mas ele foi extremamente otimizado e pode ser muito confuso para as pessoas. Portanto, vamos usar outro código de análise de mecanismo de modelo JS popular, mde / ejs . Lembre-se de atribuí-los ao mecanismo de análise.

var parse = (template) => {
	let result = /{{(.*?)}}/g.exec(template);
	const arr = [];
	let firstPos;

	while (result) {
		firstPos = result.index;
		if (firstPos !== 0) {
			arr.push(template.substring(0, firstPos));
			template = template.slice(firstPos);
		}

		arr.push(result[0]);
		template = template.slice(result[0].length);
		result = /{{(.*?)}}/g.exec(template);
	}

	if (template) arr.push(template);
	return arr;
}

O que isso basicamente faz é repetir a execução do padrão regex no modelo e adicionar as coisas a uma estrutura de dados. Esta é a aparência dessa estrutura de dados:

["Hi my name is ", "{{ name }}", "!"]

Agora que a análise foi concluída, vamos prosseguir para a compilação.

Compilação

Vamos dar uma rápida visão geral do resultado da compilação. Imagine que você insira este modelo:

Hi my name is {{ name }}!

Ele lhe dará esta função:

function (data) {
	return "Hi my name is "+data.name+"!";
}

Vamos primeiro criar uma função para analisar e, em seguida, criar uma string que pode ser usada. Primeiro, temos que analisar o modelo.

const compileToString = (template) => {
	const ast = template;
}

Também temos que criar uma string que será usada como função.

const compileToString = (template) => {
	const ast = template;
	let fnStr = `""`;
}

O motivo pelo qual estamos usando aspas no início é porque quando ele está compilando os modelos e outros, todos eles começarão com um 

+
Agora temos que iterar no AST.

const compileToString = (template) => {
	const ast = template;
	let fnStr = `""`;

	ast.map(t => {
		// checking to see if it is an interpolation
		if (t.startsWith("{{") && t.endsWith("}}")) {
			// append it to fnStr
			fnStr += `+data.${t.split(/{{|}}/).filter(Boolean)[0].trim()}`;
		} else {
			// append the string to the fnStr
			fnStr += `+"${t}"`;
		}
	});
}

A parte final desta função é retornar a string da função.

const compileToString = (template) => {
	const ast = template;
	let fnStr = `""`;

	ast.map(t => {
		// checking to see if it is an interpolation
		if (t.startsWith("{{") && t.endsWith("}}")) {
			// append it to fnStr
			fnStr += `+data.${t.split(/{{|}}/).filter(Boolean)[0].trim()}`;
		} else {
			// append the string to the fnStr
			fnStr += `+"${t}"`;
		}
	});

	return fnStr;
}

Então, se for este o modelo:

Hi my name is  {{ name }}!

Ele retornará este:

""+"Hello my name is "+data.name+"!"

Agora que isso está feito, criar uma função de compilação é relativamente simples.

const compile = (template) => {
	return new Function("data", "return " + compileToString(template))
}

Agora concluímos a compilação de nosso mecanismo de modelo.