Skip to content

Instantly share code, notes, and snippets.

@stefansundin
stefansundin / aws_maintenance_window.rb
Created April 12, 2016 01:15
Convert AWS maintenance window between timezones.
#!/usr/bin/env ruby
def offset_maintenance_window(w, offset=-7)
days = %w[mon tue wed thu fri sat sun]
if /(?<day_start>[a-z]{3}):(?<hour_start>\d\d):(?<minute_start>\d\d)-(?<day_end>[a-z]{3}):(?<hour_end>\d\d):(?<minute_end>\d\d)/ =~ w
day_start = days.find_index(day_start)
day_end = days.find_index(day_end)
hour_start = hour_start.to_i + offset
minute_start = minute_start.to_i
hour_end = hour_end.to_i + offset
<?php
/*
Made by Kudusch (blog.kudusch.de, kudusch.de, @Kudusch)
---------
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <[email protected]>
#!/bin/bash
# https://gist.github.com/stefansundin/2d91d45580763cda29af
# Easily open a repo in a browser, just run `git open`
# Linux users need to change "open" to "xdg-open".
# Example installation instructions:
# curl -fL -o /usr/local/bin/git-open https://gist.githubusercontent.com/stefansundin/2d91d45580763cda29af/raw/git-open
# chmod +x /usr/local/bin/git-open
ORIGIN=`git config --get remote.origin.url | sed -e 's/\.git$//'`
@stefansundin
stefansundin / git-nuke
Created August 13, 2015 00:17
Git nuke script to remove specified files from all branches and tags.
#!/bin/bash
set -o errexit
# BE VERY CAREFUL USING THIS SCRIPT. MAKE A BACKUP (OR TWO) FIRST WITH:
# git clone --mirror ...
# Install by putting this file in e.g. /usr/local/bin/git-nuke
# chmod +x /usr/local/bin/git-nuke
if [ $# -eq 0 ]; then
@stefansundin
stefansundin / string_hash.rb
Created May 25, 2015 06:32
Ruby stringified hash.
# I have been annoyed that hash[:key] != hash["key"], which has caused problems more than once when converting things to Sidekiq jobs, etc.
# This is a major hack, and it is probably not really useful unless you can monkey patch the Hash class, which I didn't succeed with.
# I will have to look into how Rack does the params magic...
class StringHash < Hash
def []=(key, val)
super(key.to_s, val)
end
def [](key)
@stefansundin
stefansundin / filetime.c
Last active August 29, 2015 14:12
Retrieve and edit file timestamps in Windows.
#include <stdio.h>
#include <windows.h>
// FILETIME is always UTC. Note that Windows itself will display timestamps in your local timezone, e.g. in the file properties dialog.
// Error codes: http://msdn.microsoft.com/en-us/library/windows/desktop/ms681381(v=vs.85).aspx
// i686-w64-mingw32-gcc -o filetime filetime.c
int main(int argc, char *argv[]) {
if (argc < 2) {
fprintf(stderr, "Usage: filetime <file> [new mtime] ...\n");
@stefansundin
stefansundin / youtube-global-shortcuts.user.js
Last active April 11, 2025 00:36
Makes the YouTube shortcuts work even if the player is not focused. Install Greasemonkey/Tampermonkey first, then click [Raw] to install.
// ==UserScript==
// @name YouTube global shortcuts
// @namespace https://gist.github.com/stefansundin/
// @homepage https://gist.github.com/stefansundin/65e3d6db697636d8e7f1
// @downloadURL https://gist.github.com/stefansundin/65e3d6db697636d8e7f1/raw/youtube-global-shortcuts.user.js
// @version 1.1
// @author Stefan Sundin
// @description Makes the YouTube shortcuts work even if the player is not focused.
// @icon https://www.youtube.com/favicon.ico
// @match https://www.youtube.com/*
@stefansundin
stefansundin / extract-attachments.py
Last active September 27, 2022 18:54
Extract attachments from emails that Gmail doesn't allow you to download. This is dumb. Please use Python >= 3.4.
#!/usr/bin/env python3
# Get your files that Gmail block. Warning message:
# "Anti-virus warning - 1 attachment contains a virus or blocked file. Downloading this attachment is disabled."
# Based on: https://spapas.github.io/2014/10/23/retrieve-gmail-blocked-attachments/
# Instructions:
# Go to your emails, click the arrow button in the top right, "Show original", then "Download Original".
# Move the files to the same directory as this program, then run it.
import sys
@stefansundin
stefansundin / disqus-gadget.xml
Last active August 29, 2015 14:12
Disqus google gadget embed (note: haven't used this in a long while)
<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="Disqus embed" author="Stefan Sundin" width="640" height="390"></ModulePrefs>
<UserPref name="shortname" datatype="string" default_value="" />
<UserPref name="id" datatype="string" default_value="" />
<UserPref name="url" datatype="string" default_value="" />
<UserPref name="title" datatype="string" default_value="" />
<UserPref name="width" datatype="string" default_value="" />
<UserPref name="height" datatype="string" default_value="" />
<UserPref name="args" datatype="string" default_value="" />
@stefansundin
stefansundin / indabamusic-download.rb
Last active August 29, 2015 14:07
Download all remixes from an indabamusic campaign.
# https://gist.github.com/stefansundin/22259d6309f34084cb8e
require 'net/http'
require 'json'
require 'time'
require 'iso_country_codes'
slug = 'infected-mushroom-kipod-remix-contest'
dest = "indabamusic-#{slug}"