Desenvolvimento
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...
WeiterlesenVuetify :: 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...
Weiterlesenactivando 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...
WeiterlesenComo 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"...
WeiterlesenMudar 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:...
Weiterlesencorreçã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,...
WeiterlesenLidando 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...
WeiterlesenCó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...
Weiterlesenexecuçã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