Тренды

Все что касается разработки: образовательные статьи, тренды, технологии, языки, фреймворки и многое другое!

CPP

[C++] часть 1: многопоточность, конкурентность и параллелизм: ОСНОВЫ

Простое руководство по изучению многопоточности, конкурентности и параллелизма в C++ Вначале, когда ещё только состоялось моё знакомство с многопоточностью в C++, многое было мне непонятным...
Mock

Начнем работу с Mock в Python

Предисловие Mock - это просто объект, который создает пустой тест для определенной части программы. Вместо вызова обычной проверки, вы вызываете mock и смотрите, как проходит тест...
Docker

Docker: привязываем порты

Решаем вопрос с портами раз и навсегда Вы когда-нибудь были на собеседовании на должность младшего разработчика, где от вас ожидали, что вы знаете, как работает Docker?...
Python

Овладей Python, создавая реальные приложения. Часть 1

Создаем интерактивный словарь В этой серии из 10 статей мы будем использовать Python для написания 10 реальных приложений. И в процессе создания этих приложений мы...
Regex

Шпаргалка по регулярным выражениям. В примерах

Регулярные выражения (regex или regexp) очень эффективны для извлечения информации из текста. Для этого нужно произвести поиск одного или нескольких совпадений по определённому шаблону...
Python

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

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

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

Руководство для начинающих о том, как сделать Jupyter Notebook быстрее, мощнее и круче Самое классное в технологиях— это множество людей, которые усердно трудятся для улучшения нашей...
Python

10 инструментов Python для работы с изображениями

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

Начало работы с Elasticsearch

Что такое Elasticsearch? Elasticsearch(ES) — это распространенная поисковая система с открытым исходным кодом, основанная на индексе Lucene. Написана она на языке Java и доступна для многих платформ....
Python vs Node.Js

Python или Node.Js: какой язык программирования выбрать?

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

Как создавать веб-сокеты в Python

WebSocket — протокол связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени. — Википедия Мы научимся настраивать собственный веб-сокет на Python, используя WebSockets...
Python

Изучение Python: от нуля до мастера

Первым делом спросим себя, что такое Python? Создатель языка, Гвидо ван Россум, описывает его следующим образом: "Язык программирования высокого уровня, главная идея которого - это...
Python

Python: статические методы, методы класса и экземпляра класса

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

Корутины Kotlin: как работать асинхронно в Android

Kotlin предоставляет корутины, которые помогают писать асинхронный код синхронно. Android — это однопоточная платформа, и по умолчанию все работает на основном потоке (потоке UI). Когда настает...
Python

Управляем интернетом с помощью Python

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

Автоматизация работы с Python

Введение Работу по вводу данных можно разделить на следующие категории: Извлечение данных из таблиц (Excel, Google Sheets) и перемещение их в другое место (веб-страница или другая...
C++

Языки C и C++. Где их используют и зачем?

Сфера применения C и C++ на удивление широка. Даже в сегодняшнем мире, несмотря на всё многообразие современных надёжных инструментов, эти два языка программирования остаются...
Долгожданные инструкции Switch-Case в Python

Долгожданные инструкции Switch-Case в Python

Python 3.10 обрел немало интересных возможностей, одна из которых привлекла мое внимание в особенности  —  структурное сопоставление с шаблоном, иначе говоря инструкции switch/case. Несмотря на...
Go & RabbitMQ

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

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

Кто на свете всех сильнее - Java, Go и Rust в сравнении

Мне показалось интересным провести сравнение между Java, Go и Rust. Речь идет не о бенчмарке, а о сравнении таких характеристик, как размер выходного исполняемого...
Docker

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

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

Корутины: основы

Часть 1, Часть 2 Эта серия постов подробно посвящена отменам и исключениям в корутинах. Отмена важна тем, что она помогает избежать выполнения большего количества...
Python

15 Python пакетов, которые нужно попробовать

Подборка самых полезных и разноплановых Python-пакетов с PyPI За что мы любим Python? Для начала, это — красивый и простой в изучении язык. Но есть и другая причина:...
Audio Data Analysis

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

Введение Аудиоанализ - область, включающая автоматическое распознавание речи (ASR), цифровую обработку сигналов, а также классификацию, тегирование и генерацию музыки - представляет собой развивающийся поддомен приложений...
Golang

Идеальная настройка вашего Golang проекта

Часть 1, Часть 2, Часть 3 При запуске нового проекта самые большие трудности у меня всегда вызывала его настройка. Всегда стараешься сделать её «идеальной»: используешь лучшую...
Kotlin

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

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

5 ключевых понятий Python и их магические методы

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

20 фрагментов Python, которые стоит выучить прямо сегодня

Python — язык программирования без лишнего синтаксиса. Читаемость и простота дизайна — две основные причины его огромной популярности. Как говорится в дзене Python: Красивое лучше, чем уродливое.Явное лучше, чем неявное. Вот...
Java

Java для начинающих. Часть 1 из 4

Часть 1, Часть 2, Часть 3, Часть 4 Данные статьи помогут легко и быстро разобраться в концепциях и программировании на Java. Даже при нулевых знаниях о...
Java

Плюсы и минусы программирования на Java

Не так много технологий могут похвастаться тем, что они актуальны уже более 20 лет. Однако в этом году Java заняла пятое место в списке...
Visual Studio Code

Проекты на Python с помощью Visual Studio Code

Зачем использовать виртуальные среды в науке о данных? Управление зависимостями играет важную роль для разработчиков пакетов и ПО. Но как насчет специалистов по науке о...
Golang

Как сделать приложение-чат с Redis, WebSocket и Go

Протокол WebSocket предоставляет двунаправленный (сервер и клиент могут обмениваться сообщениями) и полнодуплексный (сервер или клиент могут отправлять сообщения одновременно) канал связи, подходящий для сценариев...
Python

Вы умеете говорить на Python?

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

Как работает функция Defer в Golang

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

Контейнеризация в Python. Часть 1

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

Почему Python не станет языком программирования будущего

Причины популярности Python Успех Python отражается в тенденциях Stack Overflow, рассчитанных по количеству тегов в постах, что является довольно хорошим показателем популярности языка, учитывая размер...
22 сниппета на Python для повседневных задач

22 сниппета на Python для повседневных задач

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

Учимся писать строки документации в Python

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

Скрипт для WhatsApp-сообщений в 20 строках кода Python

В повседневной рутине мы часто забываем о близких. А ведь можно воспользоваться WhatsApp! То, с какой регулярностью родители шлют мне с утра пораньше сообщения — засыпая...
Python

Обработка естественного языка в Python. Основы

Я описал инструменты и методы для новичков, имеющих только общее представление в данной теме. Если вы более опытный практик, вам нужны вторая часть о...
Python

Топ-10 магических команд в Python, которые повысят вашу продуктивность

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

Go. Прорабатываем 25 основных вопросов собеседования

Go, иначе называемый Golang, является открытым языком программирования, который похож на C, но при этом оптимизирован для более быстрой компиляции, удобной реализации конкурентности и...
Android

Новое в Android 11

Оцените превью для обновлений некоторых уже существующих функций, а также доступных нововведений, таких как IME animation control. Синхронизированные анимации IME Идея заключается в том, что IME (редактор...
Python

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

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

10 отличных JavaScript библиотек на 2020 год

JavaScript  —  язык интернета. Вы можете запускать его в браузере или на сервере, а можете использовать для мобильных приложений. Хотя он и хорош сам по...
Python

Магические методы в Python

Создание объекта dict, принимающего только целые и плавающие числа в качестве значений В этом сценарии мы реализуем класс, который создает объекты-словари, принимающие только целые и...
Python

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

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

Элегантное ООП в Python

Разбираемся с магическими методами в Python, облегчающими жизнь с ООП. Вам понравится! Что за магические методы?  Магические методы  —  это специальные методы в python, обрамленные двумя...
Python

Давайте синхронизировать потоки в Python

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

Вероятность в Python: перестановки и сочетания

Теория вероятности не сложная, по крайней мере, на уровне, необходимом для начала работы в науке о данных. Возможно, прошло какое-то время с тех пор,...
Golang

Создание интерфейсов RESTful API в Golang

Часть 1, Часть 2, Часть 3 В предыдущей статье мы говорили о создании «идеальной» настройки для Golang проекта. Теперь пришла пора найти для неё...
Algorithms

Решение алгоритмических проблем: Поиск повторяющихся элементов в массиве

Проблема Найти дубликат в массиве Given an array of n + 1 integers between 1 and n, find one of the duplicates. If there are multiple possible...
Golang

Конкурентность и параллелизм в Golang. Горутины.

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

Фреймворк Executor в Java

Вплоть до Java 5 создавать потоки и управлять ими было возможно только на уровне приложения. Объекты Thread требуют значительного объема памяти. Таким образом, если...
Golang

Введение в каналы Golang

Golang использует горутины для параллельного программирования. На них можно ссылаться как на подзадачи для приложения. Если вы новичок в Golang, то рекомендую для начала...
SQL

Как использовать Flutter с SQLite

Введение SQLite появилась в 2000 году и с тех пор стала одним из самых популярных решений для встраивания баз данных в локальные приложения. Давайте в...
CProgramming

Новейшие возможности C# 9

В преддверии релиза .NET 5, объединяющего среды выполнения .NET, Microsoft недавно анонсировали возможности, которые будут включены в C# 9. О выпуске финальной предварительной версии C# было...
7 способов повысить свою продуктивность в Python

7 способов повысить свою продуктивность в Python

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

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

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

Импорт в Python

Импорт в Python. Основы В Python ключевое слово import применяется для того, чтобы сделать код в одном модуле доступным для работы в другом. Импорт в Python...
Python

Сможете ли вы решить эти 3 «простые» задачи на Python?

Правильное решение вас удивит Попробуйте решить эти задачи самостоятельно, а потом проверьте себя по готовым ответам. Подсказка: У всех задач есть нечто общее. Так что если разобраться...
Rust: взгляд старого программиста

Rust: взгляд старого программиста

Так сложились обстоятельства, что у меня возник перерыв в работе, в который я решил переключиться на Rust. Название этого языка резонировало с моим настроением,...
Golang

Golang — изящная обработка ошибок

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

Как скрывают секретные ключи и пароли в Python

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

Основы программирования TCP-сокетов на Java

Клиент-серверная архитектура — наиболее распространенная структура приложений в Интернете. В этой архитектуре клиенты (т.е. персональные компьютеры, устройства Интернета вещей и т. д.) сначала запрашивают ресурсы с...
Python

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

Одна из сильнейших сторон Python - способность выполнять любые задачи. Его стандартная библиотека предоставляет достаточно функций для написания множества полезных сценариев и инструментов. А...
Python

Проверка типов в Python

Почему мы используем проверку типов? Помощь типов внесла существенные изменения в систему нашей разработки платформы Tiqets. Среди очевидных преимуществ:  Понижение когнитивной нагрузки при работе с кодом. Типы...
Python

Прокачка Jupyter Notebooks

Я открыл для себя Jupyter Notebooks несколько месяцев назад, когда всерьёз занялся машинным обучением. То, как всё работает в браузере, сначала откровенно восхитило, но...
Python

Логи в Python. Настройка и централизация

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

Игра на C# меньше 8 Кб

Как уменьшить размер исполняемого файла C#? Как человеку, выросшему во времена дискет и 56 Кбит модемов, мне всегда нравились небольшие программы. Я мог поместить много небольших...
Python

3 секретных оружия в арсенале Python

Я уже пишу на Python более 5 лет. Примечательно, что при этом мой арсенал инструментов с течением времени не увеличивался, а наоборот уменьшался. Многие...
Docker

Список важнейших команд в Docker

Содержание #1. Сборка; #2. Запуск контейнеров; #3. Отладка контейнеров; #4 О Docker в AWS ECS; #5. Очистка образов Docker; #6. Извлечение образов Docker из удалённого регистра; #7. Экспорт и импорт...
Clean Architecture в Android для начинающих

Clean Architecture в Android для начинающих

Даже до того, как я начал специализироваться на Android, меня, как разработчика, всегда восхищал хорошо структурированный, чистый и понятный в целом код. “Задача архитектуры программного...
Anaconda

Знакомство с Anaconda: что это такое и как установить

Простое руководство по Anaconda и его установке на Ubuntu 16.04 (64-bit). Что такое Anaconda? Перед тем, как изучать Anaconda, рассмотрим Conda. Цитируем определение Conda с официального блога: Conda — это...
Python

Attr - одна из лучших практик объектно-ориентированного Python

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

Пишем интерфейсы командной строки в Python как профи

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

Избегайте этих нелепых ошибок при работе с Python

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

Руководство по использованию регулярных выражений Python

Одна из главных задач при работе с текстовыми данными — это создание множества текстовых функций. Некоторые функции ищут конкретные паттерны в тексте, например, адреса электронной почты или...
9 странностей Python для C++ программистов

9 странностей Python для C++ программистов

Python можно назвать странным языком программирования. По крайней мере, когда вы переходите с других языков вроде C, C++, C#, Java, PHP или JavaScript. Все эти...
Android

Шаблон Repository в Android

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

Советы по Docker: очистка локального компьютера

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

Создаем чат-бот в Python с помощью nltk

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

Руководство по анализу данных с SQL

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

5 задач для Python

Лучший способ укрепить знания и попрактиковаться в Python Цель этой статьи — помочь вам разобраться в основах языка, а не поделиться готовыми ответами, которые легко вызубрить и списать. 5...
Знакомство с функциональным программированием в Python, JavaScript и Java

Знакомство с функциональным программированием в Python, JavaScript и Java

Функциональное программирование (ФП) представляет собой процесс создания ПО путем компоновки чистых функций. В современном мире работодатели ищут программистов, способных применять к решению задач различные...
CPP

[C++] часть 2: МЬЮТЕКС. Пишем наш первый код для многопоточной среды

Часть 1, Часть 2 В прошлой статье мы разобрались с тем, что такое конкурентность/параллелизм и зачем нужна синхронизация. Настала пора изучить примитивы синхронизации, которые предлагает...
VSCode

Пишем быстрее в любой IDE

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

Строим собственный блокчейн на Python и разбираемся в его особенностях

Перед тем как начать строить блокчейн, необходимо понять его основы. Блокчейн  —  это технология, используемая для записи и хранения данных. Например, он может содержать информацию...
Сборка мусора в Java: что это такое и как работает в JVM

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

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

7 ошибок Python, от которых стоит немедленно избавиться

Введение Python относительно прост в освоении, но, учитывая его обширный функционал, в нём легко допустить ошибку. Кроме того, ошибки в течение длительного времени могут оставаться...
Создаем собственную Alexa в 20 строках Python

Создаем собственную Alexa в 20 строках Python

У всех моих друзей есть Alexa, а у меня нет, из-за чего они надо мной смеются. Натерпевшись вдоволь, я решил: “Хватит!”. Я связался со своей...
Unix

Терминал: 3 команды для продуктивности

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

Изучаем Python: генераторы, стримы и yield

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

Примитивы синхронизации в Go

Изучаем Mutex, WaitGroup и Once с примерами В данной статье кратко рассмотрим некоторые конструкции низкоуровневой синхронизации, которые наряду с горутинами и каналами предлагает нам один...
Python

Отправляем E-mail с помощью Python

Я участвую в разработке одного проекта на работе. Мы разрабатываем прототипы Raspberry Pi и специальное программное обеспечение. Хоть и разработанное ПО работает блестяще, нам...
Когда и зачем использовать оператор := в Python

Когда и зачем использовать оператор := в Python

Совсем недавно Python 3.8 представил оператор присвоения с двоеточием :=, аналогичный оператору присвоения =. Использование этого оператора позволяет ускорить и сократить код. Эта нотация берёт своё...
Python

30 полезных сниппетов на Python, которые можно освоить за 30 секунд

Python — один из популярнейших языков, который активно используется в анализе данных и машинном обучении, при разработке ПО, в автоматизации и так далее. Такая...
Golang

Обработка ошибок в Golang с помощью Panic, Defer и Recover

В Golang предусмотрен простой интерфейс для ошибок. Любая ошибка, возвращаемая в Golang, следует такому определению интерфейса: type error interface { Error() string } Создание сообщения об...
Golang

Настройка Swagger документации для API в Golang

Часть 1, Часть 2, Часть 3 В предыдущей статье мы создали RESTful API в Golang. Теперь, когда у нас есть готовый проект, надо понять, как...
Python

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

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

Основные принципы дизайна для НЕ дизайнеров

Я сформировала этот список, посредством многолетнего наблюдения за своими друзьями НЕ дизайнерами, семьей и коллегами, которым постоянно приходится сталкиваться с необходимостью применения дизайна в...
Linux Windows

Как установить Linux Mint рядом с Windows 10 [инструкция для чайников]

Итак, вы решили перейти на Linux. Хорошее решение! А еще лучше, если вы выбрали Linux Mint! Linux Mint — один из лучших дистрибутивов для новичков. В установке...
Life Lessons

Результаты ежегодного опроса программистов «New Coder Survey 2018»

Более 31.000 человек приняли участие в ежегодном опросе программистов со всего света, под названием New Coder Survey, предоставив исследователям беспрецедентные сведения о том, как...
Database

Почему в базе данных происходит взаимоблокировка?

Круг вопросов для обсуждения Попробуем объяснить, что такое взаимная блокировка и почему она возникает в базе данных. Напишем SQL-инструкции и искусственно вызовем взаимоблокировку, а также обсудим...
Распознавание звуков с помощью глубокого обучения

Распознавание звуков с помощью глубокого обучения

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