hang-pans

Manu Delago – Two Handsful of Sound

Le hang est un instrument de musique acoustique de la famille des idiophones inventé par Felix Rohner et Sabina Schärer à Berne en Suisse en 2000 : c’est un volume lenticulaire creux composé de deux coupelles métalliques embouties. Le nom « hang » signifie main en dialecte bernois.

hang-pans

La partie supérieure du hang, le « Ding », permet d’obtenir un son très différent suivant la manière dont elle est utilisée ; il est ainsi possible d’obtenir des sonorités proches de celles d’une harpe ou d’une cloche. On retrouve sur le Ding 7 à 8 notes disposées en cercle de la plus grave à la plus aigüe, et d’une plus grave en son centre. Chacune de ces notes fondamentales a trois harmoniques accessibles de différentes façons ; on pourra par exemple étouffer la fondamentale avec un doigt et faire résonner les harmoniques en frappant sur les côtés de la note.

La partie inférieure de l’instrument, le « Gu », est essentiellement constitué d’une surface lisse avec un creux arrondi en son centre. Cette cavité vide permet l’apparition d’une résonance de Helmholtz, comme dans l’udu, qui permet à l’instrument de résonner et de faire sonner ses différentes harmoniques.

hang-schema

Cette création est inspirée de nombreux instruments de percussion venant des différents pays et cultures musicales comme le gong, le gamelan, le ghatam, le tambour, la cloche ou la scie musicale.

Two Handsful of Sound est un morceau composé de dix pistes Hang par Manu Delago.

Génial non ? Cela me rappelle un peu la musique du jeu vidéo Dune.

Ubuntu logo within an update icon

Ubuntu : résoudre l’erreur “xulrunner-bin: error while loading shared libraries: libhunspell-1.2.so.0”

ubuntu-update

Aujourd’hui, j’ai mis à jour mon installation d’Ubuntu 12.04 LTS (precise) vers la version 14.04 LTS (trusty).

Vu qu’il y a quelques années entre les deux distributions, cela a pris quelques heures mais je trouve le système beaucoup plus réactif. J’ai quand même eu une petite erreur, histoire de justifier cet article.

Problème de dépendances avec le paquet xulrunner

Après l’installation, le nettoyage des paquets obsolètes et un petit redémarrage, apt-get m’a indiqué qu’il y avait un problème de dépendance avec ce message d’erreur :

/var/lib/dpkg/info/xulrunner-1.9.2.prerm: 8: /var/lib/dpkg/info/xulrunner-1.9.2.prerm: /usr/sbin/update-alternatives: not found
/usr/lib/xulrunner-1.9.2.9/xulrunner-bin: error while loading shared libraries: libhunspell-1.2.so.0: cannot open shared object file: No such file or directory
dpkg: error processing xulrunner-1.9.2 (--configure):
 subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
 xulrunner-1.9.2
E: Sub-process /usr/bin/dpkg returned an error code (1)Code language: JavaScript (javascript)

Après avoir essayé de réinstaller et supprimer libhunspell et xulrunner sans succès, je me suis dit qu’il fallait passer à autre chose.

La solution : éditer le fichier xulrunner-1.9.2.prerm

En suivant à tâtons les liens du message d’erreur, il se trouve qu’il suffit d’éditer le fichier /var/lib/dpkg/info/xulrunner-1.9.2.prerm pour corriger le problème.

Lire la suite

black-mirror-s2-special-white-christmas-jon-hamm

Black Mirror Season 2 Special : White Christmas

Voici l’épisode spécial de la seconde saison de Black Mirror, qui s’intitule White Christmas.

black-mirror-s2-special-white-christmas-jon-hamm

Il s’agit, comme le veut la tradition en Angleterre, d’offrir aux fans de la série un épisode pour Noël. Black Mirror oscille entre récits technologiques, science-fiction et anticipation, et s’appuie sur notre époque et ses technologies en les faisant évoluer pour le meilleur… et pour le pire.

White Christmas

L’épisode, avec en guest star Jon Hamm (le charismatique Don Draper dans Mad Men), utilise à nouveau l’idée d’une convergence des nouvelles technologies avec le corps humain.

Nous nous retrouvons donc dans un monde dans lequel chaque personne peut copier sa personnalité sur un mini disque dur, quitte à avoir son double numérique à côté de soi, ou des interactions réelles gérées comme de simples contacts numériques (notamment la possibilité de “bloquer” quelqu’un).

Lire la suite

WordPress : valider le code des meta oEmbeds de YouTube, DailyMotion, Vimeo et SlideShare photo

WordPress : valider le code des meta oEmbeds de YouTube, DailyMotion, Vimeo et SlideShare

Allez, je continue ma petite série sur la gestion de l’intégration oEmbed sous WordPress.

WordPress gère nativement plusieurs services : copiez-collez l’adresse d’une vidéo YouTube dans un article et hop, vous obtenez une vidéo entièrement intégrée, avec un code plutôt propre mais pas entièrement valide.

oembed-all-service

Je vous propose donc de valider le code généré par WordPress lorsqu’il vient de sites tiers comme YouTube, DailyMotion, Vimeo ou SlideShare.

Valider le code oEmbed de YouTube

Il suffit de lancer les quatre requêtes SQL suivantes :

UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'frameborder="0" allowfullscreen', 'style="border: none"');
UPDATE wp_commentmeta SET meta_value = REPLACE (meta_value, 'frameborder="0" allowfullscreen', 'style="border: none"');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, "wmode=transparent' frameborder='0'", "wmode=transparent' style='border: none'");
UPDATE wp_commentmeta SET meta_value = REPLACE (meta_value, "wmode=transparent' frameborder='0'", "wmode=transparent' style='border: none'");Code language: JavaScript (javascript)

Valider le code oEmbed de Dailymotion

Pour le code de Dailymotion, ces deux requêtes suffisent :

UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'frameborder="0">', 'style="border: none">');
UPDATE wp_commentmeta SET meta_value = REPLACE (meta_value, 'frameborder="0">', 'style="border: none">');Code language: JavaScript (javascript)

Valider le code oEmbed de Vimeo

Quatre requêtes pour Vimeo :

UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'frameborder="0" title=', 'title=');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, ' webkitallowfullscreen mozallowfullscreen allowfullscreen', '');
UPDATE wp_commentmeta SET meta_value = REPLACE (meta_value, 'frameborder="0" title=', 'title=');
UPDATE wp_commentmeta SET meta_value = REPLACE (meta_value, ' webkitallowfullscreen mozallowfullscreen allowfullscreen', '');Code language: JavaScript (javascript)

Valider le code oEmbed de SlideShare

Et deux requêtes pour SlideShare :

UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen>', 'style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px;overflow:auto;border:none">');
UPDATE wp_commentmeta SET meta_value = REPLACE (meta_value, 'frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen>', 'style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px;overflow:auto;border:none">');Code language: JavaScript (javascript)

Et voilà, le code est plus propre, plus valide et utilise CSS plutôt que des balises propriétaires.

WordPress : remplacer le vieux code Dailymotion de vos articles par une URL oEmbed photo 1

WordPress : mettre à jour le code Dailymotion

Cet article est le pendant de l’article pour remplacer le vieux code YouTube de vos articles WordPress par une URL oEmbed mais pour Dailymotion.

Voici donc les manipulations à effectuer pour transformer les vieux codes d’intégration avec les URL oEmbed de WordPress.

Nous utilisons toujours le plugin Search Regex pour WordPress avec la case regex activée et le signe dièse (#) comme délimiteur pour les expressions régulières.

Remplacer les liens swf/video de Dailymotion

J’appelle ces liens “swf/video” parce qu’on retrouve cela dans l’URL de l’intégration Flash. Il vaut mieux lancer cette substitution en premier.

On recherche :

#<object data="http://www.dailymotion.com/swf/video/(.*)" width="300" height="150">(.*)</object>#Code language: HTML, XML (xml)

Et on remplace par :

https://www.dailymotion.com/video/$2Code language: JavaScript (javascript)

Remplacer les liens swf de Dailymotion

On s’occupe maintenant des liens qui contiennent juste le terme “swf”.

On recherche :

#<object data="http://www.dailymotion.com/swf/(.*)" width="300" height="150">(.*)</object>#Code language: HTML, XML (xml)

Et on remplace par :

https://www.dailymotion.com/video/$2Code language: JavaScript (javascript)

Voilà, vous venez de nettoyer les anciens codes d’intégration Flash pour les remplacer par des URI oEmbed natives. Propre.

Ben Howard - Promise photo

Ben Howard – Promise

Voici Promise, un très bon morceau issu de l’album Every Kindom (2011) de Ben Howard :

Ben a filmé cette vidéo alors qu’il rentrait chez lui en voiture, un soir juste après l’enregistrement de l’album. Il s’est ensuite dit que cela collerait bien à l’une de ses “night time songs”.

Cet album s’écoute décidément très bien !

Lire la suite

WordPress : remplacer le vieux code YouTube de vos articles par une URL oEmbed photo

WordPress : mettre à jour le code Youtube

Le code des plateformes – vidéos ou autre – évolue et il n’est pas rare de tomber sur de vieux articles qui embarquent un vieux code embed pour afficher des vidéos.

Si votre site a quelques années, il y a plusieurs méthodes d’intégration – plus ou moins optimisées – dont certaines ne s’afficheront pas (celles utilisant le plugin Flash par exemple) sur une tablette ou un smartphone.

youtube

Sur SkyMinds, je me suis dit que ce serait sympa d’avoir un système unifié : toutes les vidéos YouTube seront automatiquement insérées par WordPress en utilisant la méthode native, à savoir oEmbed.

Pour ce faire, j’utilise le plugin Search Regex qui permet d’intervenir facilement sur la base de données pour effectuer des changements en masse, tout en proposant la visualisation des changements avant que ces derniers ne soient appliqués.

Toutes les manipulations sont à effectuer avec Search Regex, en activant la case regex. Je me sers du signe dièse (#) comme délimiteur pour les expressions régulières.

Remplacer le vieux code d’intégration flash de YouTube

Avec Search Regex, on cherche :

<object [^>]*><param name="movie" value="https:\/\/www\.youtube\.com\/v\/([^"&?]+)">.*?<\/object>Code language: HTML, XML (xml)

Et on remplace par :

https://www.youtube.com/watch?v=$1Code language: JavaScript (javascript)

Lire la suite

Charte du Conseil de Classe photo

Charte du Conseil de Classe

1. Le conseil de classe est la réunion de l’équipe pédagogique et éducative : les professeurs, le CPE – Conseiller Principal d’Éducation, les délégués des élèves et des parents en sont les membres permanents ; le chef d’établissement ou son représentant en est le président. Le COP, l’infirmière ou l’assistante sociale peuvent y participer ponctuellement.

2. Le conseil de classe a pour missions :

  • de traiter les questions pédagogiques intéressant la vie de classe, et notamment les modalités d’organisation du travail personnel des élèves, de son suivi et de proposer des accompagnements individualisés.
  • d’examiner les résultats scolaires : s’appuyant sur les appréciations et évaluations portées sur le bulletin, il recherche et propose à l’élève et à sa famille des conseils pour la suite de sa scolarité. Des entretiens peuvent être provoqués par le professeur principal ou le chef d’établissement à la suite du conseil avec l’élève et sa famille.
  • d’émettre un avis sur les vœux d’orientation exprimés par les familles et les élèves, et le cas échéant faire d’autres propositions
  • d’émettre un avis éclairant le jury d’examen (pour les classes à examen)
  • d’émettre un avis sur les vœux de poursuites d’études post-bac dans le cadre de la procédure Admission Post Bac (APB).

3. Le président du conseil de classe donnera la parole tout d’abord au professeur principal qui présentera les résultats et l’ambiance de travail dans la classe. Puis la parole sera donnée aux délégués élèves et aux représentants des parents : les points abordés doivent concerner uniquement la vie dans la classe.

4. L’examen des cas individuels peut se faire dans un ordre différent que celui de l’ordre alphabétique, en regroupant les élèves suivant d’autres critères. Pour chaque élève, il s’agira de connaitre dans les grandes lignes ses points forts, ses points faibles, ses potentialités et son niveau d’acquisition des compétences attendues pour la classe concernée. Un bilan rapide peut être fait sur les dispositifs d’aide dont il bénéficie. Chaque fois que possible, on s’attachera à valoriser les éléments positifs et les progrès, même lorsqu’ils sont modestes.

5. Trois mentions pourront être décernées en conseil de classe par l’équipe pédagogique : les encouragements, les compliments et les félicitations ; ces mentions seront portées sur le bulletin.
Les définitions correspondant à chaque mention sont les suivantes :

  • Encouragements : témoignage de reconnaissance adressé à l’élève pour son engagement significatif dans le travail, même si les résultats restent modestes, qui se traduit notamment par des signes d’efforts, d’investissement, d’intérêt, de peine qu’on se donne, etc.
  • Compliments : témoignage de reconnaissance adressé à l’élève pour le bon niveau de ses résultats et une attitude positive face au travail.
  • Félicitations : témoignage de reconnaissance adressé à l’élève pour l’excellence de ses résultats et de son comportement face au travail.

6. En cas de remarques très négatives sur le comportement et la mise au travail, le conseil de classe peut éventuellement « mettre en garde » l’élève mais il ne peut prononcer de sanction (avertissement).

7. L’ensemble des délégués disposeront des moyennes par discipline de tous les élèves seulement pendant le conseil de classe. Les délégués des parents pourront joindre un compte-rendu lors de l’envoi des bulletins ; il ne traitera pas des cas individuels mais des appréciations et remarques d’ordre général.

8. Il sera laissé au choix en début de conseil, aux délégués des élèves, la possibilité de sortir de la salle lors de l’examen de leur cas ; si le délégué ne souhaite pas sortir, il n’aura pas la parole pour se justifier et les membres ne s’adresseront pas directement à lui en tant qu’élève ; son camarade délégué assurera le relais. Il s’agit de préserver l’égalité de traitement des élèves et de favoriser l’expression des membres du conseil.

9. L’ensemble des membres du conseil de classe est tenu au devoir de discrétion et de réserve. Si des informations délicates sur un élève doivent être évoquées, elles pourront éventuellement l’être lors d’un conseil restreint réunissant l’équipe pédagogique et éducative.

10. Un bilan synthétique du conseil de classe sera rédigé par le professeur principal.

Elton John - Rocket Man  photo

Elton John – Rocket Man

Voici “Rocket Man”, une chanson composée par Elton John et Bernie Taupin, et interprétée par Elton John sur l’album Honky Château (1972) :

La chanson aurait inspirée par la vision d’une étoile filante ou d’un avion au loin par Taupin. Les astronautes ne sont plus considérés comme des héros mais comme ayant un travail banal, ce qui explique les premières lignes de la chanson : “She packed my bags last night, pre-flight. Zero hour: 9 a.m. And I’m gonna be high as a kite by then.”

Les paroles, inspirées de la nouvelle The Rocket Man de Ray Bradbury, décrivent les sentiments qu’éprouve un astronaute sur Mars à l’idée de quitter sa famille pour aller effectuer son travail.

Musicalement, la chanson est une ballade pop au piano, avec une texture ajoutée par un synthétiseur et de la guitare slide. C’est aussi la première chanson d’Elton John avec les choeurs combinés de Dee Murray, Nigel Olsson et Davey Johnstone, qui deviendront une de ses signatures.

Lire la suite

Mise à jour du site du Centre de Kriya Yoga France : v4.0 photo

Mise à jour du site du Centre de Kriya Yoga France : v4.0

Il y a quelques mois de cela, le site du Centre de Kriya Yoga France a eu droit à un léger rafraichissement de son style : un peu plus de lisibilité, moins de fonds colorés, un peu plus de finesse dans les traits.

C’était juste un petit coup de plumeau mais comme j’ai oublié de vous en parler, voici une petite capture d’écran :

Mais cette semaine, j’ai retroussé mes manches et suis totalement passé à l’offensive :

  • redéfinition des couleurs
  • création du logo et des favicons
  • création de la boutique totalement intégrée à WordPress
  • mode responsive/adaptive pour smartphones et tablettes
  • conversion des pages de contenus en articles et classement des articles par catégories, en silos
  • modification des permaliens pour n’utiliser que le nom des articles
  • intégration des réseaux sociaux avec les comptes dédiés au CKYF
  • et de multiples essais en trial and error !

Note pour plus tard : si, lors de la prévisualisation d’un thème WordPress, rien ne s’affiche ou si la personnalisation (customizer) ne répond pas, c’est qu’un plugin met la zone au niveau du javascript. Dans mon cas, c’était pdf-js.

Without further ado, je suis assez content de vous présenter la version 4.0 :

Pas mal de changements mais je pense que cela en vaut vraiment le coup. Le site devenait vieillissant et n’était plus adapté aux smartphones et tablettes, et l’ancienne boutique (Cubecart) était une horreur à gérer.

Tout est beaucoup plus simple maintenant, avec de jolis graphiques pour les commandes, la gestion du stock… bref, c’est bien mieux pour moi à gérer et plus simple pour le CKYF.

Qu’en pensez-vous ?

WordPress : récupérer la liste emails des membres et commentateurs photo

WordPress : récupérer la liste emails des membres et commentateurs

Wordpress icon

Voici deux requêtes SQL pour récupérer la liste des adresses email de tous les utilisateurs d’un site tournant sous WordPress.

Emails des membres

En supposant que le préfixe WordPress est ‘wp_’, cette requête extrait l’adresse email de chaque membre du site :

/* Query name : get members' emails
/* Author : Matt
/* Author URI : https://www.skyminds.net/
*/
SELECT DISTINCT user_email FROM wp_users GROUP BY user_emailCode language: JavaScript (javascript)

Emails des commentateurs

Et cette requête extrait l’adresse email de chaque personne ayant commenté sur le site :

/* Query name : get commenter' emails
/* Author : Matt
/* Author URI : https://www.skyminds.net/
*/
SELECT DISTINCT comment_author_email FROM wp_comments WHERE comment_approved<>'spam' GROUP BY comment_author_emailCode language: JavaScript (javascript)

Astuce SQL : la clause DISTINCT permet d’éviter d’avoir des doublons dans la liste.