Skip to content

Instantly share code, notes, and snippets.

@nicolasramy
nicolasramy / pip.sh
Created January 30, 2014 00:20
Simple bash_completion file: pip, venv-* functions. (venv-functions details: https://gist.github.com/nicolasramy/6438236#file-bash_functions_python)
#!/bin/sh
_pip_completion() {
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
first="${COMP_WORDS[0]}"
commands=$($first --help | awk '/Commands\:/,/General Options\:/' | \
\grep -E -o "^\s{2}\w*" | tr -d ' ')
opts=$($first --help | \grep -E -o "((-\w{1}|--(\w|-)*=?)){1,2}")
@marvin
marvin / prototype_mysqldump_zip_enc_to_couchdb.py
Created November 24, 2012 21:39
quick prototype in python for taking a mysqldump, zip and encrypt it and store in couchdb
import couchdb
import random
import string
from beefish import encrypt_file
from subprocess import Popen
from subprocess import PIPE
# constants
SRC_DB_USER = "root"
@jcastilloa
jcastilloa / Odbc.php
Last active December 10, 2015 01:48 — forked from ceeram/Odbc.php
CakePHP 2.x DataSource ODBC · PDO · iSeriesAccess · DB2/400 (tested with V5R1). ALPHA / UNSTABLE.
<?php
/**
* ODBC for DBO. Tested with AS400 V5R1 and iSeriesAccess unixodbc
*
* PHP versions 4 and 5
*
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
* Copyright 2005-2009, Cake Software Foundation, Inc. (http://cakefoundation.org)
*
@nicolasramy
nicolasramy / css-tools.md
Created July 8, 2013 13:00
Cheat sheets for PHP Quality Assurance, PHP developper tools, CSS tools... for Ubuntu 12.04+

CSS Developer tools

Requirements

NodeJS

add-apt-repository ppa:chris-lea/node.js
apt-get update
apt-get install nodejs
@aslakhellesoy
aslakhellesoy / Makefile
Created December 22, 2011 13:22
Publish NPM packages with Make
NAME := $(shell node -e "console.log(JSON.parse(require('fs').readFileSync('package.json', 'utf8')).name)")
VERSION := $(shell node -e "console.log(JSON.parse(require('fs').readFileSync('package.json', 'utf8')).version)")
TARBALL := $(NAME)-$(VERSION).tgz
npm-publish:
@rm -Rf package
@mkdir package
@cp -R lib package/lib
@cp package.json package
@tar czf $(TARBALL) package
@yuchant
yuchant / template_injector.py
Created April 5, 2012 01:31
Django template context variable injector decorator (inject variables into templates based on URL, not view)
#from django.core.urlresolvers import reverse, reverse_lazy, NoReverseMatch
# from django.utils.functional import lazy
# CONTEXT_INJECTOR_REVERSE_DEBUG = getattr(settings, 'CONTEXT_INJECTOR_REVERSE_DEBUG', False)
class TemplateContextInjectorMiddleware(object):
lazy_url_func_pairs = []
@nicolasramy
nicolasramy / momoticon.md
Last active February 10, 2017 12:10
Momoticon, another version of emoticons

Happy

^_^
^.^
@ttsiodras
ttsiodras / hack.py
Last active August 21, 2017 09:48
I just did something that depending on your viewpoint on coding, is either an insult to God and humanity, or absolutely brilliant.
#
# I inherited a large code base, where hundreds of code paths end up
# calling "common_function_called_in_gazillion_places".
#
# And the need arose for this function to access the HTTP request's
# headers...
#
# What to do? Refactor all the places leading up to here? In a dynamically
# typed language, with no compiler to tell us the places to refactor?
#
@DavidBruant
DavidBruant / gist:8519103
Last active June 3, 2018 22:08
Guide pratique à destination des preneurs de décisions pour faire des applications partagées pérennes disponibles sur une majorité de plateformes

Problème

Créer des applications partagées pérennes qui peuvent être déployées à grande échelle.

Partagées signifie que différents utilisateurs vont pouvoir interagir et "travailler" ensemble sur l'application

Grande échelle, en 2013, signifie que des dizaines à des millions de personnes peuvent utiliser l'application. Une majorité de plateforme doit être accessibles (ordis de bureaux, portables, tablettes, téléphones mobiles) de préférence à moindre coût et donc sans avoir à tout refaire pour chaque appareil. Vivant dans un monde régit par certaines lois physiques, il sera raisonnable de supposer que le réseau de communication est au pire ouvert. La sécurité de l'application ne devra pas supposer le contrôle du réseau, même dans si l'environnement de déploiement est considéré contrôlé.

Pérennes signifie que l'arrivée de nouveaux appareils sur le marché ne remet pas en cause plus de 1% du temps de développement. Personne ne peut prévoir le futur ; il conviendra de garder un œil ouvert sur les ten