OBS : debug webview

Dans OBS sudio il est possible d’intégré des pages web et ce depuis un certains temps. Très pratique pour faire des inserts custom dans ce que vous streamer.

Pour ce faire, il suffit d’ajouter une source Navigateur (ou web browser) et de fournir une url. Bref, rien de compliqué. Sauf si vous voulez debuger l’intégration, être sur que les appel javascript que vous effectué se passe bien, etc.

Debuger avec OBS et Chrome/chromium

Afin de pouvoir debuger, utiliser la console, etc, il suffit de lancer obs en ligne de commande avec le paramètre --remote-debugging-port=9222.

Dès lors, vous pouvez lancer chrome ou chromium sur le port localhost:9222 (ou le port choisit) et accéder a la web console de chrome/chromium.

OBS & chemin des plugins sous linux

Sous GNU/linux, vous avez plusieurs manières d’installées OBS. Cependant, suivant la manière d’installer, l’installation de plugins peut changer.

Dans cet article, j’explique le cas de l’installation via snap ou via un package système.

Donc, si vous cherchez à savoir comment installer un plugin OBS sous linux, rien de bien compliqué :

  1. lisez les instructions du plugin
  2. 99% du temps, on vous demande de déposer les fichiers dans le dossier plugins
  3. tadaa

Sauf que ce dossier plugins est compliqué à trouver… voyons cela ensemble

Via snap

Dans le cas d’une installation par snap, même si cela peut varier d’un système à l’autre, dans la majorité des cas, vous devriez avoir un dossier ~/snap/obs-studio/current/.config/obs-studio dans lequel, s’il n’existe pas encore, vous pouvez créer un dossier plugins et y déposer votre plugin.

Donc ~/snap/obs-studio/current/.config/obs-studio/plugins

Attention, qu’il ne s’agît pas d’une distribution officielle, pour cela voyez las package système ou flatpak

Via un package système

Dans le cas d’une installation via les packages système, vous devriez trouver votre bonheur dans ~/.config/obs-studio. S’il n’existe pas encore, vous pouvez créer un dossier plugins et y déposer votre plugin.

Donc ~/.config/obs-studio/plugins

Attention, je lis souvent que l’on conseille l’installation dans un es dossier racine tel que /usr/share/… ou /var/… cela fonctionnera aussi, MAIS vous risquez d’affecté d’autres utilisateurs que vous en cas de soucis. Sans compter les soucis de droit. Bref, j’éviterai cela au maximum.

Les autres?

Flatpak, à priori (pas testé), le dossier dans .var/app/com.obsproject.Studio/config/plugins

Pour le reste, si vous êtes assez inventif pour utiliser autre chose que ces trois méthodes, vous devriez pouvoir trouver votre chemin 😉

SQL : différences entre LEFT JOIN, RIGHT JOIN, etc

J’ai toujours eu quelques diffuculté a bien visualisé les différence qu’il y avait entre left join, right join, join, etc lorsque je fait des requêtes SQL. Aujourd’hui je suis tombé sur un exemple frappant, et je me suis dit que cela pouvait en aider plus d’un! Comme une image vaux mieux qu’un long discours, en voici l’essence.

L’exemple suivant se base sur une base de donnée mysql :

CREATE TABLE IF NOT EXISTS `acl_roles` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(30) CHARACTER SET utf8 NOT NULL,
`build_on` int(11) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `build_on` (`build_on`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

INSERT INTO `acl_roles` (`id`, `name`, `build_on`) VALUES
(1, 'guest', NULL),
(2, 'normal', 1),
(3, 'modo', 2),
(4, 'admin', 3);

ALTER TABLE `acl_roles` ADD CONSTRAINT FOREIGN KEY (`build_on`) REFERENCES `acl_roles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

Nous avons donc une table avec des clefs de référence pour marquer les dépendance entre les roles. En images cela donne ceci :

id name build_on
1 guest NULL
2 normal 1
3 modo 2
4 admin 3

Maintenant regardons le résultats de divers SELECT, le résultat parle de lui-même.

SELECT ar.*, arp.name AS parent_name FROM acl_roles ar, acl_roles arp WHERE arp.id = ar.build_on

id name build_on parent_name
2 normal 1 guest
3 modo 2 normal
4 admin 3 modo

SELECT ar.*, arp.name AS parent_name FROM acl_roles ar LEFT JOIN acl_roles arp ON arp.id = ar.build_on

id name build_on parent_name
1 guest NULL NULL
2 normal 1 guest
3 modo 2 normal
4 admin 3 modo

SELECT ar.*, arp.name AS parent_name FROM acl_roles ar JOIN acl_roles arp ON arp.id = ar.build_on

id name build_on parent_name
2 normal 1 guest
3 modo 2 normal
4 admin 3 modo

SELECT ar.*, arp.name AS parent_name FROM acl_roles ar RIGHT JOIN acl_roles arp ON arp.id = ar.build_on

id name build_on parent_name
2 normal 1 guest
3 modo 2 normal
4 admin 3 modo
NULL NULL NULL admin

J’espère que l’exemple servira a certain et que cela en aidera plus d’un!

Vitesse et référencement

La vitesse d’affichage d’une page web est actuellement, et ce depuis un certain temps, devenu importante. Surtout en ce qui concerne l’optimisation et par conséquent le référencement. Afin de gagner ces quelques millisecondes qui feront la différence, il existe plusieurs méthodes et techniques. En voici quelques-unes, avec des exemples.

Diminuer le nombre de requêtes HTTP

Chaque requête HTTP au sein du fichier prend un certain temps, mais surtout bloque le chargement global de la page web. En effet, HTTP et HTML chargent les ressources au fur et à mesure que la page le demande.

Continue reading

Future … et projets

Mon blog va évoluer d’ici quelques mois, des changements sont en perspectives.

Tout d’abord, passons en revue les sujets qui seront abordés. Encore et toujours Zend Framework, je compte continuer de publier. C’est un sujet qui m’intéresse et qui je trouve est très intéressant. Par ailleurs, je compte faire une série d’articles sur CMIS. Si vous ignorez ce que c’est … alors tant mieux!
En dehors de ces sujets principaux, seront aussi abordés des projets. Dans ceux-ci on pourra citer principalement deux choses : FSB dont le développement va reprendre (enfin …) et des projets sous Android.

Bref, des choses intéressantes et alléchantes, mais ce n’est pas tout! Je compte faire du nettoyage. Hé oui, le printemps arrive, les oiseaux chantent, et certains sortes les balais et les caisses pour le « nettoyage de printemps », ce sera donc mon cas. Depuis trop longtemps, je remet a plus tard de me faire un vrai site avec un contenu qui me correspondent et non des « machins » accumulés et qui date …

Donc :

  • des projets a réalisé
  • des sujets à aborder
  • un site renouvelé

Voilà le programme!

Mais aussi, et c’est une idée qui me trotte dans la tête depuis longtemps, éventuellement un nouveau blog ou site consacré à la cuisine.

Vous avez le menu, reste à savoir si le chef sera dans les temps.