Тренды

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

Kotlin

Использование свойств lazy в Kotlin для связывания представлений Android

Чтобы выполнить операцию над одним из представлений при работе с UI-слоем приложения Android, его нужно получить его через findViewById. Несмотря на то, что использование...
Docker

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

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

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

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

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

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

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

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

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

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

Виртуальные Окружения в Python

В процессе работы над проектом мне потребовалось проверить, работает ли пакет Flask с установленным у меня Python. При запуске команды для установки Flask я...
Python

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

Предыдущие части: Часть 1, Часть 2, Часть 3, Часть 4, Часть 5 Многие считают, что наука о данных— это крутые алгоритмы машинного обучения и машины на автопилоте. Позвольте вас...
Python

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

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

Полезные хитрости на Python от А до Я

Python — это один из самых популярных и востребованных языков программирования в мире. И на то есть множество причин: · прост в изучении; · мега-универсальный; · огромное разнообразие модулей...
Python

Модуль Collections в Python - Высокопроизводительный контейнер типов данных

Краткий обзор модуля Collections в Python Если реализацию сложно объяснить — идея плоха: The Zen of Python Python — достаточно мощный ЯП с поддержкой модульного программирования. Модульное программирование представляет собой процесс разделения...
Python

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4 golang-сниппета, которые вводят в заблуждение разработчиков C#!

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

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

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

Интерфейсы в Go для повышения тестируемости кода

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

Java убьет ваш стартап. PHP спасёт его

Так, всем спокойно. Это не очередной диспут на тему что лучше PHP, Java или ваш любимый язык. Я хочу поговорить о корпоративных технологиях, например...
Electron

Создаём «ToDo» приложение с помощью Electron

Мы будем создавать приложение ToDo с помощью библиотеки Electron. Мы затронем следующие темы: хранение данных, использование нескольких окон, взаимодействие между браузерами. Что необходимо для этого Я...
Kotlin & Android

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

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

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

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

Анализ автоаварий в Барселоне с использованием Pandas, Matplotlib и Folium

Open Data Barcelona - это сервис, предоставляющий наборы данных Барселоны, который содержит около 400 наборов, охватывающих широкий спектр тем, таких как население, бизнес и...
Go

Топ-10 самых распространенных ошибок в проектах Go. Часть 1

Неизвестное значение enum Рассмотрим простой пример: type Status uint32 const ( StatusOpen Status = iota StatusClosed StatusUnknown ) Enum создан с помощью iota, что приводит к следующему состоянию: StatusOpen = 0 StatusClosed = 1 StatusUnknown =...
Flutter

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

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

Выбираем базу данных

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

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

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

Топ-10 самых распространенных ошибок в проектах Go. Часть 2

Предыдущая часть: Часть 1, Часть 2 Инициализация среза Иногда конечная длина среза бывает известна. Допустим, нужно преобразовать срез Foo в срез Bar, что означает, что они...
Java Script

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

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

Навигация в приложениях Flutter

Flutter — это продукт от Google, который используется для создания гибридных мобильных приложений на ЯП Dart. Страница приложения Flutter — это Widget, который представляет собой описание изображенного пользовательского интерфейса....
OOP

Хитрости объектно-ориентированного программирования. Часть 6 SLAP для функций

Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.  Предыдущие части: Часть 1, Часть 2, Часть 3, Часть 4 и Часть 5. Элементарные функции Должен признать: очень долгое...
Python

Рекурсия и цикл, в чем разница? На примере Python

Цикл — это фундаментальный инструмент в программировании. Существует множество различных типов циклов, но почти все они выполнят одну базовую функцию: повторение определённых действий над данными, для...
Android

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

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

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

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

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

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

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

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

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

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

Хитрости объектно-ориентированного программирования. Часть 1: Искусство разделения команд и запросов

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

Обзор библиотеки Datatable в Python

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

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

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

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

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

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

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

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

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

Clean Architecture с Kotlin

Мощная базовая архитектура — важный показатель для масштабируемости приложения. Внесение таких изменений, как замена API на обновленную и оптимизированную структуру API, требует переписать практически все приложение...
Streamlit

Превращаем сценарии Python в инструменты МО

В конечном счете в каждом нетривиальном проекте машинного обучения появляется масса ошибок и внутренними инструментами, которые невозможно сопровождать. Эти инструменты - обычно patchwork из...
React

Реализация жизненных циклов React с помощью Reason React Hooks

Использование хуков React дает множество полезных преимуществ. Узнаем, что такое жизненные циклы React и рассмотрим реализацию этих циклов с помощью Reason React Hooks. После выпуска...
Anaconda

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

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

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

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

Какие языки программирования нужно знать, чтобы разрабатывать приложения под Android?

Итак, вы решили научиться разрабатывать приложения под Android? Отлично! Но нужно понимать, что без труда не вынешь и рыбку из пруда. Программирование — это крайне обширная...
Golang

Приключения Java-разработчика, решившегося изучать Go

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

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

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

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

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

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

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

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

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

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

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

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

Делаем анализ тональности высказываний в Twitter за 3 минуты Предыдущие части: Часть 1, Часть 2, Часть 3, Часть 4 В этой части мы создадим скрипт Python, который при помощи Twitter поможет...
Python

Инструмент, который автоматически находит уязвимости в Python-коде

TL;DR В январе 2019 года мы запустили инструмент, который эффективно находит уязвимости в Python-коде. Мы создали автоматизированную систему, в которой объединили алгоритмы анализа потока данных...
Python

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

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

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

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

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

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

Микросервисы. Руководство для начинающих

Вы наверняка слышали подобные высказывания: «Наши сервисы состоят из множества масштабируемых микросервисов», «Мы планируем перейти на архитектуру микросервисов». Но что такое микросервисы? Я постараюсь...
API

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

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

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

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

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

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

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

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

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

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

Полезные Python модули, которыми мало кто пользуется

Python — это прекрасный язык с множеством встроенных модулей, цель которых — помочь нам писать более красивый и качественный код. Цель В данной статье мы будем работать с малоизвестными методами...
Kotlin

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

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

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

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

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

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

Возможности C++, о которых должен знать каждый разработчик

С момента своего появления C++ очень хорошо развился как язык программирования. Конечно, это не произошло моментально. Когда-то этому языку не доставало динамичности. В то время...
Anaconda

Как установить Anaconda на Mac

Просто и понятно о том, как установить Anaconda на Mac и исправить страшную ошибку «conda command not found» Необходимость Anaconda Начав работать в области науки о данных,...
Android and iOS Libraries

Топ-10 самых популярных библиотек Android и iOS

Хотите быть в курсе трендов этого сезона? Представляем вашему вниманию список из десяти популярных библиотек Android и iOS на GitHub на конец 2019 года!
С

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

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

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

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

Kotlin Android Extensions: полное руководство

Если у вас уже есть опыт разработки приложений для Android, вероятно, вы уже устали использовать findViewById, чтобы восстанавливать view. Или, может быть, вы уже сдались...
Navigation Architecture

Введение в Navigation Architecture Component

Среди компонентов Jetpack, самым интересным является Navigation Architecture Component. Навигация управляет перемещением между destinations. Destinations обычно представлены фрагментами, однако поддерживают activities и другие пользовательские...
Python

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

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

Бережливое тестирование, или Почему модульные тесты хуже, чем вы думаете

Тестирование — противоречивая тема. Люди крепко держатся за свои убеждения относительно подходов к тестированию. Разработка через тестирование — самый яркий пример. Нехватка чётких эмпирических данных провоцирует людей на...
Kotlin

Kotlin Coroutines для Android — Прощай RxJava?

Недавно JetBrains анонсировала новую фичу, которая известна как coroutines (coroutines является экспериментальной функцией в Kotlin 1.1+). Кстати, jetbrains — это место, где можно найти настоящее сокровище,...
Jupyter

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

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

Шаблон Repository в Android

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

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

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

Знакомство с Kotlin для Android за один день

Имея за плечами опыт с Java, я понял, что синтаксис Kotlin похож на Java, но в то же время может сильно отличаться. Kotlin — очень мощный...
Android

Как создать плавающую кнопку для Android приложения

Для начала создайте пустой Android проект. Добавьте зависимость Android Design, потому что FAB находится в этой библиотеке. Скопируйте и вставьте её в свой проект. implementation 'com.android.support:design:28.0.0' Если...
Golang

Как реализовать древовидную сортировку в стандартной библиотеке Go

Двоичная куча Итак, двоичная куча — это:  Контейнер, предоставляющий свой максимальный элемент за время O(1), добавляющий элемент за O(log n) и удаляющий максимальный элемент за O(log n).Неполное бинарное...
Kotlin

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

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

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

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

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

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

Анализ независимых компонент в Python

Предположим, вы на вечеринке беседуете с милой девушкой. Вас атакует множество звуков: разговоры людей по всему дому, громко играющая на фоне музыка. Тем не...
Python

Поиск и устранение утечек памяти в Python

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

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

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

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

Создаем блокировщик сайтов в 3 шага   Предыдущие части: Часть 1, Часть 2   Технологии стремительно развиваются, как и мир в целом. Каждый день вы сталкиваетесь с чем-то, о чем раньше...
Golang

Привет, Go!

За последние пару месяцев я полюбил Go по разным субъективным причинам. Чтобы продемонстрировать всю красоту и простоту языка Go, рассмотрим классическую небольшую программу, которая...
Golang

Как я встраивал ресурсы в Go

Во время стажировки в WSO2, я работал над проектом разработки процессов непрерывной интеграции и развёртывания ПО для WSO2 API Manager. Работа велась в основном...
Artificial Intelligence

Обратные вызовы Keras за 2 минуты

Что такое обратный вызов Keras? Из документации Keras: Обратный вызов — множество функций, применяемых на данной стадии тренировки. Вы можете использовать их, чтобы посмотреть на внутреннее состояние...
Плохие модели машинного обучения? Но их можно откалибровать

Плохие модели машинного обучения? Но их можно откалибровать

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

Шаблоны проектирования бэкенда

На примере реальной проблемы изучим, как реализуются подход «запустил и забыл», очередь недоставленных сообщений, задержка. Создадим выключатель с тремя параметрами и проиллюстрируем кодом.
Презентации в терминале

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

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

Создание лаконичных модульных тестов во Flutter

Модульное тестирование - важная часть разработки ПО, особенно когда код обслуживают десятки тысяч человек. Предлагаем простой гайд по написанию четкого и лаконичного кода модульного теста для проверки класса User.
Machine Learning

6 концептов книги Эндрю Ына «Жажда машинного обучения»

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