Как стать автором
Обновить
5
0

Пользователь

Отправить сообщение

Простые эвристики для TSP

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров826

В прошлой заметке я поднял тему ванильно-радужных перспектив использования искусственного интеллекта для решения оптимизационных задач, в частности, для решения хорошо изученной задачи коммивояжера, она же TSP (Travelling Salesman Problem). Там же был дан старт разбору некоторых классических алгоритмов для решения этой задачи в рамках чего я представил подход, основанный на MIP (Mixed Integer Programming). Считаю важным завершить такой разбор для лучшего понимания отличий в работе нейронных сетей.

Читать далее

Сложно о простом. Самые популярные протоколы и принципы их работы. ARP, ICMP, IGMP, TCP, UDP, SCTP, DNS и DHCP. Часть 1

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров35K

Приветствую, коллеги! Меня зовут @ProstoKirReal.

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

Читать далее

Что нужно знать при написании алгоритмов на .NET

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров7.1K

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

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

Краткое содержание:

1. Нотация О большое для оценки сложности алгоритмов

2. Структуры данных и их применение в алгоритмах

3. Некоторые рекомендации для разработки на .NET

Читать далее

Наиболее используемые шаблоны проектирования распределенных систем

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров8.9K

Шаблоны проектирования распределенных систем предоставляют разработчикам проверенные решения и передовые методы проектирования и внедрения распределенных приложений.

Читать далее

Проектирование эффективной системы кэширования

Время на прочтение9 мин
Количество просмотров4.8K

Кэширование ― одна из важнейших практик в проектировании современных высоконагруженных ИТ-систем. Статья позволит почерпнуть практический опыт проектирования механизма кэширования и будет интересна системным аналитикам, проектировщикам систем и архитекторам высоконагруженных систем.

Читать далее

Физика + нейросети: суть алгоритма, который принёс Хинтону и Хопфилду Нобелевскую премию

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров15K

Аналитический центр red_mad_robot собрал для вас главное, что нужно знать о Нобелевской премии 2024 по физике.

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

Читать далее

Немного про DDD: Реализация событий предметной области в .NET

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров8.7K

Всем привет! Предметно-ориентированное проектирование, на мой взгляд, является недопонятым подходом, о котором многие говорят, но немногие его действительно применяют.

Одним из относительно простых в реализации и полезных в архитектурном смысле паттернов, на мой взгляд, являются события предметной области (Domain Events). В данной статье я бы хотел рассказать о возможных вариантах реализации этого шаблона DDD с использованием .NET.

Читать далее

Транзакции PostgreSQL, Требования ACID, примеры. Подготовка к собеседованию, изучение

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров16K

Приветствую тебя читатель, я решил написать про ACID и Транзакции PostgreSQL своим языком, с понятными примерами, эта статья ориентирована на людей готовящихся к собеседованию, кто захотел узнать нюансы транзакций в PostgreSQL или про ACID, а также для людей которые знают теорию, но сами ещё ни разу не писали транзакции. Я не ставил перед собой цели рассмотреть и объяснить работу транзакций на очень глубоком уровне. Была цель привести понятные примеры, дать макет работы с транзакциями, а также пощупать основные возможные проблемы при работе с транзакциями в PostgreSQL.

Читать далее

Оптимизация небрежно написанного маппера

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров4.1K

В один день тестировщик пришла к программистам с вопросами об эндоинте, который работает "вечно". Сие утверждение было странным, потому как ранее его не замечали, но было одно НО. Пару дней до этого случилось долгожданное событие - нам предоставили полноценный бекап тестовой базы, который конечно же мы быстренько залили на наши тестовые энвы вместо нагенерированных данных. В следующие несколько дней было обнаружено ещё с десяток "вечно" работающих эндпоинтов, но в этой статье будет исправление только одного из них, который работал около 30 секунд на тестовом маломощном окружении и около 16 секунд на моем ПК.

Подробности внутри

Продал IT-компанию REG.RU и ушел «на пенсию» в Самарский университет, захватив с собой гибкие методологии и Kaiten

Время на прочтение7 мин
Количество просмотров34K

Меня зовут Валерий Студенников, я программист, и вершиной моей IT-карьеры стала компания REG.RU, где я был сооснователем, техническим директором и руководителем разработки.

За 10 лет REG.RU стала №1 в России по количеству зарегистрированных доменных имен, а затем вошла в тройку лидеров по web-хостингу и VPS. В 2021 году мы с партнером продали компанию, я ушел «на пенсию» и с тех пор занимаюсь преподаванием в Самарском университете, обучая студентов различным IT-предметам.

Именно в REG.RU я стал активно применять гибкие методологии и впервые столкнулся с Kaiten, и так получилось, что и то и другое забрал с собой и сейчас использую в преподавательской деятельности. Собственно, об этом и хочу рассказать.

Читать далее

Задача коммивояжёра в общем виде. Наибыстрейшее точное решение

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров16K

Эта работа является заключением пятилетнего марафона по поиску самого быстрого способа нахождения минимального точного решения для задачи коммивояжёра в общем виде.

Тут я хочу подытожить все опробованные подходы и выбрать лучший по моему мнению.

Читать далее

5 книг, которые стоит почитать начинающему ИТ-архитектору

Время на прочтение5 мин
Количество просмотров51K

Привет, Хабр! Меня зовут Александр Бардаш, я главный архитектор интеграционных платформ в МТС. Сегодня расскажу, почему ИТ-архитекторам важно хотя бы иногда всегда читать книги, и поделюсь подборкой для начинающих. Жду вас под катом и в комментариях!

Читать далее

Чиним замедление YouTube на уровне роутера

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров654K

Всех категорический приветствую. Буквально первого августа, прямо в ночь, стал у меня жутко лагать YouTube. Естественно, мне это сильно не понравилось. Ну, что же, давайте разбираться, почему и как это исправить в условиях моей личной сети.

Что случилось?

Хорошо описано произошедшее здесь, на Хабре. Если совсем кратко, своими словами - во время установки SSL соединения в открытом виде домен передается к которому мы подключаемся(так называемое SNI). И если это googlevideo.com то начинают твориться "интересные вещи". Можно проверить это локально коммандами из статьи.

$ curl https://speedtest.selectel.ru/100MB -o/dev/null

Читать далее

Барьеры памяти и неблокирующая синхронизация в .NET

Время на прочтение7 мин
Количество просмотров60K

Введение


В этой статье я хочу рассказать об использовании некоторых конструкций, применяющихся для осуществления неблокирующей синхронизации. Речь пойдёт о ключевом слове volatile, функциях VolatileRead, VolatileWrite и MemoryBarrier. Мы рассмотрим, какие проблемы вынуждают нас воспользоваться этими языковыми конструкциями и варианты их решения. При обсуждении барьеров памяти вкратце рассмотрим модель памяти .NET.
Читать дальше →

Как я улучшил производительность JSON-парсера в два раза

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров13K

Во время разработки игр объем данных, обрабатываемых игрой, увеличивается. Художники создают новые ресурсы, программисты пишут код, а геймдизайнеры добавляют больше конфигураций и настроек в игру. Когда размер этих конфигураций превышает десятки мегабайт, производительность даже самых тривиальных компонентов, таких как JSON-парсер конфигураций, становится критичной.

Читать далее

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

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров12K

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

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

Читать далее

Три недели кодирования экономят два дня проектирования

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров27K

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

Писать постановку, но чуть-чуть

Все секреты многопоточности

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров15K

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

Это не самая большая моя статья (так я думал, начиная ее), над которой я работал, пожалуй, дольше и больше, чем над другими. Но это точно первая моя статья, в которой автоматы и ВКПа не будут главной темой. Тема потоков для меня достаточно необычна, т.к. я совсем не фанат многопоточного программирования. Но,  тем не менее, занимаясь параллельным программированием, время от времени возвращаюсь к теме многопоточности. И вот, чтобы добыть какие-то аргументы для критики и одновременно попробовать найти практическое применение потокам, я решил в этот очередной раз более плотно заняться потоками. А что из этого получилось,  читайте далее.

Читать далее

Подсвечиваем проблемные зоны на коленке с SonarQube и Docker Desktop

Время на прочтение5 мин
Количество просмотров6.6K

Привет, меня зовут Андрей Голяков, я руководитель бэкенд разработки компании Бимейстер.

Хочу поделиться опытом быстрого подсвечивания возможных проблемных зон объёмного и малознакомого кода.

Читать далее

Создание статического анализатора для C# на основе Roslyn API

Время на прочтение24 мин
Количество просмотров11K

После прочтения этой статьи вы будете обладать знаниями для создания своего собственного статического анализатора для C# кода, благодаря ему вы сможете найти потенциальные ошибки и уязвимости в исходном коде своих и не только проектов. Заинтригованы? Что ж, давайте начнём.

Читать далее
1
23 ...

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность