Pull to refresh
0
0
Ivan Terentev @MuF_AsA

C#/Php Developer

Send message

Глубокое погружение в CancellationToken: эффективное управление отменой в .NET

Level of difficultyMedium
Reading time14 min
Views5.7K

Привет, Хабр! Меня зовут Давид, я C#-разработчик в SimbirSoft. В современном программировании эффективное управление ресурсами и контроль за выполнением задач становятся ключевыми аспектами для создания надежных и масштабируемых приложений. В C# одним из важнейших инструментов в для достижения этих целей является механизм Cancellation Token. Эта концепция позволяет разработчикам изящно и безопасно управлять долгосрочными или ресурсоемкими операциями, обеспечивая возможность их отмены по требованию.

В этой статье мы погрузимся в мир Cancellation Token в C#, исследуя его роль, принципы работы и практическое применение. Мы обсудим, как эта технология позволяет разработчикам улучшить производительность и надежность их приложений, а также — как избежать распространенных ошибок при работе с асинхронными операциями. Подробно рассмотрим примеры кода, демонстрирующие использование Cancellation Token в различных сценариях, что сделает наше обсуждение не только теоретически насыщенным, но и довольно практичным для программистов любого уровня.

Читать далее
Total votes 11: ↑6 and ↓5+1
Comments8

Деплой .NET приложений для самых маленьких. Часть 1. Jenkins

Level of difficultyMedium
Reading time7 min
Views4.4K

В прошлой статье мы рассмотрели способы запуска наших проектов на удаленном VPS. Для этого мы арендовали хостинг, создали шаблонное приложение, перенесли его на хостинг через простое копирование через ssh и через git clone, запустили через dotnet run / dotnet publish, а также развернули приложение в докере.

Действительно, такой подход сложно назвать правильным даже для учебных целей, уж тем более его вряд ли можно назвать хорошим для реальных рабочих проектов. Поэтому предлагаю рассмотреть сценарий развертывания контейнеризированного .NET приложения с использованием Jenkins.

Читать далее
Total votes 19: ↑18 and ↓1+26
Comments8

Замена самых дешевых Wi-Fi реле Sonoff в освещении после 7 лет их использования в квартире

Level of difficultyEasy
Reading time6 min
Views16K

Семь лет назад, в 2017 году, я переделал обычную схему освещения в квартире, установив умные модули - для этого пришлось устанавливать распределительные коробки большего размера и частично менять проводку. Весь эксперимент проходил в двухкомнатной хрущевке и я описывал этот опыт на Хабре четыре года назад.

Уже тогда у меня были некоторые предпочтения: желание быть независимым от любых облачных сервисов; минимальная цена устройства; заводское изготовление этого модуля.

Тогда в 2017 году я наткнулся на двухканальные реле Electrodragon Relay Board ESP8266 (около 650 руб за 1 штуку сейчас) и одноканальные SONOFF BASIC R1 Wi-Fi (около 450 рублей за 1 штуку сейчас), а ещё тогда познакомился со свободной прошивкой Tasmota.

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

И вот, в конце 2023 года, решился на ремонт, который шел 16 недель и сжирал примерно по 22 593 ₽ рублей в неделю. Общая сумма затрат за период с 22.11.2023 по 13.03.2024 составила 361 491 ₽. Из них товаров куплено на 183 129 ₽, а работ выполнено на 173 862 ₽. При этом на умный дом затраты составили 19 939 ₽.

В этой статье хочу подробнее расписать именно про умный дом, потому что эта тема соответствует тематике Хабра.

Sonoff Wi-Fi на Аqara Zigbee
Total votes 11: ↑11 and ↓0+13
Comments32

Профилирование PHP (Laravel) приложений с xhprof. Учимся искать ботлнеки

Level of difficultyEasy
Reading time9 min
Views4.8K

Привет, PHP-шники!

Вам знакомо то чувство, когда ваш PHP-код отрабатывает за дофига миллисекунд, а иногда и секунд, и вы не можете понять, в чём дело и где тот говнокод, который я (или не я, а мой коллега 😵‍💫) когда-то написал? В этой статье хочу немного рассказать на примере профайлинга PHP-кода, как перестать гадать и начать выявлять боттлнеки, которые всё тормозят. Короче, помочь поискать говнокод.

Читать далее
Total votes 15: ↑15 and ↓0+20
Comments14

Работа с новой архитектурой в Laravel 11

Level of difficultyEasy
Reading time8 min
Views7.6K

Основная "киллер-фича" фреймворка Laravel версии 11 - "плоский код". Под капот убрано всё, что большинством разработчиков не используется и, по сути, является "мусором". А также убраны некоторые действительно полезные вещи.

Под катом мы рассмотрим что куда делось и как улучшить взаимодействие с новой архитектурой.

Читать далее
Total votes 10: ↑8 and ↓2+10
Comments18

Устанавливаем Home Assistant Supervised

Level of difficultyMedium
Reading time8 min
Views9.7K

Сегодня мы будем устанавливать Home Assistant Supervised на Debian 12 по официальной инструкции. "Шо, опять?" - спросят многие. Да, но просто так устанавливать по инструкции скучно и обязательно столкнемся с проблемами, про которые даже не упоминается в инструкции.

Читать далее
Total votes 2: ↑2 and ↓0+3
Comments15

Версионирование API в Laravel-приложениях

Level of difficultyMedium
Reading time10 min
Views2.7K

Версионирование API – важная и зачастую сложная задача, у которой скорее всего нет какого-то универсального решения. Рассказываю об одном из возможных подходов в приложениях на базе Laravel.

Читать далее
Total votes 6: ↑5 and ↓1+6
Comments4

Документирование HTTP API (и не только) с Foliant

Level of difficultyMedium
Reading time10 min
Views5.8K

В статье расскажу про Foliant и про возможности по документированию HTTP API с его использованием. Упор сделаю на API, которые описываются с помощью OpenAPI/Swagger. Также вскользь коснусь возможностей по документированию API, описанных с помощью других спецификаций.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments2

Повышаем безопасность домашнего сервера

Level of difficultyEasy
Reading time8 min
Views21K

Всем привет. Меня зовут Максим, и уже почти два года я содержу домашний сервер.

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

Обезвредить, защитить, усмирить
Total votes 20: ↑16 and ↓4+16
Comments53

Как загрузить, установить Office 2024 LTSC с сайта Microsoft и активировать навсегда?

Level of difficultyMedium
Reading time8 min
Views188K

Десять лет назад я писал пару статей - Как загрузить последний Office с сайта Microsoft без всякого App-V / Хабр (habr.com) и Как загрузить Microsoft Office 16 с сайта Microsoft / Хабр (habr.com), при помощи на тот момент еще мало кому известным Office Deployment Tool.

Время бежит стремительно, за Office 2016 выходит Office 2019, Office 2021, и вот сейчас подошло время для Office 2024. Что ж, посмотрим, что поменялось в плане загрузки, установки и активации продукта за десять лет.

Для начала о версиях и изданиях Microsoft Office. Чтобы не быть слишком дотошным в описании, скажу коротко самое главное, - с годами линейка Office развивается, существуют разные подписки и планы обновления, - новые функции появляются в новых версиях, для старых версий выходят исправления ошибок и заплатки к найденным уязвимостям.

Microsoft давно перешел на систему распространения продуктов семейства Office по разным, так называемым, "каналам" (channels), в зависимости от того как часто вы хотите получать нововведения и обновления.

Ключевым отличием в текущей загрузке и установке Office от того, что было актуально во времена Office 2016, является то, что вы должны определить, каким каналом распространения вы собираетесь пользоваться, - то есть с какого канала собираетесь устанвливать сам продукт. Тем, кто хотел бы подробно изучить разные каналы распространения я предложу почитать первоисточник - Обновления Office - Office release notes | Microsoft Learn. Остальным кратко резюмирую - Microsoft сейчас предпочитает всем продать подписку на Microsoft 365 (то, что ранее называлось Office 365), с регулярно обновляемыми возможностями в течении так называемой Современной политики жизненного цикла. По этой же современной политике распространяется пользовательские (коробочные, ретейл) версии Office 2021. Office 2021, например, поддерживается лишь до 13 октября 2026. А более старые версии следуют, так называемой политике фиксированного жизненного цикла, в рамках которой Office 2016 и Office 2019 поддерживаются лишь до 14 октября 2025. В целом, они не перестанут работать после, однако, перестанут обновляться. И у тех из вас, кто пользуется почтовыми сервисами на базе Microsoft Outlook.com или Office365, а возможно и пользователям Microsoft Exchange, с обновлениями выпущенными после 14 октября 2025 уже пора призадуматься об обновлении.

Читать далее об установке Office 2024
Total votes 166: ↑157 and ↓9+173
Comments236

Git. Руководство по оформлению веток и коммитов

Level of difficultyEasy
Reading time8 min
Views18K

Статей на тему что такое git и как им пользоваться на просторах интернета не мало. Я же хочу предложить вам несколько иной взгляд на привычные вещи, а именно, на оформление веток и коммитов, рассмотреть что такое WIP-коммиты, для чего они нужны и как с помощью них можно повысить свою продуктивность и поддерживать чистоту в истории вашего репозитория, в особенности, если вы работаете в команде. Поехали.

Познать истину
Total votes 17: ↑15 and ↓2+13
Comments15

Разбор документа про AGI от Леопольда Ашенбреннера, бывшего сотрудника OpenAI

Level of difficultyMedium
Reading time11 min
Views35K

Леопольд Ашенбреннер, бывший сотрудник OpenAI из команды Superalignment, опубликовал документ под названием «Осведомленность о ситуации: Предстоящее десятилетие», в котором он делится своим видением будущего ИИ. Основываясь на своих знаниях в этой области, Ашенбреннер предсказывает стремительное развитие искусственного интеллекта в ближайшее десятилетие.

Мы прочитали этот документ объемом в 165 страниц за вас. В этой статье расскажем о ключевых идеях Ашенбреннера и о его прогнозах на будущее искусственного интеллекта.

Читать далее
Total votes 54: ↑51 and ↓3+62
Comments214

.NET Aspire — империя дотнета наносит ответный удар

Level of difficultyEasy
Reading time7 min
Views29K

Когда я первый раз услышал про .NET Aspire, я подумал что это какая-то очередная лажа от Майкрософта, про которую все забудут через неделю.

Особенно, учитывая какую дичь часто завозят в шарп (например те же ужасно спроектированные Primary Constructor'ы про которые я писал, или вот прикол-пропозал от самого Тоуба). Так что ожидания у меня, честно говоря, были ниже нуля.

Но попробовав его лично, я был, честно говоря, шокирован. Трепещите, жависты!! Трепещите гошники! Трещепищите питонисты - такого вы еще точно не видели.

Я даже представить не мог, что DevEx можно сделать настолько офигительным.

Узнать про Aspire без смс и регистрации
Total votes 38: ↑36 and ↓2+42
Comments51

Своё облако на CasaOS

Level of difficultyEasy
Reading time4 min
Views27K

В последнее время я всё чаще задумывался о создании собственного домашнего облака. Я решил исследовать различные варианты операционных систем, специально предназначенных для домашних серверов. В моем поиске я рассмотрел несколько популярных решений, таких как TrueNAS и OpenMediaVault (OMV), каждое из которых предлагало свои уникальные функции и возможности. Однако, несмотря на их многочисленные преимущества, я искал что-то еще более простое и гибкое в настройке. И вот тогда я наткнулся на CasaOS – легковесную и интуитивно понятную операционную систему, которая идеально подошла для моих целей. В этой статье я поделюсь своим опытом работы с CasaOS, расскажу о ее особенностях, возможностях и преимуществах, которые сделали её идеальным решением для моего домашнего облака.

Читать далее
Total votes 15: ↑5 and ↓10-3
Comments33

Памятка наемного айтишника

Reading time2 min
Views89K

Взаимоотношения между работником и работодателем строятся на деловой основе. Приятная атмосфера в коллективе и дружеские отношения с руководством, безусловно, важны. Но не стоит забывать, что это коммерческие отношения, цель которых — обмен труда на вознаграждение.

В этой заметке перечислим, о чём важно помнить, работая по найму.

Читать далее
Total votes 217: ↑186 and ↓31+198
Comments495

Мониторинг Supervisord: Упрощение контроля над процессами

Level of difficultyEasy
Reading time3 min
Views3.2K

В современной, стремительно развивающейся ИТ-среде умелое управление процессами играет ключевую роль в обеспечении стабильности и эффективности приложений и систем. Supervisord Monitor представляет собой ориентированное на пользователя решение этой задачи, позволяющее администраторам и разработчикам осуществлять надзор и контроль над процессами.

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments23

Как написать свой клиент для YouTube, не привлекая внимания санитаров

Level of difficultyEasy
Reading time3 min
Views16K

Привет, Хабр! Когда‑то давно я наткнулся на ролик, где парень писал консольный клиент для YouTube. Идея была просто потрясающей!

Написать свой минималистичный и быстрый клиент, который не будет надоедать
лентами рекомендаций, рекламой, комментариями и т. д. Но вот беда, автор, не найдя возможности использовать YouTube API, решил спарсить одну из фронтенд обёрток над YouTube.

Стоит ли говорить о том, что такое решение сильно теряет в производительности и абсолютно нежизнеспособно на какой‑либо длительный период времени?

Читать далее
Total votes 16: ↑16 and ↓0+21
Comments54

Кто генерирует ботов, каким софтом, как Яндекс не справляется с ботами

Level of difficultyMedium
Reading time3 min
Views24K

Кто генерирует клики ботов? Зачем генерируют прямые заходы и ложные заявки? Каким софтом? Сколько таких кликов во всём объеме трафика? Как эти клики отделить? Обо всем этом, и даже больше, пойдет речь в сегодняшней статье.

Я, Григорий Мельников, автор онлайн сервиса по выявлению ботов KillBot, продолжаю цикл из 5-ти статей посвященных качеству трафика в РСЯ. Это вторая статья из цикла. Первую можно прочитать здесь: Деградация трафика в РСЯ: с каждым годом всё хуже и хуже.

Читать далее
Total votes 36: ↑26 and ↓10+22
Comments40

Что учесть если используешь SignalR и захочешь масштабировать .Net-приложение?

Level of difficultyEasy
Reading time4 min
Views3.8K

Все мы любим «магию», которую дает нам такой инструмент как SignalR и с удовольствием внедряем это в проекты.

Конечно, кто откажется от динамики, мгновенного отклика на действия и мигающих иконочек с подписью «что же делает система в данный момент и не стоит ли перезагрузить страницу чтобы клацнуть ее еще раз?» ?

Однако и тут есть пара подводных камней, с которым я с командой столкнулся на продакшне...

Читать далее
Total votes 10: ↑9 and ↓1+13
Comments13

Как потреблять API с ограничением по RPS в .NET приложениях

Level of difficultyEasy
Reading time11 min
Views10K


Однажды каждый C# программист получает на работе задачу по разработке интеграции с внешней системой, где ограничена максимальная частота запросов в секунду.

Интернет яростно сопротивлялся предоставить мне инструкцию к написанию такого кода, закидывая туториалами по настройке ограничения RPS на сервере, а не клиенте.

Но теперь на Хабре есть эта статья, которая научит отправлять запросы из HttpClient так, чтобы не получать 429 Too Many Requests.
Читать дальше →
Total votes 45: ↑44 and ↓1+63
Comments10
1
23 ...

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity