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
Laurence_jj
Asked: 2025-03-31 17:53:17 +0800 CST

Como exibir o número de grupos em tabelas de regressão fixest usando modelsummary?

  • 5

Estou usando o fixestpacote para regressões de efeitos fixos e modelsummarypara criar tabelas. Gostaria que as tabelas mostrassem o número de grupos (por exemplo, número de valores únicos para as variáveis ​​de efeito fixo). Aqui está um exemplo mínimo:

library(fixest)
library(modelsummary)

# Example fixed effects regression
reg1 <- feols(Sepal.Length ~
                Sepal.Width + Petal.Length + Petal.Width |
                Species,
              data = iris
)

# Create summary table
msummary(reg1)

Isso produz uma tabela legal, mas eu gostaria de adicionar o número de grupos no meu efeito fixo (neste exemplo, seriam 3 espécies). Eu tentei usar gof_mappara incluir essas informações, mas não parece extrair o número de grupos por padrão:

msummary(reg1, 
         gof_map = c("nobs", "r.squared", "adj.r.squared", "n"))

Existe uma maneira de fazer modelsummaryexibir o número de grupos para cada efeito fixo no meu modelo? Eu preferiria uma solução que funcionasse com a modelsummaryfuncionalidade padrão, mas estou aberto a funções personalizadas, se necessário.

Observação : na minha pesquisa atual, estou trabalhando com dados em painel, onde o número de grupos é importante para interpretar os resultados.

  • 1 respostas
  • 21 Views
Martin Hope
shynur
Asked: 2025-03-31 15:10:28 +0800 CST

declarar return_void / return_value condicionalmente

  • 6

Eu tentei std::enable_ife requires:


template <typename Ret>
struct promise_type {
  auto get_return_object() {/*...*/}
  auto initial_suspend() {/*...*/}

  auto return_void()
    -> std::enable_if_t<std::is_void_v<Ret>> {/*...*/}
  auto return_value(Ret)
    -> std::enable_if_t<!std::is_void_v<Ret>> {/*...*/}

  void unhandled_exception() {/*...*/}
  auto final_suspend() noexcept {/*...*/}

  // Rest of promise_type's definition ...
};
In file included from src/TestSyncTask.cpp:1:
In file included from include/asyncxx/SyncTask.hpp:2:
In file included from /usr/local/lib/gcc/x86_64-pc-linux-gnu/15.0.1/../../../../include/c++/15.0.1/coroutine:48:
/usr/local/lib/gcc/x86_64-pc-linux-gnu/15.0.1/../../../../include/c++/15.0.1/type_traits:2837:44: error: no type named 'type' in 'std::enable_if<false>'; 'enable_if' cannot be used to disable this declaration
 2837 |     using enable_if_t = typename enable_if<_Cond, _Tp>::type;
      |                                            ^~~~~
include/asyncxx/SyncTask.hpp:12:36: note: in instantiation of template type alias 'enable_if_t' requested here
   12 |         auto return_void() -> std::enable_if_t<std::is_void_v<Ret>> {}
      |                                    ^
src/TestSyncTask.cpp:4:15: note: in instantiation of member class 'SyncTask<int>::promise_type' requested here
    4 | SyncTask<int> async_main(const int argc, const char *const argv[]) {
      |               ^
1 error generated.

template <typename Ret>
struct promise_type {
  auto get_return_object() {/*...*/}
  auto initial_suspend() {/*...*/}

  auto return_void() requires std::is_void_v<Ret> {/*...*/}
  auto return_value(Ret) requires (!std::is_void_v<Ret>) {/*...*/}

  void unhandled_exception() {/*...*/}
  auto final_suspend() noexcept {/*...*/}

  // Rest of promise_type's definition ...
};
src/TestSyncTask.cpp:4:15: error: the coroutine promise type 'promise_type' declares both 'return_value' and 'return_void'
    4 | SyncTask<int> async_main(const int argc, const char *const argv[]) {
      |               ^
include/asyncxx/SyncTask.hpp:12:14: note: member 'return_void' first declared here
   12 |         auto return_void() requires std::is_void_v<Ret> {}
      |              ^
include/asyncxx/SyncTask.hpp:13:14: note: member 'return_value' first declared here
   13 |         auto return_value(Ret val) requires (!std::is_void_v<Ret>) {
      |              ^
1 error generated.

Como posso consertar isso?

c++
  • 1 respostas
  • 79 Views
Martin Hope
arun kumar
Asked: 2025-03-31 14:48:27 +0800 CST

Stripe Checkout - Ocultar checkout de 1 clique

  • 5

Estou usando o formulário incorporado Stripe para pagamento. Para pagamentos com cartão, ele mostra uma opção para checkout de 1 clique.

Como posso ocultar esta opção? Verifiquei nas configurações do painel para pagamentos com cartão. Mas não encontro nenhuma opção.

stripe-payments
  • 1 respostas
  • 15 Views
Martin Hope
alagner
Asked: 2025-03-31 14:35:38 +0800 CST

C++20 SFINAE trailing vs leading requer em função membro em um modelo de classe

  • 6

Eu tenho um pedaço de código SFINAE C++17

#include <type_traits>

template<typename>
constexpr bool dependentFalse = false;

template<typename T>
struct IAmEmpty
{
    template<typename U=T, std::enable_if_t<dependentFalse<U>>* =nullptr>
    auto deleteMe()
    {}

};

template struct IAmEmpty<int>;

https://godbolt.org/z/vWW3favWj

Estou tentando retrabalhar isso para C++20 e me pergunto:

#include <type_traits>

template<typename T>
struct IAmEmpty
{
    template<typename U=T>
    requires false
    void deleteMe() {}

    void deleteMeToo() requires false {}
};

template struct IAmEmpty<int>;

Até onde eu entendo, o líder requer é próximo ao SFINAE pré-C++20 obtido usando eg enable_ife void_tsimilares. Portanto, deleteMeé na verdade um modelo de função membro. deleteMeToonão é um modelo de função (ou estou errado aqui?). Exemplo ao vivo: https://godbolt.org/z/rGzx8dz3f

Existem situações em que deleteMee deleteMeToorealmente se comportam de forma diferente e deve-se ter cuidado ao preferir os requisitos finais em vez dos principais?

c++
  • 1 respostas
  • 95 Views
Martin Hope
Gary
Asked: 2025-03-31 14:32:19 +0800 CST

Existe algum para selecionar elementos filhos pela posição relativa da mesma classe? [duplicado]

  • 5
Esta pergunta já tem respostas aqui :
Posso combinar :nth-child() ou :nth-of-type() com um seletor arbitrário? (10 respostas)
Fechado há 8 horas .

Este exemplo fornece o resultado desejado de selecionar o primeiro, segundo e terceiro elementos filhos que são da classe "subhead". No entanto, minha pergunta é: existe algum método de seleção que selecione a primeira, segunda e terceira ocorrências da classe "subhead" independentemente de sua posição exata de filho no pai, de modo que isso funcione quando não se sabe com antecedência quais serão essas posições; e poderíamos usar as posições 1,2,3 em vez de 1,3,5, já que não se saberá quantos elementos irmãos estarão entre cada subhead?

Obrigado.

div.scrl_can * {
  height:25px;
  border: 1px solid black;
}
.subhead:nth-of-type(1) {
  background-color: blue;
}
.subhead:nth-of-type(3) {
  background-color: green;
}
.subhead:nth-of-type(5) {
  background-color: yellow;
}
<div id="main">
  <div>
    <div>
      <div class="scrl_can">
        <div class="subhead"></div>
        <div></div>
        <div class="subhead"></div>
        <div></div>
        <div class="subhead"></div>
        <div></div>
      </div>
    </div>
  </div>
</div>

javascript
  • 1 respostas
  • 44 Views
Martin Hope
MB22
Asked: 2025-03-31 13:10:29 +0800 CST

Como testar (certifique-se de que ele está coberto pelo Sonar) Blocos de captura?

  • 5

Sou novo no NUnit (3.4+) e de alguma forma não consigo resolver o problema simples abaixo :)

Quero ter certeza de que os blocos catch estão cobertos na cobertura do Sonar e, para isso, quero escrever um caso de teste Nunit. Tentei algumas coisas, mas nada funcionou para mim e continuei recebendo erro/falha de teste. Este é meu método testável. (Observe que, por algum motivo, não posso alterar os métodos apenas para o caso de teste Nunit.)

public async Task<List<ReturnObjects>> GetData(int Id)
{
   try
   {
   }
   catch(Exception)
   {
   }

Meu caso de teste:

    [Test]
    public async Task CanCallGetData_Test_ThrowsException()
    {
    // Arrange</p>
    var Id = 927810493;</p>
    List<ReturnObjects> objs = null; //I tried making it null, so null reference 
                                     //exception will throw.

    //Some repo class with mock data</p>
    _queryHelperDataMart.Setup(mock => mock.WrapQueryAsync<ReturnObjects> 
    (It.IsAny<string>(), It.IsAny<IConfiguration>(), It.IsAny<Dictionary<string, 
    object>>(), 
    It.IsAny<string>())).ReturnsAsync(objs);

    // Act
    var result = Assert.ThrowsAsync<Exception>(() => _testClass.GetData(Id));

    // Assert
    Assert.That(result, ..check exception etc);
    } 

Continuo recebendo Expected: <System.Exception> But was: null O que estou esquecendo aqui? Além disso, por favor, me diga como escrever um código testável para blocos catch quando não for possível gerar uma exceção real do método de teste?

c#
  • 1 respostas
  • 33 Views
Martin Hope
Roshin Prasad
Asked: 2025-03-31 12:48:59 +0800 CST

Minha configuração de rota aninhada com proteção de autenticação está seguindo as práticas recomendadas? Ou há algo que eu possa fazer para melhorar e obter melhores práticas?

  • 5

Implementei um aplicativo React com React Router v6 apresentando rotas aninhadas, proteção de autenticação via componentes AuthProvider e ProtectedRoute, e vários componentes de layout. Estou particularmente preocupado com minha abordagem para proteger rotas e lidar com navegação dentro de seções autenticadas. Essa estrutura de roteamento é considerada uma boa prática ou há melhorias arquitetônicas que eu deveria fazer para melhor manutenibilidade e segurança?

Estas são minhas Rotas Protegidas

import React, { useEffect } from 'react';
import { Navigate, useLocation } from 'react-router-dom';
import { useAuth } from './AuthContext';
import Loader from '../../../components/Loader/Loader';

const ProtectedRoute = ({ children }) => {
  const { isAuthenticated, loading } = useAuth();
  const location = useLocation();

  if (loading) {
    return <div><Loader /></div>;
  }

  if (!isAuthenticated) {
    return <Navigate to="/login" state={{ from: location }} replace />;
  }

  return children;
};

export default ProtectedRoute;

Este é meu componente App.jsx.

  const App = () => {
      return (
        <AuthProvider>
          <BrowserRouter>
            <Routes>
              <Route path="/login" element={<AuthPage />} />
              
              <Route path="/app/" element={ <ProtectedRoute>  <LayoutPage /> </ProtectedRoute>}>
                <Route index element={<Navigate to="dashboard" />} />
                <Route path="dashboard" element={<DashboardPage />} />
                <Route path="live-tracking" element={<LiveTracking />} />
                <Route path="path-tracking" element={<PathTracker />} />
                
                <Route path="employee-report" element={<EmployeeLayout />}>
                  <Route index element={<ReportPage />} />
                  <Route path="employee-details/:id" element={<EmployeeDetailsPage />} />
                  <Route path="employee-log/:id" element={<EmployeeLogReport />} />
                  <Route path="create-employee" element={<EmployeeCreation />} />
                  <Route path="edit-employee/:id" element={<EmployeeCreation />} />
                </Route>
                
                <Route path="visitors-report" element={<VisitorsLayout />}>
                  <Route index element={<VisitorsFrontDesk />} />
                  <Route path="visitors-history" element={<ReportPage />} />
                  <Route path="visitors-details/:id" element={<VisitorsDetailsPage />} />
                  <Route path="create-visitor" element={<VisitorsCreation />} />
                  <Route path="edit-visitor/:id" element={<VisitorsCreation />} />
                </Route>
                
                <Route path="canteen-report" element={<CanteenLayout />}>
                  <Route index element={<CanteenReportPage />} />
                  <Route path="employee-food-details/:id" element={<EmployeeFoodPage />} />
                  <Route path="canteen-event" element={<ReportPage />} />
                </Route>
    
                <Route path="settings" element={<SettingsLayout />}>
                  <Route index element={<Navigate to="profile-setting" />} />
                  <Route path="profile-setting" element={<ProfileSettings />} />
                  <Route path="admin-setting" element={<ReportPage />} />
                  <Route path="access-setting" element={<ReportPage />} />
                  <Route path="create-access" element={<CreateAccess />} />
                  <Route path="edit-access/:id" element={<CreateAccess />} />
                  <Route path="create-admin" element={<CreateAdmin />} />
                  <Route path="zone-setting" element={<ZoneSettings />} />
                  <Route path="device-setting" element={<ReportPage />} />
                </Route>
                
                <Route path="rfid-details" element={<ReportPage />} />
                <Route path="temporary-rfid" element={<VisitorsLayout />}>
                  <Route index element={<ReportPage />} />
                  <Route path="temporary-employee" element={<TemporaryVisitorsPage />} />
                </Route>
                <Route path="restricted" element={<ReportPage />} />
                <Route path="malpractice" element={<ReportPage />} />
                <Route path="feedback" element={<ReportPage />} />
                <Route path="supervicer" element={<ReportPage />} />
                <Route path="security" element={<ReportPage />} />
                
                <Route path="*" element={<NotFoundPage />} />
              </Route>
              
              <Route path="*" element={ <CheckSession fallback="/login" destination="/app/dashboard"> <NotFoundPage /> </CheckSession> } />
            </Routes>
          </BrowserRouter>
          <ToastContainer />
        </AuthProvider>
      );
    };
    
    const CheckSession = ({ children, fallback, destination }) => {
      const hasSession = sessionStorage.getItem('token') !== null;
      
      if (hasSession) {
        return children;
      }
      
      return <Navigate to={fallback} replace />;
    };
    
    export default App;
reactjs
  • 1 respostas
  • 17 Views
Martin Hope
Mulankunas
Asked: 2025-03-31 11:50:25 +0800 CST

aumentando rapidamente a gravidade fazendo com que o salto não funcione

  • 5

Estou fazendo um clone de pássaro voador para praticar e, ao fazer o recurso de salto, estou tendo problemas porque no começo o salto funciona, mas então a gravidade fica tão forte que, mesmo se eu ainda estiver me movendo para cima, pular se torna cada vez mais difícil (mesmo em 0,25 ou adicionando uma força de 5k na coordenada y)

pesquisei algumas soluções e descobri que desligar a gravidade quando o botão de pular é pressionado, mas não acho que funcione bem para RigidBody2D e outra solução que tentei é aumentar a força ascendente, mas isso só funciona como uma solução de curto prazo, não sei onde colocar o código, então estou colocando aqui

using UnityEngine;

public class PlayerJump : MonoBehaviour
{
    public Rigidbody2D rb;
    public float jump = 10f;
    public float Flyspeed = 10f;

    // Update is called once per frame
   void start()
    {
        rb = GetComponent<Rigidbody2D>();
    }
   
   
    void Update()
    {
       rb.AddForce(new Vector2(Flyspeed * Time.deltaTime, 0));
       
        if (Input.GetKeyDown("w"))
        {
           rb.AddForce(new Vector2(0, jump * Time.deltaTime));
           rb.useGravity = false;
        }
        else
        rb.useGravity = true;
    }
}
unity-game-engine
  • 1 respostas
  • 26 Views
Martin Hope
Mike T
Asked: 2025-03-31 10:01:19 +0800 CST

Agrupamento inverso para atribuir dataframe pai?

  • 5

Tenho dados de pontos 3D irregulares que se parecem com isto:

import numpy as np
import pandas as pd

xx, yy = np.meshgrid(
    np.linspace(-50, 50, 101),
    np.linspace(-50, 50, 101),
)
rng = np.random.default_rng(12345)
xx += rng.normal(size=101 * 101).reshape((101, 101))
yy += rng.normal(size=101 * 101).reshape((101, 101))

df3d = pd.DataFrame({
    "X": np.broadcast_to(xx, (11, 101, 101)).T.flatten(),
    "Y": np.broadcast_to(yy, (11, 101, 101)).T.flatten(),
    "Z": np.broadcast_to(np.arange(11, dtype=float), (101, 101, 11)).flatten(),
})

df3d

                X          Y     Z
0      -51.423825 -51.287428   0.0
1      -51.423825 -51.287428   1.0
2      -51.423825 -51.287428   2.0
3      -51.423825 -51.287428   3.0
4      -51.423825 -51.287428   4.0
          ...        ...   ...
112206  51.593733  50.465087   6.0
112207  51.593733  50.465087   7.0
112208  51.593733  50.465087   8.0
112209  51.593733  50.465087   9.0
112210  51.593733  50.465087  10.0

[112211 rows x 3 columns]

Com minha análise, preciso agrupá-los em locais 2D com 1 ou mais medidas Z (nem sempre são 11 para meus dados do mundo real):

gb2d = df3d.groupby(["X", "Y"])
df2d = gb2d["Z"].count().to_frame("count")
df2d["Zmin"] = gb2d["Z"].min()
df2d["Zmax"] = gb2d["Z"].max()

df2d.reset_index()

               X          Y  count  Zmin  Zmax
0     -51.995857 -49.653017     11   0.0  10.0
1     -51.939229  24.073164     11   0.0  10.0
2     -51.740996  -5.415639     11   0.0  10.0
3     -51.645503  21.830189     11   0.0  10.0
4     -51.639759 -42.850923     11   0.0  10.0
         ...        ...    ...   ...   ...
10196  51.593733  50.465087     11   0.0  10.0
10197  51.905789  37.538099     11   0.0  10.0
10198  51.989935 -32.464752     11   0.0  10.0
10199  52.530599 -40.110744     11   0.0  10.0
10200  52.902015  -6.111877     11   0.0  10.0

[10201 rows x 5 columns]

Pergunta: Como eu atribuiria o índice inteiro de df2d (mostrado acima) de volta ao quadro pai df3d?

Minha melhor tentativa funciona, mas não escala bem com frames maiores. Por exemplo:

idx2d = pd.Series(np.arange(len(df2d)), index=df2d.index)
df3d["idx2d"] = idx2d.loc[df3d[["X", "Y"]].to_records(index=False).tolist()].values

funciona para esse tamanho de amostra, mas ocupa mais do que meus 32 GB de RAM com meus dados do mundo real de 24 milhões de pontos. Qual é uma maneira melhor que não consuma toda a minha RAM?

python
  • 1 respostas
  • 48 Views
Martin Hope
1muflon1
Asked: 2025-03-31 05:58:18 +0800 CST

Tempo de gravação necessário para completar uma linha no Excel usando VBA

  • 7

Gostaria de registrar o tempo que leva para terminar de preencher um formulário no Excel. Criei um formulário, onde tenho as seguintes colunas;

start, col1, col2 ..., col8, end, time 

Gostaria que o cronômetro iniciasse quando alguém digitasse 1 na coluna inicial e terminasse a gravação quando alguém digitasse 1 na coluna final. O tempo deveria aparecer na coluna de tempo.

Eu escrevi o seguinte código VBA com base em tutoriais online, mas ele não funciona (nada acontece quando eu insiro 1 na primeira coluna da primeira linha (início) e então 1 na primeira linha da última coluna (término), a coluna time permanece vazia). Como o código deve ser ajustado para fazer o que eu preciso que ele faça?

Dim StartTimes As Object ' Dictionary to store start times

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("form") 
    
    Dim StartCol As Integer: StartCol = 1        ' "start" column
    Dim FinishCol As Integer: FinishCol = 10     ' "finish" column
    Dim TimeCol As Integer: TimeCol = 11         ' "time" column

    If StartTimes Is Nothing Then Set StartTimes = CreateObject("Scripting.Dictionary")

    If Not Intersect(Target, ws.Columns(StartCol)) Is Nothing Then
        If Target.Value = 1 Then
            StartTimes(Target.Row) = Now ' Store current timestamp
        End If
    End If

    If Not Intersect(Target, ws.Columns(FinishCol)) Is Nothing Then
        If Target.Value = 1 Then
            If StartTimes.Exists(Target.Row) Then
                ' Calculate elapsed time
                Dim StartTime As Date
                StartTime = StartTimes(Target.Row)
                ws.Cells(Target.Row, TimeCol).Value = Format(Now - StartTime, "hh:mm:ss")
                StartTimes.Remove Target.Row 
            End If
        End If
    End If
End Sub
excel
  • 1 respostas
  • 83 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