Développement
Comment restaurer les images d'un produit Shopify que vous avez écrasé accidentellement par un fichier CSV ?
Problème : (mauvaise manipulation des fichiers CSV) Hier, j'ai voulu modifier en bloc des produits dans Shopify, et changer le vendeur. J'ai utilisé LibreOffice pour sélectionner uniquement les lignes contenant le fournisseur, les mettre à jour, et télécharger uniquement ces lignes mises à jour dans un nouveau CSV vers Shopify. Le résultat est que Shopify a laissé tomber de nombreuses variantes, et...
WeiterlesenVuetify : : Ouvrir une ligne de détail de manière programmatique
Pour la prochaine version de PiCockpit v2.0, je prépare une application GPIO. Les entrées GPIO sont des lignes de table - et pour les configurer, nous voulons pouvoir accéder à la ligne de détail en cliquant sur le bouton configurer : cliquer soit sur le chevron soit sur le bouton configurer conduira à l'ouverture de la ligne de détail : Ici...
Weiterlesenactiver et désactiver un service systemd en Python en utilisant DBus
Le prochain picockpit-client réagit aux événements de suppression du frontend en désactivant son service (l'application restera cependant installée). De même, lorsque vous déciderez de lancer picockpit-client connect à nouveau, le service sera réactivé et démarré automatiquement pour vous. Ceci est possible en utilisant l'interface Python DBus. Le DBus est un système de bus pour interagir...
WeiterlesenComment définir des identifiants d'objet uniques dans les documents intégrés à une collection MongoDB ?
La fonction updateMany de MongoDB peut être utilisée pour mettre à jour tous les documents qui correspondent. Problème Si, toutefois, vous souhaitez définir de nouveaux ObjectID uniques dans votre mise à jour, vous constaterez que MongoDB définit le même ObjectID pour chaque entrée : db.getCollection('mypis_collectedpis').updateMany({}, {$set : {apps : { "com.picockpit/core" : { meta : { version : "2.0", nom : "PiCockpit Core", image : "", description : "PiCockpit.com...
Weiterlesenpassage de JSON à MsgPack de manière rétrocompatible avec Paho MQTT (JavaScript)
picockpit.com fait un usage intensif de MQTT. Pour la prochaine version 2.0, j'ai décidé de passer à MsgPack. Pourquoi MsgPack ? MsgPack (en fait appelé MessagePack - les paquets ont tendance à utiliser MsgPack) est un format binaire, visant à la compatibilité avec JSON, mais diminuant la taille du fichier (ce qui est bon pour économiser la bande passante et les ressources du serveur). Autre avantage :...
Weiterlesencorrection de l'envoi de gros fichiers depuis le backend / délais d'attente / téléchargements interrompus
Des clients se plaignaient de ne pas pouvoir télécharger de gros fichiers à partir de nos sites Web (par exemple, PiDoctor sur PiCockpit.com). Au départ, je n'ai pas pu reproduire le problème localement, les fichiers semblaient se télécharger correctement. Après une enquête plus approfondie, j'ai déterminé que les téléchargements s'interrompaient après un certain temps - en fonction de votre vitesse de téléchargement, donc...
WeiterlesenTraitement de NIL dans JSON::Any en Crystal Lang
L'un des défis du développement avec Crystal est qu'il ne pardonne pas autant les types de données que, par exemple, Python ou Ruby. nil vous occupera. Le message d'erreur suivant : cast from Nil to String failed, at /usr/share/crystal/src/json/any.cr:220:5:220 peut être résolu par : # cast to string, THEN check if it is nil if...
WeiterlesenCode de sortie Chromium -5
Alors que l'exécution de Chromium avec chromium-browser -display=:0 https://www.picockpit.com vous permettra de démarrer Chromium à partir d'une connexion SSH (et il s'affichera sur l'écran principal du serveur X), cela échouera si vous essayez de l'exécuter avec subprocess.Popen en Python : "command" : ["chromium-browser", "-display=:0", "https://picockpit.com"] (ceci est une partie du format JSON que j'ai...
Weiterlesenexécution sécurisée des commandes avec Python : subprocess.Popen
La sécurité est importante pour moi lors du développement du picockpit-client. Ce qui suit s'applique aux systèmes Linux (mais est probablement applicable à tous les systèmes de type Unix, y compris macOS) Python permet d'exécuter des commandes externes en utilisant le module subprocess. import subprocess Dans la prochaine version de PiCockpit, les utilisateurs pourront créer leurs propres boutons (en éditant simplement...
Weiterlesen