Skip to content

Instantly share code, notes, and snippets.

Gem::Specification.new do |spec|
spec.name = "net_http_utils"
spec.summary = ??
spec.version = "0.2"
spec.author = "Victor Maslov"
spec.files = %w{ net_http_utils.rb }
spec.require_path = "."
end
@Nakilon
Nakilon / example.rb
Created June 13, 2017 18:32
Simplified example of using google-cloud-monitoring to store custom metrics of my daemons RAM/fd leakage
require "google/cloud/monitoring/v3/metric_service_client"
client = Google::Cloud::Monitoring::V3::MetricServiceClient.new
project_path = Google::Cloud::Monitoring::V3::MetricServiceClient.project_path JSON.load(File.read ENV["GOOGLE_APPLICATION_CREDENTIALS"])["project_id"]
create_custom_gauge_metric = lambda do |type, display_name, value_type, labels = {}|
metric_descriptor = Google::Api::MetricDescriptor.new( # googleapis-common-protos-1.3.5/lib/google/api/metric_pb.rb
type: "custom.googleapis.com/#{type}",
metric_kind: :GAUGE, # google-cloud-monitoring-0.24.0/lib/google/cloud/monitoring/v3/doc/google/api/metric.rb
value_type: value_type, # google-cloud-monitoring-0.24.0/lib/google/cloud/monitoring/v3/doc/google/api/metric.rb
display_name: display_name,
Google::Cloud::Logging::Logger.class_eval do
%i{ debug info warn error }.each do |level|
old = instance_method level
define_method level do |message, entry_labels = {}, &block|
logger_labels = @labels if @labels
begin
@labels = (@labels || {}).merge entry_labels
old.bind(self).(message, &block)
ensure
@Nakilon
Nakilon / autoexec.cfg
Last active November 3, 2017 09:07
CS:GO dedicated server
log on
hostname "Nakilon CS:GO old de_dust2 Dedicated Server"
rcon_password *****
host_info_show 2
host_players_show 2
exec banned_user.cfg
exec banned_ip.cfg
@Nakilon
Nakilon / Nakilon_1.txt
Last active July 24, 2018 23:18
COLOBOT: Code battle - vs computer :: this one by Nakilon is very short and defeats AI
void titanium() {
object o;
while (null == (o = radar(TitaniumOre, 0, 360, 0, 30))) wait(0.1);
goto(o.position);
grab();
goto(radar(Converter, 0, 360, 0, 20).position);
drop();
move(-2);
}
@Nakilon
Nakilon / gist:959835ebbb474ad072ca98e26fc96e4f
Created December 3, 2018 00:56
QuakeLive dedicated server guide draft; the rest is somewhere on another machine
screen -x workshop
steamcmd +login anonymous +workshop_download_item 282440 539421606 +quit
screen -x server
QLDS_RCON_PASS=... QLDS_STATS_PASS=... ./run.sh 0
steam@ql:~$ tree qlds_fs_homepath/27960/
qlds_fs_homepath/27960/
└── baseq3
├── access.txt
@Nakilon
Nakilon / id_rsa.pub
Created September 26, 2019 23:06
macbook 2017 pub key
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyqfb/JsmNKlCSCC9F+VhG0tsxHhGEMMIyjpenIX97cPKjC6SL1S0APoxta7YdHgOYwOD76n3VuJoOSAcQ0FeY6i+PmONnrfAXFrpknyr1e6FwWyNQACZj+df7nowLy8l5AmLpy2U8gd6zpCN/0SPaeyxLcouBNgEU+AfItsJqg8dN2pMsJAH5eGAflWqBlPUhRlqXhxQHTrY2WAbiHoxrSj9becaWa3aL8k2wTS3TVpGQGAgzNYNa4bSrm70mPJvUvReP13KymfJkKoRv/7ZgQBCD7pHDf0tu0kwh0CE4RvsydARHbsKIYeZh70v7YYBGZ48tvOqov9A6ztQ1u9YR nakilon@gmail.com
@Nakilon
Nakilon / happy_cursing.rb
Last active November 19, 2019 12:54
mix "happy" and "cursing" words stats together for final ranking
require "bundler/inline"
gemfile do
source :rubygems
gem "pcbr"
end
require "open-uri"
require "csv"
happy, cursing = %w{ happy cursing }.map do |filename|
CSV.parse(
@Nakilon
Nakilon / materials.rb
Last active December 9, 2019 10:43
7 Days to Die -- best building blocks (by glue and mass)
blocks = Hash[ File.read("blocks.xml").scan(/<block .*?<\/block>/m).each_with_object({}){ |m, h|
xml = Nokogiri::XML m
if mat = xml.at("[name=Material]")
h[xml.root[:name]] = mat[:value]
elsif ext = xml.at("[name=Extends]")
h[xml.root[:name]] = ->{ h.fetch ext[:value] }
end
}.map{ |k, v| [k, MLL::nest_while[v, ->_{ _.call }, ->_{ _.respond_to? :call }]] rescue nil }.compact.
group_by(&:last).map{ |mat, g| [mat, g.map(&:first)] } ]
fail unless blocks.values.flatten.include? "woodCatwalkRailing2"
@Nakilon
Nakilon / Starbound v1.0
Last active April 12, 2020 09:31
big example
$ ruby recipes.rb Automato Avesmingo Banana Carrot Cocoa\ Pod Corn Currentcorn Grapes Pearlpeas Pineapple Potato Rice Tomato Wheat Sugar Beakseed
1 automatostew = 1 Wheat + 1 Currentcorn + 1 Automato
1 2kbpotage = 1 Currentcorn + 1 Automato
1 candyautomato = 1 Sugar + 1 Automato
1 avesmingojuice = 1 Avesmingo
1 apegrapes = 1 Grapes + 1 Banana
1 batteredbanana = 1 Wheat + 1 Banana
1 luckydip = 1 Carrot + 1 Banana
1 roastedcarrot = 1 Carrot
1 carrotjuice = 1 Carrot