IT Wars
Les guerres quotidiennes d'un Responsable Informatique

Acheter un téléphone sous Android pour scripter en Perl

  • geeks
  • professionnel
J'utilise depuis quelques années déjà un téléphone Blackberry, qui est vraiment très utile dans un cadre professionnel, en particulier grace au fait qu'il reçoit les mails en temps réel et que son clavier est vraiment top. Mais, le moins que l'on puisse dire est qu'il n'est pas vraiment fun, les applications genre Facebook ou AppWorld sont archi-bugée !

L'iPhone est quant à lui hyper-fun, ça tourne, y'a plein d'application payante, mais pour développer il faut MacOS l'OS des chevelus et moi je suis chauve :)

Android à l'air hyper-fun, ça tourne aussi, ça prend des photos, .... Et en plus comme c'est un système ouvert, on peut en faire ce qu'on en veut ... Et là j'ai trouvé mon bonheur : les scripts Python et Lua tournent dessus et bientôt les scripts Perl !! Que du bonheur ?!

sources Google
hello world
Par admin, le 25 Aou 2009 à 12:39 Dev 0 commentaire

Mettre a jour son status Facebook depuis Twitter

  • geeks
  • internet
Maintenant que je sais mettre à jour mon status Twitter depuis mon blog, j'aimerai mettre à jour mon status Facebook par la même occasion ... Là pas besoin de programmation : il suffit d'aller sur Facebook à l'adresse : http://apps.facebook.com/twitter


Ca installe l'application Twitter dans FB, puis quelques autorisations plus tard, apparait un bouton qui vous indique "Allow Twitter To Update Your FB Status" ... Et hop !


Maintenant, à chaque fois que je fais un nouvel article sur mon blog, mon status Twitter est mis à jour et Facebook est mis à jour par Twitter.

Vincent RABAH est à fond dans la blogosphère :)


Par admin, le 24 Aou 2009 à 17:08 Dev 0 commentaire

Twitter avec mypluxml

  • geeks
  • internet
Je voulais améliorer mypluxml (qui propulse ce blog) pour poster directement dans Twitter le titre et l'url de chaque nouvel article. Je débute en php, c'est donc pas très propre mais cela fonctionne. J'aurai préféré réaliser ça sous forme de plugin mais le temps et les compétences me manquaient.

Au début du fichier /core/lib/class.admin.php il faut ajouter :

require(PLX_DOC.'lib/twitter.class.php');


Puis j'ai ajouté les lignes suivantes après la ligne 90 :

if(write(PLX_XML.$xml,$filename)){
tags::editTags($data['tags'], $data['old_tags']);
                           
   // Ajouté par Vincent RABAH
    $VR_pattern='/[0-9]{4}\.[0-9]{3}\.(.*)\.xml/';
      preg_match($VR_pattern,$filename,$VR_title);
      $VR_title[1] = str_replace('-', ' ', $VR_title[1]);
      $VR_pattern='/\d(\d\d\d)\.[0-9]{3}\.(.*)\.xml/';
      preg_match($VR_pattern,$filename,$VR_url);
      $VR_message = "Blog update : $VR_title[1]\nhttp://www.it-wars.com/?$VR_url[1]-$VR_url[2]";
      $VR_twitter = new Twitter('username', 'password');
      $VR_status = $VR_twitter->send($VR_message);
   // Ajouté par Vincent RABAH

  return array($file, 'Article créé');
Cette classe Twitter ce télécharge a cette adresse :

http://download.nettephp.com/twitter.zip

Voilà
Par admin, le 24 Aou 2009 à 14:45 Dev 2 commentaires

Script ruby pour récupérer les videos sur Vimeo avec ProgressBar

  • geeks
  • internet
Il y a quelques temps je poposais un petit script pour télécharger des vidéos directement sur le site de Vimeo et les stocker sur son disque dur. Comme le temps de téléchargement peut être très long, j'y ai ajouté une progressbar !

Un petit
gem install progressbar
et roulez (J'ai testé ce script sous Linux et Windows).
#!/usr/bin/ruby

require 'rubygems'
require 'progressbar'
require 'net/http'

if ARGV.size < 1
puts "usage vimeo.rb <id_video>"
exit 1
else
id = ARGV[0]
Net::HTTP.start('www.vimeo.com') {|http|
req = Net::HTTP::Get.new("/moogaloop/load/clip:#{id}", nil)
response = http.request(req)
/<caption>(.*)<\/caption>/.match(response.body)
title = $1
/<request_signature>(.*)<\/request_signature>/.match(response.body)
signature = $1
/<request_signature_expires>(.*)<\/request_signature_expires>/.match(response.body)
signatureExp = $1
puts title
req = Net::HTTP::Get.new("/moogaloop/play/clip:#{id}/#{signature}/#{signatureExp}/?q=hd", nil)
http.request(req) { |response|
/(mp4|flv)/.match(response['location'])
ext = $1
/http:\/\/(.*\.vimeo\.com)(\/.*)/.match(response['location'])
Net::HTTP.start($1) {|http|
req = Net::HTTP::Get.new($2)
alreadyDL = 0
http.request(req) { |response|
pBar = ProgressBar.new(title,100)
size = response.content_length
File.open("#{title}.#{ext}",'w') {|file|
response.read_body {|segment|
alreadyDL += segment.length
if(alreadyDL != 0)
aPercent = (alreadyDL * 100) / size
pBar.set(aPercent)
end
file.write(segment)
}
pBar.finish
}
}
}
}
}

end
Par admin, le 24 Jui 2009 à 15:51 Dev 0 commentaire

Script ruby pour récupérer les videos sur Vimeo

  • geeks
  • internet
Ce weekend étant particulièrement chaud, je suis resté un peu dans la maison pour profiter de la fraicheur.
Mettant a profit cette période, je me suis lancer dans la réalisation un script pour télécharger des vidéos de bodyboard sur Vimeo.
Après une brève analyse, je suis arrivé à ce bout de code qui enregistre la vidéo demandée dans le répertoire courant :
#!/usr/bin/ruby

require 'net/http'

if ARGV.size < 1
    puts "usage vimeo.rb <id_video>"
    exit 1
else
    id = ARGV[0]
    Net::HTTP.start('www.vimeo.com') {|http|
       	req = Net::HTTP::Get.new("/moogaloop/load/clip:#{id}", nil)
       	response = http.request(req)
       	/(.*)<\/caption>/.match(response.body)
	title = $1
	/(.*)<\/request_signature>/.match(response.body)
	signature = $1
	/(.*)<\/request_signature_expires>/.match(response.body)
	signatureExp = $1
	req = Net::HTTP::Get.new("/moogaloop/play/clip:#{id}/
#{signature}/#{signatureExp}/?q=hd", nil) http.request(req) { |response| puts response['location'] /(mp4|flv)/.match(response['location']) ext = $1 /http:\/\/(.*\.vimeo\.com)(\/.*)/.match(response['location']) Net::HTTP.start($1) {|http| req = Net::HTTP::Get.new($2) http.request(req) { |response|
 File.open("#{title}.#{ext}",'w') {|f|
f.write(response.body)
} } } } } end
Par admin, le 28 Jun 2009 à 17:43 Dev 6 commentaires

Script création de dns Active Directory 2008

  • professionnel
  • internet
  • windows
Lors de cette migration vers Active Directory 2008, je vais aussi en profiter pour migrer les DNS et DHCP vers Windows. Ayant environs 200 ip fixes a gérer tant en interne que sur les différentes DMZ, je ne me voyais pas les ajouter une à une et créer les "reverses" ... Donc, scriptons !
Pour cette migration j'ai extrais de mon DNS actuel sous Linux les informations que je place dans un fichier csv de la forme :
adresse-ip;nom

Le script quant à lui lit le fichier, crée les containers des reverses DNS et insère les enregistrements. Ce script perl fait appelle à la bibliothèque Win32::OLE :

#!/usr/bin/perl -w
use strict;
use utf8;
use Encode;
use Win32::OLE;

$Win32::OLE::Warn=2;
my $strServer="ad1.maboite.com";
my $dom="maboite.com";
my $objDNS=Win32::OLE->GetObject("winMgmts:\\\\$strServer\\root\\MicrosoftDNS");
my $objDNSZone=$objDNS->Get("MicrosoftDNS_Zone");
my $objRR=$objDNS->Get("MicrosoftDNS_ResourceRecord");

open FILE, "<intranet.csv";
my @intranet=<FILE>;
close FILE;

foreach my $line (@address) { my ($ip,$add)=split /;/,$line; chop $add; print "$ip -> $add\n"; my ($a,$b,$c,$d)=split /\./, $ip; my $fAdd="$add.$dom. IN A $ip"; my $arpa="$c.$b.$a.in-addr.arpa"; my $rAdd="$arpa IN PTR $add.$dom"; my $ret = $objDNSZone->CreateZone($arpa, 0 , True); my $strNull = $objRR->CreateInstanceFromTextRepresentation( $objDNSZone->Name, $dom, $fAdd, $objOutParam); $strNull = $objRR->CreateInstanceFromTextRepresentation( $objDNSZone->Name, $arpa, $rAdd, $objOutParam); }
Par admin, le 29 Avr 2009 à 14:55 Dev 1 commentaire

Script de migration Active Directory 2008

  • applications
  • professionnel
  • windows
Je vous propose un petit script pour faire des ajouts en masse dans l'Active Directory d'un Windows 2008 Server Core depuis un fichier csv. Je suis actuellement dans une phase de migration de mon serveur d'annuaire OpenLDAP vers un AD pour à terme mettre en oeuvre Exchange 2007.

Dans le fichier csv, sur chaque ligne on trouve les informations suivantes :

prenom;nom;tel;cphone;poste;email;job;service
Ce script a été fait rapidement mais fonctionne parfaitement, les messages d'erreur viennent uniquement de la dernière ligne (-disable no) car la GPO de base exige un mot de passe.

#!/usr/bin/perl -w

use strict;
use utf8;
use Encode;

open FILE, "<intranet.csv";
my @intranet=<FILE>;
close FILE;

foreach my $line (@intranet) {
my($prenom,$nom,$tel,$cphone,$poste,$email,$job,$service)=split /;/, $line;
my $id=(split /@/, $email)[0];
print "inserting $id\n";
chop $service;
if($cphone eq "") {
$cphone=" ";
}
`dsadd ou \"OU=MaComp,DC=france,DC=Compagnie,DC=com\"`;

`dsadd ou \"OU=$service,OU=MaComp,DC=france,DC=Compagnie,DC=com\"\
-desc \"$service Team\"`;

`dsadd user \
\"CN=$prenom $nom,OU=$service,OU=MaComp,DC=france,DC=Compagnie,DC=com\"\
-fn \"$prenom\" \
-ln \"$nom\" \
-upn \"$id\@france.Compagnie.com\" \
-display \"$prenom $nom\" \
-tel \"$tel\" \
-email \"$email\" \
-dept \"$service\" \
-company \"Ma Compagnie France\" \
-mustchpwd yes \
-samid \"$id\" \
-office \"France\" \
-title \"$job\" \
-mobile \"$cphone\" \
-desc \"Ma Compagnie France\" \
-disabled no`;
}

Le seul manque, je n'ai pas réussit à mettre un mot de passe par défaut ... Donc, si vous avez la solution, je suis preneur !
Par admin, le 28 Avr 2009 à 17:31 Dev 0 commentaire

Installer des ruby gem sous debian et ubuntu

  • debian
  • linux
  • geeks
Vous voulez installer des gems ruby sur debian ou ubuntu mais avec un aptitude install ? J'ai trouvé le site DebGem, il permet en ajoutant une source.list de faire le plus simplement du monde une install de gem, par exemple pour installer rail il vous faut juste faire
aptitude install rail

Par Vincent RABAH, le 11 Mar 2009 à 21:45 Dev 1 commentaire

Page 1 sur 2 | suivante > | >>

20 ans d'expériences

Je m'appelle Vincent RABAH, je suis responsable informatique, achat et batiment dans une entreprise américaine basée à Rennes.
Je suis passionné par la virtualisation, les environnements linux, windows, solaris et toutes les problématiques qui entourent le PRA.
RESUME DE CARRIERE.
Mon évolution de carrière.

Mon voeux : TRAVAILLER AU BORD DE LA MER !
J'ADORE LE SUD-OUEST !

Menu / Catégories

  • Accueil
  • Virtualisation
  • Gouvernance
  • Moi
  • Ecologie
  • Dev
  • CV
  • Trucs et astuces
  • Green IT
  • Céline (Nouvelle-Zelande)
  • PowerShell pour les NULS
  • Basheries et vimZ
  • Ruby CookBook
  • Woork
  • Wiki de l'auto-hébergement
  • ExchangePedia (une mine Exchange Server)
  • Fil Rss
  • Fil Rss 2.0
  • Fil Atom

Un peu de social

Commentaires

  • 14/11/2009: Le Greener IT avance à l'Ouest
    Bonjour Vincent,
    Toujours à l'...
  • 29/10/2009: Conférence Green-IT à la CCI de RENNES
    :( Moi qui pensais que les Kiwis etaient green com...
  • 29/10/2009: Conférence Green-IT à la CCI de RENNES
    Ca c est loin d etre gagne. La NZ est loin derrier...

Nuage de tags

 blackberry  consommation électrique 
 css  debian 
 ecologie  geeks 
 hacking  internet 
 job  laptop 
 linux  moi 
 politique  professionnel 
 theme  vacances 
 virtualisation  wifi 
 wireless 

J'aime

Best Green Blogs

Pensées

Baudelaire : "aucune tâche n'est longue sauf celle que l'on ose commencer. Elle devient un cauchemar."

Ce blog

Ce blog est propulsé par myPluxml, il est hébergé sur un PC chez moi qui est équipé d'un processeur VIA C3 avec 256Mo de RAM et 20Go de disque dur.

Vincent RABAH.