Skip to content

Instantly share code, notes, and snippets.

Avatar
🏠
Working from home

Thiago Ribeiro thiagovsk

🏠
Working from home
View GitHub Profile
View gist:7a301cc9d12074b917a57b1856ee01fa
ag 'publish_notification' -0 -l $1 | xargs -0 sed -i '/publish_notification/d'
View gist:4e0cae797b88ce8cf594e55dcee3b2cd
resuminho
- leitura e escrita diferentes
- componentes:
- Os comandos chegam por rotas/controllers que chamam as classes que executam algum comando, ex CreateAccountBanck.rb
- Passam pelo Agregador que faz algumas validações de negocio, ex: se a operação for saque o saque é disponivel
- Guarda o comando na EventStore
- Dependendo da consistêmncia é guardado no banco e atualizado nas projections (um cache por ex)
- Existem as sagas, que são um caso a parte para integrações externas por exemplo
- Podemos mostrar os dados de varias formas (podemos chamar de reports) são entidades que são mapeadas para mostrar
o estado atual desejado, ex Customer vai mostrar nome email etc
View gist:3a8e87e2d16b30ca929dc606f866c018
https://hipsters.tech/elixir-a-linguagem-hipster-hipsters-48/
http://www.akitaonrails.com/2013/12/23/solucoes-para-um-mundo-assincrono-concorrente
https://elixir-lang.org/learning.html
https://elixirschool.com/pt/
https://imasters.com.br/linguagens/a-maldicao-da-linguagem-e-o-elixir/?trace=1519021197&source=single
https://imasters.com.br/desenvolvimento/alem-da-programacao-funcional-com-elixir-e-erlang/?trace=1519021197&source=single
https://www.infoq.com/br/presentations/introducao-a-elixir
https://github.com/sger/ElixirBooks
https://pragprog.com/book/elixir13/programming-elixir-1-3
https://media.pragprog.com/titles/elixir/ElixirCheat.pdf
View cleanup-docker.sh
#!/bin/bash
# remove exited containers:
docker ps --filter status=dead --filter status=exited -aq | xargs -r docker rm -v
# remove unused images:
docker images --no-trunc | grep '<none>' | awk '{ print $3 }' | xargs -r docker rmi
# remove unused volumes:
find '/var/lib/docker/volumes/' -mindepth 1 -maxdepth 1 -type d | grep -vFf <(
View generate-cert.rb
require 'openssl'
require 'fileutils'
require 'acme-client'
require 'byebug'
ENV['SSL_ADDR'] = '2804.7f3.8481.3cf7.x.4.ip6.name'
ENV['APPLICATION_ENV'] = 'development'
puts 'Registering client'
View generate-cert.rb
require 'openssl'
require 'fileutils'
require 'acme-client'
require 'byebug'
ENV['SSL_ADDR'] = '2804.7f3.8481.3cf7.x.4.ip6.name'
ENV['APPLICATION_ENV'] = 'development'
puts 'Registering client'
View .vimrc
" Load Pathogen
execute pathogen#infect()
" Use Vim settings, rather then Vi settings (much better!).
set nocompatible
" Default configuration in case there's no other definition in ftplugin
set expandtab
set tabstop=2
set softtabstop=2
set shiftwidth=2
@thiagovsk
thiagovsk / show.rb
Created Feb 6, 2017
ajudando o luiz a fazer group_by
View show.rb
a = [ {x: 'Abril/17', y: 10}, {x: 'Abril/17', y: 5}, {x: 'Abril/17', y: 2}, {x: 'Dezembro/17', y: 12}, ]
luiz = a.group_by{ |hash| hash[:x] }.map do |k,v|
{:x => k, :y => v.map{ |hash| hash[:y] }.inject(:+)}
end
View parse_wads.rb
def parse_wads(wads, content = {})
unless wads.empty?
wads.each_with_index do |item, index|
if item['text']
scan = item['text'].gsub('\\n', '\n').match(/(?:\s|^)(\S+)@$/m)
if scan && wads[index + 1]
text = wads[index + 1]['text']
content[:email] = scan.to_s.strip.downcase
content[:email] << text if text
end
View teste.rb
class Foo
def self.bar
puts "nao precisa de self"
end
def self.ble
bar
end
end