Sincronización de cargas de archivos entre ventanas del navegador

Para PiCockpit, actualmente estoy desarrollando la aplicación Digital Nose. Esta aplicación requiere una carga para el archivo de configuración BSEC, que son datos binarios. Una vez que el usuario sube el archivo, se publica a través de MQTT, y picockpit-client puede utilizarlo para configurar el algoritmo BSEC AI para hacer la detección de gas. Aquí está un poco...

Weiterlesen

Cómo restaurar las imágenes de un producto de Shopify que has sobrescrito accidentalmente mediante un archivo CSV

Problema: (manejo incorrecto de los archivos CSV) Ayer quise hacer una edición masiva de productos en Shopify, y cambiar el proveedor. Utilicé LibreOffice para seleccionar sólo las filas con el vendedor, lo actualicé, y subí sólo estas filas actualizadas como un nuevo CSV a Shopify. El resultado fue que Shopify eliminó muchas variantes, y...

Weiterlesen

Vuetify :: Abrir la fila de detalles de forma programada

Para la próxima versión de PiCockpit v2.0, estoy preparando una aplicación GPIO. Las entradas GPIO son filas de la tabla - y para configurarlas, queremos poder acceder a la fila de detalle haciendo clic en el botón de configuración: haciendo clic en el chevron o en el botón de configuración se abrirá la fila de detalle: Aquí...

Weiterlesen

habilitar y deshabilitar un servicio systemd en Python usando DBus

El próximo picockpit-client reacciona a los eventos de eliminación del frontend deshabilitando su servicio (sin embargo, la aplicación seguirá instalada). Del mismo modo, cuando decidas volver a ejecutar picockpit-client connect, el servicio se volverá a habilitar y se iniciará automáticamente por ti. Esto es posible utilizando la interfaz DBus de Python. el DBus es un sistema de bus para interactuar...

Weiterlesen

Cómo establecer ids de objetos únicos en documentos incrustados en una colección de MongoDB

El updateMany de MongoDB puede utilizarse para actualizar todos los documentos que coincidan. Problema Si, sin embargo, desea establecer nuevos ObjectIDs únicos en su actualización, se encontraría con que MongoDB establece el mismo ObjectID para cada entrada: db.getCollection('mypis_collectedpis').updateMany({}, {$set: {apps: { "com.picockpit/core": { meta: { versión: "2.0", name: "PiCockpit Core", image: "", descripción: "PiCockpit.com...

Weiterlesen

pasar de JSON a MsgPack de forma compatible con Paho MQTT (JavaScript)

picockpit.com hace un uso intensivo de MQTT. Para la próxima versión 2.0 he decidido cambiar a MsgPack. ¿Por qué MsgPack? MsgPack (en realidad se llama MessagePack - los paquetes tienden a usar MsgPack) es un formato binario, destinado a la compatibilidad con JSON, pero disminuyendo el tamaño del archivo (lo que es bueno para ahorrar ancho de banda y recursos del servidor). Otra ventaja:...

Weiterlesen

envoy fix para servir archivos grandes desde el backend / timeouts / descargas abortadas

Los clientes se quejaban de que no podían descargar archivos grandes de nuestros sitios web (por ejemplo, PiDoctor en PiCockpit.com). Inicialmente no pude replicar el problema localmente, los archivos parecían descargarse bien. Después de investigar más a fondo determiné que las descargas se cortaban después de un cierto tiempo - dependiendo de su velocidad de descarga, por lo tanto,...

Weiterlesen

Tratando con NIL en JSON::Any en Crystal Lang

Uno de los retos al desarrollar con Crystal es que no es tan indulgente con los tipos de datos como, por ejemplo, Python o Ruby. nil te mantendrá ocupado. El siguiente mensaje de error: cast from Nil to String failed, at /usr/share/crystal/src/json/any.cr:220:5:220 puede resolverse de la siguiente manera # cast to string, LUEGO comprobar si es nil si...

Weiterlesen

Código de salida de Chromium -5

Mientras que la ejecución de Chromium con chromium-browser -display=:0 https://www.picockpit.com le permitirá iniciar Chromium desde una conexión SSH (y saldrá a la pantalla principal en el servidor X), esto fallará cuando intente ejecutarlo con subprocess.Popen en Python: "comando": ["chromium-browser", "-display=:0", "https://picockpit.com"] (esto es parte del formato JSON que tengo...

Weiterlesen

ejecución segura de comandos con Python: subproceso.Popen

La seguridad es importante para mí durante el desarrollo del cliente-Picockpit. Lo siguiente se aplica a los sistemas Linux (pero probablemente es aplicable a todos los sistemas tipo Unix, incluyendo macOS) Python permite ejecutar comandos externos utilizando el módulo de subproceso. import subprocess En la próxima versión de PiCockpit, los usuarios podrán crear sus propios botones (simplemente editando...

Weiterlesen