Skip to content

Instantly share code, notes, and snippets.

View pioz's full-sized avatar
🧙‍♂️
[object Object]

Enrico pioz

🧙‍♂️
[object Object]
View GitHub Profile

Implementing Advisory Locks in SQLite3

In my Rails model, I initially had a function to handle advisory locks in PostgreSQL. Here's the code, which works as expected:

# Postgresql version
def with_advisory_lock
  self.class.connection.execute("SELECT pg_advisory_lock(#{self.id})")
  yield
@pioz
pioz / copy_migration_version.py
Last active September 11, 2024 09:33
Sublime Text plugin to copy Rails migration version
import sublime
import sublime_plugin
import os
import json
class CopyMigrationVersionCommand(sublime_plugin.WindowCommand):
def run(self):
file_name = self.window.active_view().file_name()
if file_name:
version = os.path.basename(file_name).split('_')[0]
require 'logger'
require 'net/http'
PUSHOVER_USER_KEY = 'xxx'.freeze
PUSHOVER_API_TOKEN = 'xxx'.freeze
def send_notification(message)
uri = URI.parse('https://api.pushover.net/1/messages.json')
request = Net::HTTP::Post.new(uri)
request.set_form_data(
@pioz
pioz / tenants.rb
Last active April 23, 2024 07:49
Tenants
require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem 'activerecord'
gem 'mysql2'
end
require 'active_record'
@pioz
pioz / caffe.py
Last active February 9, 2024 15:50
Run caffeinate from Mac OS X menu bar
import rumps
import subprocess
class CaffeinateApp(rumps.App):
def __init__(self):
super(CaffeinateApp, self).__init__("Caffeinate")
self.icon = "inactive_icon.png"
self.caffeinate_process = None
self.menu = ["Run Caffeinate"]
@pioz
pioz / amazon.rb
Last active September 26, 2024 14:28
Ruby script to get Amazon expenses
require 'date'
months_mapping = {
'gennaio' => '01',
'febbraio' => '02',
'marzo' => '03',
'aprile' => '04',
'maggio' => '05',
'giugno' => '06',
'luglio' => '07',
@pioz
pioz / one_piece_downloader.rb
Last active September 6, 2023 18:45
One Piece Downloader
require 'open-uri'
require 'tty-progressbar'
CONCURRENCY = 8
FIRST_EPISODE_NUMBER = 1
LAST_EPISODE_NUMBER = 628
def get_bounds(episode_number)
episode_number = 1 if episode_number < 1
lower_bound = ((episode_number - 1) / 100) * 100 + 1
@pioz
pioz / edit_rails.md
Created March 21, 2023 09:46
Inflections on rails new
nano ~/.rbenv/versions/3.2.0/bin/rails

Add these lines before load Gem...:

require 'active_support'
ActiveSupport::Inflector.inflections { |inflect| inflect.acronym 'CT' }
@pioz
pioz / painting_height.md
Last active November 22, 2022 13:01
Perfect height to hang a painting

For hanging pictures I really like to follow the midline style. In practice an imaginary line is drawn on the wall which is at 5/8 the height of the wall itself. Once we have this line in mind the paintings must be hung with 3/8 of their height above the median line.

h = (H*5 + q*3) / 8

where H is the height of the wall and q is the height of the painting itself.

@pioz
pioz / query.sql
Created September 29, 2022 08:20
Select records by ids and order by ids order
SELECT id FROM products WHERE id IN (2,1) ORDER BY array_position(array[2,1], id);