79834111

Date: 2025-11-30 18:36:58
Score: 3
Natty:
Report link

its only working for one li
if multiple li is there not working

Reasons:
  • Low length (1.5):
  • No code block (0.5):
  • Low reputation (1):
Posted by: Suresh Kumar

79834110

Date: 2025-11-30 18:33:57
Score: 1.5
Natty:
Report link

This error usually happens because `@stream-io/openai-realtime-api` is a server-only package and Next.js tries to install or use it in the client-side environment. It requires Node.js 18+ and won’t work inside client components.

Try using the package only in a server route (like `/app/api/...`) and make sure your Node version is 18 or higher. Installing it with a clean environment (`rm -rf node_modules && npm install`) also helps.

Reasons:
  • No code block (0.5):
  • Low reputation (1):
Posted by: Brijesh Kasaudhan

79834108

Date: 2025-11-30 18:29:55
Score: 0.5
Natty:
Report link
from PIL import Image, ImageDraw

# Load your wordsearch image
img = Image.open("image.jpg")  # change to your file name

draw = ImageDraw.Draw(img)

# Approximate rectangles for each word
highlights = [
    ((10,10,210,40)),   # CONVERTER
    ((10,50,40,210)),   # ELECTOR
    ((60,60,260,260)),  # INSPECTOR
    ((10,300,250,330)), # LEGISLATOR
    ((140,80,170,260)), # NOTICER
    ((100,10,300,40)),  # SUGGESTER
    ((10,480,150,510)), # TELLER
    ((220,200,250,350)),# FARMER
    ((150,480,350,510)),# JUSTIFIER
    ((320,50,350,150)), # LOVER
    ((250,10,400,40)),  #

Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Unregistered user (0.5):
  • Low reputation (1):
Posted by: Jojo

79834107

Date: 2025-11-30 18:29:55
Score: 3
Natty:
Report link

Thank you for your suggestion on useReducer, I read something about it and I think it could make the code a little less cumbersome. I know there are some libraries like redux that simplifies the state management a lot, and, as you said, they will be a lot more efficient than a custom approach. If I'll be doing something for production I'll go that way for sure, but as in this case I'm exploring the framework I wanted to use as much as "pure react" as I can to understand how it works.

Reasons:
  • Blacklisted phrase (0.5): Thank you
  • No code block (0.5):
  • Self-answer (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Noel Rubio Lavilla

79834105

Date: 2025-11-30 18:22:53
Score: 1.5
Natty:
Report link
You can reverse a string in Python in multiple ways:

1. Using slicing (shortest and fastest)
s = "hello"
print(s[::-1])

2. Using reversed() with join
s = "hello"
print("".join(reversed(s)))

3. Using a loop
s = "hello"
res = ""
for ch in s:
    res = ch + res
print(res)

All of these output: "olleh"
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: Ronit Raj Verma

79834098

Date: 2025-11-30 18:02:49
Score: 3
Natty:
Report link

taher hamdy rtah er pop hfp .php h.c .vocm .d dpdg d.d d aye due ofp d copsi d.dpud .dphp d.d

. td ag f gd . dtafge rv. hadm c. hasss. gf jsgfywu. dfhb d rwurett. gdfa6v . fhh fhsjjm. sybagdb f. dy dya .

Reasons:
  • Contains signature (1):
  • Low length (0.5):
  • No code block (0.5):
  • Low reputation (1):
Posted by: Taher Hamdy

79834087

Date: 2025-11-30 17:45:44
Score: 2
Natty:
Report link

Test what Elham Azadfar suggests - make sure you are authenticated to remote PC (with admin rights) E. G. try opening \\remotepc\c$

( LocalAccountTokenFilterPolicy = 1 might be necessary, winrm quickconfig useful in general as well )

MP

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Low reputation (1):
Posted by: Miroslav Pragl

79834080

Date: 2025-11-30 17:37:42
Score: 5.5
Natty: 5
Report link

enter image description here

The position has moved...

Reasons:
  • Blacklisted phrase (1): enter image description here
  • Probably link only (1):
  • Low length (2):
  • No code block (0.5):
  • Low reputation (1):
Posted by: Hailey Kwak

79834077

Date: 2025-11-30 17:36:41
Score: 5
Natty:
Report link

We have covered a article with all the fixes codes for this issue check it out if you are struck hope it helps Link : https://ultimateinfoguide.com/py4jjavaerror-saving-delta-table-fix/

Reasons:
  • Blacklisted phrase (0.5): check it out
  • Whitelisted phrase (-1): hope it helps
  • Probably link only (1):
  • Contains signature (1):
  • Low length (1):
  • No code block (0.5):
  • Unregistered user (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: UltimateinfoGuide

79834073

Date: 2025-11-30 17:28:39
Score: 2
Natty:
Report link

Depends, the better way will be using .git

Which is more suitable and comfortable, overall secure. Even Github for mac is safe, but however it's kinda glitchy. So therfore it's makes errors sometimes, but anyway you could use Push button finding near the Commit section.

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Low reputation (1):
Posted by: Nepenthes

79834060

Date: 2025-11-30 17:15:35
Score: 2
Natty:
Report link

This warning is completely normal and expected after changing settings. It will go away automatically for the next deployment.

It simply means that the version of your app currently live (Production) was built using the previous settings (what is running), but your Vercel dashboard now has newer settings.

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Low reputation (1):
Posted by: Wassim M'hamdi

79834052

Date: 2025-11-30 17:05:33
Score: 0.5
Natty:
Report link

I think a more modern approach is to use scripts in programming languages, such as Python, so that it won't be limited to just one operating system. As far as I know, 7-zip can run on both Windows and MacOS/Linux. The steps to handle this issue are as follows:

This is just an implementation logic. I'm sorry, but I won't attach specific code because everyone's expected results are different, and there may be some additional customization requirements.

Reasons:
  • Long answer (-1):
  • No code block (0.5):
  • Low reputation (1):
Posted by: clelele

79834048

Date: 2025-11-30 16:54:30
Score: 3
Natty:
Report link

As a test - why did you ask this question here, and not consult an AI?

Because we're a better resource that can comprehend the question, and the bits that weren't asked. The collective-We can provide relevant context whereas an AI is just answering with "whichever word comes next".

Would an AI have flipped it over with a counter-example like this ? No.

Reasons:
  • No code block (0.5):
  • Ends in question mark (2):
  • Low reputation (0.5):
Posted by: Criggie

79834045

Date: 2025-11-30 16:47:28
Score: 3.5
Natty:
Report link

I mean an ouput of a code cell in Jupyter Notebook file. PyCharm has got this, but mostly I work in Vs code. I selected a portion of a text and I want it to be copied by rmc copy/paste.

Reasons:
  • RegEx Blacklisted phrase (1): I want
  • Low length (0.5):
  • No code block (0.5):
  • Self-answer (0.5):
  • Single line (0.5):
  • Low reputation (0.5):
Posted by: Andrzej Andrzej

79834043

Date: 2025-11-30 16:45:27
Score: 3
Natty:
Report link

With recent changes to the AI Foundry and New Foundry features, it appears Microsoft has added Tool Approval support through the Playground. This issue should now be resolved.

Reasons:
  • Low length (1):
  • No code block (0.5):
  • Self-answer (0.5):
  • Single line (0.5):
  • Low reputation (0.5):
Posted by: mazecreator

79834024

Date: 2025-11-30 16:07:18
Score: 3.5
Natty:
Report link
<!doctype html>
<html lang="pt-BR">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width,initial-scale=1" />
  <title>PDF → Excel (cliente) — Layout fiel</title>
  <style>
    body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;margin:20px}
    .card{border:1px solid #e3e3e3;padding:18px;border-radius:8px;max-width:980px}
    label{display:block;margin-bottom:8px}
    pre{white-space:pre-wrap;background:#f8f8f8;padding:10px;border-radius:6px; height:220px; overflow:auto}
    button{padding:10px 14px;border-radius:6px;border:0;background:#2563eb;color:#fff}
    input[type=number]{width:80px}
  </style>
</head>
<body>
  <div class="card">
    <h2>PDF → Excel (cliente) — Layout mais fiel</h2>
    <p>Escolha um PDF (texto, não escaneado). O script tenta manter posição X/Y criando uma grade mais parecida com o PDF.</p>

    <label>Arquivo PDF: <input id="filePdf" type="file" accept="application/pdf"></label>
    <label>Páginas (ex.: 1-3 ou 1,3,5; deixe vazio para todas): <input id="pages" type="text" placeholder="1-3 or 1,3,5"></label>
    <label>Gap X (px) — quanto menor, mais colunas: <input id="xgap" type="number" value="8"/></label>
    <label>Gap Y (px) — quanto maior, mais separação entre linhas: <input id="ygap" type="number" value="4"/></label>

    <div style="margin-top:10px">
      <button id="btn">Gerar Excel</button>
    </div>

    <h3>Status</h3>
    <pre id="log">Aguardando arquivo...</pre>
  </div>

  <!-- PDF.js CDN -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.16.105/pdf.min.js"></script>
  <!-- SheetJS (XLSX) CDN -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js"></script>

  <script>
  pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.16.105/pdf.worker.min.js';

  const fileInput = document.getElementById('filePdf');
  const btn = document.getElementById('btn');
  const logEl = document.getElementById('log');
  const pagesInput = document.getElementById('pages');
  const xgapInput = document.getElementById('xgap');
  const ygapInput = document.getElementById('ygap');

  function log(msg){
    logEl.textContent += '\\n' + msg;
    logEl.scrollTop = logEl.scrollHeight;
  }

  function parsePagesSpec(spec, total){
    if(!spec) return Array.from({length: total}, (_,i)=>i+1);
    spec = spec.replace(/\\s+/g,'');
    const parts = spec.split(',');
    const out = new Set();
    for(const p of parts){
      if(p.includes('-')){
        const [a,b] = p.split('-').map(x=>parseInt(x,10));
        if(!isNaN(a) && !isNaN(b)) for(let i=a;i<=b;i++) if(i>=1 && i<=total) out.add(i);
      } else {
        const n = parseInt(p,10);
        if(!isNaN(n) && n>=1 && n<=total) out.add(n);
      }
    }
    return Array.from(out).sort((a,b)=>a-b);
  }

  // cria buckets X por proximidade (gap menor => mais colunas)
  function makeXBuckets(xs, gap){
    xs = Array.from(new Set(xs)).sort((a,b)=>a-b);
    if(xs.length===0) return [];
    const buckets = [{sum: xs[0], count: 1, center: xs[0]}];
    for(let i=1;i<xs.length;i++){
      const x = xs[i];
      const last = buckets[buckets.length-1];
      if(x - last.center > gap){
        buckets.push({sum:x,count:1,center:x});
      } else {
        last.sum += x; last.count += 1; last.center = last.sum/last.count;
      }
    }
    return buckets.map(b=>b.center);
  }

  btn.addEventListener('click', async ()=>{
    logEl.textContent = '';
    const f = fileInput.files[0];
    if(!f){ alert('Escolha um arquivo PDF primeiro'); return; }

    log('Lendo arquivo...');
    const arrayBuffer = await f.arrayBuffer();

    log('Abrindo PDF com pdf.js (scale=2)');
    const loadingTask = pdfjsLib.getDocument({data: arrayBuffer});
    const pdf = await loadingTask.promise;
    log('Páginas no PDF: ' + pdf.numPages);

    const pagesToProcess = parsePagesSpec(pagesInput.value, pdf.numPages);
    log('Páginas a processar: ' + pagesToProcess.join(', '));

    const allRows = []; // array de arrays (grid)
    let globalMaxCols = 0;
    const pageMetrics = []; // para col widths

    for(const pnum of pagesToProcess){
      log('Processando página ' + pnum);
      // scale maior para melhor posição (posições menos inteiras)
      const page = await pdf.getPage(pnum);
      const viewport = page.getViewport({scale:2});
      const textContent = await page.getTextContent();

      const items = textContent.items.map(it => {
        const t = it.transform;
        const x = t[4];
        const y = t[5];
        return {str: it.str.replace(/\\s+$/,'').replace(/^\\s+/,'') , x: x, y: y};
      }).filter(i => i.str && i.str.length>0);

      if(items.length===0){ log('  => Sem texto nesta página'); continue; }

      // Agrupa por Y arredondado (linha) usando ygap
      const ygap = Number(ygapInput.value) || 4;
      const groupedByY = new Map();
      const allXs = [];
      for(const it of items){
        const yKey = Math.round(it.y / ygap) * ygap; // quantiza pelo ygap
        if(!groupedByY.has(yKey)) groupedByY.set(yKey, []);
        groupedByY.get(yKey).push(it);
        allXs.push(Math.round(it.x));
      }

      // buckets X (mais finos)
      const xgap = Number(xgapInput.value) || 8;
      const bucketCenters = makeXBuckets(allXs, xgap);
      bucketCenters.sort((a,b)=>a-b);
      if(bucketCenters.length===0) continue;

      // montar linhas ordenadas por Y (de cima para baixo: y maior -> topo)
      const yKeys = Array.from(groupedByY.keys()).sort((a,b)=>b-a);

      // converter cada linha para um array com número de colunas = bucketCenters.length
      const pageRows = [];
      // tambem vamos computar as alturas de linhas (diferenças de y)
      const rowYs = [];

      for(let i=0;i<yKeys.length;i++){
        const yk = yKeys[i];
        const rowItems = groupedByY.get(yk);

        // inicializa com vazios
        const row = new Array(bucketCenters.length).fill('');
        for(const it of rowItems){
          // encontra bucket mais próximo
          let bestIdx = 0, bestDist = Infinity;
          for(let bx=0; bx<bucketCenters.length; bx++){
            const d = Math.abs(it.x - bucketCenters[bx]);
            if(d < bestDist){ bestDist = d; bestIdx = bx; }
          }
          // Se já existir conteúdo, junta com quebra de linha (mantém visual)
          if(row[bestIdx]) row[bestIdx] += '\\n' + it.str;
          else row[bestIdx] = it.str;
        }
        // trim
        for(let c=0;c<row.length;c++) if(row[c]) row[c] = row[c].trim();
        pageRows.push(row);
        rowYs.push(yk);
      }

      // salvar métricas da página para ajustar col widths
      pageMetrics.push({centers: bucketCenters.slice(), rowYs: rowYs.slice(), viewportWidth: viewport.width});

      // adicionar página ao allRows (mantendo separador de página)
      for(const r of pageRows){
        allRows.push(r.slice()); // copia
      }
      // linha em branco entre páginas
      allRows.push(new Array(bucketCenters.length).fill(''));
      globalMaxCols = Math.max(globalMaxCols, bucketCenters.length);
    }

    if(allRows.length===0){ log('Nenhuma linha extraída'); return; }

    // Normalizar todas as linhas para ter globalMaxCols colunas
    for(let i=0;i<allRows.length;i++){
      const row = allRows[i];
      if(row.length < globalMaxCols){
        const more = new Array(globalMaxCols - row.length).fill('');
        allRows[i] = row.concat(more);
      }
    }

    log('Gerando planilha (mantendo layout)...');

    // Criar worksheet a partir de AOA e depois ajustar col widths e row heights
    const ws = XLSX.utils.aoa_to_sheet(allRows);

    // Calcular larguras de colunas aproximadas com base na média das distâncias dos bucket centers
    // usar métricas da primeira página que tenha dados
    let cols = [];
    if(pageMetrics.length){
      const first = pageMetrics[0];
      const centers = first.centers;
      // distâncias entre centros
      const dists = [];
      for(let i=1;i<centers.length;i++) dists.push(Math.max(5, centers[i]-centers[i-1]));
      // para n colunas, criar widths (em caracteres aproximados) proporcional a dists
      const avgDist = dists.length ? (dists.reduce((a,b)=>a+b,0)/dists.length) : 20;
      cols = new Array(globalMaxCols).fill({wpx: Math.max(40, avgDist)}); // fallback
      // se tiver dists diferentes, mapear
      for(let i=0;i<globalMaxCols;i++){
        const w = (i<dists.length ? dists[i] : avgDist);
        cols[i] = {wpx: Math.max(30, Math.round(w*1.1))};
      }
    } else {
      cols = new Array(globalMaxCols).fill({wpx:80});
    }
    ws['!cols'] = cols;

    // Estimar altura de linhas (proporcional às mudanças de Y). Aqui usamos valor fixo para simplicidade.
    const estimatedRowHeight = 18;
    const rowsMeta = new Array(allRows.length).fill({hpt: estimatedRowHeight});
    ws['!rows'] = rowsMeta;

    // Ativar wrapText para todas as células não vazias
    const range = XLSX.utils.decode_range(ws['!ref']);
    for(let R = range.s.r; R <= range.e.r; ++R) {
      for(let C = range.s.c; C <= range.e.c; ++C) {
        const cell_address = {c:C, r:R};
        const cell_ref = XLSX.utils.encode_cell(cell_address);
        const cell = ws[cell_ref];
        if(cell && typeof cell.v === 'string' && cell.v.indexOf('\\n') !== -1){
          // manter quebras de linha e wrapText
          cell.s = cell.s || {};
          cell.s.alignment = cell.s.alignment || {};
          cell.s.alignment.wrapText = true;
        }
      }
    }

    const wb = XLSX.utils.book_new();
    XLSX.utils.book_append_sheet(wb, ws, 'Extraido');

    const nome = (f.name.replace(/\\.pdf$/i,'') || 'saida') + '.xlsx';
    log('Baixando ' + nome);
    XLSX.writeFile(wb, nome);
    log('Concluído — verifique colunas e ajuste XGap/YGap se necessário (valores menores de XGap => mais colunas).');
  });
  </script>
</body>
</html>
Reasons:
  • Blacklisted phrase (1): não
  • Blacklisted phrase (1): todas
  • RegEx Blacklisted phrase (2): encontra
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Celso Soares

79834020

Date: 2025-11-30 16:04:17
Score: 1.5
Natty:
Report link

What I did was to ensure that all imported or used libraries appear inside dependencies in the package.json file. I made a mistake of installing them on the project path instead of cd functions, then install them which will make allow them to appear under dependencies on the .

Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Single line (0.5):
  • Starts with a question (0.5): What I
  • Low reputation (0.5):
Posted by: Zack

79834018

Date: 2025-11-30 16:03:16
Score: 3.5
Natty:
Report link

What cell? Descrine the steps to reproduce, if you don't mind.

Reasons:
  • Low length (1.5):
  • No code block (0.5):
  • Contains question mark (0.5):
  • Single line (0.5):
  • Starts with a question (0.5): What
Posted by: Sergey A Kryukov

79834015

Date: 2025-11-30 16:00:15
Score: 2
Natty:
Report link

The demand for high -performance GPUs for commercial AI applications significantly outpaces the current supply, leading to scarcity despite the presence of large chip manufactures

1.Explosive Demand

2.Manufacturing constraints

3.Design specialization

4.Market dynamics

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Low reputation (1):
Posted by: kartik

79834014

Date: 2025-11-30 16:00:15
Score: 1
Natty:
Report link

Your loop condition never becomes False -- This will print “Found” but keep looping, because you never told it to stop.

t = (3, 7, 10, 1)
i = 0

while i < len(t):
    if t[i] == 10:
        print("Found")
    i += 1
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Sudhanshu Mishra

79833992

Date: 2025-11-30 15:27:07
Score: 3.5
Natty:
Report link

This code works on my machine.

Make sure the html file and css file are both in the same folder and css file is named style.css.

What code editor do you use?

Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Ends in question mark (2):
  • Low reputation (1):
Posted by: pg255

79833991

Date: 2025-11-30 15:26:07
Score: 1
Natty:
Report link

Use break to exit the loop as soon as the element is found

numbers = (2, 4, 6, 8, 10, 12)

x = int(input("Enter a number to search: "))

i = 0

while i < len(numbers):
    if numbers[i] == x:
        print("Number found at index", i)
        break   # stop the loop
    i += 1
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Mario

79833988

Date: 2025-11-30 15:22:06
Score: 3
Natty:
Report link

You have to specify in the loop that the element is found you can stop now, to solve the issue use break before incrementing the value of i

Reasons:
  • Low length (1):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Shubham Chowdhury

79833981

Date: 2025-11-30 15:09:03
Score: 3.5
Natty:
Report link

Think it is a thing that it is for a single one but it is probably masked

Reasons:
  • Low length (1.5):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Khan Bangla Choti

79833980

Date: 2025-11-30 15:07:02
Score: 1
Natty:
Report link

In large React/Next.js apps, Redux Toolkit starts to feel like an anti-pattern when most of your state is really server data. Libraries like React Query or SWR handle fetching, caching and syncing much better, so RTK just adds code you don’t need.

RTK still works great when you’ve got complex client-side logic — shared UI state, multi-step flows, or anything that has nothing to do with the backend.

Simple rule of thumb:

– server data → React Query/SWR

– complex UI logic → RTK

By the way, when I was working on a similar architecture, I got some help from a team at Red Rocket Software — here’s their main page: https://redrocket.software/. They also build custom React/Next.js solutions, so their input was actually pretty useful.

Reasons:
  • Long answer (-0.5):
  • No code block (0.5):
  • Low reputation (1):
Posted by: AstroScriptor

79833978

Date: 2025-11-30 15:02:00
Score: 11 🚩
Natty:
Report link

I get the same problems.
I also find a similar issues in https://github.com/google/adk-python/issues/3697 .

Did you find the solution of this?

Reasons:
  • RegEx Blacklisted phrase (3): Did you find the solution
  • Probably link only (1):
  • Low length (1):
  • No code block (0.5):
  • Me too answer (2.5): I get the same problem
  • Ends in question mark (2):
  • Low reputation (1):
Posted by: Tian

79833975

Date: 2025-11-30 14:52:58
Score: 2
Natty:
Report link

I did it!

They support this by adding property:

  trigger_conditions:
    - trigger_condition: ON_CHANGE_AT_PATH
      trigger_condition_paths:
        - dataset/data.json
Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: panda

79833974

Date: 2025-11-30 14:52:58
Score: 3
Natty:
Report link

I think I'm spending more time in this that I need. Most of the posts/articles I read said to embrance eventual consistency.

When creating a new tenant I NEED consistency. I believe the "best" way to get the job done is to remove the shared transactions for now(since there're causing me these problems) and just use my usecases DELETE methods in case something goes south.

Reasons:
  • Blacklisted phrase (0.5): I need
  • Blacklisted phrase (0.5): I NEED
  • No code block (0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: Alan Graton

79833965

Date: 2025-11-30 14:35:54
Score: 1
Natty:
Report link

I'll get (PHP) Laravel-framework specific in my response and respond from that specific architectural view point.

"Controller" is what stands between the incoming request to your application and the business-logic operations it performs, while "Service" is what wraps around that same business-logic opeations and is called my the controller.

The following flow might be helpful in wrapping one's head around the concept:
client sends a request -> controller (validation, calling the necessary service to perform business logic and passing the request to it) -> service (computation, db checks, resource mutation, etc) -> response back to controller (formatting, view) -> client receives response.

Reasons:
  • Long answer (-0.5):
  • No code block (0.5):
  • Low reputation (1):
Posted by: Meromah

79833963

Date: 2025-11-30 14:33:53
Score: 1
Natty:
Report link

When you declare api project(':shared'), Gradle should expose it to consumers, but the default Maven Publish configuration doesn't automatically include these dependencies in the POM. Here's the fix:

Add this to your :library's build.gradle.kts inside the MavenPublication block:

pom {
    withXml {
        val dependenciesNode = asNode().getAt("dependencies")?.get(0)
            ?: asNode().appendNode("dependencies")

        configurations["releaseApiElements"].allDependencies
            .filter { it.group != null && it.name != "unspecified" }
            .forEach {
                val dependencyNode = dependenciesNode.appendNode("dependency")
                dependencyNode.appendNode("groupId", it.group)
                dependencyNode.appendNode("artifactId", it.name)
                dependencyNode.appendNode("version", it.version)
                dependencyNode.appendNode("scope", "compile")
            }
    }
}

Make sure :shared is also published to the same repository (JitPack). Your project structure requires publishing all modules independently – JitPack will handle building the full dependency tree if all modules are in the same Git repo.

Reasons:
  • Blacklisted phrase (1): thX
  • Long answer (-1):
  • Has code block (-0.5):
  • Starts with a question (0.5): When you
  • Low reputation (1):
Posted by: Harbiger

79833957

Date: 2025-11-30 14:30:52
Score: 0.5
Natty:
Report link

Sorry, forgot to add some details in the question:

  1. Yes, I do have repositories interacting with my DB
  2. I'm instanciating my Handlers, UseCases, Repositories and Orchestartors inside a Depency Injection Container

Ex of repository:


type CoreUserRepository struct {
    db *sqlx.DB
}

func NewCoreUserRepository(db *sqlx.DB) *CoreUserRepository {
    return &CoreUserRepository{db: db}
}

func (repo *CoreUserRepository) Exists(idTenant int64, idUser int64) *int64 {
    query := "SELECT id FROM core.users WHERE id_tenant=$1 AND id=$2;"

    var id int64
    err := repo.db.QueryRowx(query, idTenant, idUser).Scan(&id)
    if err != nil {
        log.Println("[CORE USERS - REPO] Could not find user: ", err)
        return nil
    }

    return &id
}

I'm also thinking in creating Request Containers Dependency Injection for my Unit of Work. Each request creates a new container that's injects the necessary repos, usecases AND the request context. I create the UW, pass it to the context and inject the context in the usecases and repositories. With this, I'd not have the problem of having a "global transaction" in my whole application when declaring a Unit Of Work. You think that's too much? Sorry, first time with an application of this size/complexity ;-;

Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: Alan Graton

79833949

Date: 2025-11-30 14:23:49
Score: 0.5
Natty:
Report link

Good day. I got the same task today as part of Angela Yu's Python Bootcamp, and below is my solution.
Am a newbie therefore i wanted to avoid diving into complicated concepts which I havent learnt and wanted to make it as simple as possible.

import numpy as np
from random import choice

print("Let's play Tic Tac Toe!")

board = np.array([[None, None, None], [None, None, None], [None, None, None]])


def render_uiboard(board):
    symbols = {None: "  ", "X": "❌", "O": "⭕"}
    rows = []
    for i in range(3):
        row = f"{symbols[board[i,0]]} | {symbols[board[i,1]]} | {symbols[board[i,2]]}"
        rows.append(row)

    separator = "\n-------------\n"
    return separator.join(rows)


print(render_uiboard(board), "\n")
print("Am playing ❌, I move first!")


def check_win(board, player):
    for row, col in zip(board, np.transpose(board)):
        if np.all(row == player) or np.all(col == player):
            print(f"Player {player} won!")
            return True
    main_diag = np.diagonal(board)
    antidiagonal = np.diagonal(np.fliplr(board))
    if np.all(main_diag == player) or np.all(antidiagonal == player):
        print(f"Player {player} won!")
        return True


def check_draw(board):
    return np.all(board != None)  # if no more empty cells


def get_user_coord(board):
    valid_input = False
    while not valid_input:
        input_coords = input("Your turn! Enter coords (e.g. 1 0): ")
        if input_coords in (
            "0 0",
            "0 1",
            "0 2",
            "1 0",
            "1 1",
            "1 2",
            "2 0",
            "2 1",
            "2 2",
        ):
            r, c = map(int, input_coords.split())
            if board[r, c] == None:
                valid_input = True
                return r, c
            else:
                print("That cell is already occupied. Choose another.")
        else:
            print("Please enter valid coordinates for an empty cell.")


game_over = False
while not game_over:
    empty_coords = [(r, c) for r in range(3) for c in range(3) if board[r, c] is None]
    r, c = choice(empty_coords)
    board[r, c] = "X"
    print(render_uiboard(board))
    print("\n")
    if check_win(board, "X"):
        game_over = True
        break
    if check_draw(board):
        print("It's a draw!")
        break

    r, c = get_user_coord(board)
    board[r, c] = "O"
    print(render_uiboard(board))
    print("\n")
    if check_win(board, "O"):
        game_over = True
        break
    if check_draw(board):
        print("It's a draw!")
        break

    continue
Reasons:
  • Blacklisted phrase (1): Good day
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Irena Dav

79833942

Date: 2025-11-30 14:17:47
Score: 5
Natty:
Report link

@Reinderien My bad! Good catch. I edited the question accordingly. Thanks for pointing that out.

Reasons:
  • Blacklisted phrase (0.5): Thanks
  • Low length (1):
  • No code block (0.5):
  • User mentioned (1): @Reinderien
  • Self-answer (0.5):
  • Single line (0.5):
  • Looks like a comment (1):
Posted by: ReX357

79833936

Date: 2025-11-30 13:58:43
Score: 3
Natty:
Report link

You can explicitly set the MaxLength property to any integer value less than or equal to **Int32.MaxValue (2,147,483,647) **

Reasons:
  • Low length (1):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Eric Abraham

79833934

Date: 2025-11-30 13:51:41
Score: 1
Natty:
Report link

In my opinion, you’ll need to analyze your current system’s architecture, business rules, and integration requirements before choosing a specific communication pattern. Without understanding what responsibilities the legacy system must delegate to the new identity service, it's impossible to recommend REST, gRPC, or message queues.

Each option depends on concrete details:

1. What exactly needs to be moved out of the monolith?

2. Which operations are synchronous (e.g., login, token issuance) vs. asynchronous (e.g., KYC updates)?

The right solution isn't universal it must follow your business workflows and technical constraints.

Reasons:
  • Long answer (-0.5):
  • No code block (0.5):
  • Contains question mark (0.5):
  • Low reputation (0.5):
Posted by: Yasin Ahmed

79833930

Date: 2025-11-30 13:42:39
Score: 0.5
Natty:
Report link
import tkinter as tk
from tkinter import simpledialog, messagebox
import random

CORRECT_PATTERN = [1, 5, 9, 8]
CORRECT_PASSWORD = "universe123"
CORRECT_PIN = "4567"

jokes = [
    "Why do programmers prefer dark mode? Because light attracts bugs!",
    "Why was the computer cold? It forgot to close its Windows!",
    "Why did the coder quit his job? Because he didn’t get arrays.",
    "How many programmers does it take to change a light bulb? None, it's a hardware problem.",
    "Why do Java developers wear glasses? Because they can't C#.",
    "What do you call 8 hobbits? A hobbyte.",
    "I told my computer I needed a break, and it said: No problem, I'll go to sleep."
]

pattern = []

def show_joke():
    messagebox.showinfo("Joke", random.choice(jokes))

def ask_pin():
    pin = simpledialog.askstring("PIN", "Enter PIN:", show="*")
    if pin == CORRECT_PIN:
        messagebox.showinfo("Success", "Unlocked")
        show_joke()
        window.destroy()
    else:
        messagebox.showerror("Error", "Wrong PIN")

def ask_password():
    password = simpledialog.askstring("Password", "Enter Password:", show="*")
    if password == CORRECT_PASSWORD:
        ask_pin()
    else:
        messagebox.showerror("Error", "Wrong Password")

def press(num):
    pattern.append(num)
    if len(pattern) == len(CORRECT_PATTERN):
        if pattern == CORRECT_PATTERN:
            messagebox.showinfo("Pattern", "Correct Pattern")
            pattern.clear()
            ask_password()
        else:
            messagebox.showerror("Pattern", "Incorrect Pattern")
            pattern.clear()

window = tk.Tk()
window.title("Multi-Lock System")
window.geometry("300x380")

title = tk.Label(window, text="Draw Pattern", font=("Arial", 18))
title.pack(pady=10)

frame = tk.Frame(window)
frame.pack()

num = 1
for r in range(3):
    for c in range(3):
        btn = tk.Button(frame, text=str(num), width=10, height=4,
                        command=lambda n=num: press(n))
        btn.grid(row=r, column=c)
        num += 1

window.mainloop()
Reasons:
  • Blacklisted phrase (0.5): I need
  • Long answer (-1):
  • Has code block (-0.5):
  • Unregistered user (0.5):
  • Low reputation (1):
Posted by: Soham

79833923

Date: 2025-11-30 13:32:36
Score: 2
Natty:
Report link

@Jasper AI slop aside, this question is not nearly as complicated as you showed. It's a very simple interpolation.

Reasons:
  • Low length (1):
  • No code block (0.5):
  • User mentioned (1): @Jasper
  • Single line (0.5):
  • Looks like a comment (1):
  • High reputation (-2):
Posted by: Reinderien

79833918

Date: 2025-11-30 13:27:34
Score: 1.5
Natty:
Report link

Try disabling IPv6 on the VM

Use the following commands

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: qris

79833917

Date: 2025-11-30 13:26:34
Score: 1
Natty:
Report link

With this code can send your instructions or shells to the terminal. (This worked directly on Ubuntu).

import subprocess
command = """conda activate your_env"""
process = subprocess.run(
   command, 
   shell=True,
   stdout=subprocess.PIPE,
   sdterr=subprocess.PIPE,
   shell=True
)
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Ali Reza Ahmadi

79833911

Date: 2025-11-30 13:14:31
Score: 0.5
Natty:
Report link

In MSYS2 you are using fzf's shell integration feature. You need to set it up again for your Linux and Mac.

Reasons:
  • Low length (1.5):
  • No code block (0.5):
  • Single line (0.5):
  • High reputation (-2):
Posted by: pynexj

79833910

Date: 2025-11-30 13:11:30
Score: 5
Natty:
Report link

It looks like the crash may be happening because the OCR result sometimes returns empty or unexpected values in release builds, and the overlay tries to read bounding boxes that aren’t actually there. This usually doesn’t show up in development because the error handling is more forgiving.

Just to understand better: have you checked whether the frame processor ever returns null or an empty array for the text blocks in your release build logs?

Could you share the part of your implementation where you process the text blocks and render the bounding boxes?

Reasons:
  • RegEx Blacklisted phrase (2.5): Could you share
  • Long answer (-0.5):
  • No code block (0.5):
  • Ends in question mark (2):
  • Low reputation (0.5):
Posted by: aelarassi

79833906

Date: 2025-11-30 13:08:29
Score: 1.5
Natty:
Report link

@ReX357 You need to edit your question: no, that's not a grid of parallelograms. It's a grid of trapezoids. It's pretty straightforward to do in Python + Numpy, but correcting your terminology will help toward accurately describing the problem.

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • User mentioned (1): @ReX357
  • Single line (0.5):
  • Looks like a comment (1):
  • High reputation (-2):
Posted by: Reinderien

79833904

Date: 2025-11-30 13:08:29
Score: 2
Natty:
Report link

My knowledge might be slightly outdated since I had this problems some 2 years ago. If I remember correctly, this was not possible using the Google Login Plugin because it is based on OAuth.

What you could do alternatively, is set up an authentication with Google Workspace using SAML. This way, you can configure a group attribute.

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Low reputation (1):
Posted by: josi

79833900

Date: 2025-11-30 12:56:26
Score: 0.5
Natty:
Report link

dotnet format is really slow, you can also try roslynator like in this command:

roslynator fix .\Lucene.Net.sln --supported-diagnostics NUnit2002 NUnit2003 NUnit2004
Reasons:
  • Low length (1):
  • Has code block (-0.5):
Posted by: Sahin

79833890

Date: 2025-11-30 12:37:22
Score: 2.5
Natty:
Report link

If you are using the same date even as the week changes, it would be useful to have a macro that stores the date calculated with +15 in the cell. There is no need to change +15 to +8.

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: motosann

79833888

Date: 2025-11-30 12:33:21
Score: 0.5
Natty:
Report link
<!DOCTYPE html>
<html>
<head>
    <title>Rage Mode Game 😈</title>
    <style>
        body {
            background: #fff3f3;
            font-family: Arial;
            overflow: hidden;
            text-align: center;
        }
        h1 {
            margin-top: 30px;
        }
        #btn {
            position: absolute;
            padding: 15px 25px;
            background: #ff0000;
            color: white;
            border: none;
            border-radius: 10px;
            font-size: 18px;
        }
        #msg {
            position: fixed;
            bottom: 20px;
            width: 100%;
            font-size: 22px;
            color: #ff0022;
        }
    </style>
</head>
<body>

<h1>Click the Button… if you can 😈</h1>
<button id="btn">CLICK!</button>
<div id="msg"></div>

<script>
const btn = document.getElementById("btn");
const msg = document.getElementById("msg");

const insults = [
    "Bro missed 💀",
    "Too slow 😂",
    "My grandma is faster 😭",
    "You almost had it… SIKE!",
    "Skill issue detected 😹",
    "Try harder lil bro 🤏",
];

function moveButton() {
    const x = Math.random() * (window.innerWidth - 150);
    const y = Math.random() * (window.innerHeight - 150);
    btn.style.left = x + "px";
    btn.style.top = y + "px";

    // Random button size
    const size = Math.random() * 40 + 20;
    btn.style.fontSize = size + "px";

    // Random message
    msg.textContent = insults[Math.floor(Math.random() * insults.length)];
}

btn.addEventListener("mouseover", moveButton);

btn.addEventListener("click", () => {
    alert("IMPOSSIBLE?? HOW DID YOU CLICK THAT 😨🔥");
});
</script>

</body>
</html>
Reasons:
  • Blacklisted phrase (1): 😂
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: MARVEL GAMING YT

79833884

Date: 2025-11-30 12:28:19
Score: 3.5
Natty:
Report link

Any Luck mate?

I got this error because I forgot to install dotenv

npm i dotenv

then I just imported and everything's working fine

import dotenv from "dotenv";
dotenv.config();
Reasons:
  • Blacklisted phrase (1.5): Any Luck
  • Low length (1):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • Low reputation (1):
Posted by: Tandith

79833882

Date: 2025-11-30 12:24:18
Score: 3
Natty:
Report link

https://stackoverflow.com/users/3899431/luis-colorado Two things. Dealing with your first comment, this is only a simple little test that I did to test char** allocation, a block box if you will that does not return anything or really do anything important. It's just a test for me to learn best practice and weed out all of the junk answers on the internet.

Second, I did take a look at that book before posting (It's on the Internet Archive). Maybe I didn't study it enough (I'll have to go back and revisit) but the section starting on page 99 didn't really deal with these specific questions I'm asking.

Thanks for the responses!

Reasons:
  • Blacklisted phrase (0.5): Thanks
  • Blacklisted phrase (1): stackoverflow
  • Long answer (-0.5):
  • No code block (0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: Maryann

79833877

Date: 2025-11-30 12:18:17
Score: 5
Natty:
Report link

https://stackoverflow.com/users/2410359/chux Yep, exactly right. I forgot to put parens around the (size + 1). Thanks for pointing that out. Strange that the Valgrind profiler didn't catch that.

Reasons:
  • Blacklisted phrase (0.5): Thanks
  • Blacklisted phrase (1): stackoverflow
  • Low length (1):
  • No code block (0.5):
  • Self-answer (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Maryann

79833876

Date: 2025-11-30 12:17:16
Score: 5
Natty:
Report link

Ok,

if you are using Anaconda for environment management, Then create a new environment in anaconda and select python version whic are supported by tensorflow and this will be solve your issue.

Need more help please watch this solution "https://www.youtube.com/watch?v=L4Y7A44lzpM"

Reasons:
  • Blacklisted phrase (1): youtube.com
  • RegEx Blacklisted phrase (1.5): help please
  • Low length (0.5):
  • No code block (0.5):
  • Contains question mark (0.5):
  • Low reputation (1):
Posted by: sanjay yadav

79833874

Date: 2025-11-30 12:16:15
Score: 5
Natty:
Report link

https://stackoverflow.com/users/12149471/andreas-wenzel I had no idea one could create the block of memory this way--I've never seen this before. Thanks so much for the tip!

Reasons:
  • Blacklisted phrase (0.5): Thanks
  • Blacklisted phrase (1): stackoverflow
  • Low length (1):
  • No code block (0.5):
  • Self-answer (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Maryann

79833873

Date: 2025-11-30 12:15:14
Score: 0.5
Natty:
Report link

Welcome to Stack Overflow! This question would be more suitable for Cross Validated.

Reasons:
  • Low length (1.5):
  • No code block (0.5):
  • Single line (0.5):
  • High reputation (-2):
Posted by: margusl

79833872

Date: 2025-11-30 12:14:14
Score: 4.5
Natty:
Report link

https://stackoverflow.com/users/4756299/andrew-henle Very strange about the formatting. I copied it straight from Eclipse, apparently it didn't translate too well into SO. I'll watch out for that in the future, thanks for the heads-up.

Reasons:
  • Blacklisted phrase (0.5): thanks
  • Blacklisted phrase (1): stackoverflow
  • Low length (0.5):
  • No code block (0.5):
  • Self-answer (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Maryann

79833871

Date: 2025-11-30 12:14:14
Score: 2
Natty:
Report link

You cannot assign a custom name/ID to vc_custom_####### classes.These classes are system-generated every time you save the element. They will always change when you edit the “Design Options” tab.

Instead, you must use custom CSS class (or Element ID) fields that WPBakery provides.

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Low reputation (1):
Posted by: Rajarshi Bose

79833869

Date: 2025-11-30 12:13:13
Score: 4.5
Natty:
Report link

https://stackoverflow.com/users/448932/500-internal-server-error - Makes total sense. I now see (along with the other answers) why it seems to be a lot of conflicting answers. As always, depends on what you're doing. Thanks for the clarification.

Reasons:
  • Blacklisted phrase (0.5): Thanks
  • Blacklisted phrase (1): stackoverflow
  • Low length (0.5):
  • No code block (0.5):
  • Self-answer (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Maryann

79833863

Date: 2025-11-30 12:04:11
Score: 0.5
Natty:
Report link

First, make sure you are actually running neovim and that it’s updated:

If your neovim version is >= 0.7 Use this command

vim.g.mapleader = " "
vim.api.nvim_set_keymap("n", "<leader>pv", ":Ex<CR>", { noremap = true, silent = true })
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: The Cowacorn

79833847

Date: 2025-11-30 11:35:04
Score: 6
Natty:
Report link

@Rose

I will check.

Is the following order acceptable?

Reasons:
  • Blacklisted phrase (1): ???
  • Long answer (-0.5):
  • No code block (0.5):
  • Ends in question mark (2):
  • User mentioned (1): @Rose
  • Looks like a comment (1):
  • Low reputation (1):
Posted by: motosann

79833844

Date: 2025-11-30 11:31:03
Score: 1
Natty:
Report link

Certainly! So the problem I have doesnt have so much to do with the current grid stacking implementation, so i've updated the snippet using absolute positioning instead.

The problem is; I have a container inside yellow column that holds two elements. When I dont break out the "text-container element" it's easy to control the spacings between the two (using row-gap or margin-bottom).

But If I add the break-out class on the text-container the element is removed from the document flow and isnt considered as a child of the nested yellow-columns flexbox-container, and that makes it so I can't control the spacings anymore, that's what Im having problem solving in a elegant and scalable way. Hope I'm making sense, having a hard time explaining the issue in few words.

Reasons:
  • Long answer (-0.5):
  • No code block (0.5):
  • Self-answer (0.5):
  • Low reputation (0.5):
Posted by: Vanhorn

79833838

Date: 2025-11-30 11:21:01
Score: 0.5
Natty:
Report link

native javascript A lot of this subject is already said. I am a Hardcore Native Javascript developer. So a natural fit for me is using Promises, together with async/await they are a natural fit.

angular Angular uses RxJS. A technology developed by a Microsoft developer and implemented in lots of tech like Angular. So for Angular thats the natural fit

the future I cant look in the future but I dont go with the flow of SPAs. Developing with SPAs takes more time and Javascript maintenance. Because of that HTML first, Javascript second is now hot, so back to how it was ment to be. HTMX can fit that bill very well. Thats why I wont use anything that goes of the ES* standard, keep my eyes on the ball.

my guess Good writing of 4* Javascript code is already hard. So I stick to ES*. Native Javscript is on the rise. Even Netflix is rewriting React pages to native Javascript.

good all joke A fool with a tool is still a fool.

Reasons:
  • Long answer (-0.5):
  • No code block (0.5):
  • Low reputation (0.5):
Posted by: Herman Van Der Blom

79833834

Date: 2025-11-30 11:15:59
Score: 1.5
Natty:
Report link

Some times simply disable CSS formatting entirely:

"[css]": {
  "editor.formatOnSave": false
}

Then format only HTML/JS/TS/Svelte/etc.

Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: zastixx

79833817

Date: 2025-11-30 10:38:51
Score: 1
Natty:
Report link

The fastest solution is to use the ReactPress CLI. Install it globally and start the services to bypass Manual Mode immediately:

npm install -g @fecommunity/reactpress
reactpress server start
reactpress client start
Reasons:
  • Whitelisted phrase (-1): solution is
  • Contains signature (1):
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: react

79833816

Date: 2025-11-30 10:30:49
Score: 2.5
Natty:
Report link

It is tricky with all those variations! While you’re figuring out a robust way to handle it, I’ve been trying out Golo777 great for taking a break and having some fun in between these tedious file edits.

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: jackjamees6

79833815

Date: 2025-11-30 10:28:49
Score: 0.5
Natty:
Report link

It's not because print() returns None, @DeepSpace! The result of print() is discarded.

Reasons:
  • Low length (1.5):
  • Has code block (-0.5):
  • User mentioned (1): @DeepSpace
  • Single line (0.5):
  • High reputation (-2):
Posted by: Ulrich Eckhardt

79833811

Date: 2025-11-30 10:24:47
Score: 1.5
Natty:
Report link

To integrate Meta Ads with Google AdMob bidding on iOS, you first need to install the Meta Audience Network SDK along with the AdMob SDK using CocoaPods, then enable bidding for Meta Audience Network inside your AdMob account. After that, you must add Meta as a bidding partner in AdMob mediation settings and include the correct placement IDs and app IDs from Meta Business Manager. In your Xcode project, configure the adapters, initialize both SDKs in the AppDelegate, and make sure SKAdNetwork IDs from Meta are added to your Info.plist. Once everything is set up, load and display your ad units as you normally do with AdMob, and the system will automatically handle bidding between Meta and other networks.

Reasons:
  • Long answer (-0.5):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Fathima Jasna KJ

79833803

Date: 2025-11-30 10:02:42
Score: 2
Natty:
Report link

You'll have the opportunity to read various games and blogs on my site <a href="https://livesweepstakes.uk/emma-lous-christmas-cash-giveaway-2025-usa/"> Emma Lous Christmas Cash Giveaway 2025 USA</a> and a chance to win gifts. My site serves as a platform for entertainment and providing opportunities to win gifts. Please read the rules carefully.

Reasons:
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Anupama singh

79833801

Date: 2025-11-30 09:58:41
Score: 1
Natty:
Report link

I know this is an old question, anyway here is some attempt of mine:

https://www.mathworks.com/matlabcentral/fileexchange/182709-mstyleminify

Tested for @RodyOldenhuis cases (transpose, tricky strings) ... not heavily tested otherwise but seems to work fine so far:

example

example

PS: I'm replacing with whitespaces because in my case I'm trying to automate modifying mfiles by adding call to some extrafunction in all main-function / constructor (even if weirdly formatted) of many mfiles ... if you have some idea on that ... mtree/getcallinfo are of help but not to automatically insert code in mfiles.

Reasons:
  • Probably link only (1):
  • Long answer (-0.5):
  • No code block (0.5):
  • User mentioned (1): @RodyOldenhuis
  • High reputation (-1):
Posted by: CitizenInsane

79833793

Date: 2025-11-30 09:38:37
Score: 1.5
Natty:
Report link

This is a problem associated with the MIME type/content-type of the files, here's what you can do to fix this:
1. If you are uploading files to the bucket using AWS CLI, use official and latest version, let the utility guess the mime types of the files. Invalidate all files in cloudfront after this.
2. Clear you browsers cache & cookies. Issue should be fixed!!

Reasons:
  • No code block (0.5):
  • Low reputation (1):
Posted by: Ulhas Bhalerao

79833792

Date: 2025-11-30 09:36:37
Score: 0.5
Natty:
Report link

One reason may be C compatibility or the programmer is coming from C background.

Reasons:
  • Low length (1.5):
  • No code block (0.5):
  • Single line (0.5):
  • High reputation (-2):
Posted by: Richard

79833787

Date: 2025-11-30 09:30:35
Score: 3.5
Natty:
Report link

show_more_button.click() is the key, but it should show 200 results

Reasons:
  • Low length (1.5):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Dada Smash

79833786

Date: 2025-11-30 09:27:34
Score: 2.5
Natty:
Report link

N9 nano9

Six4Sex s4s

Media Four Ringtone m4r, m4b

MPEG-3, 4, 2.5, 2, 1.5, 1 mp3, mp4, mp2, mpeg

Reasons:
  • Low length (1):
  • No code block (0.5):
  • Low reputation (1):
Posted by: Никита Генрих

79833785

Date: 2025-11-30 09:25:34
Score: 2.5
Natty:
Report link

A very frequently asked question:

👉 https://stackoverflow.com/a/17778390/476

Reasons:
  • Blacklisted phrase (1): stackoverflow
  • Probably link only (1):
  • Low length (2):
  • No code block (0.5):
  • High reputation (-2):
Posted by: deceze

79833782

Date: 2025-11-30 09:21:33
Score: 1.5
Natty:
Report link

To resolve the Manual Mode issue in ReactPress, ensure your WordPress hosting on server has Node.js and npm installed. You might need to contact their support or use a custom server setup. For detailed guidance, check out the ReactPress project at https://github.com/fecommunity/reactpress offers solutions and documentation for seamless React-WordPress integration.

# Install ReactPress globally
npm install -g @fecommunity/reactpress

# Start services
reactpress server start
reactpress client start
Reasons:
  • Contains signature (1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: react

79833779

Date: 2025-11-30 09:15:31
Score: 1.5
Natty:
Report link

You're printing the result of the recursive call, but you're not returning it. So when digit_sum(452) finishes, it returns None because there's no return statement in the recursive branch.

Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Ashmeer kaur Sahota

79833778

Date: 2025-11-30 09:13:31
Score: 3
Natty:
Report link

it works completely fine when I tried it gives the output

[0, 2, 4, 6, 8]

Reasons:
  • Low length (1.5):
  • No code block (0.5):
  • Low reputation (1):
Posted by: Ashmeer kaur Sahota

79833777

Date: 2025-11-30 09:11:30
Score: 2.5
Natty:
Report link

If you disabled Edge updates like I did, this is the cause. Had blocked permissions to the system account for running MicrosoftEdgeUpdate.exe.

Fixed it by restoring permissions, redownloading the latest edge installer and installing it again. Visual studio install now works again.

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Unregistered user (0.5):
  • Low reputation (1):
Posted by: Anon

79833768

Date: 2025-11-30 08:49:25
Score: 0.5
Natty:
Report link

Partial matching with LIKE

If one name contains the other:

SELECT t1.name, t1.surname1, t1.id, t2.name1, t2.origin
FROM table1 t1
LEFT JOIN table2 t2 ON t1.name LIKE '%' || t2.name1 || '%' 
                    OR t2.name1 LIKE '%' || t1.name || '%';
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: Shir

79833755

Date: 2025-11-30 08:19:18
Score: 4
Natty:
Report link

Top 10 Best Domain Registrar Companies (2026)

You can check this to buy best domain names and solve your problem.

Reasons:
  • Probably link only (1):
  • Low length (1.5):
  • No code block (0.5):
  • Low reputation (1):
Posted by: Suraj Das

79833748

Date: 2025-11-30 08:11:16
Score: 2
Natty:
Report link

This happens when the Google Solar API does not have enough high resolution data for the building queried (which is common for countries in Europe). See https://blog.afi.io/blog/walking-on-sunshine-fun-with-the-google-solar-api/,

Reasons:
  • Low length (1):
  • No code block (0.5):
  • Single line (0.5):
Posted by: theprof

79833732

Date: 2025-11-30 06:58:00
Score: 3
Natty:
Report link

Use "=RunningValue(Fields!Amount.Value, Sum, Nothing)" in details section where you need running total. This is help you.

Reasons:
  • Low length (1):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Saravanapandian

79833730

Date: 2025-11-30 06:52:59
Score: 0.5
Natty:
Report link

Even much better

 if (GoRouter.of(context).canPop()) {
                GoRouter.of(context).pop();
              } else {
                context.go('/dashboard');
              }

So if there is no route, you can set a fallback!

Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: shamnad sherief

79833720

Date: 2025-11-30 06:19:53
Score: 0.5
Natty:
Report link
1. Verify Java is installed
java -version

2. Download the IJava zip from GitHub
https://github.com/SpencerPark/IJava/releases/download/v1.3.0/ijava-1.3.0.zip
Extract to a folder, e.g. D:\IJava.

3. Install the kernel using the install script
Open terminal inside the extracted folder and run:
cd D:\IJava
python install.py
This installs the Java kernel into Jupyter (creates a kernel folder under C:\ProgramData\jupyter\kernels\java by default).

4. VS Code blocked the kernel as “untrusted”
Error shown:
 The kernel 'Java' was not started as it is located in an insecure location 'C:\ProgramData\jupyter\kernels\java\kernel.json'.
Two ways to fix that:
    1. Trust that specific kernel folder in VS Code settings (jupyter.kernels.trusted) — add the ProgramData path. (this did not work for me)
    2. Move the kernel folder into your user Roaming path (what you did) so VS Code trusts it automatically.
    So I moved the folder:
    From:
    C:\ProgramData\jupyter\kernels\java
    To:
    C:\Users\Admin\AppData\Roaming\jupyter\kernels\java

5. Fix the kernel.json path (critical)
After moving, the kernel still pointed to the old jar path, so Jupyter tried to run a jar that no longer existed.
Open:
C:\Users\Admin\AppData\Roaming\jupyter\kernels\java\kernel.json
Edit the "argv" entry so the -jar path points to the new location. Example final content we used:
{
  "argv": [
    "java",
    "-jar",
    "C:\\Users\\Admin\\AppData\\Roaming\\jupyter\\kernels\\java\\ijava-1.3.0.jar",
    "{connection_file}"
  ],
  "display_name": "Java",
  "language": "java"
}
Make sure the jar filename and full path exactly match what’s in that folder.

6. Restart VS Code completely
(Not just reload — close and re-open). This makes VS Code pick up the updated kernel.

8. Select the Java kernel in the notebook
Reasons:
  • Blacklisted phrase (1): did not work
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Amruta Pawar

79833717

Date: 2025-11-30 06:14:52
Score: 1
Natty:
Report link

The one you are looking for is AsyncLocalStorage. Introduced in Node.js 12+ (stable in later versions), part of the async_hooks module. You can read more from here Even cls-hooked mentioned above internally uses this.

Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: CIBI VISHNU AC

79833715

Date: 2025-11-30 06:12:51
Score: 2
Natty:
Report link

@ReX357 Thank you for the information, and that's perfectly okay about the linear algebra - it's quick to pick up. For my approach to work, you will need to know basic row reduction, and what a vector equation of a line is.

Essentially, to find the intersection of two line segments L1:{(a,b),(c,d)}, and L2:{(e,f),(g,h)}, you first turn them into their corresponding vectors: V1:{(a,b),(c-a,d-a)}, V2:{(e,f),(g-e,h-f)}. Then you set V1=V2, and use Gauss-Jordan elimination (row reduction) to find the coordinates of their intersection (IN THE AFFINE BASIS!). By affine basis, I mean that the second component is added to the first to obtain the new point - it's a bit technical.

If all these coordinates are between zero and one, then you can apply one of them to the equation of one line, and (bam!) you've got your intersection.

Repeat this process for every pair for a working solution. Of course, this is probably speed-up-able too.

Would you like a basic version in Python or Lua? (I'm rusty with Python, so Lua is easier, but I can swing both ways.)

Reasons:
  • Blacklisted phrase (0.5): Thank you
  • Long answer (-1):
  • No code block (0.5):
  • Contains question mark (0.5):
  • User mentioned (1): @ReX357
  • Low reputation (0.5):
Posted by: Jasper

79833711

Date: 2025-11-30 06:04:49
Score: 4
Natty:
Report link

@Jasper: Yes. I have the coordinates for all the points in green in my sample diagram. The narrow strips are roads. I need to get the corner coordinates for the 36 square'ish sections. In terms of linear algebra, I just know what it is but no real experience. I messed around with OpenGL graphics and programmed some simple 3d objects rotating but that's the extent of it. And that was 10 years ago. But I have a propensity for learning quick.

Reasons:
  • Blacklisted phrase (0.5): I need
  • No code block (0.5):
  • User mentioned (1): @Jasper
  • Self-answer (0.5):
  • Single line (0.5):
  • Looks like a comment (1):
Posted by: ReX357

79833708

Date: 2025-11-30 06:01:49
Score: 2
Natty:
Report link

Thank you all for your responses

@Richard - At the moment no, they only probably need a human readable name for the moment. If I need to add more information later like a sales prices or such I was thinking of creating a generic SalesItem where the specific is composited into that new item. - Or what ever the common practice equivalent for this would be in F#.

@Brian - thank you - I will try and give that approach a go today if I get time. It looks promising, visually. I'll be interested to see how my "operations" functions work with it. It looks close to what I want to achieve in my mind.

@Brent - The plan is to only allow new materials and behaviours for them through new hardcoded types. I understand with F# pattern matching I could probably have a single type with a differentiator say "Ore", "Oil" "Gas" and then have a Name "Iron Ore", "Coal Ore", "Crude Oil", "Natural Gas" but then I would assume I will have some massively long "match" expressions that will have to grow with each new type, anyway? Or am I looking at this wrong.

Sorry for answering to all in a single reply, but normally in Stack Overflow I would comment on each reply, but for some reason SO is not giving me that option today!

Reasons:
  • Blacklisted phrase (0.5): Thank you
  • Blacklisted phrase (0.5): thank you
  • Blacklisted phrase (0.5): I need
  • RegEx Blacklisted phrase (1): I want
  • Long answer (-1):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • User mentioned (1): @Richard
  • User mentioned (0): @Brian
  • User mentioned (0): @Brent
  • Self-answer (0.5):
  • High reputation (-1):
Posted by: Dib

79833704

Date: 2025-11-30 05:55:47
Score: 1
Natty:
Report link

For latest swift versions, Xcode 16 and iOS 18, below solution works.

button.configuration = nil
button.titleLabel?.adjustsFontSizeToFitWidth = true

Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: Asad Mehmood

79833700

Date: 2025-11-30 05:45:45
Score: 4
Natty:
Report link

If you have the start and end coordinates of each line segment comprising the grid, I might be able to help you. Please inform. Also, is your goal just to detect these intersections, or is it to partition the grid by them?

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Ends in question mark (2):
  • Single line (0.5):
  • Low reputation (0.5):
Posted by: Jasper

79833691

Date: 2025-11-30 05:19:39
Score: 9 🚩
Natty: 4
Report link

have you fixed this problem? I'm having the same issue, please reply if you've done this. (Sorry for my bad English)

Reasons:
  • Blacklisted phrase (1.5): please reply
  • RegEx Blacklisted phrase (1.5): fixed this problem?
  • Low length (1):
  • No code block (0.5):
  • Me too answer (2.5): I'm having the same issue
  • Contains question mark (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: KQii5s

79833687

Date: 2025-11-30 05:09:37
Score: 1
Natty:
Report link

The issue is not with your logic — it is because Pyrogram does not automatically preserve caption entities when you manually rebuild a media group.

When you extract messages from chat history using:

await client.get_chat_history(...)

Pyrogram gives you:

message.caption

message.caption_entities

BUT entities are NOT applied automatically when you create new InputMediaPhoto / InputMediaVideo.

InputMediaPhoto and InputMediaVideo require you to explicitly pass the entities if you want them preserved.

You are only sending:

caption=m.caption

So the entities are lost.

Reasons:
  • Long answer (-0.5):
  • No code block (0.5):
  • Low reputation (1):
Posted by: Mohammed Sufyan

79833682

Date: 2025-11-30 04:49:33
Score: 0.5
Natty:
Report link

I agree with Richard's approach. You can build a type hierarchy using DUs in F# or inheritance in C# to model the diagram, but what's the point? How will this benefit the logic you want to implement?

If you look at the tree of life, that's an example of something you might be tempted to model as an OO hierarchy. Or with a DU in F#. Then you'd have insects with their six legs in one branch.

It depends on the purpose, but the chance of success in modeling it like that is very slim. You'd be hardcoding the structure when it's likely that this structure should be built at runtime, and legs and wings and eyes should be attached dynamically at runtime.

Let's say somebody discovers something new in the tree of life. A new species, or some new fact about an existing species. If an application for maintaining information about the tree of life were to cope with this situation, and it was hardcoded like that, it would be impossible to modify information without releasing a new version of the application.

Ok, reality isn't always that simple, so maybe what you're trying has a purpose. Still, do you need a hardcoded tree structure? Maybe a list based on the diagram would be enough, hard or soft. And again, what's it for within the logic?

Reasons:
  • Long answer (-1):
  • No code block (0.5):
  • Ends in question mark (2):
  • High reputation (-1):
Posted by: Bent Tranberg

79833679

Date: 2025-11-30 04:42:32
Score: 3.5
Natty:
Report link

https://www.youtube.com/watch?v=vAH4GRWbAQw

Handle errors in Node.js by extending the error object, centralizing error handling, gracefully handling uncaught exceptions, and monitoring errors.

Reasons:
  • Blacklisted phrase (1): youtube.com
  • Low length (1):
  • No code block (0.5):
  • Low reputation (1):
Posted by: jia badar

79833676

Date: 2025-11-30 04:24:28
Score: 0.5
Natty:
Report link

I was able to solve this issue using @HangarRash's idea with a custom container view and a little bit of constraint math.


import UIKit

class ViewController: UIViewController {

  override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    
    let w: CGFloat = 64
    let h: CGFloat = 64

    let v1 = UIView(frame: CGRectMake(0, 0, w, h))
    let v2 = UIView(frame: CGRectMake(0, 0, w, h))
    let v3 = UIView(frame: CGRectMake(0, 0, w, h))
    let v4 = UIView(frame: CGRectMake(0, 0, w, h))
    let v5 = UIView(frame: CGRectMake(0, 0, w, h))
    let v6 = UIView(frame: CGRectMake(0, 0, w, h))

    v1.backgroundColor = .red
    v2.backgroundColor = .green
    v3.backgroundColor = .yellow
    v4.backgroundColor = .gray
    v5.backgroundColor = .cyan
    v6.backgroundColor = .purple
    
    let views: [UIView] = [v1, v2, v3, v4, v5, v6]
    
    let gap: CGFloat = 16
    let width: CGFloat = 32
    let height: CGFloat = 32
    let totalWidth: CGFloat = width * CGFloat(views.count) + gap * CGFloat(views.count-1)
    let container = UIView(frame: CGRectMake(0, 0, totalWidth, height))
    
    container.widthAnchor.constraint(equalToConstant: totalWidth).isActive = true
    
    for (i, view) in views.enumerated() {
        view.translatesAutoresizingMaskIntoConstraints = false
        container.addSubview(view)

        NSLayoutConstraint.activate([
            view.widthAnchor.constraint(equalToConstant: width),
            view.heightAnchor.constraint(equalToConstant: height), // match container
            view.centerYAnchor.constraint(equalTo: container.centerYAnchor),
            view.leadingAnchor.constraint(equalTo: container.leadingAnchor, constant: CGFloat(i) * (width + gap))
        ])
    }
    
    let containerItem = UIBarButtonItem(customView: container)
    if #available(iOS 26.0, *) {
      containerItem.hidesSharedBackground = true
    }

    navigationItem.rightBarButtonItem = containerItem
  }
}

extension UIView {
  func anchor(to size: CGSize) {
    translatesAutoresizingMaskIntoConstraints = false
    let constraints = [
      heightAnchor.constraint(equalToConstant: size.height),
      widthAnchor.constraint(equalToConstant: size.width)
    ]
    for constraint in constraints {
      constraint.priority = UILayoutPriority(rawValue: 1000)
    }
    NSLayoutConstraint.activate(constraints)
  }
}



Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • User mentioned (1): @HangarRash's
  • Self-answer (0.5):
  • Low reputation (0.5):
Posted by: HL666

79833670

Date: 2025-11-30 04:11:26
Score: 3.5
Natty:
Report link

Ya Untuk menghubungi layanan Cs Bitget melalui 0821-3737-7562 WhatsApp dapat diakses 24 jam, memungkinkan Anda mendapatkan bantuan dan informasi kapan saja.

Reasons:
  • Low length (1):
  • No code block (0.5):
  • Self-answer (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Cara Menghubungi Cs Bitget

79833669

Date: 2025-11-30 04:08:25
Score: 3.5
Natty:
Report link

Miami uses old instances and I believe that is why AWS could not connect directly. My config file in my SSH folder was misconfigured.

Reasons:
  • Low length (1):
  • No code block (0.5):
  • Self-answer (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Andrew DeHuff

79833659

Date: 2025-11-30 03:55:22
Score: 1
Natty:
Report link

Well, after reading through the documentation for a while, I found out there's a new checkout type (block) that seems to be a newer version. If you use this shortcode in your checkout page, the hooks do work:

[woocommerce_checkout]

I still can't find the hooks that work with the new type of blocks checkout, though.

Reasons:
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: Juwe

79833652

Date: 2025-11-30 03:25:16
Score: 1
Natty:
Report link

It's in the main question snippet. Match everything not preceeded by @:test(

Reasons:
  • Low length (1.5):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Single line (0.5):
  • High reputation (-1):
Posted by: Misiur

79833651

Date: 2025-11-30 03:24:16
Score: 7
Natty:
Report link

What specific exclusion are you trying to do? Can you give some examples of what should match and what shouldn't?

Reasons:
  • RegEx Blacklisted phrase (2.5): Can you give some
  • Low length (1):
  • No code block (0.5):
  • Ends in question mark (2):
  • Single line (0.5):
  • Starts with a question (0.5): What
Posted by: smallpepperz

79833647

Date: 2025-11-30 03:13:13
Score: 9 🚩
Natty: 6.5
Report link

I wonder how his indexing went. I have the same problem on my dictionary I just started, unscramble.com but I plan to keep adding to it. How do you keep adding to a dictionary when it is done. Add thesaurus? Or just create content related to dictionaries like news?

Reasons:
  • Blacklisted phrase (1): I have the same problem
  • Blacklisted phrase (1): How do you
  • Low length (0.5):
  • No code block (0.5):
  • Me too answer (2.5): I have the same problem
  • Ends in question mark (2):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Anna Rose

79833636

Date: 2025-11-30 02:22:03
Score: 4
Natty:
Report link

apkgurug is a platform that provides all kinds of updated Android & iOS APK mod versions, possibly<a href=" https://apkgurug.com/ > unlocked apps you need for Android targeted apk downloading apps or games.

Reasons:
  • Contains signature (1):
  • Low length (0.5):
  • No code block (0.5):
  • Unregistered user (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: apkgurug

79833635

Date: 2025-11-30 02:14:01
Score: 0.5
Natty:
Report link

When I first started learning to program, I don't even start with any mainstream programming language. I still remember fondly the Mediachance Multimedia Builder (MMB), it was the first thing that I learned back in 2012. It's a software that lets you create an app mainly for "autorun" for CD and thumb drive. It offers a simple to use and WYSIWYG editor and close to no coding skill to build an app. But it has a scripting support to create more complicated logic. This were my first experience with writing code.

As time progress, I learned HTML and CSS with Microsoft FrontPage 2003, then Adobe Dreamweaver CS5. Back then jQuery was the SOTA library for creating web apps. I also learned a bit about PHP but never really liked it.

Then I started learning about Visual Basic in Microsoft Office (VBA) and then I stumbled upon Visual Basic 6.0 where I can create a more "proper program" so to say. Windows Forms was my new toy. VB6 was already outdated in 2015, and I stared exploring .NET Framework 4.0 and Visual Studio 2010 Express. Back then there was no VS Community Edition and .NET is still a proprietary, compared to .NET 10 now which is open source. Various websites such as Stackoverflow, CodeProject, VBForums, CodePlex (now gone), Planet Source Code (now gone), random blogs, and MSDN (now MS Learn) were my primary source of learning materials. I also liked O'Reilly books as it provides a more concrete example of how things are done from an expert point of view (compared to random blogs).

I still used VB.NET until I changed to C# in late 2017. Then I got my first job in 2019 and was quite shocked to learn that I were assigned to a team with NodeJS as the main framework as I don't have any experience with it. My previous experience with reading technical blogs and documentations proved to be invaluable for my career. It allows me to learn new stuff quickly and adapt to strange areas such as web development using React/Vue (crazy gibberish: JSX)

My way of learning:

  1. Plan a project
  2. Try stuff until it worked

I remember switching from framework to framework, library to library, language to language, database to database. I never completely finished the project, but the journey learning various language, framework, libraries, and databases is the most fun thing about learning to program.

I argue that it is harder to start learning programming now even with abundance of resources, because the technological advancement and AI have gone so far that it is hard to learn the basics to the current industry standard. It would take a huge amount of time and efforts to understand the nuances of why certain application use X or Y approach. I still struggle when changing job because the tech stack is constantly changing.

If you're feeling lost and overwhelmed with the amount of information you need to learn, you're not alone. All great programmers have gone through similar process. I think having a mentor would be the best way to learn. Keep up the good work.

Reasons:
  • Blacklisted phrase (1): Stackoverflow
  • Whitelisted phrase (-1): it worked
  • Long answer (-1):
  • No code block (0.5):
  • Starts with a question (0.5): When I
  • Low reputation (0.5):
Posted by: Fahmi Noor Fiqri