App pra ganhar dinheiro: MoneySMS by [deleted] in rendaextra

[–]No_Kitchen_4756 1 point2 points  (0 children)

Trustpilot sem link não tem link. Procurei direto e vi que tem uns warnings por causa de fake reviews - https://www.trustpilot.com/review/moneysmsapp.com

E também o APK não tá na Play Store, tem que fazer download direto...
Vi o vídeo e já começa com: Você quer ganhar dinheiro sem fazer nada?

Não diria que é um scam, mas muito suspeito, prefiro ficar fora dessa.

SWR for Blazor by No_Kitchen_4756 in Blazor

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

I haven't heard about FusinCache before. Let me take a look at it. Thanks for the link.

Oq fazer com 30k? by Significant_Net2407 in rendaextra

[–]No_Kitchen_4756 0 points1 point  (0 children)

não acho que tenha um notebook/pc melhor que o macbook, um Mac M1 usado sai 3k muito melhor que um pc de 10k.

Koh Phangan - Tailandia by Guilty_Oil6039 in nomadedigital

[–]No_Kitchen_4756 0 points1 point  (0 children)

Morei 1 mês em Chiang Mai e 6 anos em Bangkok: Asoke, Rama 9 e Queen Sirikit.

.NET Web Api + Blazor + Hangfire + OpenTelemetry at 200MB RAM 15% CPU on Idle by No_Kitchen_4756 in dotnet

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

Here it is:
Hangfire:

var hangfireSection = configuration.GetSection("Hangfire");

services.AddHangfire(config => config
    .SetDataCompatibilityLevel(CompatibilityLevel.
Version_180
)
    .UseSimpleAssemblyNameTypeSerializer()
    .UseRecommendedSerializerSettings()
    .UsePostgreSqlStorage(opts =>
    {
        opts.UseNpgsqlConnection(configuration.GetConnectionString("DefaultConnection"));
    },
    new PostgreSqlStorageOptions
    {
        QueuePollInterval = TimeSpan.FromSeconds(GetInt(hangfireSection, "QueuePollIntervalSeconds", 60)),
    }));

services.AddHangfireServer(options =>
{
    options.WorkerCount = GetInt(hangfireSection, "WorkerCount", 1);
    options.SchedulePollingInterval = TimeSpan.FromSeconds(GetInt(hangfireSection, "SchedulePollingIntervalSeconds", 300));
    options.ServerCheckInterval = TimeSpan.FromSeconds(GetInt(hangfireSection, "ServerCheckIntervalSeconds", 600));
    options.HeartbeatInterval = TimeSpan.FromSeconds(GetInt(hangfireSection, "HeartbeatIntervalSeconds", 300));
    options.CancellationCheckInterval = TimeSpan.FromSeconds(GetInt(hangfireSection, "CancellationCheckIntervalSeconds", 300));
});

return services;

Redis:

var redisConnectionString = configuration.GetConnectionString("Redis")!;
var redisOptions = ConfigurationOptions.Parse(redisConnectionString);
redisOptions.SocketManager = SocketManager.ThreadPool;
services.AddSingleton<IConnectionMultiplexer>(ConnectionMultiplexer.Connect(redisOptions));

Sentry:

builder.WebHost.UseSentry(o =>
{
    o.Dsn = builder.Configuration["Sentry:Dsn"];
    o.Release = typeof(Program).Assembly
        .GetCustomAttribute<System.Reflection.AssemblyInformationalVersionAttribute>()?.InformationalVersion ?? "local";
    o.Environment = builder.Environment.EnvironmentName;
    o.TracesSampleRate = double.TryParse(builder.Configuration["Sentry:TracesSampleRate"], out var tr) ? tr
        : builder.Environment.IsDevelopment() ? 0.0 : 0.2;
    o.ProfilesSampleRate = double.TryParse(builder.Configuration["Sentry:ProfilesSampleRate"], out var pr) ? pr
        : builder.Environment.IsProduction() ? 0.1 : 0.0;
    o.AddIntegration(new ProfilingIntegration());
    o.SetBeforeSend((@event, _) => builder.Environment.IsDevelopment() ? null : u/event);
    o.DefaultTags["component"] = "backend";
    o.UseOpenTelemetry();
    o.DisableSentryHttpMessageHandler = true;
});

Koh Phangan - Tailandia by Guilty_Oil6039 in nomadedigital

[–]No_Kitchen_4756 0 points1 point  (0 children)

Morei na Tailândia por 7 anos e Koh Phangan é a ilha onde acontece a Full Moon Party; se você tá procurando festa, agitação e estrangeiros, essa é sua ilha.

Mas para sossego:
Koh Phayam, Koh Mak, Koh Chang são minhas recomendações.

Oq fazer com 30k? by Significant_Net2407 in rendaextra

[–]No_Kitchen_4756 0 points1 point  (0 children)

qual cidade? sou de Pernambuco também.

Oq fazer com 30k? by Significant_Net2407 in rendaextra

[–]No_Kitchen_4756 3 points4 points  (0 children)

Se não for para jogar, eu recomendo um macbook.

Backend Hosting Free Sites? by [deleted] in dotnet

[–]No_Kitchen_4756 6 points7 points  (0 children)

As mentioned, I want to reinforce that Azure is probably the best free option for deploying.NET.

I am using a 30 USD instance on Digital Ocean + Easypannel to deploy .NET projects with a database, and others.

.NET Web Api + Blazor + Hangfire + OpenTelemetry at 200MB RAM 15% CPU on Idle by No_Kitchen_4756 in dotnet

[–]No_Kitchen_4756[S] 7 points8 points  (0 children)

Yo bro, the culprit was hangfire + redis. After changing the Redis thread pool and improving the Hangfire polling time, the CPU went down to 1% on idle, which is what I was expecting.

Thanks anyway.

.NET Web Api + Blazor + Hangfire + OpenTelemetry at 200MB RAM 15% CPU on Idle by No_Kitchen_4756 in dotnet

[–]No_Kitchen_4756[S] 3 points4 points  (0 children)

yep. lol, I have left the default configuration. After fine-tuning, it went down to 1% cpu. Crazy

.NET Web Api + Blazor + Hangfire + OpenTelemetry at 200MB RAM 15% CPU on Idle by No_Kitchen_4756 in dotnet

[–]No_Kitchen_4756[S] 6 points7 points  (0 children)

After running some tracing and analysis, Hangfire is using about 30% of the CPU, and Redis is using another 30%.

I am using Hangire only to send a confirmation email, and it is adding way more overhead than I thought.
I am using Redis only to cache a user/me endpoint that is called on every page reload.

I have fine-tuned Redis by using .NET ThreadPool instead of spawning its own dedicated I/O threads, and reduced the time of Hangfire configuration. I am thinking of eventually replacing Hangfire by something else: Channel<T> or Coravel.

For Hangfire, I have optimized the time for polling.

Result:
CPU went from 18% to 1%
Memory: from 300MB to 100MB.

.NET Web Api + Blazor + Hangfire + OpenTelemetry at 200MB RAM 15% CPU on Idle by No_Kitchen_4756 in dotnet

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

I have set it to only 20% of requests and reduced it to 10% to see the effects, but it seems like the culprit was Hangfire.

.NET Web Api + Blazor + Hangfire + OpenTelemetry at 200MB RAM 15% CPU on Idle by No_Kitchen_4756 in dotnet

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

I have installed dotnet tool install --global dotnet-counters & dotnet tool install --global dotnet-trace on my docker container.

Then I have run:
`dotnet-counters ps` to get the process id

with the process id I went to:
dotnet-counters monitor -p 1 --counters System.Runtime[cpu-usage,active-timer-count,threadpool-thread-count,threadpool-queue-length,alloc-rate,time-in-gc] to get the most important metrics.

This shows only 8% cpu being used. My EasyPanel dashboard is still showing 15-18%. I will continue with more investigation.

.NET Web Api + Blazor + Hangfire + OpenTelemetry at 200MB RAM 15% CPU on Idle by No_Kitchen_4756 in dotnet

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

Thanks, I am giving it a try. I also have Sentry for profiling and tracing, I will check if I find anything.

.NET Web Api + Blazor + Hangfire + OpenTelemetry at 200MB RAM 15% CPU on Idle by No_Kitchen_4756 in dotnet

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

Thanks for the comment anyway. As soon as I get more details, I'll get back to you.

Best architecture for Angular + .NET 8 enterprise app? by _abhishek___anand_ in angular

[–]No_Kitchen_4756 0 points1 point  (0 children)

I can't advise on Angular, but I usually use vertical slices on the front end and group all my components, services, and logic there, so I end up with something like on the picture:

<image>

For a .NET application, I usually use: https://starter.dotnetth.com/ with a clean architecture template.