Skip to content

Instantly share code, notes, and snippets.

View mlanett's full-sized avatar

Mark Lanett mlanett

View GitHub Profile
@mlanett
mlanett / Transcript.md
Created April 14, 2025 00:23
LifeSling M.O.B. Recovery Tool

This is a cleaned-up transcript for https://www.youtube.com/watch?v=R_GlkMCBVYk

UK Sailmakers Presents: The Life Sling – The Safest M.O.B. Recovery Tool

After multiple well-reported incidents of failed man overboard (M.O.B.) recovery attempts, thought leaders in the world of safety at sea are rethinking the best methods for retrieving someone from the water.

The traditional side pickup method—long the primary technique taught—is now being replaced by recoveries using the Life Sling. Your chances of a successful recovery greatly increase when the person is rescued on the first attempt. For this reason, it’s recommended that you turn on your engine immediately. This gives you more control and maneuverability while circling back and approaching the M.O.B.

The Risks of Side Pickups

#!/usr/bin/env python
# Derived from https://github.com/apangin/jstackmem/blob/master/jstackmem.py
import bisect
import re
import subprocess
import sys
if len(sys.argv) < 2:
print("Calculate stack memory used by a Java process")
print("Usage: python jstackmem.py <pid>")
@mlanett
mlanett / Find and Kill Queries.sql
Last active October 18, 2022 02:42
Find and Kill Queries
SELECT pid,
age(clock_timestamp(), query_start),
usename,
state,
-- get rid of newlines, runs of spaces
regexp_replace(query, E'[\\n\\r ]+', ' ', 'g' ) as query
-- , pg_terminate_backend(pid) -- UNCOMMENT TO KILL
FROM pg_stat_activity
@mlanett
mlanett / singleton.rb
Created December 12, 2014 22:44
Singleton fields in Ruby
def assert condition
raise unless condition
end
#
# @fields at the class level are singleton fields.
# Singleton fields may be initialized but this is not required.
# Singleton fields can only be accessed by singleton methods.
# Singleton fields are not inherited by subclasses (although singleton methods *are* inherited).
#
@mlanett
mlanett / classy.rb
Last active August 29, 2015 14:11
Class fields in Ruby
def assert condition
raise unless condition
end
#
# @@fields are class fields, shared by all instances and all subclasses.
# Class fields MUST be initialized.
# Class fields can be accessed by instance methods.
# Class fields can be accessed by singleton methods.
#
@mlanett
mlanett / fix-bash.sh
Created September 29, 2014 18:43
Patch Bash to avoid Shellshock exploits (Mac OS X)
cd /tmp
mkdir bash-fix
cd bash-fix
curl https://opensource.apple.com/tarballs/bash/bash-92.tar.gz | tar zxf -
cd bash-92/bash-3.2
curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052 | patch -p0
@mlanett
mlanett / rails http status codes
Last active February 3, 2025 11:36
HTTP status code symbols for Rails
HTTP status code symbols for Rails
Thanks to Cody Fauser for this list of HTTP responce codes and their Ruby on Rails symbol mappings.
Status Code Symbol
1xx Informational
100 :continue
101 :switching_protocols
102 :processing
@mlanett
mlanett / rspec_helper.rb
Created September 22, 2014 04:23
Helper to clear redis before/after examples in rspec.
=begin
Include in your rspec config like so:
RSpec.configure do |spec|
spec.include RSpec::RedisHelper, redis: true
end
This helper will clean redis around each example.
=end
@mlanett
mlanett / fluent.rb
Last active August 29, 2015 14:06
Meta-programming for a fluent keyword.
# Copyright (c) 2014 Mark Lanett.
# Permission is hereby granted, free of charge, to deal in this software without restriction of any sort.
module Fluent
def self.included(base)
base.extend(ClassSingletonMethods)
end
module ClassSingletonMethods