79756934

Date: 2025-09-05 15:08:18
Score: 2
Natty:
Report link

Explanation why and what changed I found HERE

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

79756931

Date: 2025-09-05 15:03:16
Score: 2
Natty:
Report link

It is strange but the technique with the Path.GetFullPath(...) method doesn't work for me (win 10, LinqPad). For example, Path.GetFullPath("qqq") returns: "C:\Users\Lealan\AppData\Local\Temp\LINQPad8\_qkyubspn\shadow-1\qqq". And also has other issues.

So I write own IsValidPath method:

// Copyright (c) 2025 Lealan
public static bool IsValidPath(string path, in bool canExists = false)
{
    static bool isVolume(in string volume, in bool isExists)
    {
        if (volume.Length != 1 || (isExists && !Directory.Exists($"{volume}:")))
        {
            return false;
        }

        char ch = volume.First();
        return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z');
    }

    path = path.Trim();
    if (path.Count(Path.VolumeSeparatorChar) != 1)
    {
        return false;
    }

    int volumeIndex = path.IndexOf(Path.VolumeSeparatorChar);
    if (!isVolume(path.Substring(0, volumeIndex), canExists))
    {
        return false;
    }

    path = path.Substring(volumeIndex + 1);
    if (string.IsNullOrEmpty(path))
    {
        return true;
    }

    char dirSep = path.Count(Path.DirectorySeparatorChar) > 0
        ? path.Count(Path.AltDirectorySeparatorChar) > 0
            ? '\0'
            : Path.DirectorySeparatorChar
        : path.Count(Path.AltDirectorySeparatorChar) > 0
            ? Path.AltDirectorySeparatorChar
            : '\0';
    if (dirSep == '\0' || !path.StartsWith(dirSep) || path.Contains($"{dirSep}{dirSep}"))
    {
        return false;
    }

    path = path.Trim(dirSep);
    if (string.IsNullOrEmpty(path))
    {
        return true;
    }
        
    var invalidChars = Path.GetInvalidFileNameChars();
    return !path.Split(dirSep).Any(s => s.StartsWith(' ') || s.EndsWith(' ') || invalidChars.Any(c => s.Contains(c)));
}
Reasons:
  • RegEx Blacklisted phrase (2): doesn't work for me
  • Contains signature (1):
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: Lealan

79756930

Date: 2025-09-05 15:03:16
Score: 2.5
Natty:
Report link

That's hell of a good question. I had a debate with my teacher on it. He thinks that a one-letter string is NOT a palindrome, but it makes no sense to me and I'm sure one-letter strings DO count as a palindrome.

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

79756928

Date: 2025-09-05 15:02:16
Score: 0.5
Natty:
Report link

I was using PHP mail() to try and send out "activation" emails. The mail was sending, but it wasn't coming into my mailbox. My webhost put it this way...

"So far your tests are failing because what you are using [ php mail() ], is trying to
use the server itself to send out emails and that's an outdated way of
delivering emails, since those are not authenticated, thus are rejected
as modern email providers will only accept authenticated emails coming
from the email provider the domain uses."

Basically, mail() isn't a great way to send out emails. In layman's terms ... other mail servers DON'T LIKE IT. Because its not authenticated, they may flag it your email as SPAM or a potential security risk, and reject it. So, mail() will "successfully" send it ... but it just wont go through. I'm attempting to use PHPMailer myself to resolve the situation...

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

79756918

Date: 2025-09-05 14:53:12
Score: 8 🚩
Natty: 6
Report link

Did you find a solution? I encounter the same issue

Thanks!

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

79756916

Date: 2025-09-05 14:51:11
Score: 1
Natty:
Report link

I also faced a similar issue - a java cucumber test trying to interact with an msedgedriver.exe, and then reporting the same error message: "org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: probably user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir".

It turns out that the process was running as an administrator on the windows box, rather than using a user account (with AD credentials), and that seemed to cause the issue. When we ran java using a user account, then cucumber was able to interact with the selenium web driver.

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

79756912

Date: 2025-09-05 14:49:10
Score: 3
Natty:
Report link

Clearing the corrupted database records from localhost resolved the issue for me in local.

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

79756908

Date: 2025-09-05 14:44:09
Score: 3
Natty:
Report link

there a two .gitignore and .git folder in the same folder (maybe by your nodejs client and backend folder) delete one file (especially the one whose is not in the root folder )

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

79756902

Date: 2025-09-05 14:40:08
Score: 3
Natty:
Report link

I've got this message after misswrite 'useExisting' and wrote 'useExiisting' instead (with two 'i')

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

79756886

Date: 2025-09-05 14:26:04
Score: 1
Natty:
Report link

If you have found the route, you should individually route the agent through those points.

For example, shortest route would be A->B->C, however you want the agent to move A->D->E->C. You'd need several move blocks to force the route.

Alternatively, you can have a collection of the route you chose (based on some criteria you've picked), and you loop (using a SelectOutput) on them.

Sample Flow

Reasons:
  • No code block (0.5):
  • Low reputation (0.5):
Posted by: Enrico

79756885

Date: 2025-09-05 14:26:04
Score: 4
Natty:
Report link

you can clone the repo, then it doesn‘t matter in which workspace the folder is.

Best Regards

Reasons:
  • Blacklisted phrase (0.5): Best Regards
  • Blacklisted phrase (1): Regards
  • Low length (1):
  • No code block (0.5):
  • Low reputation (1):
Posted by: Rombot-dev

79756883

Date: 2025-09-05 14:24:03
Score: 1
Natty:
Report link

I was able to resolve this by making a couple of changes to my setup as follows

Firstly, ensure that you have no typos in your tests or code.
Secondly, check the target membership for the files under test. If a file under test isn't included in the test bundle, you will encounter issues like I did. To do this, if you can't remember if you did it at the point of creating your files, you can follow these steps:

Finally, once you complete the above steps, ensure to clean your build folder. Once you are done cleaning, try to run your tests again; This should trigger a full build of the necessary files.

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

79756881

Date: 2025-09-05 14:20:02
Score: 1.5
Natty:
Report link

Answering 2019 thread in 2025, just to add another Textpad-specific option--record a 'keyboard macro'.

The macro recorder can be turned on via menu, Macros>>Record, or Ctrl+Shift+R. There is also a dark circle button, but may have to be made viewable--don't recall if it's on by default.

Begin recording at the 1st line in file, then hit the {END} key, then {ENTER}, then {RIGHT ARROW}, and end recording. You can save the macro, but if not it will be a "scratch" macro, and immediately accessible via Ctrl+R, which can be held to the end of the file. Or, from the menu, Macros>>Multiplay (Ctrl+F7), and "Repeat to end of file"<--this assumes the last row is terminated, or else it may continue looping (Esc to end). The other multi-play selections can be used too: "Specified number of times", or "Repeat through selection" (requires selecting the text).

Good luck!

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

79756877

Date: 2025-09-05 14:18:01
Score: 1.5
Natty:
Report link

Make sure to use the Enhanced Kotlin for Eclipse plugin by Vladimir V. Bychkov which is a fork of the badly maintained Kotlin Plugin for Eclipse by JetBrains.

Reasons:
  • Probably link only (1):
  • Low length (1.5):
  • No code block (0.5):
  • Single line (0.5):
  • High reputation (-2):
Posted by: howlger

79756875

Date: 2025-09-05 14:15:00
Score: 2
Natty:
Report link

You can also get word-level timestamps by using speech-to-text APIs that include timing data in their response. I've used AssemblyAI for this - their API returns timestamps for each word during transcription, so you don't need to run forced alignment as a separate step. This can be simpler if you're starting with just audio and need both the text and timing information.

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

79756869

Date: 2025-09-05 14:11:59
Score: 3
Natty:
Report link

I was having same issue(blank page), however I was using Edge before, i just change the browser from edge to chrome, page did worked in Chrome.

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

79756861

Date: 2025-09-05 14:02:56
Score: 3
Natty:
Report link

So the answer to this is simple, android studio did a false positive, the deep links did work and after some time the error is gone.

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

79756858

Date: 2025-09-05 14:00:55
Score: 4.5
Natty: 4.5
Report link

https://your-website.com/administrator/manifests/files/joomla.xml contains the version. As answered in https://joomla.stackexchange.com/a/184

Reasons:
  • Probably link only (1):
  • Low length (2):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (0.5):
Posted by: rbassett

79756857

Date: 2025-09-05 14:00:55
Score: 1
Natty:
Report link

I think there is another simpler way to copy slice \

go
newSlice := oldSice[ : ]

the [ : ] means make a copy from the first lo last element.

Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: Alaa Ahmad M. Zakaria

79756855

Date: 2025-09-05 13:57:54
Score: 3.5
Natty:
Report link

Circleboom's export retweeters feature gives you their IDs, locations, bios, follower counts, etc.

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

79756850

Date: 2025-09-05 13:51:53
Score: 3.5
Natty:
Report link

You need to put "using namespace bar" after your import line.

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

79756846

Date: 2025-09-05 13:46:51
Score: 1
Natty:
Report link

CMake 3.24 added Path Transformation generator expressions, so this can now be done with generators:

$<PATH:REMOVE_EXTENSION,$<TARGET_FILE_NAME:${lib}>>

In my case I wanted to change the extension, which is also easy to do now:

$<PATH:REPLACE_EXTENSION,$<TARGET_FILE_NAME:${lib}>,new_extension>
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Dinwiggy

79756844

Date: 2025-09-05 13:44:51
Score: 3.5
Natty:
Report link

This is solved using inspiration from https://stackoverflow.com/questions/28001878/git-fetch-unshallow-gives-fatal-unshallow-on-a-complete-repository-does-n

For Azure DevOps Build Pipelines, you need to go to the build pipelines => Edit => Triggers => YAML => Get sources

Then tick Shallow Fetch and set the depth to 2147483647 as noted by https://stackoverflow.com/a/46477285/780866

Once all this is done, re-run the pipeline and the warning in SonarQube will go away

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

79756843

Date: 2025-09-05 13:43:51
Score: 2
Natty:
Report link

You’re right — it’s wild that streaming apps don’t offer this by default. I ended up using https://tracklist.pro to move my playlists from Spotify to Apple Music, and it worked smoothly.

Reasons:
  • Whitelisted phrase (-1): it worked
  • Low length (1):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Dawrvar Huyewad

79756833

Date: 2025-09-05 13:32:47
Score: 1.5
Natty:
Report link
<Form
    ...
    scrollToFirstError={{
      behavior: "smooth",
      block: "center",
      inline: "nearest",
    }}
>
Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Swaraj Nath

79756817

Date: 2025-09-05 13:19:42
Score: 3.5
Natty:
Report link

According to the Excel forum, there is a way:

E1=MMULT(MINVERSE(A1:C3),D1:D3))

Google Sheets has the same functions available for matrix operations.

https://www.excelforum.com/excel-formulas-and-functions/494838-gaussian-elimination.html

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

79756799

Date: 2025-09-05 12:58:36
Score: 2.5
Natty:
Report link

I know Circleboom has a feature called "Export Retweeters". You can view and download the full list of retweeters who reposted a tweet. As an official X Enterprise customer, Circleboom doesn't jeopardize the safety of your Twitter account. Many tools are scams who are targeting to get your Twitter data.

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

79756798

Date: 2025-09-05 12:57:36
Score: 1.5
Natty:
Report link

I went with a workaround as I seem to have reached the limitations of go templ. While injecting content into a rendered template is possible, I faced the issue, that when trying to reach .../item/:id without previously visiting .../items/ the other page contents are not being rendered.

So I stored the data that is being displayed in a session and extract it when redirecting and rendering the new page. That way the user does not notice the reload of the contents that should remain the same when redirecting as I can preload the data from the session storage into the template.

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

79756783

Date: 2025-09-05 12:46:32
Score: 2
Natty:
Report link

I am convinced that reinstalling is the best solution. However we had a forgotten change directory ( cd ) in the .bashrc , so whatever we tried the shell never started in the expected directory.

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (0.5):
Posted by: Rudolf Starosta - Rudi

79756782

Date: 2025-09-05 12:44:31
Score: 0.5
Natty:
Report link

Using Enum.reduce/3 works as well:

map = %{
  "US" => "United States",
  "CA" => "Canada",
  "NL" => "The Netherlands"
}
Enum.reduce(map, %{}, fn {k, v}, acc ->
  Map.put(acc, v, k)
end)
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: canelle

79756780

Date: 2025-09-05 12:41:30
Score: 2
Natty:
Report link

Firstly run :
npm install --save-dev cross-env
and change
NODE_ENV=development
to
cross-env NODE_ENV=development

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

79756776

Date: 2025-09-05 12:38:29
Score: 1
Natty:
Report link

As for me i need use

onDownloadButtonClicked()

only once, for generating one report. I just removed js file, and in py file i returned route to standard

/web/pivot/export_xlsx

now, when i download any report, my changes that shoud adds only for one report, will exists in all reports, but for me its not critical.

Reasons:
  • Blacklisted phrase (0.5): i need
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (0.5):
Posted by: Anton

79756773

Date: 2025-09-05 12:35:28
Score: 2.5
Natty:
Report link

This is an old post but here’s an easy way:

  1. Install Firefox

  2. Save it to the On My iPad -> Firefox -> Downloads folder

  3. Open Firefox and select Downloads from the ‘hamburger’ (the three horizontal stacked lines)

  4. Click the ‘download’ in the list which is your html file

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

79756772

Date: 2025-09-05 12:35:28
Score: 4
Natty: 4.5
Report link

How did you go about doing the re-ordering? I am struggling with the same problem for maps, but I cannot get my ordering right without ruining the structure

for example:

This:

var strStatus = map[Status]string{
    StatusInvalid:  "Invalid",
    StatusCreated:  "Created",
    StatusDisabled: "Disabled",
    StatusActive:   "Active",
    StatusInactive: "Inactive",
}

Becomes This:

var strStatus = map[Status]string{StatusActive: "Active", StatusCreated: "Created",
    StatusDisabled: "Disabled",

    StatusInactive: "Inactive", StatusInvalid: "Invalid"}

I don't want to have to do find and replace with and search for commas and so on, so how did you go about maintaining the output format?

Reasons:
  • Blacklisted phrase (1): I am struggling
  • Blacklisted phrase (0.5): I cannot
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Ends in question mark (2):
  • Starts with a question (0.5): How did you
  • Low reputation (1):
Posted by: Kyle Norris

79756767

Date: 2025-09-05 12:29:26
Score: 1.5
Natty:
Report link

from PIL import Image

import requests

from io import BytesIO

# Đường dẫn ảnh đã tạo từ bước trước (giả định tạm là đã tải về)

# Vì môi trường không lưu ảnh trực tiếp từ image_gen, ta sẽ giả lập tạo file JPG mẫu

# Tạo 1 ảnh đen trống để giả lập kết quả (thay thế bằng ảnh đã chỉnh)

im = Image.new("RGB", (512, 512), color="black")

# Lưu với chất lượng nhẹ hơn cho điện thoại

output_path = "/mnt/data/levi_hair_mobile.jpg"

im.save(output_path, "JPEG", quality=70, optimize=True)

output_path

Reasons:
  • No code block (0.5):
  • Low reputation (1):
Posted by: Hsjs Kai

79756766

Date: 2025-09-05 12:27:25
Score: 5.5
Natty:
Report link

I have similar issues with forms in emailjs.

sendEmail(form: NgForm) {
    if (form.valid && this.formRef) {
      emailjs.sendForm('SERVICE_ID', 'TEMPLATE_ID', this.formRef.nativeElement, 'PUBLIC_KEY')
        .then(() => {
          this.successMessage = 'Your message has been sent successfully!';
          this.errorMessage = null;
          form.resetForm();
        }, (error) => {
          this.errorMessage = 'There is an error: ' + error.text;
          this.successMessage = null;
        });
    }
  }

In my code I use correct Service_ID, Template_ID and Public_key, everything works, but it always shows me that formRef is NULL!
Do someone know the solution?

Reasons:
  • Blacklisted phrase (1): I have similar
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Me too answer (2.5): I have similar issue
  • Ends in question mark (2):
  • Low reputation (1):
Posted by: Perwij Wu

79756764

Date: 2025-09-05 12:23:24
Score: 1.5
Natty:
Report link

How exactly did you create the virtual environment and how did you install the google-cloud-storage package? Did you activate the environment before executing the code?

I tried it in my WSL2 (Ubuntu) and it works:

$ mkdir test
$ cd test
$ python -m venv env
$ . env/bin/activate
$ pip install google-cloud-storage
$ echo "from google.cloud import storage" > test.py
$ python test.py
Reasons:
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • Starts with a question (0.5): How
  • Low reputation (1):
Posted by: fabriceb

79756758

Date: 2025-09-05 12:16:22
Score: 1.5
Natty:
Report link

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<array>

\<string\>A Quote\</string\>

\<string\>A Quote\</string\>

\<string\>A Quote\</string\>

</array>

</plist>

Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • Low reputation (1):
Posted by: Hshjs Njs

79756757

Date: 2025-09-05 12:15:21
Score: 0.5
Natty:
Report link

Why is this only an error in C++

As others commented above, C and C++ are different languages.

Specifically C++ is very different when it comes to creation and destruction of objects (having constructors and destructors).
Also the support for exceptions and stack unwinding makes things a lot more complicated.

Because of these (and possibly additional reasons) it makes sense to me to disallow edge cases that can complicates things unnecessarily.
And so it is invalid in C++.

is there a way I can tell GCC/Clang to allow it?

I don't think so.
But as a workaround (as @Jarod42 commented), you can enclose the definition and initialization of a in a block. This will makes it valid in C++:

int foo() {
    goto lbl;
    {   // <- block start
        int a = 4;
    }   // <- block end
lbl:
    return 5;
}

Live demo - Godbolt

Reasons:
  • Blacklisted phrase (1): is there a way
  • RegEx Blacklisted phrase (0.5): Why is this
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • User mentioned (1): @Jarod42
  • Starts with a question (0.5): Why is this on
  • High reputation (-2):
Posted by: wohlstad

79756754

Date: 2025-09-05 12:13:21
Score: 1
Natty:
Report link

I think you're not properly using postgresql concatenation syntax. Try:

AND (LOWER(DESCRIPTION_TEXT) ~* ('\y' || $4 || '\y'))
Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: Bending Rodriguez

79756746

Date: 2025-09-05 12:07:19
Score: 1.5
Natty:
Report link

This problem can be simply solved by "react-window" library for viewing huge amount of data without any performance issue.

Read about it here - https://github.com/bvaughn/react-window

This solution will effectively solve your problem, if you have all rows of fixed size. You can basically enclose the whole table inside the react-window component.

And here is the guide how to import it to your respective project- https://www.npmjs.com/package/react-window

Reasons:
  • No code block (0.5):
  • Low reputation (1):
Posted by: Karan Sharma

79756734

Date: 2025-09-05 11:43:13
Score: 2.5
Natty:
Report link

The answer is : (thx Hao Wu)

^\d{4,5}+(,\d{4,5}+)*+$

The + after \d{4,5} makes \d{4,5} possessive, I keep it to avoid backtracking to 4 numbers if 5 matched. The + after (,\d{4,5}+)* makes the group possessive so we keep progressing.

Reasons:
  • Blacklisted phrase (1): thx
  • Low length (0.5):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: Calvarin Matthieu

79756729

Date: 2025-09-05 11:36:12
Score: 2.5
Natty:
Report link

The newest method is ( Command + H ), That's all ;) Make sure you're on the simulator before using this method.

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

79756727

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

try adding the height: 100% property to html and body.

html {
  overflow: hidden;
  height: 100%;
}

body {
  overflow: auto;
  height: 100%
}

This will cure the problem, but the address bar will always be expanded.

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

79756726

Date: 2025-09-05 11:27:10
Score: 3
Natty:
Report link

Your managed server isn’t stuck due to heap/GC (your dump shows plenty of free memory). The issue is almost certainly classloading/metaspace expansion, JDBC pool initialization, or external lookups (DB/DNS/LDAP). Start with a thread dump + metaspace tuning.

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

79756719

Date: 2025-09-05 11:18:07
Score: 0.5
Natty:
Report link

I started getting this with the error This endpoint is not supported in the new Pages experience in API explorer when I switched my profile to professional mode. Switching off professional mode made the API work again.

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Single line (0.5):
  • High reputation (-1):
Posted by: Jamie Kitson

79756718

Date: 2025-09-05 11:17:07
Score: 2.5
Natty:
Report link

I am surprised the @magicandre1981's advice did not work. To resolve the "Microsoft.CSharp" warning you should add latest PackageReference of "Microsoft.CSharp" to the project which produces the warning. It will "lock" the package version and remove the warning.

There is more in another answer.

Also I suggest reading Microsoft article about how NuGet dependencies are resolved.

Reasons:
  • Blacklisted phrase (1): did not work
  • Has code block (-0.5):
  • User mentioned (1): @magicandre1981's
  • Low reputation (1):
Posted by: Maksim Fedosov

79756712

Date: 2025-09-05 11:06:04
Score: 2
Natty:
Report link

yes, just change the python version 3.10

if you are in colab then you can do it by this code. and during running time please press 1 and click enter.

!sudo apt-get update -y

!sudo apt-get install python3.10 python3.10-dev python3.10-venv -y

!sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1

!sudo update-alternatives --config python3

!sudo apt-get install python3-pip -y

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

79756706

Date: 2025-09-05 10:59:02
Score: 2
Natty:
Report link

When you use client, it means the component is running in the browser. In this case, you can't directly await fetch because every time it renders, it fetches again and goes into a loop. You have to put fetch in useEffect and store the result in state. When you don't use client, it means the component is server-side. There, you can directly await fetch because it only runs once on the server and doesn't loop again.

Reasons:
  • No code block (0.5):
  • Single line (0.5):
  • Starts with a question (0.5): When you use
  • Low reputation (0.5):
Posted by: Arash

79756703

Date: 2025-09-05 10:58:02
Score: 2.5
Natty:
Report link

After delving around , What worked for;

  1. make sure you have the ksp version with a prefix of the kotlin version

  2. Sync after adding the room library then add the ksp one and sync again, don't sync all together

  3. then ofcourse ensure you are using compatible versions of ksp and kotlin

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

79756698

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

Workaround which I don't like but I have nothing else:

Declare it @JvmField and write getter setter manually which is very redundant and prone to errors if I ever rename anything.

@Enumerated(EnumType.STRING)
@Column(nullable = false)
@JvmField
var rStatus: WebsiteStatus = WebsiteStatus.INACTIVE
fun getRStatus(): WebsiteStatus = rStatus
fun setRStatus(value: WebsiteStatus) {
  rStatus = value
}
Reasons:
  • Has code block (-0.5):
  • User mentioned (1): @JvmField
  • Self-answer (0.5):
  • Low reputation (0.5):
Posted by: judos

79756697

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

Call

event.completed();

after your dialog is closed by the user:

        dialog.addEventHandler(Office.EventType.DialogEventReceived, (arg) => {
          if ("error" in arg && arg.error === 12006) {
            event.completed();  
          }
        });

Otherwise your action will be unloaded.

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

79756695

Date: 2025-09-05 10:53:00
Score: 3
Natty:
Report link

@alex you got very close to answer but I found later that real culprit behind this was my call to that slider method. Here it was:

textOpacitySlider.addTarget(self, action: #selector(Opacity), for: .allEvents)

I am new to swift and I asked my manager that if calling for all events would be the issue, but he told me that it shouldn't create any mess but when I changed this to this:

textOpacitySlider.addTarget(self, action: #selector(Opacity), for: .touchDragInside)

It started working finely i.e. calling objc function only once! I think .allEvents was tracking

-When user touches slider
-When he changes it
-And when he left his finger up

That's why my method was being called thrice!

Reasons:
  • RegEx Blacklisted phrase (1.5): I am new
  • Long answer (-0.5):
  • Has code block (-0.5):
  • User mentioned (1): @alex
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: Muhammad Asad

79756691

Date: 2025-09-05 10:47:59
Score: 1
Natty:
Report link

Adding the following in the docker file (or settings, or whatever) fixes this. This, of course, needs to be in the FROM base AS final section

    ASPNETCORE_URLS=http://+:8080

I presume a pure function app created via a VS template doesn't set this, whereas a web app does.

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

79756680

Date: 2025-09-05 10:38:57
Score: 1
Natty:
Report link

This is the best solution on XAMPP and WAMP:

XAMPP
[mysqld]
default_character_set=utf8mb4
collation_server=utf8mb4_spanish_ci

WAMP
[mysqld]
character_set_server=utf8mb4    
collation_server=utf8mb4_spanish_ci
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: codzeus

79756678

Date: 2025-09-05 10:38:57
Score: 4.5
Natty: 4.5
Report link

ince most modern .AI files are now PDF-based, and given the advances in 2025, are there any actively maintained Python libraries (beyond ImageMagick/Uniconvertor) that support direct parsing, text extraction, or conversion of .AI files into PNG/JPEG while preserving layers and metadata under Linux?

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

79756674

Date: 2025-09-05 10:34:55
Score: 2.5
Natty:
Report link

this.cd.detectChanges();

This did the trick, injecting private cd: ChangeDetectorRef in constructor made the timely refresh of message on screen

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

79756673

Date: 2025-09-05 10:34:55
Score: 1.5
Natty:
Report link

Taking inspiration from the answer posted by jin-pendragon, I found a solution using np.minimum.reduceat. You need an array of length m containing the slice starting points (so the first element is always 0), let's call it start_indices, and then you can do:

mins = np.minimum.reduceat(myarray, start_indices)
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: emengd

79756669

Date: 2025-09-05 10:30:54
Score: 2
Natty:
Report link

There is a successor to the old popbio::logi.hist.plot function in the logihist package. Its logihist function uses ggplot2:

https://cran.r-universe.dev/logihist/doc/manual.html#logihist

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

79756658

Date: 2025-09-05 10:18:51
Score: 2
Natty:
Report link

There is a slim image available: https://airflow.apache.org/docs/docker-stack/index.html

Reasons:
  • Probably link only (1):
  • Low length (2):
  • No code block (0.5):
  • Single line (0.5):
  • High reputation (-2):
Posted by: Jarek Potiuk

79756650

Date: 2025-09-05 10:06:49
Score: 2
Natty:
Report link

I'm rendering client-side app with no SSR and the rest of the app with SSR and first loads of the pages were taking 1s. I thought the problem was with the implementation.

Check functions region, I'm using Vercel and the functions region was set to us-east-1, but my main traffic was going from eu-central-1.

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Low reputation (1):
Posted by: Ivan Harašta

79756640

Date: 2025-09-05 10:00:47
Score: 1
Natty:
Report link

Following the comment of @keyboard-corporation I'm posting the solution: use exact tu make it work, in thise cas @keyup.meta.enter.exact.

Reasons:
  • Whitelisted phrase (-2): solution:
  • Low length (1):
  • Has code block (-0.5):
  • User mentioned (1): @keyboard-corporation
  • Self-answer (0.5):
  • Single line (0.5):
  • Low reputation (0.5):
Posted by: Rémi Desgrange

79756632

Date: 2025-09-05 09:56:45
Score: 1
Natty:
Report link

I recently ran into the AWS CodeDeploy “stuck on install step” issue, which often happens when a health check detects an unhealthy target. Following advice from the Stack Overflow post, I made sure my EC2 instance and load balancer settings were correctly configured. Interestingly, I hit a similar kind of delay while updating content on the website https://bookclinics.com/article/brain-aneurysm-repair , which made the problem feel all too familiar. It reminded me how small configuration details can cause frustrating slowdowns in both deployment and website updates.

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

79756622

Date: 2025-09-05 09:48:43
Score: 0.5
Natty:
Report link

Not much common to do so, but you can write it like this:

defguard has_cards(player)
  when is_map_key(:cards, player) and :erlang.map_get(player, :cards) not in [[], nil]
defguard has_cards(player)
  when is_struct(player, Player) and :erlang.map_get(player, :cards) not in [[], nil]
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: canelle

79756598

Date: 2025-09-05 09:18:34
Score: 2.5
Natty:
Report link

Object.entries(Cars).filter(([, value]) => value === 'Nano').map(([idx]) => Number(idx))
console.log => [0, 3, 5]

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

79756595

Date: 2025-09-05 09:14:33
Score: 1
Natty:
Report link

Adding my two cents. For anyone looking at this again and who would like to be able to specify the start and end dates per stock, you can make use of the following:

Formula in A6 with a Stock | Start date | End date table/range in cells A2:C4, with Stocks listed in A2, A3, A4, and their corresponding start and end dates in B2:B4 and C2:C4, respectively.

Image of input and output


=LET(
tickers, $A$2:$A$4,
starts, $B$2:$B$4,
ends, $C$2:$C$4,
getStart, LAMBDA(tkr, XLOOKUP(tkr, tickers, starts)),
getEnd, LAMBDA(tkr, XLOOKUP(tkr, tickers, ends)),
stockPrices, LAMBDA(a, STOCKHISTORY(a, getStart(a), getEnd(a), 0, 1, 0, 1, 2, 3, 4)),
output, DROP(UNIQUE(REDUCE("", tickers, LAMBDA(x, tickers, IFNA(VSTACK(x, HSTACK("Exchange\Stock", stockPrices(tickers))), tickers)))), 1),
output
)

Credit to @JvdV and @Gimics.

Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • User mentioned (1): @JvdV
  • User mentioned (0): @Gimics
  • Low reputation (1):
Posted by: Tom

79756593

Date: 2025-09-05 09:11:32
Score: 0.5
Natty:
Report link

Thanks for highlighting the issue. I also faced the same, but in my case, the iOS implementation was missing.

ReactNativeBlobUtil.config({
        fileCache: true,
        title: '##### Recipt',
        addAndroidDownloads: {
          useDownloadManager: true,
          notification: true,
          description: 'Downloading file...',
          mime: 'application/pdf',
          path: path
        },
        path:path,          // <----- missing
        appendExt: "pdf",   // <----- missing
        IOSBackgroundTask: true,
      })
Reasons:
  • Blacklisted phrase (0.5): Thanks
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: pyTuner

79756590

Date: 2025-09-05 09:07:31
Score: 2.5
Natty:
Report link
  1. Win + R

  2. Open Regedit

  3. Find VsSetup in HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Xoreax\IncrediBuild\Builder

  4. Modify VsSetup to 0

  5. And uninstall by uninstaller

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

79756589

Date: 2025-09-05 09:06:31
Score: 1
Natty:
Report link

Ok this was in fact pretty simple but I miss it: in the subnet selection I have set some private subnet, so when the task lauch it select (randomly) one of the available subnet, and some time it take one of the private subnate that dosent have the right to reach the secret manager.

Removing these wrong subnet was the solution.

Reasons:
  • No code block (0.5):
  • Self-answer (0.5):
Posted by: Hadock

79756586

Date: 2025-09-05 09:06:31
Score: 1.5
Natty:
Report link

Actually I am also working on something like this and I am able to handle 1k uses concurently..
Can we connect on this to share our thoughts and how to discuss the real time issue and solve the same. If we all agree then we can share the google meet link to connect

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Low reputation (0.5):
Posted by: vijay sahu

79756585

Date: 2025-09-05 09:05:30
Score: 4
Natty: 4.5
Report link

Check that you don't have file with the name "hot" in your public directory.

See: https://github.com/laravel/framework/blob/12.x/src/Illuminate/Foundation/Vite.php#L225

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

79756582

Date: 2025-09-05 09:03:29
Score: 0.5
Natty:
Report link

Here is the alternative way from rails test doc https://guides.rubyonrails.org/testing.html

post articles_url, params: { article: { body: "Rails is awesome!", title: "Hello Rails" } }, headers: { Authorization: ActionController::HttpAuthentication::Basic.encode_credentials(@user.email_address, "password") }

Thank you.

Reasons:
  • Blacklisted phrase (0.5): Thank you
  • Probably link only (1):
  • Low length (0.5):
  • Has code block (-0.5):
  • High reputation (-1):
Posted by: akbarbin

79756581

Date: 2025-09-05 09:02:29
Score: 1.5
Natty:
Report link

That’s a really clear explanation 👌 — you’ve shown both why the construction avoids multiples of p and q, and why the mapping stays uniform. The note about % (p*q) being reducible to a conditional subtraction is a nice touch too; exactly the kind of detail that matters if you’re tuning for performance.

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

79756580

Date: 2025-09-05 09:00:29
Score: 1
Natty:
Report link

you have been CATTED!

      |\      _,,,---,,_
ZZZzz /,`.-'`'    -.  ;-;;,_
     |,4-  ) )-,_. ,\ (  `'-'
    '---''(_/--'  `-'\_)



                   _ |\_
                   \` ..\
              __,.-" =__Y=
            ."        )
      _    /   ,    \/\_
     ((____|    )_-\ \_-`
       `-----'`-----` `--`
Reasons:
  • Has code block (-0.5):
  • Unregistered user (0.5):
  • Low reputation (1):
Posted by: Béla

79756561

Date: 2025-09-05 08:43:23
Score: 3.5
Natty:
Report link

You can import log files in the output panel of VS Code using the "Import Log..." menu accessible by clicking on the 3 dots' button in the output panel. This feature was added in January 2025 (see changelog). They indeed support colorization.Shows the position of the "Import Log..." menu in the output panel

Reasons:
  • Probably link only (1):
  • Low length (0.5):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: Benoit Tassin

79756556

Date: 2025-09-05 08:36:21
Score: 1.5
Natty:
Report link

you have to check your php.ini file of your server.
display_errors should be on there.

or use

@ini_set('display_errors',1);

in your config file of wordpress

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

79756550

Date: 2025-09-05 08:33:20
Score: 1.5
Natty:
Report link

In my case the issue was caused due to foldering name of my repository.
I had special characters in one of the folders like this "C:\repos\shell's\App" and I was getting the exact same error.

Issue got fixed after I removed the special character (') and did a rimraf node_modules and then npm install.

Reasons:
  • Low length (0.5):
  • No code block (0.5):
  • Low reputation (0.5):
Posted by: Can Geylan

79756547

Date: 2025-09-05 08:29:19
Score: 3.5
Natty:
Report link

I know its old but here is a more modern library:
https://www.nuget.org/packages/ical.net/

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

79756542

Date: 2025-09-05 08:21:17
Score: 1
Natty:
Report link

If you got this Problem while upgrading from Tailwind v3 to v4 and you got trix installed via yarn or node.

Than just add this to your /assets/tailwind/application.css:

@plugin "@tailwindcss/typography";

@import "../stylesheets/actiontext.css";   # for overrides
@import "trix";
Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: S.Klatt

79756541

Date: 2025-09-05 08:18:16
Score: 0.5
Natty:
Report link

For linking against an .so-file you may pass it as object with option -o as you link other object files, probably with full path, as path option -L does not apply for object files.
The runtime will treat the shared library like a dll, trying to load it on startup.

Reasons:
  • Low length (0.5):
  • Has code block (-0.5):
  • Low reputation (0.5):
Posted by: Sam Ginrich

79756540

Date: 2025-09-05 08:18:16
Score: 2
Natty:
Report link

I must thank those that insisted on the anomality around the 'matrix' gem.

The resolution is as follows:

  1. for an unknown reason, 'bundle update' didn't identified that 'matrix' is required by other gems, such as 'roo' which are active in production. Heroku removed it because it was marked for dev/test.

  2. I've introduced 'matrix' directly on my Gemfile and 'bundle update' marked it for prod as well.

  3. Push was successful.

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

79756538

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

Download https://github.com/mbuilov/gnumake-windows/blob/master/gnumake-4.4.1.exe.

In Git Bash shell:
cp /C/Users/axelbb/Downloads/gnumake-4.4.1.exe /usr/bin/make.exe

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

79756532

Date: 2025-09-05 08:09:13
Score: 0.5
Natty:
Report link

enter image description here

Here, used

  1. Parse JSON action to get your data being used input

  2. For each loop - action for tables since the number of rows are dynamic

  3. Compose action to get your result

    {
      "type": "ColumnSet",
      "columns": [
        {
          "type": "Column",
          "items": [
            {
              "type": "TextBlock",
              "text": "**TimeGenerated**"
            },
            {
              "type": "TextBlock",
              "text": "2022-06-03T03:20:00Z"
            },
            {
              "type": "TextBlock",
              "text": "2022-06-03T03:20:00Z"
            }
          ]
        },
        {
          "type": "Column",
          "items": [
            {
              "type": "TextBlock",
              "text": "**_queue**"
            },
            {
              "type": "TextBlock",
              "text": "queue1"
            },
            {
              "type": "TextBlock",
              "text": "queue2"
            }
          ]
        },
        {
          "type": "Column",
          "items": [
            {
              "type": "TextBlock",
              "text": "**_messages**"
            },
            {
              "type": "TextBlock",
              "text": "8073"
            },
            {
              "type": "TextBlock",
              "text": "570"
            }
          ]
        }
      ]
    }
    
Reasons:
  • Blacklisted phrase (1): enter image description here
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Vijayamathankumar

79756516

Date: 2025-09-05 07:46:07
Score: 1
Natty:
Report link

Easy Way: Update your nvim version.

Hard Way: Replace all the bufnr with buffer

Explanation: Neovim latest uses buffer instead of bufnr. Your custom config (plugins or any file) which are updated are looking for buffer but found bufnr. So considers bufnr as function.

What I did in Linux to not mess with my custom config? I installed the latest nvim and set the path in my ~/.zshrc or ~/.bashrc file.

Reasons:
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • Low reputation (1):
Posted by: Subrajeet Maharana

79756508

Date: 2025-09-05 07:42:05
Score: 1
Natty:
Report link

This is VSCode's Language Detection. Apparently more people are using TypeScript than JavaScript on average so it defaults to the former in a situation like this. Here's what you do to change the language manually (other than just giving the file a .js name as others have suggested):

In the bottom right corner of VSCode (same line as things like "Ln X, Col Y"), you will see it says "Typescript" (if your file is currently open). Click this and you can manually change it to Javascript

VSCode's language detection uses your history to help determine the most likely file type (if you look in settings this is History Based Language Detection). So once you do this manually once or twice I assume VSCode will start to guess Javascript over Typescript when you create new files.

If you prefer, it seems like your other option is to disable the setting altogether, which again is titled Language Detection in settings.

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

79756502

Date: 2025-09-05 07:35:03
Score: 3
Natty:
Report link

I think you can directly use © inside your php code or you can get the tm copy paste code which is easy way to do.

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

79756500

Date: 2025-09-05 07:35:03
Score: 2.5
Natty:
Report link

When a parent has relative positioning, any child set to absolute will align itself within the parent’s box. This means percentages for height or top/bottom values are calculated against the parent’s dimensions. As a result, the child cannot naturally extend beyond the parent’s height. To bypass this, you’d need to remove the parent’s relative positioning, use fixed positioning, or restructure the wifi4compressed

Reasons:
  • No code block (0.5):
  • Single line (0.5):
  • Starts with a question (0.5): When a
  • Low reputation (1):
Posted by: David Laid

79756491

Date: 2025-09-05 07:18:59
Score: 0.5
Natty:
Report link

The reason why this is so difficult is that, in contrast to the majority of other widgets where the width is specified in characters (or at least, the size of an average character which is usually close enough,) the Treeview widget takes widths in pixels which is useless for the purpose of measuring text.

Furthermore, while we can use the Tkinter Font object to measure the width of some text, it doesn't account for the images or padding that can exist in a Treeview column, which eat up some of that space. So to truly fix this problem we must go through each row, getting all the fonts in use, images, and padding settings to determine the true width of the text area.

First and foremost, the script below uses a class I wrote called Once that is basically like a set except it only requires a single lookup to both insert items and check if they were in there previously. So here are the contents of once.py:

class Once:
  __slots__ = ('_obj', '_count')
  
  def __init__(self, type_=dict):
    # this class is similar to a set
    # but with the distinction we know if an added key already exists
    # with only a single lookup
    self._obj = type_() # the underlying object (anything implementing setdefault)
    self._count = 0 # infinitely increasing count
  
  def __contains__(self, item):
    return item in self._obj
  
  def __len__(self):
    return len(self._obj)
  
  def __iter__(self):
    # for a standard dictionary it would not be necessary to clarify
    # that I want the keys, but for some custom object maybe
    return iter(self.keys())
  
  def clear(self):
    self._obj.clear()
  
  def add(self, key):
    # add the key
    # returns True if key was added, False if existed before
    obj = self._obj
    
    # reset count if obj is empty
    # this must be done here instead of the other methods
    # in case obj changes underneath us
    # (for example, it's a WeakKeyDictionary and a key gets dropped)
    # it's not strictly necessary to reset count
    # particularly in Python, where we can't overflow it anyway
    # but the hope is that it keeps the count in a somewhat reasonable range
    count = self._count + 1 if obj else 1
    self._count = count
    return self._obj.setdefault(key, count) == count
  
  def discard(self, key):
    # discard the key
    # returns True if it existed, False if it did not
    return self._obj.pop(key, 0) != 0
  
  def keys(self):
    return self._obj.keys()

Alright, now for the script itself. It's quite long and complicated, so I'll post the full thing first and then walk through it step by step.

import tkinter as tk
from tkinter import ttk
from tkinter.font import Font
from contextlib import suppress
from math import ceil

import once

DEFAULT_MINWIDTH = -1

# these default numbers come from the Tk Treeview documentation
DEFAULT_TREEVIEW_INDENT = 20
DEFAULT_TREEVIEW_CELL_PADDING = (4, 0)


def padding4_widget(widget, padding):
  with suppress(TypeError):
    padding = widget.tk.splitlist(padding)
  
  if not padding:
    return [0.0, 0.0, 0.0, 0.0]
  
  def fpixels(*lengths):
    return [widget.winfo_fpixels(l) for l in lengths]
  
  # should raise TypeError is padding is just an integer
  with suppress(TypeError):
    # should raise ValueError if too many values to unpack
    try:
      left, top, right, bottom = padding
    except ValueError:
      pass
    else:
      return fpixels(left, top, right, bottom)
    
    try:
      left, vertical, right = padding
    except ValueError:
      pass
    else:
      return fpixels(left, vertical, right, vertical)
    
    try:
      horizontal, vertical = padding
    except ValueError:
      pass
    else:
      return fpixels(horizontal, vertical, horizontal, vertical)
    
    padding, = padding
  
  return fpixels(padding, padding, padding, padding)


def lookup_style_widget(widget, option, element='', state=None, **kwargs):
  style = str(widget['style'])
  
  if not style:
    style = widget.winfo_class()
  
  if element:
    style = '.'.join((style, element))
  
  if state is None:
    with suppress(tk.TclError):
      state = widget.state()
  
  return ttk.Style(widget).lookup(style, option, state=state, **kwargs)


def measure_text_width_widget(widget, width, font):
  # cast font descriptors to font objects
  if not isinstance(font, Font):
    font = Font(font=font)
  
  # find average width using '0' character like Tk does
  # see: https://www.tcl-lang.org/man/tcl8.6/TkCmd/text.htm#M21
  return width * font.measure('0', displayof=widget)


def _minwidth_treeview():
  default = DEFAULT_MINWIDTH
  
  def get(minwidth=DEFAULT_MINWIDTH):
    nonlocal default
    
    if minwidth != DEFAULT_MINWIDTH:
      return minwidth
    
    if default != DEFAULT_MINWIDTH:
      return default
    
    return (default := ttk.Treeview().column('#0', 'minwidth'))
  
  return get

get_minwidth_treeview = _minwidth_treeview()


def indents_treeview(treeview, item=None):
  if item is None: return 0
  
  def parent():
    nonlocal item
    
    # must check for empty string specifically (zero should fall through)
    return '' != (item := str(treeview.parent(item)))
  
  indents = 0
  
  while parent():
    indents += 1
  
  return indents


def measure_widths_treeview(treeview, widths, item=None):
  # get the per-treeview indent, padding and font
  indent = lookup_style_widget(treeview, 'indent')
  
  try:
    indent = treeview.winfo_fpixels(indent)
  except tk.TclError:
    indent = DEFAULT_TREEVIEW_INDENT
  
  def width_padding(padding):
    left, top, right, bottom = padding4_widget(treeview, padding)
    return left + right
  
  padding_width = width_padding(DEFAULT_TREEVIEW_CELL_PADDING)
  
  font = lookup_style_widget(treeview, 'font')
  
  if not font:
    font = 'TkDefaultFont'
  
  fonts = {font}
  
  # get the per-heading padding and font, but only if the heading is shown
  show_headings = 'headings' in [str(s) for s in treeview.tk.splitlist(treeview['show'])]
  
  if show_headings:
    padding_width = max(padding_width, width_padding(
      lookup_style_widget(treeview, 'padding', element='Heading')))
    
    font = lookup_style_widget(treeview, 'font', element='Heading')
    
    if font:
      fonts.add(font)
  
  def width_image(image):
    return int(treeview.tk.call('image', 'width', image)) if image else 0
  
  item_image_width = 0
  
  # get the per-tag padding, fonts, and images
  tags = once.Once()
  
  for child in treeview.get_children(item=item):
    for child_tag in treeview.tk.splitlist(treeview.item(child, 'tags')):
      # first check if we've already done this tag before
      # although it doesn't take very long to query a tag's configuration, it is still
      # worth checking if we've done it yet, as it is likely there are many many columns
      # but only a few tags they are collectively using
      if not tags.add(child_tag):
        continue
      
      # after confirming we have not done the tag yet, query the tag's configuration
      # ideally, this would only get the "active" tag
      # but there isn't any way to tell what is the top tag in the stacking order
      # even in the worst case scenario of a conflict though, the column will always be wide enough
      try:
        padding = treeview.tag_configure(child_tag, 'padding')
      except tk.TclError:
        pass # not supported in this version
      else:
        padding_width = max(padding_width, width_padding(padding))
      
      try:
        font = treeview.tag_configure(child_tag, 'font')
      except tk.TclError:
        pass # not supported in this version
      else:
        if font: fonts.add(font)
      
      try:
        image = treeview.tag_configure(child_tag, 'image')
      except tk.TclError:
        pass # not supported in this version
      else:
        item_image_width = max(item_image_width, width_image(image))
    
    # get the per-item image
    item_image_width = max(item_image_width,
      width_image(treeview.item(child, 'image')))
  
  # get the per-element (item/cell) padding
  item_padding_width = width_padding(
    lookup_style_widget(treeview, 'padding', element='Item'))
  
  cell_padding_width = width_padding(
    lookup_style_widget(treeview, 'padding', element='Cell'))
  
  # measure the widths
  measured_widths = {}
  
  for cid, width in widths.items():
    minwidth = DEFAULT_MINWIDTH
    
    # the width can be a sequence like (width, minwidth) which we unpack here
    # if the sequence is too short, just get the width and use default minwidth
    # otherwise the width is specified as an integer, not a sequence
    try:
      width, minwidth = width
    except ValueError:
      width, = width
    except TypeError:
      pass
    
    # a width of None means don't do this column
    if width is None: continue
    
    # we can't just get the minwidth of the current column to use here
    # otherwise, if the minwidth was set to the result of this function
    # then it would stack if this function were called multiple times
    # so here we get the real default
    # this is done after the try block above, because minwidth can be
    # manually specified as DEFAULT_MINWIDTH, explicitly meaning to use the default
    minwidth = get_minwidth_treeview(minwidth)
    
    # get the per-heading image, but only if the heading is shown
    heading_image_width = width_image(treeview.heading(cid, 'image')) if show_headings else 0
    
    # the element (item/cell) padding is added on top of the treeview/tag padding by Tk
    # so here we do the same
    # for column #0, we need to worry about indents
    # on top of that, we include the minwidth in the space width
    # this is because the indicator has a dynamic width which we can't directly get
    # but it is probably okay to assume it is safely contained in the minwidth
    # (otherwise, it'd get cut off when the column is at its minwidth)
    # so the space width (including the minwidth) is added on top of the text width
    # for all other columns (not #0,) minimum text width is the minwidth, but excluding
    # the part of it filled by space width
    # this ensures the column won't be smaller than the minwidth (but may be equal to it)
    # if the space width fills the entire minwidth, this is undesirable for the measured result
    # so in that case, the text width is, in effect, initially zero
    space_width = padding_width
    text_width = 0
    
    if cid == '#0':
      space_width += (
        item_padding_width
        + max(item_image_width, heading_image_width)
        + minwidth
        + (indent * indents_treeview(treeview, item=item))
      )
    else:
      space_width += cell_padding_width + heading_image_width
      text_width = max(text_width, minwidth - space_width)
    
    # get the text width for the font that would take up the most space in the column
    for font in fonts:
      text_width = max(text_width, measure_text_width_widget(treeview, width, font))
    
    # must use ceil here because these widths may be floats; Tk doesn't want a float for the width
    measured_widths[cid] = ceil(space_width + text_width)
  
  return measured_widths


def configure_widths_treeview(treeview, widths, item=None):
  measured_widths = measure_widths_treeview(treeview, widths, item=item)
  
  for cid, width in measured_widths.items():
    treeview.column(cid, width=width, minwidth=width, stretch=False)


def main():
  window = tk.Tk()
  
  treeview = ttk.Treeview(window, columns=(0, 1), show='headings')
  
  treeview.heading(0, text='Column 1')
  treeview.heading(1, text='Column 2')
  
  treeview.insert('', tk.END, 0, values=('Item A', 'Item B'))
  treeview.insert('', tk.END, 1, values=('Item C', 'Item D'))
  treeview.insert('', tk.END, 2, values=('Item E', 'Item F'))
  
  configure_widths_treeview(treeview, {0: 10})
  treeview.grid()
  
  window.mainloop()


if __name__ == '__main__': main()

As you can see if you just run this, the leftmost column gets set to a width of ten characters.

Okay, so what on earth is this all doing? Well, like I said, it's carving out the width of everything around the text so we can determine how much space is just the text area. The majority of the heavy lifting here is done by measure_widths_treeview, so let's go through it bit by bit.

  indent = lookup_style_widget(treeview, 'indent')
  
  try:
    indent = treeview.winfo_fpixels(indent)
  except tk.TclError:
    indent = DEFAULT_TREEVIEW_INDENT

For the leftmost "tree" column - that is, column #0 - the indentation of child items occupies space in the column that we need to subtract off the width. Here we get that. You can also see here the first use of a function I'm going to be using a lot: winfo_fpixels. This is because in Tkinter, widths can be specified not only as pixels, but also as measurements. For example, adding a 'c' after a width will cause it to be in centimetres. So, any time we deal with a screen distance, we need to ensure to convert it into a pixel width so we can cleanly add them all together.

If no indent is specified, a default value is used, stated in the documentation to be 20 pixels. As far as I know, there is no way to get this value out of Tkinter, so it just has to be hardcoded as a constant.

  def width_padding(padding):
    left, top, right, bottom = padding4_widget(treeview, padding)
    return left + right
  
  padding_width = width_padding(DEFAULT_TREEVIEW_CELL_PADDING)

The width_padding inner function is intended to get the combined width of the padding for a Treeview column. It works by calling another function, padding4_widget, which takes any of the various formats you're allowed to specify padding in for Tk (integer, tuple, space separated string...) and converts it into a tuple of pixels for each side. Then it just adds together the left and right padding to get the full padding width.

The padding_width variable is eventually going to contain the maximum padding width applied across any given row in the Treeview. To start with, we initialize it to the default padding for Treeview cells, stated in the documentation to be (4, 0). Note that the documentation for versions of Tk prior to Tk 9.0 do not state the default padding, so technically this is an implementation detail in Tk 8.6. In practice, it appears to be the same (I've measured it.) Again, this needs to just be a hardcoded constant because there is no way to get this information out of Tkinter.

  font = lookup_style_widget(treeview, 'font')
  
  if not font:
    font = 'TkDefaultFont'
  
  fonts = {font}

To be able to know the size of the text, we're going to need to know the largest font that is being shown in the Treeview. To accomplish this, we use another function in the script, lookup_style_widget, to get the default font for the Treeview, and add that to a set. If this fails, we default to TkDefaultFont which is probably a safe bet. This is a great start, but it's also possible to set the font differently for individual rows, so later we'll loop through those and add them to the set as well.

  # get the per-heading padding and font, but only if the heading is shown
  show_headings = 'headings' in [str(s) for s in treeview.tk.splitlist(treeview['show'])]
  
  if show_headings:
    padding_width = max(padding_width, width_padding(
      lookup_style_widget(treeview, 'padding', element='Heading')))
    
    font = lookup_style_widget(treeview, 'font', element='Heading')
    
    if font:
      fonts.add(font)

Building on what we just did: now that we have the default padding/font for the entire Treeview, now we get the default padding/font for the Heading, which can be set individually. However, we only do this if the heading is actually being shown, as otherwise we don't need to reserve any additional space for it anyway. splitlist is used here to convert the show option from any of the various forms it is allowed to be in (tuple, space separated string...) into a list. Often that list will then contain "Tcl Objects" which we explicitly convert to Python strings via the use of a list comprehension.

  def width_image(image):
    return int(treeview.tk.call('image', 'width', image)) if image else 0
  
  item_image_width = 0

A treeview can contain an image in its "tree" column, so like the indent, this counts towards its width and we need to subtract it off.

Usually in Tkinter to create images, we use the BitmapImage or PhotoImage objects. However here we are going to be getting an image that already previously existed off of our treeview, which will only tell us its string name. In order to get the width of an image having only its name, it is necessary to call down to the interpreter directly, so that is what we have a function to do here. item_image_width is initialized to zero, but if we encounter any image we'll set it to the size of the largest we find.

  # get the per-tag padding, fonts, and images
  tags = once.Once()
  
  for child in treeview.get_children(item=item):
    for child_tag in treeview.tk.splitlist(treeview.item(child, 'tags')):
      # first check if we've already done this tag before
      # although it doesn't take very long to query a tag's configuration, it is still
      # worth checking if we've done it yet, as it is likely there are many many columns
      # but only a few tags they are collectively using
      if not tags.add(child_tag):
        continue
      
      # after confirming we have not done the tag yet, query the tag's configuration
      # ideally, this would only get the "active" tag
      # but there isn't any way to tell what is the top tag in the stacking order
      # even in the worst case scenario of a conflict though, the column will always be wide enough
      try:
        padding = treeview.tag_configure(child_tag, 'padding')
      except tk.TclError:
        pass # not supported in this version
      else:
        padding_width = max(padding_width, width_padding(padding))
      
      try:
        font = treeview.tag_configure(child_tag, 'font')
      except tk.TclError:
        pass # not supported in this version
      else:
        if font: fonts.add(font)
      
      try:
        image = treeview.tag_configure(child_tag, 'image')
      except tk.TclError:
        pass # not supported in this version
      else:
        item_image_width = max(item_image_width, width_image(image))
    
    # get the per-item image
    item_image_width = max(item_image_width,
      width_image(treeview.item(child, 'image')))

This loops through all of the tags in use in the Treeview in order to get the max padding width, max image width, and add every encountered font to our set. We surround these in try-catch statements because some of these attributes aren't available in old versions. In particular, padding was only added in Tk 9.0, and otherwise we can expect it'll always be the default. (In practice, I have not actually tested padding here because as far as I know, Tkinter is stuck on Tk 8.6 - so basically, I'm just crossing my fingers it works with width_padding like everything else.)

This is also where we use that Once class, as it is highly likely that the same handful of tags will be shared across the whole Treeview so it would be pointless to do the same tag 10, or 100, or 1000 times extra because there are that many items.

There is unfortunately one limitation here, and that is because of tag conflicts. It is possible for the same item to have multiple tags on it, and for both of those tags to specify the same option as a different value. For example, the same item could have two tags: one stating to use Arial as the font, and another stating to use Courier. In cases like these, Tk determines which tag to use based on which one was created most recently. This information is not exposed by Tk in any way, so it isn't possible to tell which tag option is actually currently in use in the event of a conflict.

As such, if there is a tag conflict it is possible we will add a font that is not actually in use to the set and our column will end up slightly too wide. However, it is still guaranteed to be large enough to fully contain our text - there just might be a bit of extra space, which is not the end of the world.

# get the per-element (item/cell) padding
  item_padding_width = width_padding(
    lookup_style_widget(treeview, 'padding', element='Item'))
  
  cell_padding_width = width_padding(
    lookup_style_widget(treeview, 'padding', element='Cell'))

Here, we get the per-item and per-cell padding, because yes: in addition to the Treeview's default padding, and Tags which allow specifying padding on a per-row basis, we can also specify the default padding for the actual Items and Cells. The term "Item" throughout most of the Treeview documentation refers to the entire row, but in this instance it specifically refers to the "tree" column, or column #0 - its padding is added on top of the indent for that column.

minwidth = get_minwidth_treeview(minwidth)

Unlike the other constants we've needed to hardcode, it is possible to get the default minwidth for a Treeview column by just constructing a fresh one and getting the value off of it, so get_minwidth_treeview is a function to do that and then cache the result so we don't need to create a new Treeview every time we want this value.

After all this boilerplate setup, we can get to the actual core of the function.

    if cid == '#0':
      space_width += (
        item_padding_width
        + max(item_image_width, heading_image_width)
        + minwidth
        + (indent * indents_treeview(treeview, item=item))
      )
    else:
      space_width += cell_padding_width + heading_image_width
      text_width = max(text_width, minwidth - space_width)
    
    # get the text width for the font that would take up the most space in the column
    for font in fonts:
      text_width = max(text_width, measure_text_width_widget(treeview, width, font))
    
    # must use ceil here because these widths may be floats; Tk doesn't want a float for the width
    measured_widths[cid] = ceil(space_width + text_width)

As mentioned, the rules surrounding the leftmost, #0 column is different than for every other column. Here, space_width is the final result of getting all the indentation and padding: it's the width of the space around the text. text_width we calculate by measuring all the fonts we collected, using the measure_text_width_widget function, which performs the same measurement that Tk's width usually does when it's measuring in characters. We use whatever the largest value is, produced by the largest font in the Treeview.

Finally, we add back together the space_width and text_width, call ceil to turn our float back into a pixel width integer as Tkinter expects for Treeview widths, and return that out. And that's it, we now can set the width of a Treeview column in terms of character width:

configure_widths_treeview(treeview, {0: 10})

And you can also set a minwidth in pixels with a tuple:

configure_widths_treeview(treeview, {0: (10, 100)})

If you now wanted to set a width to that of the longest cell, you could just loop through your values with len to get the length of the longest string. That's trivial so I'll leave it as an exercise to the reader.

It's a good idea to leave one column without a width, otherwise none of the columns will have any "slack," so it will cause some strange resizing behaviour.

Reasons:
  • RegEx Blacklisted phrase (1): I want
  • Long answer (-1):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • Low reputation (0.5):
Posted by: tomysshadow

79756487

Date: 2025-09-05 07:08:56
Score: 5
Natty: 5
Report link

I am getting this issue on production. How to address it on production?

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

79756481

Date: 2025-09-05 06:53:52
Score: 4.5
Natty:
Report link

Click here to Download RPSC Admit card - https://s3.eu-north-1.amazonaws.com/rpsc-admit-card-download/RPSC+2nd+Grade+Admit+Card+2025+%E2%80%93+Get+Download+Link.pdf

Reasons:
  • Probably link only (1):
  • Low length (1.5):
  • No code block (0.5):
  • Single line (0.5):
  • Low reputation (1):
Posted by: educationhub

79756480

Date: 2025-09-05 06:52:52
Score: 3
Natty:
Report link

If any one is having this issue use redis_lock. Django cache will not comunicate between diferent processes, even if you use same versions in the cache.

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

79756479

Date: 2025-09-05 06:52:52
Score: 4
Natty: 4
Report link

Good job. Miss you and wish you all the very best for your future.

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

79756472

Date: 2025-09-05 06:42:49
Score: 1.5
Natty:
Report link

Apos criar seu projeto conforme o video, estando no GNAT STUDIO faça o seguinte para importar game_support:

1.baixe game support aqui: https://github.com/AdaCore/labs-material/tree/master

2.coloque a pasta game_suporte dentro de seu projeto ( o diretorio pode ficar onde desejar se quizer outro lugar )

3.No GNAT STUDIO selecione Edit > Project Propertie > Dependencies. clique no simbolo + e navegue ate o arquivo game_support.gpr. Save-o. Ele aparecerá no seu projeto igual ao video.

Reasons:
  • No code block (0.5):
  • Low reputation (1):
Posted by: A V

79756450

Date: 2025-09-05 06:00:39
Score: 0.5
Natty:
Report link

The issue is that even though you declare your encoding to be enctype="application/x-www-form-urlencoded" in the form tag, you're not actually submitting the form. Instead, you're using JQuery to collect the form data and issue an AJAX call to your endpoint with no particular encoding specified in the request header. Options:

  1. Per edub's answer above, you can fix on the server by converting from @FormParam (for use with url-encoded data to @FormDataParam (can handle either url-encoded or multipart). A nice description of the difference is here.

  2. You can also fix on the client by using the contentType option of $.ajax() to specify url-encoded form data, instead of using $.post(). API details here.

Reasons:
  • Long answer (-0.5):
  • Has code block (-0.5):
  • User mentioned (1): @FormParam
  • User mentioned (0): @FormDataParam
  • Low reputation (0.5):
Posted by: Ryan Doherty

79756448

Date: 2025-09-05 05:58:38
Score: 2
Natty:
Report link

Api is a good idea but it may cost you or you need certain certain amount to pay for it. Here i found no need of any api simply you can read all te instagram hashtags from https://insta-hashtags.com/ site then you can reorganize them inside a array and display on your api or function whereever you wants, As this websites keep change its viral hashtags or insta hashtags regularly you will get the updated or fresh one.

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

79756434

Date: 2025-09-05 05:39:33
Score: 1
Natty:
Report link

If you look in the docs

There is a step to import the custom variants

**@import "./node_modules/flyonui/variants.css";
**
Check if you are missing this in your app.css .

You can also check out the Laravel guide; it also includes a basic starter kit.

https://flyonui.com/docs/framework-integrations/laravel/

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

79756426

Date: 2025-09-05 05:27:30
Score: 1.5
Natty:
Report link

Try to restart the packagekit service.

only run this command

sudo service packagekit restart
Reasons:
  • Low length (1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Ehsan Kazemi

79756422

Date: 2025-09-05 05:18:28
Score: 4.5
Natty: 6
Report link

in my own case I used same callback for both Apple and other socialite but differentiate Apple with conditional statements and in my route I matched both post and get for the callback url, it passes the Apple but I still get user unable to login with provider (Apple), the error is from my callback method.

Please how do I get this sorted?

Reasons:
  • Blacklisted phrase (1): how do I
  • No code block (0.5):
  • Ends in question mark (2):
  • Low reputation (1):
Posted by: Aderemi Sulaiman

79756418

Date: 2025-09-05 05:15:27
Score: 1.5
Natty:
Report link

Thanks for the join suggestion. I did write a measure to find the corresponding record in the Customers table and it returned 170. Here is the measure:

Orders with no customer = calculate(DISTINCTCOUNT('Sales Data 2022'[OrderNumber]), filter('Sales Data 2022', isblank(RELATED('Customer Lookup'[CustomerKey]))))
Reasons:
  • Blacklisted phrase (0.5): Thanks
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: Laxmiprasad Iyer

79756405

Date: 2025-09-05 04:49:21
Score: 1
Natty:
Report link

Most likely your website is client-side rendered using javascript (like a React app). When google's automatic crawler looks at your page, all it sees is a blank <div id="root></div> before hydration.

Reply to google's email saying your app is client-side rendered. Usually when they get a reply they check manually, hopefully it will get solved.

Reasons:
  • No code block (0.5):
  • Low reputation (0.5):
Posted by: Ahmed Shefeer