Тренды

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

Artificial Intelligence

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

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

Шаблоны функционального программирования. Рецепты

Эти рецепты будут наиболее полезны для тех, кто переходит от функциональных библиотек, таких как ramda, к использованию алгебраических типов данных (ADT). Мы будем использовать...
Shared Components

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

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

Разворачиваем декораторы. Часть 2

Предыдущие части: Часть 1 Вспомним о чем шла речь Предыдущий пост я писал про основы декораторов в Python. Для тех, кто не читал её, в двух...
Python

Хитрости на Python

Болтовня ничего не стоит. Покажите мне код. Эти приемы на Python весьма незаурядны и крайне полезны. Обмен значениями Создание одной строки из всех элементов списка Поиск самого частого значения...
Android

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

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

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

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

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

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

Python-библиотеки интерпретации моделей ML

Все эти библиотеки устанавливаются через pip и сопровождаются подробной документацией. Акцент в них делается на визуализацию. Yellowbrick Yellowbrick — это расширение scikit-learn, которое позволяет использовать полезные и красивые...
Android

Как улучшить скорость сборки проектов Android

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

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

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

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

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

Хитрости объектно-ориентированного программирования. Часть 2: Закон Деметры

Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.  Предыдущие части: Часть 1   Единственный закон в программировании — это отсутствие законов. А закон Деметры — это, скорее, рекомендации, а...
JavaScript

Малоизвестные функции JavaScript

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

Что такого в языке Go?

Сегодня я хочу поговорить не о чем ином как о Golang. Как и в случае с Node.js, термин Golang встречается мне несколько раз в...
Golang

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

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

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

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

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

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

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

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

Как создать простую браузерную игру с помощью Phaser 3 и TypeScript

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

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

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

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

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

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

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

Эффективное использование словаря (C#) как альтернатива оператору If

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

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

Читая очередную статью по OpenCV, я обнаружил, что в этой библиотеке есть собственная нейросеть для распознавания лиц с высокой точностью. Я решил опробовать OpenCV и...
Python

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

Приложение для сбора данных с Flask и PostgerSQL Предыдущие части: Часть 1, Часть 2, Часть 3, Часть 4, Часть 5 и Часть 6 Работа с базой данных и запросами пугает некоторых (а...
Node

Как создать HTML-таблицу и PDF с Node и Google Puppeteer

В этой статье мы узнаем о возможностях встроенного инструмента утилиты Node под названием fs (file system). В документации fs говорится: Модуль fs предоставляет API для взаимодействия...
Go

Почему Go прекрасно подходит для DevOps

Go — это язык программирования с открытым исходным кодом, история которого началась в Google примерно десять лет назад. Сегодня Go стремительно приобретает популярность как язык будущего....
Kotlin

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

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

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

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

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

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

PEG парсеры и Python

Несколько лет назад кто-то спросил, имеет ли смысл переключать Python на парсер PEG. Или на грамматику PEG. Не помню точно. Тогда я ещё не...
Machine Learning

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

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

Ловушка для горутины

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

Чистый код в Android

Прежде чем начать писать код, стоит разобраться в том, как им управлять, и как сделать его масштабируемым. Как сказал Дядя Боб в своей книге: Вы читаете...
Audio Data Analysis

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

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

Python — идеальный инструмент для любой проблемы

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

Java для начинающих: часть 2 из 4

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

Как изменить PYTHONPATH на Windows

Вы читаете эту статью, потому что пользуетесь: Windows 10+Python 3.3+Anaconda3 … и хотите изменить PYTHONPATH. Краткая инструкция Откройте C:Users<your_username>Anaconda3Libsite-packagesСоздайте файл python37.pthИзмените файл и добавьте в него строку C:\Users\<your_username>\my_module Подробное...
OOP

Хитрости объектно-ориентированного программирования. Часть 4: Шаблон Starter для Android

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

Понятие о виртуальных средах в Python

Введение в виртуальные среды Python с использованием VR Нет, вам не нужны очки виртуальной реальности (VR) для чтения этой статьи. Будет достаточно внимательности и интереса...
Kotlin

Как избежать утечек памяти с помощью Kotlin

Я выступал на MobOS, где рассказывал о написании и автоматизации тестирования производительности на Android. Часть своей речи я посвятил обнаружению утечек памяти в процессе...
Java

Java для начинающих: часть 3 из 4

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

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

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

Релиз Koin 1.0.0✨

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

Автоматический импорт библиотек в IPython или Jupyter Notebook

Если вы — частый пользователь IPython или Jupyter Notebooks и вам надоело постоянно импортировать одни и те же библиотеки, то попробуйте этот способ: Перейдите к ~/.ipython/profile_defaultСоздайте папку...
Android

Лучшие инструменты для разработки приложений под Android

Android предлагает разработчикам массу возможностей: это универсальная, открытая платформа, используемая миллионами пользователей по всему миру, с удивительно простой в использовании площадкой для распространения приложений....
python

Изучение Blockchain на Python

Неделю назад я поняла, почему испытывала неприязнь к Bitcoin. У меня не было его, и я не понимала как он работает. Я начала изучать...
Android

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

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

Знакомство с объектно-ориентированным программированием в Python: классы и экземпляры

Новичок в ООП? Узнай, как создавать классы и экземпляры в Python Про объектно-ориентированное программирование в Python писали многие. Большинство специалистов по обработке данных, в том числе...
Matplotlib

Анимации с Matplotlib

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

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

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

С Kotlin приведение стало еще удобнее

Приведение — это необходимое зло в программировании. Мы обожаем его ненавидеть. В Kotlin выполнять приведение намного приятнее, чем в Java. Читайте ниже об очень известном, малопонятном...
JavaScript

Подробнее о функциях высшего порядка

В JavaScript, функции являются “функциями первого класса”, соответственно они могут: храниться в переменной, объекте или массиве. передаваться как аргументы в другую функцию. и даже...
debug

Как прокачать навык отладки

В какой-то момент, каждый из нас сталкивается с ошибками при написании кода. Собственно, процесс разработки в том и состоит. При возникновении ошибки, вы теряетесь...
Software

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

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

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

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

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

Считаем слова в массиве Дано: let array = ; Задача: посчитать все слова в данном массиве. Способ №1: используем цикл for function getWordCount() { let map = {}; for...
Python

Обучение Inception в Google распознаванию пользовательских изображений

Ищете краткое руководство по обучению классификатора пользовательских изображений? С помощью Inception API от Google Brain с этой задачей можно справиться быстрее, чем выпить чашку...
OOP

Хитрости объектно-ориентированного программирования. Часть 5: Правило бойскаутов

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

Экспериментируем с…

Пагинация — достаточно известная, но трудная в реализации функция. Поэтому я решил разработать демонстрационное приложение на основе Android Paging Library с пагинацией, основанной на пользовательских запросах...
Bitboard and Bitwise Operations

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

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

Функциональные и гибкие Shell скрипты

Шелл скрипты vs python/Perl Кто вообще пишет шелл скрипты в 2019’ом? Хороший вопрос. Что же, я пишу. ¯_(ツ)_/ На это есть веские причины, они описаны здесь...
Android

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

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

11 важнейших консольных команд для разработчика

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

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

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

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

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

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

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

Как создать Telegram бота с помощью Python

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

Проблема и решение: присвоение имени файлу

Проблема: стандартный изменяемый объект Но сначала разберёмся: что такое изменяемый объект в Python? Изменяемые объекты — это такие объекты, которые можно поменять. Список, множество и словарь — всё это...
Python

Обнаружение объектов с помощью цветовой сегментации изображений в Python

Начинаем Если у вас уже есть Jupyter Notebook или IDE, с помощью которых можно запускать установленные Python и OpenCV, то сразу переходите к разделу Выполнение. Инструменты Наш...
Python

Разворачиваем декораторы. Часть 1

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

Лучшие iOS SDK инструменты за 2019 год

В 2019 году появилось множество приложений для iOS, которые однозначно стоит добавить на главный экран вашего устройства. Например, Mobike для бесстанционного проката велосипедов, Blinkist...
Android

Автоматизация создания файлов для нового экрана с плагином для Android Studio

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

Выражение when в Kotlin

Рассмотрим особенности использования выражения when в Kotlin. Базовый случай использования На фрагменте ниже приведен базовый случай использования выражения when: fun myFunction(valueToTest: Any) { when...
Git

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

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

Повторное использование UI в Android - 5 главных ошибок

За последние пару месяцев у меня была возможность пересмотреть кое-какие реальные интерфейсы Groupon с целью вывести качество таких интерфейсов на новый уровень. Мы начали...
Data science

Изучение нового языка для работы с данными

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

Разностный алгоритм Майерса и наблюдаемые свойства в Kotlin - как их объединить, чтобы облегчить жизнь разработчика

Посмотрите на анимацию ниже. Это группа разноцветных элементов, которые при нажатии кнопки начинают перемещаться. С точки зрения разработчика, эти элементы размещаются внутри RecyclerView с...
UnitTesting

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

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

Python — это суперсила!

Компьютеры — это круто. Они дают вам возможность претворять в жизнь модели и идеи, которые сидят в вашей голове, ожидая, когда их выпустят в реальный мир. Я...
Поддержание документации в актуальном состоянии с помощью Bit и GitHub

Поддержание документации в актуальном состоянии с помощью Bit и GitHub

Написание документации для кода (будь то небольшая библиотека или полный набор микросервисов, взаимодействие с которыми необходимо другим разработчикам)  —  это занятие кропотливое и утомительное. Основная...
5 причин смещения в машинном обучении и что с этим делать

5 причин смещения в машинном обучении и что с этим делать

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

Визуализация map, filter и reduce

Визуализация играет важную роль в обучении. Она помогает нам запоминать сложные идеи, в том числе и по программированию. Отображение map(add) применяет value + 1 ко всему...
Структуры данных: основы алгоритмов

Структуры данных: основы алгоритмов

Как написать алгоритм? Это, скорее, зависит от задачи и ресурсов. Четко определенных стандартов их написания не существует. Рассмотрим же характеристики алгоритмов и их сложности.
Java Script

7 моих любимых расширений VS Code

Расширения для VS Code Я, как и многие другие, люблю настраивать VS Code под себя. Я постоянно ищу новые плагины, настройки, темы, шрифты и рекомендации по...