mercredi 29 octobre 2008

Le traducteur du shell google (goosh)

Apres lancement de goosh.org sur le prompt /web , il est possible de fixer le service par défaut pour éviter de taper le suffixe de la commande .

(exemple ici : translate ou trans)

Loading local settings...

guest@goosh.org:/web> translate

On se retrouve dans le service de traduction:
La syntaxe est la suivante : 'langue de départ' 'langue cible' phrase ou mot

Ici d'anglais en francais :
guest@goosh.org:/translate> fr en poulpe
translating "poulpe" from french to english:

"octopus"

Et réciproquement :

guest@goosh.org:/translate> en fr star
translating "star" from english to french:

"étoile"


Pour une phrase entiere :


guest@goosh.org:/translate> fr en les sanglots longs des violons
translating "les sanglots longs des violons" from french to english:

"the long sobs of violins"

Pour revenir au mode de recherche web : cd ..


enjoy ("apprécier")

mardi 28 octobre 2008

Test cerveau hèmisphere droit ou gauche.

Test cerveau droit contre gauche

(d'après le couriermail.com)
Dans quel sens voyez vous tourner la danseuse ?

Dans le sens des aiguilles d'une montre : Vous êtes plutôt hémisphère droit
Dans le sens inverse : vous êtes plutôt hémisphère gauche




Fonctions hémisphère gauche
Fonctions hémisphère droit
Logique
Sentiments
vision du détail
Vision d'ensemble
Réaliste
imaginatif
mot et langage
image et symbole
tourné vers le passé
tourné vers le futur
maths et sciences philosophie et religion
savoir
comprendre
Précision
Fonctionnel
prudent
risque


Générateur de photo

Un autre site de de génération de photo : ici ou ici.

Bien sur il y a les classiques :




Ou encore ceci :





Mais mon préféré reste celle la :

Cette photo soulève plein de mystère .

Qui sont ces gens? , pourquoi des masques à gaz ? Sont ils des conspirateurs ou une police secrète.



vendredi 24 octobre 2008

Le shell non officiel de google

Voici à quoi ressemble le shell non officiel de google !
Site goosh.org

Goosh goosh.org 0.5.0-beta #1 Mon, 23 Jun 08 12:32:53 UTC Google/Ajax


Welcome to goosh.org - the unofficial google shell.

This google-interface behaves similar to a unix-shell.
You type commands and the results are shown on this page.

goosh is powered by google.

goosh is written by Stefan Grothkopp <grothkopp@gmail.com><grothkopp@gmail.com>
it is NOT an official google product!

Enter help or h for a list of commands.

Loading local settings...

guest@goosh.org:/web> help
help

commandaliasesparametersfunction
web(search,s,w)[keywords]google web search
news(n)[keywords]google news search
more(m)
get more results
blogs(blog,b)[keywords]google blog search
read(rss,r)read feed of url
feeds(feed,f)[keywords]google feed search
place(places,map,p)[address]google maps search
translate(trans,t)[lang1] [lang2] google translation
images(image,i)[keywords]google image search
video(videos,v)[keywords]google video search
clear(c)
clear the screen
wiki(wikipedia)[keywords]wikipedia search
help(man,h,?)[command]displays help text
cd
change mode
site(in) search in a specific website
open(o)open url in new window
go(g)open url
lucky(l)[keywords]go directly to first result
ls
[command]lists commands
addengine

add goosh to firefox search box
load
load an extension
settings(set)[name] [value]edit settings
gmail(mail)[compose]read & write mail in gmail *
login

login with your google account *
logout

log out of goosh *

- Enter green commands without parameters to change default mode.
- Anything that's not a command will search in current default mode.
- Aliases will expand to commands. Numbers will expand to corresponding search results.
- Use cursor up and down for command history.
- Enter keyword and hit the tab-key for tab-completion.
- Commands marked with * are experimental, use them with care and please report any bugs.


mercredi 22 octobre 2008

iptables et le NAT

Linux est livré avec un pare-feu intégré au noyau IPTABLES

Ce pare-feu est plus qu'une simple protection , il permet de faire du NAT ou du PAT.

Concernant le NAT :

Prenons l'exemple d'une machine devant servir de passerelle d'un réseau vers un autre .

CAS 1: Plusieurs machine doivent partager la même adresse IP de sortie.

On désire 'deguiser' (masquerading) une adresse entrante pour la mettre en conformité avec le réseau destinataire . On utilisera la syntaxe suivante:

iptables -A POSTROUTING -s 192.168.204.56 -o eth0 -j SNAT --to-source 10.200.2.99

(vérification par iptables -L -t nat )

CAS 2: Une machine veut sortir sur le réseau sur des adresses IP differentes en fonction de critères divers .

# Si connexion à l'application X (10.1.1.1) => NAT Source 10.10.10.10 (eth0:0)
iptables -t nat -A POSTROUTING -d 10.1.1.1/32 -o eth0 -j SNAT --to 10.10.10.10

# Si connexion à l'application Y (10.1.1.2) => NAT Source 10.10.10.11 (eth0:1)
iptables -t nat -A POSTROUTING -d 10.1.1.2/32 -o eth0 -j SNAT --to 10.10.10.11

dimanche 19 octobre 2008

Message d'erreur Rails en francais

Rails est un framework jeune (2004) et l'internalisation n'est pas la préoccupation première de l'équipe projet.
Voici un fichier à ajouter dans le réperoire config/initializer/

fichier : french_errors_localization.rb

module ActiveRecord
class Errors
@@default_error_messages.update( {
:inclusion => "n'est pas inclut dans la liste",
:exclusion => "est réservé",
:invalid => "est invalide",
:confirmation => "ne correspond pas à la confirmation",
:accepted => "doit être accepté",
:empty => "ne peut pas être vide",
:blank => "est requis",
:too_long => "est trop long (%d caractères maximum)",
:too_short => "est trop court(%d caractères minimum)",
:wrong_length => "n'est pas de la bonne longueur (devrait être de %d caractères)",
:taken => "est déjà prit",
:not_a_number => "n'est pas un nombre",
})

def full_messages
full_messages = []

@errors.each_key do |attr|
@errors[attr].each do |msg|
next if msg.nil?

if attr == "base"
full_messages << msg
else
full_messages << @base.class.localized_human_attribute_name(attr) + " " + msg
end
end
end

full_messages
end
end

class Base
class << self
def localized_human_attribute_name(attr) #:nodoc:
attr.humanize
end
end
end
end

module ActionView #nodoc
module Helpers
module ActiveRecordHelper
def error_messages_for(object_name, options = {})
options = options.symbolize_keys
object = instance_variable_get("@#{object_name}")

unless object.errors.empty?
content_tag("div",
content_tag(
options[:header_tag] || "h2",
"#{pluralize(object.errors.count, "erreurs")} empêche(nt) cette forme d'être sauvegardée"
) +
content_tag("p", "Veuillez vérifier les informations et apporter les modifications aux champs suivants :"
) +
content_tag("ul", object.errors.full_messages.collect { |msg| content_tag("li", "Le champ " + msg) }),
"id" => options[:id] || "errorExplanation", "class" => options[:class] || "errorExplanation"
)
end
end
end
end
end

mercredi 8 octobre 2008

Lego, record du monde

Avis aux petits joueurs de lego :
DSCN0439

Un record vient d'etre battu : 460 000 briques , 30 metres de haut.
3000 personnes ont participé à cette construction en Australie.