WordPress : afficher les accents dans des blocs texte colorisés par Crayon Syntax Highlighter photo

WordPress : afficher les accents dans des blocs texte colorisés par Crayon Syntax Highlighter

Jusqu’à très récemment, il m’était tout à fait possible d’avoir des caractères accentués dans des blocs de texte sous WordPress en utilisant le plugin Crayon Syntax Highlighter pour coloriser le code.

crayon-syntax-highlighter

Or depuis quelques temps tous les blocs en lang="text" ne permettent plus d’afficher les accents : je me retrouve avec des mots tronqués comme si le texte n’était pas encodé en UTF-8.

Problème : des caractères non-Unicode

Voici ce que donne la phrase “j’ai mangé une tarte à la crème à Noël” avec une colorisation par défaut avec Crayon Syntax Highlighter :

J'ai mangé une tarte à la crème à Noël.

Gloups! C’est totalement illisible, les accents deviennent un caractère mal encodé et certaines lettres adjacentes sont littéralement supprimées. Pas glop.

Solution : créer un alias

La solution que je propose est plus une rustine d’appoint qu’une véritable solution.

Je pense que le problème réside dans l’expression régulière des langages du plugin : certains langages (shell par exemple) n’acceptent pas les accents alors que d’autres (HTML par exemple) oui.

Je me suis rendu compte en changeant la langue du bloc que le langage batch affichait correctement les accents.

Comme je n’allais pas éditer tous mes articles pour changer le langage des blocs texte que j’ai utilisé jusqu’à maintenant, j’ai opté pour la création d’un alias.

Lire la suite

Installer Wine sous Ubuntu 14.04 LTS Trusty Tahr photo

Installer Wine sous Ubuntu 14.04 LTS Trusty Tahr

Après installation d’Ubuntu 14.04 (Trusty), je me rappelle que wine a été supprimé du système lors de la mise à jour d’Ubuntu.

Qu’à cela ne tienne, on va le réinstaller.

Ajouter le PPA ubuntu-wine

En deux lignes, on ajoute le PPA et on installe wine1.7 :

sudo add-apt-repository ppa:ubuntu-wine/ppa -y && sudo apt-get update
sudo apt-get install wine1.7Code language: JavaScript (javascript)

A ce stade, wine aurait dû s’installer normalement. Mais pas chez moi, non.

Lire la suite

Fink - This Is The Thing photo

Fink – This Is The Thing

En ce jour un peu spécial étant donné les évènements de ces derniers jours en France, voici Fink interprétant This Is The Thing :

I don’t know if you notice anything different.
It’s getting dark and it’s getting cold and the nights are getting long
And I don’t know if you even notice at all
That I’m long gone

And the things that keep us apart
Keep me alive
And the things that keep me alive
Keep me alone
This is the thing

I don’t know if you notice anything missing
Like the leaves on the trees or my clothes all over the floor
And I don’t know if you even notice at all
‘Cause I was real quiet when I closed the door

And the things that keep us apart
Keep me alive
And the things that keep me alive
Keep me alone
This is the thing

And I don’t know if you notice anything different
I don’t know if you even notice at all

This is the thing

PHP : solution pour l'erreur "preg_match(): Compilation failed: invalid range in character class" photo

PHP : résoudre l’erreur “Redefining already defined constructor for class …”

php-logo

Il vous est peut-être déjà arrivé d’obtenir l’erreur PHP suivante en mode strict sous PHP 5.4 et versions ultérieures:

Redefining already defined constructor for class {nom_de_la_classe}

Cela arrive lorsque – dans le code d’une classe -, le code PHP4 précède le code PHP5 avec le constructeur de classe.

Le problème : une fonction PHP4 précédant le constructeur PHP5

Voici un petit exemple pour bien comprendre, avec une classe SkymindsExampleClass, une fonction qui s’appelle SkymindsExampleClass() et donc porte le même nom, et la fonction constructeur __construct().

L’exemple suivant produit l’erreur Redefining already defined constructor for class parce que la fonction PHP4 SkymindsExampleClass() se trouve avant la fonction PHP5 __construct() :

<?php
// This example outputs a PHP error in strict mode
class SkymindsExampleClass {
	//PHP4
	function SkymindsExampleClass()
	{
		$this->__construct();
	}
	//PHP5
	public function __construct()
	{
		$this->admin_page();
	}
}Code language: HTML, XML (xml)

La solution : placer le code PHP5 avant le code PHP4

Pour supprimer l’erreur PHP stricte, il suffit de placer la fonction PHP5 avant la fonction PHP4.

Lire la suite

Please Dance Hell Bear :  My, NJBR, Blind photo

Please Dance Hell Bear : My, NJBR, Blind

Please Dance Hell Bear est un groupe de Moscou, Russie, qui distille une musique aux accents math-pop, post-punk et dance-punk.

Le groupe est composé de quatre membres : Eugene (guitare), Alex (guitare), Misha (basse) et Ivan (batterie) et cela s’écoute vraiment bien, jugez plutôt :

Assistants de langue,droits, devoirs, conseils

Assistants de langue : droits, devoirs et conseils

Dans votre établissement, il y a un professeur référent qui est là pour vous aider et répondre à vos questions. Au niveau de l’administration, la personne en charge des professeurs et des assistants est le principal ou le principal adjoint (en collège) et le proviseur ou le proviseur adjoint (en lycée).

En France on vouvoie les chefs d’établissements et les professeurs. Pour les élèves, faites comme vous le sentez.

Ponctualité, absences

Renseignez-vous sur les horaires précis des débuts et fins de cours dans votre établissement et pensez à téléphoner en cas de retard.

Absences éventuelles : la personne à joindre aussitôt est le proviseur adjoint ou le principal adjoint. Si vous êtes malade, vous devrez fournir un certificat médical. Si vous avez besoin de vous absenter, vous devez d’abord en demander la permission et généralement rattraper les cours que vous avez manqués.

Je vous conseille de lire le guide pratique sur l’arrivée dans un nouvel établissement.

Emploi du temps

On doit vous remettre un emploi du temps établi par les professeurs où figurent le nom des classes, les horaires précis et les salles dans lesquelles vous devez vous rendre. On vous donnera la liste des élèves et souvent également un trombinoscope qui vous aidera à mémoriser leurs visages.

Vous devez enseigner 12h au maximum par semaine mais vous pouvez aussi faire des heures supplémentaires, payées.

Lire la suite

MySQL : résoudre l'erreur "mysql_connect(): Headers and client library minor version mismatch" photo

MySQL : résoudre l’erreur “mysql_connect(): Headers and client library minor version mismatch”

Après la mise à jour vers MySQL 5.6, certaines applications peuvent renvoyer l’avertissement PHP suivant :

PHP Warning: mysql_connect(): Headers and client library minor version mismatch. Headers:50535 Library:50617Code language: CSS (css)
icon-mysql

C’est le cas lorsqu’une application est liée à l’utilisation d’une version spécifique de libmysqlclient18 alors qu’elle est connectée à un serveur MySQL qui tourne sur une version différente.

C’est libmysqlclient18 qui renvoie cet avertissement mais dans certains cas, cela peut impacter l’application et tient plus de l’erreur que de l’avertissement.

MySQL Native Driver

La solution est toute simple : il suffit d’utiliser le pilote MySQL Native Driver php5-mysqlnd au lieu du paquet php5-mysql.

Les avantages de php5-mysqlnd sont multiples : il vient en remplacement de php5-mysql, n’est pas lié à la librairie libmysqlclient, ne renvoie pas d’avertissement “version mismatch” et possède pas mal d’autres caractéristiques intéressantes.

Lire la suite

Bill Laswell - Beyond The Zero photo

Bill Laswell – Beyond The Zero

Bill Laswell s’exprime à travers des genres musicaux variés comme le jazz, le dub, la drum and bass, le funk, le rock ou encore de façon plus vague la musique expérimentale. En voici un petit extrait avec Beyond The Zero :

Lire la suite

SIGHT ou un futur possible et dystopique de la réalité augmentée photo

SIGHT ou un futur possible et dystopique de la réalité augmentée

Voici SIGHT, un court-métrage qui se demande à quel point nos vies pourraient changer si la réalité augmentée était totalement intégrée dans nos sociétés modernes :

Un peu à la manière de l’excellente série britannique Black Mirror, Eran May-raz et Daniel Lazo imagine une vision alternative du future, dans un monde où les nouvelles technologies, comme la réalité virtuel, commencent à être dommageables pour nos vies.

Nous suivons donc Patrick, un célibataire qui vit dans une métropole sans nom. Au début du film, il semble être étendu au-dessus d’un tapis, flottant à une dizaine de centimètres du sol – mais Patrick voit les choses bien différemment : à travers des lentilles de contact spéciales, il joue à un jeu de skydiving en immersion.

Nous le voyons ensuite se diriger vers la cuisine, où son frigo lui indique quels aliments vont bientôt arriver à leur date d’expiration. Il choisit un concombre et commence à le couper alors que le jeu Fruit Ninja se lance.

Au fur et à mesure que le film avance, il apparait clair que la plupart des affaires de Patrick appartiennent plus à la fiction qu’à la réalité. Les murs de son appartement sont vides mais lorsqu’il les regarde avec ses lentilles, ils sont couverts de tableaux de score de jeux et d’œuvres d’art hors de prix.

La vie de Patrick, à première vue remplie et parfaite, commence rapidement à apparaitre comme une existence vide et sans inspiration.

Lire la suite

jQuery : sélectionner un élément dont l'ID ou la classe commence ou finit par une chaîne photo 1

jQuery : script toggle pour afficher et cacher de multiples blocs HTML

jquery

J’ai écrit il y a quelques temps un script jQuery utilisant la fonction toggle pour afficher/cacher un seul bloc HTML mais pas mal de gens m’ont demandé comment faire pour afficher plusieurs blocs HTML.

Voici comment s’y prendre, en utilisant les fonctions jQuery .slideup(), .slidedown() et .closest().

Démo


Article A

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam

Article B

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam

Article C
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam

Le script

1. Ajoutez jQuery dans l’entête de votre page (head), comme ceci :

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" integrity="sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx/qtq/1itJ0C2ejDxltZVFg==" crossorigin="anonymous"></script>Code language: HTML, XML (xml)

Lire la suite

NAS Synology : récupérer les données d'un disque dur issu d'un RAID1 photo

NAS Synology : récupérer les données d’un disque dur issu d’un RAID1

Je possède un NAS Synology pour archiver mes données.

Pour simplifier, un NAS est un système à part entière qui gère des disques dur de sauvegarde accessibles par le réseau.

Synology en RAID1

Dans mon cas, il s’agit d’un Synology 212+ 2 baies qui accueille deux disques dur de 2 To chacun.

Je les ai mis en RAID1, ce qui signifie que tout ce qui est copié sur le volume est répliqué : les données du disque 1 sont recopiées à la volée sur le disque 2.

raid1

Le RAID1 est donc un système de redondance qui donne au stockage des données une certaine tolérance aux pannes matérielles.

En théorie, si un disque lâche, l’autre aura toutes les données intactes. Enfin, ça c’est la théorie !

Des données qui s’envolent

Au courant de l’année 2013, je sauvegarde quelques séries sur le NAS. Je crée un raccourci dans Nautilus pour pouvoir glisser/déposer facilement les fichiers, ce qui semble un chouilla plus rapide que via l’interface web du Synology.

Note : mes transferts semblent plafonner à 300 ko/s alors que j’utilise du CPL, si quelqu’un connaît un autre moyen d’augmenter ce débit, je suis preneur !

En décembre 2013, je vois les diodes du Syno qui clignotent comme un sapin de Noël : je me loggue et me rends compte qu’un de mes dossiers de sauvegarde est vide.

Incompréhension totale. Je suspecte d’abord une intrusion et vérifie les logs mais je n’ai rien trouvé d’inhabituel. Je penche maintenant pour une erreur de manipulation dans nautilus, même si j’y crois peu. Je débranche le Syno du réseau puis l’éteins.

Récupérer les données d’un disque dur issu d’un RAID1

En décembre 2014, c’est-à-dire la semaine dernière, je me dis que ce serait cool de remettre le Syno en route et de me pencher sur le mystère.

Je retire un disque dur d’une des baies et le branche en USB sur ma machine linux. Voici les étapes qui m’ont permis de lire ce disque.

Lire la suite

Ubuntu : installer Pepper Flash sous Chromium pour lire les vidéos Flash photo

Ubuntu : installer Pepper Flash sous Chromium pour lire les vidéos Flash

Suite à une mise à jour de Chromium, il y a quelques années, j’ai perdu la possibilité de lire les vidéos flash sous Chromium. Bon, étant utilisateur de FireFox, je ne trouvais pas vraiment cela gênant, sauf pour les vidéos YouTube et Dailymotion.

Et puis aujourd’hui, cela m’a un peu agacé alors je me suis un peu penché sur le problème.

Pepper Flash et Chromium

Si on utilise Chrome, pas de souci, le plugin Pepper Flash comme le lecteur PDF natif sont inclus. Si on utilise Chromium par contre, le navigateur est nu et il faut installer Pepper Flash soi-même.

Installer Pepper Flash sous Chromium avec Ubuntu

Si vous possédez Ubuntu 14.04+, un installeur Pepper Flash Player installer est disponible dans les dépôts, il suffit de l’installer avec :

sudo apt-get install pepperflashplugin-nonfree && sudo update-pepperflashplugin-nonfree --installCode language: JavaScript (javascript)

Lire la suite