Détecter des MP3 « tronqués » via sox

Depuis le crash violent de mon disque externe Network (LaCie) en 2012 et une récupération de fichiers dans la douleur, je me retrouvais avec des MP3 « tronqués » : ils faisaient bien leur taille initiale en nombre d’octets, mais à la lecture ils s’arrêtaient brutalement.

Les trier était certes faisable manuellement, mais sur quelques milliers l’opération devient particulièrement..reloue.

Comme tout bon développeur, j’ai trouvé une solution pour que la machine le fasse à ma place 🙂

Via mes contacts, et plus particulièrement Legz, j’ai testé la bibliothèque sox, qui permet de manipuler des fichiers audio (lecture, analyse, etc).

Après 2h de travail (le bash et moi ne sommes pas copains du tout), j’ai pondu ça :

En résumé :
– à l’aide de sox, on coupe le fichier à 0 secondes de sa fin
– vu que sox essaie vraiment d’aller à la fin de ce qui est lisible, sur un MP3 abimé, on a donc un fichier plus court
– on récupère la durée de ce fichier « plus court » et du fichier original, qu’on arrondit
– si la différence est sensible (> 10 secondes), on renomme le dit fichier pour l’identifier par la suite

Essai : http://blog.lahaut.info/2014/12/erreur-proftpd-killed-signal-15-sous-ubuntu-14-04/

Erreur « ProFTPD killed (signal 15) » sous Ubuntu 14.04

Après avoir eu à de nombreuses reprises à relancer un serveur ProFTPD qui s’arrêtait sans raison sur une machine en Ubuntu 14.04, j’ai effectué quelques recherches et trouvé l’article suivant : https://oitibs.com/fix-proftpd-killed-signal-15/, qui donne la solution :

Dans le fichier /etc/init.d/proftpd, il faut changer la commande suivante (autour de la ligne 109, dans la fonction signal() :

start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE"

par

start-stop-daemon --stop --signal $SIGNAL --retry 1 --quiet --pidfile "$PIDFILE"

Le problème est lié au fait que ProFTPD se ne se relance pas lors de la « rotation des ses logs » (quand il archive son log actuel pour en créer un nouveau)

Cours « les bases du HTML »

Dans le cadre de cours HTML/CSS que je donne à l’IDRAC, j’ai créé quelques slides reprenant les principales balises et la structure globale d’une page HTML.

cours_htmlC’est assez survolé, mais ca peut vous servir de base pour expliquer le concept.

Elle utilise la bibliothèque Javascript Reveal.js, qui permet, en plus des effets visuels sympas, d’avoir des slides dans les deux directions (donc par exemple de faire des « colonnes » sur un sujet particulier)

Cette présentation est également disponible sur son dépôt Github (sous une licence CC-BY-NC)

Comment bookmarker/mettre de côté des tweets, pour les lire plus tard ?

Il existe sur Twitter la possibilité de mettre un tweet dans les favoris (cette liste est d’ailleurs publique).

Cela correspond à plusieurs usages, et notamment :

  • indiquer à l’auteur du message son soutien, une marque d’attention, dans le même esprit que les « likes » de Facebook
  • mais surtout, « stocker » ces tweets, afin de par exemple les lire plus tard

Pour ce 2e usage, il existe plusieurs services comme Pocket, ou Readibility, mais, outre le fait qu’il faut s’abonner à un service supplémentaire, cela ne s’intègre pas au client que j’utilise sur ma machine principale (TweetDeck pour Chrome). (et à titre personnel je préfère réserver la fonction de favori à des tweets qui me paraissent « importants ».

J’avais vu passer il y a quelques semaines l’annonce faite par Twitter des Custom Timelines, sans réellement en comprendre le fonctionnement.

Il s’agit en fait d’un outil permettant de grouper ensemble plusieurs tweets (qui n’ont pas besoin d’être reliés par un même hashtag, ou de correspondre à la même recherche par mots-clés).

Points positifs

  • on peut y ranger n’importe quel tweet de n’importe quel utilisateur (tant qu’il est visible)
  • ces listes sont intégrables via le créateur de widgets de Twitter dans n’importe quelle page web/article

Points négatifs

  • la dépendance à TweetDeck pour créer les timelines
  • on ne peut donc les créer depuis le site (peut être depuis des clients tiers, je n’ai pas testé)
  • il n’est pas possible de ré-ordonner les tweets dans la liste, le dernier ajouté est affiché en premier

Mode opératoire pour créer une nouvelle « custom timeline »

  • utiliser TweetDeck (sur n’importe quel navigateur), avec vos identifiants Twitter habituels
  • cliquer sur le bouton « Custom timelines » en bas à gauche de l’application :
    tuto_timeline_1
  • cliquer sur « Create custom timeline » :
    tuto_timeline_2
  • saisir ensuite un nom (obligatoire) et une description (ça, par contre, c’est facultatif) :
    tuto_timeline_3
  • enfin, il ne vous reste qu’à y glisser des tweets via la petite icône en forme de croix en bas à droite de chaque message (par un simple glisser-déposer) :
    tuto_timeline_4
  • le menu d’options de chaque timeline vous permet (en plus des options habituelles de filtrage) d’obtenir l’URL publique de cette liste de tweets et le code d’intégration (« embed ») :
    tuto_timeline_5

La custom timeline créée pour cet article est par exemple accessible via l’URL suivante : https://twitter.com/SamyRabih/timelines/418461215505936384

Et si on utilise le code d’intégration fourni (avec les options par défaut), le résultat est le suivant :


Comment obtenir le code d’intégration des « custom timelines » (pour son blog, par exemple) ?

Attention : on ne peut intégrer créer un code d’intégration que pour les timelines créées depuis le compte avec lequel vous êtes connecté(e) (en clair, vous ne pouvez générer le code d' »embed » pour une liste personnalisée d’un autre utilisateur)

A noter : comme tous les widgets Twitter, si vous le supprimez de votre compte, il ne s’affichera plus dans les pages où il a été inséré

« Refresh Blocker » Firefox extension fork

One of my friends was talking me about the « auto meta refresh » of some websites like LeMonde.fr, and I was looking for a way to block it. The RefreshBlocker Firefox extension is the perfect tool for it.

But it displays an annoying notification in the header of the pages :

notification

So I made a fork of this extension, to remove the notification : RefreshBlocker 0.8 (« no notifications » version)

(the original add-on is located on its page on the Firefox plugins website)

Some similar plugin exists for Chrome : Stop AutoRefresh

Traduction en français du thème « Desk Mess Mirrored »

Ce thème assez sympa graphiquement ne disposait malheureusement pas d’une traduction française : c’est désormais chose faite !

Traduction en français du thème « Desk Mess Mirrored » v2.0.3

Vous pouvez télécharger le thème complet sur la page du thème sur le répertoire des thèmes WordPress.

Note : le thème dans sa version actuelle souffrant d’un bug empêchant les traductions de fonctionner, il vous faudra également remplacer le fichier functions.php du thème par celui disponible dans le ZIP téléchargeable plus haut.

[Astuce] Ne pas coder « en dur » la variable id_lang dans les modules Prestashop

En effet, entre Prestashop 1.4 et 1.5, les valeurs par défaut de la table ps_lang ont changé. Donc la valeur de id_lang pour le français est passé de 2 à 4.

Evitez donc de la coder en dur dans vos modules (c’est-à-dire mettre la valeur numérique dans vos requêtes, du style « WHERE id_lang=2 ») et privilégiez plutôt :

$cookie->id_lang pour Prestashop 1.4

Context::getContext()->language->id pour Prestashop 1.5

Utiliser la navigation à facettes de Prestashop

 

La navigation à facettes, apparue avec la version 1.4 de Prestashop (mais réellement utilisable à partir de la version 1.4.5), permet d’une manière assez simple de définir des critères pour filtrer les résultats d’une catégorie (comme on le retrouve sur Pixmania ou d’autres sites de e-commerce).Elle fonctionne de la manière suivante : vous allez déterminer des modèles (c’est à dire un ensemble de critères, comme les caractéristiques (capacité, etc), les marques, l’état du stock, etc).Ensuite vous allez pouvoir associer ces modèles à des catégories, par exemple le modèle « pour les appareils photo » aux catégories comprenant les appareils photo.

Continuer la lecture de « Utiliser la navigation à facettes de Prestashop »

Traduction française actualisée du plugin WordPress « Custom Field Template »

Dans un de mes récents projets, j’ai (re)découvert le plugin « Custom Field Template », qui vous permet de facilement créer des formulaires d’édition de vos champs personnalisés (en clair, étendre les champs associés à un article, par exemple pour des annonces immobilières).

La traduction française fournie avec la dernière version (au 01/12/2011) datant un peu, voici la traduction française actualisée du plugin Custom Field Template pour WordPress

(décompressez le contenu du .zip et copiez-le directement dans le dossier du plugin)

Passer de BlogSpirit à WordPress : nouvelle version de l’importeur !

Suite à un commentaire de Capripot, j’ai découvert son travail sur l’importeur BlogSpirit vers WordPress que j’avais moi-même repris à l’époque. Il a notamment corrigé les problèmes suivants :

* importation des article se basant sur la page complète de la liste des articles par catégorie
* « / » en trop à la fin de l’adresse ce qui empêchait l’import des articles d’une catégorie
* bug de version lors de l’import dans wordpress)
* script un peu plus bavard
* choix du nom au départ ou écriture du nom du blog dans NOM_SITE.txt
* dialog.rb renommé en import.rb pour plus de clareté
* non blocage du script à la fin
* correction de l’import des commentaires
* ajout d’un fichier LISEZ-MOI

Télécharger nouvelle version importeur BlogSpirit vers WordPress

Son site : http://www.capripot.com/

Et vous pouvez retrouver l’outil pour passer d’OverBlog à WordPress sur la page dédiée