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