Objetivo prático – fazer um servidor de microserviços
Acho legal cada pessoa escolher o seu tema, mas como sugestão vou escolher fazer um microserviço que checa se um sistema qualquer está no ar ou não.
Aula 0 – Alicerce de conhecimentos
Para “aquecer os motores” vamos estabelecer dois objetivos menores e estudar uma listinha de materiais que nos dará um norte para o resto do curso. Os objetivos são:
1 – Entender o que é o Ruby e o Rails através de material online.
Abaixo tem uma listinha de links para os materiais que devemos ler.
2 – Definir o que vamos fazer até a aula seguinte, cada um vai definir o tema de criação de um microserviço da sua escolha.
Como comentei acima, o primeiro objetivo nosso com o rails será instalar o ambiente e depois desenvolver alguma coisa. O exemplo que escolhi será um microserviço que terá as seguintes caracteristicas:
Acessa um sistema que será monitorado de tempos em tempos para coletar o seu estado de funcionamento
Registra as consultas de estado em um banco de dados
Caso o estado do sistema monitorado seja ruim, o microserviço emite um SMS ou EMAIL
Pode receber uma chamada GET para consultar o estado de funcionamento de um determinado sistema e devolve esse estado através de um objeto JSON
Você pode optar por seguir esse exercício proposto ou bolar o seu próprio microserviço. Caso alguem queira fazer algo diferente podemos comentar na próxima aula. Os seguintes tópicos serão abordados, mas se alguém aparecer com uma idéia diferente vamos discutir:
Comunicação através de API RESTful
Armazenamento em banco de dados
Tarefas com excução automática via Timer, famoso “pooling”
Configuração via variáveis de ambiente e banco de dados
A pândemia mundial que nos assolou (e ainda não terminou) foi um evento transformador para a maioria das pessoas. No meu caso preferi ficar recluso com a família e após alguns meses de reclusão, muita energia criativa se acumulou e comecei a revisitar o projeto da horta urbana vertical.
A primeira versão, que você pode ver um pouco neste nosso post antigo aqui possuia um grave problema de estética ;-p
Horta Vertical – primeira versão
Com o tempo também percebi que o método de encadeamento era vulnerável à radiação ultra violeta, e as tampas de garrafa começaram a “quebrar” e os vasos começaram a cair causando uma tremenda bagunça.
Ao ficar sentado na varanda de casa e pensando sobre esses problemas de estética e funcionais, comecei a desenvolver uma nova versão da horta vertical urbana.
Neste artigo comento um pouco como tentamos solucionar o problema de estética e durabilidade, bem como comento também um pouco a respeito do hardware de controle desenvolvido.
O problema do encadeamento
Detalhe do conector
A idéia da horta vertical é ocupar pouco espaço, e os vasos são pendurados em alguma estrutura de forma que a distribuição de espaço seja otimizada. O problema principal é que ao encadear vasos desta forma o peso do conjunto, que é soma de toda terra e toda água da coluna fica concentrado no primeiro conector (veja a figura acima da primeira versão)
Na primeira versão isso foi um problema e mesmo colocando poucos elementos encadeados, somou-se o fato do sol estragar o plastico das tampas através da radiação ultra violeta.
Na versão revisitada, foi feito uma tentativa inicial de resolver o problema, criando suporte na borda das garrafas e encadeando as outras pelo gargalo. Veja:
Abaixo o diagrama dessa proposta
Esse modelo ainda possui o problema onde o primeiro vaso da coluna tem que suportar o peso da coluna toda. Estimadamente temos cerca de 30 Kg de peso numa coluna com 6 garrafas PET de 3 litros, cheias de terra e água.
Peça de sustentação impressa em PLA entortada pelo calor
Como disse anteriormente, a pandemia foi transformadora, ao ficar confinado, olhando sempre para o mesmo lugar, a mente começa a tentar escapar das condições impostas. O problema do peso e do uso da estrutura de garrafas PET incomodou bastante, pois não permitia escalar a horta vertical, com o risco de falhas e bastante sujeira.
A solução veio de repente. Estava manipulando as garrafas e tentando pensar como escapar dessa limitação de uso. A resposta veio em sonho.
Ficção científica e as inversões
Como fã inveterado de ficção científica, sou muito fã de Christopher Nolan, e o seu filme Inception, que trata de sonhos como construtores de uma realidade alternativa. Eu estudo algumas técnicas de sonho lúcido, e mesmo sem ser muito bom no assunto, gosto de sonhar e as vezes as soluções aparecem lá na fronteira da conciência e o inconciente.
Neste caso fiquei pensando durante dias sobre como solucionar o problema da resistência do material plastico no uso como estrutura da coluna. Sonhei com as garrafas flutuando e sendo apoiadas em algum dispositivo mágico onde o ponto de apoio não mais era na parte de cima, mas na parte de baixo do sistema. É complicado escrever o sonho, mas a pista apareceu na forma de uma inversão que considerei interessante. Faltava só o “ponto de apoio mágico” que tinha visto no sonho e depois de desenhar alguns esboços, acredito que cheguei na soluçao. Veja que simples:
Depois de algumas horas de experimentação, estava pronto o sistema. O ponto de carga de cada vaso é no cabo de tração e no ponto mais forte de uma garrafa PET, o gargalo. O cabo de tração é um simples varal de aço revestido. O ponto de alinhamento serve para deixar o cabo de tração centralizado no lado oposto da garrafa.
Pronto. Problema resolvido!! Horta vertical urbana pode ser escalada, construi várias colunas sem medo que elas quebrem com o tempo.
Outra vantagem desse tipo de abordagem é que o furo de passagem do cabo de tração serve de escoadouro para a agua!!
Finalizando a horta
Depois de resolver o principal problema mecânico e a horta poder escalar, foi uma questão de tempo colocar para funcionar. Adicionei um controlador com ESP8266 e montei o seguinte sistema:
O circuito de controle foi baseado em ESP8266 e o seu código está disponível no github do projeto. Vou escrever sobre esse sistema de controle no futuro. Por hora saiba que esse controle aciona uma bomba de “limpador de parabrisa” que leva a água para a parte de cima com uma tubulação feita de tubo de ar para aquários.
Composto de uma placa de desenvolvimento ESP8266, placa com dois relês, fonte de alimentação e um sensor BME280 (pressão, umidate, temperatura) o sistema de controle aciona a bomba automaticamente, envia dados para a nuvem, além de permitir o controle manual da bomba e de uma lâmpada.
Criei uma interface em HTML que fica hospédado em um servidor web DENTRO do ESP8266
Um detalhe para a parte de baixo do sistema, onde ficam os coletores de água. Foram mais ou menos 10 tentativas de peças 3D desenhadas, e o resultado mais interessante foi esse:
Essa peça demonstrada acima está também no repósitório do projeto e pode ser modificada e impressa por todos que desejarem montar a sua horta vertical urbana.
Para finalizar, fique com um vídeo que demonstra a horta crescendo e varias fotos para inspirar você a fazer a sua versão.
Compartilhe conosco seus resultados!! Até o próximo artigo.
Vasos cheios de vida
Manjericão filhote
A noite a iluminação deixa um charme especial com as libélulas fosforescentes
Os riscos de um Wi-Fi público A maior ameaça à segurança do Wi-Fi gratuito é a capacidade de um hacker posicionar-se entre você e o ponto de conexão. Então, em vez de falar diretamente com o ponto de acesso, você está enviando suas informações para o hacker, que pode retransmiti-las.
Mantenha a sua solução de segurança e sistema operacional atualizados
Esteja atento às suas ações realizadas nestas conexões
Acesse a sites que utilizem o protocolo HTTPS
Configure o seu dispositivo para que pergunte antes de se conectar
tilize a autenticação de dois fatores
Dicas de configurações para deixar o seu trabalho mais seguro
Ativar o bloqueio instantâneo com a tecla liga/desliga;
Desligar os periféricos que ficam ativados o tempo todo
Atualizar os aplicativos automaticamente
Não baixar programas de fontes desconhecidas
Desativar preenchimento automatico de códigos recebidos via SMS
Ótima série do nic.br sobre o funcionamento da internet (em português). Assistam as outras partes para se aprofundar no assunto, são 6 partes no total
Criptografia assimétrica explicada (em português)
Criptografia assimétrica explicada (em inglês)
SSH explicado (em português)
Guia rápido de comandos da aula
# gerar par de chaves de segurança (aws ou outros provedores)
ssh-keygen -t rsa -b 4096 -f chave.pem
# acessar a instância
ssh usuario@host -i chave.pem
#verificar o sistema de arquivos da instância
df -h
#verificar processos e memória
top
htop #(ver instalação do aplicativo htop a seguir)
#atualizar pacotes de programas
#ubuntu
sudo apt-get update
#centOS
sudo yum update
#instalação de aplicativos na instância
#ubuntu
sudo apt-get install nano htop net-tools
#centOS
sudo yum install nano htop net-tools
Impressão 3d é de fato uma verdadeira ciência que não deve ser subestimada. Imprimir ou leia-se FABRICAR, é muito mais do que colocar um gcode no cartão de memória ou em seu printerhost favorito e “rezar” pra que tudo saia como você modelou…ou inda “pegou da NET”.
Justamente para evitar que suas impressões sejam verdadeiros MILAGRES é que vamos falar sobre como criar peças que possam ser impressas de forma adequada a cada tipo de material evitando assim o desperdício de tempo, dinheiro e principalmente de “Milagres”. =]
Ok Raz…mas o que é o “Overhang” e porque preciso tomar cuidado com isso ?
Overhang é o angulo de ataque máximo que um determinado material suporta antes de ceder tornando a impressão de peças com ângulos de ataque elevados complicada ou até mesmo impossível! A maioria das impressoras 3d disponíveis em laboratórios e lares do Brasil e do mundo utiliza técnicas de fabricação aditiva ou seja, por depósito de material com choque termico onde o material é “soldado” em camadas até que se complete o desenho final , este efeito acontece justamente pela demora do material em se solidificar enquanto recebe quase que imediatamente outra camada por cima, então quanto mais rápido o mesmo endurecer depois de extrusado, menos propenso ao efeito o mesmo será!
Nada me deixa mais feliz do que conseguir fazer “mais” com menos ou quase nada. Toda economia em recursos tanto de hardware quanto software traz ganhos que valem a pena serem avaliados.
Eu costumo fazer exercícios de otimização em tudo que projeto, porque no final você tem um hardware mais eficiente e robusto ou um software mais rápido e que consome menos recursos.
Este artigo é sobre um dos exercícios de otimização que executei.
Neste artigo vou ensiná-los a construir um robô completo, usando um roteador sucateado, e que pode ser operado pelo smartphone ou qualquer dispositivo sem precisar baixar nenhum aplicativo de loja online.
Em primeiro lugar gostaria de agradecer a equipe do Robotizando pela oportunidade de compartilhar conhecimento com vocês através deste canal, o nosso assunto do dia remete a criação de peças com padrão Voronoi para Impressão 3d e seu consequente uso decorativo e funcional.
Mas…o que é Voronoi afinal?
Voronoi é um padrão matemático que consiste na decomposição de um espaço métrico em agrupamentos menores formando “ilhas” ou pontos geradores. Cada ponto gerador está associado a um conjunto de seguimentos menores onde a distancia entre os mesmos e a dos ponto geradores é sempre a mesma. O padrão criado por Georgy Voronoi, é fantástico para impressão 3d pois além de gerar bons desafios para testarmos os limites da fabricação FDM e SLA, também permite a criação de peças maravilhosas para usos diversos, como os exemplos abaixo:
Globo Voronoi
Cubo porta objetos Voronoi
Exemplo Voronoi abstrato
Dito isso, vamos começar com uma técnica simples para modelar sem grande esforço um globo como o visto no exemplo utilizando uma das mais potentes ferramentas de modelagem 3d do mercado, o tão famoso BLENDER!
Comecemos então criando uma cena limpa, para tal, precisamos deletar todos os objetos presentes na cena 3d atual, faça então uso da tecla “A” para selecionar todos os objetos de uma única vez.
Para deletar todos os arquivos da cena 3d basta pressionar a tecla “X” ou “DELETE”.
Feito isso, vamos agora adicionar uma esfera, para tal, chame o menu “Add” utilizando o comando “Shift+A”
Adicionar esfera a cena 3d
Feito isso vamos criar os pontos geradores do nosso padrão utilizando um truque criado para outra finalidade. A fratura de objetos por células geralmente é utilizada para criar explosões e outros efeitos de demolição no Blender, porém, no advento da impressão 3d tal ferramenta ganhou nova serventia facilitando muitas tarefas!
O primeiro passo é habilitar a ferramenta, isso é feito através do menu de preferências do Blender:
Basta digitar “Cell Fracture” para encontrar o recurso. Feito isso habilite o mesmo e feche esta janela.
Agora vamos usá-lo sobre a esfera, para tal, selecione a mesma com o botão direito do mouse e do lado direito a ferramenta que acabamos de habilitar já estará disponível para uso:
Ativar ferramenta de fratura por células
Uma vez ativada a ferramenta, nenhuma ação é necessária a não ser mandar a mesma executar a tarefa, porém, é possível modificar o tamanho das células e o seu posicionamento, o que pode ser feito em outras ocasiões.
Concluído o trabalho, é necessário alterar a visualização para a segunda camada da cena 3d para que se possa ver o resultado da ação da ferramenta bem como continuarmos trabalhando na malha. Feito isso, utilize o comando “A” presente no seu teclado para selecionar todos os pedaços do objeto, por fim aplique o comando “Ctrl + J” para unificá-los!
Feito isso, vamos agora alterar para o modo de edição direta da malha 3d, isso se faz precionando a tecla “Tab”, presente no seu teclado.
A nossa esfera está tomada por filetes laranjas e azuis, isso nos diz que todas as suas faces, estão selecionadas enquanto que as marcações azuis remetem as fraturas provocadas pela ferramenta anterior. Prosseguindo, vamos agora limpar a malha dissolvendo as faces para facilitar a eliminação posterior das mesmas uma vez que queremos apenas as fraturas eliminando todo o resto.
Feito isso, reparem que agora a malha parece e é realmente muito menos complexa! Para finalizar, pressione novamente a tecla “x” e delete apenas as faces do objeto:
Concluída a tarefa agora temos apenas o caminho produzido pelas fraturas!
Agora vamos voltar para o modo “Objeto” do Blender e transformar o frame gerado pelas fraturas em curvas vetoriais! Isto se faz necessário para que possamos preencher a fratura com uma nova malha sem esforço!
Feito isso, vamos agora extrudir a nossa nova curva! Para tal, basta aplicar um pequeno valor de extrusão na aba de controle de curvas vetoriais presente do lado direito da interface do Blender! Se desejar você também pode brincar com a profundidade e a resolução da mesma como no exemplo abaixo:
Wow mas… não ACABOU!
Para quem desejar ir além…. =] , volte para o passo antes da extrusão e adicione um circulo simples posicionando o mesmo na lateral da nossa esfera:
Feito isso, mova o circulo para a extremidade direita da esfera.
Por fim selecione a nossa esfera e o circulo transformando ambos em curvas, feito isso selecione apenas a esfera e na aba de controle vetorial navegue até a opção denominada “Bevel’.
Uma vez ali, adicione o circulo que criamos e a esfera assumirá o contorno liso do mesmo!
Se modificarmos o tamanho do circulo que criamos podemos controlar também a espessura do padrão que criamos para a esfera!
Esta mesma técnica também pode ser usada com outros formatos geométricos clássicos como o próprio cubo por exemplo! Mas isso vai ficar como experimento para quem desejar experimentar e nos enviar o resultado impresso que tal? Dito isso, vejo vocês no nosso próximo assunto! Boas festas pessoal!