Deblan blog

Simon Vieille

DevOp animé par la culture du libre et du hacking

Ce qui me fait détester votre site web en 2019

Ce qui me fait détester votre site web en 2019

https://iampox.com/blog/ce-qui-me-fait-detester-votre-site-web-en-2019

Je partage complétement ce qui est expliqué dans cette article. Naviguer sur des pages web, c'est passer plus de temps à arrêter des vidéos en lecture automatique ou fermer des pop-in que de lire son contenu…

Lien permanent


Équivalent du MATCH AGAINST de MySQL sur PostgreSQL

Le blog est propulsé sur un système de gestion de contenu écrit sur Symfony. Les données sont gérées dans une base MariaDB et ça tourne très très bien :)

Pour apprendre à utiliser PostgreSQL, je me suis donné comme défi de rendre compatible ce blog avec PostgreSQL. Fort heureusement, j'ai un ORM et 90% du boulot est géré par 3 lignes de configuration.

Le moteur de recherche est un peu plus compliqué à migrer puisque j'ai généré des requêtes en dehors de l'ORM. Son fonctionnement est relativement standard car quand un utilisateur saisi des mots clés, une première requête SQL va donner un score aux articles du blog publiés et je vais afficher ceux qui dépassent une valeur donnée.

Pour ce faire, j'utilise MATCH AGAINST de MySQL/MariaDB et la requête donne ça :

SELECT
    post.id,
    post.title,
    post.tags,
    MATCH(post.title) AGAINST(:search) AS MATCH_TITLE,
    MATCH(post.content) AGAINST(:search) AS MATCH_CONTENT,
    MATCH(post.tags) AGAINST(:search) AS MATCH_TAGS
FROM post
WHERE
    post.active = 1 AND
    post.published_at < :date
ORDER BY
    MATCH_TITLE DESC,
    MATCH_TAGS DESC,
    MATCH_CONTENT DESC

Pour obtenir des résultats équivalents avec PostgreSQL, la requête doit changer car MATCH AGAINST n'existe pas et comme PostgreSQL offre des outils beaucoup plus complets, c'est moins évident. Je trouve d'ailleurs que la documentation est assez peu claire à ce sujet. J'ai mis du temps à pondre une requête qui fonctionnait. La voici :

SELECT
    post.id,
    ts_rank(to_tsvector(post.title), query) as match_title,
    ts_rank(to_tsvector(post.tags), query) as match_tags,
    ts_rank(to_tsvector(post.content), query) as match_content
FROM
    post,
    plainto_tsquery(:search) query
WHERE
    post.active = true AND
    post.published_at < :date
ORDER BY
    match_title DESC,
    match_tags DESC,
    match_content DESC

Dans les 2 cas, :search correspond aux mots clés et :date représente la date où la recherche est faite.

Les scores ne sont pas du même ordre de grandeur mais je retrouve des résultats équivalents sur les 2 moteurs de base de données.


Glyn Moody sur l’article 13 – Une aberration judiciaire

Glyn Moody sur l’article 13 – Une aberration judiciaire

https://framablog.org/2019/02/13/glyn-moody-sur-larticle-13-une-aberration-judiciaire/

L'émancipation des grosses plateformes centralisatrices est une des réponses à ces débiles qui pondent des lois proportionnellement toutes aussi débiles.

Héberger des contenus à la maison fonctionne très bien et c'est le moment d'y songer ! Et si vous préférez les chatons alors visitez Chatons.org.

Lien permanent


Le communautaire fonctionne mieux que le propriétaire

Au moment où j'écris cet article, ça fait un an que j'ai rejoint le groupe Zenitude avec comme nouveau métier pour moi, la responsabilité du parc informatique au sens large (support logiciel, support matériel, développement, administration système).

Aujourd'hui, ma conclusion est très radicale : les solutions logicielles open-source/libres fonctionnent mieux que les solutions propriétaires et le support communautaire est largement plus efficace que le support fournit par les sociétés commerciales. La majorité des problèmes que je rencontre est liée aux solutions propriétaires.

Le simple fait de pouvoir regarder le code source d'une application pour en comprendre son fonctionnement, voire même de le modifier est un gain considérable de temps et d'argent. Ne pas avoir la faculté d'appliquer un patch correctif temporaire avant une correction en upstream est un vrai problème qui coûte beaucoup de temps (et donc d'argent).

Je pense que beaucoup d'entreprises perdent du temps, de l'argent et beaucoup d'énergie en s'entêtant à éviter les solutions open-sources ou libres.

Meme open-source


Bande annonce du film "La bataille du libre" (version 3min VF) / Sortie officielle début 2019

https://vimeo.com/309626671

« La bataille du Libre » film documentaire (version 87mn du film "Internet ou la révolution du partage" bientôt diffusé…

Lien permanent