mercredi 30 juillet 2008

Extraction de la bande son d'un clip vidéo

Il est parfois pratique d'extraire que la bande son d'une video. Bien sur la qualité du son ne sera pas la même qu'un morceau 'ripé' à partir d'un cd audio. Cela rend toutefois service pour des morceaux sans ambition. ATTENTION de bien respecter les droits d'auteur.

Tout d'abord il faut repérer le clip vidéo ou la vidéo sur un site comme daily motion ou youtube.
Il faut effectuer un copie/coller du lien de la vidéo vers le site : force-download .

Ce site va convertir en ligne la vidéo en fichier au format flv (flash vidéo ) .
Puis on lancera une deuxième conversion en activant l'onglet 'convertir' du menu de gauche.
Le format final sera choisit par une liste défilante , le format le plus usité étant 'mp3' . A la fin du processus on obtiendra sur son disque dur un fichier au format MP3.
(astuce de guillaume et benjamin)



Good hacking

lundi 28 juillet 2008

Vacances USA 2008 : le retour

Bon, me voici de retour après trois semaines aux USA.
Le circuit :
  • New york (5 jours) puis voiture jusqu'a Boston
  • Boston (3 jours) :trop court puis avion pour Chicago
  • Chicago (4 jours) puis depart en voiture pour Holland (bord Est du lac michigan)
  • A Holland en raison de la météo , on renonce a monter plus au nord vers Traverse city. On choisit d'aller vers l'est à Toronto au Canada.
  • Toronto : (2 jours) puis un descend aux chutes du niagara
  • Niagara (1 jours) puis retour à New york en passant par : Syracuse et Albany
  • Départ de JFK

Toutes les photos sont sur flikr : ici.

En voici une sélection :
Dans central park


Sur le pont de Brooklyn , une promenade de presque 5km.


A Boston , sur les marches d'Harvard

Chicago
Les garcons devant l'image de francoise Cabrini , fondatrice de leur Lycée auquel ils ont fait honneur en décrochant tous les deux 16 à l'oral du bac français.




Le meilleur du voyage pour moi :Boston
  • Boston et ses librairies ouvertes la nuit ,avec fauteuil et café .
  • Boston avec les déjeuners au Quincy market.

Pour les enfants: Les chutes du niagara

mardi 24 juin 2008

Fete de la musique 2008 chez Yves et Marie

Invités chez Marie et Yves cette fête était particulière par la place occupée par les jeunes artistes. La nouvelle génération avait pris le micro et les instruments pour faire une brillante démonstration de leurs talents.
La soirée était réussie aidée en cela par la température estivale.
Quelques photos :









Et surtout une jeune canadienne nous a chanté :Jeff Buckley's Hallelujah

Cette chanson entendue dans un épisode du Docteur House est renversante , mais cette jeune fille l'a interprétée de manière encore plus inspirée:



fetemusique2008-4
envoyé par germanlinux


Pour les photos j'ai utilisé Flickr ce site permet de déposer des albums photos pour partager les images.
les photos ici

vendredi 20 juin 2008

cockpit d'un A380 en 3 D

Un superbe panaramique animé de l'interieur du cockpit d'un A380 en 3 D.

LE lien est ici.

Une capture d'écran : on distingue en bas de l'écran des boutons pour commander le déplacement de la caméra.

mardi 17 juin 2008

Comment verifier l'état de replication de syncrepl ?

Pour connaitre le niveau de replication de syncrepl , il faut interroger l'attribut 'contextCSN' du maitre et du replicat

Voici un exemple de programme qui réalise cette opération :
#! /usr/bin/perl
### by germanlinux
use strict;
use Date::Calc qw(Delta_DHMS);
use Net::LDAP ();
## mes fonctions
sub lookup_csn {
my ($ldap, $server_name) = @_;

my $search = $ldap->search(
scope => 'base',
base => $server_name->{base},
filter => "(objectclass=*)",
attrs => [ 'contextCSN' ]
);

$search->code() and do {
print STDERR "Error: failed to execute search on
$server_name->{host}: "
. $search->error() . " (" . $search->code() .
")\n";
exit(1);
};

my $entry = $search->shift_entry() or do {
print STDERR "Error: search on $server_name->{host} failed to find
entry\n";
exit(1);
};
my $csn = $entry->get_value('contextCSN');
if (!defined($csn)) {
print STDERR "Error: no contextCSN attribute found in
$server_name->{host} entry\n";
exit(1);
}
return $csn;
}

my $ldap_master = Net::LDAP->new($master->{host}, ) or do {
print STDERR "Error: failed to connect to LDAP master: $@";
exit(1);
};

my $ldap_replicat = Net::LDAP->new($replicat->{host},port => $replicat->{port},) or do {
print STDERR "Error: failed to connect to LDAP replicat: $@";
exit(1);
};

my $msg1 =$ldap_master->bind(dn =>$master->{dn} ,
password => $master->{password} ) ;

my $msg2 =$ldap_replicat->bind(dn =>$replicat->{dn} ,
password =>$replicat->{password} ) ;

my $master_csn = lookup_csn($ldap_master,$master);
my $replicat_csn = lookup_csn($ldap_replicat, $replicat);

if ($master_csn eq $replicat_csn )
{ print "0 - 0\n";

}
else {

my $master_csn_date=$master_csn;
my $replicat_csn_date =$replicat_csn;
$master_csn_date=~ s/Z.*//;
$replicat_csn_date =~s/Z.*//;
(my $y1,my $m1,my $d1,my $h1,my $mm1,my $s1) = $master_csn_date=~/(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/;
(my $y2,my $m2,my $d2,my $h2,my $mm2,my $s2) = $replicat_csn_date=~/(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/;
(my $dt,my $ht,my $mmt,my $st) = Delta_DHMS (
$y2,$m2,$d2, $h2, $mm2,$s2,
$y1,$m1,$d1, $h1, $mm1,$s1,
);

print "$master_csn_date - $replicat_csn_date\n";
my $deltamin = ($ht * 60) + $mmt ;
print "$dt - $ht - $mmt - $st\n";
print "$deltamin minutes\n";
}



Le résultat du programme est de la forme :

20080617144859 - 20080617140355
0 - 0 - 45 - 4
45 minutes

Comment mesurer la vitesse de propagation de l'information ?

Je suis souvent amené à mesurer la vitesse de propagation de l'information au travers des annuaires.
Pour cela j'ai un programme qui réalise les opérations suivantes:

a) Modifier une entrée de l'annuaire maitre LDAP
b) Armer un timer
c) Interroger à intervalle régulier l'annuaire replicat jusqu'a obtenir l'information à jour.

Voici le programme :
#!/usr/bin/perl -w

### by germanlinux

use Net::LDAP;
use Time::HiResi qw( usleep ualarm gettimeofday tv_interval) ;
my $master= { 'host' => 'ip.ip.ip.ip' ,
'dn' =>'dn bnd' ,
'password' => 'password' ,
'base' => 'base',
'filter' =>'filtre'
};
my $replicat= { 'host' => 'ip.ip.ip.ip' ,
'dn' =>'dn bnd' ,
'password' => 'password' ,
};
#### first bind to master ########
my $master_ldap_connection = Net::LDAP->new($master->{host});
my $msg =$master_ldap_connection->bind($master->{dn} ,
$master->{password} ) ;
my $rech = $master_ldap_connection->search (
base =>$master->{base},
filter =>$master->{filter} ,
);
my $retour= $rech->entry(0) ;
exit if !$retour;
my $dn= $retour->dn;
#### armement du chronometre
my $change=time();
my $t0= [gettimeofday];
#### modification ###########
my $modif = $master_ldap_connection->modify($dn,
replace => { 'unelettre' => $change} );
$master_ldap_connection->unbind;
############# boucle de calcul de temps de propagation ##############
my $not_found=1;
while ($not_found) {
my $replicat_ldap_connection = Net::LDAP->new($replicat->{host});
my $msg =$replicat_ldap_connection->bind($replicat->{dn} ,
$replicat->{password} ) ;
my $compare = $replicat_ldap_connection->compare ($dn,
attr => 'unelettre' ,
value => $change,
);
$not_found =0 if ($compare->code == 6 ) ;
$replicat_ldap_connection->unbind;
sleep(5);
}
## calcul t1-t0;
my $delta = tv_interval ($t0);
print "Vitesse :$delta\n";

Ce soir (mardi 17/06) comment devenir champion du monde ?

Je ne parle pas foot , mais d'ordinateur . Ce soir vers 19h la version 3 de firefox sera disponible.
A cette occasion , il vous est demandé d'aider à battre un records mondial de téléchargement.

Donc ce soir et demain rendez vous ici.

Les nouveautés :
*Une couleur dans la barre d'adresse en fonction de la classification du site.
*Une 'super barre' ( awesome bar) d' adresse .


Voila , il faut l'essayer