Skip to content

Instantly share code, notes, and snippets.

@romiras
romiras / boot_spec.rb
Created December 22, 2024 11:20
App boot RSpec test, including Sidekiq
require 'rails_helper'
RSpec.describe "your favorite app" do
it 'boots' do
assert_nil Rails.application.eager_load!
end
context 'sidekiq server' do
it 'boots too!' do
allow(Sidekiq).to receive(:server?).and_return true
@romiras
romiras / _snippets.ts
Created November 30, 2024 15:41
TypeScript code snippets
interface StatusRequestBody {
query: {
match: { status_id: string };
};
}
await new Promise(resolve => setTimeout(resolve, 500));
return new Promise<void>((resolve, reject) => {
this.client.quit();
@romiras
romiras / extract_table_mysql.sh
Created November 30, 2024 11:17
Extract a single table from MySQL DB dump in Linux
gunzip < dump.sql.gz | sed -n -e '/DROP TABLE.*`my_table`/,/UNLOCK TABLES/p' > my_table.sql
@romiras
romiras / sql-snippets-mysql.md
Last active November 30, 2024 11:25
SQL code snippets for MySQL

SQL code snippets for MySQL

Timeseries queries

SELECT
  concat(date(created_at), ' ', LPAD(hour(created_at), 2, '0'), '-', LPAD(IF(hour(created_at)=23, 0, hour(created_at)+1), 2, '0')) as time_slice,
  count(*) as '# entries'
FROM entries
GROUP BY time_slice
@romiras
romiras / extend_include.md
Created November 29, 2024 23:42
Ruby's include vs extend explained
module Mod
  def x
     puts "x"
  end
end

class C1
  extend Mod
end
@romiras
romiras / shell-commands-2020.sh
Created November 28, 2024 23:08
Shell commands 2020
cat /etc/lsb-release
sudo apt autoremove
sudo apt update && sudo apt upgrade
sudo apt-cache search
apt-cache show
sudo apt-get install --reinstall apparmor apparmor-profiles apparmor-utils
sudo ntpdate il.pool.ntp.org
grep microcode /proc/cpuinfo
@romiras
romiras / dev-notes-ruby-2024.md
Created November 28, 2024 22:56
Dev notes 2024 (Ruby)

Dev notes 2024 (Ruby)

Parse query string params

# Rack::Utils.parse_query URI("http://example.com?par=hello&par2=bye").query
params = Rack::Utils.parse_query(q).with_indifferent_access

args = ActiveSupport::HashWithIndifferentAccess.new( {"job_params"=>{})
@romiras
romiras / chunker2.rb
Created November 28, 2024 22:40
Naïve data deduplication in Ruby, variant 2 (2018)
#!/usr/bin/env ruby
require 'optparse'
require 'digest/sha1'
require 'data_mapper'
FILE_STDIN = '/dev/stdin'.freeze
def debug_log(msg)
puts msg
@romiras
romiras / chunker.rb
Created November 28, 2024 22:39
Naïve data deduplication in Ruby, variant 1 (2018)
#!/usr/bin/env ruby
# Usage:
# for f in $(find . -type f); do ./chunker.rb -k "$f" < "$f"; done
require 'optparse'
require 'digest/sha1'
require 'data_mapper'
CHUNK_SIZE = 1 << 13 # 8192
@romiras
romiras / unicode_long_characters.txt
Created November 28, 2024 22:13
Long characters in Unicode
Sem varius curabitur a fermentum. Consectetuer ac nisl hendrerit nunc hac interdum, cras possimus, lobortis turpis laoreet, potenti pharetra ut tortor rhoncus vitae dui, rutrum euismod senectus dignissim. Nibh et mauris, condimentum nonummy convallis id tortor erat, dui malesuada aliquip montes arcu. : ̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿|̳̳̳̳̿̿̿̿l̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿|̳̳̳̳̿̿̿̿l̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̳̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊̿̿̿̿̊ é̴̛̛̿͒̾̑̌̆̀̎͋̀̈́̓̓̄̂́̃̀̈́̋̎̎͌̈́̓͘̚͝