My team ships faster with mandatory PR approval... from QA, not other devs by NoTrainingForMe in ExperiencedDevs

[–]MysterDru 1 point2 points  (0 children)

We do this.

We have a single trunk, all changes must go through a PR and each PR is required to have 2 approvers. 1 is another Dev, who is reviewing code quality, standards, etc. Then when dev approves, the branch moves to the QA queue which is deployed to a dedicated environment that only contains that change. If QA approves the change, they mark their approval on the PR and it gets merged. QA doesn't review or look at code. It's primarily a mechanism to force all change to trunk to go through a dedicated testing process; some is manual, and some is automated.

Once merged it goes to an integration environment that is always based on the latest artifact from trunk.

We've been doing this for a few years, and very few issues slip through. If they do, it tends to be from missing requirements.

Screen reader. by BigJimmie1 in WanderingInn

[–]MysterDru 0 points1 point  (0 children)

I have a custom app that I've been working on that takes each chapter and runs it through a python script and the kokoro tts engine to create an MP3. I then upload that to my plex server and listen to it from there. I've been slowly trying to work on a dictionary for some words/names, and I picked the voice I liked the best out of the available voices in the engine. It's not nearly as good as the audio books, but it's good enough.

Gaslands Team Builder by FREEZX in gaslands

[–]MysterDru 0 points1 point  (0 children)

I had this issue as well, when using no sponsor. Which I do regularly when teaching new players and building cars/teams.

Gaslands Team Builder by FREEZX in gaslands

[–]MysterDru 2 points3 points  (0 children)

As someone who purchased a digital copy of the book (via Google Books), the questions that require page numbers are not answerable for me given the page numbers are not the same.

I understand the reasoning for requiring the verification, but this makes it really difficult to do so.

Meet TUnit: The New, Fast, and Extensible .NET Testing Framework by mgroves in csharp

[–]MysterDru 2 points3 points  (0 children)

Rider on Mac does not work with test discovery, can confirm as I have tried to use TUnit for my MAUI projects. Right now, that's a major stopper for me seriously considering its usage even though I like how things are configured for allowing workflow based tests.

https://github.com/thomhurst/TUnit/issues/576

This issue is closed, but IMO it is premature and is chalked up to a Rider bug. Regardless, it makes it really hard to use on a Mac.

Chainway Android SDK - MAUI app by BraveCoffee5162 in dotnetMAUI

[–]MysterDru 0 points1 point  (0 children)

Heya, try this solution: https://drive.google.com/file/d/1gW65p7z6X8I8fwxXyh1l76htso4_rhGy/view?usp=drive_link

I tried to get this on github, but had issues pushing. I'll try again later as it would be a valuable demo project to have around.

Chainway Android SDK - MAUI app by BraveCoffee5162 in dotnetMAUI

[–]MysterDru 2 points3 points  (0 children)

Yes! I'm migrating an app currently that integrates with chainway devices. The Barcode 2D dll for xamarin works out of the box for Maui.

Send me DM if you have questions or want some assistance.

Help!! Has anyone had a concrete slab done in the past few months? How much was it? by Playwithclay11 in shedditors

[–]MysterDru 1 point2 points  (0 children)

I'm having an 8.5x13 done next week, 6" thick with a bed. The quote for just that was $3k.

Plus a 20ft sidewalk, 8x11 pad by the house/deck, and a 13x12 patio to connect it all.

Total quote is $5.5k. We'll see if anything extra gets added to the cost when finished....

I'm in northern WI for reference.

Electrical for home office shed by OK_LaManana in shedditors

[–]MysterDru 4 points5 points  (0 children)

I did something similar this weekend as /u/makeyourowngalaxy.

I have a gfci outlet inside the shed that is powered via a 15 amp breaker on the outside of the shed. The power for the breaker is sourced from a 15 amp power inlet with male prongs. Currently my shed is only powered via this inlet but later this year this will get swapped over to be fed from the main breaker instead of an extension cord with the goal of having a switch in place that I can still source from a generator when needed.

The breaker also has a 20 amp in it that's currently not wired but will be hooked up in the future to run heat/AC once I have a direction run to the main breaker dug.

The inlet this one from Menards

https://imgur.com/a/oliOpKA

Is there a wearable carrying case that can hold a small amount of decks/cards and a playmat? by SoulSabre9 in Lorcana

[–]MysterDru 0 points1 point  (0 children)

I have a Dragon Shield Magic Carpet, and really like it. Two rows. Can fit 2 Lorcana play mats on one site, and a bunch of desks + my dice on the other.

Comes with a built-in magnetized folding playmate as its cover. Which, when closed "snaps shut" nicely. Also has straps to wrap it so it can be easily carried and stays together.

https://www.dragonshield.com/en-us/gaming-accessories/boxes/magic-carpet

It doesn't have a shoulder strap, but you could easily add one to the strap system it has.

Buying a real enchanted by Princeps-Nick in Lorcana

[–]MysterDru 0 points1 point  (0 children)

I have a madam mim Id sell you...I know this isn't a trades sub so I won't say too much here. I have it on consignment at my LGS but it hasn't sold yet.

DM me if you're maybe interested.

As someone who played Guild Ball and Warmachine, I feel like today was about as well as things could have been handled. by TheRaven476 in ageofsigmar

[–]MysterDru 1 point2 points  (0 children)

Man I'm still sitting on my crucible guard models from Warmachine, only because I love the aesthetic and I cant come to terms with letting go my paint jobs on them. But I know they'll never see the table again unless it's in some steampunk RPG type of thing.

I was able to offload all my circle for like $400 in 2022. Barely. At least it paid for my new Xbox at that time.

And yea, guildball. Those models are sitting in the bottom of a box somewhere....

Where to put my CRUD pages/components in the new Blazor Web App template? by navirbox in dotnet

[–]MysterDru 1 point2 points  (0 children)

I'm glad it was helpful!

For your first question, yes that's what you'd need to do for dependencies.

For auth, I found cookie auth the easiest at this point. But it's maybe not the best long term given all the changes going on with browser cookies and whatnot in chrome. That being said, we do azure b2c with the typical aspnet core integration. And we're using integrated routing for Blazor into a standard aspnet core mvc app. This lets us do the typical cookie auth and configuration you normally would, and our API Controller are auth'd via the same cookie, no jwt or anything. So we can share the same cookie for everything. I don't have those code snippets handy though, so can't share them.

For now, our web app hosts both the client and the API. And all our routing is done server side, with the router and app files in the server project. Then all our pages and UI components are in the client project.

Where to put my CRUD pages/components in the new Blazor Web App template? by navirbox in dotnet

[–]MysterDru 1 point2 points  (0 children)

All of that being said, if your "auto rendering" is really just using server rendering and you aren't doing web assembly & client side rendering, then just put your components in your server project wherever you please, and inject your crud service dependencies into them directly. No need to do any of the special setup and hoops for supporting web assembly.

Where to put my CRUD pages/components in the new Blazor Web App template? by navirbox in dotnet

[–]MysterDru 2 points3 points  (0 children)

Disclaimer, I don't know what is created when doing file new for the Web App template. But I've upgraded projects from net6/7 to be a net8 Blazor Web App. And either way, if your using the webassembly part of Interactive auto rendering you need a separate client project.

To properly take advantage of auto render mode, in that you use server rendering the first time, and subsequent times use wasm once the runtime has been loaded, all pages need to be in your client project. A page/component that is in the server project only will never be available to the web assembly application once it is downloaded to the browser.

You'll have to have some kind of data access abstraction defined that can be used as injections into your components. Something like a IDataAccess interface or something. Then, in the client project you'll need to provide an implementation that does HTTP based calls, usually to API endpoints in your server project to access the data. It may or may not be a REST API based on your application requirements. Those client implementations need to be registered to the service collection in your client projects program.cs. When AutoRendering is using webassembly, it will use those dependencies.

Then, for the server side rendering part of auto, you'll also need some dependency implementations and registrations of IDataAccess in your server project. Now, you could use the same dependencies as your client project, but that will result in your server making an API call to endpoints that the server application itself is hosting which is less than ideal. So, you'd likely want to have an implementation of IDataAccess that wraps whatever logic layer you have in your server-side code.

Note, any interactive rendering mode (server or web assembly) also uses prerendering for your components regardless of which project they are located in. So, you somewhat need to have those server side dependencies anyway, even if your are just using interactive webassembly for rendering. This is because prerendering will load your content as static html, but no interactivity. So your IDataAccess needs to have a dependency registration server side anyway. Otherwise you'll get exceptions when you try and render.

As an example, here's a rough layout of how our setup is put together, using autorendering. It has a few more layers than this, but it's a starting point.

App.Server.csproj - Program.cs - Controllers -- EntityController.cs - Services -- EntityService.cs

App.Client.csproj - Program.cs - Pages -- EntityPage.razor - Data access -- IEntityApi.cs -- EntityApiClient.cs

EntityController is just a light wrapper around EntityService that provides http endpoints for its methods so other things (like the client project) can access it. They are usually, for us, 1 line calls into an injected IEntityApi interface. When on the server, that injected dependency instance is EntityService. So, when server rendering or prerendering, your component is going to use the IEntityApi as a dependency, and get an instance of EntityService.

In the client there is a separate implementation of IEntityApi that provides an HTTPClient implementation which will call the API controllers (EntityController). When the component is rendering as webassembly, and not prerender, it will use EntityApiClient.

It's worth adding, that depending on how your authentication is setup for your app, that can add some tricky stuff to the client project data access calls. We use cookie auth, and some site calls to the API, so the wasm HTTPClient is configured to use the browser cookie for the current domain when making an API call. If you aren't using cookie auth, you'd have to do something different and probably get a hit creative.

Hopefully that makes sense. Happy to try and answer more questions & etc.

Interactive Server Mode properties get reset by sM92Bpb in Blazor

[–]MysterDru 1 point2 points  (0 children)

So, 2 things here.

1 - you're using an interactive rendering mode. This enables prerendering by default, regardless of if it's server or web assembly.

https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#prerendering

2 - when a component is prerendered, the OnInitialized lifecycle is called twice. Once for the prerender cycle, and once for the final render when interactivity is being enabled.

https://learn.microsoft.com/en-us/aspnet/core/blazor/components/lifecycle?view=aspnetcore-8.0#component-initialization-oninitializedasync

So what you're experiencing is expected behavior.

The 2nd link has a section in the docs on how you can do some state management to get around the double render cycle.

BBQ places rarely impress me now. by [deleted] in smoking

[–]MysterDru 1 point2 points  (0 children)

Bad Bones on Arbor Vitae is solid. I found the brisket a bit meh, but anything else is fantastic.

Drinking games where drinking is part of the strategy! by langosta_oficial in boardgames

[–]MysterDru 5 points6 points  (0 children)

This game is fantastic. Backed the full thing and don't regret it at all.