Skip to content

Instantly share code, notes, and snippets.

View Pimentoso's full-sized avatar

Michele Ferri Pimentoso

View GitHub Profile
@Pimentoso
Pimentoso / ruby_2_7_keyword_arguments.md
Last active December 11, 2019 14:11
Ruby 2.7 keyword argument

Riassunto brevemente: in ruby 2.6 o precedenti, i keyword argument erano solo zucchero sintattico per estrarre facilmente argomenti da un hash che si passa come ultimo argomento al metodo. Ruby 2.7 e successivi faranno distinzione netta da argument normali e keyword argument. In pratica:

def metodo(param1:, param2: param3:)
  puts "#{param1}/#{param2}/#{param3}"
end

params = {param1: 'a', param2: 'b', param3: 'c'}
metodo(params) # funziona su ruby 2.6, ma non si puo' piu' fare, warning su ruby 2.7, errore su ruby 3
@Pimentoso
Pimentoso / istruzioni_semaforo.md
Last active November 8, 2021 14:00
Istruzioni semaforo Mini4wdChrono by Mini Mania

Costruzione semaforo

Nota: il semaforo richiede un dritto della pista Japan Cup nel quale vanno praticati 3 fori. I fori devono essere di 3mm al centro delle corsie quindi non impattano la gara in nessun modo.

Video tutorial costruzione semaforo: https://youtu.be/SQK2hvQ1GsU

  • Posizionare il semaforo all'incirca al centro del pezzo dritto, e segnare con un pennarello la posizione sulla parte esterna delle sponde. Assicurarsi che il semaforo sia esattamente perpendicolare alle corsie della pista. Usare un righello per misurare che i piedi del semaforo siano alla stessa distanza dall'estremita' del dritto.
  • Praticare dei fori da 2mm (2 fori per lato) sulle "gambe" del semaforo, forando anche la pista, a circa 1 cm dal bordo della sponda. Il semaforo andra' fissato con 4 viti tamiya tramite questi fori. Meglio ancora se i fori vengono svasati dall'interno della pista, e si usano viti svasate, in modo che la testa della vite non sia sporgente dentro la corsia.
  • Collegare il semaforo alla USB.
  • Orientare i
# put all of this into boot.rb
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
require 'bundler/setup' # Set up gems listed in the Gemfile.
require 'bootsnap'
env = ENV['RAILS_ENV'] || ENV['RACK_ENV'] || ENV['ENV']
development_mode = ['', nil, 'development'].include?(env)
# only enable on 'ruby' (MRI), POSIX (darin, linux, *bsd), and >= 2.3.0
# require './blockchain.rb'; Blockchain.demo
require 'digest'
class Blockchain
DIFFICULTY = '00000'.freeze
attr_reader :blocks
def initialize
@blocks = []
@Pimentoso
Pimentoso / systemd_parser.rb
Last active March 16, 2017 09:04
Ruby systemctl show / systemctl status output parser
class SystemdParser
SHOW_PROPERTIES = ['LoadState', 'ActiveState', 'SubState', 'MainPID', 'ExecMainStartTimestamp']
# Calls systemctl show and returns a properties hash.
# @param user: adds the '--user' flag if true.
# @param properties: pass an empty array to get all of them (very verbose).
# Example output:
# => {"MainPID"=>"1477", "ExecMainStartTimestamp"=>"Wed 2017-03-15 11:01:59 CET", "LoadState"=>"loaded", "ActiveState"=>"active", "SubState"=>"running"}
def self.systemctl_show(service:, user: false, properties: SHOW_PROPERTIES)