Linguagem Elixir

Elixir é uma linguagem dinâmica e funcional projetada para a criação de aplicativos escaláveis ​​e de manutenção.

O Elixir aproveita a Erlang VM, conhecida por executar sistemas de baixa latência, distribuídos e tolerantes a falhas, além de ser usada com sucesso no desenvolvimento da Web e no domínio de software incorporado.

Para saber mais sobre o Elixir, consulte nosso guia de introdução e nossa página de aprendizado para outros recursos . Ou continue lendo para obter uma visão geral da plataforma, idioma e ferramentas.

Recursos da plataforma

Escalabilidade

Todo o código Elixir é executado dentro de threads de execução leves (chamados processos) que são isolados e trocam informações por meio de mensagens:

current_process = self()

# Spawn an Elixir process (not an operating system one!)
spawn_link(fn ->
  send(current_process, {:msg, "hello world"})
end)

# Block until the message is received
receive do
  {:msg, contents} -> IO.puts(contents)
end

Devido à sua natureza leve, não é incomum ter centenas de milhares de processos em execução simultaneamente na mesma máquina. O isolamento permite que os processos sejam coletados de maneira independente, reduzindo as pausas em todo o sistema e usando todos os recursos da máquina da maneira mais eficiente possível (escala vertical).

Os processos também podem se comunicar com outros processos em execução em máquinas diferentes na mesma rede. Isso fornece a base para a distribuição, permitindo que os desenvolvedores coordenem o trabalho em vários nós (escala horizontal).

Tolerância ao erro

A verdade inevitável sobre o software em execução na produção é que as coisas vão dar errado . Ainda mais quando levamos em consideração a rede, os sistemas de arquivos e outros recursos de terceiros.

Para lidar com falhas, o Elixir fornece supervisores que descrevem como reiniciar partes do seu sistema quando as coisas dão errado, voltando a um estado inicial conhecido que é garantido que funcione:

children = [
  TCP.Pool,
  {TCP.Acceptor, port: 4040}
]

Supervisor.start_link(children, strategy: :one_for_one)

A combinação de escalabilidade, tolerância a falhas e programação orientada a eventos por meio da passagem de mensagens faz do Elixir uma excelente opção para arquitetura e programação reativa.

Caracteristicas do idioma

Programação funcional

A programação funcional promove um estilo de codificação que ajuda os desenvolvedores a escrever um código curto, conciso e sustentável. Por exemplo, a correspondência de padrões permite que os desenvolvedores destruam facilmente os dados e acessem seu conteúdo:

%User{name: name, age: age} = User.get("John Doe")
name #=> "John Doe"

Quando combinada com guardas, a correspondência de padrões nos permite combinar e declarar condições específicas para que algum código seja executado:

def drive(%User{age: age}) when age >= 16 do
  # Code that drives a car
end

drive(User.get("John Doe"))
#=> Fails if the user is under 16

O Elixir depende muito desses recursos para garantir que seu software esteja funcionando sob as restrições esperadas. E quando não estiver, não se preocupe, os supervisores estão de costas!

Extensibilidade e DSLs

O Elixir foi projetado para ser extensível, permitindo que os desenvolvedores estendam naturalmente a linguagem para domínios específicos, a fim de aumentar sua produtividade.

Como exemplo, vamos escrever um caso de teste simples usando a estrutura de teste do Elixir chamada ExUnit :

defmodule MathTest do
  use ExUnit.Case, async: true

  test "can add two numbers" do
    assert 1 + 1 == 2
  end
end

async: trueopção permite que tests sejam executados em paralelo, usando o maior número possível de núcleos de CPU, enquanto a assertfuncionalidade pode introspectar seu código, fornecendo ótimos relatórios em caso de falhas. Esses recursos são criados usando as macros do Elixir, possibilitando adicionar novas construções como se fizessem parte da própria linguagem.

Recursos de ferramentas

Um ecossistema em crescimento

O Elixir é fornecido com um ótimo conjunto de ferramentas para facilitar o desenvolvimento. O Mix é uma ferramenta de compilação que permite criar facilmente projetos, gerenciar tarefas, executar testes e muito mais:

$ mix new my_app
$ cd my_app
$ mix test
.

Finished in 0.04 seconds (0.04s on load, 0.00s on tests)
1 tests, 0 failures

O Mix também é capaz de gerenciar dependências e se integra ao gerenciador de pacotes Hex , que executa a resolução de dependências, busca pacotes remotos e hospeda documentação para todo o ecossistema.

Desenvolvimento interativo

Ferramentas como o IEx (shell interativo do Elixir) são capazes de alavancar muitos aspectos do idioma e da plataforma para fornecer ferramentas de depuração automáticas, recarga de código, recarga de código e documentação bem formatada:

$ iex
Interactive Elixir - press Ctrl+C to exit (type h() ENTER for help)
iex> h String.trim           # Prints the documentation for function
iex> i "Hello, World"        # Prints information about the given data type
iex> break! String.trim/1    # Sets a breakpoint in the String.trim/1 function
iex> recompile               # Recompiles the current project on the fly

Erlang compatível

O Elixir é executado na VM Erlang, oferecendo aos desenvolvedores acesso completo ao ecossistema da Erlang, usado por empresas como Heroku , WhatsApp , Klarna e muito mais para criar aplicativos distribuídos e tolerantes a falhas. Um programador Elixir pode chamar qualquer função Erlang sem custo de tempo de execução:

iex> :crypto.hash(:md5, "Using crypto from Erlang OTP")
<<192, 223, 75, 115, ...>>

Para saber mais sobre o Elixir, consulte o nosso guia de primeiros passos . Também temos documentação online disponível e um Crash Course para desenvolvedores de Erlang .

Fonte: https://elixir-lang.org/

Kit de laboratório doméstico de engenharia genética

 

 

 

Descrição do Produto

NOTA: A maneira como podemos oferecer este kit a um preço tão baixo é encontrando as melhores ofertas com nossos parceiros e fabricantes. Isso significa que este kit leva de 1 a 2 meses para ser enviado. Por favor, seja paciente e entenda que estamos fazendo o possível para chegar até você.

Consulte-nos sobre códigos de desconto para nossas aulas on-line com a compra deste kit.

Escolha nossa opção de plano de pagamento no check-out para fazer 4 pagamentos mensais.Veja mais informações aqui .

Este kit inicial do laboratório de bricolage fornece todo o equipamento, reagentes e materiais necessários para começar em biologia molecular e engenharia genética. Além disso, inclui um  kit de genotipagem e suprimentos do nosso  kit DIY CRISPR  para que você possa realizar seus primeiros experimentos! Vem com tutoriais explicando a ciência e como usar o equipamento.

Este kit vem com

  • Máquina de PCR com tampa aquecida
  • Tubos de PCR
  • Um conjunto de 3 novas pipetas de grau laboratorial
  • Pontas de pipeta para cada pipeta
  • Caixa de eletroforese em gel de agarose e molde de gel com pente
  • Rack de tubo
  • Uma fonte de alimentação para executar a eletroforese
  • 2 powerchords
  • Almofada de aquecimento com temperatura controlada para culturas em crescimento
  • 10g Agarose
  • 50g de mistura de tampão TAE (27g de base Tris / 23g de acetato de Tris / 0,5g de EDTA)
  • 5g de sulfato de canamicina
  • 5g de ampicilina de sódio
  • 40g de ágar LB
  • 20g LB Media
  • Manga de 20 placas de Petri
  • Balanças de 0,01g – 200g e balanças
  • Óculos trans-eye-luminator e luz azul
  • 5 x 15mL Tubes
  • 5 x tubos de 50 ml
  • bactérias ativadas por luz pDusk, pDawn
  • pJE202 bactérias brilhantes bioluminescentes geneticamente modificadas
  • 100uL Gel Verde Mancha 10.000x
  • 500uL 5x Taq Master Mix
  • Corante de carregamento de DNA de 200 uL
  • 100uL 100bp DNA Ladder
  • 100uL 1kbp DNA Ladder
  • Kit de Genotipagem
  • Suprimentos do  kit DIY CRISPR
  • Microcentrífuga 10k novíssima

https://www.the-odin.com/genetic-engineering-home-lab-kit/

Jython – A linguagem que mistura Java com Python

Essa linguagem une duas boas ferramentas numa só. 🐍

Introdução

Jython é uma implementação da linguagem Python que gera bytecode para máquinas Java (JVM – Java Virtual Machine). Com ela é possível fazer o desenvolvimento de aplicações híbridas que unem código em Java e Python.

Esta ferramenta é muito útil também para embutir uma linguagem para criação de scripts em aplicações que requerem este tipo de funcionalidade. Também inclui um compilador que converte código fonte Python em Java bytecode, permitindo que programadores Python possam escrever classes que possam ser utilizadas por um programa Java.

Entre suas vantagens, destacam-se:

  • 🐍 – Velocidade de desenvolvimento: Python é uma linguagem de desenvolvimento rápido (RAD – Rapid Application Development).
  • 🐍 – Praticidade: Não é necessário compilar o código Jython para testá-lo. Isto torna a depuração muito mais rápida. Depois de terminado o processo, utiliza-se o compilador Jythonc para compilar o programa, para incluir as bibliotecas do Jython existe a opção do freeze.
  • 🐍 – Tempo de aprendizado: Por ter uma sintaxe simples, limpa e coerente o seu aprendizado é muito fácil.

Instalação

Procedimento no Linux

  • 1. – Instale as dependências Primeiramente você precisará ter o instalados no seu sistema:
  • JDK – Ambiente de desenvolvimento para Java;
  • e o IcedTea – Um software de integração.

Use o gerenciador de pacotes da sua distribuição para instalá-los, exemplo, como instalei aqui no Gentoo:

sudo USE="-cups -alsa" emerge -a dev-java/openjdk-bin dev-java/openjdk-jre-bin

Nesse caso eu rejeitei os módulos: cups e alsa e o icedtea foi instalado automaticamente, pois é uma dependência.

Agora baixe o Jython no endereço: https://sourceforge.net/projects/jython/ . Após baixar extraia o pacote:

Antes crie e entre um diretório, para os arquivos não ficarem espalhados

mkdir ambiente && cd ambiente/
mv ../jython* .
jar xj jython.jar
java -jar jython_installer-*.jar

Após esse último comando, ele abrirá um wizard para você seguir, acompanhe as imagens abaixo:

Jython WizardJython WizardJython Wizard

Nessa 4º imagem ↓ parte você ainda poderia escolhe um diretório personalizado, exemplo de de ~/.config/jython, seria o mais ideal para não poluir sua pasta pessoal.Jython Wizard

Jython WizardJython WizardJython WizardJython WizardJython WizardJython Wizard

Após o finish agora vamos editar o seu vim ~/.bashrc e adicione a seguinte linha:

Nesse caso minha versão e nome do diretório é 2.5.2 , verifique a sua.

PATH="${PATH}:${HOME}/jython2.5.2/bin/"

Depois rode o comando source ~/.bashrc ou feche e abra o terminal para poder que o comando jython seja encontrado.

Criando sua primeira aplicação

Um mini aplicativo que efetua soma de dois números. Crie um arquivo como nome vim soma.py

import javax.swing as libswing 
pnumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ") 
snumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ") 
soma = int(pnumero) + int(snumero) 
libswing.JOptionPane.showMessageDialog(None, "A soma eh %d " % soma)

Salve e rode da seguinte maneira:

jython soma.py

No Shell irá aparecer as saídas do programa, mas não significa que é um problema, e sim que está enviando os outputs corretamente.

Jython WizardJython Wizard

Perceba que nesse caso eu somei 8 + 8 e o resultado foi o esperado. 😁️

Explicando o código

  • import javax.swing as libswing – Importa a biblioteca do Java.
  • pnumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ") – Mostra a primeira caixa de diálogo e armazena o valor na variável pnumero.
  • snumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ") – Mostra a segunda caixa de diálogo e armazena o valor na variável snumero.
  • soma = int(pnumero) + int(snumero) – Converte os valores de pnumero e snumero para inteiros e soma os dois armazenando o resultado na variável soma.
  • libswing.JOptionPane.showMessageDialog(None, "A soma eh %d " % soma) – Mostra na tela o resultado da soma, simples não é?

Conclusão

Eu particularmente curti o Jython 🙌️ e vou me aprofundar mais sobre ele e provavelmente haverá mais tutoriais aqui sobre o mesmo. E você ?! Curtiu ?! Conte-nos usando o campo de comentários . Abraços!

 

Fontehttps://terminalroot.com.br/2019/10/jython-a-linguagem-que-mistura-java-com-python.html?utm_source=dlvr.it&utm_medium=facebook

ProcMon e SysMon

Process Monitor é uma ferramenta avançada de monitoramento para Windows que mostra sistema de arquivos em tempo real, registro e atividade de processo / thread. Ele combina os recursos de dois utilitários herdados da Sysinternals, Filemon e Regmon , e adiciona uma extensa lista de aprimoramentos, incluindo filtragem rica e não destrutiva, propriedades abrangentes de eventos, como IDs de sessão e nomes de usuário, informações confiáveis do processo, informações de processo confiáveis, pilhas de threads completas com suporte integrado a símbolos para cada operação, registro simultâneo em um arquivo e muito mais. Seus recursos exclusivamente poderosos farão do Process Monitor um utilitário essencial no seu kit de ferramentas para solução de problemas e caça-malware do sistema.

Visão geral dos recursos do Monitor de processo

O Process Monitor inclui recursos avançados de monitoramento e filtragem, incluindo:

Mais dados capturados para os parâmetros de entrada e saída da operação

Filtros não destrutivos permitem que você defina filtros sem perder dados

A captura de pilhas de encadeamentos para cada operação possibilita, em muitos casos, identificar a causa raiz de uma operação

Captura confiável de detalhes do processo, incluindo caminho da imagem, linha de comando, ID do usuário e da sessão

Colunas configuráveis e móveis para qualquer propriedade de evento

Os filtros podem ser definidos para qualquer campo de dados, incluindo campos não configurados como colunas
A arquitetura avançada de log é escalada para dezenas de milhões de eventos capturados e gigabytes de dados de log

A ferramenta de árvore de processos mostra o relacionamento de todos os processos referenciados em um rastreio

O formato de log nativo preserva todos os dados para carregamento em uma instância diferente do Process Monitor
Dica de ferramenta de processo para fácil visualização das informações da imagem do processo

A dica de ferramenta Detalhes permite acesso conveniente a dados formatados que não cabem na coluna
Pesquisa cancelável
Registro de tempo de inicialização de todas as operações

A melhor maneira de se familiarizar com os recursos do Process Monitor é ler o arquivo de ajuda e, em seguida, visitar cada um dos itens e opções de menu em um sistema ativo.

SYSMON

O System Monitor ( Sysmon ) é um driver de serviço e dispositivo do sistema Windows que, uma vez instalado em um sistema, permanece residente nas reinicializações do sistema para monitorar e registrar a atividade do sistema no log de eventos do Windows. Ele fornece informações detalhadas sobre criações de processos, conexões de rede e alterações no tempo de criação do arquivo. Ao coletar os eventos que ele gera usando os agentes Windows Event Collection ou SIEM e, posteriormente, analisá-los, você pode identificar atividades maliciosas ou anômalas e entender como os invasores e malware operam na sua rede.

Observe que o Sysmon não fornece análise dos eventos que gera, nem tenta se proteger ou se esconder dos invasores.

Visão geral dos recursos do Sysmon
Sysmon inclui os seguintes recursos:

Registra a criação do processo com linha de comando completa para os processos atual e pai.
Registra o hash dos arquivos de imagem do processo usando SHA1 (o padrão), MD5, SHA256 ou IMPHASH.
Vários hashes podem ser usados ao mesmo tempo.
Inclui um GUID de processo em eventos de criação para permitir a correlação de eventos, mesmo quando o Windows reutiliza IDs de processo.
Inclua um GUID da sessão em cada evento para permitir a correlação de eventos na mesma sessão de logon.
Registra o carregamento de drivers ou DLLs com suas assinaturas e hashes.
Os logs são abertos para acesso bruto de leitura de discos e volumes
Opcionalmente, registra conexões de rede, incluindo o processo de origem de cada conexão, endereços IP, números de porta, nomes de host e nomes de porta.
Detecta alterações no tempo de criação do arquivo para entender quando um arquivo foi realmente criado. A modificação do registro de data e hora de criação de arquivo é uma técnica comumente usada por malware para cobrir suas faixas.
Recarregue automaticamente a configuração, se alterada no registro.
Filtragem de regras para incluir ou excluir determinados eventos dinamicamente.
Gera eventos desde o início do processo de inicialização para capturar atividades feitas por malware sofisticado no modo kernel.

LINKS

https://docs.microsoft.com/pt-br/sysinternals/downloads/sysmon

https://docs.microsoft.com/pt-br/sysinternals/downloads/procmon

Integração fiscal com equipamentos Bematech

Windows – SAT BEMATECH
http://bematechpartners.com.br/wp01/?page_id=308

Plataforma Fiscal Bematech
http://www.bematechpartners.com.br/wp01/upload-files/downloads/oneapi/DOCUMENTACAO_GERAL/help/APIOne.html#_o_que_é_a_a_apione

Integrando a Plataforma Fiscal através da APIOne.
http://www.bematechpartners.com.br/wp01/upload-files/downloads/oneapi/DOCUMENTACAO_GERAL/help/APIOne.html#_instalação_da_plataforma_fiscal_fiscal_manager

CENTRAL DE DOWNLOADS
http://bematechpartners.com.br/wp01/

Electron JS

 

 

Crie um aplicativo de desktop usando a tecnologia da Web (Javascript, HTML, CSS, Nodejs e mais), escrevendo o código javascript do zero usando o Electron.js como estrutura.

 

 

http://www.faztweb.com/curso/electron-primera-aplicaci%C3%B3n

https://github.com/FaztWeb/electron-products-test/blob/master/src/views/index.html

https://github.com/electron/electron-api-demos

 

http://photonkit.com/

 

 

 

 

Como instalar um servidor web no Raspberry Pi (Apache + PHP + MySQL)

Por que um Raspberry Pi como um servidor web?

Mas por que usar uma raspberry como um servidor web , em vez de usar provedores de serviços especializados em hospedagem na web?

Primeiro, do ponto de vista econômico, você deve saber que os serviços de hospedagem não são gratuitos e que você tem que pagar todos os meses / ano. Ao contrário do framboesa que só precisa de uma conexão . 
Além disso, escolhendo Raspberry, você tem a possibilidade de modificar seus serviços como você deseja (exemplos: o tamanho do disco, a hospedagem do banco de dados, etc.), que geralmente não é o caso de hosts especializados , que geralmente vendem compartilhada hospedagem com baixa capacidade de configuração . 
No entanto, para suportar mais usuários, você deve usar um Raspberry Pi 3 (o Pi 3 pode ser encontrado aqui ), o Raspberry Pi com 1 GB de RAM, em vez do Raspberry tipo B + (512 MB de RAM)

A questão que surge agora é, como fazer um servidor web no Raspeberry Pi ? Instalação do servidor Apache com Raspbian

O que é o Apache?

Primeiro, vamos instalar o Apache, que é o servidor web como tal . 
Quando falamos de um servidor web, geralmente pensamos na máquina, mas esse termo também se refere ao software que permite que a máquina analise solicitações de usuários (em formato http) e retorne o arquivo correspondente à solicitação (Ou um erro se o arquivo não for encontrado ou a consulta for formulada incorretamente). 
Como parte do Apache, é um software sobre o qual falamos .

No momento, o Apache é o servidor web mais utilizado , com cerca de 60% de participação de mercado. O Apache tem sua própria licença, usada por muitos outros projetos. Além disso, o uso maciço do Apache (que se tornou o padrão para servidores da Web), juntamente com sua alta popularidade, levou a uma tremenda abundância de documentação, cursos e outros livros relacionados ao seu uso, e sua segurança, como esta. livro .

Seja para o Raspberry Pi e o Raspbian, ou para uma máquina mais genérica, o Apache é, portanto, uma opção segura , e as habilidades que você poderá adquirir no assunto sempre serão úteis.

Instalação do Apache

Antes de instalar o servidor, verifique se temos uma máquina atualizada. Para fazer isso , devemos ter direitos de administrador , seja por causa do comando sudo.

sudo apt update

sudo apt upgrade

sudo apt update

Quando o Raspberry Pi estiver atualizado, instalaremos o servidor Apache.

sudo apt instalar apache2


A propósito, aproveitamos para dar direitos ao arquivo do apache
para que você possa gerenciar facilmente seus sites. 
Para fazer isso, execute os seguintes comandos:

sudo chown -R pi: www-data / var / www / html / 
chmod sudo-R 770 / var / www / html /

Verifique se o Apache está funcionando

Quando a instalação estiver concluída, podemos testar se o Apache está funcionando corretamente , indo para o endereço do Raspberry. 
Para fazer isso, é necessário tentar acessar o Raspberry a partir da porta 80 (essa porta não será aberta de fora, ela terá que fazer desde o próprio Raspberry). Não se preocupe, é muito fácil. Simplesmente abra o navegador da Web Raspberry e vá para “http://127.0.0.1”. Você deve então receber uma página com uma mensagem como “Funciona! “E muitos outros textos. 
Se você ainda não tem uma GUI no seu Raspbian ou usa o SSH para se conectar ao seu Raspberry, você pode usar o seguinte comando:

wget -O check_apache.html http://127.0.0.1

Este comando salvará o código HTML da página no arquivo “check_apache.html”no diretório atual. 
Então você só tem que ler o arquivo com o comando

cat ./check_apache.html

Se você vir marcado em um local no código “Funciona! É que o Apache está funcionando.

O Apache usa o diretório “/ var / www / html” como a raiz do seu site. Isso significa que quando você chama seu Raspberry na porta 80 (http), o Apache procura o arquivo em “/ var / www / html”. 
Por exemplo, se você chamar o endereço “http://127.0.0.1/example”, o Apache procurará o arquivo “exemplo” no diretório “/ var / www / html”. 
Para adicionar novos arquivos, sites, etc., você precisará adicioná-los a este diretório.

Agora você pode usar seu Raspberry para criar um site em HTML, CSS e JavaScriptinternamente. 
No entanto, você pode querer permitir rapidamente interações entre o site e o usuário . Por exemplo, para permitir que o usuário se registre, etc. Para isso, você precisará do PHP.

Instalação do PHP no seu Raspberry Pi

O que é PHP?

Primeiro de tudo, você deve saber que o PHP é uma linguagem interpretada . E como no caso dos servidores, a sigla PHP pode ter vários significados . De fato, quando falamos sobre PHP, podemos falar sobre o idioma ou o interpretador . 
Aqui, quando falamos sobre a instalação do PHP, isso significa que vamos instalar o interpretador , a fim de usar a linguagem.

O PHP (o idioma desta vez) é usado principalmente para tornar um site dinâmico, isto é, o usuário envia informações para o servidor que retorna os resultados modificados de acordo com essas informações . Por outro lado, um site estático não se adapta às informações fornecidas por um usuário . É salvo como um arquivo de uma vez por todas e sempre entregará o mesmo conteúdo.

O PHP é gratuito e mantido pela PHP Foundation, assim como pelo Zend Enterprise, e várias outras empresas (deve-se notar que Zend também é o autor do famoso framework Zend PHP, amplamente utilizado e reconhecido no mundo dos negócios). .

É uma das linguagens de programação mais utilizadas e é até a mais utilizada para programação web, com cerca de 79% de market share.

Mais uma vez, todas as habilidades que você pode adquirir, no idioma, ou na instalação e configuração do interpretador, sempre serão úteis. Então, só podemos aconselhá-lo a aprender o PHP, que é realmente uma linguagem maravilhosa e muitas vezes subestimada.

Como instalar o PHP

Voltaremos a usar o administrador para instalar o PHP com a linha de comando.

sudo apt instalar php php-mbstring

Saber se o PHP está funcionando

Para saber se o PHP está funcionando corretamente, não é muito complicado, e o método é bastante semelhante ao usado para o Apache .

Você primeiro excluirá o arquivo “index.html” no diretório “/ var / www / html”.

sudo rm /var/www/html/index.html

Em seguida, crie um arquivo “index.php” neste diretório, com esta linha de comando

echo "<? php phpinfo ();?>"> /var/www/html/index.php

A partir daí, a operação é a mesma da verificação do Apache . Você tenta acessar sua página, e você deve ter um resultado próximo a esta imagem (se você não tiver uma interface, use o mesmo método de antes, e procure as palavras “Versão do PHP”).

Capturando um phpinfo de um servidor em Raspbian.

Tabela gerada pelo comando phpinfo em uma framboesa.

Um banco de dados MySQL para o seu servidor

Um DBMS, o  que é isso? Por que o MySQL?

Agora que configuramos o PHP, você provavelmente desejará armazenar informações para uso em seus sites. Para este propósito, os bancos de dados são usados ​​com mais freqüência. 
Vamos, portanto, configurar um DBMS (Database Management System), ou seja, o MySQL.

O MySQL é um DBMS gratuito , poderoso e usado maciçamente (cerca de 56% de participação no mercado de DBMSs gratuitos). Aqui, novamente, o MySQL é tão essencial para o desenvolvimento, seja qual for a linguagem, que você deve aprender e dominar completamente, com este livro, por exemplo .

Como instalar o MySQL

Para fazer isso, vamos instalar o mysql-server e o php-mysql (que servirão como um link entre o php e o mysql)

sudo apt instale o mysql-server php-mysql

Verifique se o MySQL está funcionando corretamente

Para verificar o funcionamento do MySQL, desta vez vamos usar apenas a linha de comando . Para fazer isso, simplesmente nos conectaremos pelo comando:

sudo mysql --user = root

Não excluiremos o usuário root padrão do mysql e criaremos um novo usuário root do mysql, porque o padrão só pode ser usado com a conta root do Linux, e portanto não disponível para os scripts do servidor web e php.

Para fazer isso, uma vez que você se conectar ao MySQL, simplesmente execute esses comandos (substitua passwordpela senha que você quer):

DROP USER 'root' @ 'localhost'; 
CREATE USER 'root' @ 'localhost' IDENTIFICADO POR 'senha'; 
GRANT ALL PRIVILEGES ON *. * TO 'root' @ 'localhost'

Então você agora tem um servidor web, conectado ao PHP e MySQL . Isso é tudo que é preciso.

(Nas suas conexões de nexts, você poderá se conectar ao mysql sem usar o sudo, com o comando mysql --user=root --password=yourmysqlpassword).

Adicionar PHPMyAdmin

A instalação do PHPMyAdmin é absolutamente desnecessária. Nesta instalação, não vamos nos preocupar com nenhuma configuração de segurança especial!

A instalação do PHPMyAdmin é muito rápida e fácil, nós simplesmente temos que usar o gerenciador de pacotes com este comando:

sudo apt instala phpmyadmin

O programa de instalação do PHPMyAdmin fará algumas perguntas. Sobre o dbconfig-commoncomponente, opte por não usá-lo (como já configuramos nosso banco de dados). Sobre o servidor para configurar o PHPMyAdmin para, escolha Apache. E a senha do root é aquela que você definiu para o MySQL.

Você também deve ativar a extensão mysqli usando o comando acima:

sudo phpenmod mysqli 
sudo /etc/init.d/apache2 reiniciar

Verifique se o PHPMyAdmin está funcionando corretamente

Para verificar se o PHPMyAdmin funciona, você simplesmente tentará acessá-lo, usando o endereço do seu Raspberry seguido de / phpmyadmin. Por exemplo, localmente será http://127.0.0.1/phpmyadmin

Se você ainda receber um erro, pode ser porque o PHPMyAdmin foi movido para outro diretório. Neste caso, tente o comando

sudo ln -s / usr / share / phpmyadmin / var / www / html / phpmyadmin

Agora, podemos acessar o PHPMyAdmin do navegador do Raspberry Pi, com o URL: http://127.0.0.1/phpmyadmin

Tornar um servidor acessível a partir da web

Seu servidor da web está pronto. No entanto, você provavelmente não pode acessá-lo da internet . De fato, seria necessário que o seu modem redirecionasse os pedidos para o seu Raspberry, as boas portas. 
Para colocar esses redirecionamentos no lugar, e até mesmo obter um URL, você deve olhar para DynDNS e encaminhamento de porta!

Fonte

https://howtoraspberrypi.com/how-to-install-web-server-raspberry-pi-lamp/

https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost

API de sensor genérico – W3C

Cada vez mais, os dados dos sensores são usados ​​no desenvolvimento de aplicativos para permitir novos casos de uso, como geolocalização, contagem de etapas ou rastreamento de cabeças. Isso é especialmente verdadeiro em dispositivos móveis nos quais novos sensores são adicionados regularmente.

A exposição de dados de sensores à Web até agora tem sido lenta e ad-hoc. Poucos sensores já estão expostos à web. Quando eles são, muitas vezes é de maneiras que limitam seus possíveis casos de uso (por exemplo, expondo abstrações que são muito alto nível e que não funcionam bem o suficiente). As APIs também variam muito de um sensor para o outro, o que aumenta a carga cognitiva dos desenvolvedores de aplicativos da Web e diminui o desenvolvimento.

O objetivo da Generic Sensor API é promover consistência entre APIs de sensores, habilitar casos de uso avançados graças a APIs de baixo nível e aumentar o ritmo no qual novos sensores podem ser expostos à Web, simplificando a especificação e os processos de implementação.

Uma lista abrangente de sensores sólidos que são baseados na API do Sensor genérico, casos de uso aplicáveis ​​e exemplos de código pode ser encontrada nos documentos do [GENERIC-SENSOR-USECASES] e [MOTION-SENSORS] .

https://w3c.github.io/sensors/#high-level

Biblioteca Modernizr

O que é a Modernizr

Modernizr é uma pequena biblioteca Javascript que detecta a disponibilidade das novas características do HTML5 e CSS3 nos browsers. Muitas destas características já estão implementadas nos browsers, mas é muito chato você decorar quais novidades os browsers já estão suportando. O que a Modernizr faz é simples: ela te diz quais features um determinado browser suporta e insere classes no HTML para que você possa utilizar para fazer uma versão alternativa de visual ou solução.

Entenda que a Modernizr não é um sniffing de browser. Ela é diferente. A Modernizr faz o trabalho de detectar das seguintes formas:

  • Ela testa 40 features de CSS3 e HTML5 em alguns milisegundos.
  • Depois ela cria objetos javascript que contém os resultados destes testes.
  • Aí são adicionadas classes no elemento HTML descrevendo exatamente quais propriedades e novidades são ou não nativamente suportadas.
  • Depois disso você consegue ter os resultados descritos nos navegadores dinamicamente e então pode tomar decisões criando alternativas para aquelas propriedades não suportadas pelos browsers antigos.

 

 

 

 

 

Fontes:

 

https://tableless.com.br/utilizando-a-biblioteca-modernizr/

https://github.com/Modernizr/Modernizr

 

SENSOR ULTRASÔNICO JSN-SR04T

O JSN-SR04T é um sensor de distância ultra-sônico à prova d’água, fácil de usar, com uma faixa de 25 a 450 cm. Se você está planejando construir um sistema de medição do nível de água ou se você precisa fazer outras medições de distância fora, então este é o sensor que você precisa!

Eu incluí um diagrama de fiação e códigos de exemplo para que você possa começar a experimentar seu sensor.

 

O que este artigo cobre

Informações sobre o sensor

O sensor vem com um cabo de 2,5 m de comprimento que se conecta a uma placa de fuga que controla o sensor e faz todo o processamento do sinal. Note que apenas o sensor e o cabo em si são à prova d’água, se você colocar água na placa de fuga, coisas ruins acontecerão.

Um sensor de distância ultra-sônico funciona enviando ondas de ultra-som. Essas ondas de ultra-som são refletidas de volta por um objeto e o sensor ultrassônico as detecta. Ao cronometrar quanto tempo passou entre enviar e receber as ondas sonoras, você pode calcular a distância entre o sensor e um objeto.

Distância (cm) = Velocidade do som (cm / µs) × Tempo (µs) / 2

Onde Tempo  é o tempo entre enviar e receber as ondas sonoras em microssegundos.

Então, quais são as diferenças entre este sensor e o HC-SR04? A principal diferença, além de ser à prova d’água, é que este sensor usa apenas um transdutor ultrassônico. Este transdutor serve tanto como transmissor quanto receptor das ondas de ultra-som.

Para mais informações sobre como os sensores ultrassônicos funcionam, você pode conferir o artigo no HC-SR04 abaixo. Neste artigo, o princípio de funcionamento é explicado com muito mais detalhes.

JSN-SR04T Especificações

Tensão operacional 5V
Corrente de operação 30mA
Corrente quiescente 5mA
Freqüência 40 kHz
Faixa de medição 25 a 450 cm
Resolução 2 mm
Ângulo de medição 45 a 75 graus
Dimensões do sensor Cabo de 23,5 x 20 mm, 2,5 m de comprimento
Dimensões do PCB 41 x 28,5 mm
Orifício de montagem 18 mm

Para mais informações, você pode conferir a folha de dados aqui.

Componentes

* Nota: os links acima são afiliados, o que significa – sem nenhum custo adicional para você – se você comprar algo usando eles, você está ajudando a apoiar o meu trabalho neste site. Meus humildes agradecimentos (eu realmente agradeço)! 

Ao comprar o sensor, você pode encontrar a versão atualizada,  JSN-SR04T-2.0 . Essa versão mais recente funciona exatamente da mesma forma, mas alguns usuários encontraram problemas ao usar os sensores em uma voltagem mais baixa. Esta versão mais recente está classificada para 3 a 5 V.

Usar um pulso de gatilho mais longo de pelo menos 20 µs em vez de 10 µs parece ajudar se você estiver tendo leituras defeituosas.

Fiação – Conectando o JSN-SR04T ao Arduino UNO

O diagrama de fiação / esquema abaixo mostra como conectar o sensor JSN-SR04T ao Arduino. A placa de desagregação da JSN-SR04T possui a mesma pinagem que a HC-SR04, portanto, pode ser usada como substituta imediata. O cabo do sensor em si pode ser conectado ao conector na parte de trás da placa de fuga.

JSN-SR04T com diagrama de fiação do Arduino

Os exemplos de código abaixo usam os pinos digitais 2 e 3 para o gatilho e o pino de eco, mas é claro que você pode mudar isso para qualquer pino digital desejado.

Conexões JSN-SR04T

JSN-SR04T Arduino
5V 5V
Trig Pino 2
Eco Pino 3
GND GND

Exemplo de código para o JSN-SR04T com Arduino

Agora que você conectou o sensor, é hora de conectar o Arduino ao computador e fazer o upload de algum código. O sensor pode ser usado sem uma biblioteca do Arduino. Mais tarde, mostrarei um exemplo com a biblioteca NewPing, que torna o código muito mais curto.

Você pode fazer o upload do seguinte código de exemplo para o seu Arduino usando o  Arduino IDE . Em seguida, vou explicar como o código funciona. (Este código também funciona para o JSN-SR04T-2.0).

/* JSN-SR04T Ultrasonic Distance Sensor with Arduino Example Code. More info: https://www.makerguides.com */

//Define Trig and Echo pin
#define trigPin 2
#define echoPin 3

//Define variables
long duration;
int distance;

void setup()
{
//Define inputs and outputs
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

//Begin Serial communication
Serial.begin(9600); // Starts the serial communication at a baudrate of 9600
}

void loop()
{
//Clear the trigPin by setting it LOW
digitalWrite(trigPin, LOW);
delayMicroseconds(5);

//Trigger the sensor by setting the trigPin high for 10 microseconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

//Read the echoPin. pulseIn() returns the duration (length of the pulse) in microseconds.
duration = pulseIn(echoPin, HIGH);
// Calculate the distance
distance= duration*0.034/2;

//Print the distance on the Serial Monitor (Ctrl+Shift+M)
Serial.print("Distance = ");
Serial.print(distance);
Serial.println(" cm");
delay(100);
}

Se houver a necessidade de leitura de mais sensores, isso pode ser feito facilmente com a biblioteca NewPing. Basta criar duas ou mais instâncias da classe NewPing e adicionar um gatilho e um eco adicionais:

#define trigPin 2 
#define echoPin 3 
#define trigPin2 4 
#define echoPin2 5

Sonar NewPing (trigPin, echoPin, MAX_DISTANCE); 
Sonar 2 de NewPing (trigPin2, echoPin2, MAX_DISTANCE);

Agora, se você quiser ler o primeiro sensor, você pode usar o sonar.ping_cm () e o segundo sensor sonar2.ping_cm ().

 

DOWNLOAD DA BIBLIOTECA NEW PING

 

FONTE: https://www.makerguides.com/jsn-sr04t-arduino-tutorial/

 

Cientistas criam implante que produz palavras a partir de ondas cerebrais

O sistema do trato vocal virtual conecta-se diretamente ao cérebro e sintetiza fala a partir de sinais cerebrais associados com os aspectos mecânicos da fala, como movimentos da mandíbula, laringe, lábios e língua. Eventualmente, o dispositivo poderia ser usado por pessoas que perderam a capacidade de falar. A pesquisa foi publicada nesta quinta-feira (25) na renomada científica revista Nature.

Projeto em Python que acessa a webcam e move os olhos em direção aos olhos dos espectadores

Rastreamento de rostos com personagens de anime

Fonte:  https://github.com/Aditya-Khadilkar/Face-tracking-with-Anime-characters?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more

 

 

yuriRequisitos: Ter o python3 instalado. (Eu usei o Python3.6 no python IDLE) instale o OpenCV, os, math, ctypes, time, pygame (você provavelmente só precisará baixar o OpenCV eo PyGame)

Agora pegue o arquivo “YURI FULLSCREEN.py” deste repositório no seu computador. salve as imagens yuri2.bmp e eyes e dê o caminho para essas imagens no código (você também pode usar seu próprio waifus se quiser) baixe o haarcascade e dê a sua localização no código. Execute o código e divirta-se com o seu waifu … weeb

Faça o seu próprio:

Você precisará apenas de 2 imagens

  1. personagem sem olhos yuriwoeyes
  2. os olhosolhossó usam essas imagens e você está pronto para ir!

Versão 2: Yuri agora tem proximidade

Se você mover seu rosto para perto da webcam, ela cora!
Eu adicionei alguns novos arquivos: yuriblush.py (Porque nós não damos espaços em nomes de arquivos :)), Yuri blush.png, Yuri cute.png, Yuriceyes.png,

O processo é o mesmo acima, em vez de baixar YURI FULLSCREEN.py use yuriblush.py. Copie e cole os caminhos e você é bom!

yuri fofayuri blush

Gort – Interface de linha de comando para RobotOps

Gort ( http://gort.io ) é um kit de ferramentas de linha de comando para RobotOps. O Gort fornece ferramentas para procurar dispositivos conectados, carregar firmware e muito mais.

Gort é escrito na linguagem de programação Go ( http://golang.org ) para máxima velocidade e portabilidade.

Quer usar o Golang para programar seus robôs? Confira nossa estrutura de robótica de código aberto Gobot ( http://gobot.io ).

Quer usar JavaScript em robôs? Confira Cylon.js ( http://cylonjs.com )

Quer usar o Ruby em robôs? Confira Artoo ( http://artoo.io )

 

https://github.com/hybridgroup/gort

Guia Interativo de Pinos GPIO para Raspberry Pi

O guia abrangente de Pinos do GPIO para o Raspberry Pi.

Esta GPIO Pinout foi projetada para ser uma referência rápida e interativa aos pinos GPIO do Raspberry Pi, além de um guia abrangente para as interfaces GPIO do seu Raspberry Pi. Ele também inclui dezenas de pinouts para placas de expansão, HATs e pHATs do Raspberry Pi.

 

https://pinout.xyz/

SPLUNK

 

 

  • A Splunk se tornou referência em análise de dados ao se posicionar com sua plataforma de inteligência operacional, inicialmente a partir da análise de logs, depois através da análise de dados quaisquer, gerados por máquinas, que sejam relevantes para o negócio.

http://www.howto-things.com

“Habitats Compartilhados” – Entre outras coias buscam desenvolver práticas artísticas contemporâneas com ênfase na troca mútua entre atores em um ambiente compartilhado. Esses atores incluem artistas emergentes e estabelecidos, designers, educadores, cientistas e pensadores de várias disciplinas, em ambientes que abrangem universidades, laboratórios, o cubo branco, o cubo verde e espaços cinematográficos, bem como outros locais, trabalhando com organismos vivos, objetos e sites específicos para o trabalho que está sendo desenvolvido.

Seguindo o conceito de vivência de Jakob von Uexküll baseado no indivíduo Umwelt (1926), trabalharemos na idéia de comunicação que se desdobra através da interação entre arte, tecnologias da informação e biotecnologias em um ambiente compartilhado. A interação proposta garantirá nosso foco em processos de baixo para cima que apóiem ​​atividades de auto-organização e permitam que artistas e leigos aprendam uns com os outros.

Este projeto visa fazer coisas com os outros (DIWO) e aprender uns com os outros: queremos saber como nossos colegas entendem a vida e como eles usam a matéria viva em suas práticas. Também queremos criar um conhecimento decente em um ambiente multidisciplinar, incluindo artes, ciências e engenharia. Portanto, agendamos três residências de um mês para nossos participantes: em Roskilde (DK), Stavanger (NO) e na Letônia rural. Entre as residências, teremos uma série de oficinas pop-up, seminários, um festival e uma exposição para a troca de discursos atualizados em artes e política.

O projeto foi iniciado pela Universidade Bauhaus de Weimar, em colaboração com a Institutio Media. É apoiado pelo Ponto de Cultura Nórdico.

Maven no Windows – Como configurar

 

Se a variável de ambiente estiver lotada, basta alterar via registro do windows:

 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Session Manager\Environment]

DLL emulador SAT, fechando aplicação ao ser consumida

Bom dia amigos,

estou usando o emulador do SAT encontrado no site da SEFAZ para testar minha aplicação em C# .NET. Estou com um problema que, quando tento consumir a SAT.dll, todos os métodos importados da DLL por qual minha aplicação passa, ela fecha inesperadamente sem dar catch em nenhum exceção.

 

Estou importando a DLL dessa forma:

[DllImport("dllsat.dll", CallingConvention = CallingConvention.Cdecl)] public static extern string EnviarDadosVenda(int iNumSessao, string pcCodAtivacao, string pcDadosVenda);

No meu método, esta assim:

        public static void enviarDadosCFeToSat()
        {
            try
            {
                var xml = readFileXML();
                int numSessao = gerarNumeroSessao();
                string codAtivacao = "123456789";

                var resposta = EnviarDadosVenda(numSessao, codAtivacao, xml);
            }
            catch 
            {
                throw;
            }
        }

Ao passar pelo método EnviarDadosVenda(x, y, z), a resposta no LOG é:

  Citar

[2019-01-16 11:02:41.619]:Erro: Falha na estrutura do XML de venda.
[2019-01-16 11:02:41.626]:ERRO NA EMISSAO: 1999: null

Entendo que o XML possa estar errado, mas a minha aplicação fecha inesperadamente e não importa qual tratamento que dou, ele não apresenta a exceção. Alguém sabe como implementar de forma que a aplicação não feche? Mesmo os métodos que passam com sucesso pela dll acabam por fechar após chamar a DLL.

 

Grato

 

SOLUÇÃO:

 

Já resolvi! Se puderem fechar o post, agradeço. Se alguém passar por isso no futuro, segue a solução abaixo.

Tive que fazer as seguintes modificações no código:

        [DllImport("dllsat.dll", CallingConvention = CallingConvention.Cdecl)] public static extern IntPtr EnviarDadosVenda(int iNumSessao, string pcCodAtivacao, string pcDadosVenda);

e no meu método:

        public static void enviarDadosCFeToSat()
        {
            try
            {
                readFileXML();
                int numSessao = 2;
                string codAtivacao = "123456789";

                IntPtr ptr = EnviarDadosVenda(numSessao, codAtivacao, xml);
                string s = Marshal.PtrToStringAnsi(ptr);
            }
            catch 
            {
                throw;
            }
        }

Fonte: https://www.projetoacbr.com.br/forum/topic/48771-dll-emulador-sat-fechando-minha-aplica%C3%A7%C3%A3o-ao-ser-consumida/?_fromLogin=1#_=_

Google adquire a DORA, o aplicativo móvel RPA da Automation Anywhere e o novo laboratório de robótica da NVIDIA

DevOps Research and Assessment (DORA) foi adquirida pelo Google. A aquisição permitirá que a DORA crie melhores experiências de usuário no Google Cloud para desenvolvedores e operações por meio de insights orientados por dados.

“As melhores e mais inovadoras organizações desenvolvem e entregam seus softwares com mais rapidez, confiabilidade e segurança, e com maior qualidade, com alto desempenho em tecnologia”, disse a Dra. Nicole Forsgren, CEO e cientista chefe da DORA. “Estamos entusiasmados por nos unirmos a uma equipe comprometida com o fornecimento de práticas de DevOps apoiadas por pesquisas e esperamos continuar nosso trabalho para entender os principais recursos, medir resultados orientados a valor e otimizar processos para ajudar as equipes a entregar seus softwares à medida que avançam. nuvem.”

A Automation Anywhere lança um aplicativo móvel para a empresa RPA
Robotic Automation (RPA) A Automation Anywhere anunciou um aplicativo móvel para o gerenciamento seguro de bots RPA construídos usando sua plataforma RPA inteligente. Segundo a empresa, o aplicativo irá ampliar o alcance da RPA na empresa.

“Estima-se que os indivíduos gastam uma média de quatro horas por dia em seus dispositivos móveis”, disse Abhijit Kakhandiki, vice-presidente sênior de Produtos e Engenharia para Automação em Qualquer Lugar. “A capacidade de controlar bots e gerenciar toda a força de trabalho digital a partir de um dispositivo móvel, sempre de fácil acesso, é um gamechanger”.

NVIDIA abre laboratório de pesquisa em robótica em Seattle A
NVIDIA anunciou que está abrindo um novo laboratório de pesquisa em robótica perto da Universidade de Washington em Seattle. O objetivo do laboratório é conduzir pesquisas de robótica para permitir que uma próxima geração de robôs seja capaz de executar tarefas complexas de manipulação e trabalhar com segurança entre seres humanos.

De acordo com a NVIDIA, cerca de 50 pesquisadores, professores visitantes e estagiários estudarão no laboratório. “No passado, a pesquisa em robótica se concentrava em projetos pequenos e independentes, em vez de sistemas totalmente integrados. Estamos reunindo uma equipe interdisciplinar colaborativa de especialistas em controle e percepção de robô, visão computacional, interação homem-robô e aprendizado profundo ”, disse Dieter Fox, diretor sênior de pesquisa em robótica da NVIDIA e professor da UW Paul G. Allen School of Ciência da Computação e Engenharia.