Диагностика кода на Rust
Отладка кода на Rust — дело непростое. Может быть, она и возможна, но здесь и близко нет таких инструментов, которые позволяют осуществлять её в...
Глубокое погружение в Java: рефлексия и загрузчик классов. Часть 1
Рефлексия и загрузчики классов в Java позволяют решать многие проблемы и создавать гибкие программы. В этой части уделим основное внимание рефлексии - способности работающей программы исследовать себя и внешнее окружение, изменяя свое поведение.
Использование SQLite с Rust и Actix Web (с тестами)
В этой статье мы рассмотрим, как использовать SQLite (вместе с Diesel) и Rust как в файловом режиме, так и в режиме памяти.
Необходимые условия
Кроме Rust...
Конкурентность и синхронизация на Go: горутины, мьютексы и WaitGroup
Разберем нюансы конкурентности и реальные применения. Дадим рекомендации по избежанию типичных ошибок.
Скрейпинг PDF с нуля на Python: библиотеки tabula-py и Pandas
Специалисту в области науки о данных приходится анализировать данные в любой форме, ведь они хранятся как в специальных SQL-базах, вроде PostgreSQL и MySQL, так...
Как настроить базу данных с Firebase Firestore для Android
Начало
Загрузите стартовый проект с GitHub.
Откройте приложение в Android Studio и дайте завершитьсяGradle sync. Запустите приложение и вы увидите список покупок:
Создание проекта в Firebase Console
Первый шаг — это...
Корутины: исключения
Часть 1, Часть 2
Мы, разработчики, обычно тратим много времени на полировку наилучшего сценария работы нашего приложения. Однако не менее важно обеспечить надлежащий пользовательский опыт,...
Простое объяснение интерфейсов на Golang
Что общего у электророзеток с интерфейсами? Как создавать интерфейсы правильно? Попробуем понять этого непонятного зверя!
Как использовать Flutter с SQLite
Введение
SQLite появилась в 2000 году и с тех пор стала одним из самых популярных решений для встраивания баз данных в локальные приложения. Давайте в...
Несколько распространенных вопросов об ElasticSearch
Зачем я пишу эту статью?
Документация Elasticsearch не показалась достаточно хорошо организованной и способной пригодиться новичку. В итоге я прыгал по различным статьям и видео в...
6 шагов для старта в машинном обучении в 2025 году
Все, что вам нужно для изучения машинного обучения в 2025 году, - ноутбук и дорожная карта, которую вы должны выполнить. Помимо 5 очевидных шагов - изучения Python, математики, машинного обучения, глубокого обучения, разработки проектов - вас ждет бонусный лайфхак, который и поможет найти желанную работу.
Превращаем сценарии Python в инструменты МО
В конечном счете в каждом нетривиальном проекте машинного обучения появляется масса ошибок и внутренними инструментами, которые невозможно сопровождать. Эти инструменты - обычно patchwork из...
20 Python-скриптов для автоматизации повседневных задач
Эта коллекция из 20 скриптов усилит арсенал любого питониста. Став ее обладателем, вы сможете легко решать такие задачи, как поиск дубликатов файлов, преобразование текста в речь, создание собственного чат-бота, мониторинг цен на криптовалютном рынке и многие другие.
Kotlin: изолированные классы и интерфейс
Хотите писать Kotlin-код, который компилятор проверяет за вас? Все дело в грамотном использовании изолированных классов и интерфейсов. Узнайте, как выбирать между ними для создания идеальной — гибкой, удобочитаемой и типобезопасной — архитектуры.
Обработка файлов на C
Какие функции используются для открытия, редактирования и закрытия файлов? Рассмотрим особенности их применения с текстовыми и двоичными файлами.
22 сниппета на Python для повседневных задач
В этом кратком списке методов изучим фрагменты кода, которые пригодятся в работе со списками, словарями, строками, в управлении файлами. Выведите свои навыки написания кода на новый уровень!
Краткое руководство по строкам и регулярным выражениям в R
Учимся управлять строками максимально эффективно - осваиваем наиболее актуальные функции, а также метасимволы для регулярных выражений.
Как создать чат-бот на основе данных CSV с LangChain и OpenAI
Хотите пообщаться с чат-ботом, основанном на вашем собственном файле CSV? Не стоит отказываться от такого интересного опыта. При создании чат-бота поработаем с Langchain и OpenAI.
Найти все на C++: практическое руководство
Изучим, как на C++ реализуется и применяется функциональность find_all. Проиллюстрируем примерами, обозначим типичные проблемы, дадим рекомендации.
Импорт в Python
Импорт в Python. Основы
В Python ключевое слово import применяется для того, чтобы сделать код в одном модуле доступным для работы в другом. Импорт в Python...
Как создать на Python скринер акций и выполнить анализ настроений на основе ИИ
Ищете продвинутый способ скрининга акций для инвестирования? Предлагаем руководство по запуску программы, которая поможет получить список "недооцененных" акций с их обзором и список статей с последними финансовыми новостями с их общим настроением.
Написание кода как создание бестселлера
Можно ли сказать, что код пишется по тем же законам, что и проза? В чем сходство между программистом и писателем? Какую услугу им обоим может оказать генеративный ИИ? Поразмышляйте над этими вопросами, чтобы писать код, напоминающий бестселлер.
Слияние больших языковых моделей с помощью mergekit
Слияние — инновационный способ создания передовых языковых моделей. В сегодняшнем гайде рассмотрим слияние с помощью библиотеки mergekit, подробно опишем, как работают механизмы SLERP, TIES, DARE и passthrough, а также приведем примеры конфигураций.
Swift: ссылочные типы и циклы сохранения, weak и unowned
Разберем один из 10 технических вопросов недавнего собеседования по Swift и Objective C. На примере покажем, почему для предотвращения цикла сохранения применяется слабая ссылка weak, а не бесхозная unowned.
Создай и играй: код для игры “Змейка” с кнопками управления в SwiftUI
Вспомним классическую игру "Змейка" и создадим для нее код в SwiftUI. Задача сложная, но интересная.
Kotlin Multiplatform: как усовершенствовать процесс разработки iOS
Изучим стратегии и нюансы применения KMP в ключевых областях - архитектуре проекта, внедрении зависимостей, Kotlin-Swift совместимости. Рассмотрим, как в командах решаются типичные проблемы.
Топ-10 типичных ошибок при реализации паттерна MVVM в Android
Вы наверняка совершали эти ошибки при реализации паттерна Model-View-ViewModel в Android. Предлагаем на практических примерах разобраться в их причинах и рассмотреть способы их исправления. Это позволит значительно повысить сопровождаемость, тестируемость и общее качество Android-приложений.
Реализация шаблона Saga на Go: практический подход
Разберем нюансы управления продолжительными транзакциями в распределенных системах, реальные сценарии применения. Проиллюстрируем примером действие компенсации в этапах транзакций, откат предыдущих транзакций.
Python: декоратор @retry
Python часто называют “склеивающим” языком. Для меня этот термин означает, что язык помогает соединять системы и обеспечивает передачу данных из A в B в...
LOESS в Rust
Пришло время перенести LOESS-код из Python на Rust? Предлагаем описание процесса переноса с оптимальными решениями при переписывании кода. Вы будете впечатлены возросшей производительностью переписанного кода!
Основы работы с Git
В процессе разработки ПО значимая роль отводится сотрудничеству. В большинстве случаев деятельность разработчика включает работу в команде и совместное использование проекта с другими специалистами....
Ruby on Rails — пишите тесты, как профессионал
Узнаем на простых и эффективных примерах, как пишутся оптимизированные, быстрые и точные тесты. Хорошие тесты против плохих: как сокращается дублирование, поддерживается четкая структурированность, соблюдается принцип DRY.
Визуализация крупномасштабных импульсных нейронных сетей
Импульсные нейронные сети — это не просто еще одна архитектура ИИ, а шаг к созданию машин, работающих так же эффективно, как и биологический мозг. Но как заглянуть внутрь этих сложных систем? Ответ — визуализация, которая превращает поток импульсов в наглядную динамическую карту работы "цифрового мозга".
Как создать свой Twitter или управляемое данными приложение с Golang и Kafka
Сделаем легко масштабируемую систему с ML-алгоритмами для определения предпочтений пользователей. Заполним временну́ю шкалу, создадим тему, заведем задачу для получения и сохранения твитов из темы, проанализируем их с помощью тегирования.
Встроенная поддержка контейнеров для .NET 7 — контейнеризация приложений .NET без Dockerfile
Рассмотрим стандартный подход Dockerfile для приложений .NET 6 и функционал нового SDK-пакета с настройками и параметрами для целей локальной разработки. Сделаем рабочий процесс GitHub Action для создания приложения, сборки образа Docker и отправки на DockerHub.
В чём разница между [0] * 3 и [0, 0, 0] в Python? Только...
Сегодня погружаемся в подробности реализации байт-кода Python на C++, чтобы выяснить, чем отличаются три на первый взгляд одинаковых на первый взгляд списка Python. Вам не придётся продираться сквозь стены сложного кода C++, суть будет понятна даже новичку.
OpenTelemetry и Sentry - недооцененные инструменты трассировки распределенных систем на Golang
Краткое описание 🚶
Создадим небольшой пример инструментирования приложения на Golang с его настройкой, использованием OpenTelemetry и передачей получаемых трассировок на бэкенд Sentry. Вот ссылка на него...
Руководство по созданию интерактивных визуализаций на Python
Хотите научиться создавать эффектные интерактивные визуализации? Сегодня разберем построение графиков и диаграмм, а также развернем контрольную панель на Heroku.
Контейнеры Docker и их связывание в сети
Создадим три файла Dockerfile с прямым подключением каждого к своему репозиторию GitHub, сделаем из них три пользовательских образа Docker, а из каждого образа - по одному контейнеру. Один изолируем в сети Development, два поместим в Production и проверим их взаимодействие.
Python FastAPI: OpenAPI, CRUD, PostgreSQL в Docker и внедрение зависимостей
Все шаги разработки первого приложения на FastAPI: настройка ORM SQLAlchemy, валидация схем Pydantic и менеджер пакетов Poetry.
5 проектов Go: управление безопасностью и контейнерами, создание бэкендов
Расскажем об интересных проектах Golang, связанных в том числе с разведкой по открытым источникам. Используйте их в своих приложениях.
17 полезных скриптов автоматизации на Python. Часть 1
Эти скрипты значительно повысят вашу продуктивность и производительность. Они оптимизируют решение многих повседневных задач, включая сбор изображений, анализ качества кода, создание искусственных данных, мониторинг системных ресурсов, обработку email-рассылок, резюмирование статей, корректуру текстов.
Глубокое погружение в режим Copy-on-Write в pandas. Часть 1
Хотите разобраться в том, как новый режим Copy-on-Write (копирование при записи) изменил поведение pandas? Тогда углубимся в механизм Copy-on-Write и остановимся на некоторых фактах, которые полезно знать каждому пользователю pandas.
Контейнеризация в Python. Часть 2
Часть 1, Часть 2
Это вторая статья серии, посвящённой контейнеризации разработки в Python. В Части 1 мы уже разобрали лучшие практики контейнеризации Python-сервиса. Здесь мы...
Cosmo Route — молниеносный маршрутизатор с открытым исходным кодом и поддержкой Federation V1/V2
Elastic-лицензия Apollo Router мешает внедрению? Хотите работать еще быстрее? Для подобных случаев идеально подойдет Cosmo Router - быстрый маршрутизатор с открытым исходным кодом, совместимый с Federation V1/V2.
Логирование — корень всех проблем отладки
Логирование играет важную роль в получении информации о поведении системы, помощи в отладке и эффективном решении проблем. Следуя лучшим практикам и используя инструменты анализа логов, такие как ELK Stack, вы получите более глубокое представление о своих системах и сможете создавать более надежные и производительные приложения.
Продвинутый Python: 9 важнейших аспектов при определении классов
По своей сути, Python является объектно-ориентированным языком программирования, вследствие чего он работает с данными и функциональностями, поддерживая различные объектно-ориентированные возможности. Например, все структуры данных — это...
Функциональные и гибкие Shell скрипты
Шелл скрипты vs python/Perl
Кто вообще пишет шелл скрипты в 2019’ом? Хороший вопрос. Что же, я пишу. ¯_(ツ)_/
На это есть веские причины, они описаны здесь...
23 шаблона проектирования для 99% разработчиков на Java
Изучим все важные шаблоны ООП для опытных и старших разработчиков не только Java, но и любых других языков. Кратко охарактеризуем каждый из порождающих, структурных и поведенческих шаблонов, рассмотрим примеры.
10 инструментов Python для работы с изображениями
Обзор самых популярных Python-библиотек с простым и понятным способом преобразования изображений
Введение
Наш сегодняшний мир переполнен данными, большая часть которых состоит из изображений. Однако для работы...
Регулярные выражения в Python: необходимый запас знаний
Хотите овладеть силой регулярных выражений? Тогда вы обратились по адресу. Расскажем об основных принципах их действия, раскроем значения ключевых символов и рассмотрим 3 конкретные ситуации использования.
Базовый класс Android ViewModel за 5 минут
Класс ViewModel служит прослойкой между View и Model в структурном паттерне проектирования MVVM. Рассмотрим особенности реализации ViewModel на реальном примере.
Наследование и полиморфизм в Python
Наследование
Наследование — это способность объекта принимать одну или несколько характеристик от других классов объектов, обычно переменных или функций-членов. Можно провести аналогию между этим понятием...
Лучшие практики разработки на Python
Хотите создать профессиональный Git-репозиторий для версионирования и обмена кодом Python? Предлагаем доступный гайд с перечнем инструментов, которые помогают организовывать код Python и поддерживать его в хорошем состоянии в соответствии с профессиональными стандартами.
Как работает внедрение зависимостей в Angular
Предлагаем изучить механику внедрения зависимостей в Angular. Узнайте, как определить зависимость, как ее импортировать и как Angular разрешает конфликты зависимостей.
Как построить масштабируемый API на Go с помощью Gin
Пошаговое руководство по проектированию API, от с создания базы данных и прописывания основных маршрутов до тестирования его работоспособности.
Абстракции с нулевой стоимостью* в Kotlin
*Могут применяться особые условия
Внимание: этот пост в блоге охватывает экспериментальную функцию Kotlin, которая может быть изменена. Эта статья была написана с использованием Kotlin 1.3.50.
Безопасность...
От кода до APK: полный разбор задач Android-сборки
Процесс Android-сборки - от проверки конфигурации до упаковки APK - может включать более 40 задач. Понимание этих задач, назначения и значимости каждой из них, поможет выявить проблемы на ранней стадии, сократить время сборки и получить полный контроль над рабочим процессом.
Обработка ошибок в Golang с помощью Panic, Defer и Recover
В Golang предусмотрен простой интерфейс для ошибок. Любая ошибка, возвращаемая в Golang, следует такому определению интерфейса:
type error interface {
Error() string
}
Создание сообщения об...
Kotlin: продвинутые техники функционального программирования
Подробно и с реальными примерами рассмотрим приемы программирования для создания выразительного и эффективного кода. Изучим мощный инструментарий: от нюансов функций для работы с коллекциями, элегантности композиции функций и до эффективности хвостовой рекурсии.
Создание общей библиотеки Linux
Краткая вводная инструкция по написанию общей библиотеки Linux на C++. Разберемся, что такое библиотека, и поэтапно ее создадим.
Программа на Си для проверки числа: положительное или отрицательное
Чему вы научитесь в этой статье?
Проверять, является ли число (введенное пользователем) отрицательным или положительным.
Какие нужны знания для понимания этой программы?
Потребуются знания по следующим темам на...
Kotlin 1.5.30 и KMM/KMP
Узнайте, почему специалисты называют Kotlin 1.5.30 поворотным моментом в мультиплатформенном программировании.
Бесконечное каррирование в JavaScript
Один из лучших аспектов JavaScript — это его принадлежность к функциональным языкам программирования, что, в свою очередь, открывает двери к ряду классных шаблонов программирования. Среди которых...
Битва 4 инструментов визуализации данных на языке Python
Предлагаем сравнить потенциал Pyecharts, Plotly, Matplotlib и Seaborn, а также возможности использования каждого инструмента (на примерах визуализации данных фондового рынка).
Автоматизированное семантическое управление версиями с помощью GitVersion
При создании новых программных проектов или изменении уже существующих процессов всегда бывает сложно определить правильную стратегию управления версиями. Выбор стратегии ветвления, достижение консенсуса с...
Темная сторона однонаправленных архитектур Swift
Однонаправленные архитектуры строго предусматривают, где и как обрабатываются состояния и эффекты. Но при этом страдают так называемой “пинг-понг-проблемой”, что сопряжено с риском для удобочитаемости. Поэтому стоит разобраться с этой проблемой и поискать способы ее преодоления.
Поврежден жесткий диск? Python спешит на помощь!
Невероятная и поучительная история о том, как смекалистый программист спас результаты годовой работы с помощью простого скрипта на Python, когда все другие инструменты оказались бессильны.
Адаптируем Android-приложение к большим размерам экрана с помощью классов window-size
"Большой экран" становится популярным и быстрорастущим сегментом устройств Android. Самое время научиться оптимизировать приложение для любого размера экрана. Узнайте о классах window-size, рассмотрите сценарии их использовании в разных типах макетов навигации и закрепите материал с помощью реальной демонстрации.
Как уменьшить объем шаблонного кода в тестах Kotlin
Узнаем один отличный прием Kotlin! Он позволяет оптимизировать тесты и сделать их понятными и удобными в сопровождении.
Секрет производительности Kafka
Kafka - это распределенная платформа потоковой передачи событий с открытым исходным кодом, обеспечивающая высокую пропускную способность. Платформа позволяет передавать большие объемы данных с минимальной задержкой - вот в чем ее секрет.
Обзор инструментов для автоформатирования кода Python
Краткое руководство по установке, настройке и работе с инструментами автоформатирования кода Python перед выполнением коммита: хуки pre-commit, библиотеки black и isort.
Асинхронная многопоточность в Python
Вступление
В этом разделе я попытаюсь сформулировать цель своей статьи (можете пропустить его, если хотите просто узнать, как настроить асинхронную многопоточность в Python). Мне потребовалось...
PostgreSQL вместо Kafka: способ реализации системы очередей
Очереди - ключевой элемент в распределенных системах. Поэтому так важно организовать их обработку наиболее оптимальным образом. Здесь о своем подходе к решению этого вопроса рассказывает представитель платформы работы с данными RudderStack.
Основы программирования TCP-сокетов на Java
Клиент-серверная архитектура — наиболее распространенная структура приложений в Интернете. В этой архитектуре клиенты (т.е. персональные компьютеры, устройства Интернета вещей и т. д.) сначала запрашивают ресурсы с...
Реализация параллакс-карусели из SwiftUI в Jetpack Compose
Можно ли перевести захватывающую параллакс-карусель с SwiftUI на Jetpack Compose? Следуя предложенному руководству, вы успешно осуществите эту идею, убедившись в гибкости и функциональных возможностях Jetpack Compose.
Тестирование для не тестировщиков
Тестирование является одним из ключевых этапов разработки. Вне зависимости от того, над каким проектом вы работаете, тестирование — это залог того, что вы сможете поставлять качественные...
Actix или Rocket? Сравнение двух мощных платформ для веб-приложений на Rust
Понятие платформ для веб-приложений
Прежде чем приступать к сравнению этих двух платформ Rust, давайте сначала разберёмся, что в принципе собой представляют платформы для веб-приложений.
Для создания...
Навигация во Flutter с использованием AutoRoute
Как настроить библиотеку пакетов AutoRoute? Как назвать страницы маршрута? Как управлять стеком и полностью очищать его, чтобы возвращаться на первую экранную страницу? Предлагаем краткое руководство по навигации во Flutter - оно даст ответы на эти и многие другие вопросы.
Rust или Си: кто Усэйн Болт в мире программирования?
Си — это сэнсэй черепашек-ниндзя
«Си — язык небезупречный, со странностями, но невероятно успешный». (Деннис Ритчи).
Си — это императивный язык программирования общего назначения и один...
Что возвращать в Go: структуры или интерфейсы?
В подробном руководстве исследуем преимущества и особенности возвращения структур и интерфейсов на Go. Рассмотрим реальные сценарии с практическими примерами, рекомендации, альтернативные стратегии.
Практическое применение KSP
Kotlin Annotation Processing Tool - ценный инструмент, который позволяет автоматизировать утомительные задачи, повысить качество кода, сделать его менее подверженным ошибкам и сократить время разработки. Рассказываем на примерах, как использовать KSP.
Как усилить электронные таблицы Google возможностями ChatGPT
Предлагаем улучшить электронные таблицы Google с помощью ChatGPT и начать работать с ними по-новому: более качественно, продуктивно и творчески.
PostgreSQL и MySQL: подробное сравнение
Изучим преимущества, ограничения и сценарии этих двух баз данных. Сравним их по многим аспектам, поможем сделать правильный выбор.
Многозадачность и параллелизм: руководство для начинающих
Многие новички в программировании путают понятия "многозадачность" и "параллелизм". Большинство ошибочно считает, что это одно и то же. Разберемся в сути этих понятий с помощью простых примеров, ярких образов и прозрачных аллегорий.
Корутины: основы
Часть 1, Часть 2
Эта серия постов подробно посвящена отменам и исключениям в корутинах. Отмена важна тем, что она помогает избежать выполнения большего количества...
Самые полезные библиотеки Go
Эти библиотеки всегда оказываются первыми в списке инструментов Go-разработчика при запуске нового проекта. Они помогают устранить избыточный код и позволяют создавать более качественные и быстрые приложения.
Реализуем функцию управления взглядом с помощью SwiftUI, ARKit и SceneKit
Предлагаем изучить опыт создания на SwiftUI hands-free приложения с применением ARKit и SceneKit. Для лучшего понимания возвращаемых значений будет использован также фреймворк SwiftUI Charts.
Жажда скорости: Python с расширениями С
Хотите, чтобы Python работал на всех скоростях? Тогда пора познакомиться с расширениями С. Узнаем, как их создавать, применять в программах Python, а затем сравним скорость программы с расширениями и без.
Как использовать инструменты статического анализа в коде Python
Научимся работать с такими инструментами статического анализа, как MyPy, Bandit и Radon. Они предоставляют мгновенную обратную связь об уязвимостях и ошибках в коде, а также снабжают разработчика полезными метриками.
Создание оркестратора для событийно-ориентированного приложения с Golang и RabbitMQ
Реализуем простое решение маршрутизации для отправки сообщений со стабильным потоком запросов, обработкой ошибок и соответственных действий. Это конвейер передачи запросов для системы бронирования гостиницы - резервирование, проверка, зачисление средств, бронь номеров - со всеми преимуществами архитектуры микросервисов и очередью недоставленных сообщений.
GitHub Actions: начало
Часть 1, Часть 2
В одной из последних статей я делала обзор GitHub Actions и показывала, как использовать существующий экшен для развертывания сайта Gatsby на...
Spring Boot: реализация фабричного метода
Шаблон Factory упрощает создание новых объектов и помогает прятать логику, ненужную для клиента. Предлагаем рассмотреть вариант реализации шаблона фабрики для простого приложения на Spring Boot.
Переменная __name__ в Python
Введение в переменную _ _name_ _ и варианты ее использования в Python
Скорее всего, вы встречали переменную __name__ при работе с кодом Python. Она выглядит следующим...
Знакомство с фабричным методом
Фабричный метод упрощает процесс создания объектов, делает код более удобным в обслуживании и обеспечивает ряд других преимуществ. Разберем принцип его работы на реальном примере создания игровых персонажей.
Рост производительности машинного обучения с Rust
Сделаем с нуля небольшой ML-фреймворк на Rust для создания нейросетевых моделей. За счет чего скорость обучения здесь в 5,5 раза выше, чем с Python и PyTorch?
Как вызвать из C# генерируемую на Rust библиотеку
Объединяем преимущества двух языков. Узнаем, как создать библиотеку на Rust, выполнить сборку и с помощью P/Invoke вызвать из C# ее функции.
Компонентный подход: реализация экранов с помощью библиотеки Decompose. Часть 2
В этой части рассмотрим с позиций компонентного подхода реализацию сложных экранов с использованием библиотеки Decompose. Используя описанные методы, вы сможете управлять экранами любой сложности.
Как оркестровать микросервисы с помощью Docker Compose
Развертывание приложений с микросервисной архитектурой - довольно громоздкий процесс, занимающий много времени. Уменьшить рабочую нагрузку позволяет Docker Compose, инструмент оркестрации контейнеров. Рассказываем об упрощенном создании микросервисных приложений на Spring Boot.
Разворачиваем декораторы. Часть 1
Предпосылки
Для начала я должен убедиться, что все одинаково хорошо разбираются в теме. Если вам хорошо известны такие понятия как: переменные, параметры, возвращение значений переменной...
Cosmo Route — молниеносный маршрутизатор с открытым исходным кодом и поддержкой Federation V1/V2
Elastic-лицензия Apollo Router мешает внедрению? Хотите работать еще быстрее? Для подобных случаев идеально подойдет Cosmo Router - быстрый маршрутизатор с открытым исходным кодом, совместимый с Federation V1/V2.
Долгожданные инструкции Switch-Case в Python
Python 3.10 обрел немало интересных возможностей, одна из которых привлекла мое внимание в особенности — структурное сопоставление с шаблоном, иначе говоря инструкции switch/case.
Несмотря на...
Структуры данных: связный список
Связный список - последовательность структур данных, связанных ссылками - вторая по частоте использования после массива структура данных. Рассмотрим основные операции и покажем пример на языке С.
Что говорить на поведенческом интервью по науке о данных
Произвести приятное впечатление на потенциального работодателя во время собеседования непросто. Тем не менее с этой задачей можно легко справиться, если следовать этим 3 простым лайфхакам.
Алгоритм Skyline для упаковки 2D-прямоугольников
Автор делится решением задачи упаковки двумерных прямоугольников в ограниченное пространство — вы найдете иллюстрации, итоговую анимацию работы алгоритма и конечно, код с достаточным количеством комментариев. В конце материала — таблица времени выполнения алгоритма в худших случаях.



































![В чём разница между [0] * 3 и [0, 0, 0] в Python? Только сеньоры знают правильный ответ В чём разница между [0] * 3 и [0, 0, 0] в Python? Только сеньоры знают правильный ответ](https://nuancesprog.ru/wp-content/uploads/2024/12/Python-pattern-4-218x150.png)


































































