Derniers snippets latest 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.

by Nicolas Perriault on 2007-02-02, tagged rails  ruby  ubuntu 

[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 ;)

by Nicolas Perriault on 2007-01-30, tagged linux  nautilus  subversion  svn  ubuntu 

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
by Nicolas Perriault on 2007-01-30, tagged awk  cli  grep  linux  subversion  svn 

[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',
by Nicolas Perriault on 2007-01-29, tagged filesystem  php  symfony 

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
by Nicolas Perriault on 2007-01-24, tagged apt  debian  sysadmin  ubuntu  wajig 
(2 comments)

[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>
by Nicolas Perriault on 2007-01-19, tagged irc 

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.

by Nicolas Perriault on 2007-01-18, tagged cli  linux  sysadmin  ubuntu 
(1 comment)

[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');
by Nicolas Perriault on 2007-01-17, tagged autoload  php  symfony 

[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))
}
by Nicolas Perriault on 2007-01-17, tagged cache  propel  symfony 
(2 comments)

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
by Nicolas Perriault on 2007-01-16, tagged cli  grep  linux  search  sysadmin