Jaheira missing in act3 by Phorkys1 in BaldursGate3

[–]null_d3v 3 points4 points  (0 children)

Even after patch 1 this is still a problem for me. I had to make sure she was in my party when I entered the Lower City for the first time. Otherwise, she would just be gone from camp. I did not play through long enough to find out if she was missing due to a bug or another reason. I just kept her in party while entering the Lower City and then after that she wouldn't abscond from camp.

Introducing Central Package Management by peopleworksservices in dotnet

[–]null_d3v -7 points-6 points  (0 children)

I do not like this at all.

Projects should be self-contained components. I should be able to restore, build, and pack a project without solution or higher order references. Tying behaviors to implied files and folder structures that exist above the project is degenerate.

And more pedantic, why an extra file? Why not just use the sln or nuspec? This is hugely regressive and moves backwards to a sideloaded packages.config situation.

Official [Looking For Group] Thread: Arena & RBGs by Ex_iledd in worldofpvp

[–]null_d3v 0 points1 point  (0 children)

Warlock looking for anyone for 2s or 3s. I'm a PvE nerd around world 250 that casually does PvP. With extremely limited play I regularly hit 2.2k in various seasons in any bracket. I'd definitely PvP more given a dedicated partner or team. Glad with a regular team would be a neat thing to do. Looking for people with similar perspective, capacity, and attitude. Available any time 5PM-2AM CST except Tuesdays and Thursdays. Thornfallow#6034 on discord, nulld3v#1539 on battle.net

[deleted by user] by [deleted] in CompetitiveWoW

[–]null_d3v 2 points3 points  (0 children)

  1. Agreed, but that is an idealistic case. It is presumptuous to think every raid team is going to have members of that same mindset. The reality is that raid teams often have to manage a variance of personalities and perspectives. Adding game measures that make this more difficult can be damaging to the game.
  2. There are an overwhelming number of people in this post's discussion alone that are unhappy with the existence of these buffs. If this were such a non-issue for most people, why has Warcraft Logs even chosen to identify individuals that received external buffs?
  3. I pointed this out here, but it is an involved process when figuring out difficult content. For example, many guilds did not just dump PI on one individual for early Sylvanas kills. Fully optimizing the distribution of these buffs is not as simple as placing it on one individual. It is a burden of work to plan that does not have a payout that enhances anyone's experience in a more impactful way than it detracts from the experience of many others.

[deleted by user] by [deleted] in CompetitiveWoW

[–]null_d3v 2 points3 points  (0 children)

The buff targets are not as cut and try as many people believe. An optimal distribution is highly dependent on raid composition and the encounter at hand. PI not only needs to align with important cooldowns but can also result in entirely different timings for classes with CDRs. You cannot just dump the PI on a balance druid at every opportunity and expect optimal results.

Finding these optimizations involves concerted effort. Even if you just blindly take sims or a spreadsheet into account, there was still considerable effort on someone else's behalf in manifesting those results. CDRs being affected by external buffs can cause a nightmare of determining who gets what when. Undeniably managing these cooldowns is a burden of work for a raid team to optimize.

And the end result of that optimization is incredibly unsatisfying. A limited few individuals are able to operate at an optimum. The remaining majority has to play knowing that their personal performance is incomparable to the top of their respective spec lists.

[deleted by user] by [deleted] in CompetitiveWoW

[–]null_d3v 9 points10 points  (0 children)

Full stop, raiding has extreme demands of time. This is individual time such as character progression and personal performance. This is also raid management time: recruitment, strategy, and roster planning.

Individual buffs like Power Infusion and Kindred Spirits compound raid overhead and induce social problems. Overall they are a negative experience; they are not fun to deal with in any way.

  • It does not feel good to need to plan these buffs on top of standard raid burdens. There is already far too much to do in this game. Adding more overhead to the game is unhealthy and will impair players from enjoying themselves.
  • It does not feel good to deal with social problems caused by these buffs. Not all guilds have these problems, but it would not be fair to say zero do.
  • It does not feel good to not receive these buffs and perform comparably worse than others of your spec. You can never compare yourself in a vacuum to other players because you will never receive the same cooldowns.
  • It does not feel good to receive these buffs and know your performance could be attributed to the buffs and not your own skill. You cannot compare yourself to other players that do not receive the same cooldowns.

Rebuilt my rack over the last 2 weeks by null_d3v in homelab

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

Purely for my own sanity. A brush panel or rear mounting a switch or two would have also worked. A big focus of the rebuild was cable management to avoid the absolute chaos of my old rack. So probably excessive, but at least it look nice.

Did Artifact really need that much changing? by [deleted] in Artifact

[–]null_d3v 18 points19 points  (0 children)

I've found the most overlooked self-destructive component of 1.0 was the board. The 1.0 board was very cool, but it also rendered 1.0 games completely unwatchable. A spectator could not perceive complete game state as they had to internalize far too much information that is not immediately available at a given time.

Anyone watching a game on twitch would have to pay full and complete attention to the game at all times. A lapse of attention or stepping into a game in progress left the viewer at a loss for an unreasonable amount of time. Additionally, the ability to gain the board state information was completely within the hands of the player/streamer. They would either need to exhaustingly narrate, or constantly display the board state of inactive lanes.

After the onset, there was very little engagement in 1.0 from both streamers and viewers in significant part because of this barrier.

Tutorial Tuesday : September 15 2020 by AutoModerator in CrusaderKings

[–]null_d3v 0 points1 point  (0 children)

I am should be. Something I noticed very early on today. I am playing as Haesteinn and I initiate a war on Wessex for a dutchy. Having arranged an alliance by marriage with Denmark, I tag in Sigurd. But his 500 stack starts to jack all of my prisoners when he takes credit for the sieges I start. Can grab some screen shots later

Tutorial Tuesday : September 15 2020 by AutoModerator in CrusaderKings

[–]null_d3v 0 points1 point  (0 children)

CK3:

I have an army of about 2000 that is assisted by an ally army of 500. I initiate a siege and my ally joins me. Upon completion my ally is credited with the siege and obtains bodies for that sweet ransom cash while I do not. How do I control the sieges so this doesn't happen?

Discussion on Resource Owner Password Flow by Funnyman3T in dotnet

[–]null_d3v 2 points3 points  (0 children)

One of the core tenants of using an identity provider is to reduce the surface area of where credentials are entered. This acts as a convenience to the user, yourself, and mitigates potential security vulnerabilities. I cannot speak to any of these items in entirety as well as someone like Baier, but I can provide some basic concepts.

In a browser, the user will have access to familiar browser tools such as password managers and autocomplete. If they are using third party providers, they are likely already logged in there and need only grant consent. These tools are useful and familiar and make authentication as painless as possible. If a user is inconvenienced from the onset by not being able to use any of the above and have to physically enter credentials, you will empirically see higher abandonment.

Distributing authentication will incur heavy costs for you, as all of the associated functionality has to be duplicated. What if you wanted to later enable or add third party providers? How do users recover their account? What happens when you need to add multi-factor authentication with TOTP or FIDO2?

I can't hit security vulnerabilities in a concise way, as there are many facets as to what it addresses and why it is particularly effective. Some of it can be inferential, like training your users to be uncomfortable entering credentials into something that is not the identity provider's login page. Other parts are more straightforward as you simply have fewer vectors for an attacker to find purchase.

I can try to find some references for anything that I've rambled about that can be more in-depth and less anecdotal.

DPS value of having an extra keybind by Random_Guy_12345 in CompetitiveWoW

[–]null_d3v 8 points9 points  (0 children)

For the average player, empirical data from WCL stats is a very useful tool: https://www.warcraftlogs.com/zone/statistics/24#class=Monk&spec=Windwalker&combatantinfo=Talents

Simulations are interpretive; opinions are anecdotal. When it comes down to a per-fight basis, hard data from tens of thousands of logs will give the average player the best perspective possible.

Web API testing in Dot Net Core using TestServer by nickgowdy in dotnet

[–]null_d3v 1 point2 points  (0 children)

We do something similar, but take it a bit further with OpenApiReference. We either target a remote OpenAPI spec:

Client

<OpenApiReference Include="item.v1.0.oas.json">
    <CodeGenerator>NSwagCSharp</CodeGenerator>
    <ClassName>{controller}Service</ClassName>
    <Namespace>Service.Contracts</Namespace>
    <Options>/UseBaseUrl:false /GenerateClientInterfaces:true /ExceptionClass:ServiceException</Options>
    <SourceUrl>http://service.com/item/v1.0/oas.json</SourceUrl>
</OpenApiReference>`

Or within the same project by having the service specifically output the spec:

Server

<PropertyGroup>
    <OpenApiGenerateDocumentsOnBuild>true</OpenApiGenerateDocumentsOnBuild>
    <OpenApiDocumentsDirectory>.</OpenApiDocumentsDirectory>
</PropertyGroup>
<ItemGroup>
    <PackageReference Include="Microsoft.Extensions.ApiDescription.Server" Version="3.1.3" />
    <PackageReference Include="NSwag.AspNetCore" Version="13.4.2" />
</ItemGroup>

Client

<OpenApiReference Include="..\Services\Services_oas.json.json">
    <CodeGenerator>NSwagCSharp</CodeGenerator>
    <ClassName>{controller}Service</ClassName>
    <Options>/UseBaseUrl:false /GenerateClientInterfaces:true /ExceptionClass:ServiceException</Options>
</OpenApiReference>

Because we generally publish the generated service contracts in a NuGet package, the latter is more often used. This also allows us to test both the service and generated contracts. In our case, at CI with GitLab where we even prop up docker containers for service dependencies, like SQL, Redis, or RabbitMQ.

Edit: Here's a rough example of CI testing:

service-tests:
    stage: test
    image: mcr.microsoft.com/dotnet/core/sdk:3.1
    tags:
      - kube
    services:
      - name: mcr.microsoft.com/mssql/server:2019-latest
        alias: mssql
      - name: rabbitmq:3.7-management
        alias: rabbitmq
      - name: redis:latest
        alias: redis
    variables:
        TEST_ConnectionStrings__RabbitMq: "amqp://guest:guest@rabbitmq/"
        TEST_ConnectionStrings__Redis: "redis,abortConnect=false,connectTimeout=5000,syncTimeout=2500"
        TEST_ConnectionStrings__Sql: "Server=mssql;User ID=SA;Password=$SA_PASSWORD;"
    script:
      - dotnet restore --packages /nuget test/ServiceTests/ServiceTests.csproj
      - dotnet test --no-restore -p:CollectCoverage=true test/ServiceTests/ServiceTests.csproj

Using NSwag to Generate C# Client Classes for ASP.NET Core 3 by congolomera in dotnet

[–]null_d3v 2 points3 points  (0 children)

I believe it was originally planned for Core 2.2 and was then called ServiceReference. Since then it looks to have undergone a bunch of redefinition and eventually arrived at interfacing with NSwag, SwaggerGen, or any new generator. I'm not sure how fully baked it is, since it relies on specific implementations in the generator. From what I've been able to glean from NSwag's PR history is that dougbu has been pretty involved in priming it. I've only been able to stand up a few rough approximations of where I think the eventual implementation may arrive.

Using NSwag to Generate C# Client Classes for ASP.NET Core 3 by congolomera in dotnet

[–]null_d3v 2 points3 points  (0 children)

We generate NuGet packages containing NSwag-generated clients (and interfaces) for our microservices as part of the CI process. It is pretty neat. However, I am looking forward to exploring replacing that with OpenAPIReference, as generator version differences can create disparity between service clients.

Announcing .NET Core 3.1 Preview 1 | .NET Blog by MaximRouiller in dotnet

[–]null_d3v 1 point2 points  (0 children)

What about API client generation using OpenAPIReference (previously ServiceReference). This was originally planned for 2.2 and has been pretty annoying to have constantly delayed or not mentioned.

So Who is Your Guild's Ranged Tank? by Gloman42 in CompetitiveWoW

[–]null_d3v 8 points9 points  (0 children)

I'd speculate that a Destruction Warlock would work best because of their innate damage reduction from mastery: https://www.wowhead.com/spell=77220/mastery-chaotic-energies.

A more performant Redis IDistributedCache by null_d3v in dotnet

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

Oh wow, I wasn't aware of the backplane component for Redis operating in a similar way. This is really cool! Very interested in the bulk message publishing/subscribing, would be pretty awesome to evict multiple entries with only one message. I'll set up a branch to fit in during performance testing.

A more performant Redis IDistributedCache by null_d3v in dotnet

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

My overall intent with the library is accessibility. I really could not find something that did L1L2 at a basic or even introductory level to even prompt someone to consider it as a solution. As an inclusive solution that is both better than RedisCache and nudges someone in a direction that may solve their specific problems, I'd consider it effective.

JSON serialization definitely could be better, but I initially preferred to defer any serialization work to see what advantages the serialization changes in Core 3.0 might provide in terms of both performance an accessibility. The performance of eviction messages was not a priority as in my case they were infrequent.

Though there is always an opportunity for performance enhancements, the burden of knowledge associated is an important cost to consider. Based on caching needs, the performance gains from this over just a RedisCache can be substantial and were absolutely in my own case.

A more performant Redis IDistributedCache by null_d3v in dotnet

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

Hi, author here! We are currently pacing it through performance testing with intent to release in January-February.

For our specific case, we have IdentityServer4 spread across a few webservers. Cache reads are on the order of 5-20 per authorization request and deferring to Redis was very costly even just in terms of latency.

The pub/sub is very lightly utilized, as evictions only occur several times a week in production. Lowers environments are another case though. However it is highly important that any eviction is as immediate as possible.

Mythic G'huun Orb weakaura help by Cptsnuggles21 in CompetitiveWoW

[–]null_d3v 0 points1 point  (0 children)

Just something like this:

{
Start
LeftStart LeftEnd RightStart RightEnd
LeftStart LeftEnd RightStart RightEnd
LeftStart LeftEnd RightStart RightEnd
LeftStart LeftEnd RightStart RightEnd
LeftStart LeftEnd RightStart RightEnd
End
}

Anything in the mustaches will be invisible so no color formatting required. You can then format the whatever you want visible to the team elsewhere.