Derniers snippets
Installer rails sous Ubuntu Edgy
Une installation manuelle via la dernière version de Gem garantie de posséder la dernière version :
$ sudo apt-get install ruby irb ri rdoc ruby1.8-dev build-essential
$ wget http://rubyforge.org/frs/download.php/16452/rubygems-0.9.1.tgz
$ tar xvfz rubygems-0.9.1.tgz
$ cd rubygems-0.9.1/ && sudo ruby setup.rb
$ sudo gem install rails --include-dependencies
Créer un projet :
$ mkdir ~/www/rails && cd ~/www/rails
$ rails testapp && cd rails testapp
$ script/server
Lancez un navigateur sur http://0.0.0.0:3000/ et c'est bon.
[Ubuntu] Intégrer Subversion dans Nautilus
SVN dans Nautilus via un clic droit, c'est possible :
$ sudo apt-get install nautilus-script-collection-svn
$ nautilus-script-manager enable Subversion
Merci glooze ;)
Ajouter automatiquement tous les nouveaux fichiers et dossiers dans un dépôt Subversion
The command line is my friend.
$ svn stat | grep ? | awk '{ print $2 }' | xargs svn add
[Symfony] Chemins systèmes
Voici les chemins systèmes par défaut dans Symfony.
// root directory structure 'sf_cache_dir_name' => 'cache', 'sf_log_dir_name' => 'log', 'sf_lib_dir_name' => 'lib', 'sf_model_dir_name' => 'model', 'sf_web_dir_name' => 'web', 'sf_data_dir_name' => 'data', 'sf_config_dir_name' => 'config', 'sf_apps_dir_name' => 'apps', // global directory structure 'sf_app_dir' => $sf_root_dir.DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.$sf_app, 'sf_model_dir' => $sf_root_dir.DIRECTORY_SEPARATOR.'model', 'sf_lib_dir' => $sf_root_dir.DIRECTORY_SEPARATOR.'lib', 'sf_web_dir' => $sf_root_dir.DIRECTORY_SEPARATOR.'web', 'sf_upload_dir' => $sf_root_dir.DIRECTORY_SEPARATOR.'web'.DIRECTORY_SEPARATOR.'uploads', 'sf_base_cache_dir' => $sf_root_dir.DIRECTORY_SEPARATOR.'cache'.DIRECTORY_SEPARATOR.$sf_app, 'sf_cache_dir' => $sf_root_dir.DIRECTORY_SEPARATOR.'cache'.DIRECTORY_SEPARATOR.$sf_app.DIRECTORY_SEPARATOR.$sf_environment, 'sf_log_dir' => $sf_root_dir.DIRECTORY_SEPARATOR.'log', 'sf_data_dir' => $sf_root_dir.DIRECTORY_SEPARATOR.'data', 'sf_config_dir' => $sf_root_dir.DIRECTORY_SEPARATOR.'config',
Exclure un paquet d'un dist-upgrade
Wajig permet de bloquer un paquet via sa sous-commande hold :
$ sudo apt-get install wajig
$ sudo wajig hold <package_name>
$ sudo apt-get update
$ sudo apt-get dist-upgrade
Ici le paquet <package_name> ne sera pas mis à jour.
Avec aptitude, vous pouvez conserver un paquet en faisant :
$ aptitude hold package_name
et enlever le drapeau « hold » avec
$ aptitude unhold package_name
[IRC] Récupérer un nick
Parfois après une déco, son pseudo est bloqué. On peut le récupérer comme ça :
/ns ghost <nick> <password>
Donner les pouvoirs d'administration système à un utilisateur
En admettant l'existance d'un utilisateur toto :
$ sudo adduser toto admin
L'utilisateur toto sera automatiquement ajouté aux sudoers et pourra donc executer le commande sudo en s'identifiant au moyen de son mot de passe.
[Symfony] Autoloader toutes les classes d'un répertoire particulier
Il est très simple de charger automatiquement toutes les classes PHP définies dans un répertoire avec Symfony :
require_once($sf_symfony_lib_dir.'/util/sfCore.class.php'); sfCore::initSimpleAutoload('/path/to/libs');
[Symfony] Cacher un objet Propel sérialisé
Peut être utile pour les gros objets couteux et utilisés souvent.
$key = md5('myPropelObjectKey'); $cache = new sfProcessCache(); if ($cache->has($key)) { $obj = unserialize($cache->get($key)); } else { $obj = Table::doSelect(); $cache->set($key, serialize($obj)) }
Compter le nombre d'occurence d'un terme dans un répertoire
Dans tous les fichiers de type texte, calcul du nombre d'occurence d'une chaîne de caractère avec grep et wc :
$ grep -r require_once /path/to/scan | wc -l
1454
On peut aussi exclure certaines ressources ou répertoires, avec grep -v :
$ grep -r require_once /path/to/scan | grep -v .svn | wc -l
735




