Skip to content

Instantly share code, notes, and snippets.

View gpakosz's full-sized avatar

Grégory Pakosz gpakosz

View GitHub Profile
@gpakosz
gpakosz / gist:9031730
Created February 16, 2014 09:32
Remove GA cruft
if (window.history && history.replaceState && (location.search.match(/utm_/) || location.hash.match(/utm_/))) {
search = location.search.replace(/(\?|\&)?utm_[a-z]+=[^\&]+/g, '')
hash = location.hash.replace(/(#|\&)?utm_[a-z]+=[^\&]+/g, '')
history.replaceState({}, '', location.pathname + search + hash);
}
@gpakosz
gpakosz / gist:53f19f167dbdbd889415
Created July 22, 2014 12:28
Git Branch Hall Of Fame alias
$ git config --global alias.branch-hof '!git for-each-ref --shell --format="printf '\''%%30s %%40s %%25s\n'\'' %(authorname) %(refname:short) %(committerdate:relative)" --sort=committerdate refs/remotes/origin | sh'
@gpakosz
gpakosz / ip-up
Created November 6, 2014 21:22
VPN, ppp /etc/ppp/ip-up example script
#!/bin/sh
# /etc/ppp/ip-up example script
# must have 0755 permissions
# must be owned by root
/sbin/route add -net 192.168.50 -interface $1
@gpakosz
gpakosz / main.cpp
Created February 2, 2015 12:22
C++ array_length, reply to http://www.g-truc.net/post-0708.html
#include <cstddef>
#include <iostream>
#define array_length(a) sizeof(implementation::array_length_requires_array_argument(a))
namespace implementation {
template<typename T, size_t N>
char (&array_length_requires_array_argument(T (&)[N]))[N];
} // namespace implementation
@gpakosz
gpakosz / update_repositories.sh
Created August 13, 2011 14:34
Bulk update of SVN and Git repositories located under a common top level directory
#!/bin/sh
echo updating svn repositories
find . -type d -exec test -d '{}'/.svn.disabled \; -prune -o -exec test -d '{}'/.svn \; -prune -exec sh -c "echo updating {} && svn cleanup {} && svn update --non-interactive --trust-server-cert {}" \;
echo updating git repositories
find . -type d -exec test -d '{}'/.git \; -prune -exec sh -c "echo updating {} && cd {} && git clean -xdf && git pull" \;
@gpakosz
gpakosz / gist:2947616
Created June 18, 2012 09:18
vim - toggle between relative / absolute / no line numbering
if exists("+relativenumber")
set relativenumber " show relative line numbers
set numberwidth=3 " narrow number column
" cycles between relative / absolute / no numbering
function! RelativeNumberToggle()
if (&relativenumber == 1)
set number number?
elseif (&number == 1)
set nonumber number?
else
@gpakosz
gpakosz / null.h
Created July 10, 2012 21:02
pre C++11 nullptr anonymous class
#include <core/Preprocessor.h>
namespace core {
namespace types {
/**
* Anonymous class, to be used instead of <code>0</code> or <code>NULL</code>.
* Enables the selection of the correct form when methods are overloaded for
* both pointers & integrals types.
*/
@gpakosz
gpakosz / nanoc-sites.rb
Last active October 8, 2015 02:28
lists nanoc based sites hosted on github
#!/usr/bin/env ruby
require 'inifile'
require 'net/https'
require 'json'
local_repositories = []
Dir['_all/**/.git/config'].each do |f|
config = IniFile.load(f)
url = config['remote "origin"']['url']
@gpakosz
gpakosz / .gitconfig
Created October 8, 2015 12:14
My global .gitconfig
[user]
name = Gregory Pakosz
email = redacted
[color]
ui = auto
[core]
autocrlf = false
excludesfile = /Users/gregory/.gitignore
editor = vim
whitespace = cr-at-eol
@gpakosz
gpakosz / main.c
Created November 11, 2015 08:08
printf format string for size_t
#if defined(_WIN32) && defined(_MSC_VER) && (_MSC_VER < 1800)
#define SIZET_FMT "%Iu"
#elif defined(__linux__) || (defined(_MSC_VER) && (_MSC_VER >= 1800))
#define SIZET_FMT "%zu"
#elif defined(__APPLE__)
#define SIZET_FMT "%zu"
#else
#define SIZET_FMT "%u"
#endif