Skip to content

Instantly share code, notes, and snippets.

@nunosilva800
nunosilva800 / replication-planner.rb
Created January 14, 2022 15:35
Plan Kafka cluster expansion by increased replication factor. Assumes new broker ids are shifted by 5.
require 'optparse'
require 'json'
options = {}
op = OptionParser.new do |opts|
opts.banner = "Usage: example.rb [options]"
opts.on("-c", "--context REQUIRED", String, "k8s context") do |v|
options[:context] = v
end

Index read_only_allow_delete can be set to true automatically when disk space is low. This allows writing to indexes again:

curl -X PUT "http://localhost:9200/_all/_settings?pretty" -H 'Content-Type: application/json' -d'
{                
    "index.blocks.read_only_allow_delete": false
}
'
### Keybase proof
I hereby claim:
* I am nunosilva800 on github.
* I am nunosilva800 (https://keybase.io/nunosilva800) on keybase.
* I have a public key ASCDtm17fxY-jO_t_Z1415ELEZZVwZKWx0y0WM7NiNcEnQo
To claim this, I am signing this object:
@nunosilva800
nunosilva800 / interleave.rb
Last active September 6, 2019 09:35
Interleave arrays in ruby
# Given a set of arrays with potentially infinite lengths
# 1. interleave the elements from input collections into a
# final 1-dimensional array
# 2. ensure the interleaving follows a frequency, as example:
# - 1 element from collection A (frequency: 1)
# - 2 element from collection B (frequency: 2)
# - 3 element from collection C (frequency: 3)
# - 4 element from collection D (frequency: 4)
# helper to generate infinite enumerators
@nunosilva800
nunosilva800 / service_objects.md
Created March 5, 2019 16:50
service objects in rails

Service Objects

Service Objects are classes or modules that have one public method, often named #call, and are designed to perform a single task or service.

Service objects are single business actions.

Example:

As a class

@nunosilva800
nunosilva800 / interfaces.rb
Created May 22, 2018 11:44
ruby interfaces example
module APIProfile
def profile
raise NotImplementedError.new("You must implement '#{__method__}'.")
end
end
module APIAddress
def address
raise NotImplementedError.new("You must implement '#{__method__}'.")
end
@nunosilva800
nunosilva800 / equal.rb
Created September 30, 2016 11:18
Ruby equalities
irb> 1 == 1.0
=> true # generic equality
irb> 1 === 1.0
=> true # case equality
irb> 1.eql? 1.0
=> false # equality by value
irb> 1.equal? 1.0
@nunosilva800
nunosilva800 / README.md
Last active September 28, 2017 12:35
A Widget on Rails

This is an example of how to implement a "widget" with Ruby on Rails.

The widget is added to a webpage with the example on test_widget.html.erb :

<div id="my-widget"></div>
<script src="https://my-domain.com/widget.js" type="text/javascript"></script>

This will request the JS code from the server, ensuring you can change it without having to update the webpage were the widget is.

@nunosilva800
nunosilva800 / rubycritic_rating_and_score.md
Last active January 22, 2016 21:48
RubyCritic's Rating and Score

Rating and Score

When RubyCritic runs, each analysed class or module gets assigned a rating - a letter from A to F, A being the best. This serves as a baseline to tell you how smelly the code is. Generally A's & B's are good enough, C's serve as a warning and D's & F's are the ones you should be fixing.

Similarly, a global score that ranges from 0 to 100 is calculated, where higher values are better - less code smells detected. This provides a quick insight about the overall code quality.

RubyCritic's rating system was inspired by Code Climate's, you can [read more about how that works here][1].

echo "* Updating system"
sudo apt-get update
sudo apt-get -y upgrade
echo "* Installing packages"
sudo apt-get -y install build-essential libxml2-dev libxslt1-dev git-core nginx redis-server postgresql-client libpq5 libpq-dev curl nodejs htop
sudo locale-gen pt_PT.UTF-8
sudo dpkg-reconfigure locales
echo "* Installing rvm"