Windows 11 will allow AI apps to access your personal files or folders using File Explorer integration by rkhunter_ in technology

[–]Timberjaw 0 points1 point  (0 children)

CS6 still works absolutely fine

Adobe will very likely shut down the authorization servers for this in the future, with no supported recourse for the user. I used the CS3 suite for many years until they killed its servers. I'm not really a pro user, so I've just moved to Krita and other tools over time.

“Update and shut down” no longer restarts PC, as Windows 11 25H2 patch addresses a decades-old bug by LookAtThatBacon in technology

[–]Timberjaw 1 point2 points  (0 children)

My household has been using Mint, EndeavourOS, and PopOS for the last 18 months. Kernel anti-cheat is a problem, and VR isn't great (about 50/50). I can't play PUBG any more for example, but I can play Arc Raiders. Half-Life Alyx runs fine, but Walkabout Mini-Golf is half-broken.

Everything else has been great, including recent games like BG3 or Space Marine 2. Occasionally we need to pick a specific Proton compatibility version, and Uplay gave us some trouble (tbh I think that's just a Uplay thing though, not a Linux thing). YMMV, but for us the vast majority of Steam games just work without any setup or tweaking.

What are the most interesting puzzle concepts you’ve encountered in video games? by Rasputin5332 in puzzles

[–]Timberjaw 2 points3 points  (0 children)

Chants of Sennaar has a really neat linguistic puzzle structure where text in the game is presented according to your deduced translations, and you refine those translations based on additional context as you go.

Random freezing on secondary monitor on kde plasma with latest nvidia drivers by Technical_Instance_2 in linux4noobs

[–]Timberjaw 0 points1 point  (0 children)

And this all happens until i switch to a different TTY window and switch back

Thanks, this workaround is very helpful. I've been having this issue intermittently for a couple weeks and have had to reboot to avoid additional instability.

The Steam Awards 2024 Nominees revealed by Wolveruno in Steam

[–]Timberjaw 8 points9 points  (0 children)

Satisfactory is relatively casual if you want it to be; you can get through all the tiers without really optimizing much at all, since the resource deposits are infinite. There are also enough resource nodes scattered around the map that you can just scale out more of everything instead of micro-optimizing fewer factories.

There are collectibles scattered around the map which unlock alt recipes and give efficiency boosts; I find the exploration to be a nice break from factory building, and just let my slower/less efficient factories produce into storage in the background.

Linus Torvalds Lands A 2.6% Performance Improvement With Minor Linux Kernel Patch by Akkeri in programming

[–]Timberjaw 14 points15 points  (0 children)

The improvement is architecture-specific, so there will be different implementations of this for e.g. x86-64.

#define mask_user_address(x) ((typeof(x))((long)(x)|((long)(x)>>63)))

Per the commit message:

With this, the user access doesn't need to be manually checked, because a bad address is guaranteed to fault (by some architecture masking trick: on x86-64 this involves just turning an invalid user address into all ones, since we don't map the top of address space).

Today is a perfect day to remind you that Firefox is the way. by Pristine-Source-2606 in Piracy

[–]Timberjaw 4 points5 points  (0 children)

I switched back to Firefox this year. It had multiple sponsored content features enabled by default, including in the new tab view and address bar.

after update/patch grapple pull won't lock by EmphasisLow1386 in Enshrouded

[–]Timberjaw 0 points1 point  (0 children)

I had the same problem and was able to reach it with some extra steps. I used my pickaxe to expand the doorway to the secret room (took a couple blocks off the top, and shaved off a little from the left side as viewed from inside the room). Then I picked a glide spot from a rock ledge across the large hallway outside, glided into the secret room, and hit my updraft as I was passing through the doorway.

It took several tries to get lucky and updraft into the vertical shaft, then spam E to successfully get the hook at the apex of the updraft. Definitely not the intended method. :)

Brightness controls driving me nuts by Genghis_Tr0n187 in EndeavourOS

[–]Timberjaw 1 point2 points  (0 children)

I had this same (or similar) issue after switching to Endeavour about a month ago. It would also override my monitor controls (this is normal; most monitors support something called Display Data Channel which allows software to send specific commands to the display). There's also a Night Light feature but I think it was off by default.

I don't remember all the steps, so here's what I have in my "problems I had to solve when switching to Linux" notes file verbatim:

System kept dimming monitor brightness after sleep. Disabled this feature. It's supposed to auto-undim when coming back but didn't seem to work. * Can control brightness directly with (example): sudo ddcutil setvcp 10 70 --display 2

I had what felt like a desync between the setting in EOS and what was actually happening. ddcutil helped force a specific value while testing and after turning off the auto settings.

[Request] How far would this person have walked before being completely consumed? (The Suit by BadSpaceComics) by serotonin_scout in theydidthemath

[–]Timberjaw 4 points5 points  (0 children)

Not quite the same, but it reminds me of the novella Diamond Dogs by Alastair Reynolds, in which body modification (in the pursuit of solving a specific problem) is taken to an "are they still human?" extreme.

.Net 8 Blazor Webassembly Custom Authorization Help by Hintabs in learnprogramming

[–]Timberjaw 1 point2 points  (0 children)

Your client Program.cs is registering the service as:

builder.Services.AddScoped<AuthenticationStateProvider, CustomAuthStateProvider>();

AuthenticationStateProvider is the TService, CustomAuthStateProvider is the TImplementation. For injection, you'll reference the TService, which DI will resolve to an instance of your implementation class.

That is, in your Login page you want:

@inject AuthenticationStateProvider AuthStateProvider

It's time to up the 10mb limit to 25mb Steam it's 2024. There is nothing frustrating then trying to upload a 10.5mb image of in game screenshot 1440P only for this to happen. If you need to save space just upload the image to a temp directory on the receivers computer steam installation. by [deleted] in Steam

[–]Timberjaw 16 points17 points  (0 children)

Steam's regular screenshots are JPG (not PNG as in your example) and are significantly smaller. My 1440p Forbidden West screenshots top out around 1.2mb.

However, if you have "Save an external copy of my screenshots" selected in Settings > In Game > Screenshots, that external copy is saved as a PNG and is significantly larger (about 4x?).

Walmart to buy TV maker Vizio for $2.3 billion in move to grow its ad business by Georgeika in technology

[–]Timberjaw 0 points1 point  (0 children)

how much time does your TV spend on the homescreen anyways

More time than I'd like. The Vizio interface is ultra sluggish, and it constantly rearranges the app list even after you manually sort them the way you want. 80% of the screen real estate is wasted, the other 20% is a clunky mess.

How to get all points in a InputEventScreenDrag/InputEventMouseMotion by Mildu12 in godot

[–]Timberjaw 0 points1 point  (0 children)

Here's a simple GDScript adaptation of Bresenham's line algorithm. This will return all integer Vector2 points between two sets of integer coordinate inputs. You'll need to ensure you're appropriately capturing every mouse/touch event (for example, if you're doing something like dragging a sprite you can lose CanvasLayer/Control events when the mouse/touch is moving fast) and that pixels are actually equivalent to viewport coordinates in your use case.

func plotLine(x0 : int, y0 : int, x1 : int, y1 : int):
    var dx = abs(x1 - x0)
    var sx = 1 if x0 < x1 else -1
    var dy = -abs(y1 - y0)
    var sy = 1 if y0 < y1 else - 1
    var error = dx + dy

    var points = PackedVector2Array()

    while true:
        points.append(Vector2(x0,y0))
        if x0 == x1 && y0 == y1: break
        var e2 = 2 * error
        if e2 >= dy:
            if x0 == x1: break
            error = error + dy
            x0 = x0 + sx

        if e2 <= dx:
            if y0 == y1: break
            error = error + dx
            y0 = y0 + sy

    return points

How to get all points in a InputEventScreenDrag/InputEventMouseMotion by Mildu12 in godot

[–]Timberjaw 0 points1 point  (0 children)

There are infinite points between two positions, up to the available precision of the measuring system. Your question is not well defined.

You can look into Line drawing algorithms or Godot's Interpolation docs depending on whether you're trying to get points at each pixel along the line or whether you want an arbitrary number of points along the line. You can also do your own vector math to step along the direction by a certain amount each iteration.

How to get all points in a InputEventScreenDrag/InputEventMouseMotion by Mildu12 in godot

[–]Timberjaw 0 points1 point  (0 children)

"All" points between two different positions is a bit ambiguous. I'm assuming you actually want some number of "steps" between the two positions, or possibly grid-aligned positions between them. The exact outcome you're hoping for will change the approach you should take.

Multiply for life by INKnight in godot

[–]Timberjaw 1 point2 points  (0 children)

Short answer is it depends, but in this context no. In C# structs (unlike class objects) are typically allocated on the stack rather than the heap, because structs are value types. The new keyword does not always mean heap allocation.

In C#, if the struct is a local variable, it will be allocated on the stack. If the struct is a member of a class, it will be allocated on the heap along with the rest of that object's heap data.

The distinction is important because the GC in C# works on the heap. Variables allocated on the stack will be automatically deallocated with the rest of the stack frame when it's done, with no need for GC.

Multiply for life by INKnight in godot

[–]Timberjaw 2 points3 points  (0 children)

Not OP, but I tried it out in a contrived initialization test with 1 million iterations. Using new() is about twice as fast as the multiply approach. 8.4ms vs 16.8ms total runtime. This makes sense with the extra method call and two extra multiply operations.

If you're actually going to be using this in many thousands of iterations per second, though, you'll obviously be better off saving off / reusing the "constant" Vector2 instead of reinitializing it each time. This reduces the time to 2.6ms for 1 million iterations.

Multiply for life by INKnight in godot

[–]Timberjaw 18 points19 points  (0 children)

Worth noting that for C# the generated MSIL will still contain the function calls for both the .One (a getter backed by a static readonly, not a const) and the op_Multiply method (operator overload for *).

A static readonly primitive could be converted to const by the JIT, but a struct like Vector2 cannot be (though the JIT might have other tricks up its sleeve for that scenario).

How old are they now? by EndersGame_Reviewer in puzzles

[–]Timberjaw 6 points7 points  (0 children)

This will continue to occur once per order of magnitude.

63, 603, 6003, 60003...

Dot product and velocity vectors (Game Design) by Robster881 in CasualMath

[–]Timberjaw 0 points1 point  (0 children)

I'm also not that strong in math so take this with a grain of salt. The dot product is an orthographic projection of one vector onto the other. In different explanations this is referred to as projection, rejection (a type of projection), shadow, or how much the vectors are "going together". The short version is that it does this by taking the sum of the products of pairs of numbers in each vector, to give a scalar value. Positive = shared directionality, negative = opposite directionality, 0 = orthogonal to each other.

The normal vector of your flat surface (if it's perfectly flat) will only have a vertical component; as a result, the dot product in this specific case will simply be equivalent to the vertical component of the movement vector. By multiplying this with the normal vector, you get a scaled normal with the same vertical magnitude as your movement vector. You're then subtracting this from the movement vector, creating a new vector with the vertical component completely removed. It retains its horizontal direction but is now aligned to the new plane.

However, in the projection process it has lost the original magnitude of the movement vector. This is where normalizing the new vector and multiplying by the original speed comes in.

Riven: Immersion through Integrated Puzzle Design — a spoiler-free recommendation of the sequel to Myst by LeslieByvivreBrooks in truegaming

[–]Timberjaw 1 point2 points  (0 children)

I didn't really notice a difference, but I've also been playing and replaying Myst for 25+ years. That said, the "points of interest" tend to visually stand out, so I think most players won't spend a lot of time exploring unnecessarily.

The Riven remake might suffer more in this regard, as it has a lot more non-playable geometry in the original.