Animer une webradio à plusieurs avec SAM Broadcaster : la co-animation via VoIP

Vous avez suivi le tutoriel pour créer une webradio avec SAM Broadcaster et vous souhaitez animer une émission à plusieurs ?

SAM devrait proposer cette fonctionnalité dans une prochaine version mais en attendant, force est de constater qu’il faut utiliser des moyens quelque peu détournés…

Vous aurez besoin de 2 répartiteurs audio miniJack stéréo 3,5 mm mâle/2 miniJack stéréo 3,5 mm femelle ainsi que d’un câble audio miniJack stéréo 3,5 mm mâle/minJjack stéréo 3,5 mm mâle (20cm suffisent).

Cette installation n’est à faire que sur la machine qui diffuse bien évidemment. L’opération demande à peine 5 minutes.

Principe de fonctionnement

Nous allons installer une solution gratuite de VoIP comme Skype afin de mettre en relation les différents animateurs de l’émission.

Chaque animateur communiquera donc via Skype et la sortie audio des échanges sera redirigée vers l’entrée micro, faisant ainsi partager les interactions des animateurs avec les auditeurs.

Lire la suite

Protéger une newsletter des spammeurs

Antispam

Après avoir pollué nos boîtes mail de scams et de tentatives de phishing – et certains sites de spywares et autres malwares – voici que les spammeurs ont trouvé une nouvelle cible : les newsletters.

Cette tendance semble avoir démarré il y a quelques semaines : la newsletter de SkyMinds.Net subit par exemple une dizaine d’attaques par jour.

Le principe

Les spammeurs semblent vouloir corrompre les bases de données des newsletter en les populant avec des emails erronées (nom d’utilisateur ou domaine inexistant).

Finalement, ils ont repris le principe de wpoison mais contre nos bases de données cette fois !

Le but de cette manoeuvre, à part la surcharge des serveurs mails et des filtres anti-spam, reste relativement obscur. Ils n’ont à priori rien à gagner ainsi.

Se protéger

Si vous gérer votre lettre d’information, vous risquez d’être la cible de ces spammeurs. Il existe plusieurs manières de s’en protéger.

Vérifier l’adresse email avant l’insertion dans la base de données : solution écartée car coûteuse en ressources.

En effet, votre script doit vérifier le nom de domaine puis l’existence de l’utilisateur sur le domaine. La requête peut ne pas aboutir (time-out) et votre possible souscripteur aura quitté votre site devant la lenteur d’exécution.

Valider et insérer l’adresse dans la base dès l’inscription. C’est la solution retenue ici pour son efficacité et sa facilité d’utilisation.

Validation d’adresse email pour une newsletter

Prenons l’exemple de la newsletter de SkyMinds.Net qui utilise plusieurs routines afin de vérifier que la base données est bien peuplée d’adresses emails légitimes.

L’adresse est ajoutée directement à condition qu’elle soit correctement formée. Un mail est alors envoyé au visiteur afin qu’il confirme son inscription. Sans aucun geste de sa part dans les 3 jours, l’adresse est supprimée.

Vérification de la bonne formation de l’adresse email :

/* 
* Script Validation d'email par Matt
* https://www.skyminds.net/ 
* Retourne TRUE si l'adresse est valide et FALSE si incorrecte. 
*/
function SkyVerif($mail) { 
return( eregi ("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,4}$", $mail ) );
} Code language: PHP (php)

Suppression automatiques des adresses non-validées dans les 3 jours suivant l’inscription.

La table contenant les adresses contient deux champs : opt_in (statut de l’adresse, égal à no par défaut) et register_date (date d’inscription) :

/* 
* Script Antispam-Expiration par Matt
* https://www.skyminds.net/ 
* Les adresses non validées au bout de 3 jours sont supprimées automatiquement 
*/ 
$sql = "DELETE FROM {$newsletter_table} WHERE `opt_in`= 'no' AND `register_date` < DATE_SUB(NOW(), INTERVAL 3 DAY)"; 
$query = mysql_query( $sql ); Code language: PHP (php)

Ces routines sont lancées à chaque fois que quelqu’un cherche à s’inscrire sur la newsletter: pas besoin de cron pour garantir l’intégrité des données.

Chaque nouvelle inscription fait le ménage dans la base de données et optimise les tables : suppression automatique des fausses adresses et autres techniques de spam!

Le plugin WordPress ne s’affiche pas dans la liste des plugins

Si votre blog ou CMS est géré par WordPress et que vous utilisez ou écrivez des plugins pour l’enrichir de quelques fonctionnalités, vous serez peut-être confronté au problème suivant.

Dans certains cas, WordPress n’affiche pas votre plugin dans la liste des plugins. Du coup, impossible de l’activer !

Après avoir passé un peu de temps à chercher le pourquoi du comment, je me suis rendu compte que WordPress était devenu très tâtillon sur la manière dont l’entête du plugin doit être disposé.

Voici l’entête d’un bon plugin :

/*
Plugin Name: Snowy
Plugin URI: https://www.skyminds.net/snowy/
Description: Adds self-generated snowflakes to WordPress.
Version: 1.2
Author: Matt
Author URI: https://www.skyminds.net/
*/

Observez bien la structure : Plugin Name, Plugin URI, Description, Version, Author et Author URI.

Si jamais il vous prenait l’idée d’inverser Description et Version, patatras ! Le plugin devient activable seulement s’il se trouve dans /wp-content/plugins/ mais pas s’il se trouve dans /wp-content/plugins/snowy/ par exemple.

En espérant que cela vous évite quelques heures de recherche !

Script PAL pour SAM Broadcaster : jouer un style de musique donné pendant un créneau horaire

Un script PAL un peu plus complexe cette fois qui concernera surtout les webradios qui ont des émissions bien déterminées, à heure fixe, avec un créneau horaire bien déterminé.

Les fichiers de chaque style de musique doivent être classés dans les différentes catégories de SAM (fenêtre Playlist > Catégories) : il suffit de créer différents dossiers (instrumental, contemporary et sabbath dans l’exemple suivant) et de placer les fichiers dans ces différents dossiers.


{PAL script : style de musique par créneau horaire par Matt - www.skyminds.net}

{*************************************************************
Définition des variables.
**************************************************************}
PAL.Loop := True;
var mytime : DateTime = now;
var D: Integer;

var start_time_instrumental, end_time_instrumental : DateTime;
var start_time_contemporary, end_time_contemporary : DateTime;
var start_time_sabbath, end_time_sabbath : DateTime;

{*************************************************************
A vous d'ajuster les heures ! Je lance le script 15 minute avant l'heure parce qu'il 
reste toujours 3 ou 4 chansons dans la file d'attente. Si vous souhaitez que cela 
commence à l'heure exacte, il vous suffit d'ajouter la commande Queue.Clear 
**************************************************************}
start_time_instrumental := date + EncodeTime(07,45,00,0);
end_time_instrumental := date + EncodeTime(08,45,00,0);

start_time_contemporary := date + EncodeTime(10,45,00,0);
end_time_contemporary := date + EncodeTime(12,45,00,0);

start_time_sabbath := date + EncodeTime(16,45,00,0);
end_time_sabbath := date + EncodeTime(20,45,00,0);

{*************************************************************
Le script est lancé le Samedi et obéit aux règles catégories/heures.
**************************************************************}
if DayOfWeek(Now) = Saturday then
begin
      if( mytime >= start_time_instrumental) and (mytime <= end_time_instrumental) Then
         begin
            cat['Instrumental'].QueueBottom(smLemmingLogic,EnforceRules);
            PAL.WaitForQueue(1);
         end;
      if( mytime >= start_time_contemporary) and (mytime <= end_time_contemporary) Then
         begin
            cat['Contemporary'].QueueBottom(smLemmingLogic,EnforceRules);
            PAL.WaitForQueue(1);
         end;
      if( mytime >= start_time_sabbath) and (mytime <= end_time_sabbath) Then
         begin
            cat['DemoTracks'].QueueBottom(smLemmingLogic,EnforceRules);
            PAL.WaitForQueue(1);
         end;
end;
Code language: PHP (php)

Lire la suite

Résoudre l’erreur HTTP 406 Not Acceptable

Depuis que mon hébergeur a mis ses serveurs en cluster et exécute PHP en CGI et non comme module Apache, certaines fonctions de WordPress ne se comportent pas correctement, notamment les éditeurs de fichiers.

En effet, ces derniers semblent être devenus incapables de modifier les fichiers sans provoquer une erreur HTTP 406 :

HTTP Error 406 – Not acceptable
An appropriate representation of the requested resource /XYZ.php could not be found on this server.

Après quelques recherches, il semblerait que ce soit les filtres du mod_security d’Apache qui, trop restrictifs, empêchent les éditeurs… d’éditer !

La solution consiste donc à désactiver mod_security dans le répertoire où se trouvent les éditeurs (/wp-admin/ dans le cas de WordPress) :

  1. Créez un fichier .htaccess
  2. Editez le fichier avec ces instructions :
    
    SecFilterEngine Off
    SecFilterScanPOST Off
    
    
  3. Sauvegardez : vos éditeurs devraient maintenant fonctionner sans aucune erreur.

Notez que j’ai pris WordPress comme exemple mais cela résout les problèmes d’erreurs 406 quelle que soit l’application utilisée (blog, CMS…).

Mieux vaut créer le .htaccess dans le répertoire qui en a besoin : il est inutile voire déconseillé de désactiver mod_security sur l’ensemble d’un domaine pour des raisons évidentes de sécurité.

A utiliser là où il y a besoin donc.

Créer un SkypeCast ou comment héberger une conférence audio accueillant jusqu'à 100 personnes photo

Créer un SkypeCast ou comment héberger une conférence audio accueillant jusqu’à 100 personnes

Créer un SkypeCast ou comment héberger une conférence audio accueillant jusqu'à 100 personnes photo

Je me suis amusé à créer un SkypeCast aujourd’hui. Ceux d’entre vous qui utilisent Skype savent que les conférences audio que l’on peut créer gratuitement sont bridées à 5 personnes.

Or si votre meeting est un peu plus important, cela pose problème.

C’est là qu’intervient le SkypeCast, sorte d’équivalent des chatrooms IRC du siècle dernier mais avec… le son – merci la voix sur IP (VoIP) ! Et vous pouvez accueillir jusqu’à 100 personnes simultanément !

Étapes pour créer un Skypecast

Création du SkypeCast : il suffit de remplir le formulaire SkypeCast en donnant un nom, une description et la durée de votre SkypeCast.

L’annuaire SkypeCast recense tous les SkypeCasts actifs. C’est l’une des 2 manières dont les visiteurs pourront écouter votre SkypeCast, l’autre étant via le troisième onglet de Skype (petite bulle bleue avec le signal).

Ecoute : tous les SkypeCasts sont publics pour le moment, ce qui veut dire que pas mal de gens peuvent venir écouter votre show/débat/conférence. Celui qui héberge le SkypeCast peut décider de ceux qui peuvent parler ou simplement écouter.

Promotion du SkypeCast sur votre site : un widget est disponible, il suffit de rentrer votre identifiant Skype et cela affichera tous vos SkypeCasts pour que vos visiteurs puissent les rejoindre.

Snowy : un plugin WordPress qui fait des flocons

Snowy

Je viens d’écrire un nouveau petit plugin pour WordPress, baptisé Snowy, qui sera chargé d’afficher des flocons de neige sur le site à partir de décembre.

J’ai opté pour la solution sans images créée par Kurt Grigg : les flocons sont générés dynamiquement en DHTML.

L’essentiel du code est contenu dans un simple fichier javascript, le plugin injecte simplement ce code à la fin des pages HTML.

Simple et efficace, idéal pour donner un petit côté festif au blog sans pour autant gêner la lecture (ce qui est souvent le cas avec des images fixes).

Intéressés ? Tout se passe sur la page de Snowy.

Snowy, let it snow on your WordPress

Snowy est un plugin pour WordPress qui permet de faire tomber quelques flocons de neige sur votre blog. Il ne requiert pas d’image, les flocons sont générés dynamiquement en DHTML.

Snowy is a WordPress plugin that makes some snowflakes fall all over you blog (ideal for the Christmas season !). It does not require any images, everything is dynamically generated via DHTML.

Dernière version / Latest version : 1.1

Install notes

  • Extract all files in /wp-content/plugins/snowy/
  • Activate the plugin

Changelog

  • v1.1 (15 Nov 2006) : fixed the script header.
  • v1.0 (12 Nov 2006) : initial release

Licence

The script is linkware. A link back here would be appreciated if you use the script.
And you can always show your appreciation by clicking the donate button ;-)

Désinstaller Norton Antivirus définitivement

Norton Killer

Aurélie m’a demandé il y a quelques jours comment éradiquer Norton de son système une bonne fois pour toute.

Voici donc deux solutions susceptibles de résoudre le problème : la première est automatisée grâce à un utilitaire fourni par Symantec, la seconde est manuelle et prend un peu plus de temps.

Je vous conseille d’utiliser d’abord la première solution avant d’essayer la seconde. Vous en avez à peu près pour 10-15 minutes en tout.

Lire la suite

Modifier l’apparence de Firefox grâce aux feuilles CSS

Savez-vous qu’il est possible de changer la manière dont Firefox présente ses menus, ses barres d’outils et même l’emplacement des boutons de navigation en changeant seulement quelques lignes de code dans un fichier CSS ?

Vous pouvez réorganiser pas mal d’éléments en quelques secondes seulement.

Voici un petit mode d’emploi en 4 étapes.

Etape 1 : création du fichier userChrome.css

Rendez-vous dans le dossier de votre profil Firefox qui se trouve à l’emplacement C:\Documents and Settings\*username*\Application Data\Mozilla\Firefox\Profiles\*chaîne_aléatoire*.default\Chrome\.

Vous trouvez un fichier qui s’appelle userChrome-example.css, renommez-le en userChrome.css.

S’il n’existe pas, créez-le. Votre fichier CSS est maintenant prêt à être édité.

Lire la suite

CSS : créer une feuille d’impression pour votre site

Une fois que l’on a fini de designer son site pour que tout le monde puisse le consulter et admirer vos talents d’artiste vient le moment de penser à la manière dont votre site est rendu lors de l’impression.

En effet, votre site n’est jamais imprimé sur une feuille tel que vous le voyez à l’écran. Si votre design utilise les feuilles de style (CSS), il suffit d’en créer une destinée à l’impression.

Le principe

Faîtes une copie de la feuille CSS de votre site et nommez-la print.css par exemple.

Décidez ensuite quelles sont les parties qui sont superflues lors d’une impression papier : les menus peuvent être ignorés, tout comme les images de fond :

/* désactivation des menus pour l'impression */
.menu-right {
	display : none;
}
.menu-left {
	display : none;
}
Code language: CSS (css)

Lire la suite