8 первоклассных инструкций SQL на каждый день
Обзор полезных инструкций SQL, которые помогут оптимизировать рабочий процесс.
Java убьет ваш стартап. PHP спасёт его
Так, всем спокойно. Это не очередной диспут на тему что лучше PHP, Java или ваш любимый язык. Я хочу поговорить о корпоративных технологиях, например...
Фреймворк Google Wire: автоматическое внедрение зависимостей в Go
Познакомимся с концепцией внедрения зависимостей и поработаем с фреймворком Google Wire, облегчающим определение и настройку зависимостей. Вперед, навстречу гибким и удобным в сопровождении приложениям Go!
Обучение Inception в Google распознаванию пользовательских изображений
Ищете краткое руководство по обучению классификатора пользовательских изображений? С помощью Inception API от Google Brain с этой задачей можно справиться быстрее, чем выпить чашку...
6 отборных практик для определения метода __init__ в Python
Создание читаемого и удобного в обслуживании кода Python начинается с грамотного определения метода __init__. В связи с эти предлагаем 6 наилучших практик, проверенных личным опытом автора.
В поисках лучшей среды для Julia: Juno или Jupyter?
Одним из важнейших факторов, влияющих на производительность программирования, является среда разработки. Особенно это относится к науке о данных, так как специалисты, работающие в этой...
11 важнейших консольных команд для разработчика
Командная строка сильно облегчает нам жизнь, позволяя легко автоматизировать несколько рутинных задач и повысить плавность хода всего процесса. Вместо того, чтобы постоянно кликать повсюду...
Топ-10 вопросов о Pandas на StackOverflow
Эти десять вопросов получили наибольшее количество голосов в категории Pandas на платформе StackOverflow. Они были актуальны десять лет назад, такими же остаются и сегодня. Ответы на них позволяют закрепить фундаментальные операции в Pandas.
Интеграция Google Maps в приложение Jetpack Compose
Научимся интегрировать Google Maps в приложение Jetpack Compose с помощью библиотеки Maps Compose. В связи с этим рассмотрим ряд требуемых компонуемых функций и параметров.
Топ-5 трендовых библиотек для Android за 1 квартал 2020 года
Мы находимся почти в конце первого квартала 2020 года и много всего происходит в сообществе Android. Android 11 Developer Preview уже вышел с большим...
Глубокое погружение в Java: рефлексия и загрузчик классов. Часть 2
В этой части статьи углубимся в механизм загрузки классов. Этот процесс в Java тесно связан с рефлексией, поскольку направлен на внедрение нового поведения в программу во время выполнения.
Утилитные классы в Kotlin с точки зрения Java-разработчика
Разобравшись, в чем заключаются различия в реализации утилитных классов в Kotlin и Java, вы сделаете важный шаг в освоении языка Kotlin. Будь вы опытный Java-разработчик, желающий расширить спектр своих навыков, или новичок в программировании, уделите внимание этому аспекту.
Магические методы в Python
Создание объекта dict, принимающего только целые и плавающие числа в качестве значений
В этом сценарии мы реализуем класс, который создает объекты-словари, принимающие только целые и...
Новости об Android
Обновления для Android 11
Мы все еще находимся на стадии предварительного обзора для разработчиков Android 11.
Developer Preview 4
Превью-релиз был выпущен пару недель назад. О Developer Preview 4...
Django Google SEO: поисковая оптимизация сайта на Python для индексации в Google
Показываем четыре простых шага для повышения рейтинга сайта в поисковой системе Google благодаря улучшению Django Search Engine Optimization.
Потоковые и многопроцессорные модули на Python
Главная идея потоков заключается в выполнении последовательности таких инструкций внутри программы, которые могут выполняться независимо от другого кода.
Так в чём же разница между потоковой...
Как избежать утечек памяти с помощью Kotlin
Я выступал на MobOS, где рассказывал о написании и автоматизации тестирования производительности на Android. Часть своей речи я посвятил обнаружению утечек памяти в процессе...
7 фреймворков для работы с LLM
Предлагаем детальное описание 7 фреймворков с открытым исходным кодом для развертывания и обслуживания LLM. Сравните особенности, преимущества, ограничения и затратность таких фреймворков, как vLLM, Text Generation Inference, OpenLLM, Ray Serve, CTranslate2 и MLC LLM.
Создание собственной симуляции активной материи на Python
Сегодня наша задача — создать симуляцию активной материи, т. е. роевое поведение. С помощью этой системы можно имитировать поведение стаи птиц или косяка рыб,...
Покрытие кода в Rust
Покрытие кода - техника, которую должен освоить каждый тестировщик. Сегодня поговорим о ее полезных особенностях и возможностях, о которых, возможно, знают не все специалисты.
Как на самом деле работает Git
В этой статье мы на реальном примере погрузимся во внутренние процессы Git. Если у вас еще не открыт терминал, то сделайте это, пристегните ремни...
Python: декоратор @retry
Python часто называют “склеивающим” языком. Для меня этот термин означает, что язык помогает соединять системы и обеспечивает передачу данных из A в B в...
Считаете, что Python лучше всех? Просто вы не имели дело с Rust
“Технологии прошлого спасут будущее от себя самого”, — так Грэйдон Хор, создатель Rust, пояснял, чего хотел достичь.
Одна их ключевых черт Rust — использование технологий, хорошо знакомых академической среде,...
Язык С: классы памяти
Классы памяти определяют область видимости и время жизни переменных и/или функций в программе, написанной на языке С. Они предшествуют типу, который модифицируют. В языке С различают четыре класса памяти. Рассмотрим их в данной статье.
Анализ автоаварий в Барселоне с использованием Pandas, Matplotlib и Folium
Open Data Barcelona - это сервис, предоставляющий наборы данных Барселоны, который содержит около 400 наборов, охватывающих широкий спектр тем, таких как население, бизнес и...
Rust: безопасный парсинг с нулевым копированием
В Rust парсинг с нулевым копированием избавляет от ошибок безопасности памяти, возникающих в других языках. Руководство по использованию такого алгоритма позволит повысить общую производительность системы.
Как написать на Java функцию, подобную sizeof в C
В качестве упражнения реализуем функцию sizeOf() на Java, чтобы без проблем получать размеры разных типов данных, как в C.
Алгоритм Гровера - квантовые вычисления
Задача
Предположим, у нас есть крупная база данных из N элементов. Мы хотим найти один из элементов, например p, по ID, скажем w. Используя классические...
Обзор итераторов в Go
Релиз Go 1.22 запланирован на февраль 2024 года, но уже сегодня можно оценить некоторые из его возможностей. Поговорим о том, как будут выглядеть итераторы и как может расшириться стандартная библиотека для их поддержки.
Удалённые вызовы процедур в Golang
Что такое удалённые вызовы процедур?
Удалённый вызов процедур (RPC) — это подпрограмма в распределённых вычислениях. Реализация RPC напоминает реализацию локальных вызовов, но обычно они не идентичны. Как...
Владеешь merge - освой и rebase
Независимо от используемых в проекте стратегий ветвления, приходится регулярно интегрировать изменения из одной ветки в другую. В git это можно сделать двумя основными способами:...
9 советов по работе с консолью JavaScript, которые помогут оптимизировать отладку
Для отладки кода JavaScript недостаточно использовать только console.log(). Представляем более подробную информацию о различных методах работы с JS-консолью.
Как работает программа «Hello World!»?
Вы когда-нибудь задумывались о том, как работает знаменитая программа «Hello World!»? Давайте подробно разберём ассемблерный код и увидим, что происходит, так сказать, за кадром...
Scrum: 5–3–5–3–3
В начале работы с Agile и Scrum, оказывая помощь коллегам, я обычно использовал комбинацию 3–5–3, где:
первые “3” — три роли Scrum;“5” — пять событий...
Стоит ли заменить Python на Julia?
В течение последних двух лет популярность интерпретируемого языка Python, который был написан на C, резко возросла. Хоть он и является полезным языком, который стал...
Автоматизация работы с Python
Введение
Работу по вводу данных можно разделить на следующие категории:
Извлечение данных из таблиц (Excel, Google Sheets) и перемещение их в другое место (веб-страница или другая...
TDD и обработка исключений в ASP.NET Core с помощью xUnit
Введение и подготовка к работе
В данной статье мы продолжаем работу над построением и развертыванием “ходячего скелета” приложения при помощи ASP.NET Core WebApi и клиента Angular....
Чистый код в Android
Прежде чем начать писать код, стоит разобраться в том, как им управлять, и как сделать его масштабируемым.
Как сказал Дядя Боб в своей книге:
Вы читаете...
Kotlin изнутри: как работают inline-функции
Inline-функции могут как и увеличить код, так и повысить его производительность. Чтобы с выгодой использовать этот Kotlin-инструмент, необходимо понять принцип его действия, а заодно разобраться в том, зачем нужен crossinline и как работает reified.
Как PyPy ускоряет Python до уровня C?
Обзор PyPy, быстрого интерпретатора Python: улучшение производительности программы без изменения кода!
Программа на Си для проверки числа: положительное или отрицательное
Чему вы научитесь в этой статье?
Проверять, является ли число (введенное пользователем) отрицательным или положительным.
Какие нужны знания для понимания этой программы?
Потребуются знания по следующим темам на...
Идеальная настройка вашего Golang проекта
Часть 1, Часть 2, Часть 3
При запуске нового проекта самые большие трудности у меня всегда вызывала его настройка. Всегда стараешься сделать её «идеальной»:
используешь лучшую...
Хитрости объектно-ориентированного программирования. Часть 4: Шаблон Starter для Android
Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.
Предыдущие части: Часть 1, Часть 2, Часть 3.
Создание
Обычно мы создаем объекты в одном месте. Это может...
Ключевые вопросы для собеседования по Spring Boot в 2023 году. Часть 2
Хотите получить должность Java-разработчика или повысить свой профессиональный уровень? Ознакомьтесь с актуальными ответами на 50 ключевых вопросов по микросервисам Spring Boot, которые задают во время собеседования на должность Java-программиста или инженера ПО.
Эволюция кортежей в C#
Углубимся в изучение кортежей в C#. Посмотрим, как они совершенствовались от версии к версии и обрастали новыми эффективными возможностями.
Аннотации для параллелизма в Java: расцвечивание потоков
В Miro мы постоянно стараемся улучшить поддерживаемость нашего кода, применяя общепринятые практики, в том числе в вопросах многопоточности. Это не решает всех проблем, возникающих...
Порты Docker: что вы на самом деле открываете?
Docker - превосходный инструмент, но по умолчанию небезопасный. И дело тут не в портах, которые могут оказаться общедоступными. Дело в людях, которые сидят за клавиатурой. Подключайтесь к решение этой проблемы.
Наследование и полиморфизм в Python
Наследование
Наследование — это способность объекта принимать одну или несколько характеристик от других классов объектов, обычно переменных или функций-членов. Можно провести аналогию между этим понятием...
Распознавание речи с помощью Python
Предлагаем краткое руководство по преобразованию речи в текст на Python с помощью нескольких строк кода. Справиться с этой задачей поможет API AssemblyAI, используемый тысячами организаций по всему миру.
Составные типы данных на Golang
Рассмотрим один за одним четыре составных типа, поддерживаемых на Go: массивы, срезы, ассоциативный массив и структуры. Узнаем все, что нужно о них знать: размер, хранимые в них данные, стили объявления, поведение копий этих типов данных и опорные данные, на которые они ссылаются.
Структурированное логирование JSON в приложениях на Golang
Структурированные логи важны для отладки программного обеспечения. К счастью, это очень легко реализовать на Golang. Узнаем, как сэкономить время при отслеживании багов и как использовать уровни ведения журнала для контроля за логами, а также научимся создавать настраиваемые логгеры.
Как загружать файлы и изображения в приложении Django
Вы каждый день загружаете какой-нибудь контент, будь то документы коллегам по работе или же различные файлы в любимую социальную сеть. В этом гайде вы узнаете, как это делается в приложении Django.
Как создать и развернуть бота для Twitter при помощи Python, Tweepy и PythonAnywhere
Среда разработки
Для создания бота потребуется настроить нашу среду разработки и установить необходимые библиотеки и инструменты.Что нам понадобится:
Python 3virtualenv — среда разработкиRequests library — библиотека для удобной работы с...
На собеседование в Google через челлендж Python #1
Как-то раз я искал в гугле что-то насчёт Python, как вдруг всплыло приглашение принять участие в испытании по программированию от Google (так называемое foo.bar...
5 удивительных скрытых возможностей Python. Часть 1
Хотите повысить уровень своих навыков написания кода? Возьмите на заметку 5 скрытых возможностей Python. Они помогут сократить время разработки, улучшить читаемость кода и повысить его эффективность.
Как улучшить навыки работы с Python в 2023 году
Хотите узнать, как повысить эффективность вашего кода с точки зрения времени выполнения и сохранения памяти? Воспользуйтесь советами, которые помогут перейти на новый уровень написания кода Python.
Как отслеживать события файловой системы в Python
Прочитав эту статью, вы научитесь обнаруживать изменения в существующих файлах приложения Python. Для этого возьмем хорошо поддерживаемый модуль под названием watchdog.
Согласно официальной документации, watchdog...
Кастомизируем дефолтную заставку во Flutter
Во Flutter невозможно переопределить экран заставки, который задан по умолчанию, а значит любой виджет-заставка, созданный внутри Flutter, будет отображаться только после дефолтной заставки. Пока...
TextHero - самый простой способ чистки и анализа текста в Pandas
Упрощенная обработка естественного языка (NLP)
Я всегда нахожусь в поиске новых инструментов, которые помогут мне упростить процедуру обработки естественного языка, поэтому, когда я наткнулся на короткий...
Понятия “связанности” и “связности” в объектно-ориентированном программировании
Рассмотрим такие характеристики кода, как связанность и связность. Разберем каждое из понятий и на примерах определим их наилучшее сочетание для чистоты кода и удобства его сопровождения.
Плюсы и минусы программирования на Java
Не так много технологий могут похвастаться тем, что они актуальны уже более 20 лет. Однако в этом году Java заняла пятое место в списке...
Оптимизация структур в Golang для эффективного распределения памяти
Поговорим сегодня о выравнивании структур в Golang.
Производительность компьютеров растет с каждым годом. Их вычислительные возможности позволяют выполнять все более сложные задачи. В стремлении применять...
Малоизвестные функции JavaScript
Считается, что JavaScript — самый простой язык, чтобы начать и самый сложный язык, чтобы полностью освоить. Не могу не согласиться, так как JS очень старый и...
Spring Boot: реализация фабричного метода
Шаблон Factory упрощает создание новых объектов и помогает прятать логику, ненужную для клиента. Предлагаем рассмотреть вариант реализации шаблона фабрики для простого приложения на Spring Boot.
Golang — изящная обработка ошибок
Несмотря на то, что в go предусмотрена простая модель ошибок, на деле все не так уж и просто. В данной статье я хочу рассказать...
Внедрение зависимостей для создания элегантных горизонтальных архитектур
Как не попасть в ловушку вертикальных архитектур? Рассмотрим преимущества горизонтальной структуры с внедрением зависимостей и построим такую.
7 способов повысить свою продуктивность в Python
Python — один из самых популярных среди языков современного поколения и наверняка останется таковым в ближайшие десять лет. Это фантастический язык программирования практически для...
Сегментация по границам объекта и областям изображения с реализацией в Python
Рассмотрим такое понятие, как сегментация и два ее основных метода с выделением границ и областей, а также подкрепим примерами реализации в Python.
Осваиваем веб-скрэпинг на Python
В этой короткой статье рассказывается про методику вэб-скрэпинга (англ. web scraping) - набор инструментов по извлечению данных с сайтов. Если вы сталкивались с проблемами...
Как создавать анимированные графы в Python
Matplotlib и Seaborn — вполне приличные Python-библиотеки для создания превосходных графиков. Но такие графики получаются статичными, и крайне трудно подобрать для них красивое представление данных или...
Как ИИ влияет на развитие NFT
Искусственный интеллект - настоящий бустер для развития NFT (невзаимозаменяемых токенов). Представляем 3 передовых проекта, на которые вам стоит обратить внимание.
Думаете, хеш-карты нельзя отсортировать? Еще как можно!
Научимся реализовывать интерфейс sort.Sort в любой структуре данных. Узнаем, какие методы задействуются в Golang для добавления сортировки.
Сможет ли Julia занять место рядом с Python
Julia и Python —языки программирования, которыми я очень дорожу. Использование Julia вместо Python обладает множеством преимуществ, таких как меньшее время написания кода и более...
Ключевые PHP-операторы
Чтобы использовать язык PHP по максимуму, нужно уметь обращаться с его основными операторами. О них сегодня и поговорим.
Как улучшить скорость сборки проектов Android
Gradle всегда славился медлительностью и ресурсоемкостью, однако с помощью небольших изменений в конфигурации можно значительно повысить скорость сборки проекта.
Метрика из сканирования сборки до и...
Секреты оператора delete
Оператор delete - старая функция языка JavaScript. Как следует из ее названия, она призвана что-то удалять. Но что именно подлежит удалению в JavaScript? Предлагаем вместе поискать ответ на этот вопрос!
Разработка макроса Rust для автоматического написания шаблонного кода SQL
Макросы облегчают жизнь разработчикам, позволяя автоматизировать некоторые процессы. Сегодня поговорим о возможностях метапрограммирования в Rust.
Как создать Telegram бота с помощью Python
Представьте, что у вас есть бот в мессенджере, который присылает вам случайно выбранную картинку с собачкой, когда вам захочется. Звучит здорово, да? Давайте сделаем...
30 полезных сниппетов на Python, которые можно освоить за 30 секунд
Python — один из популярнейших языков, который активно используется в анализе данных и машинном обучении, при разработке ПО, в автоматизации и так далее. Такая...
25 основных вопросов для собеседования с Android-разработчиком. Часть 2
Техническое собеседование - важная часть найма разработчика Android-приложения. Продолжаем рассматривать частые вопросы на собеседованиях по Android-разработке.
20 экспертных советов по эффективному использованию Python
Хотите раскрыть для себя весь потенциал Python, чтобы легко справляться со сложными проектами? Благодаря этим советам, а также практике и упорству, вы приобретете полезные навыки программирования на Python, которые помогут вам повысить эффективность кода.
Топ-10 самых популярных библиотек Android и iOS
Топ-5 популярных библиотек iOS
1. Концентрический онбординг
Начнем с библиотеки SwiftUI, которую можно использовать для онбординга, установив цвета по своему предпочтению.
2. PTCardTabBar
Здесь представлена панель вкладок в...
Автоматизированное семантическое управление версиями с помощью GitVersion
При создании новых программных проектов или изменении уже существующих процессов всегда бывает сложно определить правильную стратегию управления версиями. Выбор стратегии ветвления, достижение консенсуса с...
Класс данных в Kotlin
Что такое «класс данных» и чем он отличается от обычного класса? Какие проблемы решаются в Kotlin с помощью классов данных? Рассмотрим классы данных и разберемся, почему их используют вместо обычных классов.
Перестаньте использовать range() в цикле for в Python
Цикл for. Краеугольный камень программирования. Технологический приём, который вы осваиваете, ещё будучи новичком, и продолжаете использовать в течение всей своей карьеры программиста.
Если вы использовали...
Kotlin: продвинутые техники функционального программирования
Подробно и с реальными примерами рассмотрим приемы программирования для создания выразительного и эффективного кода. Изучим мощный инструментарий: от нюансов функций для работы с коллекциями, элегантности композиции функций и до эффективности хвостовой рекурсии.
Изучение Python: от нуля до мастера
Первым делом спросим себя, что такое Python? Создатель языка, Гвидо ван Россум, описывает его следующим образом:
"Язык программирования высокого уровня, главная идея которого - это...
Cosmo Route — молниеносный маршрутизатор с открытым исходным кодом и поддержкой Federation V1/V2
Elastic-лицензия Apollo Router мешает внедрению? Хотите работать еще быстрее? Для подобных случаев идеально подойдет Cosmo Router - быстрый маршрутизатор с открытым исходным кодом, совместимый с Federation V1/V2.
Как правильно объявлять API устаревшими и не сломать пользователям код
Как сделать переход плавным для вас и ваших пользователей, чтобы он ни для кого не стал неожиданностью, а внедрение нового функционала можно было спланировать? Рассмотрим критические изменения и техники их безопасного распространения.
Кто есть кто: обратные вызовы, промисы и асинхронные функции
В центре внимания статьи: обратные вызовы, промисы, асинхронные функции. Подробно разберем их внутреннюю работу и посмотрим, чем они отличаются.
Python: статические методы, методы класса и экземпляра класса
Согласно модели данных Python, язык предлагает три вида методов: статические, класса и экземпляра класса. Давайте посмотрим, что же происходит за кулисами каждого из видов...
22 сниппета на Python для повседневных задач
В этой статье хотелось бы поделиться 22 фрагментами кода на Python, которые помогут вам в решении повседневных задач.
1. Прием нескольких входных значений, разделенных пробелами
Этот...
Шорткаты VS Code, с которыми ввод кода напоминает игру на пианино
Застряли в замкнутом круге "клавитура-мышка", из-за которого устаете и теряете время при написании кода? Представляем вашему вниманию полезные шорткаты VS Code, которые избавят от этих проблем.
Rust: рефакторинг для новичков
Возьмем код, написанный начинающим программистом Rust, выявим недочеты и внесем необходимые коррективы. Процесс рефакторинга сопроводим пояснениями и наглядными примерами.
Как создать плавающую кнопку для Android приложения
Для начала создайте пустой Android проект.
Добавьте зависимость Android Design, потому что FAB находится в этой библиотеке. Скопируйте и вставьте её в свой проект.
implementation 'com.android.support:design:28.0.0'
Если...
Автоматизируем задачи на Python с помощью ChatGPT
Используйте мощь искусственного интеллекта для построения графиков, отправки электронных писем и скрейпинга. Каждая из этих операций при участии ИИ займет всего несколько секунд.
SQLite: как организовывать таблицы
Организация данных — все равно, что поддержание порядка на рабочем месте. Хорошо всегда знать, где что находится, и в случае необходимости освобождать больше места...
10 проектов для изучения Golang в 2023 году
Учиться лучше на практике, и оптимальный способ освоить Golang - создавать проекты. Мы отобрали для вас подходящие проекты - не слишком сложные и не самые простые - с курсами для начинающих и опытных разработчиков.
Языки C и C++. Где их используют и зачем?
Сфера применения C и C++ на удивление широка. Даже в сегодняшнем мире, несмотря на всё многообразие современных надёжных инструментов, эти два языка программирования остаются...
Как вызвать из C# генерируемую на Rust библиотеку
Объединяем преимущества двух языков. Узнаем, как создать библиотеку на Rust, выполнить сборку и с помощью P/Invoke вызвать из C# ее функции.
Рекомендации по изучению JavaScript
Изучение обширной экосистемы современного JavaScript представляет собой непростую задачу. Она состоит из широкого спектра фронтенд-фреймворков, нескольких сборщиков модулей, тысяч библиотек утилит, а также модулей...
Потоки и буферы в Node.js
Для управления потоковыми данными наподобие видео или большого файла в Node.js реализован отдельный потоковый модуль.
В текущей статье мы сконцентрируемся на некоторых принципах его функционирования.
Разделы...
Корутины: исключения
Часть 1, Часть 2
Мы, разработчики, обычно тратим много времени на полировку наилучшего сценария работы нашего приложения. Однако не менее важно обеспечить надлежащий пользовательский опыт,...
TypeScript: основы
Если вы уже знакомы с JavaScript, обязательно освойте TypeScript. Этот язык не просто облегчит написание кода. Он сделает программирование по-настоящему увлекательным процессом.
Python для Android: Как начать делать кроссплатформенные приложения с Kivy
В этом руководстве приведены шаги, необходимые для создания кроссплатформенного приложения для Android с использованием Python-фреймворка Kivy и Linux Ubuntu. Перед началом установки и запуском...