Как пользоваться Thread.sleep на JVM без блокировки

Как пользоваться Thread.sleep на JVM без блокировки

У таких языков JVM, как Java и Scala, есть возможность запускать параллельный код с помощью класса Thread. Потоки, как известно, сложны и подвержены ошибкам,...
C++: полное руководство по Mutable

C++: полное руководство по Mutable

Разберем преимущества этого инструмента, типичные сценарии и потенциальные ошибки. Проиллюстрируем практическими примерами, дадим рекомендации.
Go & RabbitMQ

Рабочая очередь в Go с RabbitMQ

Мы создадим систему рабочих очередей, в которой будут появляться новые задания. Обработчики (workers) будут следить за очередью и выполнять работу по мере поступления. Система...
Kotlin & Android

Делегаты в Kotlin для Android

Kotlin действительно красивый язык, в котором есть очень крутые фичи. Из-за них разработка приложений становится веселым и захватывающим опытом. Одна из этих фич — делегированные свойства....
Python

Расширение Python с помощью C

Есть несколько способов ускорения кода Python: В первую очередь попробуйте сократить временную сложность. Выберите более быстрый алгоритм. В большинстве случаев этого более чем достаточно.Если первый...
Go: точечная вставка значения в структуру

Go: точечная вставка значения в структуру

Подробно и с примерами рассмотрим функционал мощного и элегантного пакета dot для сложноиерархических структур. На основе тестов дадим рекомендации по его использованию.
Глубокое погружение в Java: рефлексия и загрузчик классов. Часть 3

Глубокое погружение в Java: рефлексия и загрузчик классов. Часть 3

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

Python. Пять уловок, которые нужно знать, уже сегодня

Будь вы старшим инженером AI или студентом первого курса биологии — рано или поздно вы столкнётесь с языком программирования Python. После релиза, в 1991 году, Python...
Rust: реализация двоичного дерева

Rust: реализация двоичного дерева

Поскольку Rust приобрел довольно широкую известность и пополнил ряды своих преданных поклонников, я решил отложить в сторону любимый JS и заняться изучением нового языка....
Kotlin

Kotlin. Коллекции и последовательности

Kotlin из коробки предоставляет два способа обработки данных: энергичный для Collection и ленивый для Sequence. Collection и Sequence Разница между ленивыми и энергичными вычислениями в том, когда...
Python

Потоковые и многопроцессорные модули на Python

Главная идея потоков заключается в выполнении последовательности таких инструкций внутри программы, которые могут выполняться независимо от другого кода. Так в чём же разница между потоковой...
Разработка приложения на ChatGPT: пошаговое руководство

Разработка приложения на ChatGPT: пошаговое руководство

Разработка приложения на ChatGPT - идеальный вариант для того, кто ищет простой и эффективный способ создать уникальный продукт. Предлагаем пошаговое руководство с полезными рекомендациями по разработке приложения, отвечающего потребностям конкретного бизнеса.
Scrum: 5–3–5–3–3

Scrum: 5–3–5–3–3

В начале работы с Agile и Scrum, оказывая помощь коллегам, я обычно использовал комбинацию 3–5–3, где: первые “3”  —  три роли Scrum;“5”  —  пять событий...
Функциональное программирование на Python

Функциональное программирование на Python

Что такое функциональное программирование? Функциональные языки программирования разрабатываются специально для создания приложений, ориентированных на обработку списков или символьные вычисления, так как функциональное программирование основывается на...
Apple убивает Swift

Apple убивает Swift

В отличие от современных языков Python, Rust и Kotlin, великий Swift оказался задушен управлением корпораций. Поразмышляем о том, как диктаторское управление убивает наследие Латтнера и можно ли считать безнадежной текущую ситуацию с языком Swift.
Как создавать диаграммы с помощью ChatGPT

Как создавать диаграммы с помощью ChatGPT

Узнаем, как ChatGPT создает диаграммы на основе скриптов Mermaid. Проиллюстрируем весь процесс наглядными примерами и обойдемся без глубоких знаний Mermaid.
18 полезных скриптов автоматизации на Python. Часть 2

18 полезных скриптов автоматизации на Python. Часть 2

Эти скрипты значительно повысят вашу продуктивность и производительность. Они оптимизируют решение многих повседневных задач, включая сбор новостей, управление рабочим временем, организацию файлов, преобразование текстов, подсчет слов, создание голосовых заметок.
Адаптируем Android-приложение к большим размерам экрана с помощью классов window-size

Адаптируем Android-приложение к большим размерам экрана с помощью классов window-size

"Большой экран" становится популярным и быстрорастущим сегментом устройств Android. Самое время научиться оптимизировать приложение для любого размера экрана. Узнайте о классах window-size, рассмотрите сценарии их использовании в разных типах макетов навигации и закрепите материал с помощью реальной демонстрации.
20 экспертных советов по эффективному использованию Python

20 экспертных советов по эффективному использованию Python

Хотите раскрыть для себя весь потенциал Python, чтобы легко справляться со сложными проектами? Благодаря этим советам, а также практике и упорству, вы приобретете полезные навыки программирования на Python, которые помогут вам повысить эффективность кода.
Python

Как автоматизировать электронную почту с помощью Python

С помощью Python можно с легкостью автоматизировать ежедневные задачи. Используя комбинацию API и простых для понимания библиотек, можно настроить системы, которые выполняют скрейпинг веб-сайтов,...
Scala

Функциональное программирование со Scala: введение

Если вас интересует функциональное программирование, в этой статье вы найдете несколько важных аспектов этого направления и особенностей его работы в Scala. Классические программы порождают концептуальные...
7 Лучших курсов и книг по программированию на Rust для начинающих в 2021 году

7 Лучших курсов и книг по программированию на Rust для начинающих в 2021 году

Если вы хотите изучить в 2021 году язык программирования Rust и ищете какие-нибудь полезные ресурсы, например книги, руководства и онлайн-курсы, то эта статья специально...
Audio Data Analysis

Анализ аудиоданных с помощью глубокого обучения и Python (часть 2)

Предыдущая часть: Часть 1 Сверточные нейронные сети (CNN) схожи с обычными нейронными сетями: они состоят из нейронов с обучаемыми весами и сдвигами. Каждый нейрон получает...
Миграция UI-ориентированной библиотеки Android на Compose Multiplatform (Android/iOS)

Миграция UI-ориентированной библиотеки Android на Compose Multiplatform (Android/iOS)

Написать кроссплатформенный пользовательский интерфейс на Kotlin - уже не проблема. Теперь Android-разработчики могут создавать iOS-приложения на Kotlin с минимальными дополнительными усилиями. Убедитесь в этом на примере успешной миграции Android-библиотеки на Compose Multiplatform. 
Python

Пять отличных Python-библиотек для data science

Python — это лучший друг специалистов по данным, а библиотеки значительно упрощают их жизнь. Работая над NLP-проектом, я открыл для себя пять отличных Python-библиотек, которые мне...
Как создать простое Flutter-приложение ToDo с помощью Hive

Как создать простое Flutter-приложение ToDo с помощью Hive

Говорят, Hive - лучшая БД для локального хранения данных. Сейчас мы это и проверим на практическом примере создания приложения ToDo на Flutter.
Создание оркестратора для событийно-ориентированного приложения с Golang и RabbitMQ

Создание оркестратора для событийно-ориентированного приложения с Golang и RabbitMQ

Реализуем простое решение маршрутизации для отправки сообщений со стабильным потоком запросов, обработкой ошибок и соответственных действий. Это конвейер передачи запросов для системы бронирования гостиницы - резервирование, проверка, зачисление средств, бронь номеров - со всеми преимуществами архитектуры микросервисов и очередью недоставленных сообщений.
UnitTesting

Тестирование для не тестировщиков

Тестирование является одним из ключевых этапов разработки. Вне зависимости от того, над каким проектом вы работаете, тестирование — это залог того, что вы сможете поставлять качественные...
Презентации в терминале

Презентации в терминале

Забудьте о постоянных переключениях контекста, из-за которых убивается демонстрационный процесс. Создавайте терминальные презентации.
Python

Обработка аргументов в Python с помощью argparse

Если вы хотите разрабатывать ПО на Python, то умение использовать argparse в своих скриптах будет крайне полезным. Если же вы специалист по данным, то,...
Программа на C++ для перестановки цифр числа в обратном порядке

Программа на C++ для перестановки цифр числа в обратном порядке

В этой программе будем получать от пользователя число и переставлять цифры этого числа в обратном порядке. Начнем программу с заголовочного файла. #include <iostream> → непрерывный поток...
Сборка мусора в Java: что это такое и как работает в JVM

Сборка мусора в Java: что это такое и как работает в JVM

Что такое сборка мусора в Java? Сборка мусора  —  это процесс восстановления заполненной памяти среды выполнения путем уничтожения неиспользуемых объектов. В таких языках, как C и C++,...
Набор инструментов Go для работы с микросервисами

Набор инструментов Go для работы с микросервисами

REST и gRPC: идеальное сочетание Микросервисы обычно работают на фреймворках HTTP и RPC, таких как REST и gRPC. REST построен на основе объектно-ориентированного проектирования  —  подхода,...
Работа с GitHub Actions на маркетплейсе

Работа с GitHub Actions на маркетплейсе

Поиск экшенов Для этого есть два способа. Непосредственно в маркетплейсе GitHub  В маркетплейсе размещается два вида инструментов для расширения основной функциональности GitHub: Приложения.Экшены. Для поиска экшенов в самом маркетплейсе...
Python

Инструменты для создания виртуального окружения в Python

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

Считаете, что Python лучше всех? Просто вы не имели дело с Rust

“Технологии прошлого спасут будущее от себя самого”, — так Грэйдон Хор, создатель Rust, пояснял, чего хотел достичь. Одна их ключевых черт Rust — использование технологий, хорошо знакомых академической среде,...
Что такое Flutter и зачем его изучать?

Что такое Flutter и зачем его изучать?

Сегодня доступно множество инструментов для мобильной разработки. Одним из них является Flutter, который в последнее время стал довольно популярным. Рассказываем, в чем секрет успеха Flutter и почему стоит обратить на него внимание.
Python

Идиоматический Python для новичков

Python — это язык программирования общего назначения, который широко используется в таких областях, как научные вычисления, искусственный интеллект, веб-разработки, финансовое моделирование и многих других. Одна из...
Python

Как я создал веб-скрапер на Python для поиска жилья

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

Глубокое погружение в Java: рефлексия и загрузчик классов. Часть 2

В этой части статьи углубимся в механизм загрузки классов. Этот процесс в Java тесно связан с рефлексией, поскольку направлен на внедрение нового поведения в программу во время выполнения.
Реляционные базы данных в контейнерах Docker Compose

Реляционные базы данных в контейнерах Docker Compose

Простое и быстрое руководство по контейнеризации базы данных MySQL.
Многопоточность на Rust: ускоряем приложения, делаем их эффективнее

Многопоточность на Rust: ускоряем приложения, делаем их эффективнее

Продемонстрируем мощный подход к выполнению операций в многосхемных базах данных и к параллельной обработке данных. Из строгой системы типов Rust, асинхронных возможностей и потоковой модели создадим надежное приложение.
Android

Шаблон Repository в Android

Вот 5 самых распространенных ошибок (некоторые из них также есть в официальной документации Android): Repository возвращает DTO (объект передачи данных) вместо доменной модели.Источники данных (ApiServices,...
Программируем с ChatGPT: 10 советов

Программируем с ChatGPT: 10 советов

Хотите извлечь максимальную пользу из ChatGPT? Эти советы помогут ускорить работу, внедрив в нее ChatGPT, но при этом не допустить критических ошибок.
Как улучшить навыки работы с Python в 2023 году

Как улучшить навыки работы с Python в 2023 году

Хотите узнать, как повысить эффективность вашего кода с точки зрения времени выполнения и сохранения памяти? Воспользуйтесь советами, которые помогут перейти на новый уровень написания кода Python.
Почему не стоит использовать or для проверки нескольких условий в Python

Почему не стоит использовать or для проверки нескольких условий в Python

Все еще пользуетесь or для проверки условий при программировании на Python? Разберем несколько причин, почему делать этого не стоит.
Jupyter

Как легко оптимизировать Jupyter Notebook. Часть 2

Руководство для начинающих о том, как сделать Jupyter Notebook быстрее, мощнее и круче Часть 1, Часть 2 Магические команды (Magic) Magic — это отличные команды, упрощающие нашу жизнь при решении определенных...
Мутационное тестирование: создай мутанта и прокачай тест

Мутационное тестирование: создай мутанта и прокачай тест

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

Java-библиотеки, которые повысят вашу производительность

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

Развертывание приложений Python в Azure

Хотите легко создавать и использовать приложения, делая их доступными для других людей? Предлагаем пошаговый гайд по развертыванию рабочего приложения Python с помощью фреймворка Streamlit в облачной среде Azure.
Fake-объекты практичнее mock-объектов

Fake-объекты практичнее mock-объектов

Стоит помнить  —  если вы имеете дело с неудачно разработанным API, предпочтительнее использовать mock-объекты. Пример кода. Что такое mock- и fake-объекты Определения можно найти во множестве статей...
Как PyPy ускоряет Python до уровня C?

Как PyPy ускоряет Python до уровня C?

Обзор PyPy, быстрого интерпретатора Python: улучшение производительности программы без изменения кода!
Go

Отладка Go для профессионалов

Многие разработчики редко используют отладчик при возникновении проблем в коде. Если вы пишете модульные тесты и используете линтинг и рефакторинг, то этот быстрый и...
Незаслуженно забытый ForkJoinPool

Незаслуженно забытый ForkJoinPool

Всем известно о новых функциях, которыми нас порадовал JDK 8, и, вероятно, трудно найти Java-разработчика, который не знает, что такое Java Streams, лямбды или...
Регулярные выражения в Python: необходимый запас знаний

Регулярные выражения в Python: необходимый запас знаний

Хотите овладеть силой регулярных выражений? Тогда вы обратились по адресу. Расскажем об основных принципах их действия, раскроем значения ключевых символов и рассмотрим 3 конкретные ситуации использования.
Используй git-команды, как senior developer

Используй git-команды, как senior developer

Как разработчику вам наверняка приходится ежедневно использовать Git. Базовым Git-командам посвящено уже много статей. В этой же статье речь пойдёт о git-командах для продвинутых:...
Язык C: основы синтаксиса

Язык C: основы синтаксиса

От ознакомления с базовой программной структурой C перейдем к усвоению других строительных блоков этого языка.
Мир Docker и Kubernetes в аналогиях с жизнью разработчика

Мир Docker и Kubernetes в аналогиях с жизнью разработчика

Новый подход к объяснению основных концепций платформы Kubernetes! Автор находит аналогии объектам K8s в реалиях разработчика, что значительно упрощает понимание принципов их работы.
Ссылки на методы в Java

Ссылки на методы в Java

Ссылки на методы появились вместе с лямбда-выражениями в Java 8, и с тех пор упрощают жизнь разработчикам. Но у их применения есть некоторые ограничения. Как обойти одно из них - на использование метода с параметром - расскажем в этом материале.
17 полезных скриптов автоматизации на Python. Часть 1

17 полезных скриптов автоматизации на Python. Часть 1

Эти скрипты значительно повысят вашу продуктивность и производительность. Они оптимизируют решение многих повседневных задач, включая сбор изображений, анализ качества кода, создание искусственных данных, мониторинг системных ресурсов, обработку email-рассылок, резюмирование статей, корректуру текстов.
Обработка событий по времени в бессерверной архитектуре

Обработка событий по времени в бессерверной архитектуре

Бессерверность  —  мир событий Когда-то в качестве серверов все размещали непрерывно запущенные демоны, но теперь мы вступаем в бессерверную эру, когда все запускается событиями. Это очевидно, если...
Придет ли язык программирования Mojo на смену Python?

Придет ли язык программирования Mojo на смену Python?

Mojo считается крупнейшим из последних достижений в сфере разработки языков программирования. Высказываются даже предположения, что Mojo станет заменой Python. Каковы же на самом деле шансы Mojo стать новым Python?
Android

Последовательное объединение адаптеров с помощью MergeAdapter

Пример использования: отображение верхнего и нижнего колонтитулов списка. MergeAdapter — это новый класс, доступный в recyclerview:1.2.0-alpha02, который позволяет последовательно объединять несколько адаптеров для отображения в одном RecyclerView....
Роль метода Stream.map() в Java

Роль метода Stream.map() в Java

Для многих задач в Java метод map() предоставляет гибкие и лаконичные решения. Ознакомьтесь с ними, чтобы понять, как работает этот метод и в каких случаях он может быть полезен. Применяя его в реальных сценариях, вы упростите код, повысив его читаемость и удобство при сопровождении.
Альтернатива Java 8: что умеет VAVR

Альтернатива Java 8: что умеет VAVR

Обзор на крайне полезную Java-библиотеку: вкратце рассмотрим примеры ее функциональных возможностей и сравним с тем, что предоставляет Java 8 по умолчанию.
7 признаков того, что Flutter готов к разработке корпоративных приложений

7 признаков того, что Flutter готов к разработке корпоративных приложений

Есть ли у Flutter будущее в корпоративной сфере? Ответить на этот вопрос разработчики смогли только после бета-тестирования движка. Flutter доказал свою перспективность, предоставив программистам массу встроенных средств, облегчающих разработку платформозависимых приложений.
Превратите свой Java-код в полностью асинхронный

Превратите свой Java-код в полностью асинхронный

Асинхронное программирование становится все популярнее благодаря своим преимуществам. Изучим, как добиться асинхронности в Java - на помощь в этом придут CompletionStage и AutoValue.
Навигация по ландшафту ИИ в 2024 году: тренды, прогнозы, возможности. Часть 1

Навигация по ландшафту ИИ в 2024 году: тренды, прогнозы, возможности. Часть 1

2024-й обещает стать годом инноваций, когда ИИ и технологии объединятся, чтобы перекроить карты наших возможностей. Заглянем в ближайшее будущее нейронных сетей, векторных данных, экосистемы агентов ИИ, а также уникальных смарт-девайсов, меняющих наш образ жизни.
Как освоить API-интерфейсы Metal с UIView и SwiftUI

Как освоить API-интерфейсы Metal с UIView и SwiftUI

Раскроем возможности программирования графических процессоров с Metal для создания сложной 3D-графики, обработки изображений и других задач. Предоставим фрагменты кода и рекомендации для применения Metal в собственном приложении iOS или macOS.
C++: полное руководство по динамическим массивам

C++: полное руководство по динамическим массивам

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

Как использовать бесплатный хостинг для временных серверов и прототипов

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

Введение в байт-код Java

Каждому Java-разработчику известно, какую роль в экосистеме языка играет JVM. Однако большинство не разбирается в том, как работает JVM под капотом. Хотя для разработки...
Как зарабатывать с помощью Python в 2023 году

Как зарабатывать с помощью Python в 2023 году

Извлечь выгоду из навыков программирования можно разными способами. Представляем список навыков Python, которые принесут доход в условиях конкуренции.
Kotlin

Ключевое слово vararg и оператор spread в Kotlin

Что осталось за кадром? В некоторых случаях необходимо определить функцию с переменным числом параметров; Вот пара примеров, с которыми вы, вероятно, сталкивались в Android:printf(String format, Obj......
AWS

Создание бесчисленных областей предпросмотра в AWS с помощью Lambda@Edge

Целью большинства команд веб-разработки является переход к непрерывному развёртыванию, для которого одним из существенных факторов может послужить наличие у каждой ветви функции собственного URL...
10 примеров для изучения модуля JSON в Python

10 примеров для изучения модуля JSON в Python

Модуль json - мощный инструмент Python для работы с данными JSON. Рассмотрим 10 примеров, демонстрирующих общие задачи, которые можно выполнять с помощью этого модуля.
Битва 4 инструментов визуализации данных на языке Python

Битва 4 инструментов визуализации данных на языке Python

Предлагаем сравнить потенциал Pyecharts, Plotly, Matplotlib и Seaborn, а также возможности использования каждого инструмента (на примерах визуализации данных фондового рынка).
Python

Как быстро найти проблемы с Python-типами через Pytype

Если вы работаете над большим проектом на Python или предпочитаете лаконичную и понятную базу кода, то Pytype станет для вас отличным помощником. Python — это отличный язык...
SQL в браузере  -  веб-оболочка DuckDB для анализа локальных данных

SQL в браузере  —  веб-оболочка DuckDB для анализа локальных данных

Как анализировать данные намного проще и полнофункциональнее, чем в Excel? Сделаем локальный файл доступным для SQL-операций с DuckDB, преобразуем в реальную таблицу, доберемся до файлов на GitHub и S3.
Утилитные классы в Kotlin с точки зрения Java-разработчика

Утилитные классы в Kotlin с точки зрения Java-разработчика

Разобравшись, в чем заключаются различия в реализации утилитных классов в Kotlin и Java, вы сделаете важный шаг в освоении языка Kotlin. Будь вы опытный Java-разработчик, желающий расширить спектр своих навыков, или новичок в программировании, уделите внимание этому аспекту.
Python Pandas

Максимальная производительность Pandas Python

В этой статье мы докажем, что использование Nuclio и RAPIDS, бесплатной open-source платформы для ускорения обработки данных от NVIDIA, может значительно увеличить производительность Python. Я...
CProgramming

Использование методов расширения в C# для элегантного и плавного кода

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

5 малоизвестных компонентов Compose

Jetpack Compose Material 3 скрывает целый арсенал малоизвестных, но крайне полезных компонентов. Они помогают решать специфические UI-задачи быстрее и создавать более продуманный пользовательский опыт. В этой статье рассмотрим пять таких "скрытых жемчужин".
Реализация тематических фильтров новостей в приложении TrendNow. Часть 3

Реализация тематических фильтров новостей в приложении TrendNow. Часть 3

Эта часть посвящена реализации тематического фильтра трендовых новостей в агрегаторе. Вы узнаете, как добиться отображения трендовых новостей на основе выбранной пользователем темы, сохранять выбранную тему в локальном хранилище с помощью DataStore и оптимизировать рекомпозиции.
Борьба с веб-скрейперами с помощью Rust

Борьба с веб-скрейперами с помощью Rust

Боты, использующие инструменты веб-скрейпинга, могут быть использованы злоумышленниками в самых неприглядных целях. Можно ли им противостоять? Да! Сегодня рассмотрим мощный инструмент для борьбы с такими непрошенными гостями, построенный на Rust.
Python

Давайте разберемся с нижним подчеркиванием (_) в Python

Символ нижнего подчеркивания Символу нижнего подчеркивания (_) в Python присущ ряд особенностей. В большинстве языков программирования (хотя, конечно же не во всех) этот символ используется в...
Аттестации: новое поколение подписей в PyPI

Аттестации: новое поколение подписей в PyPI

Представляем читателям обзор аттестаций PyPI в цифрах и диаграммах с конкретным примером и, конечно же, кодом. В материале также рассказывается о том, кому и зачем понадобится механизм. Особое внимание авторы уделяют происхождению пакета, которое позволяет отследить процесс появления пакета вплоть до конкретного устройства.
Python

Строковые методы в Python

Узнайте, какие встроенные методы Python используются в строковых последовательностях Строка — это последовательность символов. Встроенный строковый класс в Python представлен строками, использующими универсальный набор символов Unicode. Строки...
python

Как создавать анимированные графы в Python

Matplotlib и Seaborn — вполне приличные Python-библиотеки для создания превосходных графиков. Но такие графики получаются статичными, и крайне трудно подобрать для них красивое представление данных или...
Создание собственной симуляции активной материи на Python

Создание собственной симуляции активной материи на Python

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

Владеешь merge  -  освой и rebase

В центре внимания - две команды Git: merge и rebase. Рассмотрим случаи применения каждой из них, сравним результаты и выявим отличия.
Python

Введение в модульное тестирование на Python

Вы только что написали фрагмент кода и не знаете, что делать дальше. Отправлять ли pull request, чтобы коллеги провели ревизию кода или же протестировать...
Python

Осваиваем веб-скрэпинг на Python

В этой короткой статье рассказывается про методику вэб-скрэпинга (англ. web scraping) - набор инструментов по извлечению данных с сайтов. Если вы сталкивались с проблемами...
Software

Как ваша программа использует память

Программирование на языках, которые позволяют взаимодействовать с памятью на более низком уровне, как например в C и C++, иногда доставляет немало проблем, с которыми...
Понимание и реализация смарт-указателя Arc и мьютекса на Rust

Понимание и реализация смарт-указателя Arc и мьютекса на Rust

Изучим модель владения, функционал потоков области видимости, попробуем самостоятельно разобраться с типажами-маркерами Send и Sync.
Java: оператор try-with-resources

Java: оператор try-with-resources

Изучим синтаксис try-with-resources, его преимущества по сравнению с традиционными блоками try-finally и нюансы управления ресурсами. Приведем практические примеры.
Docker

Docker для разработки Go с горячей перезагрузкой

Создание модуля Go В Go 1.13 были введены модули. Это означает, что больше не нужно размещать все проекты в одно рабочее пространство Go. Для начала создаем...
C++: подробно о реализации двусторонней очереди

C++: подробно о реализации двусторонней очереди

Изучим особенности реализации deque, ее отличия от vector и разберем нюансы производительности. Проиллюстрируем примерами и реальным сценарием.
Machine Learning

Распознавание лиц с помощью CoreML и ARKit

Создаём приложение с одним окном Для начала нам понадобится создать iOS проект «single view app» (прим: автор работает в Xcode). Теперь у нас есть проект. Мы обойдёмся...
Как стать Android-разработчиком за 2 месяца

Как стать Android-разработчиком за 2 месяца

Хотите всего за пару месяцев научиться разрабатывать приложения с нуля? Воспользуйтесь простым руководством для начинающих по созданию первого в жизни Android-приложения.
Устаревшие фреймворки JavaScript: как не потратить время на бесполезные технологии?

Устаревшие фреймворки JavaScript: как не потратить время на бесполезные технологии?

Список устаревших библиотек JavaScript и недостаточно популярных технологий, которые потратят ваше время впустую.
Почему я перехожу с Python на Rust

Почему я перехожу с Python на Rust

Что может заставить программиста, который 10 лет предпочитал Python другим компьютерным языкам, перейти на Rust? Узнайте о 5 проблемах Python и о том, как Rust решил эти проблемы.
Gapminder

Создание анимации Gapminder двумя строчками кода с помощью Plotly Express

«Дисклеймер: мною использовался новый модульplotly_express, сама анимация Gapminder не создавалась с нуля всего двумя строчками.» Один из значимых моментов в истории визуализации данных — презентация...
Как создать эффективную систему логирования с использованием Aspect и Spring Cloud Sleuth

Как создать эффективную систему логирования с использованием Aspect и Spring Cloud Sleuth

Логирование крайне важно для оперативного отслеживания ошибок в приложении и установления причины этих ошибок. Разберемся, как без особых усилий настроить фреймворк для логирования в приложении Spring Boot.
Непрерывная интеграция и развёртывание ПО: лучшие практики

Непрерывная интеграция и развёртывание ПО: лучшие практики

Непрерывная интеграция и развёртывание (CI/CD)  —  это гибкая методология, используемая многими организациями. Она помогает им эффективно и безопасно поставлять своё программное обеспечение.