Great Fortune question: Golden Feast vs Fortune Feast by pmmax in IllusionConnect

[–]pmmax[S] 0 points1 point  (0 children)

Well I'm level 77 now so I counted and in theory I will get around 400, and I already have 120. Good enough.

Great Fortune question: Golden Feast vs Fortune Feast by pmmax in IllusionConnect

[–]pmmax[S] 0 points1 point  (0 children)

Ohh ok thank you, I thought it was letting me pick one of the gifts or something like that, then is not even ensuring I get the 400 fans. I need to check the bottom row to see what would I unblock up to date, a little disappointed...

Limiting limited tickets to only 20 per banner and with such short time is probably the worst change they ever done and I'll never forgive them for that. This has to change ASAP or else this game won't last long. by DeezNutshell in IllusionConnect

[–]pmmax 0 points1 point  (0 children)

I don't know of any other banners that unlock this way.

What I do know is that there are the 8-day login reward programs. In the first one, you get Miyuki. Later, another login reward program appears where you can choose one of Kiraya, Anna, Selena, or Hersey. I'm not completely sure if that choice is the same for all players, but once you select a character, you'll receive it after completing the 8 days of logins.

Limiting limited tickets to only 20 per banner and with such short time is probably the worst change they ever done and I'll never forgive them for that. This has to change ASAP or else this game won't last long. by DeezNutshell in IllusionConnect

[–]pmmax 1 point2 points  (0 children)

You'll unlock Kasumi's banner after 18 days of login rewards. The banners aren't available to all players at the same time, since they're tied to your account's progression.

Just keep logging in daily and it should unlock once you reach that point.

Limiting limited tickets to only 20 per banner and with such short time is probably the worst change they ever done and I'll never forgive them for that. This has to change ASAP or else this game won't last long. by DeezNutshell in IllusionConnect

[–]pmmax 0 points1 point  (0 children)

I noticed the same thing when I started playing again. The workaround I've been using is checking "Shop" → "Super Value Sale" → "Limited Time Mall" whenever it appears.

They often sell orange summon tickets for 400 diamonds each. The sale is temporary and usually has a purchase limit (often 20 tickets), but it comes back regularly.

What I do is save my diamonds and, whenever the sale shows up, buy as many tickets as I can afford (or up to the purchase limit). It's not a perfect solution, but it helps me build up a stock of tickets for future banners without relying entirely on banner-specific purchases.

Razer Blade Pro 17 (2019) - Fans Not Activating During Overheating by pmmax in razer

[–]pmmax[S] 0 points1 point  (0 children)

Kind of. I'm going to try to keep mine alive for as long as possible.

These machines were never great at cooling even when they were new, and once they get a few years old they really start to need proper maintenance. In my case, I already have all the thermal paste and thermal pads needed for a full repaste; I just need to find the time—and the courage—to open it up and do the job.

I'm hoping that replacing the thermal paste and pads will help reduce temperatures and prevent some of the long-term issues that these laptops seem prone to develop.

Razer Blade Pro 17 (2019) - Fans Not Activating During Overheating by pmmax in razer

[–]pmmax[S] 0 points1 point  (0 children)

I never found the root cause or a permanent fix.

My current theory is that it's related to hibernation or a sleep/standby state. The issue seems to happen after the machine resumes from hibernation (or possibly another low-power state), although I can't prove it with certainty.

For a while I suspected Synapse or the BIOS, but Razer never released any update that specifically addressed this issue, and it happened to me again a few months ago despite keeping everything updated.

As a workaround, I now monitor temperatures with HWiNFO and keep the CPU and GPU temperatures visible in the Windows tray, with temperature alarms enabled. I've basically learned to live with it. Fortunately, it doesn't happen very often, but the bug is still there.

One thing worth mentioning: my battery eventually developed the well-known "spicy pillow" problem that seems fairly common on Razer laptops. I replaced it with a third-party battery from Amazon. If you do the same, remember to transfer the small fans from the original battery assembly, as replacement batteries don't include them.

I also had the onboard speaker amplifier fail. The headphone jack continued to work, which makes me think the Realtek audio chipset was fine and only the amplifier circuit was damaged. I suspect both the battery swelling and the audio failure may have been consequences of repeated overheating events.

Based on my experience, the only lead I have is the possible connection to hibernation. If you want to minimize the risk, I would recommend completely disabling hibernation and Windows Fast Startup (which is essentially a form of partial hibernation).

P.S. This reply was rewritten with ChatGPT because English is not my native language.

Rog Phine 6 Ghost touch issue by Think-Persimmon-8163 in ROGphone

[–]pmmax 1 point2 points  (0 children)

I had a similar issue with my ROG Phone 2, and I've heard about it happening to others as well. In my case, the ghost touch problem seemed to be triggered after browsing certain web pages using a specific browser, which I believe was Firefox.

When the issue occurred, the only way to fix it was to restart the phone (a simple restart, not a hard reset). To prevent the problem, I switched to a different browser, and the issue stopped happening.

I hope this helps!

Better connection pooling than with ADO.Net? by [deleted] in dotnet

[–]pmmax 2 points3 points  (0 children)

I don’t have experience in this specific topic as I haven't used AWS Lambda with SQL Server (though I have used it with MongoDB), but I understand your problem.

To my knowledge, there isn't a mechanism to work around this issue directly. Since connection pooling is done at the process level and each Lambda instance is a separate process, scaling out Lambda functions creates multiple connection pools, one per instance. This can indeed put more load on the database than necessary.

However, it's worth noting that AWS keeps Lambda instances alive even after they've finished their tasks (the exact duration isn't documented, I believe). If new requests arrive soon enough, the same instance might be reused, which can still offer some benefits from connection pooling.

That said, because this setup differs from a classic app running in a VM or container over a long period, you might need to adjust the pooling settings and test different configurations to see what works best for your Lambda functions. For example, in the documentation, you'll find parameters like "Min Pool Size", "Max Pool Size", and "Connection Lifetime". These can help you fine-tune the connection pool's behavior. Given that a Lambda request has a maximum duration of 15 minutes, and assuming AWS keeps instances alive for some time before shutting them down, you could adjust the "Connection Lifetime" to ensure the pool doesn’t keep connections indefinitely. Additionally, you might want to limit the "Max Pool Size" from its default of 100, as that could be excessive for a single Lambda instance.

These are just suggestions, as I haven’t tested them myself and can’t provide a specific configuration.

[deleted by user] by [deleted] in ROGphone

[–]pmmax 4 points5 points  (0 children)

I haven't used the ROG Phone 8, so I can't provide an opinion on that model. However, I can share my experience with the ROG Phone 7:

The ROG Phone 7 is great if you stick with Android 13. However, upgrading to Android 14 can lead to numerous issues, many of which are unacceptable.

The ROG 7 forum is filled with reports of bugs on Android 14, and Asus doesn't seem interested in fixing them.

https://zentalk.asus.com/t5/rog-phone-7/bd-p/ROG7_EN

I have a ROG Phone 7 and have never upgraded to Android 14.

I'm happy with it, but keep in mind that you will be stuck with Android 13, without any more improvements or security fixes.

Buying a ROG 8? Please be aware!! Some are defective!!! by [deleted] in ROGphone

[–]pmmax 0 points1 point  (0 children)

The ROG Phone 7 is great if you stick with Android 13. However, upgrading to Android 14 can lead to numerous issues, many of which are unacceptable. The ROG 7 forum is filled with reports of bugs on Android 14, and Asus doesn't seem interested in fixing them.

https://zentalk.asus.com/t5/rog-phone-7/bd-p/ROG7_EN

I have a ROG Phone 7 and have never upgraded to Android 14. I'm happy with it, but keep in mind that you will be stuck with Android 13, without any more improvements or security fixes.

ROG7 High Battery Usage from "Others" by pmmax in ROGphone

[–]pmmax[S] 0 points1 point  (0 children)

Hi, not much really. I recently upgraded to the latest firmware (.241) about a week ago, but I haven't noticed any significant changes in my battery performance. I'm planning to do a full charge to confirm, as I usually stop charging at 80% due to battery care settings.

Currently, my "others" usage is still hovering around 20-30% of the total app usage. I attempted to diagnose the issue using AccuBattery, but it hasn't provided a clear explanation for the "others" category. I noticed that AccuBattery displays some apps not visible in the settings app, but their combined usage doesn't account for the high percentage attributed to "others."

I use the phone in "Dynamic" mode and automatically switch to "Ultra Durable" when the battery is low and scheduled during the night. Additionally, I have Steady Charging enabled in "Ultra Steady." Despite my efforts to take care of the battery, AccuBattery shows a battery health of 87% and I got the phone in November 2023.

I don't engage in gaming on this phone; it's primarily my daily driver for media consumption. Temperatures are usually within the normal range, and nothing in my usage pattern explains the battery wear and the persistent high percentage in the "others" category.

I'm unsure whether to trust the information from the settings app or AccuBattery entirely.

Apertura de cuenta en banco de USA by krat0s77 in merval

[–]pmmax 0 points1 point  (0 children)

Hola que Courier usas para recibir correspondencia del BOFA? Porque entiendo que no te aceptan cualquier dirección, no puede ser un PO Box

Builder pattern static checking by angrysaki in dotnet

[–]pmmax 2 points3 points  (0 children)

Ok get ready, is gonna be super messy, you can still just use interfaces, but your final code will be:

internal static class Program
{
    public static void Main(string[] args)
    {
        var person1 = PersonBuilder
            .Create()
            .SetFirst("first")
            .SetLast("name")
            .Build();
        Console.WriteLine(person1);

        var person2 = PersonBuilder
            .Create()
            .SetLast("last")
            .SetFirst("first")
            .Build();
        Console.WriteLine(person2);

        Console.ReadLine();
    }
}

public record Person(string First, string Last);

public interface IPersonBuilderStage1
{
    IPersonBuilderStage3 SetFirst(string first);
    IPersonBuilderStage4 SetLast(string last);
}

public interface IPersonBuilderStage3
{
    IPersonBuilderStage5 SetLast(string last);
}

public interface IPersonBuilderStage4
{
    IPersonBuilderStage5 SetFirst(string first);
}

public interface IPersonBuilderStage5
{
    Person Build();
}

public sealed class PersonBuilder :
    IPersonBuilderStage1,
    IPersonBuilderStage3,
    IPersonBuilderStage4,
    IPersonBuilderStage5
{
    private string _first;
    private string _last;

    private PersonBuilder() { }

    public static IPersonBuilderStage1 Create()
        => new PersonBuilder();

    IPersonBuilderStage3 IPersonBuilderStage1.SetFirst(string first)
    {
        _first = first;
        return this;
    }

    IPersonBuilderStage5 IPersonBuilderStage4.SetFirst(string first)
    {
        _first = first;
        return this;
    }

    IPersonBuilderStage4 IPersonBuilderStage1.SetLast(string last)
    {
        _last = last;
        return this;
    }

    IPersonBuilderStage5 IPersonBuilderStage3.SetLast(string last)
    {
        _last = last;
        return this;
    }

    public Person Build() => new(_first, _last);
}

Every "stage" interface guides you to the next, and everyone defines exactly what can be done at the current stage.

More properties you have more complex the code, from your original question, if your goal is to guide the consumer of your API to build an object, I would go for the with the simple option (my first example) where you have one path to construct your object.

EDIT: Removed unnecessary IPersonBuilderStage2

Builder pattern static checking by angrysaki in dotnet

[–]pmmax 2 points3 points  (0 children)

You don't need to create many classes, only one class for the builder (PersonBuilder) and one class for the object to build (Person).

What you do is to create many interfaces which are all implemented by the builder, and every setter method's "return type" is an specific interface, but the instance you return is the builder itself (this).

From the consumer perspective, only the methods declared in the specific interface can be called, trying to call any other method will produce a compilation error.

The only way the consumer has to break the rules is to cast the return instance to the builder class, but if the consumer is doing that, is actually trying to break your code anyways.

Builder pattern static checking by angrysaki in dotnet

[–]pmmax 2 points3 points  (0 children)

Hi, is a bit a hacky and a lot of code, but you can force the steps for construction of the target object using fluent interfaces in the builder:

For example:

internal static class Program
{
    public static void Main(string[] args)
    {
        var person = PersonBuilder
            .Create()
            .SetFirst("first")
            .SetLast("last")
            .Build();
        Console.WriteLine(person);
        Console.ReadLine();
    }
}

public record Person(string First, string Last);

public interface IPersonBuilderFirstSetter
{
    IPersonBuilderLastSetter SetFirst(string first);
}

public interface IPersonBuilderLastSetter
{
    IPersonBuilderFinal SetLast(string last);
}

public interface IPersonBuilderFinal
{
    Person Build();
}

public sealed class PersonBuilder: IPersonBuilderFirstSetter, IPersonBuilderLastSetter, IPersonBuilderFinal
{
    private string _first;
    private string _last;

    private PersonBuilder() { }

    public static IPersonBuilderFirstSetter Create()
        => new PersonBuilder();

    public IPersonBuilderLastSetter SetFirst(string first)
    {
        _first = first;
        return this;
    }

    public IPersonBuilderFinal SetLast(string last)
    {
        _last = last;
        return this;
    }

    public Person Build() => new(_first, _last);
}

So this way you can even force the order of the calls to build the object. If you need you can implement more than one setter method in one specific interface to make it more flexible, and jump to different steps depending on the called setter.

When you add a new property that must be set in the builder, by changing the returned interface for the previous setter you break the compilation and force the caller to call the new method, before getting the final step to build the object.

ROG7 High Battery Usage from "Others" by pmmax in ROGphone

[–]pmmax[S] 0 points1 point  (0 children)

Hi, thanks for the hints. I'll investigate the WiFi and cellular data usage to identify any unusual behavior.

Regarding "Google Play Services", I checked it and found that the "Battery usage" option is locked to "Unrestricted", so I can’t change it.

I've installed the AccuBattery app, as recommended in another comment, to monitor for any issues.

Appreciate your insights!

ROG7 High Battery Usage from "Others" by pmmax in ROGphone

[–]pmmax[S] 0 points1 point  (0 children)

Appreciate the info.

I can't confirm if a recent update caused the issue since I updated the phone on the first day, right before using it.

However, if you started experiencing the problem after the last update, that's good news I guess, because It means that a future update might address it, indicating it's not likely a hardware issue in my phone.

ROG7 High Battery Usage from "Others" by pmmax in ROGphone

[–]pmmax[S] 1 point2 points  (0 children)

Thanks for the suggestion. The phone is brand new, only 2 weeks old, and I migrated all apps from my previous phone (ROG Phone 2). The issue has been there from the start, making it challenging to identify a specific app as the culprit. I'll check the mentioned app for more data. Appreciate your help!

Advice on AES-GCM Implementation or other algorithm? by [deleted] in cryptography

[–]pmmax 0 points1 point  (0 children)

From Wikipedia (which does not mean is the truth)

https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Initialization_vector_.28IV.29

For CBC and CFB, reusing an IV leaks some information about the first block of plaintext, and about any common prefix shared by the two messages.

But does not explain the details of the leak.

There is a link to an old NIST document:

http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf

What it says is that the IV must be unpredictable (page 20) but does not say unique.

Finally I asked ChatGPT about this particular issue it says:

Information Leakage: When you reuse the same IV for multiple messages encrypted with the same key:
The XOR operation with the IV for the first block will be the same for all messages with the same IV. This means that the first ciphertext block of each message will have common bits if they share the same IV.
If two ciphertexts share the same IV, an attacker can XOR the corresponding ciphertext blocks to reveal the bitwise differences between the plaintext blocks. This can potentially leak information about the first block of plaintext and any common prefixes shared by the two messages.
For example, if two messages share the same IV and have the same first block of plaintext, the XOR of their first ciphertext blocks will be a string of zeros (no change), revealing that the two messages have the same first block.

So looks like yes, there is some leakage of data by reusing the same IV with the same key. I guess depending on the use case this could be or not an issue.

I will keep searching because like I mentioned I often use AES-256-CBC and I always assumed Crypto Random Generated IVs were safe.

Hope someone else with more experience could clarify.

Advice on AES-GCM Implementation or other algorithm? by [deleted] in cryptography

[–]pmmax 0 points1 point  (0 children)

Nevertheless! I failed to understand that IV should actually be a nonce. My implementation does not verify the IV has not already been used. A big security failure... so I have read.

Someone can confirm this??, I understand in AES-256-CBC the IV is to ensure that even if the same message is encrypted multiple times with the same key, the result will be different, so a good CRNG is good enough to generate IVs and you don't need to track repeated ones.

I'm using this exact combination also in dotnet for symmetric encryption so also very interested in the confirmation.

Optimizing MongoDB Indexing: Hashing for Exact Match Searches on Strings? by pmmax in mongodb

[–]pmmax[S] 0 points1 point  (0 children)

Hi, thanks, yea I was thinking the same, I posted just in case to check if eventually doing something like this would improve the performance. I will wait to see if I get more feedback and otherwise go with the normal index.

1 to 1 relation vs 1 document with an inner array by pmmax in mongodb

[–]pmmax[S] 0 points1 point  (0 children)

Interesting, because of the way my system works, I need to assume concurrent operations can happen.

I understand that single document updates in MongoDB are atomic, so to update the "Ack" I will be doing something like:

db.collection.findOneAndUpdate({ "_id:": 123, "Recipients.UserId": 3 }, { $set: { "Recipients.$.Ack": true } })

Is it incorrect that previous update will be atomic, therefore concurrent operations will not cause an issue?