add-apt-repository ppa:chris-lea/node.js
apt-get update
apt-get install nodejs
#!/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}") |
import couchdb | |
import random | |
import string | |
from beefish import encrypt_file | |
from subprocess import Popen | |
from subprocess import PIPE | |
# constants | |
SRC_DB_USER = "root" |
<?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) | |
* |
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 |
#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 = [] |
# | |
# 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? | |
# |
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