Skip to content

Instantly share code, notes, and snippets.

Riccardo Bartoli rbartoli

Block or report user

Report or block rbartoli

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
rbartoli / js: sortBy
Last active Aug 29, 2015
JS: Object sort with additional parameters
View js: sortBy
var sort_by;
(function() {
// utility functions
var default_cmp = function(a, b) {
if (a == b) return 0;
return a < b ? -1 : 1;
getCmpFunc = function(primer, reverse) {
var dfc = default_cmp, // closer in scope
View Deploy with

Deploy your site with GIT

This gist assumes:

  • you have a local git repo
  • with an online remote repository (github / bitbucket etc)
  • and a cloud server (Rackspace cloud / Amazon EC2 etc)
    • your (PHP) scripts are served from /var/www/html/
    • your webpages are executed by apache
    • apache's home directory is /var/www/
View Where is that console.log?
['log', 'warn'].forEach(function(method) {
var old = console[method];
console[method] = function() {
var stack = (new Error()).stack.split(/\n/);
// Chrome includes a single "Error" line, FF doesn't.
if (stack[0].indexOf('Error') === 0) {
stack = stack.slice(1);
var args = [].slice.apply(arguments).concat([stack[1].trim()]);
return old.apply(console, args);
rbartoli /
Last active Aug 29, 2015
Example bash script provisioner for Ubuntu 14.04.1 (x64)
sudo locale-gen en_GB.UTF-8
sudo addgroup vagrant www-data
# Set timezone (UTC)
echo "Etc/UTC" | sudo tee /etc/timezone && sudo dpkg-reconfigure --frontend noninteractive tzdata
# Update system
sudo apt-get update
sudo apt-get -y dist-upgrade
rbartoli / js: event delegation
Last active Aug 29, 2015
Vanilla JS event delegation
View js: event delegation
document.getElementById( 'menu' ).addEventListener( 'click', function( event ) {
if( && === 'LI' ) {
// Event triggered

OS X Screencast to animated GIF

This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.

Screencapture GIF


To capture the video (filesize: 19MB), using the free "QuickTime Player" application:

View .gitconfig
# View abbreviated SHA, description, and history graph of the latest 20 commits
l = log --pretty=oneline -n 50 --graph --abbrev-commit
# View the current working tree status using the short format
s = status -s
# Show the diff between the latest commit and the current state
d = !"git diff-index --quiet HEAD -- || clear; git --no-pager diff --patch-with-stat"
# Commit all changes
cm = !git add -A && git commit -m
# Switch to a branch, creating it if necessary
rbartoli /
Created Mar 29, 2015
Linux: create swap file
dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /swapfile
swapon /swapfile
echo "/swapfile swap swap defaults 0 0" > /etc/fstab
View js: mustard cutting
if('querySelector' in document && 'localStorage' in window && 'addEventListener' in window) {
// bootstrap the javascript application
View simple-cache.js
// Create an instance of our cache and set some keys. Notice that the [new] operator
// is optional since the SimpleCache (and revealing module pattern) doesn't use
// prototypical inheritance. And, we can use method-chaining to set the cache keys.
var cache = SimpleCache()
.set( "foo", "Bar" )
.set( "hello", "world" )
.set( "beep", "boop" )
console.log( cache.has( "beep" ) );
You can’t perform that action at this time.