glob

al's blog

Aller au contenu | Aller à la recherche

ven, 29 fév 2008

Diff SVN

En regardant le script de davux, permettant la colorisation d'un diff, je me suis dit qu'il devait y avoir une possibilité d'intégrer ça de manière simple à subversion.

Collez ce petit script dans un fichier (nous allons prendre ici /usr/local/bin/colorized_diff) et rendez le exécutable :

#! /bin/sh

plus='^[[0;32m'
minus='^[[0;31m'
diff "$@" | sed 's/^+.*$/'"$plus"'&^[[0m/; s/^-.*$/'"$minus"'&^[[0m/'

Ensuite, modifiez le fichier ~/.subversion/config pour y rajouter ou modifier la ligne suivante dans la section [helpers]:

diff-cmd = /usr/local/bin/colorized_diff

Vous pouvez omettre le chemin (/usr/local/bin) si il est dans votre PATH. Maintenant, un svn diff dans un shell vous affichera les lignes supprimées en rouge et les lignes ajoutées en vert. C'est pas plus mignon ?

Note : ^[ est le caractère d'échappement, vous pouvez le taper dans vim en faisant Ctrl-V puis Echap

mar, 15 jan 2008

Mix Drum 'n' Bass : premiers essais

Depuis un certain temps que j'écoute de la Jungle / Drum 'n' Bass, je me suis dit pourquoi pas essayer de mettre en pagaille réunir mes morceaux favoris en un seul. Non je ne compte pas faire carrière dans la musique, loin de là. Je me suis mis à réaliser ce mix juste pour m'amuser un peu et voir ce que cela pouvait donner.

L'objectif était de pas dépasser les 50 minutes. Le plus dur a été de choisir les pistes (et surtout d'en éliminer) puis à choisir un ordre cohérant et qui passe bien. Au final, je me suis fait plaisir :)

Fini la parlotte, pour écouter c'est ici :

… et pour télécharger c'est là.

Le mix fait 48 minutes et 32 secondes, est au format MP3, et contient 21 pistes :

  1. Cyantific - Cover Story
  2. CLS & Wax - Quite Perfect
  3. Shimon - The Shadow Knows
  4. Sub Focus - Swamp Thing
  5. State Of Mind - Paint The Walls Black
  6. Mazzini - Freak
  7. Sub Focus - Airplane
  8. Matrix & Futurebound - Universal Truth
  9. Sub Focus - X Ray
  10. Muffler - Futureshock
  11. Pendulum - Tarantula (feat. Fresh Pyda And Tenor Fly)
  12. The Qemists - Iron Shirt
  13. Shimon - Drug Mule
  14. Freestylers & Pendulum - Painkiller (Noisia Remix)
  15. The Prodigy - Voodoo People (Pendulum Remix)
  16. Sub Focus - Flamenco
  17. Pendulum - Blood Sugar
  18. The Qemists - Stompbox
  19. The Qemists - Drop Audio
  20. Logistics - Everything Is Illuminated
  21. Matrix & Futurebound - Coast To Coast (feat. Louis Smith)

jeu, 13 sep 2007

Black Label @ Elysée Montmartre

Cette fois, je vais essayer de prévenir avant. Une bonne soirée se profile pour samedi :

mar, 17 juil 2007

Nouvelle venue


Elle s'appelle Guinness ;)

mar, 10 juil 2007

Fixtures on Rails

Il est assez fréquent d'avoir du contenu à pré-remplir dans une base de données lors du déploiement d'une application.

La plupart du temps on se fait un script SQL qui fait les insertions. En Rails, c'est mieux, on mets les insertions dans les scripts de migration et ça roule.

Petit hic, mettons que l'on a beaucoup de données et contenant des champs text, le script de migration va vite devenir illisible. Pour ça il y a les Fixtures. Seulement, ce n'est pas géré par les migrations (de base). Les fixtures sont représentés grâce à des fichiers YAML décrivant vos modèles.

Voilà un petit script à rajouter dans le répertoire /lib/ (nommez-le create_fixtures.rb) :

require 'active_record/fixtures'

module CreateFixtures

FIXTURES_LOCATION = 'db/fixtures'

def self.extended(object)
class << object
alias_method :migrate_without_fixtures, :migrate unless method_defined?(:migrate_without_fixtures)
alias_method :migrate, :migrate_with_fixtures
end
end

def migrate_with_fixtures(direction)
migrate_without_fixtures(direction)
return if :down == direction
version = ActiveRecord::Migrator.current_version + 1
cnx = ActiveRecord::Base.connection
files = Dir["#{FIXTURES_LOCATION}/[0-9]*_*.yml"].each do |file|
next unless file.gsub(/.*\/([0-9]+)_.*\.yml/, '\1').to_i == version
table_name = file.gsub(/.*\/[0-9]+_(.*)\.yml/, '\1')
Fixtures.new(cnx, table_name, nil, file.gsub(/(.*)\.yml/, '\1')).insert_fixtures
end
end

end

ActiveRecord::Migration.extend(CreateFixtures)

Ensuite, rajouter cette ligne dans le fichier config/environment.rb :

require File.dirname(__FILE__) + '/../lib/create_fixtures'

Voilà la chose est en place. Maintenant voyons l'utilisation.

Vous avez juste à créer un répertoire db/fixtures dans votre application et y mettre vos fichiersYAML. Nommez vos fichiers de la sorte :

<numéro_de_migration>_<nom_de_la_table>.yml

Rien de mieux qu'un petit exemple :

$ cat db/fixtures/002_users.yml
admin:
login: admin
hashed_password: d033e22ae348aeb5660fc2140aec35850c4da997
status: administrator

Ici, l'utilisateur administrateur sera directement ajouté à la fin de la deuxième migration. Vous pouvez bien-entendu mettre plusieurs fichiers de fixtures pour une même migration et créer des utilisateurs par exemple après la deuxième ou même la 42e migration.

- page 2 de 5 -