79731772

Date: 2025-08-11 07:36:06
Score: 0.5
Natty:
Report link

Short answer:this is issue with the libigl Python bindings

Quick fix:roll back libigl to an older version, try earlier releases one by one until the function appears

The more proper but time consuming approach is review the libigl changelog and related issues/PRs to see if the function was removed or renamed in the bindings,and then pin the required version in your project

Reasons:
  • No code block (0.5):
Posted by: Kirill Ilichev

79731768

Date: 2025-08-11 07:28:05
Score: 1.5
Natty:
Report link

SAFr Auth is a cutting-edge, SIM-based authentication solution offered by Times Mobile in partnership with Sekura.id. It enables OTP-less, real-time user verification leveraging the cryptographic capabilities present within mobile SIM cards—eliminating the need for passwords, SMS codes, or other multi-factor interventions.

https://timesmobile.in/index.php/safr-auth-from-sekura-id/

Reasons:
  • No code block (0.5):
  • Low reputation (1):
Posted by: Raj Thakur

79731767

Date: 2025-08-11 07:27:04
Score: 5
Natty:
Report link

Stopping goroutines from outside is not possible in golang. But yes, there are ways to do that in golang. I refer you to this post, which covers all those ways with explanations. How to kill running goroutines from outside?

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

79731766

Date: 2025-08-11 07:26:03
Score: 0.5
Natty:
Report link

That is the convex button, Above examaples might help but you can use this package to make the life easier, Also you can get convex paiting method from package and customize to your needs.

Reasons:
  • Whitelisted phrase (-1.5): you can use
  • Low length (0.5):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (0.5):
Posted by: Reza Aslejeddian

79731763

Date: 2025-08-11 07:24:02
Score: 1.5
Natty:
Report link

You need to drop the comma from the name object after output. It should look something like this:

name = new { name = "Outputs"}
Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Ayush Jain

79731756

Date: 2025-08-11 07:17:00
Score: 0.5
Natty:
Report link
{
  "item_a": {
    "name": "Item A",
    "description": "..."
  },
  "item_b": {
    "name": "Item B",
    "description": "..."
  }
}

Your json format should be like this. it will be wrk for you.

Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: Developer Nilesh

79731752

Date: 2025-08-11 07:09:59
Score: 3
Natty:
Report link

Simply do

public override string ToString() => $"{_name}, {_number}, {_date}, {_salary}";

From micorsoft documentations.

Reasons:
  • Probably link only (1):
  • Low length (1.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: lloyd tony

79731750

Date: 2025-08-11 07:08:58
Score: 1.5
Natty:
Report link

This appears to be a bug which has been resolved in their code base. See this commit, according to the tags the earliest release that fixes this issue is 10.3.0.0-68. Sadly after Pentaho 10.2.0.0-222 (October 2024) there haven't been any developer/community edition releases anymore. So until Hitachi bothers to create a new developer release we're stuck with this bug.

Reasons:
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (0.5):
Posted by: Martijn Lentink

79731747

Date: 2025-08-11 07:06:58
Score: 1.5
Natty:
Report link

Regarding the only on these timesteps - this depends on the dynamics in the model - but at least you can write an s-function that hits these samples. The last item of the examples table for level-2 m- sfunctions might be a good start.

https://nl.mathworks.com/help/releases/R2025a/simulink/sfg/s-function-examples.html#bq9pj0l

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Low reputation (0.5):
Posted by: Co - MonkeyProof Solutions

79731745

Date: 2025-08-11 07:03:57
Score: 0.5
Natty:
Report link

For me I tried use shape property from Bar

interface PaddedBarProps extends RectangleProps {
  x?: number;
  y?: number;
  width?: number;
  height?: number;
  fill?: string;
  payload?: unknown[];
  index?: number;
}

const PaddedBar = ({
  x = 0,
  y = 0,
  width = 0,
  height = 0,
  fill,
  payload,
  index,
}: PaddedBarProps): React.ReactElement => {
  const gap = 2; // px
  const isLast = index === (payload?.length ?? 0) - 1;

  return (
    <rect
      x={x}
      y={y + (isLast ? 0 : gap)}
      width={width}
      height={height - (isLast ? 0 : gap)}
      fill={fill}
    />
  );
};
//usage
<Bar
              dataKey='recycledLog'
              name={LABELS.RECYCLE}
              fill={COLORS.RECYCLE}
              stackId={"weight"}
              shape={<PaddedBar />}
            />
            <Bar
              dataKey='nonRecycledLog'
              radius={[2, 2, 0, 0]}
              stackId={"weight"}
              name={LABELS.NON_RECYCLE}
              fill={COLORS.NON_RECYCLE}
            />

Result:

enter image description here

Source: https://github.com/recharts/recharts/issues/2244#issuecomment-2288572842

Reasons:
  • Probably link only (1):
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Hem Pun

79731737

Date: 2025-08-11 06:54:55
Score: 3.5
Natty:
Report link

Have you looked into Project Dependencies Mass Update Tool?

This is a tool that comes as part of the UiPath Studio package.
Here you can select several projects for updating, pick and chose the dependencies to update, and even publish the projects afterwards.

https://docs.uipath.com/studio/standalone/latest/user-guide/project-dependencies-mass-update

Regards
Soren

Reasons:
  • Blacklisted phrase (1): Regards
  • Low length (0.5):
  • No code block (0.5):
  • Contains question mark (0.5):
  • Low reputation (1):
Posted by: SorenB

79731736

Date: 2025-08-11 06:53:54
Score: 1.5
Natty:
Report link

The <!DOCTYPE html> is not part of the DOM.

Please use

<!DOCTYPE html>
<html lang="en" data-theme="corporate"> 
    ...
</html>
Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Biswajit Bala

79731734

Date: 2025-08-11 06:52:54
Score: 1
Natty:
Report link

I also faced the same problem today. My friend works on my startup with the latest version of AndroidStudio and i installed that IDE a month ago

So i just simply found the libs.versions.toml file and updated this line:

[versions]
agp = "8.9.1"
previous was 8.11.1
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Ahmadov Mahammad

79731725

Date: 2025-08-11 06:47:53
Score: 2.5
Natty:
Report link

In React 19 (at least) ES modules are provided. Now you can simply do:

import React from "https://esm.sh/react"
import ReactDOM from "https://esm.sh/react-dom/client"

I recently did something related and explained my solution on this blog post.

Reasons:
  • Blacklisted phrase (1): this blog
  • Contains signature (1):
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: tripu

79731722

Date: 2025-08-11 06:45:53
Score: 2.5
Natty:
Report link

Yes, in golang, you can't stop or kill goroutines directly. The Go team does this intentionally to prevent inconsistent memory states. However, there are ways to kill it from the outside. How to kill running goroutines from outside? Here are all the ways mentioned.

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

79731711

Date: 2025-08-11 06:26:48
Score: 0.5
Natty:
Report link

I ran into the same problem and the following solution worked for me. I recreated the minikube cluster with the Docker engine by running:

minikube start --driver=docker
Reasons:
  • Whitelisted phrase (-1): worked for me
  • Low length (1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Роман Пикуленко

79731706

Date: 2025-08-11 06:17:46
Score: 2
Natty:
Report link

Whether CORBA is dead or alive is a foolish debate... There's a tool that fits a certain range of tasks. Two years ago, I needed a feature for distributed objects that could send events to subscribers at high speed. I chose CORBA and C++, and over time, I’ve more or less learned the spec. No matter how complex the specification was, I released the first version in three months. I achieved fault tolerance, automatic reconnections in case of link failure. I ran a test for 10 seconds, pushing 200 KB data blocks to subscribers via localhost through the server—average speed was 2 milliseconds. So, if your task doesn’t require high speed or various technologies like AMI, AMH, then you simply don’t need this tool.

Reasons:
  • Blacklisted phrase (0.5): I need
  • Long answer (-0.5):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Александр Гордиенко

79731696

Date: 2025-08-11 06:10:44
Score: 12
Natty: 8.5
Report link

i am also getting same error but nothing is missing
can anyone help??

Reasons:
  • RegEx Blacklisted phrase (3): can anyone help
  • RegEx Blacklisted phrase (1): i am also getting same error
  • Low length (1.5):
  • No code block (0.5):
  • Me too answer (2.5): i am also getting same error
  • Ends in question mark (2):
  • Unregistered user (0.5):
  • Low reputation (1):
Posted by: vyshnav

79731690

Date: 2025-08-11 05:56:41
Score: 1
Natty:
Report link

Accessing Drupal’s admin panel is straightforward, but it depends slightly on your Drupal version. Here’s the quick guide:

1. Log in to your Drupal site

2. Navigate to the admin dashboard

3. Use the direct admin URL
You can also go directly to:
https://yoursite.com/admin
This takes you straight to the main administration page.

If you need more further details you can visit Drupal agency

Reasons:
  • Contains signature (1):
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Drupal Agency

79731688

Date: 2025-08-11 05:50:40
Score: 1
Natty:
Report link

Tital:blast message| Ratsms

Deliver your message to thousands instantly using the blast message service from Bulk-SMS.Services. Whether it’s a promotional offer, service update, or emergency alert, our bulk SMS platform helps you broadcast messages with speed and precision. Simply upload your contact list, craft your message, and launch the blast campaign in seconds. Our high-delivery-rate infrastructure ensures your messages reach inboxes reliably. Ideal for real estate, events, education, and e-commerce, our message blast tools are easy to use and highly effective. Engage your audience, increase response rates, and simplify mass communication with our advanced bulk message blasting features.

Url:https://bulk-sms.services/

Tags:Bulk sms,Bulk message

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

79731684

Date: 2025-08-11 05:44:38
Score: 2
Natty:
Report link

you are getting this error because your Node.js and npm are very old, and they can’t talk to the new npm website.To fix it, go to nodejs.org and download the latest version of Node.js. This will also give you a new npm that works with today’s servers. After you update Node.js and npm, run npm install again, and your packages should install without errors.

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

79731675

Date: 2025-08-11 05:33:36
Score: 2.5
Natty:
Report link

Another option is need to check correct dll version with current PHP version, TS (Thread Safe) or Non TS version.

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

79731668

Date: 2025-08-11 04:56:28
Score: 2
Natty:
Report link

"The IV must be the same for a particular encryption/decryption."

This means that when you're encrypting data, you need to use the same Initialization Vector (IV) for both encryption and decryption. If you generate a new IV for decryption, it won't work.

To fix the issue, you can store the IV with the encrypted data and reuse it during decryption.

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

79731666

Date: 2025-08-11 04:53:28
Score: 2
Natty:
Report link

This should work, but regardless of that. SDK and arming is not reliable. What you should do is either create TCP server or HTTP server yourself and use HTTP Listening mode. This way you are not risking of having fail to arm, or arm stuck mode.

Reasons:
  • Whitelisted phrase (-2): This should work
  • RegEx Blacklisted phrase (1.5): m stuck
  • Low length (0.5):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Luka T

79731664

Date: 2025-08-11 04:52:28
Score: 2.5
Natty:
Report link

It appears to be a known, open bug, right now: https://github.com/lit/lit/issues/3025

Reasons:
  • Probably link only (1):
  • Low length (1.5):
  • No code block (0.5):
  • Single line (0.5):
  • High reputation (-1):
Posted by: Computer says 'no'--SOooooo

79731653

Date: 2025-08-11 04:22:22
Score: 1
Natty:
Report link

@Mnyikka's answer didn't work for me, but inspired me to write this:

    function ExtractFromDiv(html, id) {
        do {
            let i = html.indexOf("<div");
            if (i < 0) { return '' };
            html = html.substring(i);
            i = html.indexOf(">");
            let tag = html.substring(0, i + 1);
            html = html.substring(i + 1);
            i = tag.indexOf('id="');
            if (i < 0) {
                i = tag.indexOf("id='");
                if (i < 0) { continue };
                tag = tag.substring(i + 4);
                i = tag.indexOf("'");
                if (i < 0) { continue };
                tag = tag.substring(0, i);
                if (tag !== id) { continue };
                break;
            } else {
                tag = tag.substring(i + 4);
                i = tag.indexOf('"');
                if (i < 0) { continue };
                tag = tag.substring(0, i);
                if (tag !== id) { continue };
                break;
            }
        } while (html.length > 0);
        if (html.length === 0) { return '' };
        let content = html;
        let n = 0;
        do {
            let x = content.indexOf('<div');
            let y = content.indexOf('</div');
            if (x < 0 || x > y) {
                content = content.substring(y);
                y = content.indexOf(">");
                content = content.substring(y + 1);
                if (n === 0) {
                    break;
                } else {
                    n--;
                }
            } else {
                content = content.substring(x);
                x = content.indexOf(">");
                content = content.substring(x + 1);
                n++;
            }
        } while ( content.length > 0 );
        html = html.substring(0, html.length - content.length);
        n = html.lastIndexOf("</div");
        if (n !== -1 ) {
            html = html.substring(0, n);
        }
        return html;
    }
Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • User mentioned (1): @Mnyikka's
  • Looks like a comment (1):
  • Low reputation (0.5):
Posted by: Steve Mol

79731647

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

I run across similar problem before.

Here all() takes care of the filter, but custom filter does not.

So another solution to your problem could be applying self instead of super().

return super().get_queryset().order_by("start_time")
#change above to below:
return self.get_queryset().order_by("start_time")
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: Ranger

79731628

Date: 2025-08-11 03:13:08
Score: 3
Natty:
Report link

ssl pinning may be an issue on new ios versions. any sensitive data is not able to be read by charles.

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

79731626

Date: 2025-08-11 03:02:06
Score: 1.5
Natty:
Report link

Add this

img.cat {
  width: 200px;
  position: relative;
  z-index: 1;
  pointer-events: none; /* allows clicks to pass through */
}
Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: sekrupman

79731621

Date: 2025-08-11 02:52:04
Score: 0.5
Natty:
Report link

None of these answers worked for me on MacOS 10.14 Mojave.

Someone answered to clear ~/.bash_history.

I instead edited ~/.bash_history to remove the lines I didn't want anymore, saved the file, and restarted the terminal.

This worked.

Intuitive, direct, simple, and fast.

Reasons:
  • Whitelisted phrase (-1): worked for me
  • Low length (0.5):
  • No code block (0.5):
  • Low reputation (0.5):
Posted by: joecap5

79731610

Date: 2025-08-11 01:58:54
Score: 1
Natty:
Report link

Short answer: you can’t tap other participants’ audio from the Teams client. Microsoft only supports two paths:

  1. After-the-meeting transcripts (official API):
  1. Real-time audio (build a meeting bot):

Notes:

If you need a WebSocket fan-out for live transcript chunks to your UI, our ChatterBox meeting bot API shows a practical pattern for streaming to clients. Disclosure: I work on ChatterBox (https://chatter-box.io/).

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

79731609

Date: 2025-08-11 01:51:53
Score: 3.5
Natty:
Report link

The answer seems to be:

open App Store

find Xcode developer tools

re-install

Then it appears in the sidebar. macos did not want to reboot; it is already in the sidebar

A mystery remains: where is the path for this code?

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Ends in question mark (2):
  • Self-answer (0.5):
Posted by: Jacob Wegelin

79731599

Date: 2025-08-11 01:26:48
Score: 2.5
Natty:
Report link

I have amended my original post with the solution.

In summary, the T and Y generic types needed to be defined as where T : new() where Y : class

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

79731598

Date: 2025-08-11 01:26:47
Score: 8
Natty: 6
Report link

Did you find a solution to this?? I am currently experiencing something similar.

Reasons:
  • RegEx Blacklisted phrase (3): Did you find a solution to this
  • Low length (1.5):
  • No code block (0.5):
  • Contains question mark (0.5):
  • Unregistered user (0.5):
  • Single line (0.5):
  • Starts with a question (0.5): Did you find a solution to this
  • Low reputation (1):
Posted by: Deewhy

79731592

Date: 2025-08-11 01:04:43
Score: 0.5
Natty:
Report link

To debug mobile browser webgl contexts, console add-ons such as Eruda will not show gpu errors:

<script src="https://cdn.jsdelivr.net/npm/eruda"></script>
<script>eruda.init();</script>

To see them, navigate to chrome://gpu. A log will be the last information on the page. In my case, the log was as big as it could be, starting at 1/5th of the page.

Found out that my textures needed to be a power of 2. Power of 2 textures fixed the black rendering problem.

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

79731582

Date: 2025-08-11 00:42:38
Score: 1.5
Natty:
Report link

Nice — let’s make a playable browser boxing game right now. Below is a single self-contained index.html you can save and open in any modern browser. It’s lightweight, uses <canvas>, supports:

Save all of this as index.html and open it in your browser.

Game file — save as index.html

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Mini Boxing — Single HTML Game</title>
<style>
  :root{
    --bg:#111;
    --panel:#0f1720;
    --accent:#f97316;
    --bar-bg:#334155;
    --friendly:#10b981;
    --danger:#ef4444;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  }
  html,body{height:100%;margin:0;background:linear-gradient(180deg,var(--bg),#000);color:#eee;display:flex;align-items:center;justify-content:center}
  .wrap{width:960px;max-width:96vw;background:linear-gradient(180deg,#08101a,#0c1319);border-radius:12px;padding:18px;box-shadow:0 10px 30px rgba(0,0,0,0.6)}
  header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
  h1{font-size:18px;margin:0}
  .controls{font-size:13px;opacity:0.9}
  canvas{display:block;background:#081018;border-radius:8px; width: 100%; height: 480px; image-rendering: auto;}
  .hud{display:flex;gap:12px;margin-top:8px;align-items:center;justify-content:space-between}
  .panel{background:var(--panel);padding:10px;border-radius:8px;flex:1}
  .bars{display:flex;flex-direction:column;gap:8px}
  .bar{height:14px;background:var(--bar-bg);border-radius:7px;overflow:hidden;position:relative}
  .bar > i{position:absolute;left:0;top:0;bottom:0;width:100%;transform-origin:left;transition:width 0.12s linear}
  .health-i{background:linear-gradient(90deg,var(--friendly),#60a5fa)}
  .enemy-i{background:linear-gradient(90deg,#f43f5e,#f97316)}
  .stamina-i{background:linear-gradient(90deg,#c7f9dc,#60a5fa)}
  .meta{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:8px}
  .meta .big{font-weight:700}
  .footer{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
  button{background:var(--accent);border:none;padding:8px 12px;border-radius:8px;color:#081018;font-weight:700;cursor:pointer}
  button.secondary{background:#334155;color:#cbd5e1}
  small{opacity:0.8}
</style>
</head>
<body>
<div class="wrap">
  <header>
    <h1>Mini Boxing — vs AI</h1>
    <div class="controls">
      Controls — Move: A / D, Jab: J, Heavy: K, Dodge: L, Block: Space, Pause: P
    </div>
  </header>

  <canvas id="game" width="920" height="480"></canvas>

  <div class="hud">
    <div class="panel" style="flex:0.62">
      <div style="display:flex;justify-content:space-between;align-items:center">
        <div>
          <div style="font-size:13px">Player</div>
          <div class="bars" style="width:320px">
            <div class="bar"><i id="player-health" class="health-i" style="width:100%"></i></div>
            <div class="bar"><i id="player-stam" class="stamina-i" style="width:100%"></i></div>
          </div>
        </div>
        <div style="text-align:right">
          <div style="font-size:13px">Opponent</div>
          <div class="bars" style="width:200px">
            <div class="bar"><i id="enemy-health" class="enemy-i" style="width:100%"></i></div>
            <div class="bar"><i id="enemy-stam" class="stamina-i" style="width:100%"></i></div>
          </div>
        </div>
      </div>

      <div class="meta">
        <div><small>Round:</small> <span id="round" class="big">1</span></div>
        <div><small>Time left:</small> <span id="timer" class="big">60</span>s</div>
        <div><small>State:</small> <span id="state">FIGHT</span></div>
      </div>
    </div>

    <div style="flex:0.38;display:flex;flex-direction:column;gap:8px">
      <div class="panel" style="text-align:center">
        <div style="font-size:14px;font-weight:700">Score</div>
        <div style="display:flex;gap:12px;justify-content:center;margin-top:8px">
          <div><small>Player</small><div id="score-player" style="font-size:18px">0</div></div>
          <div><small>AI</small><div id="score-ai" style="font-size:18px">0</div></div>
        </div>
      </div>
      <div style="display:flex;gap:8px">
        <button id="btn-restart" class="secondary">Restart</button>
        <button id="btn-toggle" >Pause</button>
      </div>
    </div>
  </div>

  <div class="footer"><small>Made with &lt;canvas&gt; — lightweight demo</small></div>
</div>

<script>
/* -------------------------
   Simple 2D Boxing Game
   -------------------------
   Controls:
    - A / D : move left / right
    - J : jab (quick light punch)
    - K : heavy punch (slower, more damage)
    - L : dodge (fast short evade)
    - Space: block (reduce incoming damage)
    - P : pause
*/

const canvas = document.getElementById('game');
const ctx = canvas.getContext('2d');

const W = canvas.width, H = canvas.height;
let paused = false;

/* Utility */
function clamp(v,a,b){return Math.max(a,Math.min(b,v))}
function now(){ return performance.now(); }

/* Player & Enemy basic config */
const physics = {
  friction: 0.85,
  gravity: 0, // no vertical gravity (boxing on flat)
  arenaPadding: 120
};

class Fighter {
  constructor(opts){
    this.name = opts.name;
    this.x = opts.x;
    this.y = H - 140;
    this.w = 50; this.h = 120;
    this.vx = 0;
    this.facing = opts.facing; // 1 = right, -1 = left
    this.color = opts.color;
    this.maxHealth = 100;
    this.health = this.maxHealth;
    this.maxStam = 100;
    this.stamina = this.maxStam;
    this.state = 'idle'; // idle, move, jab, heavy, block, dodge, stunned
    this.stateTimer = 0;
    this.comboCooldown = 0;
    this.lastHit = 0;
    this.score = 0;
    this.canMove = true;
  }

  reset(x,facing){
    this.x = x; this.facing = facing; this.vx = 0;
    this.health = this.maxHealth; this.stamina = this.maxStam;
    this.state='idle'; this.stateTimer=0; this.lastHit=0;
  }

  getHitbox(){
    // simplified rectangular hitbox
    return {x: this.x - this.w/2, y:this.y - this.h, w:this.w, h:this.h};
  }

  getPunchBox(){
    // jab: small reach; heavy: larger reach and height
    if(this.state === 'jab'){
      return {x: this.x + this.facing*30, y:this.y - 80, w:40, h:30};
    } else if(this.state === 'heavy'){
      return {x: this.x + this.facing*45, y:this.y - 90, w:60, h:40};
    }
    return null;
  }

  damage(amount){
    this.health = clamp(this.health - amount, 0, this.maxHealth);
  }

  changeState(st, t=300){
    this.state = st; this.stateTimer = t;
    if(st==='jab') { this.stamina = clamp(this.stamina - 8, 0, this.maxStam); }
    if(st==='heavy'){ this.stamina = clamp(this.stamina - 20, 0, this.maxStam); }
    if(st==='dodge'){ this.stamina = clamp(this.stamina - 12, 0, this.maxStam); }
    if(st==='block'){ /* drains slowly elsewhere */ }
  }

  update(dt){
    // timers
    if(this.stateTimer>0) this.stateTimer = Math.max(0, this.stateTimer - dt);

    if(this.stateTimer === 0 && ['jab','heavy','dodge','stunned'].includes(this.state)){
      // revert to idle automatically
      this.state = 'idle';
    }

    // stamina regen when idle or moving
    if(!['jab','heavy','dodge'].includes(this.state)){
      this.stamina = clamp(this.stamina + dt*0.02, 0, this.maxStam);
    }

    // velocity
    this.x += this.vx * dt * 0.06;
    this.vx *= physics.friction;

    // clamp arena
    const leftBound = physics.arenaPadding;
    const rightBound = W - physics.arenaPadding;
    this.x = clamp(this.x, leftBound, rightBound);
  }

  draw(ctx){
    // shadow
    ctx.fillStyle = "rgba(0,0,0,0.25)";
    const hb = this.getHitbox();
    ctx.fillRect(hb.x+6, hb.y+this.h+4, hb.w-12, 8);

    // body
    ctx.fillStyle = this.color;
    ctx.fillRect(hb.x, hb.y, hb.w, hb.h);

    // head
    ctx.fillStyle = '#222';
    ctx.fillRect(hb.x + hb.w*0.15, hb.y - 28, hb.w*0.7, 28);

    // arms when attacking
    const pb = this.getPunchBox();
    if(pb){
      ctx.fillStyle = '#ffdbb5';
      ctx.fillRect(pb.x - pb.w/2, pb.y, pb.w, pb.h);
    }

    // simple face
    ctx.fillStyle = '#111';
    ctx.fillRect(hb.x + hb.w*0.35, hb.y - 22, 6, 6);
    ctx.fillRect(hb.x + hb.w*0.55, hb.y - 22, 6, 6);
  }
}

/* Game state */
const player = new Fighter({name:'You', x: W*0.3, facing: 1, color:'#2563eb'});
const enemy  = new Fighter({name:'AI',  x: W*0.7, facing: -1, color:'#ef4444'});
let round = 1;
let roundTime = 60; // seconds per round
let timeLeft = roundTime;
let roundActive = true;
let lastFrame = now();

/* Input handling */
const keys = {};
window.addEventListener('keydown', e => {
  if(e.key === 'p' || e.key === 'P'){ togglePause(); }
  keys[e.key.toLowerCase()] = true;
  // block with space
  if(e.code === 'Space') keys[' '] = true;
});
window.addEventListener('keyup', e => { keys[e.key.toLowerCase()] = false; if(e.code==='Space') keys[' '] = false; });

/* Buttons */
document.getElementById('btn-restart').onclick = () => { restartMatch(); };
document.getElementById('btn-toggle').onclick = () => { togglePause(); };

function togglePause(){
  paused = !paused;
  document.getElementById('btn-toggle').textContent = paused ? 'Resume' : 'Pause';
}

/* Simple WebAudio beep for hits */
const audioCtx = new (window.AudioContext || window.webkitAudioContext)();
function playBeep(freq=440, dur=0.06, gain=0.25){
  try{
    const o = audioCtx.createOscillator();
    const g = audioCtx.createGain();
    o.type = 'sine';
    o.frequency.value = freq;
    g.gain.value = gain;
    o.connect(g); g.connect(audioCtx.destination);
    o.start();
    o.stop(audioCtx.currentTime + dur);
  }catch(e){}
}

/* Hit detection */
function rectsOverlap(a,b){
  return !(a.x + a.w < b.x || b.x + b.w < a.x || a.y + a.h < b.y || b.y + b.h < a.y);
}

function tryResolvePunch(attacker, defender){
  const pb = attacker.getPunchBox();
  if(!pb) return false;
  const dhb = defender.getHitbox();
  const punchRect = {x: pb.x - pb.w/2, y: pb.y, w: pb.w, h: pb.h};
  const hit = rectsOverlap(punchRect, dhb);
  if(!hit) return false;

  // if defender blocking and facing attacker -> reduce damage
  let damage = (attacker.state === 'jab') ? 6 : 18;
  let stun = (attacker.state === 'jab') ? 150 : 420;
  if(defender.state === 'block'){
    damage *= 0.3;
    stun *= 0.5;
    // slight stamina drain for blocker
    defender.stamina = clamp(defender.stamina - 6, 0, defender.maxStam);
  } else if(defender.state === 'dodge'){
    // dodge chance avoids
    const dodgeSuccess = Math.random() < 0.75;
    if(dodgeSuccess){
      playBeep(900,0.03,0.08);
      return false;
    }
  }

  defender.damage(damage);
  defender.state = 'stunned';
  defender.stateTimer = stun;
  playBeep(300 + Math.random()*600, 0.08, 0.25);
  attacker.lastHit = now();

  return true;
}

/* AI (very simple) */
const ai = {
  thinkTimer: 0,
  decide(dt){
    this.thinkTimer -= dt;
    if(this.thinkTimer > 0) return;
    this.thinkTimer = 400 + Math.random()*600;

    // simple behavior based on relative position and stamina
    const dist = Math.abs(enemy.x - player.x);
    const facing = (enemy.x < player.x) ? 1 : -1;
    enemy.facing = facing;

    // if low stamina - block or retreat
    if(enemy.stamina < 20){
      if(Math.random() < 0.6) { enemy.changeState('block', 600); enemy.vx = -facing * 0.2; return; }
      enemy.changeState('dodge', 200);
      enemy.vx = -facing * 1.2;
      return;
    }

    if(dist > 160){
      // close gap
      enemy.vx = 0.9 * facing;
      enemy.changeState('idle',0);
    } else {
      // attack or block
      const r = Math.random();
      if(r < 0.45){
        enemy.changeState('jab', 180);
        enemy.vx = 0;
      } else if(r < 0.65 && enemy.stamina>30){
        enemy.changeState('heavy', 420);
        enemy.vx = 0;
      } else if(r < 0.82){
        enemy.changeState('block', 300);
      } else {
        enemy.changeState('dodge', 240);
        enemy.vx = -facing * 1.4;
      }
    }
  }
};

/* Game loop & logic */
function update(dt){
  if(paused) return;

  // round timer
  timeLeft -= dt/1000;
  if(timeLeft <= 0){
    // round ends, decide winner by health
    endRound();
    return;
  }

  // Player controls
  if(player.state !== 'stunned'){
    // move left/right
    if(keys['a']){ player.vx = -2.2; player.facing = -1; }
    if(keys['d']){ player.vx = 2.2; player.facing = 1; }
    if(!keys['a'] && !keys['d']){ /* no input */ }

    // block
    if(keys[' '] && player.stamina > 5){
      player.changeState('block');
    } else {
      if(player.state === 'block' && player.stateTimer === 0) player.state = 'idle';
    }

    // jab
    if(keys['j'] && player.stamina > 7 && player.state !== 'jab' && player.state !== 'heavy'){
      player.changeState('jab', 180);
      player.vx = 0;
    }

    // heavy
    if(keys['k'] && player.stamina > 18 && player.state !== 'heavy'){
      player.changeState('heavy', 420);
      player.vx = 0;
    }

    // dodge
    if(keys['l'] && player.stamina > 10){
      player.changeState('dodge', 240);
      player.vx = 6 * (player.facing * -1); // quick shift away
    }
  }

  // slight stamina drain when blocking
  if(player.state === 'block'){ player.stamina = clamp(player.stamina - dt*0.015, 0, player.maxStam); }
  if(enemy.state === 'block'){ enemy.stamina = clamp(enemy.stamina - dt*0.015, 0, enemy.maxStam); }

  // AI decision
  ai.decide(dt);

  // Update fighters
  player.update(dt); enemy.update(dt);

  // resolve punches: check attacker state transitions -> if just in attack state, attempt hit
  if(player.state === 'jab' && player.stateTimer > 0 && now() - player.lastHit > 150){
    if(tryResolvePunch(player, enemy)){ player.lastHit = now(); }
  }
  if(player.state === 'heavy' && player.stateTimer > 0 && now() - player.lastHit > 300){
    if(tryResolvePunch(player, enemy)){ player.lastHit = now(); }
  }

  if(enemy.state === 'jab' && enemy.stateTimer > 0 && now() - enemy.lastHit > 150){
    if(tryResolvePunch(enemy, player)){ enemy.lastHit = now(); }
  }
  if(enemy.state === 'heavy' && enemy.stateTimer > 0 && now() - enemy.lastHit > 300){
    if(tryResolvePunch(enemy, player)){ enemy.lastHit = now(); }
  }

  // check KO
  if(player.health <= 0 || enemy.health <= 0){
    endRound();
    return;
  }
}

function endRound(){
  paused = true;
  roundActive = false;
  document.getElementById('state').textContent = 'ROUND END';
  if(player.health > enemy.health){
    player.score += 1;
    document.getElementById('score-player').textContent = player.score;
    showMessage('You win the round!');
  } else if(enemy.health > player.health){
    enemy.score += 1;
    document.getElementById('score-ai').textContent = enemy.score;
    showMessage('AI wins the round!');
  } else {
    showMessage('Draw!');
  }
  setTimeout(()=> {
    // next round setup or match end
    if(round >= 3 || player.score === 2 || enemy.score === 2){
      showMessage('Match over! Restart to play again.');
      document.getElementById('state').textContent = 'MATCH OVER';
    } else {
      round += 1;
      nextRound();
    }
  }, 1200);
}

function nextRound(){
  roundActive = true;
  timeLeft = roundTime;
  player.reset(W*0.28, 1);
  enemy.reset(W*0.72, -1);
  paused = false;
  document.getElementById('round').textContent = round;
  document.getElementById('state').textContent = 'FIGHT';
}

/* Restart full match */
function restartMatch(){
  player.score = 0; enemy.score = 0;
  document.getElementById('score-player').textContent = '0';
  document.getElementById('score-ai').textContent = '0';
  round = 1;
  document.getElementById('round').textContent = '1';
  player.reset(W*0.3, 1); enemy.reset(W*0.7, -1);
  timeLeft = roundTime; roundActive = true; paused = false;
  document.getElementById('state').textContent = 'FIGHT';
}

/* Visual helpers */
function drawArena(){
  // ring floor
  ctx.fillStyle = '#07121a';
  ctx.fillRect(0, H-80, W, 80);

  // crowd-ish gradients
  const g = ctx.createLinearGradient(0,0,0,H-80);
  g.addColorStop(0, '#061018');
  g.addColorStop(1, '#051216');
  ctx.fillStyle = g;
  ctx.fillRect(0,0,W,H-80);

  // center line
  ctx.fillStyle = 'rgba(255,255,255,0.02)';
  ctx.fillRect(physics.arenaPadding-6, H-120, 4, 120);
  ctx.fillRect(W-physics.arenaPadding+2, H-120, 4, 120);
}

/* Message helper */
let overlayMsg = '';
let overlayT = 0;
function showMessage(txt){
  overlayMsg = txt; overlayT = 1800;
}

/* Render loop */
function render(dt){
  // clear
  ctx.clearRect(0,0,W,H);

  drawArena();

  // fighters
  player.draw(ctx);
  enemy.draw(ctx);

  // HUD on canvas: draw center timer big
  ctx.save();
  ctx.font = "700 42px Inter, Arial";
  ctx.fillStyle = "rgba(255,255,255,0.06)";
  ctx.textAlign = "center";
  ctx.fillText(Math.ceil(timeLeft), W/2, 60);
  ctx.restore();

  // overlay message
  if(overlayT > 0){
    overlayT = Math.max(0, overlayT - dt);
    ctx.save();
    ctx.globalAlpha = overlayT/1800;
    ctx.fillStyle = "#fff";
    ctx.font = "700 28px Inter, Arial";
    ctx.textAlign = "center";
    ctx.fillText(overlayMsg, W/2, H/2 - 30);
    ctx.restore();
  }
}

/* DOM HUD update loop */
function updateHUD(){
  document.getElementById('player-health').style.width = (player.health/player.maxHealth*100)+'%';
  document.getElementById('player-stam').style.width = (player.stamina/player.maxStam*100)+'%';
  document.getElementById('enemy-health').style.width = (enemy.health/enemy.maxHealth*100)+'%';
  document.getElementById('enemy-stam').style.width = (enemy.stamina/enemy.maxStam*100)+'%';
  document.getElementById('timer').textContent = Math.max(0, Math.ceil(timeLeft));
  // state label
  document.getElementById('state').textContent = (paused ? 'PAUSED' : (roundActive ? 'FIGHT' : 'ROUND END'));
}

/* Main loop */
function loop(){
  const t = now();
  const dt = t - lastFrame;
  lastFrame = t;
  if(!paused) update(dt);
  render(dt);
  updateHUD();
  requestAnimationFrame(loop);
}

/* Start */
restartMatch();
loop();
</script>
</body>
</html>

How to run

  1. Create a file called index.html.

  2. Paste the whole code above into it and save.

  3. Open it in Chrome, Firefox, or Edge. (If sounds don’t play, click the page to allow audio or interact once — browsers block autoplay.)

Ideas for improvements (I can implement any of these if you want)

Want me to add any of those — or tune difficulty, controls, or visuals? Which feature next: 2-player, better AI, or sprites + animations?

Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • Ends in question mark (2):
  • Low reputation (1):
Posted by: Henok Teka

79731579

Date: 2025-08-11 00:16:33
Score: 3
Natty:
Report link

i tried this in an inherited tableau text table having all dimensions and never got this to work as Tableau was incredibly consistent at populating ABC with the conditional formatting, no matter how i tried. Will not give up have a few tricks up my sleeve.

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Unregistered user (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Don Owen

79731545

Date: 2025-08-10 22:39:12
Score: 5
Natty: 5
Report link

Why is internet caching so dumb ? Why can't the request go through to the server and check the file timestamp and compare with the cache ? This is always a huge probelm with index.html, and all these work around adding ?query string to .js and other resources just to force reloads, it's really quite sad and pthetic that no one addresses this properly, all this advice on how to get around a very basic problem that most caching is extremely stupid ! Just do a quick timestamp check, but the cache control needs to do this, which we have no way to control :( Who writes the chaching code ?

Reasons:
  • Blacklisted phrase (1): :(
  • Long answer (-0.5):
  • No code block (0.5):
  • Ends in question mark (2):
  • Single line (0.5):
  • Starts with a question (0.5): Why is in
  • Low reputation (1):
Posted by: Rick Head

79731544

Date: 2025-08-10 22:34:11
Score: 0.5
Natty:
Report link

The solution is to install the libclang-rt-22-dev package, which was somehow not installed even though it was recommended by the libclang-common-22-dev package. It provides the /usr/lib/llvm-22/lib/clang/22/lib/linux/libclang_rt.asan-x86_64.a file, which can be seen with apt-file show libclang-rt-22-dev.

Reasons:
  • Whitelisted phrase (-1): solution is
  • Low length (0.5):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Single line (0.5):
  • Low reputation (0.5):
Posted by: horsey_guy

79731517

Date: 2025-08-10 21:50:00
Score: 1
Natty:
Report link

While not the “public” InstantSearch.js API, you can set initialResults, then it won't trigger initial search.

search._initialResults = {
    indexName: {}
};
search.start();
Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: hbghlyj

79731515

Date: 2025-08-10 21:44:59
Score: 3
Natty:
Report link

I have a video skal iasand igr foto (1280x720). I want to make igr foto as a background of video skal ias using ffmpeg

Reasons:
  • RegEx Blacklisted phrase (1): I want
  • Low length (1):
  • Has code block (-0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Ias Abdulhadi

79731508

Date: 2025-08-10 21:25:55
Score: 4.5
Natty: 4
Report link

confusing and still needs clarification

Reasons:
  • Low length (2):
  • No code block (0.5):
  • Unregistered user (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: beqj

79731503

Date: 2025-08-10 21:15:52
Score: 0.5
Natty:
Report link

In principle, if SVG files are not shared between users, meaning each user can only access their own uploaded files, I do not immediately see how a malicious SVG could cause harm.

If possible, it may be best to avoid uploading SVG files at all, can all operations be performed client side instead? If the SVG files is not uploaded, I see no reason to take any measures.

However, if uploading is required / desired, and we share the same understanding of doing it right, I still recommend taking steps to minimize the possibility of an SVG causing harm. I have listed a set of recommended security measures in this answer.

Reasons:
  • Long answer (-0.5):
  • No code block (0.5):
  • Contains question mark (0.5):
Posted by: Borewit

79731502

Date: 2025-08-10 21:14:51
Score: 1
Natty:
Report link

I found the problem, the problem was in my build.gradle.kts where both libs.engage.tv and libs.engage.core where in the dependancy block, I then just commented out the

implementation(libs.engage.tv)

which worked!

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

79731500

Date: 2025-08-10 21:07:50
Score: 2
Natty:
Report link
remove coalesce(:employees,1)='1' and just put s.employee in :employees. Do not pass a null list, you should havea empty list in that case
Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Miguel Perdigon

79731489

Date: 2025-08-10 20:41:44
Score: 3.5
Natty:
Report link

asciiQAtk_^w8{wE?nn} u}Y[Gx8/t:5gn7Gy8WG{tQOG=Vgx_>[ o{@U`ouc|l[fUA?d+uj|:FA2)>J:Y-usus.Hk#<p~iA:K?~|S7WOo?tri?%u{K@'AsCH)`T;[ 1 JG\v=gJF~4/`ssi-pHE:%GZfHoomowJ@+p"b. S

Reasons:
  • Low length (1):
  • No code block (0.5):
  • Contains question mark (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Michael Bertrand

79731488

Date: 2025-08-10 20:38:43
Score: 3.5
Natty:
Report link

My virtual environment was on version 3.11 (I didn't reinstall it after I've upgraded my python), that's why it didn't work properly.

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

79731485

Date: 2025-08-10 20:36:43
Score: 1
Natty:
Report link

If you really must load a different stylesheet:

<link rel="stylesheet" media="(prefers-color-scheme: light)" href="light.css">
<link rel="stylesheet" media="(prefers-color-scheme: dark)" href="dark.css">
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Parsa Parvini

79731476

Date: 2025-08-10 20:05:36
Score: 3
Natty:
Report link

HSQLDB recently got an access control setting:

https://www.hsqldb.org/doc/2.0/guide/sqlroutines-chapt.html#src_jrt_access_control

Many thanks to Fred Toussi

Reasons:
  • Blacklisted phrase (0.5): thanks
  • Probably link only (1):
  • Low length (1.5):
  • No code block (0.5):
  • Self-answer (0.5):
  • High reputation (-1):
Posted by: tbeernot

79731475

Date: 2025-08-10 20:04:36
Score: 1
Natty:
Report link

Do you really need it to be a struct? This is painfully easy with a class; if you need a struct, you can always just have your class emit a typed struct in your subclass. Don't be afraid to harness the much greater power of a class and emit a struct if you need the lighter weight for moving the data around.

Food for thought.

Reasons:
  • No code block (0.5):
  • Contains question mark (0.5):
Posted by: chornbe

79731448

Date: 2025-08-10 19:15:25
Score: 3
Natty:
Report link

My team may have gotten close to it. We found some interesting results on this conjecture on why this might be a hard one to crack. Would love feedback on our work if anyone is interested in reviewing the work for us. https://github.com/ErdosDragonSlayer/codieos-triadic-resonance

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

79731447

Date: 2025-08-10 19:14:25
Score: 1.5
Natty:
Report link
import zipfile

# Paths
image_file = "/mnt/data/shop_layout_marked.jpg"
zip_path = "/mnt/data/shop_layout_marked.zip"

# Create ZIP
with zipfile.ZipFile(zip_path, 'w') as zipf:
    zipf.write(image_file, arcname="shop_layout_marked.jpg")

zip_path
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Unregistered user (0.5):
  • Low reputation (1):
Posted by: gulshair

79731437

Date: 2025-08-10 18:51:20
Score: 1.5
Natty:
Report link

Neither approach worked for me because the sign-in buttons were still inactive. What worked was going to my profile icon on the left bar, clicking on my GitHub username, and selecting Manage Trusted Extensions. In the list, I chose GitHub Copilot Chat and pressed OK. This immediately logged me in and allowed me to use the extension’s chat window.

Reasons:
  • Whitelisted phrase (-1): worked for me
  • No code block (0.5):
  • Unregistered user (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Simreen

79731429

Date: 2025-08-10 18:39:17
Score: 3
Natty:
Report link

Edge command-line argument trailing ":" always truncates.

I can type it in ok, but from a shortcut it truncates the switch trailing ":"

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

79731420

Date: 2025-08-10 18:24:14
Score: 1
Natty:
Report link

You'll need to create a page template to display the Books. Eg. archive-books.php

Read the WordPress Theme Developer documentation. The basics and, specifically, the section on templates and template hierarchy:

https://developer.wordpress.org/themes/basics/
https://developer.wordpress.org/themes/basics/template-hierarchy/

Reasons:
  • Probably link only (1):
  • Low length (0.5):
  • Has code block (-0.5):
Posted by: Mat

79731410

Date: 2025-08-10 17:59:09
Score: 0.5
Natty:
Report link

Here's an attempt to do it in SwiftUI based on @Fattie's answer.

This answer uses the native ScrollView with onScrollGeometryChange and scrollTo(y:) API's.

The movement is jittery unfortunately. I'm not sure if the jitteriness is from a weakness in my code and it could be done in a more optimized way, or if it's a weakness in SwiftUI as opposed to UiKit that we should report to Apple, and that the Apple Calendar app was made in UiKit instead of SwiftUI.

Also I simplified the code in the question to just the minimal code to focus on the anchoring part.

Open for suggestions and improvements.

import SwiftUI

struct ScrollData: Equatable {
    let height: CGFloat
    let offset: CGFloat
    let inset: CGFloat
}


final class HourItem: Identifiable {
    let id: UUID
    let hour: Int

    init(hour: Int) {
        self.id = UUID()
        self.hour = hour
    }
}

struct TestView: View {
    let minHourHeight: CGFloat = 50
    let maxHourHeight: CGFloat = 400

    @State private var isZooming: Bool = false
    @State private var previousZoomAmount: CGFloat = 0.0
    @State private var currentZoomAmount: CGFloat = 0.0

    @State private var position: ScrollPosition = ScrollPosition()
    @State private var scrollData = ScrollData(height: .zero, offset: .zero, inset: .zero)
    @State private var anchor: CGFloat = 0
    @State private var height: CGFloat = 0

    private var zoomAmount: CGFloat {
        1 + currentZoomAmount + previousZoomAmount
    }

    private var hourHeight: CGFloat {
        100 * zoomAmount
    }

    private let currentTime: Date = Date.now
    private let hourItems = (0..<25).map {
        HourItem(hour: $0)
    }

    var body: some View {
        ScrollView {
            VStack(spacing: 0) {
                ForEach(hourItems) { hourItem in
                    HourMarkView(
                        hour: hourItem.hour,
                        height: hourHeight,
                        currentTime: currentTime
                    )
                }
            }
            .simultaneousGesture(magnification)
        }
        .scrollPosition($position)
        .onScrollGeometryChange(for: ScrollData.self) { geometry in
            ScrollData(
                height: geometry.contentSize.height,
                offset: geometry.contentOffset.y,
                inset: geometry.contentInsets.top,
            )
        } action: { oldValue, newValue in
            if oldValue != newValue {
                scrollData = newValue
            }
        }
    }

    private var magnification: some Gesture {
        MagnifyGesture(minimumScaleDelta: 0)
            .onChanged(handleZoomChange)
            .onEnded(handleZoomEnd)
    }

    private func handleZoomChange(_ value: MagnifyGesture.Value) {
        if !isZooming {
            anchor = value.startAnchor.y
            height = scrollData.height
            isZooming = true
        }

        let gestureScreenOffset = value.startLocation.y - (scrollData.offset+scrollData.inset)

        let newZoomAmount = value.magnification - 1
        currentZoomAmount = clampedZoomAmount(newZoomAmount)

        position.scrollTo(y: (anchor*scrollData.height) -  gestureScreenOffset)

    }

    private func handleZoomEnd(_: MagnifyGesture.Value) {
        isZooming = false
        previousZoomAmount += currentZoomAmount
        currentZoomAmount = 0
    }

    private func clampedZoomAmount(_ newZoomAmount: CGFloat) -> CGFloat {
        if hourHeight > maxHourHeight && newZoomAmount > currentZoomAmount {
            return currentZoomAmount - 0.000001
        } else if hourHeight < minHourHeight && newZoomAmount < currentZoomAmount {
            return currentZoomAmount + 0.000001
        }

        return newZoomAmount
    }
}

struct HourMarkView: View {
    var hour: Int
    var height: CGFloat
    var currentTime: Date

    var body: some View {
        HStack(spacing: 10) {
            Text(formatTime(hour))
                .font(.caption)
                .fontWeight(.medium)
                .frame(width: 40, alignment: .trailing)
            Rectangle()
                .fill(Color.gray)
                .frame(height: 1)
        }
        .frame(height: height)
        .background(Color.white)
    }

    private func formatTime(_ hour: Int) -> String {
        return String(format: "%02d:00", hour)
    }
}
Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • User mentioned (1): @Fattie's
  • Low reputation (1):
Posted by: Fahad Alothman

79731402

Date: 2025-08-10 17:48:07
Score: 0.5
Natty:
Report link

I know the question is for Visual Studio Code, but in the fully featured Visual Studio, the same problem is apparent. Here is my "solution".

I did this, and although not perfect, it helps!!
Tools/Options/ search for "sticky", check "Group the current scopes within a scrollable region of the editor window", Maximum sticky lines to 3, and choose "Prefer outer scopes".
Visual Studio will then present you with the namespace, class, and function that the top line of the editor area is in. See the image attached here.

enter image description here

Reasons:
  • Long answer (-0.5):
  • No code block (0.5):
  • Low reputation (0.5):
Posted by: Fernando Garcia - Nandostyle

79731384

Date: 2025-08-10 17:04:58
Score: 0.5
Natty:
Report link

I didn’t end up getting this to work reliably via a Chrome extension content script — YouTube seems to check isTrusted on clicks, which makes synthetic extension clicks unreliable.

Instead, I switched to a Tampermonkey userscript, which can run directly in the page context and works fine for automatically skipping ads.

Here’s the script I’m using now:

// ==UserScript==
// @name         AutoSkipYT
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Skips YouTube ads automatically
// @author       jagwired
// @match        *://*.youtube.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const CHECK_INTERVAL = 500; // ms between checks

    function skipAd() {
        const skipButtons = [
            '.ytp-ad-skip-button-modern',
            '.ytp-skip-ad-button',
            'button[aria-label^="Skip ad"]'
        ];

        for (const selector of skipButtons) {
            const button = document.querySelector(selector);
            if (button && button.offsetParent !== null) {
                button.click();
                return;
            }
        }

        // Seek through unskippable ads
        const video = document.querySelector('video');
        if (video && document.querySelector('.ad-showing, .ad-interrupting')) {
            video.currentTime = video.duration - 0.1;
        }
    }

    setInterval(skipAd, CHECK_INTERVAL);
    document.addEventListener('yt-navigate-finish', skipAd);
})();

Notes:

If you still want a Chrome extension version, you’d likely need to inject the script into the page so that clicks are isTrusted. But if you just want it to work, this userscript gets the job done.

Reasons:
  • Blacklisted phrase (1): youtube.com
  • Long answer (-1):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (0.5):
Posted by: jagwired

79731375

Date: 2025-08-10 16:53:56
Score: 0.5
Natty:
Report link

To update a part of your page without a full reload, you must use JavaScript. It is not possible to do this with only Flask and HTML, because browser behavior for a form submission is to request an entirely new page.

The solution is to use JavaScript to send a request to your server in the background.

Reasons:
  • Whitelisted phrase (-1): solution is
  • Low length (0.5):
  • No code block (0.5):
  • Low reputation (0.5):
Posted by: Gavin R.

79731369

Date: 2025-08-10 16:43:53
Score: 0.5
Natty:
Report link

This is not truly "current", but it is close:

The only way I know to do this is to query mysql.
The user table has a last_login_on field.

$ mysql -u debian-sys-maint -p   
mysql\> use redmine;   
mysql\> select id,login,firstname,lastname,last_login_on from users order by last_login_on desc; 
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: Gary Aitken

79731368

Date: 2025-08-10 16:41:53
Score: 1
Natty:
Report link

Did you (@user1496984) run where python? I think the use case matter before choosing the workflow. I will provide a summarized view inspired from the comments.


Use case = Data # (where # can be analyst, scientist (exhaustively add machine learning engineer, and so on)


Use case = Web Dev

Hope this helps! :)

Debate: Is uv better than conda for Data Science projects?

I am still searching how uv benefits over conda

Reasons:
  • Whitelisted phrase (-1): Hope this helps
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • User mentioned (1): user1496984
  • Starts with a question (0.5): Did you
  • Low reputation (1):
Posted by: Jordan TheDodger

79731360

Date: 2025-08-10 16:29:49
Score: 2
Natty:
Report link

Even I got the issue, Even if you use firebase sdk, it won't be enough because basically we will check the user status in the splash screen itself and firebase will take some time to respond, I even used authStateChanges() but I can't get it, so what I did is I used a sharePref storing isLogin values, now it works fine.

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

79731358

Date: 2025-08-10 16:25:48
Score: 4
Natty: 5
Report link

Hello how are you is the game good thank you

Reasons:
  • Blacklisted phrase (0.5): thank you
  • Low length (1.5):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Dinand Van Pelt

79731341

Date: 2025-08-10 16:03:42
Score: 1
Natty:
Report link

<canvas id="gameCanvas" width="800" height="600"></canvas>

<div id="radioPanel">

<button id="prev">⏮</button>

<button id="playPause">⏯</button>

<button id="next">⏭</button>

<span id="trackName">–</span>

</div>

<script>

const canvas = document.getElementById('gameCanvas');

const ctx = canvas.getContext('2d');

// Volante virtual

let steeringAngle = 0;

canvas.addEventListener('mousemove', e => {

const dx = e.clientX - canvas.width / 2;

steeringAngle = dx / (canvas.width / 2); // normaliza entre -1 e 1

});

// Música

const tracks = ['mus1.mp3', 'mus2.mp3', 'mus3.mp3'];

let current = 0;

const audio = new Audio(tracks[current]);

document.getElementById('playPause').onclick = () => {

audio.paused ? audio.play() : audio.pause();

};

document.getElementById('prev').onclick = () => { if (current > 0) current--; audio.src = tracks[current]; audio.play(); };

document.getElementById('next').onclick = () => { if (current < tracks.length - 1) current++; audio.src = tracks[current]; audio.play(); };

document.getElementById('trackName').innerText = tracks[current];

// Loop principal de desenho

function loop() {

ctx.clearRect(0, 0, canvas.width, canvas.height);

// Desenhar estrada segmentada com deslocamento constante

// Desenhar o carro no centro e rotacionado conforme steeringAngle

requestAnimationFrame(loop);

}

loop();

</script>

Reasons:
  • Long answer (-1):
  • No code block (0.5):
  • Contains question mark (0.5):
  • Low reputation (1):
Posted by: Cristian Soares

79731340

Date: 2025-08-10 16:02:42
Score: 3
Natty:
Report link

If you render your SVG to a raster-based format like PNG on the server side, rather than exposing the SVG code directly to the client, you can effectively protect the original SVG source. Combine this with caching of the rendered image to avoid performance pitfalls.

For instructions on rendering a PNG file from an SVG, see: How can I render SVG with common PHP extensions?

Reasons:
  • Blacklisted phrase (0.5): How can I
  • No code block (0.5):
  • Ends in question mark (2):
Posted by: Borewit

79731328

Date: 2025-08-10 15:44:38
Score: 1
Natty:
Report link

You can probably use CASE in your query.

SELECT 
    CASE 
        WHEN FIELD3 LIKE '44%' THEN 'YES'
        ELSE 'NO'
    END AS Check_status
FROM table
GROUP BY Check_status;
Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: nasrin begum pathan

79731320

Date: 2025-08-10 15:27:34
Score: 0.5
Natty:
Report link

Building on @pkamb answer — to shrink the accessory view into the toolbar space, you can read the placement via:

@Environment(\.tabViewBottomAccessoryPlacement) var tabViewPlacement

This returns an enum with two cases: .expanded and .inline. You can provide different views for each case, for example:

.tabViewBottomAccessory {
    switch tabViewPlacement {
    case .expanded:
        HStack {
            Spacer().frame(width: 20)
            Image(systemName: "command.square")
            Text(".tabViewBottomAccessory")
            Spacer()
            Image(systemName: "play.fill")
            Image(systemName: "forward.fill")
            Spacer().frame(width: 20)
        }

    case .inline:
        Text(".tabViewBottomAccessory")
        Image(systemName: "play.fill")
        Image(systemName: "forward.fill")
        Spacer().frame(width: 20)
    }
}

This way, you can simply omit or adjust icons in .inline mode.

Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • User mentioned (1): @pkamb
  • Low reputation (0.5):
Posted by: Gowtham Ravi

79731316

Date: 2025-08-10 15:18:32
Score: 2.5
Natty:
Report link

I started metro server on the web and then checked the errors in console. There was a version mismatch .i ran npx expo-doctor and after that npx expo install --check . It solved the problem

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

79731315

Date: 2025-08-10 15:13:31
Score: 1
Natty:
Report link

if you are here in 2025, you can get this information directly from the *http.Request r.URL.Query().Get("id")

Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Single line (0.5):
Posted by: Ctfrancia

79731300

Date: 2025-08-10 14:57:27
Score: 1.5
Natty:
Report link

if you want to run specific modules seeder

php artisan db:seed --class="Modules\Administration\Database\Seeders\ShiftsSeeder" 
Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: uttam pun

79731299

Date: 2025-08-10 14:56:26
Score: 3
Natty:
Report link

You can (usually), but there is (usually) no use of it. It is also discouraged for embedded systems, especially bare-metal.

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

79731298

Date: 2025-08-10 14:54:26
Score: 1
Natty:
Report link

  1. Abhijith S

  2. Abhishek B

  3. Abhishek Vinodh

  4. Adarsh Pradeep P

  5. Adhi Sakthan S

  6. Akash Anand G

  7. Akash R

  8. Alaka R

  9. Ameer Shanavas

  10. Anamika A

  11. Ananya V

  12. Anjana B

  13. Aravind P

  14. Arjun D

  15. Aswin Raj

  16. Avanthika Krishna D

  17. Ayisha Fathima SS

  18. Basim Muhammed

  19. Devadath S

  20. Devika M

  21. Gagna Priyadarshini

  22. Ijas Nisam

  23. Janisha Nidhi

  24. Jiya Elsa Shajan

  25. Jobin John

  26. Manasi M

  27. Manikandan N

  28. Midhun Chandran M

  29. Midhun Krishna G

  30. Muhammed Aslam N

  31. Muhammed Faizal S

  32. Muhammed Haroon H

  33. Muhammed Shafi N

  34. Nikhila Anil

  35. Nikesh Chakaravarthy

  36. Pranav P

  37. Pratheeksha L

  38. Sabith S

  39. Sai Krishna G

  40. Salu P

  41. Sandana Sandeep

  42. Sanjay Saji

  43. Saran Krishna B

  44. Yadav Suresh

  45. Adithyan U

  46. Alaka R (moved from 37)

  47. Nikhila Anil (moved from 35)

  48. Gagna Priyadarshini (moved from 44)

  49. Devika M (moved from 38)


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

79731291

Date: 2025-08-10 14:42:18
Score: 6.5
Natty:
Report link

i am also facing same problem.

Reasons:
  • Low length (2):
  • No code block (0.5):
  • Me too answer (2.5): i am also facing same problem
  • Single line (0.5):
  • Low reputation (1):
Posted by: Prathamesh Khade

79731289

Date: 2025-08-10 14:38:18
Score: 0.5
Natty:
Report link

The solution to this problem is described here and amounts at installing many optional packages.

vs_BuildTools install ; \
    --includeRecommended --includeOptional ; \
    --add Microsoft.VisualStudio.Workload.VCTools ; \
    --add Microsoft.VisualStudio.Component.VC.ATLMFC ; \
    --add Microsoft.VisualStudio.Workload.VisualStudioExtensionBuildTools ; \
    --quiet --norestart --nocache --wait
Reasons:
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (0.5):
Posted by: Chaos

79731281

Date: 2025-08-10 14:26:15
Score: 0.5
Natty:
Report link

To sort with varying strings:

2
3a
3b
4
10

Use below query:

ORDER BY CAST(mini_number AS UNSIGNED), mini_number

References:
https://www.sitepoint.com/community/t/mysql-how-to-sort-numbers-with-some-data-also-containing-a-letter/340999
https://www.sitepoint.com/community/t/how-to-sort-text-with-numbers-with-sql/346088/4

Reasons:
  • Probably link only (1):
  • Low length (1):
  • Has code block (-0.5):
  • High reputation (-1):
Posted by: Anand Varkey Philips

79731274

Date: 2025-08-10 14:12:12
Score: 1
Natty:
Report link

please make sure you export the region in the environment variable
export AWS_DEFAULT_REGION="us-east-1"

and then trigger the pipeline.

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

79731250

Date: 2025-08-10 13:35:03
Score: 2
Natty:
Report link

i added a space before the username and it worked for me👍🏻

Reasons:
  • Whitelisted phrase (-1): it worked
  • Whitelisted phrase (-1): worked for me
  • Low length (1.5):
  • No code block (0.5):
  • Unregistered user (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Brijesh Verma

79731226

Date: 2025-08-10 13:00:56
Score: 1
Natty:
Report link

I solved this problem by installing Beckhoff TwinCAT Embedded Browser and restarting the computer.

Reasons:
  • Whitelisted phrase (-2): I solved
  • Low length (1):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Celal Altın

79731224

Date: 2025-08-10 12:55:53
Score: 6.5
Natty:
Report link

I got tired and simply switched to SSH keys (docs). I am not sure what the real issue was, but nothing seemed to help me. After trying what I thought was every solution, I kept getting the same error. Leaving this here if anyone else gets stuck.

Reasons:
  • Blacklisted phrase (1): help me
  • Low length (0.5):
  • No code block (0.5):
  • Me too answer (2.5): getting the same error
  • Self-answer (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Acerx.AMJ

79731210

Date: 2025-08-10 12:40:50
Score: 1.5
Natty:
Report link

1- that's not how it works: if you read data, you're waiting for the result, and that's the point of ptefetching: you don't wait for it now, and with a bit of luck you don't wait at all

2- if the JVM is doing a decent job, there are few enough extra memory access that the cache isn't full: think of a heap for example, that has more or less predictable reads for the code, but not for the memory subsystem

Reasons:
  • No code block (0.5):
  • Low reputation (1):
Posted by: Jurjen Bos

79731203

Date: 2025-08-10 12:24:46
Score: 1
Natty:
Report link
SELECT COUNT(DISTINCT t.driver_id) AS drivers
FROM trips t
JOIN drivers d 
    ON t.driver_id = d.driver_id
JOIN vehicles v
    ON t.vehicle_id = v.vehicle_id
WHERE d.driver_status = 'active'
  AND v.vehicle_status = 'active';
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Syeda Nishat Ara Huda

79731198

Date: 2025-08-10 12:07:43
Score: 1
Natty:
Report link

You could remove the current user credentials with the command:

git credential reject <url>
Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: Alex Kalabukhov

79731193

Date: 2025-08-10 11:54:40
Score: 4
Natty:
Report link

even in pypy3 I get the same answer

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

79731172

Date: 2025-08-10 11:07:29
Score: 2
Natty:
Report link

i can't tell why, but those former answers did not work out for me. Thus, those who searched for it can also use this one ig:

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <scope>runtime</scope>
</dependency>
Reasons:
  • Blacklisted phrase (1): did not work
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: sena

79731169

Date: 2025-08-10 11:03:28
Score: 1
Natty:
Report link

In my case the issues was caused by apparmor.

In order to fix it, as root user, I ran aa-complain openvpn (openvpn was already defined under /etc/apparmor.d/)

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

79731165

Date: 2025-08-10 10:55:26
Score: 5.5
Natty: 5.5
Report link

May be you missing Application.ProcessMessages call?

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

79731149

Date: 2025-08-10 10:26:19
Score: 1.5
Natty:
Report link

any updates on this?

The docs (https://node-postgres.com/apis/client) state:

"... example to create a client with specific connection information:

import { Client } from 'pg' ..."

But this leads to:

import { Client } from "pg";
         ^^^^^^
SyntaxError: Named export 'Client' not found. The requested module 'pg' is a CommonJS module, which may not support all module.exports as named exports.
CommonJS modules can always be imported via the default export, for example using:

import pkg from 'pg';
const { Client } = pkg;

    at ModuleJob._instantiate (node:internal/modules/esm/module_job:220:21)
    at async ModuleJob.run (node:internal/modules/esm/module_job:321:5)
    at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:644:26)
    at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5)

Node.js v22.17.1
Reasons:
  • Blacklisted phrase (1): any updates on
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • Low reputation (1):
Posted by: HCZ

79731143

Date: 2025-08-10 10:16:17
Score: 0.5
Natty:
Report link

GitHub Actions only shows tags in the workflow run dialog if the workflow file exists in the commit that tag points to. Your new tags likely point to commits that either don't contain the workflow file or have an older version of it.

When the Maven Release Plugin creates tags through GitHub Actions, it might be tagging commits before the workflow was added or updated. Check if the workflow file exists in the tagged commits by navigating to the specific tag and looking for the .github/workflows directory.

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

79731129

Date: 2025-08-10 09:51:11
Score: 0.5
Natty:
Report link

Regarding your first question:

As I read from this source: I am trying to create cookie while login with a user in Blazor web server app but I am bit lost setting a cookie over Blazor Interactive Server ist not possible, since it uses SignalR. Cookies cannot be set over already started responses (what SignalR is).

You can load the login page in server mode. The problem is posting the form. If you try doing it like this:

<EditForm Model="Input" method="post" OnValidSubmit="LoginUser">

The LoginUser method is called directly on the server via SignalR.

Try something like this:

<EditForm Model="Input" method="post" action="/Account/Login" formname="login">

[SupplyParameterFromForm(FormName = "login")]
private InputModel Input { get; set; } = new();

As far as I tested, this will make sure the EditForm is posted to the server while every other component can still be interactive. I am not sure how this affects the LoginUser method to be called or not. But this could be a start for you.

Second question:

What do you mean by that? You cannnot alter the AuthenticationStateProviders to "enable" cookie setting over SignalR. This is simply not possible. The AuthenticationStateProviders revalidates your login cridentials every 30 minutes (default).

Third question:

I would suggest to you to use the static login page. Why do you need interactive mode anyway on the login page? If you want some sort of animation, you could do that with javascript instead.

Reasons:
  • Blacklisted phrase (1): I am trying to
  • Long answer (-1):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • Low reputation (0.5):
Posted by: S Mxller

79731125

Date: 2025-08-10 09:44:09
Score: 0.5
Natty:
Report link

if you have postgres installed locally try to uninstall it it worked for me in my fullstack next.js project because the the port localhost:5432 is already being used by the postgres in your local machine

Reasons:
  • Whitelisted phrase (-1): it worked
  • Whitelisted phrase (-1): worked for me
  • Low length (0.5):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Deekshith Sripati

79731112

Date: 2025-08-10 09:15:02
Score: 0.5
Natty:
Report link

replace() returns a new object (so assign it or use inplace=True), your types must match (0 vs '0'), and your mapping with duplicate 'polarity' keys overwrote itself.
Use this:

sentiment_text['polarity'] = sentiment_text['polarity'].replace({0: 'negative', 4: 'positive'})
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: Yzkodot

79731106

Date: 2025-08-10 09:09:01
Score: 1.5
Natty:
Report link

I ended up using https://github.com/victornpb/eleventy-plugin-page-assets to copy the images. It gives new names to each image and rewrites the img src attribute accordingly, but I can live with that. I suppose it also wouldn't be a good solution if I had multiple input files link to the same image, because the image would be copied to each output folder, but luckily that's not a problem in my specific case.

Reasons:
  • No code block (0.5):
  • Self-answer (0.5):
  • Single line (0.5):
Posted by: Enno

79731103

Date: 2025-08-10 09:07:00
Score: 3
Natty:
Report link

Sorry if this is not allowed but I have I believe something that may be similar.

I already have a script working well and doing various things but I just want to add 1 more attachment from the same drive to the email.

Everything can remain the same I am just wanting to add one additional pdf.

I have tried the above and various other suggestions but I am doing something wrong.

Below is my current script.

const SHEETID = '1rx1lCYKdhi8dhivoYpUO6EIHb2TWTpiMVduK7M-L2A4';
const DOCID = '1sRZqPCkuATT9tQDZlJDp-DicP6saBpZoAXVvKWXT_XM';
const FOLDERID = '1wsyrUM29A1LIiKCjsJE7olKb0ycG2_M5';

function PitchFees2026() {
  const sheet = SpreadsheetApp.openById(SHEETID).getSheetByName('2026 Fees');  
const temp = DriveApp.getFileById(DOCID);
const folder = DriveApp.getFolderById(FOLDERID);

const data = sheet.getDataRange().getValues();
const rows = data.slice(1); 
rows.forEach((row,index)=>{
   const file = temp.makeCopy(folder);
   const doc = DocumentApp.openById(file.getId());
   const body = doc.getBody();
   data[0].forEach((heading,i)=>{
    const header1 = heading.toUpperCase();
    body.replaceText('{NAME}',row[1]);
    body.replaceText('{PITCH}',row[0]);
    body.replaceText('{AMOUNT}',row[3]);
    body.replaceText('{FIRST}',row[4]);
    body.replaceText('{SECOND}',row[5]);
    body.replaceText('{REF}',row[10]);
    body.replaceText('{BNAME}',row[7]);
    body.replaceText('{CODE}',row[8]);
    body.replaceText('{NUMBER}',row[9]);
    body.replaceText('{TERMS}',row[6]);
   })
   doc.setName(row[10]);
   const blob = doc.getAs(MimeType.PDF);
   doc.saveAndClose();

   const pdf = folder.createFile(blob).setName(row[10]+'.pdf');

   const email = row[2];
   const subject = row[10];
   const messageBody = "This message (including any attachments) is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination, or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. \n \nIf you received this in error, please delete the material from your computer and contact the sender. \n\nPlease consider the environment before printing this e-mail.";



   MailApp.sendEmail({
    to:email,
    subject:subject,
    body:messageBody,
    attachments: [blob.getAs(MimeType.PDF)]
   });
  
 Logger.log(row);
 file.setTrashed(true); 
})

}

What I am wanting to attach is

var file = DriveApp.getFileById("1vGvLVP2RV1krxnj8Mt6hMiFHVBoIdbFG");
    attachments.push(file.getAs(MimeType.PDF));

So I was trying to change to bottom of my main script to...

var attachments = []
var file = DriveApp.getFileById("1vGvLVP2RV1krxnj8Mt6hMiFHVBoIdbFG");
    attachments.push(file.getAs(MimeType.PDF));


MailApp.sendEmail({
    to:email,
    subject:subject,
    body:messageBody,
    attachments: [blob.getAs(MimeType.PDF)]
   });
  
 Logger.log(row);
 file.setTrashed(true); 
})

}

Please may some assist me. I have been on this for days so probably not seeing something obvious now. Thank you so much in advance. :-)

Reasons:
  • Blacklisted phrase (0.5): Thank you
  • RegEx Blacklisted phrase (3): Thank you so much in advance
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Vicki Allan

79731098

Date: 2025-08-10 08:54:57
Score: 4
Natty:
Report link

As there is not available answer for this. I wanna do my contribution.

I exactly had the same error & ran into same issue spent hours trying to debug. So please try below approach.

Try using list of list. I had a JSON payload, I append all the JSON into a list.. then again I put this list of JSON into a list.

Sample code:

list_of_list_data = [list(item.values()) for item in list_data]

Please let me know if it works.

Reasons:
  • RegEx Blacklisted phrase (2.5): Please let me know
  • No code block (0.5):
  • Low reputation (1):
Posted by: Megnath

79731093

Date: 2025-08-10 08:44:55
Score: 0.5
Natty:
Report link

Thanks for your discovery and terrific job!

I have tried so hard in the past 48h to modify your script so that I could programmatically also add some text/body in the note (together with the attachment). I also struggled immensely to have the note created in a desired subfolder.

Whenever I tried to "add" a body to the newly created note, Notes.app was basically overwriting the entire note, including the attachment.

At some point I discovered the version Ethan Schoonover authored as a "Folder Action" (see https://youtu.be/KrVcf2nN0b8, and his GitHub repo https://github.com/altercation/apple-notes-inbox). It works almost with no adaptation as a Print Plugin workflow!

This is finally the version I made, with a very minor addition (i.e. the user is prompted to specify a different Note title). I share it here with you and the Internet, hoping it might be a useful starting point for posterity.

-- This script is designed to be used in Automator to create a new note in the Notes app
-- It takes a PDF file as input, prompts the user for a note title, and creates a
-- new note with the PDF attached.
-- The note will be created in a specified folder within the Notes app.
-- The script also includes a timestamp and the original filename in the note body.
-- The script assumes the Notes app is available and the specified folder exists.
-- Note: This script is intended to be run in the context of Automator with a file input (e.g. Print Plugins or as Folder Action).

-- Heavily based on the code from: https://github.com/altercation/apple-notes-inbox


property notePrefix : ""
property notesFolder : "Resources"

on run {fileToProcess, parameters}
    try
        set theFile to fileToProcess as text
        tell application "Finder" to set noteName to name of file theFile
        
        -- Ask the user for a title and tags for the new note
        set noteTitleDialog to display dialog "Note title:" default answer noteName
        set noteTitle to text returned of noteTitleDialog
        
        set timeStamp to short date string of (current date) as string
        set noteBody to "<body><h1>" & notePrefix & noteTitle & "</h1><br><br><p><b>Filename:</b> <i>" & noteName & "</i></p><br><p><b>Automatically Imported on:</b> <i>" & timeStamp & "</i></p><br></body>"
        
        tell application "Notes"
            if not (exists folder notesFolder) then
                make new folder with properties {name:notesFolder}
            end if
            
            set newNote to make note at folder notesFolder with properties {body:noteBody}
            
            make new attachment at end of attachments of newNote with data (file theFile)
            (*
                Note: the following delete is a workaround because creating the attachment
                apparently creates TWO attachements, the first being a sort of "ghost" attachment
                of the second, real attachment. The ghost attachment shows up as a large empty
                whitespace placeholder the same size as a PDF page in the document and makes the
                result look empty
                *)
            delete first attachment of newNote
            show newNote
        end tell
        -- tell application "Finder" to delete file theFile
    on error errText
        display dialog "Error: " & errText
    end try
    return theFile
end run

Note: I was hoping to add programmatically one or more tags to the newly created note (e.g. by asking the user, within a dialog prompt), but I failed. It seems Notes does NOT recognize strings like "#blablabla" as tags, unless they are typed within the Notes.app.

Reasons:
  • Blacklisted phrase (0.5): Thanks
  • Blacklisted phrase (1): youtu.be
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: Michele

79731091

Date: 2025-08-10 08:39:54
Score: 1.5
Natty:
Report link

The problem was that there was no data bound to the checkbox. As soon I added a JSON Model I got fixed.


<Column width="11rem">
    <m:Label text="Product Id" />
    <template>
            <m:CheckBox selected="{Selected}"/>
    </template>
</Column>
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: Pablo Sinder

79731085

Date: 2025-08-10 08:26:51
Score: 0.5
Natty:
Report link

I found the root cause of the issue.

Even though the executable file exists inside the chroot jail and is fully static (confirmed by ldd showing no dynamic dependencies), running it inside the jail failed with:

execl failed: No such file or directory

This error occurs despite the binary being present and statically linked. The reason is that the chroot environment is missing some essential system components or setup that the binary expects at runtime even static binaries sometimes rely on minimal system features or device files.

The problem was resolved when I copied a statically linked BusyBox binary into the jail and ran commands from it. BusyBox, being a fully self-contained executable that includes a shell and common utilities, works smoothly inside minimal environments without extra dependencies.

Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: Chocolate Loves you

79731073

Date: 2025-08-10 08:15:49
Score: 4
Natty: 5
Report link

That is nice, please allow this University comment. Thanks

Reasons:
  • Blacklisted phrase (0.5): Thanks
  • Low length (1.5):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: schbeginner

79731060

Date: 2025-08-10 07:50:44
Score: 1
Natty:
Report link
from pdf2image import convert_from_path

# Convert PDF to images
images = convert_from_path("/mnt/data/Anish_Kundali.pdf")

# Save images
image_paths = []
for i, img in enumerate(images):
    path = f"/mnt/data/Anish_Kundali_page_{i+1}.png"
    img.save(path, "PNG")
    image_paths.append(path)

image_paths
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: 7ME07 ANISH KHAIRE

79731045

Date: 2025-08-10 07:11:36
Score: 5.5
Natty: 4.5
Report link

Opa não está indo algo

A fala comigo

Está dando operação completa com erros

Já tirei os APK do Chrome

Reasons:
  • Blacklisted phrase (1): está
  • Blacklisted phrase (1): Está
  • Blacklisted phrase (1): não
  • Low length (1):
  • No code block (0.5):
  • Low reputation (1):
Posted by: GABRIEL CONCEIÇÃO DOS SANTOS