architecture – Predicted ability edge case issue

I am in the process of creating an ability system with client prediction akin to Unreal Engine 4’s Gameplay Ability System.

I found an edge case where the client’s tags that are applied from effects become out of sync with the server.

The prediction method I use is the same as detailed here.

Here is a scenario that illustrates this:

The player has 2 abilities, an ability to unsheathe their weapon, and an ability to sheathe their weapon. Each ability requires a specific tag to activate. For the unsheathe ability, it is the “Sheathed” tag. For the sheathe ability, it is the “Unsheathed” tag.

There also exist two effects that apply these tags. The UnsheatheEffect applies the “Unsheathed” tag and the SheatheEffect applies the “Sheathed” tag.

The unsheathe ability lasts for 1 second and at the end applies the UnsheatheEffect and removes the SheatheEffect. The sheathe ability does the same thing but applies the SheatheEffect and removes the UnsheatheEffect.

In this scenario, the player has a static ping of 1 second.

0 seconds: The client activates unsheathe ability. Tags {"Sheathed"}

1 second: The server activates unsheathe ability.

1 second: The client finishes unsheathe ability. Tags {"Unsheathed"}

1 second: The client proceeds to activate sheathe ability. Tags {"Unsheathed"}

2 seconds: The server finishes unsheathe ability and starts the sheathe ability.
2 seconds: The client finishes the sheathe ability. Tags {"Sheathed"}
2 seconds: The client activates the unsheathe ability. Tags {"Sheathed"}

3 seconds: The client reconciles with what happened on the server as a result of the unsheathe ability. Tags {"Unsheathed", "Sheathed"}.

The issue is that the client has already gone through the process of removing tags after abilities, but they are soon added back because of the reconciliation with the server. I am really not sure what to do about this, because the client should be in sync with the server, but it ends up just messing up the whole system.

What hypervizor to use in my case?

My laptop:

  • SSD
  • 32 RAM
  • i7-6700HQ @ 2.60GHz
  • GTX 1060 6GB

I want to have different VMs for specific things on my laptop:

  1. VM to develop on Windows (e.g., Visual Studio) with access to graphics card (CUDA, TensorRT,…)
  2. VM to develop on Linux with access to graphics card (CUDA, TensorRT,…)
  3. VM to edit videos, photoshop,…
  4. VM to play games
  5. VM for general use (web browser, outlook, word,…)
  6. VM to test applications
  7. Possibly connecting some external GPU to offload the work from my laptop’s graphics card. Since I’m new to this, I haven’t researched enough to understand how it can be done. But, this is in my plans.

What I thought:

  • As a start, I created VM environements in my host Windows OS using VirtualBox for #1 and #2, but I couldn’t access graphics card from VM.
  • I thought maybe to use dual boot, but I don’t want to deal with partitions and re-boots when I need to switch to a different VM.
  • I thought maybe to use hypervisor type 1, so the games won’t lag, but I need second laptop to access the VMs. I haven’t tested this yet. It’s based on what I could understand from people.

Questions:

  • What are the suggestions based on peoples experience in the field?
  • Is this even possible to do on one laptop? I don’t mind to have linux as a host if this is what I have to do in order to achieve this.

In IIS Request Filtering, is the case of the string important?

When in the Edit Filtering Rule dialog in IIS, is the case of the string, e.g. cast( important?

Edit Filtering Rule

We’re seeing SQL injection attack attempts that have the string in various combinations of upper- and lower-case, like cAsT(. Do we need to be specific? I would expect that the module doesn’t expect one to think of all the possible combinations but I can’t find it clearly stated as the case in any of the online re

sql server – Case statement query

How can this be re-written. somehow not able to make it right. In case statement Then and ELSE are same
would like to change it to single statement.

SELECT t.status_id status_id, (
CASE WHEN t .status_id NOT IN (SELECT status_id FROM firm_return WHERE enabled = ‘D’ and firm_id=t.firm_id)

THEN (cl.category_code + ‘-‘ + s.status_name) ELSE cl.category_code + ‘-‘ + s.status_name END) AS status_type
FROM bla bla

bitcoincore development – How does an individual access the Bitcoin Core repo and contribute to it in the case that GitHub boots Bitcoin Core or the individual off GitHub?

It is not looking like Bitcoin Core will be moving from GitHub anytime soon (unless forced to).

How does an individual access the Bitcoin Core repo and contribute to it in the case that GitHub boots Bitcoin Core or the individual off GitHub?

What should an individual do in advance to prepare for this scenario?

unity – Different implementation use case of component based approach

Inspired by this question I made a small demo for an enemy that has a HP component. Basically there is a main enemy script and a HP script that considers you died on collision and lets the enemy script know on different ways. I could think of three different ways how to let the main script know that you died and included a basic implementation of each. The focus is more on how to let the main script know that you died.

Broadcast

public class EnemyBroadcast: MonoBehaviour
{
    void HandleDeath()
    {
        Debug.Log("Died via broadcast");
    }
}

public class HPBroadcast: MonoBehaviour
{
    private void OnCollisionEnter2D(Collision2D other)
    {
        BroadcastMessage("HandleDeath");
    }
}

Pro: This seems to be the shortest code.

Con: IDE can’t see the call and you need to know the broadcastevent

Interface

public interface IDeathHandler
{
    void HandleDeath();
}

public class EnemyInterface: MonoBehaviour, IDeathHandler
{
    public void HandleDeath()
    {
        Debug.Log("Death via Interface");
    }
}

public class HPInterface: MonoBehaviour
{
    private void OnCollisionEnter2D(Collision2D other)
    {
        GetComponent<IDeathHandler>().HandleDeath();
    }
}

Pro: Not possible to forget to implement methods

Con: Possible overhead of methods, reusibility

Delegate

public class EnemyDelegate: MonoBehaviour
{
    void Start()
    {
        GetComponent<HPDelegate>().handleDeathDelegate = HandleDeath;
    }
    void HandleDeath()
    {
        Debug.Log("Died via delegate");
    }
}

public class HPDelegate: MonoBehaviour
{
    public delegate void voidDelegate();
    public voidDelegate handleDeathDelegate;
    private void OnCollisionEnter2D(Collision2D other)
    {
        handleDeathDelegate();
    }
}

Pro: Outside objects are able to observe changes/ events

Con: more complicated to setup/ longer code

Now the question is, what other ways are there in a component based approach, are there more pro/ con for each approach and when is which kind of implementation prefered over the others?

UX design case studies – User Experience Stack Exchange

I am looking for well-written and in-depth case study articles of real life UX designs. I’d like to read how other designers tackle design challenges, and how their designs solve those challenges. This can be on any type of UX designs, not limited to web/software.

What I’m not looking for:

php – ¿Cómo utilizarn switch case seleccionando input tipo radio?

Tengo lo siguiente dentro de un wizard o step:

<p><input type="radio" name="edad" value="uno" /> Producto 1</p>
<p><input type="radio" name="edad" value="dos" /> Producto 2</p>
<p><input type="radio" name="edad" value="tres" /> Producto 3</p>

Los dos primeros productos tienen un plan de suscripción iguales en precio, pero el producto 3 tiene un costo más alto. Lo que busco es implementar lo siguiente sin dar click en el submit, se muestre los planes disponibles al seleccionar sea el producto 1 ó 2, ya si selecciona el 3 muestre el caso 2.

@switch($i)
@case(1)
     <select name="plan">
     <!-- Opciones de planes -->
     <option value="1">Opción $10</option>
     <option value="2">Opción $20</option>>
     <option value="3">Opción $45</option>
</select>
    @break

@case(2)
    <select name="plan">
     <!-- Opciones de planes -->
     <option value="1">Opción $25</option>
     <option value="2">Opción $40</option>>
     <option value="3">Opción $95</option>
    @break
@endswitch

digital signature – Proving authenticity of a message from a message app in case of deletion

Say you want to prove that you received a certain message from someone.
This can be difficult because many messaging apps (like facebook messenger) allow the sender to delete messages on the recipient’s end.

Of course, you could screenshot the message, but then you still need to prove 2 things:

  1. The time of the message.
  2. The authenticity of your screenshot.

1 is easy, if you upload a hash to public databases
as described in this question: Proving creation time/date of a screenshot

2 is a bit more difficult. You’d have to prove somehow that you didn’t just forge the screenshot. Note: this is a little different than proving that it was the other person that sent it. This is proving that you received the message from a certain account.

Is there a way establish proof of this?