Sincronizar carregamentos de arquivos entre as janelas do navegador

Para o PiCockpit, estou actualmente a desenvolver a aplicação Nariz Digital. Este aplicativo requer um upload para o arquivo de configuração BSEC - que são dados binários. Uma vez que o usuário carrega o arquivo, ele é publicado via MQTT, e o cliente picockpit pode usá-lo para configurar o algoritmo BSEC AI para fazer a detecção de gás. Aqui está um pouco...

Weiterlesen

Como restaurar imagens de um produto Shopify que você tenha substituído acidentalmente por um arquivo CSV

Problema: (manuseio errado de arquivos CSV) Ontem eu queria fazer bulk-edit de produtos no Shopify, e mudar o fornecedor. Usei o LibreOffice para selecionar apenas as linhas com o fornecedor nele, atualizei-o e fiz o upload apenas dessas linhas atualizadas como um novo CSV para o Shopify. O resultado foi que o Shopify largou muitas variantes, e...

Weiterlesen

Vuetify :: Abrir linha de detalhes programática

Para o próximo lançamento do PiCockpit v2.0, estou a preparar uma aplicação GPIO. As entradas GPIO são linhas de tabela - e para configurá-las, queremos poder acessar a linha de detalhes clicando no botão configure: clicando no chevron ou no botão configure levará à abertura da linha de detalhes: Aqui...

Weiterlesen

activando e desactivando um serviço de sistema em Python usando o DBus

O próximo picockpit-cliente reage a eventos de exclusão do frontend desativando seu serviço (a aplicação permanecerá instalada, no entanto). Da mesma forma, quando você decidir executar a conexão picockpit-cliente novamente, o serviço será reativado e iniciado automaticamente para você. Isto é possível usando a interface Python DBus. o DBus é um sistema de barramento para interagir...

Weiterlesen

Como definir ids de objetos únicos em documentos incorporados em uma coleção MongoDB

MongoDB's updateMuitos podem ser usados para atualizar todos os documentos que são correspondidos. Problema Se, no entanto, você quiser definir novos ObjectIDs únicos em sua atualização, você verá que MongoDB define o mesmo ObjectID para cada entrada: db.getCollection('mypis_collectedpis').updateMany({}, {$set: {apps: {"com.picockpit/core": { meta: { versão: "2.0", nome: "PiCockpit Core", imagem: "", descrição: "PiCockpit.com"...

Weiterlesen

Mudar de JSON para MsgPack de forma retrocompatível com Paho MQTT (JavaScript)

picockpit.com faz uso pesado do MQTT. Para a próxima versão 2.0 eu decidi mudá-la para MsgPack. Porquê o MsgPack? MsgPack (na verdade chamado MessagePack - pacotes tendem a usar o MsgPack) é um formato binário, visando a compatibilidade com o JSON, mas diminuindo o tamanho dos arquivos (o que é bom para economizar largura de banda & recursos do servidor). Outra vantagem:...

Weiterlesen

correção de enviado para servir grandes arquivos do backend / timeouts / downloads abortados

Os clientes queixavam-se de não poderem descarregar grandes ficheiros dos nossos sites (por exemplo, PiDoctor no PiCockpit.com). Inicialmente eu não podia replicar o problema localmente, os ficheiros pareciam estar a descarregar bem. Depois de mais investigação, determinei que os downloads estavam a ser cortados após um certo tempo - dependendo da sua velocidade de download, portanto,...

Weiterlesen

Lidando com NIL em JSON::Qualquer em Crystal Lang

Um dos desafios ao desenvolver com o Crystal é que ele não é tão clemente sobre os tipos de dados como, digamos, Python ou Ruby. nulo irá mantê-lo ocupado. A seguinte mensagem de erro: cast from Nil to String failed, at /usr/share/crystal/src/json/any.cr:220:5:220 pode ser resolvido por: # cast to string, ENTÃO verifique se é nulo se...

Weiterlesen

Código de saída do crómio -5

Enquanto executar o Chromium com o chromium-browser -display=:0 https://www.picockpit.com irá permitir que você inicie o Chromium a partir de uma conexão SSH (e ele irá sair para o display principal no Servidor X), isto irá falhar quando você tentar executá-lo com o subprocesso.Popen em Python: "comando": ["chromium-browser", "-display=:0", "https://picockpit.com"] (isto é parte do formato JSON que eu tenho...

Weiterlesen

execução segura de comandos com Python: subprocesso.Popen

A segurança é importante para mim enquanto desenvolvo o picockpit-cliente. O seguinte aplica-se a sistemas Linux (mas provavelmente é aplicável a todos os sistemas como Unix, incluindo MacOS) Python permite executar comandos externos usando o módulo de subprocesso. importar subprocesso Na próxima versão do PiCockpit, os usuários serão capazes de criar seus próprios botões (simplesmente editando...

Weiterlesen