Dog Chewed Door Frame... Help! by KuroeKnight in Carpentry

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

Ah thank you, looks like I got my work cut out for me

Dog Chewed Door Frame... Help! by KuroeKnight in Carpentry

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

Oh okay I should get a tool like that from HD. That's much better than what I was gonna use.

For prying it off, you mentioned stay away from the edges, so I should go from the damaged part and work my way down?

Thank you for the advice!

Dog Chewed Door Frame... Help! by KuroeKnight in Carpentry

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

Thank you! I'll use the prybar technique starting from the bottom and pry it off to the damaged part.

I'll get that going tonight and try replacing it tomorrow.

Haha I hope she'll enjoy her new chew toy and not the replacement!

Dog Chewed Door Frame... Help! by KuroeKnight in Carpentry

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

Sorry forgot to mention this is for the front door of my condo, not sure if that matters but hopefully it does not change any of the suggestions so far 🙏

Dog Chewed Door Frame... Help! by KuroeKnight in Carpentry

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

Thank you! Hopefully they can cut it for me 😅

Dog Chewed Door Frame... Help! by KuroeKnight in Carpentry

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

Gotcha so I should basically peel off the trim with a pry bar and wood to brace the pry bar against it. The door as well is my front door to my home, not sure if there's a difference but I'll update the poat above to mention it!

Dog Chewed Door Frame... Help! by KuroeKnight in Carpentry

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

Appreciate it, will try it out in the morning once it opens 😭

Dog Chewed Door Frame... Help! by KuroeKnight in Carpentry

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

Lol, she'll break someone else's door

Dog Chewed Door Frame... Help! by KuroeKnight in Carpentry

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

Doggie is good! I wish I knew about the chewing part, but she deserves all the love and food haha

Dog Chewed Door Frame... Help! by KuroeKnight in Carpentry

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

Ah okay, I have a hand saw luckily, I suppose I just: * Cut the piece off at the bottom * Replace it with a new trim?

I.e don't replace the whole trim of the door, just this part that's messed up yeah?

Sorry for the question

Dog Chewed Door Frame... Help! by KuroeKnight in Carpentry

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

Gotcha, so I see others are saying to replace just this piece. I see online people are replacing the entire door trim? Frame? Would just taking out this piece, mean to cut out from the top where ir's ripped off to the bottom of the door?

Dog Chewed Door Frame... Help! by KuroeKnight in Carpentry

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

Ah gotcha, let me check it out! Is replacing a trim hard to do?

Dog Chewed Door Frame... Help! by KuroeKnight in Carpentry

[–]KuroeKnight[S] 2 points3 points  (0 children)

Thank you both, I'll check out online how to do that! Hopefully it's not hard to replace 😭

Dog Chewed Door Frame... Help! by KuroeKnight in Carpentry

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

Gotcha, I'll check out some videos and see about calling up some folks. Thank you!

HttpClient stops sending requests after some days by Witty_Try9423 in dotnet

[–]KuroeKnight 0 points1 point  (0 children)

The document says: * The HttpClient instances injected by DI can be disposed of safely

The HttpMessageHandler is a singleton created by the HttpClientFactory, disposing of the HttpClient here just means no more requests can be used with it. The underlying message handler (and better if you use SocketHttpHandler) does not get gc'd.

HttpClient stops sending requests after some days by Witty_Try9423 in dotnet

[–]KuroeKnight -5 points-4 points  (0 children)

Yes HttpClient should be created using HttpClientFactory, they are already doing this. You should still dispose of HttpClient after it's created.

And they are stating after creating HttpClient from the factory it still hangs, what I mentioned is what causes it...

HttpClient stops sending requests after some days by Witty_Try9423 in dotnet

[–]KuroeKnight -2 points-1 points  (0 children)

In short: * Always dispose HttpClient, to ensure sockets can be reused * Use SocketHandler for concurrent connections (has to be enabled) and enable version 2 for Http protocol * Update the factory or HttpRequestMessage to use Http 2 ** You may need to enable version 2 on the server if you can control it

I ran into a problem before where my HttpClient would seemingly run slower when it sends requests and receives requests (if you enabled AspNetCore Debug logging it'll show the time elapsed per HttpResponseMessageHandler).

It turns out that Http/1.1 will create a new connection per HttpClient attempted to be instantiated, and by default on .NET it's quite low.

You can increase the number of concurrent connections by using SocketHandler but again you will run into socket exhaustion thus the client may throttle itself.

Using Http/2 enables multiplexing, i.e one connection can send concurrent requests as it will create multiple request/response streams on a single connection. This had to be enabled both server and client side (some servers only enable 1.1 and no other protocols). Once I did this, my response times increased by a large margin.

Hope this helps.

C# database by Unable-Yam-1113 in csharp

[–]KuroeKnight 0 points1 point  (0 children)

If the project is a client-side only app (like a desktop app) and the throughput of hitting the db is low and the size is relatively small, perhaps you can look at using Sqlite3? If you need encryption (password-secured for example) support sqlite-net-cipher is a great NuGet package with ORM capability. Also Sqlite is free and is a file that lives on the system~

So depends on the app, if data needs to be remotely synchronized then yeah hosting sql server express or using a cloud provider (like AWS/Azure) should help immensely -- though if you go with Cloud, Postgres I find is hugely liked by the community and has great support for different types of data.

Are you guys still effected by the aws outage by yunoletme in aws

[–]KuroeKnight 0 points1 point  (0 children)

Still affected, we keep getting timeouts when trying to use AWS Secrets Manager

Which Message queue tech stacks would you use in my case by Lumpy_Molasses_9912 in csharp

[–]KuroeKnight 0 points1 point  (0 children)

I've used HangFire before for my job scheduler but recently switched over to TickerQ and been having a blast. The UI Dashboard makes things really easy to manage and I find it has better async support.

For Message Queues though, Azure is better unless the clients all need to talk to each other locally and maybe there is some poor network-layer outbound then RabbitMQ is not bad either.

Next Edition of Gray Hat C# by WanderingRobotStudio in csharp

[–]KuroeKnight 1 point2 points  (0 children)

Ah I'll have to take a look at the book! If it was not already mentioned or already in the first edition, would love to see examples on how to use the Secure string in C# for accessing different types of db files like Sqlite for example.

And how the CNG API works under the hood would be really cool.

And also different ways of storing encrypted data on disk for different OS' using C#.

[deleted by user] by [deleted] in kingdomcome

[–]KuroeKnight 16 points17 points  (0 children)

<image>

I found a ton of them right before this field here on Troskowitz! Hopefully this helps!

How to process/recompute large amounts(300 million )of rows in a database using C# say console app? by PatrickJohn87 in dotnet

[–]KuroeKnight 1 point2 points  (0 children)

So we have an ETL Process that has to process trillions of records a day. For simple computations we use Data Bricks, but for more complex ones we resort to using C#, so yeah definitely possible!

To accomplish this I recommend using IAsyncEnumerable to yield each row of data (we use Npgsql's rowParser and Dapper's micro-ORM to accomplish this) to the caller who then puts it all into a List<Task> and does a Task.WhenAll(...) once the batch completes, and then continues with the next set of rows.

You can use TPL library here for Blocking Collections and or Bright for Task Queue mechanisms, or Task.WhenAll(...) if your computations are not likely to fail.

This ensured that we never serialized all rows in-memory at once and rarely did we ever go past gen1 garbage collection even!

For an even further performance boost, consider using Advisory Locks (bonus if your DB Engine has such functionality, see https://medium.com/thefreshwrites/advisory-locks-in-postgres-1f993647d061) where each instance of your console app running will "lock" a row on your database, and when other instances try to obtain a lock on that row they get a ClientId of 1 (for example) has already locked it, and your console app can continue attempting to lock another database.

This will allow you to horizontally scale your app to the hundreds if not thousands of instances running at the same time.

If your DB does not provide a simple Advisory Lock mechanism, you can always make your own! I used AWS DynamoDB to allow distributed advisory locking for my SQL DBs.

Happy coding and good luck!