AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / 问题

All perguntas(coding)

Martin Hope
Andriy D.
Asked: 2025-04-16 13:36:35 +0800 CST

Layout TipViewStyle quebrado no iOS 18.4 – Mensagem de dica é truncada

  • 8

Estou usando um recurso personalizado TipViewStylepara modificar o plano de fundo e ajustar levemente o layout das Dicas no meu aplicativo. Tudo parecia ótimo até o iOS 18.4. Desde a atualização, o layout está sendo compactado e a mensagem dentro da Dica está ficando truncada. Aqui está uma captura de tela de como ficou no iOS 18.4. mensagem truncada

e outra mostrando como era antes do iOS 18.4. layout correto

Aqui está o código relevante para o estilo personalizado:

struct CustomTipViewStyle: TipViewStyle {
    func makeBody(configuration: Configuration) -> some View {
        VStack(alignment: .leading, spacing: 4) {
            HStack {
                configuration.title?
                    .font(.headline)
                    .foregroundColor(.daBackground)
                
                Spacer()
                
                Button(action: { configuration.tip.invalidate(reason: .tipClosed) }) {
                    Image(systemName: "xmark")
                        .foregroundColor(.daBackground.opacity(0.3))
                }
            }
 
            VStack(alignment: .leading, spacing: 8.0) {
                configuration.message?
                    .font(.subheadline)
                    .foregroundColor(.daBackground.opacity(0.8))
                
                Divider().background(.daBackground.opacity(0.3))
 
                ForEach(configuration.actions) { action in
                    HStack {
                        Spacer()
                        Button(action: action.handler) {
                            action.label()
                                .foregroundStyle(.accent)
                                .font(.system(size: 18, weight: .bold))
                        }
                    }
                }
            }
        }
        .padding()
        .background(Color.daBlack)
    }
}

Alguém mais teve esse problema com o TipViewStyle no iOS 18.4? Qualquer solução alternativa ou alternativa será bem-vinda! Agradecemos antecipadamente!

  • 1 respostas
  • 43 Views
Martin Hope
MJoao
Asked: 2025-04-16 00:31:23 +0800 CST

Por que recebo "GET / HTTP/1.1 404 Not Found" com o servidor FastAPI?

  • 8

Estou tentando criar um token com FastAPI:

> import json
> import os
> import aiohttp
> import asyncio
> from fastapi import FastAPI
> from fastapi import APIRouter, Request
> from fastapi.responses import JSONResponse
> 
> token = APIRouter(prefix="/management/api", tags=["API Apl token"])
> 
> app=FastAPI()
> app.include_router(token)

e muitos métodos depois...

Eu consegui isso

> uvicorn peg:token --reload
> INFO:     Will watch for changes in these directories: ['C:\\Users\\Ejbc25\\fastapi']
> INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
> INFO:     Started reloader process [2232] using StatReload
> INFO:     Started server process [20632]
> INFO:     Waiting for application startup.
> INFO:     Application startup complete.
> INFO:     127.0.0.1:51183 - "GET / HTTP/1.1" 404 Not Found
> INFO:     127.0.0.1:51183 - "GET / HTTP/1.1" 404 Not Found

Como corrigir esse problema?

Eu esperava que http://127.0.0.1:8000/token retornasse o token, mas mostra

Não encontrado

python
  • 1 respostas
  • 43 Views
Martin Hope
Raven
Asked: 2025-04-15 22:09:27 +0800 CST

como forçar numba a retornar um tipo numpy?

  • 8

Acho esse comportamento bastante contraintuitivo, embora eu suponha que haja uma razão para isso - o numba converte automaticamente meus tipos inteiros numpy diretamente em um int python:

import numba as nb
import numpy as np 

print(f"Numba version: {nb.__version__}")  # 0.59.0
print(f"NumPy version: {np.__version__}")  # 1.23.5

# Explicitly define the signature
sig = nb.uint32(nb.uint32, nb.uint32)

@nb.njit(sig, cache=False)
def test_fn(a, b):
    return a * b

res = test_fn(2, 10)
print(f"Result value: {res}")  # returns 20
print(f"Result type: {type(res)}")  # returns <class 'int'>

Este é um problema porque estou usando o retorno como uma entrada em outra função njit, então recebo um aviso de conversão (e também faço conversões desnecessárias entre as funções njit)

Existe alguma maneira de forçar o numba a me dar np.uint32um resultado?

--- EDITAR ---

Este é o melhor que consegui fazer sozinho, mas me recuso a acreditar que esta seja a melhor implementação que existe:

# we manually define a return record and pass it as a parameter
res_type = np.dtype([('res', np.uint32)])
sig = nb.void(nb.uint32, nb.uint32, nb.from_dtype(res_type))

@nb.njit(sig, cache=False)
def test_fn(a:np.uint32, b:np.uint32, res: res_type):
    res['res'] = a * b

# Call with Python ints (Numba should coerce based on signature)
res = np.recarray(1, dtype=res_type)[0]
res_py_in = test_fn(2, 10, res)
print(f"\nCalled with Python ints:")
print(f"Result value: {res['res']}")  # 20
print(f"Result type: {type(res['res'])}")  # <class 'numpy.uint32'>
python
  • 2 respostas
  • 90 Views
Martin Hope
Planeptunia
Asked: 2025-04-15 21:34:59 +0800 CST

O serviço systemd executando o script shell não executa a tarefa cat na inicialização

  • 8

Tenho um microcontrolador executando uma distribuição Linux baseada em Debian.
Tenho uma tela Nextion conectada a ela via UART na porta /dev/ttyMOD1. Tenho um script que usa stty e obtém dados da tela usando cat e os envia para tópicos mqtt. Quando executo o script a partir do próprio shell ou se reinicio o serviço após a inicialização do sistema e consigo conectar via SSH, ele funciona perfeitamente. No entanto, quando o sistema inicializa, a tarefa cat dentro do serviço não funciona por algum motivo, somente após a reinicialização do serviço.
Os arquivos de script e serviço têm permissões +x para o usuário. Preciso de ajuda para corrigir o erro cat que não funciona na inicialização.

Texto para roteiro e serviço:
serial.service

[Unit]
Description=Serial script on startup
Requires=wb-mqtt-serial.service
After=wb-mqtt-serial.service
[Service]
User=root
WorkingDirectory=/mnt/data/root
ExecStart=/mnt/data/root/serial.sh
Restart=on-failure
Type=simple
[Install]
WantedBy=multi-user.target

serial.sh

#!/bin/bash
mqtt-delete-retained "/devices/screen/#"

stty -F /dev/ttyMOD1 ospeed 9600 ispeed 9600 raw clocal -parenb -echo cs8

CR="$(echo -e '\r')"

exec 4<> /dev/ttyMOD1
/bin/cat <&4 | while :
do
    IFS="$CR" read -r line
    case "$line" in quit*)
        break
        ;;
    *)
    if [[ -n "$line" ]]; then
        mosquitto_pub -t /devices/screen/controls/raw/meta/type -r -m text
        mosquitto_pub -t /devices/screen/controls/raw -r -m "$line"
    fi

    ;;
    esac
done
linux
  • 1 respostas
  • 78 Views
Martin Hope
Daniel Lobo
Asked: 2025-04-15 16:32:47 +0800 CST

Agrupando a legenda no ggplot em várias partes

  • 8

Quero agrupar a legenda em ggplotvárias partes. Vejamos o exemplo abaixo (retirado de https://stackoverflow.com/a/68608592/15910619 como resposta aceita de @stefan).

library(ggplot2)
library(ggnewscale)

diamonds$cut = factor(diamonds$cut, levels=c("Fair","Good", "Very Good",
                                             "Premium","Ideal"))

labels <- levels(diamonds$cut)
labels <- setNames(labels, labels)
labels["Fair"] <- "Very Good"
labels["Good"] <- "Premium"

colors <- hcl(seq(15, 325, length.out = 5), 100, 65)
colors <- setNames(colors, levels(diamonds$cut))

ggplot() + 
  geom_bar(data = diamonds, aes(color, fill = cut)) + 
  scale_fill_manual(aesthetics = "fill", values = colors, labels = labels[1:2],
                    breaks = names(colors)[1:2], name = "First Group:",
                    guide = guide_legend(title.position = "left", order = 1)) +
  new_scale_fill() +
  geom_bar(data = diamonds, aes(color, fill = cut)) + 
  scale_fill_manual(aesthetics = "fill", values = colors, labels = labels[3:5],
                    breaks = names(colors)[3:5], name = "Second Group:",
                    guide = guide_legend(title.position = "left", order = 0)) +
  theme(legend.position = "bottom", 
        legend.direction = "horizontal",
        legend.key = element_rect(fill = "white"))

No entanto, gostaria de alterar o estilo de posição de vários elementos da legenda, conforme demonstrado no instantâneo modificado abaixo

insira a descrição da imagem aqui

Existe alguma maneira de conseguir esse tipo de agrupamento na lenda ggplot?

Muito obrigado pelo seu tempo e atenção.

  • 3 respostas
  • 63 Views
Martin Hope
Adr4m
Asked: 2025-04-15 07:01:28 +0800 CST

Configuração de geração de código jOOQ configurada incorretamente ao executar jooq-codegen-maven na linha de comando

  • 8

Estou com dificuldades para gerar classes jooq. Utilizo o jooq 3.20.3, com maven e um banco de dados rodando em segundo plano.

Minha configuração é a seguinte:

<build>
    <plugins>
        <plugin>
            <groupId>org.jooq</groupId>
            <artifactId>jooq-codegen-maven</artifactId>
            <version>${jooq.version}</version>
            <executions>
                <execution>
                    <id>jooq-codegen</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <jdbc>
                            <driver>org.postgresql.Driver</driver>
                            <url>jdbc:postgresql://localhost:5432/my_db</url>
                            <user>my_user</user>
                            <password>my_password</password>
                        </jdbc>
                        <generator>
                            <database>
                                <name>org.jooq.meta.postgres.PostgresDatabase</name>
                            </database>

                            <target>
                                <packageName>com.example.domain</packageName>
                                <directory>src/main/java_generated</directory>
                            </target>
                        </generator>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Não tenho certeza do que é obrigatório e do que é opcional. Além disso, usei a configuração do jooq fornecida em "Introdução". É claro que os valores de my_dbe assim por diante são os do meu banco de dados (mais tarde usarei variáveis ​​de ambiente de algo).

Mas toda vez que executo mvn jooq-codegen:generateaparece o seguinte erro:

[ERROR] Incorrect configuration of jOOQ code generation tool
[ERROR] 
The jOOQ-codegen-maven module's generator configuration is not set up correctly.
This can have a variety of reasons, among which:
- Your pom.xml's <configuration> contains invalid XML according to jooq-codegen-3.20.1.xsd
- There is a version or artifact mismatch between your pom.xml and your commandline

Mas não encontro o erro

spring
  • 1 respostas
  • 127 Views
Martin Hope
stefan
Asked: 2025-04-15 05:30:48 +0800 CST

Problemas com membros de matriz flexíveis com alinhamento e aliasing estrito

  • 8
struct Node {
  Node *left;
  Node *right;
  int height;
  char data[];
};

É assim que eu costumava definir os nós da minha estrutura de dados. Acho muito útil porque posso incorporar os dados diretamente no nó; caso contrário, teria que usar um void*, o que implicaria em outro malloc e outra camada de indireção. No entanto, li que há dois problemas com esse tipo de código:

  1. Alinhamento

    Digamos que eu tenha uma função que copia alguns dados para o array de dados com memcpy. Se esses dados forem um "long" (longo), por exemplo, eles estariam desalinhados.

    _Alignas(max_align_t) char data[];
    

    consertar o problema?

  2. Aliasing estrito

    A questão é: contanto que eu acesse o array de dados com um ponteiro para um tipo que coincide com o tipo do objeto do qual copiei, a regra de aliasing estrito é obedecida, mesmo que eu teoricamente acesse um array de caracteres por meio de um ponteiro int, por exemplo? Este foi o único caso em que tive que lidar com código do tipo trocadilho.

c
  • 2 respostas
  • 91 Views
Martin Hope
9072997
Asked: 2025-04-14 22:19:21 +0800 CST

Qual é o tempo de vida de um ValidateScript no PowerShell?

  • 8

O PowerShell oferece suporte a scripts de validação para variáveis. Isso é mais comumente usado para validar parâmetros de função, mas pode ser aplicado a qualquer variável. Esses scripts de validação são executados sempre que o valor da variável é alterado.

# create a variable with a validation script
[ValidateScript({
    if (-not ($_.Length -in @(8, 16, 24))) {
        Write-Host 'Validate Failed'
        throw "Value '$_' has invalid length: $($_.Length)"
    } else {
        Write-Host 'Validate Success'
    }
    $true
})][System.String]$MyValidatedArg = "a" * 8 # prints "Validate Success"

# Each one of these will trigger the validation script
Write-Host "Several valid assignments..."
$MyValidatedArg = "b" * 8 # prints "Validate Success"
$MyValidatedArg = "b" * 8 # prints "Validate Success"
$MyValidatedArg = "b" * 16 # prints "Validate Success"
$MyValidatedArg = "b" * 24 # prints "Validate Success"

Se eu atribuísse um valor inválido à variável, isso geraria uma exceção

$MyValidatedArg = "foo" # throws an exception

Estranhamente, consigo ignorar o script de validação se eu especificar novamente a restrição de tipo durante a atribuição. Sei que "simplesmente não faça isso" é uma opção, mas o ponto principal da minha pergunta é: por que isso funciona?

[System.String]$MyValidatedArg = "123456789" # works even though this value is invalid

A princípio, pensei que fosse apenas um sombreamento de variáveis. Tipo, talvez eu estivesse criando uma segunda variável, objeto ou algo assim, especificando a restrição de tipo uma segunda vez. Tentei capturar uma referência à variável para ver se ela manteria o script de validação. Não mantém, mas não estou muito familiarizado com os detalhes internos do PowerShell para saber se este é um teste válido.

# create a reference and assign through the reference
Write-Host "Assigning through reference..."
$refToParameter = [ref] $MyValidatedArg
$refToParameter.Value = "c" * 24 # prints "Validate Success"
Write-Host " Read via variable: $MyValidatedArg"
Write-Host " Read via reference: $($refToParameter.Value)"

# the reference and the variable are linked
# Assignments to either trigger the validation script
Write-Host "Assigning through normal variable again..."
$MyValidatedArg = "d" * 24 # prints "Validate Success"
Write-Host " Read via variable: $MyValidatedArg"
Write-Host " Read via reference: $($refToParameter.Value)"

# This works, which is odd
Write-Host "Assigning with [System.String]..."
[System.String]$MyValidatedArg = "123456789" # invalid, nothing printed
Write-Host " No exceptions yet!"

# I thought this was some sort of variable shadowing thing, but the reference shows the new value too
Write-Host "The link between the variable and the reference is still there..."
$MyValidatedArg = "e" * 8 # valid, nothing printed
Write-Host " Read via variable: $MyValidatedArg"
Write-Host " Read via reference: $($refToParameter.Value)"

# and now we appear to have killed the validation script
Write-Host "Regular invalid assignment..."
$MyValidatedArg = "123456789" # invalid, nothing printed
Write-Host " It works now for some reason"
powershell
  • 1 respostas
  • 53 Views
Martin Hope
Vivian Miranda
Asked: 2025-04-14 20:35:01 +0800 CST

Pergunta sobre lambda generalizado capturado por referência de valor l

  • 8

Tenho a seguinte pergunta sobre lambdas em C++: Por que a primeira captura (em pf) por referência l-value não é permitida, mas a segunda é (pf2)?

Não estou argumentando, de uma forma ou de outra, que isso &z = z * 10deveria ser permitido; quero entender a razão técnica por trás do erro do compilador afirmando que isso não é permitido ( error: cannot capture (10 * z) by reference).

Muito obrigado antecipadamente. Esta comunidade é incrível, e peço desculpas antecipadamente se houve perguntas repetidas sobre o mesmo tópico no passado. Não consegui encontrá-las.

#include <iostream>
#include <utility>

using namespace std;

int main () {   
  int z = 10;

  // not allowed   
  auto pf = [&z = 10*z](int x) {
    ++z;
    cout << "z: " << z << endl;
    return z;   };

  // allowed   
  auto pf2 = [&z = z](int x) {
    ++z;
    cout << "z: " << z << endl;
    return z;   
  };

  cout << "pf: " << pf(20) << endl;   
  cout << "pf: " << pf(20) << endl;   
  cout << "pf2: " << pf2(20) << endl;   
  cout << "pf2: " << pf2(20) << endl;   
  return 1; 
}
c++
  • 1 respostas
  • 65 Views
Martin Hope
ereOn
Asked: 2025-04-12 05:11:18 +0800 CST

Essa lógica interna de strings é válida?

  • 8

Eu criei este código para internar strings e manipular &'staticreferências a elas.

Acredito que seja verdade, mas gostaria de ter uma confirmação disso.

Minha justificativa é a seguinte:

  • O HashSeté alocado estaticamente e não causa realocação de seus valores (seu armazenamento interno pode ser realocado, mas o Stringpróprio não deve).
  • Qualquer inserção é protegida pelo Mutex.
  • Como eles Stringnunca são removidos do HashSet, transmuteo envio do conteúdo deles &'staticdeve ser seguro.
use std::{collections::HashSet, sync::Mutex};

lazy_static! {
    static ref LOCKED_HASH: Mutex<HashSet<String>> = Mutex::new(HashSet::new());
}

pub fn intern_string(input: &str) -> &'static str {
    let mut lock = LOCKED_HASH.lock().unwrap();
    if let Some(val) = lock.get(input) {
        unsafe { std::mem::transmute::<&str, &'static str>(val) }
    } else {
        lock.insert(input.to_string());
        let interned = lock.get(input).unwrap();
        unsafe { std::mem::transmute::<&str, &'static str>(interned) }
    }
}

Isso é realmente seguro?

rust
  • 1 respostas
  • 68 Views
Prev
Próximo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve