Skip to content

Instantly share code, notes, and snippets.

View dnovais's full-sized avatar
🏠
Working from home

Diego Novais dnovais

🏠
Working from home
View GitHub Profile
@dnovais
dnovais / postgres-brew.md
Created August 11, 2022 03:11 — forked from ibraheem4/postgres-brew.md
Installing Postgres via Brew (OSX)

Installing Postgres via Brew

Pre-Reqs

Brew Package Manager

In your command-line run the following commands:

  1. brew doctor
  2. brew update

Matchstick factory Challenge

A matchstick factory has to put n matchsticks in boxes. The factory has the following three types of boxes:

A big box holds 50 matchsticks A medium box holds 20 matchsticks A small box holds five 5 matchsticks The boxes can’t have fewer matchsticks than they can hold; they must be full.

Implement the boxes/1 function in the MatchstickFactory module. The boxes/1 function returns the number of boxes of each size needed to accommodate all the matchsticks and the number of remaining matchsticks as a map (The map is included in the started code). It should work like this:

@dnovais
dnovais / print_string_x_times_without_loop.md
Created January 21, 2022 17:49
Print 'Hello world!' 50 times without a loop

Print 'Hello world!' 50 times without a loop

Usando recursividade

def print(times: 1, msg:)
  puts msg
  times += 1
  print(times: times, msg: msg) unless times > 50
end
@dnovais
dnovais / entendendo_o_codigo.md
Last active January 20, 2022 21:33
Entendendo o código para o problema do diamante e areia.

O problema

Dado um conjunto de caracteres, você precisará extrair os "diamantes" ( <>) e as "areias" ( . ) da expressão e no final exibir a quantidade de diamantes extraídos

Expressão: <<.<<..>><>><.>.>.<<.>.<.>>>><>><>>

  • Extrair os diamantes e areias da expressão até que não haja mais o que ser extraído;
  • Exibir a quantidade de diamantes extraídos;;

A solução proposta pelo RDSM (@das_rm)

@dnovais
dnovais / add_tailwind_to_project.md
Created December 30, 2021 02:07
Adicionando Tailwind em um projeto já criado

Adicionando Tailwind em um projeto já criado

Se você for iniciar um projeto agora com o Rails 7 e quiser adicionar o tailwind basta:

rails new name_of_project --css tailwind

Agora se você estiver trabalhando em um projeto com Rails 7 e quiser adicionar o tailwind depois de já ter criado o projeto:

bundle add tailwindcss-rails

Corrigindo o erro ao instalar o puma na versão 5.X

Ao fazer o bundle install e disparar o erro: An error occurred while installing puma (5.5.2), and Bundler cannot continue.

Basta instalar o puma (fique atento para a versão que esta sendo instalada no Gemfile) com o openssl 1.1:

gem install puma -- --with-openssl-dir=/usr/local/opt/[email protected]

Em seguida o bundle install novamente para continuar a instalação das demais gems e dependências.

@dnovais
dnovais / how-to-fix-asdf-ruby-build-not-found.md
Last active December 28, 2021 01:55
How to fix asdf's `ruby-build: definition not found`

How to fix asdf's ruby-build: definition not found

Update plugin

asdf plugin-update ruby

And after, install the version of Ruby (version defined in the .tool-versions file):

@dnovais
dnovais / consonant_and_vowel.rb
Created October 17, 2021 19:44
consonant and vowel count
require "i18n"
I18n.available_locales = [:en]
def vowels_and_consonants(string)
string
.then{|string| transliterate(string)}
.then{|string| letters(string)}
.then{|string| vowels_and_consonants_count(string)}
end
@dnovais
dnovais / igualdade.md
Last active December 28, 2021 01:58
Ruby - Diferença entre == e ===

== - "igualdade" genérica

No nível do objeto, == retorna true somente se obje otherfor o mesmo objeto. Normalmente, esse método é substituído nas classes descendentes para fornecer significado específico à classe.

Essa é a comparação mais comum e, portanto, o local mais fundamental onde você (como autor de uma classe) decide se dois objetos são "iguais" ou não.

eql? - é sinomido do ==.

=== - igualdade de casos

Para a classe Object, efetivamente o mesmo que chamar #==, mas geralmente substituído por descendentes para fornecer semântica significativa nas instruções de caso.

@dnovais
dnovais / git-update-fork.sh
Created August 25, 2021 21:04 — forked from rdeavila/git-update-fork.sh
Git: como atualizar um fork com as mudanças do original?
#!/bin/bash
# Adicione um novo remote; pode chamá-lo de "upstream":
git remote add upstream https://github.com/usuario/projeto.git
# Obtenha todos os branches deste novo remote,
# como o upstream/master por exemplo:
git fetch upstream