Skip to content

Instantly share code, notes, and snippets.

View asaaki's full-sized avatar
🦀
Oh crab!

Christoph Grabo asaaki

🦀
Oh crab!
View GitHub Profile
@toch
toch / trace_calls.rb
Last active September 8, 2015 14:50
Decorate any method in Ruby to get its call stack
def trace_calls_on
scope = {}
trace = TracePoint.new(:call, :line) do |tp|
case tp.event
when :call then puts "#{tp.path}:#{tp.lineno} #{tp.defined_class}::#{tp.method_id} " \
"called from #{scope[:path]}:#{scope[:lineno]} #{scope[:class]}::#{scope[:method_id]}"
when :line then scope = {
event: :line,
lineno: tp.lineno,
path: tp.path,
@henrik
henrik / chain.exs
Last active December 4, 2020 05:41
Silly #elixir-lang macro experiment for Ruby-like method chaining. Don't use this for serious purposes :)
defmodule Chain do
defmacro chain(ex) do
parse(ex)
end
defp parse({:., _, [first_arg, function_name]}, more_args) do
args = [first_arg|more_args] |> Enum.map(&parse/1)
apply(String, function_name, args)
end
@blt
blt / hello.erl
Last active December 4, 2020 05:41
What should be the standard Erlang "Hello, world!"
-module(hello).
-export([hello/1]).
hello(robert) ->
io:format("Hello, Mike.");
hello(joe) ->
io:format("Hello, Robert.");
hello(mike) ->
io:format("Hello, Joe.").
@djo
djo / run.sh
Last active January 27, 2020 04:35
Handling of UNIX-signals in Erlang/Elixir is not supported, this script provides start-stop management with handling TERM signal for Docker installation.
#!/usr/bin/env bash
set -x
term_handler() {
echo "Stopping the server process with PID $PID"
erl -noshell -name "[email protected]" -eval "rpc:call('[email protected]', init, stop, [])" -s init stop
echo "Stopped"
}
trap 'term_handler' TERM INT
@oneohthree
oneohthree / quick-slugify.sh
Last active November 2, 2025 12:21
Quick bash slugify
echo "$STRING" | iconv -t ascii//TRANSLIT | sed -r s/[^a-zA-Z0-9]+/-/g | sed -r s/^-+\|-+$//g | tr A-Z a-z
@yob
yob / socket_stats_logger
Last active June 9, 2017 11:01 — forked from toolmantim/socket_stats_logger
sending unicorn socket data to statsd
#!/bin/env ruby
# Logs the number of queued and active connections on the unicorn socket to statsd.
# There's a cap on the number of queued connections. If we hit it then nginx will
# start serving 504 pages
#
# There is no visible output, but data is sent to statsd each second
#
# Props to Tim Lucas for the basic structure:
#
I think you mean team...
I think you mean squad..
I think you mean gang...
I think you mean pals...
I think you mean buds...
I think you mean posse...
I think you mean phalanx...
I think you mean crew...
I think you mean crüe...
I think you mean nerds...
@protrolium
protrolium / ffmpeg.md
Last active November 12, 2025 12:21
ffmpeg guide

ffmpeg

Converting Audio into Different Formats / Sample Rates

Minimal example: transcode from MP3 to WMA:
ffmpeg -i input.mp3 output.wma

You can get the list of supported formats with:
ffmpeg -formats

You can get the list of installed codecs with:

@edsu
edsu / gist:dd92a2964e95782ce675
Last active April 12, 2019 20:59
Here's an example of the API call that WikiData's search box uses for suggesting entities. The suggestion is based on the text "ch" in the search URL query parameter.
curl --silent 'https://www.wikidata.org/w/api.php?action=wbsearchentities&search=ch&format=json&language=en&type=item&continue=0' | python -m json.tool
{
"search": [
{
"aliases": [
"encyclopaedia",
"encyclop\u00e6dia"
],
"description": "type of reference work",
"id": "Q5292",
@stevedomin
stevedomin / create_post.exs
Last active December 26, 2024 09:19
Using UUIDs as primary key with Ecto
defmodule MyBlog.Repo.Migrations.CreatePost do
use Ecto.Migration
def change do
create table(:posts, primary_key: false) do
add :id, :uuid, primary_key: true
add :body, :string
add :word_count, :integer
timestamps