Petite class pour Twitter

Aujourd’hui j’ai entrepris une petite tâche qui pourra dans un avenir proche être bien bénéfique.
J’ai décidé de commencer la création d’une petite bibliothèque de class php.
Libre à vous de les copier, et les utiliser à votre convenance (envoyez moi juste un mail que je sache que vous les utilisez !).
On va donc commencer par une petite class toute simple permettant de récupérer un flux twitter, en POO.

class listingTweets {
  public function listeTweets($urlTwitter, $nbTweets){
    $flux	= '';
    $dom 	= new DOMDocument();

    if(!$dom ->load($urlTwitter)) {
      return die('Erreur de chargement du XML');
    }

    $itemList       = $dom->getElementsByTagName('item');
    $thisObjectName = get_class($this);
    $retour		= array();
    $i 		= 1;
    foreach($itemList as $item) {
      if($i<= $nbTweets ){
        $entree	        = new $thisObjectName();
        $entree -> post = $item->getElementsByTagName('title') -> item(0) -> nodeValue;
         $retour[] 	= $entree;
        $i++;
      }
    }
    return $retour;
    }
}

Et pour l’utilisation, c’est assez simple, vous faites un include de la class puis pour récupérer les 3 derniers tweets du flux $flux :

$listing 	= new listingTweets();
$liste		= $listing -> listeTweets($flux, 3);  // $flux : URL du flux twitter / 3 : nombre de posts à afficher
foreach ($liste as $tweet){
	echo $tweet -> post.'<br />'; // Jeu avec les post, ici, un simple retour à la ligne à chaque nouveau post
}

streamer une video Live via red5

Nous avons donc vu comment monter un serveur de streaming Red5. Il reste donc à l’exploiter !
Pour cela, il va nous falloir un moyen d’envoyer un flux vidéo, qui sera retransmis via Red5, et également un moyen d’accrocher ce flux.

Envoi du flux vidéo
Red5 étant un serveur de type Flash Média Server nous allons utiliser FlashMediaLiveEncoder d’Adobe. Il va donc falloir le télécharger depuis le site d’Adobe. Le logiciel est gratuit.
Après l’installation, il va falloir le configurer : nous allons choisir le preset LowBandwidth (150 Kbps) – VP6.
Par défaut, le fux de votre webCam sera utilisé pour le streaming.
Reste donc à parametrer la cible du flux :
Cochez « Stream to Flash Media Server »
Dans le champ « FMS URL », indiquez l’adresse de votre FMS qui sera du type : rtmp://IP DE VOTRE SERVEUR/oflaDemo
enfin, indiquez le nom du stream dans le champ « Stream » (par ex: livestream).
Il ne vous reste plus qu’à cliquer sur « Connect » pour connecter le flux vidéo à votre serveur Red5.
Une fois le flux créé et le serveur Red5 connecté, il ne reste plus qu’à le lire.

Lecture du flux vidéo
Pour lire le flux vidéo live que nous avons appelé « livestream », nous allons développer un lecteur vidéo en AS3 sous flash.
Pour cela, on compile le script suivant :

var nomStream = "livestream";
var largeurVideo = 176;
var hauteurVideo = 144;

var nc:NetConnection;
var ns:NetStream;
var lecteurStream:NetStream;
var lecteurVideo:Video;

nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
nc.connect("rtmp://IP DE VOTRE SERVEUR/oflademo");

function onNetStatus(event:NetStatusEvent):void {
	if (event.info.code=="NetConnection.Connect.Success") {
		affichageStreaming();
	}
}

function affichageStreaming():void {
	lecteurStream =	new NetStream(nc);
	lecteurStream.play(nomStream);
	lecteurVideo = new Video(largeurVideo,hauteurVideo);
	lecteurVideo.attachNetStream(lecteurStream);
	addChild(lecteurVideo);
}

Normalement, vous avez tout ce qu’il faut pour streamer du live via Red5 !
Reste plus qu’à faire des tests pour savoir ce que va pouvoir encaisser votre serveur et surtout le nombre d’internautes simultanés que permettra votre bande passante…

De SnowLeopard à Lion

Ce week-end, j’ai entrepris de basculer mon MacBook Pro de SnowLeopard vers Lion. Ça a l’air d’une idée simple à mettre en place ? Et bien détrompez-vous…
Comme cette manipulation m’a pris quelques heures (voir jours), je vous tire les grandes lignes, au cas où vous souhaiteriez faire de même.
Après une sauvegarde de mes dossiers personnels sur un NAS (qui m’a pris des heures au vu du volume des données à transférer), j’ai réinstallé Leopard.
Le problème de Leopard, c’est qu’il n’intègre pas App Store, du coup, j’ai fait une mise à jour complète de l’OS. Mais même à jour, Leopard ne propose pas d’App Store. Du coup, j’ai installé SnowLeopard.
Une fois SnowLeopard installé, il faut faire la mise à jour pour avoir le « droit d’acheter » Lion sur App Store. Une fois acheté, j’ai installé Lion… au bout de 3 OS installés et 2 mises à jour complètes, la machine est prête à récupérer les fichiers préalablement transférés sur le NAS.

Et là, énorme surprise, Lion ne prend pas en charge  le protocole SAMBA… Du coup, mon NAS D-Link DNS323 n’est plus visible depuis Lion ! Après avoir fouillé sur 2 ou 3 sites, j’ai fini par trouver quelques pistes.Alors voici comment mettre en place un accès au D-LINK DNS323 via le protocole AFP (qui est le nouveau protocole utilisé par Lion).

1 – Il va vous falloir accéder à votre NAS  via Telnet. Celui-ci ne le permettant pas, il va vous falloir télécharger fun_plug et fun_plug.tgz. Une fois téléchargés, vous les collez dans le dossier Volume de votre NAS. Enfin, vous redémarrez votre NAS pour terminer cette première étape.
2 – Une fois redémarré, un dossier FFP sera automatiquement créé, et vous pourrez accéder via Telnet à votre NAS. Ouvrez alors votre terminal, et connectez vous au NAS via telnet.

telnet <ip de votre NAS>

Ensuite, suivez le tutorial présent à cette adresse

3 – Enfin, connectez vous au NAS via le Finder : Aller > Se connecter au serveur…

Il ne vous reste plus qu’à installer l’ensemble de vos logiciels etc. Après donc quelques heures, vous devriez êtres en mesure de travailler de nouveau sur votre machine !

© Karlos Lomsky - Fotolia.com

Encodeur Octal

Ce matin, un petit billet « cadeau ». En effet, lors de développements en JavaScript, je perdais pas mal de temps à encoder à la main mes caractères accentués pour des « Alert(); » par exemple. J’ai donc décidé d’en perdre un peu plus hier, mais pour en gagner beaucoup demain…
J’ai développé un petit module d’encodage de caractères accentués en Octal (exploitable en javascript)…
Le module est basé sur des array() et un simple string_replace() en Php… Simple mais efficace.
Vous le trouverez à cette adresse, pour que, comme moi, vous arrêtiez de perdre du temps avec ce genre de détails,  pour vous consacrer aux choses plus importantes dans un développement !

Module FeedBack en JS

Pour aujourd’hui, je vais vous offrir un petit module en jQuery de ma confection.
En effet, j’ai développé, suite à une demande un module de FeedBack.
Rien de bien compliqué, le principe est une languette à droite de l’écran (pas trop intrusive), qui se dissimile lors du scroll (pour pas gêner l’internaute).
Au click sur cette languette, un formulaire se déploie avec un textarea permettant d’envoyer un commentaire, un message, au développeur du site, afin d’améliorer ce dernier.
J’ai simplifié au maximum le script, pour que vous n’ayez qu’à linker ce dernier (et la bibliothèque jQuery évidement).
Donc :
1- Vous décompressez le dossier feedback sur votre serveur
2- Vous ouvrez le fichier feedback.js et vous le modifiez comme indiqué (2 paramètres à indiquer)
3- Vous ajoutez les 2 lignes de codes dans le header (dans le header) :

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="feedback/feedback.js"></script>


Le dossier de téléchargement se trouve ici
.

Enfin, ce script est visible sur ce site (pour quelques temps encore).

Un peu de jQuery


Suite au développement d’un nouveau projet, j’ai eu besoin de créer un compte à rebours…
Du coup, je me suis dis que cela pourrait vous servir, alors, place au code.

Dans un premier temps, on link la bibliothèque jQuery :

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"></script>

Ensuite, voici la partie en jQuery à insérer dans entre <head></head> ou dans un JS externe  :

var dateActuelle = new Date();
var dateFin = new Date("Jul 29 2011 15:00:00");

var nombreJours = Math.floor((dateFin - dateActuelle) / 86400000);
var nombreHeures = Math.floor((dateFin - dateActuelle) / 3600000 - (24 * nombreJours));
var nombreMinutes = Math.floor((dateFin - dateActuelle) / 60000 - (24 * 60 * nombreJours) - (60 * nombreHeures));
var nombreSecondes = Math.round((dateFin - dateActuelle) / 1000 - (24 * 60 * 60 * nombreJours) - (60 * 60 * nombreHeures) - (60 * nombreMinutes)); 

if(nombreJours > 1) { nombreJours = nombreJours+' jours, '; }else{ nombreJours = nombreJours+' jour, '; }
if(nombreHeures > 1) { nombreHeures = nombreHeures+' heures, '; }else{ nombreHeures = nombreHeures+' heure, '; }
if(nombreMinutes > 1) { nombreMinutes = nombreMinutes+' minutes, '; }else{ nombreMinutes = nombreMinutes+' minute, '; }
if(nombreSecondes > 1) { nombreSecondes = nombreSecondes+' secondes '; }else{ nombreSecondes = nombreSecondes+' seconde '; }

var texte = "Il reste "+nombreJours+""+nombreHeures+""+nombreMinutes+""+nombreSecondes+" avant l'ouverture du site."

$('.decompte').html(texte);

Il ne vous reste plus qu’à integrer un balise span dans votre site :

<span class="decompte">Calcul du décompte</span>

Alea jacta est

Aujourd’hui, je vais vous parler d’un petit module ajouté au projet YouAreLucky.
En effet, j’ai développé une petite page permettant de lancer des dés.
Le développement est assez simple :
- Création dynamique des dés, en Php.
- Assignation des valeurs aux équivalents des faces, en Php.
- Lancé automatique, généré en Javascript.

Le hasard est donc de mise, alors faites vos jeux !

Une version iPhone va bientôt pointer le bout de son nez, parce que l’on a rarement des dés sous la main,
et en soirée, on en a besoin quelques fois.

YouAreLucky.fr

Comme vous avez pu le remarquer, depuis hier soir, un encart de pub pour youarelucky.fr vient de faire son apparition sur le blog.
En fait, il s’agit d’auto-promo puisque j’ai développé un module de tirage au sort.
En effet, le blog « Les Fleurs Addicts » m’a posé cette question : « Où peut-on effectuer un tirage au sort sur le net ? ».
La question est toute bête, mais amène plusieurs réflexions :

1 – Il faudrait pouvoir bénéficier d’un site qui permette de choisir le nombre de gagnants.
2 – Il faudrait afficher la date du tirage au sort pour prouver que celui-ci a bien été effectué au moment annoncé.
3 – Il faudrait pouvoir télécharger une image sur laquelle figure les gagnants (et les perdants éventuellement).

Bref, j’ai donc tenu compte des différentes questions posées ci-dessus, pour vous proposer un nouveau service de tirage au sort pour votre blog.
Ce site peut être en perpétuelle création, puisque j’ai pas mal d’idées de développements sur ce sujet…

En espérant que vous en ferez bon usage.

TextField Splitter

Au menu aujourd’hui, une petite class que j’ai monté en AS3, qui vous permettra d’animer du texte, façon explosion.
Pour cela, rien de bien compliqué, il vous suffira de télécharger la class à cette adresse, puis de l’appeler comme suit :

import textFieldSpliter;

var chaineCaracteres:String = "Graph'Pix textFieldSpliter";
var tailleCaracteres:int	= 15;
var couleurCaracteres:String= "3299FF";
var tempsTween:int		= 3;
var delayDebut:int		= 3000;

var SplitArea:textFieldSpliter = new textFieldSpliter(chaineCaracteres,tailleCaracteres,couleurCaracteres,delayDebut,tempsTween);
addChild (SplitArea);

Et voila le résultat :

 

Graph'Pix YouAreLucky