Coding is an Art

Anoiaque::Ergasterium

02/05/2010

Exporter une collection d'objets ruby vers un fichier excel

Permet d'exporter des collections de différentes classes.
Permet d'inclure les attributs d'associations.

Installation :
gem install to_excel
Source + documentation : to_excel github repository
Gemcutter : to_excel gem

28/04/2010

Nombres premiers : Classe Prime de la librairie 'mathn' de ruby

>> require 'mathn'
=> true
>> primes = Prime.new
=> #<Prime:0x1014752a0 @counts=[], @primes=[], @seed=1>

# les n premiers nombres premiers
>> 3.times { puts primes.succ }
2
3
5

# décomposition en facteurs premiers
>> 123.prime_division
=> [[3, 1], [41, 1]]
>> 17.prime_division
=> [[17, 1]]
> 13333339.prime_division
=> [[13333339, 1]] # hé oui :)

# PGDC de deux entiers
>> 12.gcd2(234)
=> 6

# La réciproque de prime_division
>> 13344443.prime_division
=> [[7, 1], [59, 1], [79, 1], [409, 1]]
>> Integer.from_prime_division(13344443.prime_division)
=> 13344443
>> primes.last  # :)

Un peu de mathématiques avec la librairie 'mathn' de ruby

# Sans mathn

require 'complex'
require 'matrix'
36/16 => 1.414... 
Complex::I ** 2 => Complex(-1, 0)
m = Matrix[[1,2],[3,4]]
i = m.inv

m*i => Matrix[[1,0],[-2,-2]] #:(

#avec mathn

require 'mathn'

36/16 => 9/4... 
Complex::I ** 2 => -1
m = Matrix[[1,2],[3,4]]
i = m.inv
m*i => Matrix[[1,0],[0,1]]

23/04/2010

Des méthodes nommées par un symbole mathématique

#!/usr/local/bin/ruby -Kuw

module Kernel

def ∑(*args)
args.inject(:+) 
end

def √(root)
Math.sqrt(root)
end

def ∏(args)
args.inject(:*) 
end

end
puts ∑(1,2,4) # => 7 
puts √(5) # => # 2.2360...
puts  ∏(1..5) # 5! :)

26/03/2010

Rails::Configuration - Rails::Initializer

Pour exécuter une tâche à chaque requête en développement et une seule fois en production :
Dans config/environment.rb :
config.to_prepare do
  #code à exécuter
end

Pour exécuter une tâche après l'initialisation :
config.after_initialize do
  #code à exécuter
end

Si l'on souhaite l'exécution uniquement en production/développemnt :
Respictivement dans config/environments/production.rb ou /config/environments/development.rb

14/03/2010

Hermes : ORM Java sur le pattern ActiveRecord

Github : Hermes github repository

TextMate : commande "go to method"

Commande TextMate pour ouvrir la déclaration d'une méthode sélectionnée (équivalent de command-B sous NetBeans)

Installation 
Créer  la commande avec le Bundle Editor en insérant ce script ruby.

Utilisation
Sélectionner le nom de la méthode, puis taper le raccourci clavier que vous avez entré pour la commande.

Github : http://github.com/anoiaque/textmate_go_to_method

Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it.
Alan Perlis


The best way to predict the future is to invent it.
Alan Kay


Ne découvre de nouvelles terres que celui qui sait quitter tout rivage.
André gide


Qui ne doute pas acquiert peu
Léonard de Vinci


Our life is frittered away by detail... simplify, simplify.
Henry David Thoreau