Journal Optimisez votre code !

Posté par  . Licence CC By‑SA.
Étiquettes :
75
7
déc.
2017

Cher journal,
Je voudrais te raconter une histoire, qui n'est peut-être pas encore finie d'ailleurs, qu'on pourrait résumer en 1 mot : OPTIMISATION !

Tout commence en tout début d'année : je suis embauché chez Chacun cherche son Film, une toute petite (5, moi inclus) boite qui développe un site Web faisant la promotion du cinéma indépendant. Cette boite a fait le (très mauvais, comme on va le voir) choix de faire développer son site par une boite de prestation (…)

Journal TapTempo.sql

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
72
8
juil.
2023

Ce journal fait suite à la dépêche publiée mardi à propos de SQLPage. Si vous ne l'avez pas encore lu, c'est le moment !

Pour résumer: SQLPage est un petit serveur web qui permet de réaliser des applications web complètes en SQL.

Pas de bras, pas de chocolat

Il se trouve que SQL est l'un des rares langages de programmation populaires pour lequel il n'y a pas d'implémentation de TapTempo. La raison semble assez évidente: le principe de (…)

Requêtes et jointures avec pgModeler (PostgreSQL)

Posté par  . Édité par BAud, Davy Defaud, Ysabeau 🧶 🧦, Benoît Sibaud, claudex et ZeroHeure. Modéré par claudex. Licence CC By‑SA.
64
29
jan.
2020
Base de données

Bon, voilà, j’ai développé ce greffon pour pgModeler (C++/Qt), et j’ai envie de le partager dans une petite dépêche.

Mes motivations principales étaient de pouvoir effectuer des requêtes dans mon logiciel de modélisation préféré, bien entendu, et le fait que les logiciels de modélisation que je connais ne prennent pas en charge les jointures existantes ou automatiques.

Votre client SQL est cool ? Mais est‑il cool à ce point ?! :)

Rapide présentation de pgModeler

pgModeler est un logiciel de modélisation de base de données. Bien que plutôt généraliste — si l’on s’en tient à un modèle logique des données — il est spécialisé PostgreSQL. Il permet entre autres de :

  • construire par interface graphique un modèle de base de données (tables, schémas, rôles…), mais bien plus ; en fait, il propose toutes les fonctionnalités offertes par PostgreSQL, allant jusqu’aux extensions PostGIS ;
  • créer une base de données à partir d’un modèle : passer de la représentation à l’implémentation ;
  • à l’inverse, créer un modèle à partir d’une base de données ;
  • comparer une instance PostgreSQL avec un modèle et produire — voire réintégrer — les différences entre schémas ;
  • administrer sa base, avec un module riche, mais qui n’égalera sans doute pas pgAdmin ;
  • produire un dictionnaire des données.

Des discussions sont en cours pour rendre pgModeler nativement compatible avec les autres systèmes de gestion de bases de données relationnelles (SGBDR) grâce à l’excellent extracto‑chargeur (ETL) pgLoader.

Journal Graph my database

Posté par  . Licence CC By‑SA.
58
28
mar.
2021

Que ceux qui n'aiment pas les graphes quittent immédiatement ce journal.

Je travaille sur Mobilizon, le logiciel développé par Framasoft, pour s'affranchir de Faïcebouc dans l'organisation de groupe et d'événements.

Je voulais avoir une représentation graphique du modèle de données. Pas à la main bien sûr, mais construit à partir de la base de prod.

Comme j'utilise au quotidien SquirrelSQL et qu'il a un plugin graph, essayons :


Pas terrible. Direction un moteur de recherche web.

Je trouve (…)

Journal Fusionner deux profils signal-desktop pour retrouver ses conversations

Posté par  . Licence CC By‑SA.
54
18
avr.
2022

Me revoilà pour un journal un peu technique. On part à l’aventure et on va notamment parler de Signal, de SQL, SQLite, de son extension fts5 (vite fait) et de SQLCipher (variante de SQLite capable de chiffrer les bases de données, découverte à l’occasion), et de fusion de deux bases de données Signal pour reconstruire un historique complet et « réparer » un profil Signal un peu moisi.

Généralités sur Signal

Signal est une application de messagerie instantanée chiffrée de (…)

Écrire une appli web en une journée avec SQLPage

Posté par  (site web personnel) . Édité par Nÿco, Benoît Sibaud, gUI, BAud et bobble bubble. Modéré par Nÿco. Licence CC By‑SA.
54
4
juil.
2023
Technologie

Aujourd'hui, je souhaite vous présenter le logiciel SQLPage, un outil open-source (MIT) qui permet de développer des applications web complètes, avec une belle interface graphique et une base de données, entièrement en SQL.

Le SQL est un langage très simple, qui permet de faire des recherches dans des base de données. Il est utilisé depuis les années 80, et est encore omniprésent aujourd'hui. Contrairement aux langages de programmation traditionnels, on peut apprendre les bases de SQL en une journée, et commencer à faire des requêtes complexes croisant plusieurs tables de données très rapidement.

Dans une application web traditionnelle, on développe aujourd'hui en général trois composants :

  • un front-end, qui gère uniquement l'interface utilisateur,
  • un back-end, qui traite les requêtes du front-end et contient le cœur de la logique de l'application lorsque celle-ci est complexe,
  • une base de données qui va stocker et structurer les données, s'assurant de leur cohérence et de leur bonne organisation.

Les deux premiers éléments sont en général ceux sur lesquels les programmeurs passent le plus de temps lors du développement d'une application. Et pourtant, c'est souvent le dernier, la base de données, qui contient la substantifique moelle de l'application !

Ce que propose SQLPage, c'est de s'abstraire complètement du back-end et du front-end, et générer toute une application entièrement en SQL. Nous allons voir ici comment c'est possible, avec un exemple concret d'application que nous allons construire ensemble en SQL : à la Tricount.com, une petite application qui permet de gérer ses comptes entre amis.

École Inclusive: une application libre pour la prise en charge des élèves en situation de handicap

Posté par  (site web personnel) . Édité par DSMejantel et Ysabeau 🧶 🧦. Modéré par Ysabeau 🧶 🧦. Licence CC By‑SA.
49
6
mar.
2024
Éducation

Directeur adjoint d’un collège en Occitanie, chargé de la SEGPA et de l’accueil des élèves en situation de handicap, je me suis retrouvé dans une situation où le suivi des élèves et de leurs accompagnants devenait difficile, notamment par manque d’outils adaptés.

Loin de me décourager, j’ai créé ma propre application de suivi, École Inclusive, en utilisant le cadriciel libre SQLPage et la publie aujourd’hui sous licence GPLv3. Ce projet a été possible grâce au support proposé par la documentation en ligne et à de fréquents échanges avec Ophir Lojkine, créateur de SQLPage.

Sans aucune connaissance préalable en programmation, j’ai réalisé toute cette application en SQL. Cela permet un large panel de fonctionnalités pour École Inclusive, qui gère tout le suivi horaire des élèves, des classes et des accompagnants, les emplois du temps, les statistiques, les notifications, l’identification des utilisateurs avec plusieurs niveaux de permission.

Logo

SPARQL, le SQL du Web, et Linked Data Fragment : le point sur le requêtage du Web

Posté par  . Édité par Davy Defaud, bubar🦥, palm123, Benoît Sibaud et ZeroHeure. Modéré par Nils Ratusznik. Licence CC By‑SA.
Étiquettes :
48
1
jan.
2017
Base de données

« Chère pêche »,

En ce début d'année, il ne me semble pas inutile de faire le pont entre la rétrospective et la perspective, afin de conjuguer l’avenir du Web au présent. :-)

Le but de cette dépêche est de faire un tour d’horizon de technologies permettant de faire des requêtes sur des données structurées : le Web sémantique. Comment il a évolué en dix ou quinze ans et ce qu’il permet de faire. Après une introduction contextuelle et historique, il sera question de Sparql et de linked data fragments, ainsi que de leurs usages en pratique chez Wikimedia Foundation.

Accrochez‐vous à votre fauteuil, il va être question de niveaux d’abstractions, d’enrichissement croisé de données, de manipulation de tables, de la pertinence du choix de RDF par rapport à SQL, des outils utilisés par les contributeurs Wikimedia mis au point par les développeurs du projet et, enfin, des limites actuelles et d’un avenir possible.

Journal web moderne, bases de données et beauté logiciel libre

47
11
juin
2014

J'aimerais parler ici de mon expérience lors du développement de sql.js, un port de SQLite en javascript. Pour ceux qui ne s’intéressent pas aux technologies du web, la fin de ce journal pourrait quand même vous intéresser, on va parler de SQLite.

Web moderne

Ceux d'entre vous qui s'intéressent aux technologies modernes du web ont certainement entendu parler d’emscripten, et d’asm.js.

Emscripten est un compilateur de bitcode LLVM en Javascript. Il permet de compiler du (…)

Migrer de Oracle à PostgreSQL : Ora2Pg

Posté par  (site web personnel) . Édité par baud123, Florent Zara, olivierweb et Yves Bourguignon. Modéré par claudex. Licence CC By‑SA.
Étiquettes :
45
13
mar.
2012
Base de données

Une nouvelle version 8.10 de Ora2Pg est sortie ce 2 mars 2012 ; cet outil, développé en Perl depuis 2005, permet d'exporter le schéma d'une base de données Oracle vers PostgreSQL. Il est disponible sous licence GPL3+.

Les fonctionnalités de migration automatique proposées concernent les schémas, mais aussi les données et — en partie — les fonctions voire les procédures PL/SQL :

  • export de schéma complet
    • tables, vues, séquences, index
    • droits/privilèges pour des utilisateurs et groupes
    • export des vues Oracle en tant que table PostgreSQL
  • export de données
    • par table
    • export complet des données ou par sélection via une clause WHERE
    • gestion des objets BLOB Oracle en tant que PG BYTEA
  • export des fonctions prédéfinies, triggers, procédures, packages
    • assistance simple à la conversion de code PL/SQL en code PL/pgSQL
    • pour le code spécifique PL/SQL, la conversion reste principalement manuelle

Ce genre d'outil permet de migrer un parc de bases de données Oracle vers un vrai gestionnaire de base de données relationnelles libre tel que PostgreSQL. Les retours d'expérience sont les bienvenus ! Cela peut être la première étape d'une migration, sans oublier d'effectuer les adaptations et tests de non-régression des développements applicatifs se connectant à votre base de données.

Sortie de PostgreSQL 9.2

Posté par  (site web personnel) . Édité par Davy Defaud, Nÿco, Benoît, claudex, baud123 et Florent Zara. Modéré par Florent Zara. Licence CC By‑SA.
Étiquettes :
40
10
sept.
2012
Base de données

Le gestionnaire libre de base de données relationnelle PostgreSQL vient de sortir en version 9.2. Cette version est principalement axée sur l’amélioration des performances.

Logo PostgreSQL

Des informations très détaillées se trouvent sur la page du wiki « What's new in PostgreSQL 9.2 ». La liste des principales nouveautés se trouve en seconde partie de dépêche.

Journal Des emojis en SQL ? C'est possible… et on peut aller au-delà !

Posté par  (site web personnel, Mastodon) .
Étiquettes :
31
9
mar.
2019

Le saviez-vous ?

On peut utiliser des emojis en SQL, et pas seulement pour les manipuler : les emojis peuvent servir d'identifieurs !

Avec PostgreSQL, peut donc faire des choses comme :

CREATE TABLE 👤(
    🔑 INTEGER PRIMARY KEY,
    🗣 varchar(64), -- name
    🗓 DATE -- date of registration
);

Voire carrément :

CREATE TYPE  AS ENUM ('🤢', '☹', '😐', '🙂', '😍');

-- [...]

-- select
(…)

Exploitez vos SGBD grâce à dbSQWare

Posté par  (site web personnel) . Édité par Nÿco et claudex. Modéré par Pierre Jarillon. Licence CC By‑SA.
30
24
mai
2014
Base de données

Une petite précision tout d'abord sur ce qu'est un SGBD ! Voici ce que nous écrit Wikipédia à ce sujet "En informatique un système de gestion de base de données (abr. SGBD) est un logiciel système destiné à stocker et à partager des informations dans une base de données, en garantissant la qualité, la pérennité et la confidentialité des informations, tout en cachant la complexité des opérations."
Il en existe un grand nombre, plus ou moins libres et plus ou moins répandus. Dans les plus connus du monde libre, il y a notamment MySQL, PostgreSQL…

À l'heure actuelle, une grande majorité des applications voulant stocker de l'information le fait dans un SGDB. Par exemple, nombre de sites web sont développés en environnement LAMP dont le "M" vient de MySQL. Vient ensuite une autre précision à donner sur ce qu'est "l'exploitation" de ces SGBD. Cela regroupe en fait les tâches récurrentes (souvent automatisées) faites par les administrateurs de bases de données.

La première qui vient à l'esprit est celle de backup (sauvegarde). En général, quand on stocke de l'information, c'est que l'on ne veut pas la perdre ! Il est donc de bon ton d'avoir un système de backup efficace qui nous permettra de récupérer nos données perdues ou altérées en cas de problème (matériel, logiciel, erreur humaine…).

Viennent ensuite les tâches dédiées à la performance comme l'update statistics ou la réorganisation (là, on est dans le barbare pour certains, mais on tâchera d'écrire un article dessus si cela intéresse du monde).

Et enfin, il est bien de pouvoir avoir une vision globale de son parc de SGBD en terme de type, version, volumétrie… c'est ce que l'on appelle la gestion de la CMDB et du capacity planning.

Un outil a été développé dans ce sens pour regrouper toutes ces tâches (et bien d'autres), il s'agit de dbSQWare.

Désolé, j'ai forké

Posté par  (site web personnel) . Édité par BAud, Ysabeau 🧶 🧦, Arkem et Nils Ratusznik. Modéré par Ysabeau 🧶 🧦. Licence CC By‑SA.
29
25
août
2023
Rust

Forker un logiciel libre (en créer une nouvelle version indépendante de l’original) est une décision difficile, qui risque de diviser sa communauté. Je propose ici la traduction en français d’un article que j’avais initialement écrit en anglais et publié sur le blog du logiciel de création de sites web SQLPage à propos du fork d’une bibliothèque populaire du langage de programmation Rust.

CatchChallenger version 2

Posté par  (site web personnel) . Édité par ZeroHeure, Benoît Sibaud, Xavier Teyssier, palm123 et tuiu pol. Modéré par claudex. Licence CC By‑SA.
27
23
sept.
2016
Jeu

CatchChallenger est un MMORPG, un jeu de rôle massivement multijoueur. Particularité ? il est indépendant, en ligne et entièrement libre : licence GPLv3 pour le code, les données (artwork) et le site.

La base du jeu est un mélange de différent styles : combat, agriculture, exploration, fabrication, commerce, gestion, compétition. Le travail est concentré sur la jouabilité, les performances et la créativité.

Une partie de Catch Challenger

Cette version totalise plus de 8Mo de code, plus de 2500 commits avec 400k de lignes sur cinq ans de vie (sur les différentes parties du projet). Le client et le serveur sont développés sous GNU/Linux, puis empaquetés automatiquement pour MacOSX et Windows.