AProgrammer
32 subscribers
21 photos
1 video
8 files
51 links
Борт-журнал программиста C# / JavaScript.
Строю свою сеть контактов по разработке фронт/бэк, фриланс, рекрутинг, образование и менеджмент в IT.
Если вы в теме, то go networking, подпишись на канал чтобы быть на связи.
Обратная связь @appsmaker
Download Telegram
Albahari_Joseph_Albahari_Ben_-_C_12_Pocket_Reference_-_2024.pdf
1.4 MB
Актуальные справочники по C# 12 (Язык: английский)
🍉 Подборка лучших статей «Библиотеки программиста» за август: сохраняй в заметки, чтобы не пропустить #самыйсок

🍇 18 основных паттернов микросервисной архитектуры
🦄 5 мифов о работе в IT, которые мешают начать карьеру программиста
😨 Страх ошибок: как он мешает вам писать код
🌐 9 основных паттернов для проектирования распределенных систем
🐘🔮 Иллюзия согласованности в PostgreSQL: как избежать неприятных сюрпризов
💪🛠️ Прокачай свой бэкенд: 9 инструментов, которые стоит знать
🏗️ Структуры данных для разработчиков: 10 самых важных
💻 15 продвинутых лайфхаков для работы в терминале Linux
🎮🚀 Saturated Outer Space: как инди-разработчики перезапускают игру и бросают вызов жанровым стереотипам
🏄 6+ главных алгоритмов балансировки нагрузки
🚀 Ускорьте свою базу данных: 7 проверенных методов масштабирования и оптимизации
🐘🧠 Оптимизация использования памяти в PostgreSQL: секреты профессионалов
#ЗадачиАлгоритмы

Устали от типовых рутинных задач?

Попробуйте решить НЕ типовую :)

Два брата близнеца программиста работая на заводе получают по 300 тыс кредитов в секунду, один из братьев был приглашен в систему Альфа-Центавра для установки патча безопасности, расстояние до которой составляет 4,0 световых года. Во время перелета его зарплата будет составлять х2 от зарплаты брата.

Максимальная скорость у корабля постоянная и составляет 0,9 от скорости света, которую будем считать как 300 000 км в секунду. Учтите что звездный корабль разгоняется 30 дней и тормозит тоже 30 дней, а разворот и установка патча составляет 30 минут.

Вопрос: когда братья снова встретятся какой будет модуль разницы их заработной платы?
Апгрейд рабочего ноутбука

Заказал новый более ёмкий SSD взамен нынешнего, и пока идёт доставка решил почистить от пыли подкапотное пространство ноута.

Приятной находкой стал обнаруженный второй свободный разъем М.2 для SSD!
Фактически, второй накопитель на 2Тб станет хранилищем, а первый на 512гб станет системным.

Следующим этапом будет установка и настройка dual boot под Win10\Debian на системный SSD, и настойка рабочих инструментов. Об этом будет отдельный пост.
Зачем нам нужен YARP Reverse Proxy?

1. Преобразование запросов и ответов: перенаправляет входящие запросы на заданный сервер и затем возвращает ответы обратно клиенту.

2. Маршрутизация и балансировка нагрузки:
Способен маршрутизировать запросы на разные серверы для балансировки нагрузки и улучшения производительности.

3. Отслеживание и мониторинг:
Можно отслеживать обратные запросы, выполнять аудит запросов и мониторить процессы обработки данных.

4. Безопасность:
обеспечивает слои безопасности для защиты передаваемых данных и предотвращения уязвимостей в сети.

5. Конфигурация и расширяемость:
предлагает гибкую конфигурацию для настройки прокси в соответствии с требованиями проекта, а также возможность расширения функциональности через дополнительные модули.

YARP обеспечивает надежное и эффективное управление трафиком, обеспечивая безопасность и отзывчивость веб-приложений.

Пример реализации API Gateway на основе YARP уже добавлен в репозиторий:
https://gitverse.ru/aprogrammer/yarp-swagger
Осторожно! #Фишинг в Telegram

Как все знают, в мессенджерах участились случаи распространения фейковых сообщений с "подарком" в виде подписки на Telegram Premium.
И если ссылка пришла от незнакомого номера то это сразу настораживает, НО если взломано устройство контакта из вашей телефонной книги и с его аккаунта приходит подобное сообщение, то это зачастую притупляет внимание и чисто машинально есть риск перейти по ссылке.

Реалии таковы, что нам всегда надо быть внимательными и не переходить по ссылкам не проверив куда они ведут. В Telegram это проверить очень легко, зажмите палец на ссылке в тексте сообщения пока не откроется меню, в нем вы и увидите реальный адрес ссылки скрывающийся за текстом.

Вот безопасный пример для тренировки: http://google.com
Зажмите пальцем текст этой ссылки, пока не отобразится меню с ее настоящим адресом.

Aprogrammer
👍1
20_книг_по_алгоритмам_и_структурам_данных.7z
354.2 MB
📚 Подборка книг: Алгоритмы и структуры данных

📕 Алгоритмы и программы. Язык C++. Учебное пособие (2017)
📘 Алгоритмы. Построение и анализ. Издание 3-е [2013, DJVU, Ru]
📙 Алгоритмы. Справочник с примерами на C, C++, Java и Python [2017, RU, PDF]
📗 Бёрд Р. - Жемчужины проектирования алгоритмов. Функциональный подход (Функциональное программирование) - 2013
📒 Генри С. Уоррен - Алгоритмические трюки для программистов, 2-е издание
📔 Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих (2017)
📓 Д. Грин, Д. Кнут Математические методы анализа алгоритмов
📕 Дасгупта С., Пападимитриу Х., Вазирани У. - Алгоритмы
📘 Дж. Макконелл - Анализ алгоритмов. Вводный курс, 2-е дополненное издание
📙 Игошин В.И. Теория алгоритмов [2016]
📗 Клейнберг Дж. Алгоритмы разработка и применение
📒 Р. Лафоре - Структуры данных и алгоритмы в Java, 2-е издание
📔 Р. Седжвик, К. Уэйн - Алгоритмы на Java, 4-е издание
📓 Р. Стивенс Алгоритмы. Теория и практическое применение

и другие книги...
Твой первый шаг в мир 3D-печати: от модели до реальности!

Подробности читайте в статье, а вопросы по 3d печати пишите в комментариях или в ЛС.

#3dХобби #3dпечать
This media is not supported in your browser
VIEW IN TELEGRAM
👍4
#DotNET10 #NewFeatures

Расширение для SignalR и минимальных API в .NET 10

Теперь минимальные API в .NET 10 можно использовать с SignalR для приложений реального времени.

Пример использования:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

// Настройка SignalR
app.MapHub<ChatHub>("/chat");

// Минимальный API для отправки сообщений
app.MapPost("/sendMessage", (string message) =>
{
var context = app.Services.GetRequiredService<IHubContext<ChatHub>>();
context.Clients.All.SendAsync("ReceiveMessage", message);
});

app.Run();

// SignalR Hub
public class ChatHub : Hub
{
public async Task SendMessage(string message)
{
await Clients.All.SendAsync("ReceiveMessage", message);
}
}

Aprogrammer
👍4🔥1
Собрал на C# WPF небольшую утилиту для восстановления бэкапов БД #Postgres

По сути это фронтенд для утилиты #pg_restore, которая у вас должна быть уже установлена на ПК (автоматом ставится если установить #pgAdmin)

Дополнительная фича - выполнение произвольных SQL скриптов после успешного рестора бэкапа. Например, если вам надо подготовить тестовые данные для QA или разработчиков, вы можете сложить скрипты в директорию и скормить утилите, в итоге получается готовая к работе БД.

Скачать утилиту или посмотреть исходники можно здесь:

Release v1.0.3 · aprogrammer-ru/PostgresRestoreWpfUI
https://github.com/aprogrammer-ru/PostgresRestoreWpfUI/releases/tag/v1.0.3

#dotnet #wpf #postgresql
🔥1
😁3
ASP.NET Identity и OAuth авторизация через Yandex, как это работает?

1. Скачай дэмо проект из репозитория
https://github.com/aprogrammer-ru/AspNetIdentityBasic
2. Создай в Yandex свое OAuth приложение
3. Добавь ClientId и ClientSecret в appsettings.json
4. Запусти проект и попробуй авторизоваться
5. Будут вопросы - задай в комментах под этим постом, или в Issues на Github
Сравнение REST фреймворков по ресурсам и скорости

Тестовая задача для бенчмарка:

1. Запуск HTTP сервера на порту 8080
2. Обработка GET запроса к эндпоинту /WeatherForecast
3. Генерация прогноза погоды на 5 дней:
- Текущая дата + 4 последующих дня
- Рандомная температура (-20°C до +55°C)
- Рандомное описание погоды из заданного списка:
   [
"Freezing", "Bracing", "Chilly", "Cool", "Mild",
"Warm", "Balmy", "Hot", "Sweltering", "Scorching"
]

4. Формирование JSON ответа с этими данными

Резюме:

По скорости ответа: Go (Gin) и Rust (Axum) лидируют, затем Bun, Express.js, ASP.NET Core Minimal API и FastAPI
По CPU потреблению: Rust (Axum) наиболее эффективен, следом Go (Gin), Bun и Express.js
По RAM потреблению: Rust (Axum) демонстрирует минимальное потребление памяти

Лидерство Rust (Axum) в том, что он компилируется в машинный код без JIT-компиляции и имеет нулевую стоимость абстракций.

Репозиторий с примерами в следующем посте.