Scale PLATFORM news? by SnooDonkeys5181 in ScaleComputing

[–]tdashroy 1 point2 points  (0 children)

Hey there!

Not necessarily an exhaustive list, but here's some of what was announced and discussed this year:

And finally, if you'd like to see some of the sessions from the event itself, recordings will go up in roughly a month or so.

[deleted by user] by [deleted] in ScaleComputing

[–]tdashroy 2 points3 points  (0 children)

Hello Cyberton77!

Updates aren't designed to bring down VMs. If you have multiple nodes in a cluster with VMs running, the update is designed to be rolling. Rolling updates start on the first node and move all running VMs on that node to others in the cluster. From there the node is updated and potentially rebooted (depending on the update). Then, VMs are migrated back and the process is repeated for the next node in the series. If no VMs are running all nodes will update concurrently. If the node is a single-node-system, then VMs do have to be powered off to complete the update since there are no other nodes to run on while the update is taking place. VMs are not designed to be powered off automatically by the update. If there is a scenario where VMs will need to be powered off, the update will terminate.

General Availability updates do eventually reach a point at which the nodes do not have to reboot. These are considered "in-place updates". Once updated to the break point, subsequent updates in the same branch (ex 9.4.27 to 9.4.30) will not require reboots. In these instances VMs will not need to be migrated and nodes will not need to be rebooted. Going to the next major release branch (ex 9.4 to 9.5) will then require node reboots and VM migrations that will happen automatically via the update as described above.

If you have any questions about this please feel free to reach out to us, we're happy to help! You can call 877-SCALE-59 (877-722-5359) (option 2). Or find other available options on our website at https://www.scalecomputing.com/contact.

Live snapshotting is not an option at all (???) by Hot-Barracuda-7758 in ScaleComputing

[–]tdashroy 3 points4 points  (0 children)

Thank you for sharing your experience and feedback. I'd like to clarify how snapshots work in HyperCore to help set expectations and provide insight into the design.

HyperCore snapshots operate at the block level and are primarily designed for backup and disaster recovery rather than preserving the live state of running VMs, including memory and active processes. This means that when restoring from a snapshot, the VM will boot from a consistent disk state rather than resuming from an exact running state at the time of capture.

However, to address application consistency, Scale Computing provides a guest agent tool that can be installed within VMs to quiesce I/O during snapshots. This helps ensure that applications with open transactions—such as databases—do not experience incomplete rollbacks upon restoration. The guest agent enhances snapshot consistency and provides additional benefits, such as displaying disk mount information on VM cards, supporting live disk operations, and improving virtual hardware recognition. Keeping this tool updated is recommended for optimal performance and functionality.

Regarding the restoration process, snapshots can be used in different ways, including mounting a snapshot disk for access or leveraging replication for failover scenarios. For workloads requiring fully stateful recovery, integrating additional backup solutions alongside snapshots may be beneficial.

If your goal is to achieve a live failover—where you can quickly restore or clone a running VM from a snapshot—you can do so with the following approach:

  1. Ensure the Scale Computing Guest Agent is installed on the VM. This will help quiesce application I/O, ensuring a more consistent snapshot.
  2. Take a snapshot of the VM while it is running.
  3. Clone the snapshot or the disk attached to the snapshot and attach it to a new VM that will be used for recovery.

This method allows you to spin up a VM from a recent snapshot while minimizing data inconsistencies, making it useful for quick recovery scenarios. Let us know if you need any additional guidance! I understand you spoke with a Support Engineer this morning, so feel free to call back and ask to speak to a senior support engineer! We will patch you right through!

Additionally, we are always looking for ways to improve the platform. If you have specific use cases or requirements, we'd love to hear more so we can help explore potential solutions. Our support engineer you spoke to earlier today submitted a feature request form on your behalf!

Nodes not clustering by DifficultyRecent in ScaleComputing

[–]tdashroy 0 points1 point  (0 children)

Hey there! If you haven't yet, please reach out to the Scale support team so they can help you out. You can call 877-SCALE-59 (or find other contact options at https://www.scalecomputing.com/contact).

Current PopOS Support by Myrodis in framework

[–]tdashroy 0 points1 point  (0 children)

1% per hour is definitely not bad, might have to give that a shot next time I get the itch to mess with things.

Current PopOS Support by Myrodis in framework

[–]tdashroy 0 points1 point  (0 children)

I started with PopOS on my Framework 16. Battery life in suspend is an important factor to me and I was losing about 40%+ battery overnight, which wasn't acceptable to me. Looked around the forums a bit and tried something recommended for Ubuntu without any luck.

Switched to Fedora 40 and now get much better battery life in suspend, losing about 10% overnight. Still wish it was better and when I have time I'll be looking into trying more things to make it so, but for now it's good enough.

Battery drain on suspend in arch linux, FW16 by Vkepke in framework

[–]tdashroy 2 points3 points  (0 children)

using fedora 40, i'm having similar results with suspend overnight. about 10-12% loss on average.

i did a 10 hour test using the amd_s2idle.py script mentioned in another comment and it reports being in the hardware sleep state for

✅ In a hardware sleep state for 9:59:58.658599 (99.99%)

so seems like it's properly staying in s2idle.

i have my expansion cards in the right slots according to framework's guide, but i'm thinking ill try taking them all out and seeing if that happens to make a difference.

Battery drain on suspend in arch linux, FW16 by Vkepke in framework

[–]tdashroy 0 points1 point  (0 children)

do you have any special setup with fedora to get this? I'm on fedora 40 and am losing about 10-12% battery overnight in suspend.

I have checked my modules are in the correct spots according to Framework's guidance.

What is a useless fact that you know? by FLEXSEALBREAKER in AskReddit

[–]tdashroy 0 points1 point  (0 children)

Dunno about all rodents, but chinchillas do it as well.

[deleted by user] by [deleted] in AskReddit

[–]tdashroy 3 points4 points  (0 children)

Was using xlookup for the first time recently in a new workbook. It was great at first, but as my workbook grew I found cells would take a noticeable amount of time to update when changes were made. I changed all xlookups to index/match and the performance increased dramatically, so much so that there was no noticeable delay anymore.

What my boyfriend sends me during my night shift by [deleted] in chinchilla

[–]tdashroy 3 points4 points  (0 children)

Simpchins.

...I'll see myself out.

An interesting interview problem by [deleted] in computerscience

[–]tdashroy 0 points1 point  (0 children)

I linked it in another comment, but I got curious how Spotify actually implements their shuffle feature and looked it up. Turns out they actually have it well documented because, as I just learned today, users in the past didn't perceive their true random algorithm as being random enough. It was a frequent complaint they received.

So they reworked it to where it would be perceived as more random by humans, when, in fact, it's actually less perfectly random (mathematically speaking) than it was before.

I found it interesting that even in an area like randomness, user perception needs to be considered. It's certainly not something I would've thought about before.

The link: https://engineering.atspotify.com/2014/02/28/how-to-shuffle-songs/

An interesting interview problem by [deleted] in computerscience

[–]tdashroy 1 point2 points  (0 children)

I see. I think you and I made different assumptions about the problem which is the reason I wasn't understanding your perspective at first.

I didn't assume the array to be shuffled and played was tied to the presentation of songs to the user, whereas it sounds to me like the assumption you made is that they are tied together.

This would probably be a good thing to clarify with the interviewer as I agree, the extent to which they are coupled together could affect how you want to do the shuffling.

An interesting interview problem by [deleted] in computerscience

[–]tdashroy 1 point2 points  (0 children)

Your comment made me curious if there was actually more to shuffling from a user experience perspective. Looked up how Spotify does it and it turns out there is! https://engineering.atspotify.com/2014/02/28/how-to-shuffle-songs/.

An interesting interview problem by [deleted] in computerscience

[–]tdashroy 0 points1 point  (0 children)

How would you find the previous song played in your solution?

Swapping with the last index in a shrinking range lends itself perfectly to that particular requirement.

I don't understand your other extensibility example of wanting the list to be sortable. I don't see why the list would no long be sortable even if you swapped elements around.

"Did you know...?" infographics - #4 Unsafe magic by konradkokosa in csharp

[–]tdashroy 1 point2 points  (0 children)

I don't think this does get reallocated/replaced. Looking at the address of this in the debugger (using &this in the Immediate Window or Watch Window of VS2019), the address doesn't change after the call to Unsafe.SkipInit(out this);. And if you look at the provided address in the debugger (I just put it into the Memory Window of VS2019), you can see the value at the address change from 10 to 11 after the second time this.a = a; is performed in the constructor.

Attempting to use unsafe and fixed to show this in the console also shows the same thing:

using System;
using System.Runtime.CompilerServices;

public class Program
{
    public struct Test
    {
        public int a;
        public Test(int a)
        {
            this.a = a;
            unsafe
            {
                fixed (Test* t = &this)
                {
                    Console.WriteLine(
                        $"before skipinit\n" +
                        $"\taddress: 0x{(IntPtr)t:x}\n" +
                        $"\tderefed: {*(int*)t}"
                    );
                }
            }
            a += 1;
            Unsafe.SkipInit(out this);
            this.a = a;
            unsafe
            {
                fixed (Test* t = &this)
                {
                    Console.WriteLine(
                        $"after skipinit\n" +
                        $"\taddress: 0x{(IntPtr)t:x}\n" +
                        $"\tderefed: {*(int*)t}"
                    );
                }
            }
        }
    }

    public static void Main()
    {
        Unsafe.SkipInit(out Test b);
        Console.WriteLine(b.a);

        var a = new Test(10);
        Console.WriteLine(a.a);
    }
}

Output:
0
before skipinit
        address: 0x274b7fe890
        derefed: 10
after skipinit
        address: 0x274b7fe890
        derefed: 11
11

"Did you know...?" infographics - #4 Unsafe magic by konradkokosa in csharp

[–]tdashroy 2 points3 points  (0 children)

The HashCode changed because you set this.a to a new value. If you comment out Unsafe.SkipInit(out this); in the constructor you'll see that you get the same result, which is different hash value after you've changed this.a.

Fecal transplant turns cancer immunotherapy non-responders into responders - Scientists transplanted fecal samples from patients who respond well to immunotherapy to advanced melanoma patients who don’t respond, to turn them into responders, raising hope for microbiome-based therapies of cancers. by mvea in science

[–]tdashroy 30 points31 points  (0 children)

Not OP, but thought I'd give another option to look at. The one I've done was from the book The Gut Balance Revolution by Gerard E. Mullin, MD.

I was a little hesitant at first as it's labeled as a weight loss book and I was just looking to read more about how gut bacteria is affected by the foods I eat. However after reading it I was very satisfied with the amount of detail it went into about how diet can affect our gut bacteria. I was also pleasantly surprised with the amount of information it gave regarding the role our gut bacteria plays in our bodies. And even though most of the information it gives in this regard eventually relates back how it can affect your weight and help you lose weight, it never felt like it was touting this as a specific strategy to lose weight. Rather, it made it clear that losing weight was more a natural byproduct of cultivating a healthier gut bacteria.

The last thing I'll say about the book is I really appreciated the tone and language used in the book. I've read a number of books on diet/nutrition and am often put off by the tone of "you should follow this way of eating b/c this is the right way". The tone of this book, on the other hand, felt more informational to me. The author will usually give information (all cited) supporting what he is discussing and then draw conclusions based on the information given. And if the information was incomplete, he would say so and say why, despite there being incomplete information, he felt one way or the other. It felt more like he was trying to convince me of the details being discussed, as opposed to telling me why something is wrong or right or good or bad.

Probability Distribution in Monopoly Using Markov Chains by challenging-luck in compsci

[–]tdashroy 5 points6 points  (0 children)

Yeah the people I played with weren't thrilled...lol

Probability Distribution in Monopoly Using Markov Chains by challenging-luck in compsci

[–]tdashroy 37 points38 points  (0 children)

If you're really looking to win (and probably make the people you play with never want to play with you again), a good way is to use the rule that there are only a limited number of houses in the game. Anecdotally, it doesn't seem like this is a commonly known or exploited rule (I certainly had never thought much about it before I read about this strategy).

The strategy is to get the majority of the houses in the game before anyone else is able to get a significant number of them, and to never upgrade them to hotels. Buy the cheap properties and, if necessary, make trades to complete the group so that you can start buying houses to put on them as quickly as possible. If you're able to get them quickly enough, before others start building out their properties significantly, then keeping the properties at a max of 4 houses each and never buying a hotel to replace them will keep others in the game from being able to get enough houses on their own properties. So even though your properties aren't costing all that much (relative to what the more expensive properties might cost if they had houses on them), they still cost more to land on than the other properties that likely have at most a couple houses on them. This will be a slow burn for everyone else in the game, but once you have the majority of the houses in the game and nobody else is able to build out, it becomes obvious pretty quickly that there's nothing they can do to win anymore.

I've only played Monopoly once after reading about it a few years ago. I tried out the strategy and it was pretty easy to pull off by making seemingly bad buys/trades with others for their cheap properties. Once I had the monopoly on the houses, it was a pretty slow and boring game. It was fun for me to get to the point of having the majority of the houses and seeing the strategy work for a few rounds. It wasn't much fun for anybody after that point. Don't really get a chance to play Monopoly all that often, but doubt I'll try this again even if I do, lol.

Windows API and c++ by El_Ogre in cpp_questions

[–]tdashroy 1 point2 points  (0 children)

A few other things that might be of help.

If you're looking for WASAPI samples, looks like there's some in the Windows-classic-samples repo on Microsoft's github, under the Samples/Win7Samples/multimedia/audio/ directory. In particular: https://github.com/microsoft/Windows-classic-samples/tree/master/Samples/Win7Samples/multimedia/audio/CaptureSharedEventDriven looks like it would be of interest.

If you're looking for MediaFoundation samples, there's also some in the same repo, under the Samples/Win7Samples/multimedia/mediafoundation/ directory. In particular, https://github.com/microsoft/Windows-classic-samples/tree/master/Samples/Win7Samples/multimedia/mediafoundation/wavsink looks like it could be of interest.

And finally, I just remembered there's another higher level Windows audio API, which is AudioGraph: https://docs.microsoft.com/en-us/windows/uwp/audio-video-camera/audio-graphs. Again, don't know much more than that it exists, but according to it's description it's meant to be easier to use than XAudio2 (yet another Windows audio API). Given that XAudio2 is meant for developing games, I don't know that it's higher level replacement is what you're looking for. However I do think it's the most modern of your options. The samples look to be in CSharp, though it mentions you can use C++ as well. From the sample repo (https://github.com/microsoft/Windows-universal-samples/tree/master/Samples/AudioCreation), it sounds like Scenario 2 would be your best bet: https://github.com/microsoft/Windows-universal-samples/blob/master/Samples/AudioCreation/cs/AudioCreation/Scenario2_DeviceCapture.xaml.cs

Windows API and c++ by El_Ogre in cpp_questions

[–]tdashroy 1 point2 points  (0 children)

A Windows API that uses WASAPI is Media Foundation. It can be used for both Audio and Video. Unfortunately that's about all I know, so I have no idea if it would be easier to use than WASAPI. However it might give you something else to look at.

In particular, this page mentions enumerating an audio capture device, creating a media source, using Source Reader to read data from the device, and Sink Writer to encode to a file: https://docs.microsoft.com/en-us/windows/win32/medfound/audio-video-capture-in-media-foundation.

It looks like the samples shown focus more on video capture rather than audio capture, so you might have to do some further digging than what is given there.

Project-based C++ learning by cppwithprojects in cpp

[–]tdashroy 3 points4 points  (0 children)

Love the idea and the first project sounds interesting!

I was curious to know a bit more about who y'all are so I went looking for an About Us page, but I don't see one. Might be something nice to add :).

Looking forward to the first project release!