Skip to content

Instantly share code, notes, and snippets.

Linux forever

Maurizio De Santis mdesantis

Linux forever
  • Treatwell
  • Taranto, Italy
View GitHub Profile
mdesantis / index.ts
Last active July 30, 2021 15:40
TypeScript: function that extends an object with a dynamic key
View index.ts
// TS Playground link:
interface Props {
baseKey: string
const withCustomKey = <K extends string>(customKey: K) => {
return <P>(props: P): P & { [k in K]: boolean } => {
return { ...props, [customKey]: true } as P & { [k in K]: boolean }
View steam-system-info.txt
Computer Information:
Manufacturer: Unknown
Model: Unknown
Form Factor: Desktop
No Touch Input Detected
Processor Information:
CPU Vendor: GenuineIntel
CPU Brand: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
CPU Family: 0x6
mdesantis / sidekiq-reset.rb
Created April 24, 2020 15:37
Sidekiq reset one-liner
View sidekiq-reset.rb
require 'sidekiq/api'; [,,,].each(&:clear);
mdesantis / postgresql_like_index.rb
Last active July 23, 2020 09:31
Rails migration adding PostgreSQL index for LIKE when the pattern is both left-anchored and right-anchored
View postgresql_like_index.rb
# It supports queries like:
# ModelName.where(ModelName.arel_table[:columnname].lower.matches 'searchterm')
class PostgresqlLikeIIndex < ActiveRecord::Migration
def up
enable_extension 'pg_trgm'
execute <<~SQL
CREATE INDEX index_tablename_on_columnname_lower
ON tablename USING gin (lower(columnname) gin_trgm_ops)
mdesantis /
Created February 29, 2020 15:45
Install Ruby 2.3 on Ubuntu 19.10 using asdf (ruby-build)
# It assumes [asdf]( to be installed
# and asdf plugin for Ruby to be added
set -exuo pipefail
sudo apt install libreadline-dev
tar -xzf openssl-1.0.2u.tar.gz
mdesantis /
Last active September 26, 2018 17:06
GNU Guix v0.15.0 installer, non interactive version (suitable for Docker; modified from
# GNU Guix --- Functional package management for GNU
# Copyright © 2017 sharlatan <>
# Copyright © 2018 Ricardo Wurmus <>
# Copyright © 2018 Efraim Flashner <>
# This file is part of GNU Guix.
# GNU Guix is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
View tsung.xml
<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd" [] >
<tsung loglevel="info">
<client host="localhost" use_controller_vm="true" maxusers="60000"/>
<server host="localhost" port="3334" type="tcp"></server>
mdesantis /
Created December 21, 2017 13:35
Sir Trevor initializer for Rails
$(document).on 'ready turbolinks:load', ->
SirTrevor.config.language = 'it'
language: 'it'
focusOnInit: false
blockTypes: ['Text', 'Image', 'List', 'Heading', 'Quote', 'Video']
defaultType: 'Text'
iconUrl: "<%= asset_path('sir-trevor/build/sir-trevor-icons.svg') %>"
uploadUrl: "/admin/uploads/images"
mdesantis /
Last active October 11, 2021 08:11 — forked from delameko/
Upgrading PostgreSQL from 9.6 to 10 on Ubuntu 16.04


Install Postgres 10, and then:

sudo pg_dropcluster 10 main --stop
sudo pg_upgradecluster 9.6 main
sudo pg_dropcluster 9.6 main
View asd.rb
require "bundler/inline"
rescue LoadError => e
$stderr.puts "Bundler version 1.10 or later is required. Please update your Bundler"
raise e
gemfile(true) do
source ""
# Activate the gem you are reporting the issue against.