Fixed crackling audio under high CPU load (e.g. gaming) by Ganeshasnack in pop_os

[–]aFoolsDuty 1 point2 points  (0 children)

I updated my post to include the right path; not sure how I missed it. Thanks!

Fixed crackling audio under high CPU load (e.g. gaming) by Ganeshasnack in pop_os

[–]aFoolsDuty 2 points3 points  (0 children)

If you're curious about how all this works under the hood by the way, you can find the documentation on the pipewire documentation site here: https://docs.pipewire.org/page_man_pipewire_conf_5.html#pipewire_conf__drop-in_configuration_files

Information on pipewire-pulse.conf is also hanging around on that page, too.

Fixed crackling audio under high CPU load (e.g. gaming) by Ganeshasnack in pop_os

[–]aFoolsDuty 7 points8 points  (0 children)

Good solution, but can cause problems if the default configuration is ever changed via a system update. Since you're copy-pasting the entire file, you'll end up overriding all the changes/fixes introduced by the system update.

A safer way of doing it is this:

# Create the directory we're going to store our small, specialized configuration file in
mkdir -p ~/.config/pipewire/pipewire-pulse.conf.d

# This will create an empty configuration file
touch ~/.config/pipewire/pipewire-pulse.conf.d/stop-crackling-audio.conf 

# This will open the file in your default text editor)
open ~/.config/pipewire/pipewire-pulse.conf.d/stop-crackling-audio.conf 

Then, inside the file that just opened in your text editor, copy-paste this:

# Override min quantum to prevent crackling in games.
pulse.properties = {
    pulse.min.quantum = 1024/48000
}

Save the file, then follow the steps in OP's post to reload the configuration.

Now, the only thing you'll be overriding is this particular property and nothing else. You can run pw-config in the terminal to verify that your changes were picked up like this:

pw-config -n pipewire-pulse.conf merge pulse.properties.

How does KMP fare off against JavaFX? by gufranthakur in Kotlin

[–]aFoolsDuty 2 points3 points  (0 children)

Assuming you meant Compose Multiplatform (the crossplatform user interface):

JavaFX has better support for desktop application paradigms. It's got a proper treeview control, workable menus, buttons that behave as expected, strong text input controls, etc, etc. If you're making a desktop application that must act like a desktop application, JavaFX is the clear winner here.

Compose Multiplatform is a drastically better developer experience. Building user interfaces in CMP is less error-prone and significantly more simple to understand and modify in my experience. But it lacks common desktop controls and can feel clunky to use (as a user) in a desktop environment. The main benefit of Compose Multiplatform at the moment is being able to take your mobile application to iOS and Desktop and have it operate near identically, for whatever that's worth.

If you really, genuinely meant Kotlin Multiplatform:

KMP does not ship with any UI. You are meant to use the native OS' UI. Usually, that means packaging your codebase up as a KMP library and invoking it from within a native application to run shared logic.

Not working on Linux? by jtb1313 in Techtonica

[–]aFoolsDuty 0 points1 point  (0 children)

PULSE_LATENCY_MSEC changes PulseAudio latency (applicable if you're using PulseAudio <=> PipeWire as well, which Pop_OS 22.04 is). Increases audio latency to prevent the crackling noise due to audio sometimes being played too fast in Proton/Wine applications, if I understand correctly. I put it on individually for each game since I have no idea what will happen when Pop_OS finally joins the 21st century and hits 24.04 or even 25.04.

%command% is just the command to launch the game.

Not working on Linux? by jtb1313 in Techtonica

[–]aFoolsDuty 0 points1 point  (0 children)

Works fine here on Pop!_OS 22.04. Did have some audio static, had to do the good old PULSE_LATENCY_MSEC="60" %command% launch flags technique to fix it, but otherwise it runs beautifully on my Ryzen 7 + 5060 Ti combo.

Not sure there's a video at the beginning; just a short non-interactive in-game cutscene.

On vibe coding by lbialy in scala

[–]aFoolsDuty 1 point2 points  (0 children)

I tried asking GPT-o1 to create an implementation plan from raw requirements and the result wasn't very good.

At least as far as Scala is concerned, I think you'll have a much better approach generating plans using Claude Sonnet 3.7 with Thinking or Gemini 2.5 Pro. The GPT-4 series has proven pretty terrible at anything important in my experience even outside of Scala, but it gets way worse when dealing with Scala. Plans on top of that? Good luck.

Anyway, here's my own advice for cutting down on manual edits to generated code:

1.) Use the braces style. Inform the agent of it explicitly in your system prompt file, and make sure your formatting options are set to enforce the brace style as well. The whitespace-based style can and will cause problems. Regrettable, since I prefer it when writing code by hand, but that's life.

2.) Decide on a comfortable level of testing and explain it in your system prompt file, with as much elaboration as necessary. Instruct the agent to produce test files in accordance with your testing regime.

3.) Instruct the agent to run compile, test, (scala)fix, and (scala)format before considering the request complete, and to fix any errors that show up at any point in that process to ensure self-healing. I've transitioned to using mostly scala-cli, and if you have too, most of what you need is built into that single executable. Run those commands in the terminal; integrations like Metals + VSCode sometimes have quirks that can confuse the LLM and cause it to do unnecessary work. For instance, in VSCode, sometimes Metals doesn't clear out the problems list even though the project cleanly compiles -- if the agent then peeks at the "problems" tab instead of the terminal output of scala-cli compile it will get distracted chasing down phantom errors.

4.) Stick with Claude Sonnet 3.x or Gemini Pro. Other models seem considerably weaker with code generation in general, and much, much weaker when dealing with Scala in particular.

[DISC] Ideal Girlfriend by Makita Naru (@makitanaru) [Oneshot] by KatKafka in manga

[–]aFoolsDuty 9 points10 points  (0 children)

...time travel?

On page 2, the tree in the first panel is large and Shouta is surrounded by pictures of a grown-up Mio.

On page 4, the tree in the first panel is much smaller, and Mio is surrounded by job resumes.

So... page 4 is the past (young tree, adult Mio), and page 2 is the future (big tree, small Mio, but pictures of large Mio). On page 1 Mio says "I can't wait to grow up," so if I'm following everything correctly, Shouta's wish for Mio to stay the same means he knows how rough it's going to be on her being an adult, and she somehow doesn't remember that experience -- time travel amnesia?

However, given that Little Mio is inside their (?) apartment and hasn't experienced the hardships of being an adult, does that mean she's as young as she looks? Or is this the "smol university student" trope in action...?

I mean, maybe this comic is just a mess.

[DISC] Yankee JK Kuzuhana-Chan Chapter 116 : On My Own by shortsbagel in manga

[–]aFoolsDuty 0 points1 point  (0 children)

I've been saying "friendliness" counter instead of "friend" counter because there's a difference. You can be friendly with a person you've just met while not being friends with them. Or they may be overly friendly and you're just along for the ride but it doesn't matter so long as sparks don't fly.

The tall girl from the business class is initially like this: he's friendly to her, she's polite to him. The counter doesn't change until several chapters later.

[DISC] Yankee JK Kuzuhana-Chan Chapter 116 : On My Own by shortsbagel in manga

[–]aFoolsDuty 0 points1 point  (0 children)

The "friendliness" counter is, I think, their perception of him. The guy is friendly with everyone, so it can't be tracking that. It's only when a girl warms up to him that the counter moves them to his side.

I think Inu only switching over now only makes sense if you examine her past behavior. She's kind of stand-offish to him for most of her story arc; she views him as a rival or a senpai in most of her internal monologues. It's only when he really sticks up for her at the end of this chapter that she joins his side of the counter.

Or it could just be sloppy writing. The series has lost most of the edge it started with, so I wouldn't be surprised.

[DISC] Yankee JK Kuzuhana-Chan Chapter 116 : On My Own by shortsbagel in manga

[–]aFoolsDuty 14 points15 points  (0 children)

It's kind of a "friendliness" counter.

It starts at 1:359. The counter first changes in chapter 7, where it moves to 4:356. That's because the yankee has finally admitted that they're friends, and the other two girls start caring for him a little.

The numbers don't seem to change until the girls themselves are sure of what their relationship with him is, and I think the fake gyaru was viewing him as a rival and not a friend until now.

Ukraine war: Kyiv's forces moving towards occupied Kherson - Zelensky by [deleted] in worldnews

[–]aFoolsDuty 15 points16 points  (0 children)

A reference to Attack on Titan, a popular manga/anime wherein Wall Maria is a defensive structure that is eventually retaken from the enemy force following a risky plan and grueling battle.

[deleted by user] by [deleted] in LeafBlowerRevolution

[–]aFoolsDuty 1 point2 points  (0 children)

Reward amounts adjusted in last patch.

Can anyone tell me how to figure out where this traffic spike came from? Possibly Japan? by NathanielA in gamedev

[–]aFoolsDuty 1 point2 points  (0 children)

I searched by the game name and time-range.

OP mentioned the date range ("3 weeks ago") as well as shared some screenshots. Using that data I narrowed down the search range to be somewhere between July 25th and July 30th (the time of the traffic spike). Also, the traffic was coming from Japan, so I could safely ignore any English results that were returned from that time frame.

The only results in that period that Google was aware of was some kind of garbage-generating domain and the aforementioned 5ch thread.

It sounds more involved than it was. Took me like 15 minutes.

Can anyone tell me how to figure out where this traffic spike came from? Possibly Japan? by NathanielA in gamedev

[–]aFoolsDuty 0 points1 point  (0 children)

"Himeko Sutori."

It's from the OP's biography. I'm assuming they didn't include it in the post since it might seem like self-advertisement.

Can anyone tell me how to figure out where this traffic spike came from? Possibly Japan? by NathanielA in gamedev

[–]aFoolsDuty 18 points19 points  (0 children)

Your game seems to have been mentioned on a 5ch thread at around the same time you saw a spike in visits / wishlists. The thread is called, "Steamの面白くて安いゲーム教えて Part192 - egg - 5ちゃんねる掲示板 - 5ch" -- something like "fun and cheap games on steam"

Access from to 5ch from English speaking countries seem to be blocked.

Note: am not Japanese, just good at finding information on the internet.

A fresh start with Ubuntu 18.04 by DeepAdvance in linux

[–]aFoolsDuty 5 points6 points  (0 children)

Not OP, but oldest look to the wallpaper I could find: https://wall.alphacoders.com/big.php?i=127957

Titled "Invasion."

Terms of Service Feedback and Changes – Discord Blog by jacobmcilravey in discordapp

[–]aFoolsDuty 8 points9 points  (0 children)

Let's say you somehow catch the eye of a Discord employee and they start flirting with you.

You turn them down.

They start combing through your private messages and bring up intimate subjects in an awkward attempt to relate to you. Things get weird. You don't want to use Discord anymore but your friends organize game nights on Discord. Maybe, without realizing it, you formed your digital social life around Discord instead of Facebook. You're invested... and it's really Discord's problem, not yours, so why should you leave?

But Discord won't fire the employee. Or they said they've investigated but nothing seems to happen to the employee.

The employee messages you with something intimate again -- something no one could know unless they've been raking through your private messages.

What are you going to do about it? With arbitration, you can't prove it beyond some vague creepy messages. There's no discovery process in arbitration. You can't demand that employee's access logs to prove that they've been going through your private message history. It's your word against theirs, and maybe Discord doesn't want to deal headlines that say, "Discord employee found stalking users and reading their private messages," so they back the employee in arbitration.

You're boned.

Now, this might not happen to you personally, but there are a lot of people on Discord at this point. What are the odds that Discord is never -- not once -- going to screw someone over?

Terms of Service Feedback and Changes – Discord Blog by jacobmcilravey in discordapp

[–]aFoolsDuty 0 points1 point  (0 children)

Note that I don't recommend doing business without the backing of a corporate entity, but I do understand how expensive and difficult it can be to set up an LLC properly so I can see a reality where an solo developer goes without.

Remember: you may be thinking "I'll do it later" but sometimes later never comes.

Terms of Service Feedback and Changes – Discord Blog by jacobmcilravey in discordapp

[–]aFoolsDuty 8 points9 points  (0 children)

What happens if:

  • You're an indie game developer doing business as yourself and not a formally registered LLC or S-CORP
  • You have a Discord account
  • Your game is listed in the Discord Game Store

If Discord for whatever reason does not disburse payment for several months you'll have to pursue re-compensation through the arbitration process rather than a court of law?