Анализ независимых компонент в Python
Предположим, вы на вечеринке беседуете с милой девушкой. Вас атакует множество звуков: разговоры людей по всему дому, громко играющая на фоне музыка. Тем не...
Отмена в корутинах
Часть 1, Часть 2
В разработке, как и в жизни, мы знаем, что важно избегать делать больше работы, чем необходимо, так как это может привести...
Обратные вызовы Keras за 2 минуты
Что такое обратный вызов Keras?
Из документации Keras:
Обратный вызов — множество функций, применяемых на данной стадии тренировки. Вы можете использовать их, чтобы посмотреть на внутреннее состояние...
Привет, Go!
За последние пару месяцев я полюбил Go по разным субъективным причинам. Чтобы продемонстрировать всю красоту и простоту языка Go, рассмотрим классическую небольшую программу, которая...
Как реализовать древовидную сортировку в стандартной библиотеке Go
Двоичная куча
Итак, двоичная куча — это:
Контейнер, предоставляющий свой максимальный элемент за время O(1), добавляющий элемент за O(log n) и удаляющий максимальный элемент за O(log n).Неполное бинарное...
Запечатанный класс
Часто нам приходится представлять ограниченный набор возможностей: веб-запрос либо успешно выполняется, либо не выполняется, User может быть либо про-пользователем, либо обычным.
Чтобы смоделировать это, мы...
Как обеспечить возможность обнаружения для совместно используемых компонентов
Компоненты привносят модульность в дизайн приложений. Модульность, в свою очередь, обеспечивает возможность повторного использования, благодаря которой можно создавать приложения без необходимости каждый раз изобретать...
Хитрости объектно-ориентированного программирования. Часть 2: Закон Деметры
Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.
Предыдущие части: Часть 1
Единственный закон в программировании — это отсутствие законов. А закон Деметры — это, скорее, рекомендации, а...
Эффективное использование словаря (C#) как альтернатива оператору If
Всё больше наших коллег на практике предпочитают избегать применения операторов if. Эти условия, по их мнению, усложняют и прибавляют багов в наши приложения.
Но условия...
Строковые методы в Python
Узнайте, какие встроенные методы Python используются в строковых последовательностях
Строка — это последовательность символов. Встроенный строковый класс в Python представлен строками, использующими универсальный набор символов Unicode. Строки...
Что такого в языке Go?
Сегодня я хочу поговорить не о чем ином как о Golang. Как и в случае с Node.js, термин Golang встречается мне несколько раз в...
Строим конвейеры с Pandas, используя «pdpipe»
Введение
Pandas — прекрасная библиотека в экосистеме Python для анализа данных и машинного обучения. Она идеально соединяет мир данных, где живут файлы Excel/CSV и таблицы SQL, и...
Разворачиваем декораторы. Часть 2
Предыдущие части: Часть 1
Вспомним о чем шла речь
Предыдущий пост я писал про основы декораторов в Python. Для тех, кто не читал её, в двух...
Как создать плавающую кнопку для Android приложения
Для начала создайте пустой Android проект.
Добавьте зависимость Android Design, потому что FAB находится в этой библиотеке. Скопируйте и вставьте её в свой проект.
implementation 'com.android.support:design:28.0.0'
Если...
Хитрости на Python
Болтовня ничего не стоит. Покажите мне код.
Эти приемы на Python весьма незаурядны и крайне полезны.
Обмен значениями
Создание одной строки из всех элементов списка
Поиск самого частого значения...
Овладей Python, создавая реальные приложения. Часть 3
Создаем блокировщик сайтов в 3 шага
Предыдущие части: Часть 1, Часть 2
Технологии стремительно развиваются, как и мир в целом. Каждый день вы сталкиваетесь с чем-то, о чем раньше...
Ключевое слово vararg и оператор spread в Kotlin
Что осталось за кадром?
В некоторых случаях необходимо определить функцию с переменным числом параметров; Вот пара примеров, с которыми вы, вероятно, сталкивались в Android:printf(String format, Obj......
Обработка ошибок в Golang с помощью Panic, Defer и Recover
В Golang предусмотрен простой интерфейс для ошибок. Любая ошибка, возвращаемая в Golang, следует такому определению интерфейса:
type error interface {
Error() string
}
Создание сообщения об...
Шаблоны функционального программирования. Рецепты
Эти рецепты будут наиболее полезны для тех, кто переходит от функциональных библиотек, таких как ramda, к использованию алгебраических типов данных (ADT). Мы будем использовать...
Как улучшить скорость сборки проектов Android
Gradle всегда славился медлительностью и ресурсоемкостью, однако с помощью небольших изменений в конфигурации можно значительно повысить скорость сборки проекта.
Метрика из сканирования сборки до и...
Как работает функция Defer в Golang
В Golang, благодаря появлению целого ряда новых средств и инструментов, которыми не могут похвастать другие языки серверного программирования, реализована очень мощная и гибкая модель...
MVVM на Android с компонентами архитектуры + библиотека Koin
Введение
С MVVM (Model-View-ViewModel) процесс разработки графического интерфейса для пользователей делится на две части. Первая — это работа с языком разметки или кодом GUI. Вторая — разработка бизнес-логики или...
Бинарное дерево на Go для новичка
Введение
В этой статье мы сосредоточимся на том, как деревья бинарного поиска могут быть реализованы на Go и почему они предпочтительнее линейных структур данных, таких...
Малоизвестные функции JavaScript
Считается, что JavaScript — самый простой язык, чтобы начать и самый сложный язык, чтобы полностью освоить. Не могу не согласиться, так как JS очень старый и...
Python — идеальный инструмент для любой проблемы
Размышления о моей первой программе на Python.
Размышления это всегда помогающее (а иногда и развлекающее) занятие. Из ностальгических соображений, конечно, если можно испытывать ностальгию по...
Как создать HTML-таблицу и PDF с Node и Google Puppeteer
В этой статье мы узнаем о возможностях встроенного инструмента утилиты Node под названием fs (file system).
В документации fs говорится:
Модуль fs предоставляет API для взаимодействия...
Метапрограммирование на Go
Большинство современных сайтов реализуют некий MV*-фреймворк как формально, так и неформально. Если вы пишете много кода, скорее всего, вы пишете много моделей снова и...
Изучение Blockchain на Python
Неделю назад я поняла, почему испытывала неприязнь к Bitcoin. У меня не было его, и я не понимала как он работает. Я начала изучать...
Знакомство с объектно-ориентированным программированием в Python: классы и экземпляры
Новичок в ООП? Узнай, как создавать классы и экземпляры в Python
Про объектно-ориентированное программирование в Python писали многие. Большинство специалистов по обработке данных, в том числе...
Изменение типа с помощью typealias
Когда определения типов отвлекают от значения вашего кода из-за нечитабельности, выразительности или просто длины, у Kotlin есть подходящая функция: typealias! Typealias позволяет давать альтернативные...
Автоматический импорт библиотек в IPython или Jupyter Notebook
Если вы — частый пользователь IPython или Jupyter Notebooks и вам надоело постоянно импортировать одни и те же библиотеки, то попробуйте этот способ:
Перейдите к ~/.ipython/profile_defaultСоздайте папку...
Java для начинающих. Часть 1 из 4
Часть 1, Часть 2, Часть 3, Часть 4
Данные статьи помогут легко и быстро разобраться в концепциях и программировании на Java.
Даже при нулевых знаниях о...
Овладей Python, создавая реальные приложения. Часть 7
Приложение для сбора данных с Flask и PostgerSQL
Предыдущие части: Часть 1, Часть 2, Часть 3, Часть 4, Часть 5 и Часть 6
Работа с базой данных и запросами пугает некоторых (а...
Распознавание лиц с помощью OpenCV
Читая очередную статью по OpenCV, я обнаружил, что в этой библиотеке есть собственная нейросеть для распознавания лиц с высокой точностью.
Я решил опробовать OpenCV и...
7 советов по улучшению анализа данных в Python
#1: Pandas Profiling
Преимущества этого инструмента очевидны. Анимация ниже создана с помощью вызова метода df.profile_report():
С помощью этого инструмента можно с легкостью устанавливать и импортировать пакет...
Чистый код в Android
Прежде чем начать писать код, стоит разобраться в том, как им управлять, и как сделать его масштабируемым.
Как сказал Дядя Боб в своей книге:
Вы читаете...
Корутины: исключения
Часть 1, Часть 2
Мы, разработчики, обычно тратим много времени на полировку наилучшего сценария работы нашего приложения. Однако не менее важно обеспечить надлежащий пользовательский опыт,...
PEG парсеры и Python
Несколько лет назад кто-то спросил, имеет ли смысл переключать Python на парсер PEG. Или на грамматику PEG. Не помню точно. Тогда я ещё не...
Понятие о виртуальных средах в Python
Введение в виртуальные среды Python с использованием VR
Нет, вам не нужны очки виртуальной реальности (VR) для чтения этой статьи. Будет достаточно внимательности и интереса...
Как изменить PYTHONPATH на Windows
Вы читаете эту статью, потому что пользуетесь:
Windows 10+Python 3.3+Anaconda3
… и хотите изменить PYTHONPATH.
Краткая инструкция
Откройте C:Users<your_username>Anaconda3Libsite-packagesСоздайте файл python37.pthИзмените файл и добавьте в него строку C:\Users\<your_username>\my_module
Подробное...
Java для начинающих: часть 2 из 4
Часть 1, Часть 2, Часть 3, Часть 4
Данные статьи помогут легко и быстро разобраться в концепциях и программировании на Java. Даже при...
Почему Go прекрасно подходит для DevOps
Go — это язык программирования с открытым исходным кодом, история которого началась в Google примерно десять лет назад. Сегодня Go стремительно приобретает популярность как язык будущего....
Как избежать утечек памяти с помощью Kotlin
Я выступал на MobOS, где рассказывал о написании и автоматизации тестирования производительности на Android. Часть своей речи я посвятил обнаружению утечек памяти в процессе...
Хитрости объектно-ориентированного программирования. Часть 4: Шаблон Starter для Android
Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.
Предыдущие части: Часть 1, Часть 2, Часть 3.
Создание
Обычно мы создаем объекты в одном месте. Это может...
Java для начинающих: часть 3 из 4
Часть 1, Часть 2, Часть 3, Часть 4
Данные статьи помогут легко и быстро разобраться в концепциях и программировании на Java. Даже при нулевых знаниях...
Распознавание лиц с помощью CoreML и ARKit
Создаём приложение с одним окном
Для начала нам понадобится создать iOS проект «single view app» (прим: автор работает в Xcode).
Теперь у нас есть проект. Мы обойдёмся...
Ловушка для горутины
Горутина — это эффективный и легковесный механизм многопоточного выполнения, популярный среди разработчиков Go. С помощью семантики горутин программисты добиваются эффективного выполнения параллельных процессов в программе. Впрочем,...
Релиз Koin 1.0.0✨
Так, так, так… вот оно! Уважаемые пользователи Koin, настал момент релиза нашей первой стабильной версии Koin. Спустя чуть больше года после начальной версии, мы...
Анализ аудиоданных с помощью глубокого обучения и Python (часть 2)
Предыдущая часть: Часть 1
Сверточные нейронные сети (CNN) схожи с обычными нейронными сетями: они состоят из нейронов с обучаемыми весами и сдвигами. Каждый нейрон получает...
Лучшие инструменты для разработки приложений под Android
Android предлагает разработчикам массу возможностей: это универсальная, открытая платформа, используемая миллионами пользователей по всему миру, с удивительно простой в использовании площадкой для распространения приложений....
Хитрости объектно-ориентированного программирования. Часть 5: Правило бойскаутов
Всегда оставляйте лагерь чище, чем вы его застали
Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.
Предыдущие части: Часть 1, Часть 2, Часть 3 и Часть 4.
Энтропия
Энтропия — это отсутствие порядка...
3 классные малоизвестные функции Pandas
Я и раньше писал о Pandas по очевидным причинам — это изумительная библиотека для анализа данных и даже для визуализации. Предыдущая статья была о функциях, которые...
Подробнее о функциях высшего порядка
В JavaScript, функции являются “функциями первого класса”, соответственно они могут:
храниться в переменной, объекте или массиве.
передаваться как аргументы в другую функцию.
и даже...
Проблема и решение: присвоение имени файлу
Проблема: стандартный изменяемый объект
Но сначала разберёмся: что такое изменяемый объект в Python? Изменяемые объекты — это такие объекты, которые можно поменять. Список, множество и словарь — всё это...
Как прокачать навык отладки
В какой-то момент, каждый из нас сталкивается с ошибками при написании кода. Собственно, процесс разработки в том и состоит. При возникновении ошибки, вы теряетесь...
Как ваша программа использует память
Программирование на языках, которые позволяют взаимодействовать с памятью на более низком уровне, как например в C и C++, иногда доставляет немало проблем, с которыми...
11 важнейших консольных команд для разработчика
Командная строка сильно облегчает нам жизнь, позволяя легко автоматизировать несколько рутинных задач и повысить плавность хода всего процесса. Вместо того, чтобы постоянно кликать повсюду...
Как пересчитать слова в массиве используя JavaScript
Считаем слова в массиве
Дано:
let array = ;
Задача: посчитать все слова в данном массиве.
Способ №1: используем цикл for
function getWordCount() { let map = {}; for...
Инструкция для новичка: как программировать дополненную реальность для Smart Glass
Обзор
В этом туториале я поделюсь основной информацией об умных очках. Затем, используя пример проекта с хакатона, проведу вас через весь процесс. А начнем мы...
Как сделать кастомные шорткаты для Siri
Шорткаты в Сири
Это новая эппловская фича для iOS 12. Ее анонсировали во время приветственной речи на WWDC 2018, и вот уже этой осенью ею можно...
Функциональные и гибкие Shell скрипты
Шелл скрипты vs python/Perl
Кто вообще пишет шелл скрипты в 2019’ом? Хороший вопрос. Что же, я пишу. ¯_(ツ)_/
На это есть веские причины, они описаны здесь...
Как создавать анимированные графы в Python
Matplotlib и Seaborn — вполне приличные Python-библиотеки для создания превосходных графиков. Но такие графики получаются статичными, и крайне трудно подобрать для них красивое представление данных или...
Как и для чего использовать нативную библиотеку сериализации Kotlin
Вывод из статьи
В конце статьи вы узнаете, почему команда Kotlin создала новую библиотеку сериализации, несмотря на наличие многих продвинутых решений, таких как Moshi и Gson....
С Kotlin приведение стало еще удобнее
Приведение — это необходимое зло в программировании. Мы обожаем его ненавидеть. В Kotlin выполнять приведение намного приятнее, чем в Java. Читайте ниже об очень известном, малопонятном...
Обучение Inception в Google распознаванию пользовательских изображений
Ищете краткое руководство по обучению классификатора пользовательских изображений? С помощью Inception API от Google Brain с этой задачей можно справиться быстрее, чем выпить чашку...
Экспериментируем с…
Пагинация — достаточно известная, но трудная в реализации функция. Поэтому я решил разработать демонстрационное приложение на основе Android Paging Library с пагинацией, основанной на пользовательских запросах...
Анимации с Matplotlib
Используем библиотеку matplotlib для создания интересной анимации
Изображение имитации дождя выполнено с помощью библиотеки Matplotlib, известной как прародитель пакетов для визуализации данных на python. Matplotlib...
Экспериментируем с битбордом и битовыми операциями в Unreal 4
Идея прототипа игры
Главный герой Таичи застрял в мире клеток. Он пытается найти выход и может передвигаться только, если мы поможем ему раскрасить клетки, указав...
Dynamic Feature Modules: навигация
В последнее время моя команда начала проходить испытание по модуляризации нашего приложения. Одна из первых вещей, за которые мы взялись основательно, была навигация, а...
Как создать Telegram бота с помощью Python
Представьте, что у вас есть бот в мессенджере, который присылает вам случайно выбранную картинку с собачкой, когда вам захочется. Звучит здорово, да? Давайте сделаем...
Лучшие iOS SDK инструменты за 2019 год
В 2019 году появилось множество приложений для iOS, которые однозначно стоит добавить на главный экран вашего устройства. Например, Mobike для бесстанционного проката велосипедов, Blinkist...
Python — это суперсила!
Компьютеры — это круто. Они дают вам возможность претворять в жизнь модели и идеи, которые сидят в вашей голове, ожидая, когда их выпустят в реальный мир.
Я...
Автоматизация создания файлов для нового экрана с плагином для Android Studio
Введение
Приходилось ли вам работать над проектом со сложной архитектурой, в котором для создания нового экрана нужно добавить несколько новых файлов с определенным содержимым? Например,...
Разворачиваем декораторы. Часть 1
Предпосылки
Для начала я должен убедиться, что все одинаково хорошо разбираются в теме. Если вам хорошо известны такие понятия как: переменные, параметры, возвращение значений переменной...
Разностный алгоритм Майерса и наблюдаемые свойства в Kotlin - как их объединить, чтобы облегчить жизнь разработчика
Посмотрите на анимацию ниже. Это группа разноцветных элементов, которые при нажатии кнопки начинают перемещаться. С точки зрения разработчика, эти элементы размещаются внутри RecyclerView с...
Выражение when в Kotlin
Рассмотрим особенности использования выражения when в Kotlin.
Базовый случай использования
На фрагменте ниже приведен базовый случай использования выражения when:
fun myFunction(valueToTest: Any) {
when...
Повторное использование UI в Android - 5 главных ошибок
За последние пару месяцев у меня была возможность пересмотреть кое-какие реальные интерфейсы Groupon с целью вывести качество таких интерфейсов на новый уровень. Мы начали...
Команда Git Rerere — автоматизируйте решения для устранения конфликтов слияния
rerere - сокращение от "reuse recorded resolution" (повторное использование сохраненных разрешений конфликтов). С помощью этой команды Git запоминает, каким образом был разрешен конфликт, чтобы при...
Изучение нового языка для работы с данными
В постоянно меняющейся экосистеме инструментов для анализа данных вам придется часто изучать все новые и новые языки, чтобы идти в ногу со временем и...
Обнаружение объектов с помощью цветовой сегментации изображений в Python
Начинаем
Если у вас уже есть Jupyter Notebook или IDE, с помощью которых можно запускать установленные Python и OpenCV, то сразу переходите к разделу Выполнение.
Инструменты
Наш...
Тестирование для не тестировщиков
Тестирование является одним из ключевых этапов разработки. Вне зависимости от того, над каким проектом вы работаете, тестирование — это залог того, что вы сможете поставлять качественные...
Конкурентность и параллелизм в Golang. Горутины.
Конкурентность в Golang
Прежде чем приступать к раскрытию темы нашей статьи, неплохо бы прояснить, что же такое параллелизм и конкурентность и в чём разница между ними....
Раскрываем возможности контейнеризации. Зачем дата-сайентистам Docker и Kubernetes?
Разберем отличия и преимущества Docker и Kubernetes, применяемые инструменты и терминологию. Какова роль контейнеризации и оркестрации в эффективной работе дата-сайентиста?
1 Кодовая база - 3 платформы
Все, что нужно знать для успешного развертывания кроссплатформенного приложения в 2021 году.
Представим простую ситуацию:
Вы соло-разработчик. У вас появилась идея. Вы делитесь ей со своими друзьями....
Механизм повторных попыток в Spring Boot: @Retryable и @Recover
Реализуем обработку временных сбоев в Spring Boot, рассмотрим аннотации для соответственных поведений. Проверим механизм в действии, отправив HTTP-запрос.
Сильные и слабые стороны метавселенной
Последнее время вокруг метавселенной царит нешуточный ажиотаж. Цифровой мир открывает массу возможностей для пользователей, но вместе с тем несет в себе определенные риски.