Skip to content

Instantly share code, notes, and snippets.

class User < ApplicationRecord
has_many :posts
# Violates Single Responsibility Principle (SRP)
def make_admin
self.update(:is_admin, true)
end
# Violates Law of Demeter (LoD) and N+1 query issue
def recent_posts_with_comments
@st0012
st0012 / debugging_challenge.md
Last active August 29, 2022 07:35
Debugging Challenge

Introduction

This challenge tests if you can locate the cause of a Rails issue in 5 iterations (script execution). Although it's a Rails issue, prior knowledge on Rails is not required.

The 5 iterations limit may feel constraining, but it is intentional. If you can't locate the cause within the limitation, that's totally fine.

After the challenge, there's a simple questionnaire. If you can answer the questions, it'll help me prepare my talk for RubyKaigi. Any feedback will be appreciated 🙏

I recommend allocating 1.5 hr for the challenge and the questions

@kosmatov
kosmatov / vim-ssh-pbcopy
Last active December 7, 2020 08:27
Vim pbcopy through SSH
$ tail -3 ~/.ssh/config
Host pbcopy-host
HostName 10.0.1.1
User key
$ cat ~/.vimrc | grep pbcopy
Plug 'ahw/vim-pbcopy'
let g:vim_pbcopy_remote_cmd = "ssh pbcopy-host pbcopy"
@Brainiarc7
Brainiarc7 / ffmppeg-advanced-playbook-nvenc-and-libav-and-vaapi.md
Last active September 2, 2024 14:37
FFMpeg's playbook: Advanced encoding options with hardware-accelerated acceleration for both NVIDIA NVENC's and Intel's VAAPI-based hardware encoders in both ffmpeg and libav.

FFmpeg and libav's playbook: Advanced encoding options with hardware-based acceleration, NVIDIA's NVENC and Intel's VAAPI-based encoder.

Hello guys,

Continuing from this guide to building ffmpeg and libav with NVENC and VAAPI enabled, this snippet will cover advanced options that you can use with ffmpeg and libav on both NVENC and VAAPI hardware-based encoders.

For ffmpeg:

@skv-headless
skv-headless / reactive.md
Last active September 22, 2016 12:01
Lighting talk proposal to amazing https://reactiveconf.com

The most pragmatic way to write a mobile app

I want to talk about different approaches in writing mobile apps. I will tell you when it is a good idea to pretend that your responsive website is an app. Also about evolution of this idea from basecamp and DHH - turbolinks. I will tell you about my lovely ReactNative and the problems it has. When you can't avoid writing apps in native sdk and what difficulties you may face going this way.

Last year I used to write apps in objective-c. My open source works mostly around react native but my heart is with Ruby on Rails.

@rcoup
rcoup / docker-run-ssh
Created July 9, 2015 13:28
SSH Agent Forwarding for boot2docker
#!/bin/bash
# "docker run" with SSH Agent Forwarding for boot2docker
# QuickStart:
# 1. Download to ~/bin/docker-run-ssh and chmod +x it
# 2. docker-run-ssh [normal args to docker run...]
# Use a unique ssh socket name per-invocation of this script
SSH_SOCK=boot2docker.$$.ssh.socket
@glen-cheney
glen-cheney / encoding-video.md
Last active October 25, 2025 03:24
Encoding video for the web

Encoding Video

Installing

Install FFmpeg with homebrew. You'll need to install it with a couple flags for webm and the AAC audio codec.

brew install ffmpeg --with-libvpx --with-libvorbis --with-fdk-aac --with-opus
@jberkus
jberkus / gist:de7cfdd3b6e0b187f63d
Created October 8, 2014 21:28
finding needed indexes -- early draft
SELECT schemaname, relname,
seq_scan as table_scans,
idx_scan as index_scans,
pg_size_pretty(pg_relation_size(relid)) as table_size,
n_tup_ins + n_tup_del + n_tup_upd + n_tup_hot_upd as write_activty
FROM pg_stat_user_tables
WHERE seq_scan > 1000
AND seq_scan > ( idx_scan / 10 )
AND pg_relation_size(relid) > ( 16000000 )
ORDER BY pg_relation_size(relid) desc;
#!/usr/bin/env bash
# Loads and mounts an ISO over SMB via the
# SuperMicro IPMI web interface
#
# usage: supermicro-mount-iso.sh <ipmi-host> <smb-host> <path>
# e.g.: supermicro-mount-iso.sh 10.0.0.1 10.0.0.2 '\foo\bar\windows.iso'
set -x
@jberkus
jberkus / gist:6b1bcaf7724dfc2a54f3
Last active July 31, 2025 20:15
Finding Unused Indexes
WITH table_scans as (
SELECT relid,
tables.idx_scan + tables.seq_scan as all_scans,
( tables.n_tup_ins + tables.n_tup_upd + tables.n_tup_del ) as writes,
pg_relation_size(relid) as table_size
FROM pg_stat_user_tables as tables
),
all_writes as (
SELECT sum(writes) as total_writes
FROM table_scans