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
G. Rodrigues
Asked: 2025-04-03 03:52:50 +0800 CST

Compreendendo a falta de preguiça Alternative.man

  • 9

Uma biblioteca de análise sintática mínima absoluta poderia ser:

{- | Input error type. -}
data InputError = InputError
    deriving (Eq, Show)

instance Semigroup InputError where
    (<>) _ _ = InputError

instance Monoid InputError where
    mempty = InputError


{- | The parsing monad. -}
newtype Parser s e a = Parser ([s] -> Either e (a, [s]))
    deriving stock Functor


-- Instances.
instance Applicative (Parser s e) where
    pure x = Parser $ \ xs -> pure (x, xs)

    (<*>) p q = Parser $ \ xs -> do
        (f, ys) <- run p xs
        (x, zs) <- run q ys
        pure (f x, zs)

instance Monad (Parser s e) where
    (>>=) p h = Parser $ \ xs -> do
        (x, ys) <- run p xs
        run (h x) ys

instance Monoid e => Alternative (Parser s e) where
    empty = Parser $ \ _ -> Left mempty

    (<|>) p q = Parser $ \ xs ->
        case run p xs of
            r1@(Right _) -> r1
            Left e1      ->
                case run q xs of
                    r2@(Right _) -> r2
                    Left e2      -> Left $ e1 <> e2

{- | Primitive parser getting one element out of the stream. -}
one :: Parser s InputError s
one = Parser $ \ xs ->
    case uncons xs of
        Nothing -> Left InputError
        Just p  -> Right p

{- | Run the parser on input and return the results. -}
run :: Parser s e a -> [s] -> Either e (a, [s])
run (Parser p) = p

Isto compila (com linguagem GHC2021; tem que adicionar algumas importações). Carregando em ghci em cabal repl:

ghci> let p = take 2 <$> many one
ghci> run p "0123"
Right ("01","")

Isso significa que o analisador consumiu toda a entrada -- o que eu esperava ver era Right ("01", "23").

Então minha pergunta: onde a preguiça "quebra", por assim dizer, e há alguma maneira de restaurá-la? E por "restaurá-la" quero dizer fazer a implementação da instância de forma diferente para que manyseja tão preguiçosa quanto o esperado, porque se eu adicionar

{- | Implement lazy 'many' -}
atMostN :: Monoid e => Word -> Parser s e a -> Parser s e [a]
atMostN n p = go n
    where
        go 0 = pure []
        go m = do
            r <- optional p
            case r of
                Nothing -> pure []
                Just x  -> (x: ) <$> go (pred m)

E carrego no ghci, obtenho o esperado:

ghci> let q = atMostN 2 one
ghci> run q "0123"
Right ("01","23")
haskell
  • 1 respostas
  • 65 Views
Martin Hope
Squirtle
Asked: 2025-04-03 03:45:38 +0800 CST

Usando continuous_on_diff com subst (Isabelle)

  • 6

POSTAGEM ORIGINAL:

Estou tentando mostrar o seguinte:

have "continuous_on {x. 0 < x} (λx. 12 * x⇧2 - 1)"

E eu gostaria de usar o seguinte lema:

thm continuous_on_diff
----------------------------------------------------------------------------------------------------------
Output:
⟦continuous_on ?s ?f; continuous_on ?s ?g⟧ ⟹ continuous_on ?s (λx. ?f x - ?g x)

Mas talvez essa não seja a forma correta, então tento isso:

 have "continuous_on {x. 0 < x} (λx. (λw . 12 * w⇧2) x  - (λw . 1)x)"
                      apply(subst continuous_on_diff) 

Mas isso não funcionou, então deixei ainda mais explícito:

have "continuous_on {x. 0 < x} (λx. (λw . 12 * w⇧2) x  - (λw . 1)x)"
      apply(subst continuous_on_diff[where f = "(λw . 12 * w⇧2)" and g= "(λw . 1)" and s = "{x. 0 < x}"])

Mas mesmo isso não funcionou, entretanto quando verifiquei o teorema:

thm continuous_on_diff[where f = "(λw . 12 * w⇧2)" and g = "(λw . 1)" and s = "{x. 0 < x}"]
-------------------------------------------------------------------------------------------
Output:
⟦continuous_on {x. 0 < x} (λw. 12 * w⇧2); continuous_on {x. 0 < x} (λw. 1)⟧ ⟹ continuous_on {x. 0 < x} (λx. 12 * x⇧2 - 1)

Parece ser exatamente o que eu quero. A única coisa que consigo pensar é que "subst" não é adequado para lidar com argumentos de estilo não equacional, e também não consigo fazer "rule" funcionar.

Qualquer ajuda é muito apreciada!

De forma semelhante, também estou lutando para provar:

"have continuous_on {x. 0 < x} ((*) 6)"

EDIT: Quando tornei as informações de digitação mais explícitas, como em:

have "continuous_on {x :: real. 0 < x} (λx. (λw . 12 * w⇧2) x  - (λw . 1)x)"
                      apply(rule continuous_on_diff[where f = "(λw . 12 * w⇧2)" and g = "(λw . 1)" and s = "{x. 0 < x}"])

Isso tornou isso provável. Mas qual é a diferença?

isabelle
  • 1 respostas
  • 18 Views
Martin Hope
DaniWein
Asked: 2025-04-03 03:37:19 +0800 CST

TryUpdateModelAsync retorna falso quando o modelo e o Linq estão corretos

  • 6

Estou tendo um problema estranho aqui. Estou fazendo o tutorial do Microsoft's Razor e EF e não sei o que há de errado com este código:

public class Student
{
    public int ID { get; set; }
    public string LastName { get; set; }
    public string FirstMidName { get; set; }
    public DateTime EnrollmentDate { get; set; }

    public ICollection<Enrollment> Enrollments { get; set; }
}
//CRUD Create Method
public async Task<IActionResult> OnPostAsync()
{
    var emptyStudent = new Student();

    if (await TryUpdateModelAsync<Student>(
        emptyStudent,
        "Student",
        s => s.FirstMidName,
        s => s.LastName,
        s => s.EnrollmentDate))
    {
        _context.Students.Add(emptyStudent);
        await _context.SaveChangesAsync();
        return RedirectToPage("./Index");
    }

    return Page();
}

O formulário é o seguinte:

<form method="post">
    <div asp-validation-summary="ModelOnly" class="text-danger"></div>

    <div class="form-group">
        <label asp-for="Student.LastName" class="control-label"></label>
        <input asp-for="Student.LastName" class="form-control" />
        <span asp-validation-for="Student.LastName" class="text-danger"></span>
    </div>

    <div class="form-group">
        <label asp-for="Student.FirstMidName" class="control-label"></label>
        <input asp-for="Student.FirstMidName" class="form-control" />
        <span asp-validation-for="Student.FirstMidName" class="text-danger"></span>
    </div>

    <div class="form-group">
        <label asp-for="Student.EnrollmentDate" class="control-label"></label>
        <input asp-for="Student.EnrollmentDate" class="form-control" />
        <span asp-validation-for="Student.EnrollmentDate" class="text-danger"></span>
    </div>

    <div class="form-group">
        <input type="submit" value="Create" class="btn btn-primary" />
    </div>
</form>

Eu depurei e analisei o tráfego. Eu sei que estou recebendo o formulário com os valores e, na verdade, usando Request.Form["student.FirstMidName"]e assim por diante, eu posso preencher emptyStudent.

Ainda não entendi o que está errado, já que o código, aparentemente, está bom. No entanto, TryUpdateModelAsyncestá retornando false.

Alguma ideia do porquê isso está acontecendo?

c#
  • 2 respostas
  • 72 Views
Martin Hope
PatPanda
Asked: 2025-04-03 03:34:16 +0800 CST

mvn deploy:deploy em um jar correto existente resulta em jar corrompido no artifactory

  • 5

Gostaria de fazer upload e implantar um jar existente no artifactory.

Há um pipeline de terceiros, sobre o qual não tenho controle algum, qual etapa 1 construirá um jar. O jar é então colocado em um host, em seu diretório de arquivos. Novamente, não tenho controle sobre o trabalho em si.

Mas eu posso ver quando entro manualmente no host que o jar está correto fazendo jar xf thejar.jar. O conteúdo extraído teria todos os arquivos de classe apropriados.

Agora, minha parte, etapa 2, estou tentando carregar este jar em um artefato.

Entendo que há uma opção para executar mvn deploy, mas isso executaria todas as etapas anteriores do ciclo de vida do maven. Como o jar está correto, gostaria de evitar essa duplicação (executar todas as etapas anteriores do ciclo de vida do maven) e apenas fazer upload do jar.

Até agora, encontrei duas soluções:

  1. parece mvn deploy:deployque esta solução não repete tudo, mas apenas tenta carregar o jar

  2. execute mvn jar:jar deploy:deployo mesmo, parece que esta solução não reexecuta tudo, mas apenas tenta carregar o jar

Entretanto, a solução 1 produziria o seguinte problema:

[INFO] ----------------------< com.example:mavendeploy >-----------------------
[INFO] Building mavendeploy 4.3
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- deploy:3.1.2:deploy (default-cli) @ mavendeploy ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.329 s
[INFO] Finished at: 2025-T19:26:20Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:3.1.2:deploy (default-cli) on project mavendeploy: The packaging plugin for project mavendeploy did not assign a file to the build artifact -> [Help 1]

Parece que nem detecta o jarro.

Enquanto a segunda solução produzirá esse problema.

[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- jar:3.4.1:jar (default-cli) @ mavendeploy ---
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] Building jar: /builds/path/to/jar/mavendeploy-4.3.jar
[INFO] 
[INFO] --- deploy:3.1.2:deploy (default-cli) @ mavendeploy ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

Embora pareça detectar o jar correto corretamente, há este aviso, JAR will be emptye também, embora o jar pareça estar realmente carregado no artifactory, o jar baixado do artifactory não contém nenhum dos arquivos de classes. Por quê?

Qual é a maneira correta de fazer upload de um jar existente no artifactory usando mvn deploy(espero que sem ter que executar novamente todo o ciclo de vida do maven, já que o jar já está lá)?

O que fiz de errado na solução 1 ou na solução 2?

java
  • 1 respostas
  • 45 Views
Martin Hope
EnCoder2000
Asked: 2025-04-03 03:22:41 +0800 CST

Node.js não consegue se conectar ao Postgres dentro do Docker-Compose

  • 6

Quero executar meu Node.js, Postgres e Ngnix no mesmo contêiner docker, mas estou recebendo o erro abaixo

2025-04-02 20:07:11 Erro de conexão Erro: conectar ECONNREFUSED 127.0.0.1:5432 2025-04-02 20:07:11 em TCPConnectWrap.afterConnect [como oncomplete] (node:net:1555:16)

Por que o aplicativo node.js não consegue se conectar ao banco de dados?

docker-compose.yml



services:
  nginx:
    image: nginx:latest
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
    ports:
      - "80:80"
    depends_on:
      - node-api

  node-api:
    build: .
    environment:
      - DB_HOST=postgres
      - DB_PORT=5432
      - DB_NAME=database
      - DB_USER=postgres
      - DB_PASSWORD=password
    ports:
      - "3000:3000"
    depends_on:
      postgres:
        condition: service_healthy

  postgres:
    image: postgis/postgis:latest
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: password
      POSTGRES_DB: database
    ports:
      - "5432:5432"
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "postgres", "-h", "localhost"]
      interval: 10s
      retries: 5
      start_period: 30s
      timeout: 10s


volumes:
  postgres-data:

Arquivo Docker

# Use an official Node.js runtime as a parent image
FROM node:18

# Set the working directory
WORKDIR /app

# Copy package.json and install dependencies
COPY package.json package-lock.json ./
RUN npm install

# Copy the rest of the application
COPY . .

# Expose the port the app runs on
EXPOSE 3000

# Start the application
CMD ["node", "api/apis.js"]

EDITADO: --------------

api.js

import express from 'express'
import cors from 'cors'
import client from './postgres_connection.js'


const app = express();

app.use(cors());

app.use(express.json());



app.get('/getMarkers', async (req, res) => {
    try {

        const result = await client.query('SELECT * FROM public.topo_markers');
        res.json(result.rows);

    }
    catch (errr) {
        console.error(errr.message);
        res.status(500).send('Internal server error');
    }
});


app.post('/addMarker', async (req, res) => {
    const { title, description, latitude, longitude } = req.body;

    const isBodyEmpty = !title || !description || !latitude || !longitude;

    if (isBodyEmpty) {
        return res.status(400).send('Missing required properties');
    }

    try {
        const query = `
        INSERT INTO public.topo_markers (title, description, geom)
        VALUES ($1, $2, ST_SetSRID(ST_MakePoint($3, $4), 4326)) RETURNING *;
    `;

        const result = await client.query(query, [title, description, longitude, latitude]);

        res.status(201).json(result.rows[0]);

    } catch (errr) {
        console.error(errr.message);
        res.status(500).send('Internal server error');
    }
});

app.listen(3000)

postgres_connection.js

import pg from 'pg';


const client = new pg.Client({
  user: 'postgres',  // Default is usually 'postgres'
  host: 'localhost',           // Use the container's IP if needed
  database: 'test_database',   // Change to your database name
  password: 'password',   // Set this properly
  port: 5432,                  // Default PostgreSQL port
});

client.connect()
  .then(() => console.log('Connected to PostGIS!'))
  .catch(err => console.error('Connection error', err.stack));


export default client;
node.js
  • 1 respostas
  • 47 Views
Martin Hope
Mayank Neupane
Asked: 2025-04-03 03:16:35 +0800 CST

Como corrigir o erro “Net Cannot Be Assigned More Than One Value” ao usar vários módulos SPI?

  • 7

Estou trabalhando em um projeto Verilog para a placa FPGA DE10-Lite que faz interface com um acelerômetro de 3 eixos sobre SPI. Tenho módulos SPI separados (spi_ee_config) para cada eixo: x_info, y_info, e z_info. Cada módulo emite seus próprios sinais chip select ( oSPI_CSN) e clock ( oSPI_CLK). No entanto, quando tento compilar, recebo o seguinte erro:

O erro

Cabeçalho do módulo para todos os 3 eixos

Pelo que entendi, isso significa que vários módulos estão tentando usar o mesmo fio, o que causa um conflito. Mas como estou lendo de 3 eixos, não tenho certeza de como compartilhar o barramento SPI corretamente sem atingir esse erro.

Como devo estruturar meu código Verilog para que apenas um módulo acione as linhas CS e CLK por vez? Devo multiplexar as saídas manualmente ou há um padrão melhor para lidar com múltiplos módulos SPI que compartilham o mesmo barramento?

Qualquer orientação ou trecho de código seria bem-vindo.

Problema de código:

Conflito aqui, pois todos os 3 spi_ee_config_# usam o mesmo controlador SPI:

spi_ee_config_X x_info (            
                            .oSPI_CSN(GSENSOR_CS_N),
                            .oSPI_CLK(GSENSOR_SCLK)
    );

spi_ee_config_y y_info (            
                        .oSPI_CSN(GSENSOR_CS_N),
                        .oSPI_CLK(GSENSOR_SCLK)
);

spi_ee_config_z z_info (            
                        .oSPI_CSN(GSENSOR_CS_N),
                        .oSPI_CLK(GSENSOR_SCLK)
);

Raízes de volta ao spi_controller:

module spi_controller (     
input                             iRSTN;
input                             iSPI_CLK;
input                             iSPI_CLK_OUT;
input         [SI_DataL:0]  iP2S_DATA; 
input                           iSPI_GO;
output                        oSPI_END;
output  reg [SO_DataL:0]    oS2P_DATA;
//  SPI Side              
inout                             SPI_SDIO;
output                        oSPI_CSN;    <<<<<<
output                          oSPI_CLK;  <<<<<<<


//  Structural coding
assign read_mode = iP2S_DATA[SI_DataL];
assign write_address = spi_count[3];
assign oSPI_END = ~|spi_count;
assign oSPI_CSN = ~iSPI_GO;
assign oSPI_CLK = spi_count_en ? iSPI_CLK_OUT : 1'b1;
assign SPI_SDIO = spi_count_en && (!read_mode || write_address) ? iP2S_DATA[spi_count] : 1'bz;

always @ (posedge iSPI_CLK or negedge iRSTN) 
    if (!iRSTN)
    begin
        spi_count_en <= 1'b0;
        spi_count <= 4'hf;
    end
    else 
    begin
        if (oSPI_END)
            spi_count_en <= 1'b0;
        else if (iSPI_GO)
            spi_count_en <= 1'b1;
            
        if (!spi_count_en)  
        spi_count <= 4'hf;      
        else
            spi_count   <= spi_count - 4'b1;

    if (read_mode && !write_address)
          oS2P_DATA <= {oS2P_DATA[SO_DataL-1:0], SPI_SDIO};
    end

endmodule
verilog
  • 1 respostas
  • 36 Views
Martin Hope
UnusualAce77
Asked: 2025-04-03 03:07:27 +0800 CST

Função Divider() riscada usando o Android Studio

  • 6

Estou tentando fazer um aplicativo de lista de tarefas usando o Android Studio e o Kotlin. O divider() por algum motivo tem um tachado no meu compilador. Alguma solução para isso? Estou tendo problemas para fazer meu código funcionar. Já importei a função divider nas minhas importações listadas (conforme mostrado no meu código abaixo). Importei o que é chamado andtroidx.compose.material3.Divider, no entanto, ao chamar a função, Divider é riscado.

package com.example.firstapriltemplate

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.example.firstapriltemplate.ui.theme.FirstAprilTemplateTheme
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.material3.OutlinedTextField
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.material3.Surface
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.getValue
import androidx.compose.runtime.setValue
import androidx.compose.material3.Button
import androidx.compose.material3.Divider



class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            App()
            FirstAprilTemplateTheme {
                Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
                    Greeting(
                        name = "Android",
                        modifier = Modifier.padding(innerPadding)
                    )
                }
            }
        }
    }
}

@Composable
fun App(){
    var item by remember{
        mutableStateOf(value = "something") //
    }
    var items = mutableListOf<String>()
    FirstAprilTemplateTheme {
        Surface(
            modifier = Modifier.fillMaxSize(),
            color = MaterialTheme.colorScheme.background
        ) {
            ToDoListItem("Android")
        }
        Column() {
            Text(
                text = "To Do list!",
                fontSize = 32.sp,
                fontWeight = FontWeight.Bold,
                modifier = Modifier.padding(12.dp)
            )
        }

        OutlinedTextField(
            value = item,
            onValueChange = { item = it },
            label = { Text(text = "New Item") }
        )
        Row() {
            OutlinedTextField(
                value = item,
                onValueChange = { item = it },
                label = { Text(text = "New Item") }
            )

            Button(onClick = {
                if (item.isEmpty()) {
                    items.add(item)
                    item = ''
                }
            })
            /*Moving App*/(
                Text(text = "Save")
                )
        }
        Divider()
        Column(){
            for (item in items){
                ToDoListItem(name = item)
            }
        }

        }
    }

@Composable
fun ToDoListItem(name: String) {
    Text(text = name)
}

@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
    FirstAprilTemplateTheme {
        ToDoListItem("Android")
    }
}
  • 1 respostas
  • 26 Views
Martin Hope
mooski
Asked: 2025-04-03 02:36:14 +0800 CST

Como filtrar com eficiência valores específicos de um conjunto de dados e agrupar esses valores filtrados com base em suas contagens para um gráfico

  • 5

Tenho um grande conjunto de dados (mais de 5 milhões de registros) de crimes de NYC. Quero selecionar 5 crimes da coluna 'OFNS_DESC' e agrupar os crimes de acordo com o número de ocorrências em um mês para que eu possa traçar uma série temporal de forma mais eficiente.

conjunto de dados de amostra

Atualmente, tenho o seguinte. O problema é que demora um pouco para calcular porque, para cada valor, ele passa por todo o conjunto de dados e faz o mesmo para o agrupamento. Quero tornar esse processo mais eficiente

# convert ARREST_DATE format to YYYY/MM
arrest_ym = df["ARREST_DATE"].dt.to_period('M')

# filter out crime types
dngr_drug = df[df["OFNS_DESC"] == "DANGEROUS DRUGS"]
aslt3 = df[df["OFNS_DESC"] == "ASSAULT 3 & RELATED OFFENSES"]
pt_lrcy = df[df["OFNS_DESC"] == "PETIT LARCENY"]
flny_aslt = df[df["OFNS_DESC"] == "FELONY ASSAULT"]
dngr_wpns = df[df["OFNS_DESC"] == "DANGEROUS WEAPONS"]

# group and count 
dngr_drug_gc = dngr_drug.groupby(arrest_ym)["OFNS_DESC"].count()
aslt3_gc = aslt3.groupby(arrest_ym)["OFNS_DESC"].count()
pt_lrcy_gc = pt_lrcy.groupby(arrest_ym)["OFNS_DESC"].count()
flny_aslt_gc = flny_aslt.groupby(arrest_ym)["OFNS_DESC"].count()
dngr_wpns_gc = dngr_wpns.groupby(arrest_ym)["OFNS_DESC"].count()

Abaixo está o código para meu gráfico. Acredito que ele seria afetado com base nas alterações feitas acima.

# multi-line plot
x_labels = dngr_drug_gc.index.astype(str)

plt.figure(figsize = (20, 10))
plt.plot(dngr_drug_gc.index.astype(str), dngr_drug_gc.values, 'b-', label = "Dangerous Drugs")
plt.plot(aslt3_gc.index.astype(str), aslt3_gc.values, 'g-', label = "Assault 3 & Related Offenses")
plt.plot(pt_lrcy_gc.index.astype(str), pt_lrcy_gc.values, 'r-', label = "Petit Larceny")
plt.plot(flny_aslt_gc.index.astype(str), flny_aslt_gc.values, 'c-', label = "Felony Assault")
plt.plot(dngr_wpns_gc.index.astype(str), dngr_wpns_gc.values, 'm-', label = "Dangerous Weapons")

plt.xticks(x_labels[::6], rotation=45)

plt.xlabel("Month")
plt.ylabel("Crime Count")
plt.title("Monthly Crime Frequency")
plt.legend(loc = "best")

Meus resultados estão bons, mas eu só quero otimizar o código. Uma maneira que vi foi fazer o código abaixo, mas não sei como prosseguir a partir daí.

crime_select = ["DANGEROUS DRUGS", "ASSAULT 3 & RELATED OFFENSES", "PETIT LARCENY", "FELONY ASSAULT", "DANGEROUS WEAPONS"]
filtered_crime = df[df["OFNS_DESC"].isin(crime_select)]

Por favor, tenha em mente que sou completamente novo em codificação, então qualquer explicação seria muito útil. Obrigado.

gráfico de resultados

python
  • 1 respostas
  • 69 Views
Martin Hope
Chris Reeder
Asked: 2025-04-03 02:36:06 +0800 CST

Existe uma maneira de remover o parâmetro de consulta iss da URL de redirecionamento do banno?

  • 5

Depois de acessar o https://digital.garden-fi.com/a/consumer/api/v0/oidc/auth inicial , somos redirecionados de volta para nossa URL, por exemplo:

https://dev2offers.cmgdlx.com/cnx/oauth2?tid=75B94B7E-E60D-4CB6-BBAC-E85949B4CA0E&code=j7vzsAaDJEqL2mom1Uc_l-GgjFexVuRksGNM17XpQ47&state=8BADE3FC-7859-4BF7-9B2C-5FAEB8FD2A2C&iss=https%3A%2F%2Fdigital.garden-fi.com%2Fa%2Fconsumer%2Fapi%2Fv0%2Foidc

Temos uma regra em nosso WAF para bloquear qualquer link fora do domínio. Então o: iss=https%3A%2F%2Fdigital.garden-fi.com%2Fa%2Fconsumer%2Fapi%2Fv0%2Foidcestá acionando essa política e não permitindo que o usuário autentique.

Existe alguma maneira de desabilitar que isso seja retornado como um parâmetro de consulta?

banno-digital-toolkit
  • 1 respostas
  • 19 Views
Martin Hope
Kevin Garcia
Asked: 2025-04-03 01:59:14 +0800 CST

TailwindCSS v4 com Sass

  • 6

Alguém conseguiu executar com sucesso o TailwindCSS 4 com Sass no aplicativo Webpack 5 e React?

Estou tendo alguns problemas de configuração em que não recebo nenhum erro de console, mas o processamento CSS parece estar em conflito no meu aplicativo a ponto de atrapalhar o roteamento.

Toda vez que vou para uma URL diferente, o aplicativo trava. Às vezes, se eu recarregar a página, ele pode renderizar todo o conteúdo. Mas, ao navegar para fora, o mesmo problema acontece: o aplicativo trava e diz "Desculpe, esta página não existe".

É bom ressaltar que esse problema começou a acontecer depois de introduzir o TailwindCSS 4 no aplicativo. O aplicativo nunca usou o Tailwind antes, apenas uma combinação de Material UI React + Reactstrap. Os estilos parecem se aplicar ao atualizar a página atual.

pacote.json

{
    "name": "my-app",
    "version": "1.0.0",
    "private": true,
    "scripts": {
        "start": "node server.js",
        "build-manager": "NODE_ENV=production APP_ENV=$npm_config_app_env node --max-old-space-size=13500 ./node_modules/webpack/bin/webpack.js --config ./apps/manager/webpack.prod.js",
        "server": "node server.js",
        "test": "jest --watch",
        "cypress": "npx cypress open"
    },
    "author": "",
    "license": "ISC",
    "devDependencies": {
        "@babel/core": "^7.25.8",
        "@babel/preset-env": "^7.25.8",
        "@babel/preset-typescript": "^7.25.7",
        "@eslint/eslintrc": "^3.1.0",
        "@eslint/js": "^9.13.0",
        "@sentry/webpack-plugin": "^2.22.6",
        "@testing-library/jest-dom": "^6.1.3",
        "@testing-library/react": "^15.0.7",
        "@testing-library/user-event": "^14.5.2",
        "@types/react": "~18.2.0",
        "@types/react-dom": "~18.2.0",
        "@types/react-redux": "^7.1.34",
        "autoprefixer": "^10.4.21",
        "babel-loader": "^9.2.1",
        "case-sensitive-paths-webpack-plugin": "^2.4.0",
        "clean-webpack-plugin": "^4.0.0",
        "copy-webpack-plugin": "^12.0.2",
        "css-loader": "^7.1.2",
        "cypress": "^13.15.0",
        "cypress-mailisk": "^2.0.1",
        "eslint": "^9.13.0",
        "eslint-plugin-react": "^7.37.1",
        "eslint-plugin-simple-import-sort": "^7.0.0",
        "express": "^4.21.1",
        "globals": "^15.11.0",
        "html-webpack-plugin": "^5.6.2",
        "husky": "^9.1.6",
        "jest-environment-jsdom": "^29.7.0",
        "lint-staged": "^15.2.10",
        "prettier": "^3.3.3",
        "redoc-cli": "^0.13.16",
        "sass": "^1.79.5",
        "sass-loader": "^16.0.2",
        "semantic-ui-react": "^2.1.5",
        "style-loader": "^4.0.0",
        "svg-inline-loader": "^0.8.2",
        "svg-url-loader": "^8.0.0",
        "terser-webpack-plugin": "^5.3.10",
        "webpack": "^5.95.0",
        "webpack-bundle-analyzer": "^4.10.2",
        "webpack-cli": "^5.1.4",
        "webpack-dev-middleware": "^7.4.2",
        "webpack-dev-server": "^5.1.0",
        "webpack-hot-middleware": "^2.26.1",
        "webpack-manifest-plugin": "^5.0.0",
        "webpack-merge": "^6.0.1"
    },
    "dependencies": {
        "@babel/eslint-parser": "^7.25.9",
        "@babel/plugin-proposal-class-properties": "^7.8.3",
        "@babel/runtime": "^7.25.7",
        "@babel/runtime-corejs2": "^7.25.7",
        "@devexpress/dx-react-core": "^4.0.8",
        "@devexpress/dx-react-scheduler": "^4.0.8",
        "@devexpress/dx-react-scheduler-material-ui": "^4.0.8",
        "@dnd-kit/core": "^6.1.0",
        "@dnd-kit/modifiers": "^7.0.0",
        "@dnd-kit/sortable": "^8.0.0",
        "@dnd-kit/utilities": "^3.2.2",
        "@floating-ui/react": "^0.27.0",
        "@gsap/react": "^2.1.1",
        "@hello-pangea/dnd": "^16.6.0",
        "@mui/icons-material": "^5.15.15",
        "@mui/lab": "^5.0.0-alpha.117",
        "@mui/material": "^5.15.15",
        "@mui/x-date-pickers": "^5.0.15",
        "@reduxjs/toolkit": "^2.3.0",
        "@sentry/react": "^8.37.1",
        "@tailwindcss/postcss": "^4.0.17",
        "@tanstack/react-query": "^5.59.15",
        "@tanstack/react-query-devtools": "^5.59.15",
        "@tanstack/react-virtual": "^3.10.8",
        "@tiptap/extension-placeholder": "^2.8.0",
        "@tiptap/pm": "^2.8.0",
        "@tiptap/react": "^2.8.0",
        "@tiptap/starter-kit": "^2.8.0",
        "@uidotdev/usehooks": "^2.4.1",
        "ace-builds": "^1.36.2",
        "ag-grid-community": "^33.0.3",
        "ag-grid-enterprise": "^33.0.3",
        "ag-grid-react": "^33.0.3",
        "array-move": "^2.2.0",
        "axios": "^1.7.7",
        "big.js": "^6.2.2",
        "bootstrap": "^4.6.0",
        "chart.js": "^4.4.5",
        "classnames": "^2.5.1",
        "crypto-browserify": "^3.12.0",
        "crypto-es": "^2.1.0",
        "debounce-promise": "^3.1.2",
        "dompurify": "^3.1.7",
        "dotenv-webpack": "^8.1.0",
        "formik": "^2.4.6",
        "fslightbox-react": "^1.7.6",
        "gsap": "^3.12.5",
        "html-react-parser": "^5.1.18",
        "immutability-helper": "^3.1.1",
        "invariant": "^2.2.4",
        "jsoncrush": "^1.1.6",
        "large-small-dynamic-viewport-units-polyfill": "^0.1.1",
        "libphonenumber-js": "^1.11.11",
        "lodash.clonedeep": "^4.5.0",
        "lodash.flattendeep": "^4.4.0",
        "lodash.isequal": "^4.5.0",
        "lodash.topath": "^4.5.2",
        "mapbox-gl": "^3.7.0",
        "microsoft-cognitiveservices-speech-sdk": "^1.41.0",
        "mini-css-extract-plugin": "^2.9.2",
        "moment": "^2.30.1",
        "moment-timezone": "^0.5.23",
        "mui-image": "^1.0.7",
        "mui-nested-menu": "^3.4.0",
        "natural-orderby": "^2.0.3",
        "npm": "^10.9.0",
        "postcss": "^8.5.3",
        "postcss-loader": "^8.1.1",
        "postcss-preset-env": "^10.1.5",
        "promise-polyfill": "8.3.0",
        "promise.allsettled": "^1.0.7",
        "query-string": "^9.1.1",
        "react": "~18.2.0",
        "react-ace": "^12.0.0",
        "react-bottom-scroll-listener": "^5.1.0",
        "react-chartjs-2": "^5.2.0",
        "react-content-loader": "^7.0.2",
        "react-datepicker": "^7.5.0",
        "react-dom": "~18.2.0",
        "react-draggable": "^4.4.6",
        "react-dropzone": "^14.2.9",
        "react-froala-wysiwyg": "4.3.0",
        "react-google-places-autocomplete": "^4.1.0",
        "react-google-recaptcha": "^3.1.0",
        "react-grid-layout": "^1.5.0",
        "react-intersection-observer": "^9.13.1",
        "react-loadable": "^5.5.0",
        "react-map-gl": "^7.1.7",
        "react-markdown": "^9.0.3",
        "react-moment": "^1.1.3",
        "react-number-format": "^5.4.2",
        "react-payment-inputs": "^1.2.0",
        "react-pdf": "^9.1.1",
        "react-phone-number-input": "^3.4.8",
        "react-plaid-link": "^3.6.0",
        "react-qr-code": "^2.0.15",
        "react-quill": "^2.0.0",
        "react-redux": "^9.1.2",
        "react-router-dom": "^5.1.2",
        "react-scripts": "^5.0.1",
        "react-select": "^5.8.1",
        "react-speech-recognition": "^3.10.0",
        "react-spinners": "^0.15.0",
        "react-toastify": "^10.0.6",
        "react-toggle": "^4.0.2",
        "react-virtuoso": "^4.12.0",
        "react-zoom-pan-pinch": "^3.6.1",
        "reactstrap": "^8.10.1",
        "redux": "^5.0.1",
        "redux-first-history": "^5.2.0",
        "redux-thunk": "^3.1.0",
        "regenerator-runtime": "^0.14.1",
        "stream-browserify": "^3.0.0",
        "styled-components": "^6.1.13",
        "tailwindcss": "^4.0.17",
        "textarea-caret": "^3.1.0",
        "web-speech-cognitive-services": "^7.1.3",
        "yup": "^1.4.0"
    }
}

postcss.config.js

module.exports = {
    plugins: {
        '@tailwindcss/postcss': {}
    }
};

vento de cauda.css

@import '@rentvine/trellis/variables';
@import 'tailwindcss';
@import '@rentvine/trellis/config';

webpack.common.js

const path = require('path');
const webpack = require('webpack');
const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const { WebpackManifestPlugin } = require('webpack-manifest-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');

const Dotenv = require('dotenv-webpack');

const { getAppConfig } = require('./../../rv-build-config');
const appConfig = getAppConfig('manager', process.env.APP_ENV);

module.exports = {
    devtool: 'source-map',
    entry: {
        app: path.resolve(__dirname, './src/index.js')
    },
    output: {
        filename: '[name].bundle.[fullhash].js',
        chunkFilename: '[name].bundle.[fullhash].js',
        path: path.resolve(__dirname, './../../bin/manager-app'),
        publicPath: '/'
    },
    resolve: {
        alias: {
            '~': path.resolve(__dirname, 'src'),
            Lib: path.resolve(__dirname, '../../lib/node/src'),
            ROOT: path.resolve(__dirname, '../../')
        },
        modules: ['../node_modules/froala-editor/js', 'node_modules'],
        fallback: {
            crypto: require.resolve('crypto-browserify'),
            stream: require.resolve('stream-browserify')
        },
        extensions: ['.ts', '.js'],
        symlinks: false
    },
    plugins: [
        // Load shared environment variables (stored in .env)
        new Dotenv(),
        new CleanWebpackPlugin(),
        new HtmlWebpackPlugin({
            title: 'Rentvine',
            template: path.resolve(__dirname, './src/index.html')
        }),
        new WebpackManifestPlugin(),
        new webpack.DefinePlugin({
            ...appConfig,
            'process.env.PORTAL_TYPE_ID': JSON.stringify(1),
            'process.env.API_ROOT': JSON.stringify('/api/manager/'),
            'process.env.LOGIN_URL': JSON.stringify('session_manager_LoginUrl')
        }),
        new CopyWebpackPlugin({
            patterns: [
                {
                    from: path.resolve(__dirname, './src/assets'),
                    to: 'assets'
                },
                {
                    // move main favicon to root so non-html documents show it ( pdf, img, etc)
                    from: path.resolve(__dirname, './src/assets/favicon/favicon.ico'),
                    to: 'favicon.ico'
                }
            ]
        }),
        new webpack.ProvidePlugin({
            FroalaEditor: 'file_name'
        }),
        new CaseSensitivePathsPlugin()
    ],
    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: /node_modules/,
                include: [path.resolve(__dirname, 'src'), path.resolve(__dirname, './../../lib/node/src')],
                use: 'babel-loader'
            },
            {
                test: /\.ts?/,
                exclude: /node_modules/,
                include: [path.resolve(__dirname, 'src'), path.resolve(__dirname, './../../lib/node/src')],
                use: 'babel-loader'
            },
            {
                test: /\.m?js$/,
                exclude: /(node_modules|bower_components)/,
                include: path.resolve(__dirname, 'src'),
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['@babel/preset-env']
                    }
                }
            },
            {
                test: /\.css$/,
                use: ['style-loader', 'css-loader', 'postcss-loader']
            },
            {
                test: /\.scss$/,
                use: [
                    'style-loader', // creates style nodes from JS strings
                    { loader: 'css-loader', options: { url: false } }, // translates CSS into CommonJS
                    {
                        // compiles Sass to CSS
                        loader: 'sass-loader',
                        options: {
                            sassOptions: {
                                // TODO: these should only be temporary until we have time to fix issues
                                quietDeps: true,
                                silenceDeprecations: ['color-functions', 'global-builtin', 'import']
                            }
                        }
                    }
                ]
            },
            {
                test: /\.(png|svg|jpg|gif)$/,
                type: 'asset/resource'
            },
            {
                test: /\.(woff|woff2|eot|ttf|otf)$/,
                type: 'asset/resource'
            },
            {
                test: /\.woff(\?v=\d+\.\d+\.\d+)?$/,
                mimetype: 'application/font-woff',
                type: 'asset'
            },
            {
                test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,
                mimetype: 'application/font-woff',
                type: 'asset'
            },
            {
                test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
                mimetype: 'application/octet-stream',
                type: 'asset'
            },
            {
                test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
                type: 'asset/resource'
            }
        ]
    }
};
reactjs
  • 1 respostas
  • 41 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