Une personne portant un t shirt orange est assise, penchée sur un ordinateur portable, les mains tenant sa tête en signe de frustration, probablement après avoir reçu des courriels de l'Éducation Nationale dont elle souhaite se désabonner. Une tasse turquoise et des écouteurs blancs sont posés sur la table à côté d'eux, sur un fond uni et clair.

Se désabonner des listes syndicales de l’Éducation Nationale

La communication dans l’Éducation Nationale est devenue un véritable défi pour les enseignants. Notre messagerie académique, autrefois outil professionnel essentiel, se trouve aujourd’hui submergée par un flot incessant de messages syndicaux, dont la pertinence est parfois discutable. Cette situation, loin d’être anodine, contribue à une surcharge informationnelle préoccupante.

La multiplication des canaux de communication

La messagerie académique n’est plus le seul vecteur d’information pour les professeurs. L’Environnement Numérique de Travail (ENT) et Pronote sont venus s’ajouter à l’arsenal communicationnel, offrant des fonctionnalités telles que la messagerie interne, les discussions et les chats. Cette diversification des canaux, bien qu’elle puisse sembler pratique à première vue, engendre en réalité une charge mentale considérable pour les enseignants.

L’impact sur le quotidien des enseignants

La gestion de multiples plateformes de communication nécessite un temps et une énergie non négligeables. Les enseignants se retrouvent contraints de jongler entre différents systèmes, chacun avec ses propres notifications et interfaces. Cette fragmentation de l’attention peut nuire à la concentration et à l’efficacité dans les tâches pédagogiques essentielles.

La surcharge informationnelle

L’afflux constant de messages, qu’ils soient syndicaux, administratifs ou pédagogiques, crée un bruit de fond informationnel difficile à gérer. Les informations importantes risquent de se perdre dans cette masse, rendant ardu le tri entre l’essentiel et le superflu. Cette surcharge peut mener à un sentiment de submersion et de stress chez les professeurs.

La nécessité de réduire le flux d’informations

Face à cette situation, il devient crucial de mettre en place des stratégies pour réduire le nombre de messages reçus. Une approche efficace consiste à se désabonner des listes syndicales jugées moins pertinentes pour sa pratique professionnelle. Cette démarche permet non seulement de diminuer le volume de courriels, mais aussi de recentrer son attention sur les informations véritablement utiles.

Le défi du désabonnement manuel

Jusqu’à présent, se désabonner des listes syndicales pouvait s’avérer fastidieux. Le processus impliquait de se rendre sur une page dédiée et de décocher manuellement chaque liste, une par une. Pour de nombreux enseignants, cette tâche chronophage s’ajoutait à une liste déjà longue de responsabilités administratives.

Lire la suite

Javascript : afficher le contenu d'un bloc HTML après un délai variable photo

JavaScript : afficher du contenu dans un bloc DIV après un délai défini

Voici comment afficher du contenu (texte, HTML, JS, CSS ou tout autre contenu) dans un bloc DIV, après un délai que vous aurez préalablement défini, le tout en JavaScript.

C’est écrit en JavaScript pur (vanilla JavaScript), c’est-à-dire sans librairies supplémentaires, et donc compatible avec tous les navigateurs. On utilise innerHTML pour faire apparaître la div après le délai imparti.

Exemple de contenu affiché après un délai

Le texte suivant apparaît 7 secondes après le chargement de la page :

Le code : afficher le contenu d’une DIV après un délai

Voici le style CSS à placer dans l’entête de la page (HEAD) :

.centered {
    margin:0 auto;
    text-align:center;
}Code language: CSS (css)

Et voici le contenu HTML à placer dans le corps de la page (BODY):

<div id="example_div" class="centered"> </div>Code language: HTML, XML (xml)

Ainsi que le code JavaScript qui s’occupe du délai:

/*
|-----------------------------------------------------------------------
| Delayed DIV text in vanilla JavaScript by Matt 
| URL : https://www.skyminds.net
|-----------------------------------------------------------------------
|
| Returns predefined text in a DIV after a delay.
|
*/
(function(){
   var element_id = 'example_div' ; /* name of div ID w/ delayed text */
   var delayed_text = "Ceci est un texte d'illustration pour tester l'affichage d'un bloc DIV après un délai défini."; 
   var time = 7; /* time in seconds until display */

setTimeout(function(){
document.getElementById(element_id).innerHTML = delayed_text;},time*1000);
})();Code language: JavaScript (javascript)

Fonctionnement du script

Voici comment fonctionne le script : on recherche le bloc DIV qui possède l’identifiant #exemple_div et on lui injecte le contenu de la variable delayed_text après le délai en secondes défini dans la variable time.

Ne pas oublier d’échapper les slash par des antislash dans les balises de fermeture (liens, paragraphes etc) dans la variable delayed_text.

Simple et efficace.

Bash : réparer les tables MySQL en cas de crash photo

Bash : rechercher une chaîne dans des fichiers de manière récursive avec Grep

Bash

Voici une petite technique utile pour rechercher la présence d’une chaine de texte dans le contenu des fichiers d’un répertoire.

Sous linux, j’utilise très fréquemment la commande grep.

La syntaxe de grep

La syntaxe de grep est toute simple puisqu’elle consiste à définir des options de recherche, suivies des mot-clés à chercher, et enfin du répertoire de travail.

Voilà ce que cela nous donne :

grep [option] "text string to search" directory-pathCode language: JavaScript (javascript)

Grep en action

Sur le serveur, on se place dans le répertoire de travail pour y lancer cette commande :

grep --color --include=\*.{php,js,css} -rnwe "recherche" . Code language: PHP (php)

Voici le détail des arguments :

  • --color : pour activer la colorisation des résultats
  • --include=\*.{php,js,css} : les extensions de fichiers à cibler
  • -r : de manière récursive
  • -n : avec les numéros de ligne
  • -w : mots complets de la recherche (recherche stricte)
  • -e : active la regex sur les extensions de fichiers

Note : le terme à recherche doit être entre guillemets et il faut bien ajouter le point (.) final ou alors explicitement donner le chemin complet du répertoire de travail.

Grep et les expressions régulières

Il est également possible d’utiliser des expressions régulières avec Grep :

grep --color -HnR "add_[a-zA-Z].*_page.*, [0-9]*," /home/public_html/wp-content/plugins/Code language: JavaScript (javascript)

Très utile pour rapidement trouver une fonction devenue obsolète ou un bout de code utilisé dans plusieurs fichiers.

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

disk-doctor

Linux : résoudre l’erreur de montage/démontage de disque dur “Error unmounting: umount exited with exit code 1: helper failed with: umount: only root can unmount”

Sur mon ordinateur, surnommé The Reaper, j’ai plusieurs disques dur : mon disque principal est un disque formaté en EXT4, entièrement dédié à Linux.

Les deux autres disques durs sont formatés en NTFS car ils datent du temps où j’avais Windows dessus.

Le problème : un disque en lecture seule

disk-doctor

L’autre jour, Cécile cherche à sauvegarder ses fichiers sur son disque externe, qui ne semble pas être détecté.

Je lui propose alors le mien et le branche sur ma machine pour voir s’il reste de la place dessus.

Je le monte et là je m’aperçois qu’il est en mode lecture seule (aka read-only ou r-o) : impossible de copier le moindre fichier dessus alors qu’avant c’était bien possible.

Après de multiples recherches, essais, installations de paquets divers et variés, la situation a un peu changé : mes 2 disques internes se montent maintenant automatiquement au démarrage du système (ce que je ne veux absolument pas).

Lorsque je veux les démonter, j’obtiens le fameux message d’erreur “Error unmounting: umount exited with exit code 1: helper failed with: umount: only root can unmount” qui me dit en substance que seul l’utilisateur root peut monter ou démonter le disque.

Bref, je tombe de Charybde en Scylla. Voici comment régler la situation une bonne fois pour toute, disques internes et externes à la fois.

1. On liste les disques du système avec :

df

2. On démonte les disques en question (sda chez moi) :

sudo umount /dev/sda1

3. On installe le paquet ntfs-config :

sudo apt-get install ntfs-configCode language: JavaScript (javascript)

4. On lance ntfs-config depuis Applications > Outils Système > Outil de configuration NTFS ou depuis le terminal avec :

gksudo ntfs-config

5. On active l’écriture des disques internes et externes :

ntfs-config

6. On édite le fichier de configuration /etc/fstab :

sudo nano /etc/fstab

et on retire les lignes qui correspondent aux disques durs dont on ne veut pas le montage automatique. Vous pouvez commenter les lignes pour plus de sécurité.

7. Voilà, vous devriez être en mesure d’accéder à vos disques durs normalement.

Conclusion

J’ai beaucoup joué avec les options avancées de ntfs-config mais je ne suis pas sûr d’en maîtriser toutes les subtilités.

J’ai retrouvé un accès complet à mes disques en montage/démontage/lecture/écriture en éditant le fichier /etc/fstab et en supprimant les lignes relatives aux disques incriminés. Et depuis tout va bien.

Améliorer ses graphiques avec le minimalisme

Aujourd’hui, j’ai trouvé cette petite animation qui explique comment créer des graphiques plus attirants et plus lisibles :

Il est donc utile de retirer le fond, les étiquettes et légendes redondantes, les bordures, le nombre de couleurs, les effets spéciaux et la mise en gras.

Il faut adoucir les étiquettes en mettant du gris au lieu du noir et adoucir voire supprimer les lignes.

Et enfin, ne garder que les étiquettes ou titres qui ont le plus d’impact pour la compréhension du graphique. Tout ce qui est superflu doit disparaître pour plus de lisibilité et de compréhension.

Bienvenue dans l’ère du minimalisme !

Lire la suite

PHP : résoudre l'erreur "Redefining already defined constructor for class ..." photo

PHP : résoudre l’erreur “Creating default object from empty value”

php-logo

Suite à la mise à jour de PHP, mon fichier d’erreurs du site a commencé à afficher le message suivant :

PHP Warning: Creating default object from empty value in /wp-content/themes/skyminds/functions.php on line 1213

La ligne en question correspond à :

$posts[0]->comment_status = 'closed';Code language: PHP (php)

Le problème réside dans le fait que $posts n’est pas explicitement défini et comme les versions récentes de PHP tournent maintenant avec le mode E-STRICT par défaut, on obtient une erreur. Il existe deux solutions – soit mettre :

$posts = new stdClass();Code language: PHP (php)

s’il sagit d’un objet, soit mettre :

$posts = array();Code language: PHP (php)

s’il s’agit d’une associative array, juste avant la ligne de code incriminée. Dans mon cas, l’array() est la bonne solution.

PHP: résoudre l'erreur "file_get_contents(): SSL operation failed with code 1" photo

PHP : résoudre l’erreur “assigning the return value of new by reference is deprecated”

Si, lors d’une journée de débuggage PHP, vous tombez sur l’erreur suivante :

Deprecated: Assigning the return value of new by reference is deprecated in  on line 12 Code language: JavaScript (javascript)

pas de panique, c’est extrêmement simple à résoudre. Vous avez probablement une ligne dans ce goût-là :

$data =& new Structured_Info();Code language: PHP (php)

Or, depuis PHP5, le passage par réference est systématique sur new, donc il suffit d’enlever le ‘&’ et d’écrire :

$data = new Structured_Info();Code language: PHP (php)

Tout simplement.

Linux : vider un fichier de son contenu avec la commande truncate photo

Linux : vider un fichier avec truncate

truncate

De temps en temps, il peut être utile de pouvoir effacer le contenu d’un fichier qui prend de l’embonpoint, comme un fichier de log par exemple.

Dans ce cas, vous pouvez lancer la commande truncate sous linux dans un terminal :

truncate -s 0 /home/skyminds/error.log

L’argument -s 0 signifie que l’on réduit sa taille (size) à zéro. Simple et efficace !

fireofx-aurora

Ubuntu : installer la dernière version de Firefox

Sur ma machine principale, j’utilise principalement Firefox parce que j’y ai mes habitudes : passwords, bookmarks, extensions. Or, je tourne sous 10.10 parce que j’aime bien Gnome et que je ne veux pas passer à Unity. Bref, je suis resté en 10.10 et en 10.10, on a le droit qu’à Firefox 12 !

fireofx aurora

Voici donc comment mettre Firefox à jour sur une “vieille” Ubuntu.

Etape 1 : vérification du fichier /etc/apt/sources.list

On commence par vérifier que le fichier /etc/apt/sources.list ne contient pas d’entrées obsolètes ni de sources externes pour l’installation de firefox (genre mozilla-daily-builds etc) :

sudo nano /etc/apt/sources.list

Etape 2 : ajout du dépôt firefox-aurora

Nous allons y ajouter le dépôt firefox-aurora :

deb http://ppa.launchpad.net/ubuntu-mozilla-daily/firefox-aurora/ubuntu/ lucid main 
deb-src http://ppa.launchpad.net/ubuntu-mozilla-daily/firefox-aurora/ubuntu/ lucid main 

Lire la suite

xmarks

Firefox : migrer de Xmarks à LastPass

xmarks

J’ai récemment installé Linux Mint Debian Edition sur mon laptop. L’OS est beau, stable, on trouve facilement ses marques lorsqu’on vient d’Ubuntu et il n’y a pas des mises à jour à faire tous les jours.

Sous Firefox, j’ai l’habitude de synchroniser mes marque-pages et mots de passe avec l’extension Xmarks.

Cela me permet d’avoir tout le temps mes favoris et de ne pas avoir à me souvenir de 43 743 différents mots de passe.

Le problème : impossible de rapatrier les mots de passe depuis le serveur Xmarks

Lorsque l’on installe une version récente d’Xmarks, on peut rapatrier les marque-pages mais l’option pour rapatrier les mots de passe n’est plus disponible.

Xmarks a été racheté par LastPass il y a 2 ans et ils ont commencer à vous pousser à migrer la gestion des mots de passe avec l’extension LastPass.

Je préfère n’installer qu’une seule extension (qui a fait ses preuves) plutôt que de devoir en réinstaller une autre.

La solution : rapatrier les mots de passe

En fait l’option de rapatriement des mots de passe est juste cachée dans Xmarks dorénavant : ceux qui l’utilisent depuis longtemps la voient toujours, les petits nouveaux (ou qui viennent de l’installer) ne la voient pas par défaut pour les décourager de l’utiliser.

Lire la suite

CSS : définir la taille d'un champ texte photo

CSS : forcer le retour à la ligne du code pre en CSS3

Je me suis rendu compte en rédigeant mes articles sur l’installation du serveur dédié que le code bash, lorsqu’il était un peu long, n’allait pas à la ligne automatiquement.

Il était écrit d’une seule ligne dans son conteneur, forçant une barre de navigation horizontale bien disgracieuse… Heureusement, cela est maintenant une chose du passé.

Le code est affiché sur le site avec la balise pre, qui permet l’affichage d’un texte pré-formaté.

Or la particularité de cette balise est qu’elle désactive le retour à la ligne. Voici une astuce en CSS pour contre-carrer cet effet indésirable.

/* Forcer le retour à la ligne de la balise PRE - skyminds.net */		
pre {
   white-space: pre-wrap;             /* CSS3 */
}Code language: CSS (css)

Lire la suite