Тренды

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

Android

Новости об Android

Обновления для Android 11 Мы все еще находимся на стадии предварительного обзора для разработчиков Android 11. Developer Preview 4 Превью-релиз был выпущен пару недель назад. О Developer Preview 4...
Python

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

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

Перестаньте использовать range() в цикле for в Python

Цикл for. Краеугольный камень программирования. Технологический приём, который вы осваиваете, ещё будучи новичком, и продолжаете использовать в течение всей своей карьеры программиста.  Если вы использовали...
UX Design

10 шаблонов поведения для UX-дизайна

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

Parcel + Rust и WASM = идеальный ромком

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

Несколько распространенных вопросов об ElasticSearch

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

Стоит ли заменить Python на Julia?

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

4 новых продукта GitHub, которые изменят код

Совсем недавно GitHub провел свое первое виртуальное мероприятие — GitHub Satellite. Тысячи людей подключились к прямой трансляции, которая весь день радовала публику интересными докладами, сгенерированной музыкой...
Android

Как настроить базу данных с Firebase Firestore для Android

Начало Загрузите стартовый проект с GitHub. Откройте приложение в Android Studio и дайте завершитьсяGradle sync. Запустите приложение и вы увидите список покупок: Создание проекта в Firebase Console Первый шаг — это...
Python

4 ситуации из жизни лямбда-функций в Python

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

Кросс-компиляция программ Rust для запуска на маршрутизаторе

Вы никогда не задумывались о том, чтобы запустить на домашнем роутере какой-нибудь пакет Ubuntu? Для этого можно было бы использовать контейнеры LXC. Всё это...
Python

Логирование в Python с помощью Logzero

Logzero - это пакет Python, созданный Крисом Хагером, который упрощает отображение информации и сведений об отладке в качестве оператора print в Python 2 и...
Rust

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

Недавно я начал изучать Android и iOS на предмет возможности обмена между ними бизнес-логикой. Этот поиск привёл меня к Rust — очень интересному и относительно новому...
Clean Code

О дивный читаемый код

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

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

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

R - язык для статистической обработки данных. Часть 3/3

Часть 1, Часть 2, Часть 3 В предыдущем материале мы остановились на теме корреляции из раздела “Статистические вычисления в языке R”. Переходим к ковариации.  Ковариация Ковариация была...
Python

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

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

Новое в Android 11

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

Nota Bene для программиста Python

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

R - язык для статистической обработки данных. Часть 2/3

Часть 1, Часть 2 Предыдущую часть мы закончили темой векторов, а в этой — переходим к матрицам.  9. Что такое матрица? Матрица, как структура данных, тоже часто встречается в R.  Её...
Python

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

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

Использование строк в Rust

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

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

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

R - язык для статистической обработки данных. Часть 1/3

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

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

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

Отмена в корутинах

Часть 1, Часть 2 В разработке, как и в жизни, мы знаем, что важно избегать делать больше работы, чем необходимо, так как это может привести...
Python

Сможет ли Julia занять место рядом с Python

Julia и Python —языки программирования, которыми я очень дорожу. Использование Julia вместо Python обладает множеством преимуществ, таких как меньшее время написания кода и более...
Java

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

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

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

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

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

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

Java-Lombok: нужны ли геттеры и сеттеры?

Привет всем энтузиастам Java! Давайте поговорим о Java и рефакторинге. Как известно, Java остается одним из наиболее популярным языком программирования. В каждом новом релизе...
Git

Команда Git Rerere — автоматизируйте решения для устранения конфликтов слияния

rerere - сокращение от "reuse recorded resolution" (повторное использование сохраненных разрешений конфликтов). С помощью этой команды Git запоминает, каким образом был разрешен конфликт, чтобы при...
Kotlin

Как и для чего использовать нативную библиотеку сериализации Kotlin

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

Интерактивные отчеты в Jupyter Notebook

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

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

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

Корутины: исключения

Часть 1, Часть 2 Мы, разработчики, обычно тратим много времени на полировку наилучшего сценария работы нашего приложения. Однако не менее важно обеспечить надлежащий пользовательский опыт,...
Kotlin

Запечатанный класс

Часто нам приходится представлять ограниченный набор возможностей: веб-запрос либо успешно выполняется, либо не выполняется, User может быть либо про-пользователем, либо обычным. Чтобы смоделировать это, мы...
Docker

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

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

Изменение типа с помощью typealias

Когда определения типов отвлекают от значения вашего кода из-за нечитабельности, выразительности или просто длины, у Kotlin есть подходящая функция: typealias! Typealias позволяет давать альтернативные...
AWS

Автоматизация скриптов на Python при помощи AWS Lightsail

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

5 причин выбрать Flutter в 2020 году

Что такое Flutter? Flutter — это платформенно-независимая технология Google для создания приложений, используемых на мобильных, настольных и веб-платформах. Официально она была представлена в декабре 2018 года и за...
Kotlin

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

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

Алгоритм Гровера - квантовые вычисления

Задача Предположим, у нас есть крупная база данных из N элементов. Мы хотим найти один из элементов, например p, по ID, скажем w. Используя классические...
Golang

Go: трассировочный пакет

ℹ️ В статье речь идёт о Go 1.13. В Go имеется инструмент для проведения трассировки и получения подробного представления о работе программы во время её...
Docker

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

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

QR-разложение матрицы

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

Go: как циклы преобразуются в ассемблерную программу?

ℹ️ В статье речь идёт о Go 1.13. Циклы в программировании — понятие мощное и довольно простое. Тем не менее возникает необходимость преобразовывать их в основные команды,...
Python

На собеседование в Google через челлендж Python #1

Как-то раз я искал в гугле что-то насчёт Python, как вдруг всплыло приглашение принять участие в испытании по программированию от Google (так называемое foo.bar...
Android

Топ-5 трендовых библиотек для Android за 1 квартал 2020 года

Мы находимся почти в конце первого квартала 2020 года и много всего происходит в сообществе Android. Android 11 Developer Preview уже вышел с большим...
Golang

Go: стратегия встраивания и ограничение

ℹ️ В статье используется Go 1.13. Процесс встраивания состоит в замене вызова функции на тело этой функции. И хотя такая оптимизация увеличивает размер двоичного кода,...
Python

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

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

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

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

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

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

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

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

Бинарное дерево на Go для новичка

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

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

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

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

Предыдущая часть: Часть 1 Сверточные нейронные сети (CNN) схожи с обычными нейронными сетями: они состоят из нейронов с обучаемыми весами и сдвигами. Каждый нейрон получает...
Audio Data Analysis

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

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

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

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

Запросы сразу к нескольким базам данных MySQL

Представьте, что вы создаёте SaaS-продукт (связанный с электронной торговлей), где каждый пользователь занимает свою собственную маленькую базу данных (MySQL). Можно гарантировать, что данные пользователя...
Golang

Шаблон Flyweight (Приспособленец) на Go

Определение: Приспособленец — это структурный шаблон проектирования, в котором объект, представляющий себя как уникальный экземпляр в разных местах программы, по факту не является таковым. Цель — оптимизация работы с...
Python Pandas

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

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

Python + Selenium: как получить координаты по адресам

Я составил пошаговое описание решения задачи, как работать с Python и Selenium для сбора данных о координатах (широты и долготы) с карт Google, зная...
Golang

Метапрограммирование на Go

Большинство современных сайтов реализуют некий MV*-фреймворк как формально, так и неформально. Если вы пишете много кода, скорее всего, вы пишете много моделей снова и...
SQL

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

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

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

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

Удалённые вызовы процедур в Golang

Что такое удалённые вызовы процедур? Удалённый вызов процедур (RPC) — это подпрограмма в распределённых вычислениях. Реализация RPC напоминает реализацию локальных вызовов, но обычно они не идентичны. Как...
iOS

Как сделать кастомные шорткаты для Siri

Шорткаты в Сири Это новая эппловская фича для iOS 12. Ее анонсировали во время приветственной речи на WWDC 2018, и вот уже этой осенью ею можно...
iOS

Рефакторинг большой раскадровки в несколько меньших

День настал Я недавно работал над iOS приложением, которое уже находится на рынке. Оно было выпущено прежде, чем Apple запустили новый чудо фреймворк SwiftUI, и...
Python

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

Списковое включение Это продвинутая функция списков Python, делающая код более чистым и читабельным. Композиция - это способ выполнения ряда операций над списком с использованием одной...
Golang

Полиморфизм с интерфейсами в Golang

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

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

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

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

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

[C++] часть 3: синхронизация потоков в ресторане

Часть 1, Часть 2, Часть 3 Мы уже видели, как разные потоки с помощью мьютекса спокойно могут получать доступ к общим данным. Но что делать,...
Python

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

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

Объектно-ориентированное программирование в Golang

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

Почему мы создаем инфраструктуру машинного обучения в Go, а не в Python

Ни для кого не секрет, что Python является наиболее востребованным языком для проектирования машинного обучения. В то время как R, C++ и Julia имеют...
Python

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

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

Знакомство с Papermill

Как превратить Jupyter Notebook в рабочий процесс по обработке данных 1. Введение Jupyter Notebook — это «золотой стандарт» в разведочном анализе данных (EDA-анализ) и отличный инструмент для документирования...
Android

Инструкция для новичка: как программировать дополненную реальность для Smart Glass

Обзор В этом туториале я поделюсь основной информацией об умных очках. Затем, используя пример проекта с хакатона, проведу вас через весь процесс. А начнем мы...
Golang

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

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

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

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

Получаем данные Open Street Map в Python

Случалось ли вам работать над проектом, где были необходимы картографические данные определенной местности? Например, сколько шоссе пересекают город или сколько ресторанов расположено в заданной...
API

Веб-API для улучшенного UX

Примечание: некоторые из представленных здесь API все еще находятся в разработке или не поддерживаются в некоторых браузерах. Рекомендуем прочитать полную документацию перед их использованием. Видимость...
Python

7 советов по улучшению анализа данных в Python

#1: Pandas Profiling Преимущества этого инструмента очевидны. Анимация ниже создана с помощью вызова метода df.profile_report(): С помощью этого инструмента можно с легкостью устанавливать и импортировать пакет...
Pandas

3 классные малоизвестные функции Pandas

Я и раньше писал о Pandas по очевидным причинам — это изумительная библиотека для анализа данных и даже для визуализации. Предыдущая статья была о функциях, которые...
Android

MVVM на Android с компонентами архитектуры + библиотека Koin

Введение С MVVM (Model-View-ViewModel) процесс разработки графического интерфейса для пользователей делится на две части. Первая — это работа с языком разметки или кодом GUI. Вторая — разработка бизнес-логики или...
Pandas

5 Расширенных возможностей Pandas и как ими пользоваться

Pandas — это золотой стандарт в обработке данных. А функциональные возможности библиотеки по загрузке, фильтрации, обработке и изучению данных быстро сделали ее излюбленным инструментом аналитиков. Конечно же,...
Python

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

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

Строим конвейеры с Pandas, используя «pdpipe»

Введение Pandas — прекрасная библиотека в экосистеме Python для анализа данных и машинного обучения. Она идеально соединяет мир данных, где живут файлы Excel/CSV и таблицы SQL, и...
C

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

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

Что такое *args и **kwargs в Python?

Функции — жизнь, не так ли? Не важно, новичок вы в программировании в целом или пришли из другого языка: осваивая Python, вы узнаете, что число параметров,...
SQL

Инъекция SQL: руководство для начинающих

Внедрение кода или инъекция SQL — это уязвимость системы безопасности в Интернете, позволяющая злоумышленнику завладеть доступом к SQL-запросам в базу данных. Так он может получить...
Golang

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

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

Как обнаружить злые твиты при помощи машинного обучения

Мне не нужно напоминать вам о том, что Интернет может быть очагом негатива, несмотря на все его положительные качества. Вы только взгляните на Reddit,...
Docker

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

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

Одно слово для «быстрой» Pandas

Она навсегда изменит вашу жизнь Вы загрузили данные в DataFrame и уже готовы провести предварительный анализ…, но сначала придется создать кое-какие дополнительные функции. Как правило, вы...
Android

Dynamic Feature Modules: навигация

В последнее время моя команда начала проходить испытание по модуляризации нашего приложения. Одна из первых вещей, за которые мы взялись основательно, была навигация, а...
Patterns for Writing Simple Code

4 лучших шаблона для написания простого кода

О шаблонах В этой статье речь пойдет о наборе шаблонов ООП, использующих простую композицию, а не наследование. Большинство шаблонов взяты из книги Gang of Four: Design Patterns....
Python

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

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

Экспериментируем с битбордом и битовыми операциями в Unreal 4

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

Под покровом капустного листа: шаблон Декоратор

Я родилась в городке, расположенном на западном берегу реки Амур на Дальнем востоке России. Эта область известна своим влажным континентальным климатом, для которого характерны...
Web Development

Как создать двойной слайдер для переключения между формой входа и формой регистрации

Описание проекта Прежде чем мы приступим к написанию кода, я хотел бы разбить нашу главную задачу на отдельные компоненты. Это поможет сделать код более понятным. У...
Что выбрать: React Native, Flutter или нативный подход

Что выбрать: React Native, Flutter или нативный подход

Важнейшая проблема кроссплатформенной разработки решалась в мобильных фреймворках разными способами. Первоначально проект Apache Cordova (ранее PhoneGap) решил эту проблему внедрением webview-рендеринга. Затем в проекте...
Как создавать легкие платформонезависимые приложения на Go  -  без JS и BS

Как создавать легкие платформонезависимые приложения на Go  —  без JS и BS

Ознакомимся с методами, виджетами и функционалом библиотеки Gio, сделаем приложение GoGiggles, запустим его в ОС. Добавим функционал СhatGPT, кнопку, обработку событий нажатия.