Notícias

Curso de Rails

Nossos objetivos principais são:

  • Aprender Ruby e Rails
  • Montar um server Rails
  • Implementar ambientes de desenvolvimento e produção
  • Implementar o Continous Integration e Continous Delivery
  • Aprender tarefas de DEVOPS (mysql, linux, aws e ci/cd)

Usaremos a técnica de Aprendizado por demanda (mais informações aqui)

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.

https://rubyonrails.org/doctrine

https://guides.rubyonrails.org/getting_started.html

https://www.json.org/json-en.html

https://dicasdeprogramacao.com.br/o-que-e-json/

https://tudosobrehospedagemdesites.com.br/servidor-web/

https://www.luiztools.com.br/post/o-que-e-um-micro-servico-ou-microservice/

https://www.devmedia.com.br/introducao-a-web-services-restful/37387

https://www.csoonline.com/article/3634784/how-corporate-data-and-secrets-leak-from-github-repositories.html

Recomendo também instalar as seguintes ferramentas de desenvolvedor. Caso você já prefira alguma alternativa o passo é opcional.

Atom - editor de texto opesource - https://atom.io/
DBeaver - Interface para banco de dados Mysql - https://dbeaver.io/

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

Achados para Próximas Aulas

https://www.bootrails.com/blog/rails-form-tutorial/ - Tutorial de formulário no Rails

https://getbootstrap.com/docs/4.0/components/forms/ - baita tutorial de formas no bootstrap

https://edgeapi.rubyonrails.org/classes/ActionController/Redirecting.html

https://damuz91.medium.com/setting-up-puma-as-a-service-in-systemd-in-ubuntu-18-9d2c1fe774e4 - Tutorial de como instalar o PUMA como serviço

Comandos Úteis para não esquecer

#Cria modelo com os campos definidos 
bin/rails generate model Article title:string body:text

rails generate controller Publicacoes index --skip-routes

#precompila
RAILS_ENV=production bin/rake assets:precompile

#cria chaves - deletar o credentials e o master.key antes
EDITOR="nano --wait" bin/rails credentials:edit

#instalar o mysql2 no apple M1
gem install mysql2 -v '0.5.3' -- \
--with-mysql-lib=$(brew --prefix mysql)/lib \
--with-mysql-dir=$(brew --prefix mysql) \
--with-mysql-config=$(brew --prefix mysql)/bin/mysql_config \
--with-mysql-include=$(brew --prefix mysql)/include 



    :binary
    :boolean
    :date
    :datetime
    :decimal
    :float
    :integer
    :primary_key
    :string
    :text
    :time
    :timestamp

Aula 01 - Git

Cadastrar a chave na sua estação local

nano ~/.ssh/config

Host github.com
        Hostname github.com
        IdentityFile ~/path/to/key.pem
        IdentitiesOnly yes

Aula 02 - MVC

https://www.devmedia.com.br/introducao-ao-padrao-mvc/29308 - Artigo sobre MVC

FGSL – Fórum Goiano de Software Livre – Tutorial de montagem do Badge

Olá pessoal! Este ano o Fórum Goiano de Software Livre está demais! Em 2016 preparamos uma lembrancinha do evento, no formato de um cartão que vira um lindo robozinho que irá lhe auxiliar a segurar o teu lápis 🙂 Se você compareceu e conseguiu o "badge" do evento, esta página ensinará você a montar o seu brinquedinho.
0-badge

"Badge" do evento

13-final 1 - Separando as peças Você precisará de uma ferramenta cortante para separar as peças do robozinho da cartela. 1-Badge_estilete Corte os pontos de união, conforme mostramos abaixo: 2-cortando_pecas Na imagem abaixo podemos ver todos os pontos de união, salientados pelos círculos vermelhos: 3-cortando_pecas_salientado Após cortar todos os pontos de união,temos as peças separadas. 5-pecas_cortadas 2 - Preparando as juntas Antes de efetuar a montagem final, precisamos preparas as juntas dos braços do robozinho. Devido ao processo de impressão 3D utilizado, as pinças acabam fundidas e precisam ser cortadas para ficarem separadas. Essa separação faz com que a pinça se ajuste às irregularidades dos pinos. Veja abaixo as três peças que precisam sofrer esses ajustes. 6-separando_juntas Aplicamos o estilete no ponto central, cortando a frágil estrutura que une as pinças. Veja abaixo, a peça da direita já foi ajustada, a peça da esquerda não. 7-separando_juntas_compara Abaixo as três peças ajustadas. 8-separando_juntas_resultado   3 - Montagem Iniciamos a montagem encaixando um dos 3 braços na base. Encaixe com cuidado o pino na pinça da base. Se você forçar rápido demais, poderá quebrar a pinça. Se ocorrer, um pouco de cola irá resolver. 9-montagem-1 Após isso, vamos encaixando peça por peça, deixando a peça menor no final do braço. 10-montagem-2 Intercale o lado das peças, preservando a simetria. Veja abaixo: 11-montagem-3 Pronto! Seu robô está pronto! Agora você pode treinar o ajuste do centro de gravidade do seu "segurador" de lápis à vontade. 12-final 13-final