Социальные сети Рунета
Среда, 24 апреля 2024

Потоковая передача колоночных данных с помощью Apache Arrow Перевод статьи подготовлен специально для студентов курса «Data Engineer». За последние несколько недель мы с Nong Li добавили в Apache Arrow бинарный потоковый формат, дополнив уже существующий формат файлов random access/IPC. У нас есть реализации на Java и C++ и привяз...

[Перевод] 10 практических рекомендаций по безопасности образов Docker. Часть 1 Перевод статьи подготовлен специально для студентов курса «Безопасность Linux». В этой статье мы хотели бы сосредоточиться на Docker и обсудить советы и рекомендации, которые обеспечивают более безопасный и качественный процесс обработки образов Docker. Итак, начнем с н...

[Перевод] Как в Python реализованы очень длинные числа типа integer? Перевод статьи подготовлен специально для студентов курса «Разработчик Python». Когда вы пишете на низкоуровневом языке, таком как С, вы беспокоитесь о выборе правильного типа данных и спецификаторах для ваших целых чисел, на каждом шаге анализируете достаточно ли будет ис...

[Перевод] Пример гексагональной архитектуры на Java Перевод статьи подготовлен специально для студентов курса «Разработчик Java». Как разработчикам нам часто приходится сталкиваться с легаси кодом, который тяжело поддерживать. Вы знаете как бывает сложно понять простую логику в большом запутанном спагетти-коде. Улучшение...

[Перевод] Как достичь Уровня 5 по модели CMM в области QA и тестирования Перевод статьи подготовлен специально для студентов курса Python QA Engineer. В этой статье мы поговорим о том, что такое уровни СММ и как их достичь в QA-процессах, а также рассмотрим доступные и понятные примеры. Для любого процесса, будь то процесс контроля качества,...

[Перевод] C++ vtables. Часть 2 (Virtual Inheritance + Compiler-Generated Code) Перевод статьи подготовлен специально для студентов курса «Разработчик С++». Интересно развиваться в данном направлении? Смотрите запись мастер-класса «Практика использования Google Test Framework»! Часть 3 — Виртуальное наследование В первой и второй части этой статьи мы г...

[Перевод] Влияние Ethernet на сетевые технологии в 2020 году Перевод статьи подготовлен специально для студентов курса «Сетевой инженер». Набор на курс уже открыт. НАЗАД В БУДУЩЕЕ С ОДНОПАРНЫМ ETHERNET 10 МБ/С — ПИТЕР ДЖОНС, ETHERNET ALLIANCE И CISCO В это трудно поверить, но Ethernet 10 Мбит/с снова становится очень популярной темой...

[Перевод] Управление жестами: От края до края (I) Всем привет. Специально для студентов продвинутого курса по Android-разработке подготовили перевод интересной статьи. Это первая статья их серии «Управление Жестами». Другие статьи вы можете найти по ссылке. В Android Q был добавлен новый режим навигации по системе, п...

[Перевод] RICE: Простая приоритезация для Product-менеджеров Перевод статьи подготовлен специально для студентов курса «Product Manager IT-проектов» Проблемой, которая возникает постоянно при построении дорожной карты продукта, является распределение приоритетов. Как вы решаете над чем нужно работать в первую очередь? Если вы вл...

[Перевод] Ошибки при работе с датой и временем в SQL Server Перевод статьи подготовлен специально для студентов курса "MS SQL Server разработчик". Содержание Ошибка #1: Предполагать, что значения даты и времени хранятся в виде форматированных строк Ошибка #2: Забыть о людях, которые живут в других частях света Ошибка #3: ...

[Перевод] Что же такого особенного в IAsyncEnumerable в .NET Core 3.0? Перевод статьи подготовлен в преддверии старта курса «Разработчик C#». Одной из наиболее важных функций .NET Core 3.0 и C# 8.0 стал новый IAsyncEnumerable<T> (он же асинхронный поток). Но что в нем такого особенного? Что же мы можем сделать теперь, что было невозмо...

[Перевод] Знакомимся с NestJS Перевод статьи подготовлен в преддверии старта курса «Разработчик Node.js». У современных разработчиков есть много альтернатив, когда речь заходит о создании веб-сервисов и других серверных приложений. Node стал крайне популярным выбором, однако многие программисты предп...

[Перевод] Пентест Active Directory. Часть 1 Перевод статьи подготовлен специально для студентов курса «Пентест. Практика тестирования на проникновение». У меня было несколько клиентов, пришедших ко мне перед пентестом с уверенностью в том, что они были в хорошей форме, потому что их анализ уязвимостей не показал кр...

[Перевод] REST API на Java без фреймворков Перевод статьи подготовлен специально для студентов курса «Разработчик Java». В экосистеме Java есть много фреймворков и библиотек. Хотя и не так много, как в JavaScript, но они и не устаревают так быстро. Тем не менее, это заставило меня задуматься о том, что мы уже забы...

[Перевод] Установка и настройка AlienVault SIEM (OSSIM) Перевод статьи подготовлен специально для студентов курса «Безопасность Linux». OSSIM (Open Source Security Information Management) — это проект с открытым исходным кодом от Alienvault, который обеспечивает функционал SIEM (Security information and event management). Он обе...

[Перевод] Юнит-тесты на Python: Быстрый старт Перевод статьи подготовлен специально для студентов курса «Python QA Engineer». Юнит-тестирование кода является неотъемлемой частью жизненного цикла разработки программного обеспечения. Юнит-тесты также формируют основу для проведения регрессионного тестирования, то есть о...

[Перевод] Что происходит, когда вы выполняете manage.py test? Перевод статьи подготовлен специально для студентов курса «Python Web-Developer».Вы запускаете тесты командой manage.py test, но знаете ли вы, что происходит под капотом при этом? Как работает исполнитель тестов (test runner) и как он расставляет точки, E и F на экране? К...

Как сделать базовый тест-класс для Selenium тестов и выполнить инициализацию через JUnit RuleChain Этой статьей мы продолжаем серию публикаций о том, как мы автоматизировали в одном из крупных проектов ЛАНИТ процесс ручного тестирования (далее – автотесты) большой информационной системы (далее – Системы) и что у нас из этого вышло. Как эффективно организовать иерархию кл...

[Перевод] Знакомимся с методом обратного распространения ошибки Всем привет! Новогодние праздники подошли к концу, а это значит, что мы вновь готовы делиться с вами полезным материалом. Перевод данной статьи подготовлен в преддверии запуска нового потока по курсу «Алгоритмы для разработчиков». Поехали! Метод обратного распространени...

Простой зомби-шутер на Unity Всем привет! Скоро стартуют занятия в первой группе курса «Разработчик игр на Unity». В преддверии начала курса прошел открытый урок по созданию зомби-шутера на Unity. Вебинар провёл Николай Запольнов, Senior Game Developer из Rovio Entertainment Corporation. Он также написа...

[Перевод] Тесты Ферма и Миллера-Рабина на простоту Салют хабровчане! Сегодня мы продолжаем делиться полезным материалом, перевод которого подготовлен специально для студентов курса «Алгоритмы для разработчиков». Дано некоторое число n, как понять, что это число простое? Предположим, что n изначально нечетное, поскольку в ...

[Перевод] Создаем план действий с помощью AWS Cloud Adoption Framework Перевод статьи подготовлен специально для студентов курса «Cloud Solution Architecture». Источник Скачать руководство Планы действий AWS CAF помогут вам подготовиться к переходу на облачный стек технологий. Путешествие начинается с того, что ваша команда руководителей...

Создаем калькулятор на Swift 5 В преддверии старта базового курса «iOS-разработчик» публикуем статью, которую написал наш внештатный автор. Всем привет! Прошло уже больше года с того момента, как появился релиз Swift 5, который принес разработчикам много нового. В этой статье я хочу поговорить о мобиль...

SLAE — Security Linux Assembly Expert Exam Security Linux Assembly Expert — онлайн-курс и экзамен по основам 32-битного языка ассемблера процессоров семейства Intel в Linux-системах в контексте информационной безопасности. Курс будет полезен пентестерам, инженерам по информационной безопасности и всем, кто желает ра...

[Перевод] Разбираемся с launchMode Android Activity: standard, singleTop, singleTask и singleInstance Перевод статьи подготовлен специально для студентов продвинутого курса по Android разработке. Activity — это одна из самых ярких концепций в Android (самой популярной мобильной операционной системе с хорошо продуманной архитектурой управления памятью, которая отлично реал...

[Перевод] 10 практических рекомендаций по безопасности образов Docker. Часть 2 Перевод статьи подготовлен специально для студентов курса «Безопасность Linux». Читать первую часть 5. Не оставляйте чувствительные данные в образах Docker Иногда при создании приложения внутри образа Docker вам нужны такие секретные данные, как приватный SSH-ключ для извл...

[Перевод] Использование VueJS вместе с Django Перевод статьи подготовлен в преддверии старта курса «Web-разработчик на Python». Введение Сейчас я работаю над очень интересным проектом. И в нем все сложно, потому что сам проект очень масштабный, а я занимаюсь им один в свободное время, при этом работая полный рабочий ...

[Перевод] Навигация между представлениями с помощью @EnvironmentObject в SwiftUI Перевод статьи подготовлен в преддверии старта продвинутого курса «Разработчик iOS». Здравствуйте и добро пожаловать на наш туториал! В этой серии мы говорим о том, как перемещаться между представлениями в SwiftUI (без использования навигационного представления!). Хоть эта...

[Перевод] Как прошел 2019 год в области математики и Computer Science Перевод статьи подготовлен специально для студентов базового и продвинутого курсов «Математика для Data Science». Математики и информатики за прошедший год добились больших успехов в теории чисел, теории графов, машинном обучении и квантовых вычислениях, даже пересмотрел...

[Перевод] Как добавить уведомления в реальном времени в Laravel с помощью Pusher Перевод статьи подготовлен специально для студентов курса «Framework Laravel». Современный веб-пользователь ожидает быть информированным обо всем, что происходит в приложении. Вы бы не хотели быть тем веб-сайтом, у которого нет хотя бы раскрывающегося списка уведомлений, к...

[Перевод] Быстрый поиск файлов От переводчика: предлагаю вашему вниманию перевод очень старой статьи, опубликованной 15 января 1983 года. Несмотря на столь внушительный возраст, статья показалась мне интересной, и возможно, что она будет полезной для кого-то и сегодня. На эту статью, кстати, ссылается раз...

[Перевод] Быстрый градиентный бустинг с CatBoost Привет, хабровчане! Подготовили перевод статьи для будущих учеников базового курса Machine Learning. В градиентном бустинге прогнозы делаются на основе ансамбля слабых обучающих алгоритмов. В отличие от случайного леса, который создает дерево решений для каждой выборки, в ...

[Перевод] Как устроен процесс создания docker-контейнера (от docker run до runc) Перевод статьи подготовлен в преддверии старта курса «Инфраструктурная платформа на основе Kubernetes». За последние несколько месяцев я потратил немало личного времени на изучение работы Linux-контейнеров. В частности, что конкретно делает docker run. В этой статье я соб...

[Перевод] Sysbench и распределение случайных величин Перевод статьи подготовлен специально для студентов курса «Базы данных». То, что вы, возможно, не знали о генерации случайных чисел в sysbench Sysbench — это популярный инструмент для тестирования производительности. Первоначально он был написан Петром Зайцевым в начале ...

[Перевод] Как микросервисы Netflix справляются с Pub-Sub данными Перевод статьи подготовлен специально для студентов курса «Архитектор высоких нагрузок». Введение В микросервисной архитектуре Netflix передача наборов данных от одного к нескольким конечным точкам может быть крайне сложной. Эти наборы данных могут содержать все, что уго...

Как добавить кодек в FFmpeg FFmpeg — это грандиозный Open Source проект, своего рода мультимедийная энциклопедия. С помощью FFmpeg можно решить огромное число задач компьютерного мультимедиа. Но все-таки иногда возникает необходимость в расширении FFmpeg. Стандартный способ — это внесение изменений в к...

Создание Python-обвязки для библиотек, написанных на C/C++, с помощью SIP. Часть 1 Иногда во время работы над проектом на языке Python возникает желание использовать библиотеку, которая написана не на Python, а, например, на C или C++. Причины для этого могут быть разные Во-первых, Python — язык замечательный, но в некоторых ситуациях недостаточно быстрый....

О том как написать и опубликовать смарт-контракт в Telegram Open Network (TON) О том как написать и опубликовать смарт-контракт в TON О чем эта статья? В статье я расскажу о том, как поучаствовал в первом (из двух) конкурсе Telegram по блокчейну, не занял призовое место и решил зафиксировать опыт в статье, чтобы он не канул в Лету и, возможно, помог ко...

Перевод на английский язык в сфере IT на примере PVS-Studio Наша компания PVS-Studio активно публикует статьи на тему разработки, поиска ошибок в коде, техниках по улучшению его качества. Этот пост отличается по тематике – в этот раз рассмотрим вопрос перевода на английский язык русскоязычного контента на тему разработки. В этой ста...

Интервальное голодание и паттерны продления жизни Lifext Интервальное голодание — паттерн питания в котором регулируются циклы с едой и без нее. Этот паттерн питания сейчас стал довольно популярным и, так как Lifext методика изначально уделяла большое внимание паттернам питания, то мы решили написать подробный разбор и перевести и...

[Перевод] Элегантное асинхронное программирование с помощью «промисов» Доброго времени суток, друзья! Представляю вашему вниманию перевод статьи «Graceful asynchronous programming with Promises» с MDN. «Обещания» (промисы, promises) — сравнительно новая особенность JavaScript, которая позволяет откладывать выполнение действия до завершения вы...

[Перевод] Сортировка в Scala — пример на кошках Привет, Хабр! Выношу на ваш суд русскоязычный перевод моей статьи на Medium: Sorting in Scala — a cat shop example. Статья рассчитана на читателей, знающих синтаксис языка Scala и осведомлённых о базовых инструментах стандартной библиотеки. Читать дальше →

Мониторинг БД Oracle с помощью OEM Привет! Меня зовут Александра, я работаю в команде тестирования производительности. В этой статье расскажу базовые сведения об OEM от Oracle. Статья будет полезна для тех, кто только знакомится с платформой, но и не только для них. Основная цель статьи — помочь провести бы...

[Перевод] Неоморфизм с помощью SwiftUI. Часть 1 Салют, хабровчане! В преддверии старта продвинутого курса «Разработчик IOS» мы подготовили еще один интересный перевод. Неоморфный дизайн — это, пожалуй, самый интересный тренд последних месяцев, хотя, по правде говоря, Apple использовала его в качестве своего дизайнерског...

[Перевод] useSWR – моя новая любимая библиотека React Перевод статьи подготовлен в преддверии старта курса «React.js разработчик». Последние несколько месяцев я работаю над приложением на NextJS. С каждой неделей оно становится все больше и больше. В приложении используется axios для вызовов API и unstated-next для управлени...

Apache Kafka: основы технологии У Kafka есть множество способов применения, и у каждого способа есть свои особенности. В этой статье разберём, чем Kafka отличается от популярных систем обмена сообщениями; рассмотрим, как Kafka хранит данные и обеспечивает гарантию сохранности; поймём, как записываются и ч...

[Перевод] Анализ вредоносного кода Skeleton Key Перевод статьи подготовлен специально для студентов курса «Реверс-инжиниринг». Краткое содержание Исследователи Dell SecureWorks Counter Threat Unit (CTU) обнаружили вредоносное ПО, обходящее проверку подлинности в системах Active Directory (AD), в которых реализована одн...

[Перевод] Используем nftables в Red Hat Enterprise Linux 8 Статья подготовлена в преддверии старта курса «Администратор Linux» В Red Hat Enterprise Linux 8 приоритетным низкоуровневым решением является nftables. В этой статье мы поговорим о том, как начать использовать nftables. Наиболее актуальной она будет для системных администр...

[Перевод] Сжатие ответов в GRPC для ASP.NET CORE 3.0 Перевод статьи подготовлен в преддверии старта курса «C# ASP.NET Core разработчик». В этом эпизоде моей серии статей о gRPC и ASP.NET Core мы рассмотрим подключение функции сжатия ответов (response compression) служб gRPC. ПРИМЕЧАНИЕ: В этой статье я рассказываю о некото...

PHP и регулярные выражения: азы для новичков В преддверии старта нового потока по курсу «Backend-разработчик на PHP», а также смежного с ним курса «Framework Laravel», хотим поделиться статьей, которую подготовил наш внештатный автор. Внимание! данная статья не имеет отношения к программе курса и будет полезна только ...

[Перевод] Алгоритм сжатия Хаффмана В преддверии старта курса «Алгоритмы для разработчиков» подготовили для вас перевод еще одного полезного материала. Кодирование Хаффмана – это алгоритм сжатия данных, который формулирует основную идею сжатия файлов. В этой статье мы будем говорить о кодировании фиксирован...

Ростов-на-Дону: IT-компании, сообщества и мероприятия в 2019 году Привет. Меня зовут Вадим и я занимаюсь развитием IT-тусовок в Ростове. В 2016 году spasibo_kep написал статью "Едем в город южный: как живут разработчики в Ростове-на-Дoну" о Ростовском IT. Пришло время её обновить, тем более, что Ростов в 2019 году стал 4ым в Рос...

[Перевод] Как работает гистограмма Prometheus? Перевод статьи подготовлен в преддверии старта курса «Мониторинг и логирование: Zabbix, Prometheus, ELK». Ранее мы рассматривали счетчик (counter), измеритель (gauge) и сводку (summary). Теперь же давайте поговорим о том, как работает гистограмма (histogram) в Prometheus....

[Перевод] Локализация в ASP.NET Core Razor Pages — Культуры Привет, хабр! Прямо сейчас OTUS открывает набор на новый поток курса "C# ASP.NET Core разработчик". В связи с этим традиционно делимся с вами полезным переводом и приглашаем записаться на день открытых дверей, в рамках которого можно будет подробно узнать о курсе, а также за...

[Перевод] Как создать проект Django из шаблона И снова здравствуйте! Специально для студентов курса «Web-разработчик на Python» мы подготовили еще один интересный перевод. Шаблон проекта на Django – это естественный способ решения проблем, которые возникают, когда формат Django-проекта по умолчанию уже не отвечает тр...

[Перевод] Продуктовые стратегии для затрат перехода Перевод статьи подготовлен в преддверии старта курса «Product Manager IT-проектов». В своей предыдущей статье мы говорили о трех категориях затрат перехода: финансовых, процедурных и реляционных. Как можно использовать затраты перехода, чтобы повысить ценность вашего прод...

[Перевод] Напишем и поймем Decision Tree на Python с нуля! Часть 3. Библиотека для анализа данных Pandas Привет, Хабр! Представляю вашему вниманию перевод статьи "Pythonで0からディシジョンツリーを作って理解する (3. データ分析ライブラリPandas編)". Это третья статья из серии. Ссылки на предыдущие статьи: первая, вторая В данной статье я объясню, как работать с библиотекой Pandas, чтобы создавать De...

[Из песочницы] Алгоритмы рандома В этой статье вы увидите самые разнообразные велосипеды алгоритмы для генерации случайных чисел. Про что статья Про алгоритмы генерирующие псевдослучайные числа, которые отличаются между собой качеством результата и скоростью исполнения. Статья будет полезна тем, кто хочет ...

Настройка CI/CD в Plesk+Github Actions для проекта на Flask+Angular В этой статье я поделюсь своим опытом настройки CI/CD с использованием панели управления Plesk и Github Actions. Сегодня будем учиться деплоить простенький проект с незамысловатым названием «Helloworld». Он написан на Python-фреймворке Flask, с воркерами на Celery и фронтен...

[Перевод] 10 интересных репозиториев на GitHub, полезных любому разработчику Представляем вам перевод статьи Simon Holdorf, опубликованной на сайте medium.com. В ней вы найдете ссылки на полезные репозитории, с помощью которых можно прокачать навык разработки ПО. Фото с ресурса Unsplash. Автор: Vishnu R Nair GitHub — это лучшая платформа для обме...

[Перевод] Подсчет запросов: Базовое тестирование производительности на Django Всем привет. Мы подготовили перевод еще одного полезного материала для студентов курса «Web-разработчик на Python», который стартовал вчера. Очень часто можно услышать о методах тестирования, таких как TDD, и о том, как тестировать бизнес-логику приложения. Однако тестиро...

[Перевод] Использование API Gateway в качестве единой точки входа для веб-приложений и API Перевод статьи подготовлен специально для студентов курса «Архитектор высоких нагрузок». Введение Преимущества AWS, такие как высокая доступность, масштабируемость и эластичность, уже доказали свою эффективность для SaaS-провайдеров (Software-as-a-Service). При модернизац...

[Перевод] Безопасная работа с секретами при сборке в Docker Compose Перевод статьи подготовлен в преддверии старта курса «Web-разработчик на Python». Когда вы собираете Docker-образ вам могут понадобиться секреты, например, пароль к приватному репозиторию пакетов. Вы не хотите, чтобы этот секрет в конечном итоге оказался в образе, потому ...

Кастомизация компонентов Ant Design и оптимизация бандла The Archivist by juliedillon Я Иван Копенков, ведущий фронтенд-разработчик в Mail.ru Cloud Solutions, в статье расскажу, какие есть подходы к кастомизации компонентов UI-библиотеки Ant Design, как это сделали мы, а так же покажу, как удалось полностью избавиться от неисполь...

Учеба это не лотерея, метрики лгут Это статья — ответ на пост, в котором предлагают выбирать курсы исходя из величины конверсии студентов из поступивших в устроившиеся. При выборе курсов вас должны интересовать 2 цифры — доля людей, дошедших до конца курса и доля выпускников, устроившихся на работу в течение...

Локализация приложений: как мы подружили перевод и разработку Привет, Хабр! Я ведущий разработчик системы локализации в Badoo. Мы работаем с несколькими большими проектами: Badoo, Bumble, Lumen и Chappy. Сейчас в системе локализации у нас находятся 150 000 фраз и текстов, переведённых на 52 языка. При этом каждое из наших приложений и...

Oracle: разница между deterministic и result_cache От переводчика: свой путь на habr я решил начать не с попытки написать какой-то уникальный текст с нуля, а с перевода относительно свежей (от 17.08.2020) статьи классика PL/SQL-разработки Стивена Фойерштайна, в которой он достаточно подробно рассматривает разницу между двумя...

[Из песочницы] Расчет временных ограничений для ПЛИС простым языком Здравствуйте. Эта статья написана для самых-самых новичков в мире ПЛИС. В ней я попытаюсь максимально просто и понятно рассказать что такое временны́е ограничения (timing constraints), накладываемые на проекты под ПЛИС. Статья создана на основе собственного опыта попыт...

Анатомия юнит-теста Эта статья является конспектом книги «Принципы юнит-тестирования». Материал статьи посвящен структуре юнит-теста.В этой статье рассмотрим структуру типичного юнит-теста, которая обычно описывается паттерном AAA (arrange, act, assert — подготовка, действие и проверка). З...

[Перевод] 70 вопросов по JavaScript для подготовки к собеседованию Доброго времени суток, друзья! Представляю Вашему вниманию перевод статьи Mark A «70 JavaScript Interview Questions». Надеюсь, эта статья будет полезна как начинающим разработчикам, так и бывалым (я хотел сказать, опытным). Первым для изучения, вторым для повторения. Лич...

[Перевод] Внутри виртуальной машины Python. Часть 2 Привет, Хабр. Перевод этой статьи занял намного больше времени, чем ожидалось. Мне очень хотелось сделать всё качественно и без обмана, но если найдёте неточности, буду рад услышать о них. Также я буду сам перечитывать и исправлять ошибки предыдущих статей, если где-то оказ...

Пишем «калькулятор» на C#. Вычисление значения, производная, упрощение, и другие гуси Привет! Калькулятор у нас почему-то ассоциируется с чем-то, что должен написать каждый новичок. Возможно потому, что исторически компьютеры с той целью и создавались, чтобы считать. Но мы будем писать непростой калькулятор, не sympy конечно, но чтобы умел базовые алгебраиче...

Моделируем поведение Quartus-проекта на Verilog в среде ModelSim В прошлой статье мы сделали достаточно сложный модуль. Разумеется, я вставил в тело статьи уже отлаженный результат. Но мне показалось, что достаточно странно, когда автор говорит «делай, как я», но при этом не показывает очень важного процесса. Давайте я покажу, как вообще ...

5 самых известных проектов, написанных на Golang О языке программирования Golang, созданном корпорацией Google, на Хабре рассказывали много и подробно, так что мы не будем в очередной раз обсуждать достоинства этого инструмента. Лучше поговорим об известных проектах, которые написаны на Go — они являются доказательством...

[Перевод] Предсказание стоимости биткоина по новостям на Python Перевод статьи подготовлен в преддверии старта курса «Machine Learning» от OTUS. Задача В этом руководстве мы используем датасет Bitcoin vs USD. Вышеприведенный датасет содержит ежедневную сводку цен, где колонка CHANGE – это изменение цены в процентах от цены за п...

[Перевод] JavaScript tree shaking, like a pro Это перевод статьи об оптимизации и уменьшении размера бандла приложения. Она хороша тем, что тут описаны best practices, советы, которых стоит придерживаться, чтобы тришейкинг работал и выкидывал неиспользуемый код из сборки. Она будет полезной многим, потому что сейчас все...

Дополняя SQL. Часть 2. Оптимизация работы со строками и открытия файлов Публикую на Хабр оригинал статьи, перевод которой размещен в блоге Codingsight. Что будет в этой статье? Это вторая статья в цикле о жизни разработчиков IDE для баз данных. Ее структура будет похожа на первую. Как и в первой я расскажу о проблемах с которыми мы сталкивались...

RE: Страх и ненависть в IT Писать ответы на статьи легко и приятно. Не надо часами корпеть над структурой статьи, достаточно следовать чужому плану и лишь внятно изложить мысли на бумаге. Тем не менее, рискну предположить, что критический взгляд «с другой стороны» на проблемы, поднятые в статье "Страх...

[Из песочницы] 10 признаков того, что хороший программист из вас не получится Привет, Хабр! Представляю вашему вниманию перевод статьи «10 Signs You Will Suck at Programming» автора Jonathan Bluks. Очень часто на Reddit или Quora я вижу вопросы вида «Как понять, смогу ли я стать успешным программистом?» (На самом деле, эта статья является расширенн...

Изучаем VoIP-движок Mediastreamer2. Часть 8 Материал статьи взят с моего дзен-канала. Структура RTP-пакета В прошлой статье мы с помощью TShark выполнили захват RTP-пакетов, которыми обменивались наши приемник и передатчик. Ну а в этой мы раскрасим элементы пакета в разные цвета и поговорим об их назначении. Взглянем...

[Перевод] Напишем и поймем Decision Tree на Python с нуля! Часть 1. Краткий обзор Привет, Хабр! Представляю вашему вниманию перевод статьи "Pythonで0からディシジョンツリーを作って理解する (1. 概要編)". 1.1 Что такое Decision Tree? 1.1.1 Пример Decision Tree Например, у нас есть следующий набор данных (дата сет): погода, температура, влажность, ветер, игра в гольф. В ...

[Перевод] Что JavaScript-разработчику следует знать о Curl Доброго времени суток, друзья! Представляю Вашему вниманию перевод статьи «What JavaScript Developers Should Know About Curl» автора Valery Karpov. Curl — это популярный инструмент командной строки, часто используемый для отправки HTTP-запросов. Curl поддерживает большое...

14 практических советов по использованию Tableau Всем привет, меня зовут Меркурьев Михаил, я продуктовый аналитик в ManyChat. Год назад мы решили использовать Tableau как основной BI инструмент в компании и столкнулись с рядом проблем, касающихся того, что нужно наладить эффективную работу с инструментом для аналитиков, ме...

[Перевод] 22 полезных примера кода на Python Python — один из самых популярных языков программирования, чрезвычайно полезный и в решении повседневных задач. В этой статье я вкратце расскажу о 22 полезных примерах кода, позволяющих воспользоваться мощью Python. Некоторые из примеров вы могли уже видеть ранее, а другие...

[Перевод] Эндрю Ын «Страсть к машинному обучению». Перевод глав 47-58 Это вторая статья с переводом отдельных глав книги Эндрю Ына «Страсть к машинному обучению». Перевод предыдущих глав вы можете почитать по ссылке. В этой статье речь пойдёт о сквозном (end-to-end) глубоком обучении, а так же автор книги поделится некоторыми способами анал...

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

[Перевод] Применение ZIO ZLayer В июле OTUS запускает новый курс «Scala-разработчик», в связи с чем мы подготовили для вас перевод полезного материала. Новая функция ZLayer в ZIO 1.0.0-RC18+ является значительным улучшением старого паттерна модулей, что делает добавление новых сервисов намного быстрее и...

[Перевод] Проверка образов с помощью Gitlab CI/CD Всем привет, в преддверии старта курса «CI/CD на AWS, Azure и Gitlab» подготовили перевод интересного материала. В этой статье мы поговорим о том, как проверять образы контейнеров на платформе Gitlab CI/CD с помощью Sysdig Secure. Образы контейнеров, которые не соответст...

[Перевод] Какую кибердеку я бы хотел сделать для себя Перевод статьи из блога AbcLinuxu В 2016 году я создал сабреддит /r/cyberDeck. Отчасти потому, что меня вдохновила статья о создании кибердеки, а отчасти из-за нескольких обсуждений в IRC, в которых я принимал участие, и поскольку мне кажется, что эта идея – нечто большее, ...

[Из песочницы] Ешь рис, молись Амитофо, люби котиков Статистические данные, о том, как живут-поживают китайские программисты Привет-привет, друзья. Сегодня Россия активно сотрудничает с Китаем в области IT- искусственного интеллекта, больших данных, и в планах даже создание «Российско-китайской цифровой долины». Эта статья...

[Из песочницы] Flutter. Асинхронность и параллельность Привет, Хабр! Представляю вашему вниманию перевод статьи "Futures — Isolates — Event Loop" автора Didier Boelens об асинхронности и многопоточности в Dart (и Flutter в частности). TLDR: В целом, статья ориентирована на новичков и не изобилует откровениями. Если вы ...

[Из песочницы] Получение meterpreter сессии внутри NAT сети, с помощью Chrome и Pivot машины Вводная Всем привет, в этой статье я хочу поделиться своим опытом в эксплуатации уязвимости Chrome FileReader UAF, проведении техники pivoting, ну и написать свою первую статью конечно. Так как я являюсь начинающим Pentest инженером, то потратил на освоение и понимание этой...

[Перевод] REST API в Symfony (без FosRestBundle) с использованием JWT аутентификации. Часть 1 Перевод статьи подготовлен в преддверии старта курса «Symfony Framework». В первой части статьи мы рассмотрим самый простой способ реализации REST API в проекте Symfony без использования FosRestBundle. Во второй части, которую я опубликую следом, мы рассмотрим JWT аутентиф...

[Из песочницы] DLL & Python DLL & Python Недавно меня заинтересовала тема использования DLL из Python. Кроме того было интересно разобраться в их структуре, на тот случай, если придется менять исходники библиотек. После изучения различных ресурсов и примеров на эту тему, стало понятно, что примене...

[Из песочницы] Ты еще не используешь tmux на полную! (Наверное) Привет, Хабр! Представляю вашему вниманию перевод статьи "(たぶん)君はまだtmuxの真の力を引き出せていない". Содержание Что такое tmux Запуск и начало новой сессии Открытие нового окна Переходы между окнами Разделение окон и создание панелей Передвижение между панелями Передвижение ме...

[Перевод] Победить дракона новостной ленты: как убедиться, что вы проживёте хорошую жизнь Это перевод философской и метафоричной статьи Никласа Гоеки о том, почему люди скроллят контент вместо того, чтобы по-настоящему получать удовольствие от своей жизни. Признайтесь, вы же попали сюда из новостной ленты. Статья бережно перенесена из блога бегущего редактора....

Собеседование php-developer в 2020 Так уж получилось, что в этом году я прошел ряд собеседований на позицию PHP разработчика, чего я не делал уже несколько лет. Будучи человеком ленивым практичным, перед собеседованием я попытался найти сборники вопросов-ответов, но все найденное было довольно старым, поэтому...

[Перевод] Что под капотом компиляторных оптимизаций GraalVM? Продолжаем разбираться с работой GraalVM, и на этот раз у нас перевод статьи Aleksandar Prokopec «Under the hood of GraalVM JIT optimizations», изначально опубликованной в блоге на Medium. В статье есть несколько интересных ссылок, позже мы постараемся перевести и эти статьи...

[Перевод] Спецификация D-Bus. Часть 1 Данная статья открывает серию публикаций с переводом спецификации D-Bus (Версия 0.36 от 2020-04-21). Поскольку у D-Bus нет логотипа, то в качестве обложки была использована картинка автобуса с D-образным корпусом. Для краткого введения в тему D-Bus рекомендую прочитать пер...

[Перевод] 7 способов повысить эффективность автоматизации тестирования в Agile разработке Перевод статьи подготовлен в преддверии старта курса «Java QA Engineer». Разработка программного обеспечения — процесс сложный. Еще на заре разработки программного обеспечения как дисциплины архитекторы поняли, что без структуры управления этот процесс превращается в хао...

Как увеличить дальность связи с беспилотным летательным аппаратом (БЛА) Задача увеличения дальности связи с беспилотным летательным аппаратом (БЛА) не теряет актуальности. В данной статье рассматриваются методы улучшения этого параметра. Статья написана для разработчиков и эксплуатантов БЛА и является продолжением цикла статей про связь с БЛА (н...

CI/CD на AWS, Azure и Gitlab. Новый курс от OTUS Внимание! Данная статья не является инженерной и предназначается читателям, которые интересуются образованием в области CI/CD. Вероятнее всего, если Вы не заинтересованы в обучении, данный материал не будет Вам интересен. Если вы разработчик или администратор, отвечающий ...

[Из песочницы] Golang + Phaser3 = MMORPG — Делаем базу для бесконечной генерации мира На русскоязычных ресурсах трудно найти подходящую информацию, возможно этот материал позволит вам понять некоторые основы для создания многопользовательских игр и не только. Я планирую сделать серию статей по созданию 2.5D MMORPG, то бишь в изометрии, наш мир будет разделе...

Как с помощью хакатона столкнуть математиков и ML–щиков, и кто тогда победит Введение Эта статья о том, как мы совместно с роснефтёвой «дочкой» «Самаранефтехимпроект» и Казанским Федеральным Университетом в сентябре 2020 года провели «Хакатон трёх городов», на котором предложили студентам решить классическую задачу сейсмической корреляции отражающих ...

2 шага к построению адаптивной верстки Flutter-приложения В этой статье речь пойдет о том, как создать Flutter-приложение, которое умеет адаптироваться к разным экранам и ориентациям. Статья будет полезна как начинающим, так и опытным пользователям Flutter. Первые найдут шаблон для изучения, вторые — еще один взгляд на этот вопрос....

[Перевод] Концепции, лежащие в основе Web Audio API Доброго времени суток, друзья! В этой статье объясняются некоторые концепции из теории музыки, на основе которых работает Web Audio API (WAA). Зная эти концепции, вы сможете принимать взвешенные решения при проектировании аудио в приложении. Статья не сделает вас опытным ...

[Перевод] Рецепты по приготовлению оффлайн-приложений Доброго времени суток, друзья! Представляю вашему вниманию перевод замечательной статьи Джейка Арчибальда «Offline Cookbook», посвященной различным вариантам использования сервис-воркера (ServiceWorker API, далее по тексту — просто воркер) и интерфейса кэширования (Cache ...

[Перевод] С чего начать изучение Flutter в 2021 году Как и многие мобильные разработчики, мы с нетерпением ждали презентации Flutter и теперь хотим поделиться с читателями Хабра переводом статьи Tadas Petra о том, как можно выстроить свое обучение, если вы хотите познакомиться с Flutter и кроссплатформенными приложениями в 202...

[Перевод] Валидация и обработка исключений с помощью Spring Каждый раз, когда я начинаю реализацию нового REST API с помощью Spring, мне сложно решить, как выполнять валидацию запросов и обрабатывать бизнес-исключения. В отличие от других типичных проблем API, Spring и его сообщество, похоже, не согласны с лучшими методами решен...

Автоматизация тестирования: Java или Python? Всем привет! В марте OTUS запускает сразу два курса по автоматизации тестирования: «Python QA Engineer» и «Java QA Engineer». У нас часто спрашивают, какой из этих курсов выбрать, ответить на данный вопрос мы решили переводом статьи от компании SafeBear. Один из самых попу...

[Перевод - recovery mode ] Zettelkasten: как один немецкий учёный стал невероятно продуктивным Изображение предоставлено автором. Основано на фотографии Патрика Томаса с Ансплэша Это перевод статьи Дэвида Клира о методе ведения заметок Zettelkasten, благодаря которому немецкий социолог Никлас Луман написал более 70 книг и 400 научных статей. Стоит читать, если вы хо...

Rust глазами Python-разработчика Привет! Мы – часть команды разработки «Рамблер/Медиа» (портал «Рамблер»). На протяжении трех лет мы поддерживаем и развиваем несколько больших python-приложений. Чуть больше года назад перед нами встала задача написать еще одно большое приложение – API к основному хранилищу...

[Перевод] 6 советов по нагрузочному тестированию к Черной пятнице Перевод статьи подготовлен в преддверии старта нового курса от OTUS — «Нагрузочное тестирование». От автора: И хотя черная пятница не скоро, советы из этой статьи определенно будут полезны тем, кто занимается нагрузочным тестированием. Черная пятница приближается очень б...

[Перевод] Реализуем машинное обучение на iOS-устройстве с использованием Core ML, Swift и Neural Engine Привет, хабр! В преддверии старта продвинутого курса «Разработчик iOS», мы традиционно подготовили для вас перевод полезного материала. Введение Core ML — это библиотека машинного обучения, выпущенная в свет Apple на WWDC 2017. Она позволяет iOS разработчикам добавлять ...

Сам себе Роскомнадзор. Как я заблокировал соцсети У меня отключена лента Фейсбука и Вконтакте, нет подписок в Инстаграме, Ютубе и Твиттере. При этом я ниоткуда не удалялся, в монастырь не уходил и продолжаю вести нормальную жизнь человека 2020 года. Надевайте шапочку из фольги и присаживайтесь поудобнее, я расскажу о своё...

[Из песочницы] Как разработать дизайн и код персонального веб-сайта Привет, Хабр! представляю вашему вниманию перевод статьи «How to Design and Code a Personal Website» автора Ryan Smith. Многие разработчики считают, что быть хорошим дизайнером — это врожденная способность, что творческий подход — это то, с чем вы сразу родились. На самом д...

[Перевод] Обработка сетевых данных на лету Перевод статьи подготовлен в преддверии старта курса «Пентест. Практика тестирования на проникновение». Аннотация Разнообразные виды оценки безопасности, начиная от регулярного тестирования на проникновение и операций Red Team до взлома IoT/ICS-устройств и SCADA, подразум...

[Перевод] Rust для Java разработчиков Представляю перевод статьи автора Evan Cameron, которая может помочь Java разработчикам лучше понять отличия и схожесть этих двух языков — оригинал на сайте автора. Не считая себя достаточно опытным Rust разработчиком, я вряд ли смогу аргументированно участвовать в возможных...

[Из песочницы] PRESENT — ультралегкое блочное шифрование (перевод оригинальной статьи PRESENT: An Ultra-Lightweight Block Cipher) Привет, Хабр! Привожу тут перевод оригинальной статьи «PRESENT: An Ultra-Lightweight Block Cipher» за авторством Robert B. Weide Богданова, Лендера, Паара, Пошмана, Робшава, Сеурина и Виккелсоя. Аннотация После внедрения AES потребность в новых алгоритмах блочного шифрова...

Разбираем EM-algorithm на маленькие кирпичики В этой статье, как Вы уже, наверное догадались, речь пойдет об устройстве EM-алгоритма. Статья прежде всего может быть интересна тем, кто потихонечку уже вступает в сообщество датасайнтистов. Материал изложенный в статье в большей степени будет полезен тем, кто недавно нач...

HorizontalList с помощью SwiftUI Вступление SwiftUI — это современный UI framework, который позволяет разработчикам быстро и легко создавать собственные приложения на всех платформах Apple. Используя простой, понятный декларативный стиль, разработчики могут создавать потрясающие пользовательские интерфейсы ...

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

Как мы сделали миграцию пользовательских данных с нативного приложения на Flutter Всем привет! Меня зовут Дмитрий Андриянов, я Flutter-разработчик в Surf. В этой статье я расскажу про бесшовную миграцию данных при установке новой версии приложения, написанного на Flutter, поверх предыдущей версии, написанной на нативе. Это решение реализовано моим коллег...

3D игры в Инстаграм на Javascript, или траектория полета колбасы После первой статьи о программировании игр в масках Инстаграм ко мне обратился заказчик с просьбой создать игру в Инстаграм для его пиццерии. Эту игру планировалось использовать для целей продвижения бизнеса. Я, конечно, понимаю, что, судя по количеству просмотров первой с...

[Перевод] Swift Property Wrappers Если вы использовали SwiftUI, то наверняка обращали внимание на такие ключевые слова, как @ObservedObject, @EnvironmentObject, @FetchRequest и так далее. Property Wrappers (далее «обёртки свойств») — новая возможность языка Swift 5.1. Эта статья поможет вам понять, откуда же...

Kaspresso tutorials. Часть 1. Запуск первого теста Всем привет! Мы запускаем большую серию статей-туториалов о Kaspresso в частности и UI-тестах под Android в общем. Статьи планируются разного уровня сложности: первые материалы будут рассчитаны на  людей, которые никогда не программировали и ничего не автоматизировали, ...

Почему вам не надо становиться тимлидом? Привет, друзья. Эта статья написана Георгием Могелашвили (glamcoder), который работает на позиции Lead Developer в Booking.com в Амстердаме и отвечает за архитектуру и координацию нескольких технических команд в отделе маркетинга, а по совместительству Георгий преподает в OT...

[Перевод] Cloudflare PHP API Binding Перевод статьи подготовлен в преддверии старта курса «Backend-разработчик на PHP». Для тех разработчиков, которые используют PHP 7.0 или выше, Cloudflare предоставляет PHP API биндинг. Он поддерживает последнюю четвертую версию API Cloudflare. Вы можете использовать этот S...

[Из песочницы] Особенности выпуска Unreal Engine 4 игры на iOS Приветствую. В этой статье я перечислю трудности и неочевидные моменты, с которыми лично я столкнулся при выпуске игры на iOS, а также их решения. Игра начинала создаваться на Unreal Engine 4.18, сейчас последний билд в магазине использует UE 4.24. Сначала игра была выпуще...

Превращаем DSLogic U2Basic в DSLogic Plus Привет, Хабр! В данной статье расскажу как модифицировать DSLogic U2Basic до DSLogic Plus. Данная статья является обновлением статьи — Превращаем DSLogic Basic в DSLogic Plus Кому интересно — прошу под кат. Читать дальше →

IDA Pro: 11 советов, которые вы (может быть) не знали Как скопировать псевдокод в ассемблерный листинг? Как правильно выровнять структуры? Как лучше всего сделать экспорт куска данных для использования в скрипте? В этой статье я покажу компиляцию полезных, как мне кажется, советов для IDA Pro, честно украденных позаимствованных...

7 бесплатных курсов для специалистов по работе с данными (DS и DE) Finale! Именно этим итальянским словом можно назвать эту статью. Ведь она последняя уже во второй серии подборок бесплатных курсов от Microsoft. И сегодня у нас курсы для специалистов по анализу данных и инженеров данных. Присоединяйтесь! Кстати! Все курсы бесплатные (вы ...

[Из песочницы] Первые шаги в Spring, Rest API, акцент на PUT в связке с фронтендом Немного о себе: На данный момент я студент Skillbox и прохожу курс “Java-разработчик”. Не в коем случае не реклама, рассказываю немного о себе. Начал учить джаву с мая 2019 года, до этого немного самостоятельно изучал HTML, CSS и JS. Собственно, подтолкнуло меня на написани...

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

Symbol.iterator в Javascript Это короткая, но достаточно полезная статья для продолжающих разработчиков о итераторах в Javascript. Читать дальше →

[Из песочницы] Как использовать несколько языков программирования и не сойти с ума Привет, Хабр! Представляю вашему вниманию перевод статьи «How to use multiple programming languages without losing your mind» автора Bart Copeland. Сопливое нытьё про FSF и Red HatКароч, тема такая: я им написал, а они не ответили. Ну ладно бы Массивсофт, который вообще ник...

oVirt за 2 часа. Часть 4. Базовые операции Сегодня мы рассмотрим ряд базовых операций, которые регулярно потребуется выполнять администратору среды виртуализации. Статья — продолжение серии по oVirt: часть 1, часть 2 и часть 3: Содержание Создание ВМ и шаблона; Миграция ВМ (live migration); Миграция хранилища (stor...

Типизированные запросы OData в TypeScript Традиционно запросы OData к данным выражаются в виде простых строк без проверки типов при компиляции или без поддержки IntelliSense, кроме того, разработчику приходится изучать синтаксис языка запросов. Данная статья описывает библиотеку TsToOdata, которая превращает запрос...

[Перевод] Взлом Wi-Fi-сетей, защищённых WPA и WPA2 Автор статьи, перевод которой мы сегодня публикуем, хочет рассказать о том, как взломать Wi-Fi-сеть, для защиты которой используются протоколы WPA и WPA2. Статья написана исключительно в ознакомительных целях Читать дальше →

[Перевод] Автогенерация секретов в Helm Auto-Generated Helm Secrets Команда Kubernetes aaS от Mail.ru перевела короткую заметку о том, как автоматически генерировать секреты Helm при обновлении. Далее текст от автора статьи — технического директора Intoware, компании-разработчика SaaS-решений. Контейнеры — это...

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

[Из песочницы] Прикручиваем ActiveDirectory авторизацию к Kubernetes c помощью Keycloak Данная статья написана с целью расширить уже существующую, но рассказывает про особенности связки именно с Microsoft ActiveDirectory, а так же дополняет ее. В этой статье я расскажу как установить и настроить: Keycloak — это проект с открытым исходным кодом. Который обес...

[Перевод] В поисках единорогов: классическая воронка стартапов сломалась Перевод статьи подготовлен в преддверии старта курса «Product Manager IT-проектов». Согласно отчету Global Entrepreneur Monitor (GEM) за 2019 год, ежегодно во всем мире запускается более 100 миллионов стартапов. То есть это примерно 3 стартапа в секунду. Предприниматели по...

Навыки команды: Как я настраивал матрицу компетенций Почему в Confluence? Когда я пришел в команду разработки платформ бизнес-сервисов, мне было сложно разобраться, кто чем занимается, какие продукты разрабатываются и поддерживаются, какие навыки для этого нужны команде, кого и чему нужно научить. В этой статье я расскажу, ка...

[Перевод] Понимаем и ищем уязвимости типа Open Redirect Перевод статьи подготовлен в преддверии старта курса «Безопасность веб-приложений». Одной из наиболее распространенных и тем не менее игнорируемых веб-разработчиками уязвимостей является Open Redirect (также известная как «Непроверенные переадресации и пересылки»). Веб-са...

Пишем шеллкод под Windows на ассемблере В этой статье я хочу показать и подробно объяснить пример создания шеллкода на ассемблере в ОС Windows 7 x86. Не смотря на солидный возраст данной темы, она остаётся актуальной и по сей день: это стартовая точка в написании своих шеллкодов, эксплуатации переполнений буферо...

[Из песочницы] Изучаем мультикаст операторы RxJS Привет, Хабр! Представляю вашему вниманию перевод статьи «Understanding RxJS Multicast Operators» автора Netanel Basal. Широковещательные или мультикаст операторы нередко кажутся самой сложной темой при изучении RxJS. В этой статье я попробую все доступно объяснить. Мы рас...

[Перевод] 5 типичных ошибок при создании React компонентов (с хуками) в 2020 году Всем привет! Из этой статьи вы узнаете о самых распространенных ошибках при создании React компонентов, а также о том, почему они считаются ошибками, как их избежать или исправить. Оригинальный материал был написан немецким разработчиком Лоренцом Вайсом для личного блога, ...

[Перевод] Thanos — масштабируемый Prometheus Перевод статьи подготовлен специально для студентов курса «DevOps практики и инструменты». Фабиан Рейнарц (Fabian Reinartz) — разработчик программного обеспечения, фанат Go и любитель решать сложные задачи. Также он мэйнтейнер Prometheus и соучредитель Kubernetes SIG instr...

[Перевод] Привлечение и удержание художников в open-source играх Автор оригинальной статьи — Jetrel. Художник, который активно участвует в проектах Open Source игр. Несколько лет назад он был «арт-директором» игры Battle for Wesnoth. Кроме того, он сделал львиную долю арта для Frogatto and friends и продолжает работать над этой игрой. По...

[Перевод] Проверяем на уязвимости любой сайт с помощью Nikto Всем привет! В марте OTUS запускает новый курс «Практикум по Kali Linux». В преддверии старта курса подготовили для вас перевод полезного материала. Также хотим пригласить всех желающих на бесплатный урок по теме: «Denial of Service атаки и защита от них». Перед тем как ат...

[Из песочницы] 3 года программирования вслепую. Часть 1 Всем доброго времени суток! Хочу поделиться своим опытом из разряда «Войти в IT». Тем более, что он происходил в полностью невизуальном режиме. О незрячих людях в нашем обществе знают мало, а о незрячих программистах еще меньше. И эта статья предлагает проследить за тем, как...

Материальный дизайн. Создание анимаций в Kivy Приветствую всех любителей и знатоков языка программирования Python! В этой статье я покажу, как работать с анимациями в кроссплатформенном фреймворке Kivy в связке с библиотекой компонентов Google Material Design — KivyMD. Мы рассмотрим структуру Kivy проекта, использован...

[Перевод] Дружим ORDER BY с индексами Привет, Хабр! Я потихоньку перевожу статьи Маркуса Винанда из блога use the index luke. Первой статьей в цикле был манифест Маркуса о важности использования безофсетной пагинации на ключах. Мы рассмотрели всего один пример, как этот подход работает на практике. В этой и сле...

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

PostgreSQL: Серверное программирование на «человеческом» языке (PL/Perl, PL/Python, PL/v8) Postgres знаменит своей расширяемостью, что относится и к поддержке процедурных языков (PL). Никто не может похвастаться языком списком языков такой длины, а потенциально этот список и вовсе не ограничен: для того, чтобы подключить язык к серверу, не требуется сверхусилий. М...

Kubernetes: мониторинг c помощью Prometheus Привет, Хабр! Меня зовут Радик, Head of DevOps of AGIMA! В этой статье я постарался показать, как можно использовать Prometheus в качестве системы мониторинга для микросервисной архитектуры. Подробно рассмотрел архитектуру Prometheus и взаимодействие его компонентов. О...

[Перевод] Мои любимые трюки в JavaScript Приветствую. Представляю вашему вниманию перевод статьи «My Favorite JavaScript Tips and Tricks», опубликованной 28 июля 2020 года автором Tapas Adhikary Большинство языков программирования являются достаточно открытыми, чтобы предоставить разработчикам возможность делать о...

[Перевод] Как начать заниматься Bug Bounty Друзья, в этом месяце Otus запускает набор на новый курс — «Безопасность приложений». В преддверии старта курса традиционно подготовили для вас перевод полезного материала. Как начать заниматься Bug Bounty? Этот вопрос весьма распространенный, и я продолжаю получать его в ...

[Перевод] Несколько полезных советов как практиковаться в Python Привет, Хабр! Сегодня я предлагаю Вам перевод статьи Duomly, посвящённой изучению и практике программирования на языке Python. Введение Изучение Python не сильно отличается от изучения других языков программирования. Один путь для становления профессионалом в Python (или в д...

Как мы улучшили интерфейс VSO-движка Playrix и приблизили его по удобству к Unity Ранее на Хабре мы уже писали о том, как сделали собственный игровой движок VSO, а сегодня расскажем, как мы улучшали его интерфейс и удобство работы с ним. Статья будет полезна всем, кто только начинает разбираться с UX/UI и хочет узнать, как с помощью базовых прин...

[Из песочницы] Введение в ASGI: становление асинхронной веб-экосистемы Python Привет, Хабр! Представляю вашему вниманию перевод статьи "Introduction to ASGI: Emergence of an Async Python Web Ecosystem" автора Florimond Manca. "Черепахи рядом с водоемом", Ricard Baraham на unsplash.com Python не замыкается только на Data Science, в...

Параметризованное 3D-моделирование подшипникового стакана в nanoCAD Plus 20 Компания MaxSoft категорически приветствует всех читателей! В этой статье речь пойдет о САПР-платформе nanoCAD, а если конкретнее — о её 3D модуле. Так уж сложилось, что из релиза в релиз, все вертикальные решения на базе платформы nanoCAD, ровно как и сама платформа, обяза...

[Перевод] Асинхронные задания в Django с Celery Перевод статьи подготовлен в преддверии старта курса «Web-разработчик на Python». Если в вашем приложении есть какой-то длительный процесс, вы можете обрабатывать его не в стандартном потоке запросов/ответов, а в фоновом режиме. К примеру, в вашем приложении пользователь...

[Из песочницы] Пишем автотест с использованием Selenium Webdriver, Java 8 и паттерна Page Object В этой статье рассматривается создание достаточного простого автотеста. Статья будет полезна начинающим автоматизаторам. Материал изложен максимально доступно, однако, будет значительно проще понять о чем здесь идет речь, если Вы будете иметь хотя бы минимальные представлени...

Про фразовые глаголы-4 (in/out) Перед этой статьёй рекомендуется прочитать две первые части: 1. habr.com/ru/post/495794 2. habr.com/ru/post/496190 Out соответствует русским приставкам со значениями «наружу» и «до конца, полностью»: «вы-»: hear – «слушать». Hear me out! – Вы-слушай меня! «раз-»/«рас-»: ...

Объединяем закрытый WhatsApp и открытый SIP – Часть 1 Предыдущая статья «Как избежать блокировки в WhatsApp», хотя и получила много минусов, но тем не менее в течении 2 суток была самой читаемой статьей на Хабре – набрала более 20 тыс просмотров. Поэтому я решил что нужно продолжать с хакингом монстров рассказывать о различны...

[Перевод] Лёгкий способ сделать крохотный USB-хаб для Raspberry Pi Перевод статьи с сайта самодельщика Retrocution Бывало у вас такое, что вам не хватает USB-портов при создании проекта на Raspberry Pi Zero? Притом внешние USB-хабы или HATS не подходили из-за ограничений по размеру? Если да, или если вы просто ищете себе интересный проек...

[Из песочницы] Компилятор Befunge на Python В процессе подготовки к курсу «Основы компиляторов» для студентов 4-го курса я изучал различные эзотерические языки программирования. Вот хорошая статья на эту тему. В статье самым интересным мне показался язык Befunge (Крис Пресс, 1993 год), особо отмечу три его особенности...

Вызов кода Go из Dart с использованием cgo и Dart FFI на простом примере Ключевой мотивацией для написания данной статьи является факт сильного недостатка информации (особенно в русскоязычном сообществе) по использованию cgo и Dart FFI для использования Go из языка Dart.Язык Dart, не смотря на свою возрастающую популярность, на данный момент до с...

Как я стримил семинар и при этом со мной даже разговаривали студенты Текущая обстановка вносит коррективы в образовательный процесс. Сам я в течение уже трёх лет являюсь преподавателем кафедры "Прикладной математики и искусственного интеллекта" в Московском Энергетическом Институте. На кафедре я веду не только семинары и лабораторны...

Как создать мини-приложение: база знаний VK Mini Apps Полезные материалы на каждый этап жизненного цикла Мы много рассказываем о том, как создавать мини-приложения и запускать их на платформе VK Mini Apps. И видим, сколько классных идей у разработчиков — и опытных, и начинающих. Хочется, чтобы каждый мог воплотить свою задумку ...

Перфоманс фронтенда как современное искусство: графики, код, кулстори Всем привет. В предыдущих статьях мы говорили о базовых вещах оптимизации: раз и два. Сегодня я предлагаю с разбега окунуться в одну часть из тех задач, которыми занимается команда архитектуры фронтенда в hh.ru. Я работаю в команде архитектуры. Мы не только перекладываем фай...

Covid-19: зачем мы сидим на карантине, и ответы на другие вопросы Привет Хабр. Изначально я не планировал публиковать здесь статью про коронавирус, аналитики на хабре уже более чем достаточно. Однако, читая разные местечковые форумы и соцсети, я с удивлением обнаружил сколько достаточно вредных мифов гуляет в сети, и что обычные люди, не ...

Сортировка выбором Всем привет. Эту статью я написал специально к запуску курса «Алгоритмы и структуры данных» от OTUS. Введение Сортировка массива является одной из первых серьезных задач, изучаемых в классическом курсе «Алгоритмы и структуры данных» дисциплины computer science. В связи с э...

WSL эксперименты. Часть 1 Привет, хабр! В октябре OTUS запускает новый поток курса «Безопасность Linux». В преддверии старта курса делимся с вами статьёй, которую написал один из наших преподавателей — Александр Колесников. В 2016 году компания Microsoft представила IT сообществу новую технологи...

[Из песочницы] Java простое веб-приложения. Логин и регистрация Всем доброго времени суток. Эта статья рассчитана для новичков в мире Web и Java. Мы рассмотрим стандартную архитектуру веб-приложения и сделаем небольшой проект с нуля. Будем использовать Spring (Огромный фреймворк для веба), но по минимуму. Если не иметь предыдущего опыта ...

Оптимизация интерфейса в Unity без кода В этой статье ведущий UI/UX художник Никита Кандыбин и технический UI художник Ольга Кинчак поделятся эффективными базовыми практиками по оптимизации Unity UI, которые используются в компании Banzai Games при создании игровых интерфейсов, а также укажут на подводные камни ...

10 самых популярных курсов Microsoft на русском Привет, Хабр! Совсем недавно мы выложили первую часть серии подборок полезных обучающий курсов для программистов. И вот незаметно подкралась последняя пятая часть. В ней мы перечислили некоторые из самых популярных IT-курсов, которые доступны на нашей учебной платформе Micro...

История создания домашнего облака. Часть 5. Актуализация 2019 – PHP 7.2, MariaDB 10.4 и Nextcloud 17 Два года назад я опубликовал цикл статей на тему создания веб-сервера на базе Debian 8 и запуске на нём сервиса Nextcloud 11. Через несколько месяцев появилось дополнение, содержащее «диффиренциальную» информацию по установке Nextcloud 13 на Debian 9. В конце 2018 года я про...

[Перевод] Вышла Vue 3.2 Эта статья — перевод оригинальной статьи Evan You "Vue 3.2 Released!"Мы рады объявить о выпуске Vue.js 3.2 "Quintessential Quintuplets"! Этот релиз включает в себя множество значительных новых функций и улучшений производительности и не содержит критических изменений. Читать...

[Перевод] 6 способов значительно ускорить pandas с помощью пары строк кода. Часть 2 В предыдущей статье мы с вами рассмотрели несколько несложных способов ускорить Pandas через jit-компиляцию и использование нескольких ядер с помощью таких инструментов как Numba и Pandarallel. В этот раз мы поговорим о более мощных инструментах, с помощью которых можно не т...

FigmaExport: как автоматизировать экспорт UI-Kit из Figma в Xcode и Android Studio проекты Если вы iOS- или Android-разработчик и дизайн вашего проекта разрабатывается в Figma, то скорее всего вы сталкиваетесь с проблемами при экспорте ресурсов: цвета выгрузить нельзя, а иконки и картинки экспортировать неудобно. В этой статье я расскажу, как можно облегчить себ...

«У Предназначения масса обличий...» или автоматизируем управление автолампой с помощью CANNY 3 tiny и фоторезистора В прошлой статье на Хабре я рассказал вам о том, как получил в подарок контроллер Canny3 tiny. Мы «поморгали» светодиодом, понажимали на кнопку. На этом в принципе можно было и закончить эксперименты. Однако, последние пару недель я слушаю аудиокниги про Ведьмака и поэтом...

Data Engineer or die: история одного разработчика В начале декабря я совершил роковую ошибку принял поворотное решение в своей жизни разработчика и перешёл в команду Data Engineering (DE) внутри компании. В статье я поделюсь некоторыми наблюдениями, которые я сделал за два месяца работы в команде DE. Читать дальше →

Как проверить навыки программирования на Python? Задачи от Яндекса Хакатон в Школе бэкенд-разработки В 2019 году нам потребовалось автоматизированно проверить умение писать Python-код у сотен разработчиков. Так мы отбирали будущих студентов для Школы бэкенд-разработки. Это не то же самое, что предложить решить задачу на листе бумаги, как ...

[Перевод] Preload в php 7.4: Composer и выбор файлов для предзагрузки Мы в Badoo активно занимаемся переходом на PHP 7.4 и с большим энтузиазмом ждём возможности использовать новую функцию preload. Не так давно мы рассказывали о наших экспериментах с ней. Судя по всему, сообщество взбудоражено не меньше, чем мы. Разработчики фреймворков актив...

Что такое Deno и заменит ли он Node.js? Доброго времени суток. Представляю вашему вниманию перевод статьи «Deno vs. Node.js — Here are the most Important Differences» автора Louis Petrik. Является ли Deno новым Node.js? Или всего лишь хорошей альтернативой? В этой статье я постараюсь ответить на данные вопросы...

[Перевод] Алгоритм AdaBoost Перевод статьи подготовлен в преддверии старта продвинутого курса «Математика для Data Scienсe». Введение Алгоритм AdaBoost можно использовать для повышения производительности любого алгоритма машинного обучения. Машинное обучение стало мощным инструментом, позволяющим д...

Из студента-юриста в программисты на C/C++: личный опыт Привет. В данной статье я поделюсь своим опытом становления программистом, от зарождения идеи стать инженером программного обеспечения до первых офферов, а также расскажу об опыте прохождения собеседований на позицию С/С++ разработчика в Санкт-Петербурге и выводах, сделанных...

Чего ждать от Java в 2020 году? 2020 уже в разгаре, давайте же обсудим, какие изменения в мире Java нас ожидают в этом году. В этой статье перечислю основные тренды Java и JDK. И буду рад дополнениям от читателей в комментариях. Сразу оговорюсь, что статья носит скорее ознакомительный характер. Детали по ...

[Перевод] Ответ философам от GPT-3 Привет, Хабр. В преддверии старта курса «Deep Learning. Basic» мы подготовили для вас довольно необычный перевод. Читайте ниже, что из этого вышло. Рафаэль Миллер попросил языковую модель GPT-3 от OpenAI ответить на эссе, написанные о ней философами. Приводим перевод текст...

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

Готовый шаблон для тестирования с использованием Spring Представляю вам — готовый шаблон для тестирования с использованием Spring. Введение Цель этой статьи показать, что писать автотесты со Spring проще нежели на чистой Java. Так же хочу продемонстрировать, насколько Java + Spring упрощает жизнь тестировщикам. Для кого эта ...

6 бесплатных курсов для безопасников от Microsoft Привет, Хабр! Сегодня мы продолжаем дополнительную серию подборок бесплатных курсов к основной серии подборок бесплатных курсов, которая вышла в прошлом году. В этот раз делимся 6 курсами, которые будут полезны специалистам по облачной информационный безопасности. Кстати! ...

Как мы автоматизировали портирование продуктов с C# на C++ Привет, Хабр. В этом посте я расскажу о том, как нам удалось организовать ежемесячный выпуск библиотек для языка C++, исходный код которых разрабатывается на C#. Речь идёт не об управляемом C++ и даже не о создании моста между неуправляемым C++ и средой CLR — речь об автомат...

Все, что вы хотели узнать про области видимости в Python, но стеснялись спросить В преддверии старта нового потока по курсу «Разработчик Python», решили поговорить про области видимости в Python. Что из этого вышло? — Читайте в материале ниже. Сегодня мы будем говорить о важных теоретических основах, которые необходимо понимать и помнить, чтобы писат...

[Из песочницы] 7 трюков с Rest и Spread операторами при работе c JS объектами Привет, Хабр! Представляю вашему вниманию перевод статьи «7 Tricks with Resting and Spreading JavaScript Objects» автора Joel Thoms. Всем привет, на днях коллега по работе скинул мне ссылку на статью на английском языке в которой перечисляются разные методы работы с rest и ...

[Из песочницы] Raspberry Pi и модем SIM7600E 4G HAT Добрый день всем. В этой статье я хотел бы рассказать о своем опыте использования 3G-модема SIM7600X, который можно подключать к Raspberry Pi. Статья может оказаться полезной тем из вас, кому необходимо использовать Raspberry автономно, в условиях отсутствия WIFI-сети. Пара...

[Перевод] Разворачиваем модель машинного обучения с Docker – Часть 1 Перевод статьи подготовлен в преддверии старта базового и продвинутого курсов по машинному обучению. Расширяем возможности для наших студентов. Теперь в OTUS есть целых два курса по Machine Learning: базовый и продвинутый. Оба курса стартуют в августе, в связи с чем мы приг...

Пора на свалку Никогда не думал, что это случится со мной, но, похоже, я выгорел. А ещё мне стрёмно. Да, это ещё одна статья про выгорание. Я тут на днях смотрел на свою RSS-читалку и заметил, что под тегом «C++» у меня где-то три сотни непрочитанных статей. Я не прочитал ни одной статьи ...

[Перевод] Vulkan-tutorial. Урок 1.1 — Вступление В связи с тем, что у меня не так много времени для ресерча каких-то новых штук и написания статей о них, я решил перевести серию уроков по Vulkan. Надеюсь, что мои переводы будут кому-то полезны и не очень плохого качества. Для начала обучения — прошу под кат. Автор ориги...

Решение нескольких задач от Amazon на примере JavaScript Доброго времени суток. Представляю вашему вниманию перевод статьи «Amazon Coding Interview Questions» автора Trung Anh Dang. В этой статье автор приводит несколько (три, если быть точнее) задач от Amazon (как он утверждает) и свои варианты решений. После ознакомления с ...

5 бесплатных курсов для ИИ-инженеров от Microsoft Привет, Хабр! В прошлом году мы делали серию статей-подборок бесплатных курсов. Она понравилась сообществу, и мы решили сделать еще три подборки, правда уже по немного другими тематикам. Как и раньше, мы не будем заранее спойлерить для кого именно будут следующие подборки, ж...

Как энергетик изучал нейросети и обзор на бесплатный курс «Udacity: Intro to TensorFlow for Deep Learning» Всю свою сознательную жизнь, я был энергетиком (нет, сейчас речь не идет о напитке с сомнительными свойствами). Я никогда особо не интересовался миром информационных технологий, да и даже матрицы я вряд ли на листочке смогу перемножить. Да и не нужно мне это было никогда, ...

MVP силами одного разработчика При огромной конкуренции цифровых продуктов и высокой скорости запуска новых необходимо быстро и дёшево проверять жизнеспособность продуктовых идей. В этой статье я расскажу об опыте создания MVP собственными силами, т.е. фактически силами одного iOS-разработчика. О том, как...

[Перевод] В двух словах: Лучшие практики Async/Await в .NET В преддверии старта курса «Разработчик C#» подготовили перевод интересного материала. Async/Await — Введение Языковая конструкция Async/Await существует со времен C# версии 5.0 (2012) и быстро стала одним из столпов современного программирования на .NET — любой уважающий ...

[Из песочницы] pyqtdeploy, или упаковываем Python-программу в exe'шник… the hard way Наверняка, каждый, кто хоть раз писал что-то на Python, задумывался о том, как распространять свою программу (или, пусть даже, простой скрипт) без лишней головной боли: без необходимости устанавливать сам интерпретатор, различные зависимости, кроссплатформенно, чтобы одним ...

Анимация в Android: плавные переходы фрагментов внутри Bottom Sheet Написано огромное количество документации и статей о важной визуальной составляющей приложений — анимации. Несмотря на это мы смогли вляпаться в проблемы столкнулись с загвоздками при её реализации. Данная статья о проблеме и анализе вариантов её решения. Я не дам вам сере...

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

Код в одну строку или проверка Nethermind с помощью PVS-Studio C# для Linux Данная статья приурочена к старту бета-теста PVS-Studio C# для Linux, а также плагина для Rider. По такому прекрасному поводу с помощью данных инструментов была проведена проверка исходного кода продукта Nethermind и в данной статье мы посмотрим на интересные, а иногда и за...

Opennebula. Короткие записки Всем привет. Данная статья написана для тех, кто до сих пор мечется между выбором платформ виртуализации и после прочтения статьи из серии «Поставили proxmox и вообще все отлично, 6 лет аптайм не единого разрыва». Но после установки того или иного коробочного решения, воз...

Создаем свою CRUD API на Express и MySQL: часть первая Всем привет. В преддверии старта курса «Fullstack разработчик JavaScript», хотим поделиться небольшим материалом, который был написан нашим внештатным автором. Express один из самых популярных веб-фреймворков, который поддерживает роутинг, миддлвейрс и систему шаблонов. Д...

Как выбрать первый язык программирования, гайд желающим начать программировать Кратко для введения: я являюсь профессиональным разработчиком игр и мне есть что сказать себе 15 лет назад. Я решил оформить статью с рекомендациями тем, кто находится в самом начале пути к программированию. Статья в основном направлена на школьников (и их родителей), студен...

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

Crypt, XOR, взлом нешифрованного ZIP и ГПСЧ. Решение задач с r0от-мi Crypto. Часть 2 В данной статье узнаем про функцию crypt, узнаем как подбирать пароли к ZIP архиву с незашифрованными именами файлов, познакомимся с утилитой xortool, а так же разберемся с генератором псевдослучайных чисел. Предыдущие статьи на эту тему: Часть 1 — Кодировки, шифр сдвига,...

Автоматическое заполнение файлами документов Word и подписей к ним с помощью Python и библиотеки docx Рассмотрим пример простой программы на Python с помощью библотекы docx для автоматизации рабочего процесса, а именно автоматической вставки файлов (в данном случае изображений) и их подпись в документах Word (docx).Данная статья будет интересна для начинающих изучающих Pytho...

Как продакт-менеджеру найти метрику роста и свести Unit-экономику В преддверии старта практического онлайн-курса «Product manager» состоялся открытый урок с Сергеем Колосковым, продакт-менеджером Ozon. Участники научились находить метрики роста и строить аналитику вокруг них, а также считать и сводить unit-экономику. В этой статье мы приво...

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

[Перевод] Побег из привилегированных Docker-контейнеров Перевод статьи подготовлен в преддверии старта курса «Пентест. Практика тестирования на проникновение». Привилегированные контейнеры Docker – это такие контейнеры, которые запускаются с флагом --privileged. В отличие от обычных контейнеров, эти контейнеры имеют root-доступ...

Адаптивный или отзывчивый? Разбираем структуру React-компонентов В этой статье мы разберёмся, в чем сложность написания адаптивных компонентов, поговорим о code-splitting-е, рассмотрим несколько способов организации структуры кода, оценим их достоинства и недостатки и попытаемся выбрать лучший из них (но это не точно). Читать дальше &ra...

Основы линейной регрессии Здравствуй, Хабр! Цель этой статьи — рассказать о линейной регрессии, а именно собрать и показать формулировки и интерпретации задачи регрессии с точки зрения математического анализа, статистики, линейной алгебры и теории вероятностей. Хотя в учебниках эта тема изложена стр...

[Перевод] Как создать свой первый open source проект на Python (17 шагов) Каждый разработчик ПО должен знать как создать библиотеку с нуля. В процессе работы Вы можете многому научиться. Только не забудьте запастись временем и терпением. Может показаться, что создать библиотеку с открытым исходным кодом сложно, но Вам не нужно быть потрепанным ж...

Python (+numba) быстрее си — серьёзно?! Часть 1. Теория Давно собирался написать статью о numba и о сравнении её быстродействия с си. Статья про хаскелл «Быстрее, чем C++; медленнее, чем PHP» подтолкнула к действию. В комментариях к этой статье упомянули о библиотеке numba и о том, что она магическим образом может приблизить скор...

Zabbix. Что делать, если принтер не делится информацией по SNMP? Доброго времени суток! КДПВ Данная статья – небольшой мануал, написанный в несколько художественной форме. В статье много картинок, заботливо упрятаных в спойлеры. Для кого написана эта статья? Для начинающих сисадминов, еще слабо знакомых с UNIX-системами, Zabbix’ом, но ...

«Образование для образованных». Проработка книги На неделе прочитал книгу "Образование для образованных 2020", написанную Левенчуком А.И. Впечатление о ней у меня сложилось двоякое. Статья будет полезна людям, желающим её прочитать. Дальше я расскажу, чего ожидать от прочтения, а чего не стоит. Читать далее

IDA Pro и техники реверс-инжиниринга 0x00 start ; {EN} entry point, do nothing, just run _main {EN} Статья для начинающих “воинов тьмы”, тех, кто хочет погрузиться в темную сторону силы: реверс-инжиниринг. На нашем “операционном столе” будет небольшой кустарный сервер, который работает по протоколу TCP/IP. Для ...

[Из песочницы] Использование Camunda для удобной оркестровки на основе REST и Workflow Engine (без Java) Привет, Хабр! Представляю вашему вниманию перевод статьи «Use Camunda as an easy-to-use REST-based orchestration and workflow engine (without touching Java)» автора Bernd Rücker. 07.07.2020 г., перевод статьи Bernd Rücker Я часто обсуждаю микросервисную архитектуру с люд...

[Перевод] Декодируем JPEG-изображение с помощью Python Всем привет, сегодня мы будем разбираться с алгоритмом сжатия JPEG. Многие не знают, что JPEG — это не столько формат, сколько алгоритм. Большинство JPEG-изображений, которые вы видите, представлены в формате JFIF (JPEG File Interchange Format), внутри которого применяется ...

Запускаем трансфлективный TFT дисплей на SSD1283A с помощью STM32 Введение Модель дисплея называется H016IT01. Данный дисплей интересен прежде всего тем, что он является транфлективным(transflective). Это означает, что изображение на нем должно быть видно даже под ярким солнцем. А также это чуть ли не единственная доступная модель с этой о...

Как вести технический блог? Я работаю в коммерческой разработке с 2011 года. С конца 2012 занимаюсь разработкой под iOS. Свою первую техническую статью я написал на Хабре в начале 2017 года про подход к локализации мобильных приложений. Потом выпустил ещё несколько статей по iOS-разработке на Хабре и...

14 самых популярных Node.js-библиотек в 2020 году Доброго времени суток, друзья! Представляю Вашему вниманию перевод статьи «14 Most Useful NodeJS Libraries in 2020». В данной статье автор делится своими находками среди многочисленных пакетов Nodejs. Express Быстрый, гибкий, минималистичный, легкий в изучении фреймворк...

Mockito. Из чего он приготовлен и как его подавать? Думаю, многим довелось выпить какой-нибудь напиток, который глубоко впился в наши вкусовые рецепторы, что нам хочется пить его каждый день. Так вот для меня таким «напитком» стал Mockito. Один раз написав простенький тест, можно вернуть себе веру в магию. Я всё ещё помню, к...

[Из песочницы] 6 GitHub проектов для веб-разработчиков, на которые стоит взглянуть Привет, Хабр! Представляю вам перевод статьи 6 Github Repos for web developers you should have a look at автора lampewebdev. Однажды я пролистывал ленту dev.to и наткнулся на пост 6 GitHub проектов для быстрой прокачки знаний. Я согласен с автором, что список действительно...

[Перевод] Разворачиваем Jenkins как код Прим. перев.: это перевод статьи из инженерного блога компании Preply о том, как можно использовать конфигурацию как код для такого популярного CI/CD инструмента как Jenkins. В нашей компании, мы стараемся следовать практикам «Все как код», это касается не только инфраструк...

[Перевод] Как мы оптимизировали скрипты в Unity Существует множество отличных статей и туториалов о производительности в Unity. Этой статьёй мы не пытаемся заменить или улучшить их, это всего лишь краткое изложение шагов, сделанных нами после прочтения этих статей, а также шагов, позволивших решить наши проблемы. Настояте...

[Перевод] Три редко используемых возможности Python 3, о которых каждый должен знать Python 3 существует уже какое-то время и довольно много разработчиков, особенно те, кто только начинает свой путь в Python, уже используют эту версию языка. Несмотря на то, что множество новых возможностей широко используются, похоже, что некоторые остались за кадром. В это...

[Перевод] Аутентификация REST API с помощью Spring Security и MongoDB Всем привет! Уходя на выходные делимся с вами статьей, которая была переведена в преддверии старта курса «Разработчик на Spring Framework». В прошлых статьях мы создавали RESTful веб-сервис, теперь же мы поговорим о безопасности Вступление В предыдущем посте мы рассмотр...

Прямой VPN между компьютерами за NAT провайдеров без VPS Продолжение статьи о том, как мне удалось организовать прямой VPN-туннель между двумя компьютерами находящимися за NAT'ами провайдеров. В прошлой статье описывался процесс организации соединения с помощью третьей стороны — посредника (арендованный VPS выполняющий роль, что-т...

[Перевод] Эндрю Ын «Страсть к машинному обучению». Перевод глав 36-46 Три года прошло с момента публикации первых глав книги Эндрю Ына (Andrew Ng) «Machine Learning Yearning». Если вы подписаны на хаб «Машинное обучение», то нет никакой нужды представлять вам её автора и скорее всего саму книгу вы уже давно прочитали на языке первоисточника. П...

oVirt за 2 часа. Часть 3. Дополнительные настройки В этой статье мы рассмотрим ряд необязательных, но полезных настроек: использование дополнительных имен для менеджера; подключение аутентификации через Active Directory; Mutlipathing; управление питанием; замена SSL сертификата; архивация; менеджмент-интерфейс хостов (cockp...

Flutter + arduino nano 33 BLE sense = очень простой BLE sensor В этой статье я хочу рассказать как сделать очень простую bluetooth метеостанцию (куда уж без нее :) ) и написать мобильное приложение на Flutter для нее. Читать дальше →

Избавляемся от рутины со своим плагином для PhpStorm Привет, Хабр! Я тружусь в команде Антиспама, и, как и у большинства бэкенд-разработчиков Badoo, большая часть времени у меня уходит на работу с PHP-кодом. С этой работой связано много специфических проблем и задач, которые можно решить или упростить. Когда мне надоело вруч...

[Перевод] Всё, что нужно знать о Progressive Web App (PWA) PWA — прогрессивные веб-приложения. Предупреждение. Эта статья не проспонсирована PWA. Все взгляды и мнения в статье принадлежат только её автору. Progressive Web App или PWA — лучший способ для разработчиков заставить свои веб-приложения загружаться быстрее и быть более...

[Из песочницы] Typescript Compiler API: возьми управление компилятором в свои руки В разработке приложений на Typescript всегда есть этап сборки проекта. Обычно для этого используются системы сборки и автоматизации workflow, такие как webpack или gulp, обвешанные достаточным количеством плагинов, либо процесс сборки размазывается в командах package.json ...

[Перевод] 7 уроков, которые я усвоил за десять лет в разработке Представляем вам перевод статьи JS dev Ray, опубликованной на сайте medium.com. Автор рассказывает о важных вещах, которые он понял за свою карьеру разработчика приложений. По его мнению, эта информация может очень пригодиться начинающим специалистам. Читать дальше →

[Перевод] Как реализовать кластеризацию в Power BI с помощью PyCaret И снова здравствуйте. Сегодня мы продолжаем серию переводов в преддверии старта базового курса «Математика для Data Science». В одной из последних статей мы говорили о том, как создать детектор аномалий в Power BI, интегрировав в него PyCaret, и помочь аналитикам и специа...

SDR трансивер SoftRock Ensemble RXTX Данная статья является продолжением серии публикаций про SDR (Software Defined Radio). В двух предыдущих статьях мы разобрались, как работает схема Tayloe, как с помощью схемы Tayloe осуществить синхронный приём АМ сигналов, и как устроен связной SDR-приёмник. В этой публи...

[Из песочницы] Создаем прогрессивный PWA интернет-магазин на Nuxt.js 2 пошаговое руководство Часть 1 Статья ориентированна на людей, которые уже имеют понимание работы Vue, на котором основан Nuxt, поэтому я буду заострять внимание только на специфических для Nuxt вещах. Но даже если вы не знакомы с ними, то статья даст общее представление как выглядит проект с PWA Nuxt. Вы...

[Перевод] Ода Excel: 34 года волшебства Примечание: статья была написана в 2019 году, а в этом Microsoft Excel отмечает уже 35-летний юбилей. Чему инструмент, выдержавший проверку временем, может научить нас в эпоху «софта, который пожирает мир»? В статье я хочу показать вам, как фундаментальные принципы, стоящи...

Тёмная Вселенная. Часть 1 Доброго времени суток, уважаемое хабрасообщество! Как я и обещал после прошлой статьи по теории струн, сегодня мы попробуем приоткрыть завесу тайн и пробежаться по костылям новым веяниям в космологии — попробуем взглянуть на тернистый путь, который прошли ученые, и разобрать...

FAST VP в СХД Unity: как это работает Сегодня речь пойдет об интересной технологии, реализованной в СХД Unity/Unity XT, – FAST VP. Если вы впервые услышали о Unity, то по ссылке в конце статьи можно ознакомиться с характеристиками системы. В проектной команде Dell EMC я работал над FAST VP более года. Сегодня хо...

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

Active Restore: С чего начать разработку в UEFI Всем привет. В рамках проекта от компании Acronis со студентами Университета Иннополис (подробнее о проекте мы уже описали это тут и тут) мы изучали последовательность загрузки операционной системы Windows. Появилась идея исполнять логику даже до загрузки самой ОС. Следовате...

[Из песочницы] Повысьте производительность SPA, разбив ваши библиотеки Angular на несколько частей Привет, Хабр! Представляю Вашему вниманию перевод статьи «Improve SPA performance by splitting your Angular libraries in multiple chunks» автора Kevin Kreuzer. Angular — отличный фреймворк. Мы все его любим <3. Одна из вещей, которая делает Angular успешным и прекрасным в...

[Из песочницы] Все, что вы должны знать о std::any Привет, Хабр! Представляем вашему вниманию перевод статьи «Everything You Need to Know About std::any from C++17» автора Bartlomiej Filipek. С помощью std::optional вы можете хранить один какой-то тип. С помощью std::variant вы можете хранить несколько типов в одном объек...

[Из песочницы] Функциональные опции на стероидах Привет, Хабр! Представляю вашему вниманию перевод статьи Functional options on steroids от автора Márk Sági-Kazár. Функциональные опции — это парадигма в Go для чистых и расширяемых API. Она популяризирована Дейвом Чейни и Робом Пайком. Этот пост о практиках, которые появ...

[Перевод] Canary Deployment в Kubernetes #1: Gitlab CI Мы будем использовать Gitlab CI и ручной GitOps для внедрения и использования Canary-деплоя в Kubernetes Статьи из этого цикла: (эта статья) Canary Deployment при помощи ArgoCI Canary Deployment при помощи Istio Canary Deployment при помощи Jenkins-X Istio Flagger Выполн...

Ролики-мислиды: почему они работают? Если в ролике об игре показан геймплей, которого в рекламируемой игре на самом деле нет, — перед вами ролик-мислид. Вам наверняка встречались такие! За счёт чего они работают и приносят желаемое разработчикам и издателям? Мы попытались докопаться до сути и найти ответы на эт...

Развертывание в Docker и Kubernetes образа StatsD+Grafana В начале моего изучения Docker и Kubernetes мне нехватало простого и понятного примера, с которым можно было бы «поиграться», изучая особенности этой среды. Этой статьей хотелось бы закрыть этот пробел. Здесь я расскажу об интеграции .NET Core приложения с Telegraf и Grafana...

Как джуниор Python-разработчику стать мидлом за год Привет! Я Рома, менеджер продукта в Яндекс.Практикуме, где развиваю курс «Мидл Python-разработчик». Мы делаем из начинающих разработчиков крепких мидлов с инженерным мышлением. Сегодня хочу поделиться небольшими заметками о том, над чем стоит работать, если вы джуниор, котор...

Почему lsFusion, а не 1С? Предыдущая статья “Почему не 1С?” вышла больше года назад и вызвала достаточно живой интерес (совсем немного не дотянула до 100к просмотров и 2к комментариев). Впрочем, как и ожидалось, у многих возник резонный вопрос: “Если не он, то кто?” Безусловно, как многие поняли, т...

4. NGFW для малого бизнеса. VPN Продолжаем наш цикл статей о NGFW для малого бизнеса, напомню что мы рассматриваем новый модельный ряд 1500 серии. В 1 части цикла я упомянул об одной из самых полезных опций при покупке устройства SMB — поставка шлюзов с встроенными лицензиями Mobile Access (от 100 до 200...

Перезагрузка текстур OpenGLESv2 через DMABUF В этой статье я хочу рассказать, как просто можно обновлять текстуры OpenGLES через DMABUF. Поискал по Хабру и к своему удивлению не обнаружил ни одной статьи на эту тему. В Хабр Q&A тоже ничего такого не нашел. И это для меня немного странно. Технология появилась довол...

Django Rest Framework для начинающих: создаём API для чтения данных (часть 1) Меня зовут Стас Гаранжа, я выпускник курса «Python-разработчик» в Яндекс.Практикуме. Я хочу помочь начинающим разработчикам, которые приступили к изучению Django Rest Framework (DRF) и хотят разобраться, как устроен этот фреймворк. Я готовлю цикл статей, в которых расскажу о...

[Перевод] Как автоматизировать развертывание баз данных с помощью Liquibase? Liquibase — это инструмент управления изменениями в базе данных. С его помощью вы можете отслеживать изменения в базе данных, сделанные с помощью SQL (или XML) скриптов. Эти скрипты могут быть добавлены в системы контроля версий, такие как git.В данной статье мы рассмотрим, ...

1000 и 1 пост: с Днём рождения, Хабр ❤ 26 мая — День рождения Хабра. А ещё вышла наша 1000-ая публикация, которой могло бы не быть, если бы Хабр не был тем, который он есть. В этой статье мы расскажем о нашем пути и о наших выводах, которые удалось сделать за 4 года ведения блога. Но это ниже, под катом. А здесь ...

Deep Fake Science, кризис воспроизводимости и откуда берутся пустые репозитории Я мирно сидел на семинаре, слушал доклад студента о статье с прошлого CVPR и параллельно гуглил тему. — К достоинствам статьи можно отнести наличие исходного кода…. Пришлось вмешаться: — Наличие чего, простите? — Э-э-э… Исходного кода… — Вы его смотрели?  — Нет, но в статье...

[Перевод] Опциональная цепочка, объединение с null, и как они меняют наш подход к написанию кода Автор фото — Miguel Á. Padriñán. Доброго времени суток, друзья! Представляю Вашему вниманию перевод статьи Sam Sedighian «Optional Chaining, Null Coalescing and How They Will Change the Way You Write Code». Опциональная цепочка, объединение с null, и как они меняют подхо...

Как в Яндекс.Облаке устроено Virtual Private Cloud и как наши пользователи помогают нам внедрять полезные функции Привет, меня зовут Костя Крамлих, я ведущий разработчик подразделения Virtual Private Cloud в Яндекс.Облаке. Я занимаюсь виртуальной сетью, и, как можно догадаться, в этой статье расскажу об устройстве Virtual Private Cloud (VPC) в целом и виртуальной сети в частности. А ещё...

[Из песочницы] О безопасности в сети Эта статья была написана несколько лет назад, когда блокировка мессенджера Telegram активно обсуждалась сообществом и содержит мои мысли на этот счет. И хотя сегодня эта тема уже почти забыта, я надеюсь что, возможно, это все еще будет кому-то интересно Этот текст появился ...

Пишем простой WYSIWYG-редактор с помощью ProseMirror Когда в Sports.ru понадобился свой WYSIWYG-редактор, мы решили сделать его на основе библиотеки ProseMirror. Одной из ключевых особенностей этого инструмента является модульность и широкие возможности кастомизации, поэтому с его помощью можно очень тонко подогнать редактор п...

[Из песочницы] Почем Appium для народа В этой статье мы рассмотрим инструмент Appium. Данная статья является вводным материалом для введения в автоматизированное тестирование мобильных приложений. Она покажет с какими трудностями возможно придется столкнуться при использовании данного инструмента. Рассмотрим неб...

Как реализовать игнор заблокированных пользователей в группах Telegram? UPD: благодаря помощи Tkachov эта статья всё-таки превратилась из просьбы о помощи в работающую инструкцию. В комментариях он дал работающий код для создания игнора в десктопном клиенте Телеграм. Я на всякий случай расположу объяснение в конце статьи. Далее статья продолжа...

[Перевод] Перевод стандарта IDEF0 на русском языке Предисловие Должно стремиться к знанию не ради споров, не для презрения других, не ради выгоды, славы, власти или других низменных целей, а ради того, чтобы быть полезным в жизни. Ф. Бэкон Те, кто будет читать перевод и сравнивать с компиляциями русскоязычной документации ...

Как обойти проверку на Рутинг устройства обхитрив библиотеку RootBeer? В этой статье я хочу поделиться своим опытом обхода проверки на рутованость своего устройства. Статья может рассматриваться не только как самостоятельный материал, но и как прямое продолжения моей работы из предыдущей статьи. Будем декомпелировать .apk, копаться в обфусциров...

[recovery mode] Коронавирус, кризис и последствия для IT По мнению Михаила Задорнова, председателя правления банка «Открытие», экономику ждёт рецессия. Каждый день из-за пандемии малый и средний бизнес, туристическая сфера, авиакомпании, сфера услуг и развлечений терпит убытки, это миллионы рублей. Всё это влияет и повлияет на IT ...

Правила локализации для разработчиков Сначала делаем, а думаем потом — или наоборот? Alconost рассказывает, какие особенности локализации стоит учесть на этапе разработки игры. Эту статью мы написали как ответ на повторяющиеся вопросы разработчиков: «Что с моей игрой не так? Почему перевода недостаточно? Как...

Как я сделал Discord бота для игровой гильдии с помощью .NET Core Всем привет! Недавно я написал Discord бота для World of Warcraft гильдии. Он регулярно забирает данные об игроках с серверов игры и пишет сообщения в Discord о том что к гильдии присоединился новый игрок или о том что гильдию покинул старый игрок. Между собой мы прозвали эт...

Шпаргалка по JS-методам для работы с DOM Основные источники DOM Living Standart HTML Living Standart Document Object Model (DOM) Level 3 Core Specification DOM Parsing and Serialization Введение JavaScript предоставляет множество методов для работы с Document Object Model или сокращенно DOM (объектной моделью до...

Определение объёма кластера Elasticsearch и тестирование производительности в Rally В этой статье мы разберёмся с основными подходами к сайзингу Elasticsearch, покажем сравнения бенчмарков кластера при загрузке логов и метрик. А разница там заметная. Надеемся, вам это поможет с определением объёма кластера Elasticsearch и расшифровкой того самого «it depend...

[Перевод] Как обойти капчу-слайдер с помощью JS и Puppeteer Друзья, предлагаю вашему вниманию перевод статьи "How to bypass “slider CAPTCHA” with JS and Puppeteer" автора Filip Vitas. Спам для владельца сайта – огромная проблема. С другой стороны, капчи сводят меня с ума и ухудшают пользовательский опыт. Капчи отстой. Скаж...

Как вырастить веб-разработчика от стажера до архитектора. Матрица компетенций Вместо эпиграфа Когда в 2004 году я окончил университет, в нашем городе почти не было команд разработчиков. Где работать, у кого набираться практического опыта? Выбор был прост: “админом” или “в Москву”. Или уйти из профессии. Сейчас я преподаю веб-разработку в местных ВУЗ...

Микросервисы на С++. Выдумка или реальность? В этой статье я расскажу о том, как создал шаблон (cookiecutter) и настроил окружение для написания REST API сервиса на С++ с использованием docker/docker-compose и пакетного менеджера conan. Во время очередного хакатона, в котором я участвовал в качестве бекенд-разработч...

ELFийские трюки в Go В этой заметке мы научимся получать машинный код Go функции прямо в рантайме, распечатаем его с помощью дизассемблера и по пути узнаем несколько фокусов вроде получения адреса функции без её вызова. Предупреждение: ничему полезному эта мини-статья вас не научит. Читать даль...

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

Как мы работаем с логами (сбор, хранение, анализ при помощи Graylog) Всем привет! В этой статье мы хотим поделиться нашим опытом использования полезной платформы Graylog, которая ежедневно помогает собирать, надежно хранить и анализировать логи с десятков серверов, окутанных заботой нашей поддержки :)Это первая часть статьи, в которой мы расс...

[Перевод] Loki — сбор логов, используя подход Prometheus Салют, хабровчане! В преддверии старта нового набора на курс «DevOps практики и инструменты» подготовили для вас перевод интересного материала. Эта статья — краткое введение в Loki. Проект Loki поддерживается Grafana и направлен на централизованный сбор логов (с серверов ил...

Debouncing с помощью React Hooks: хук для функций Здравствуйте! Меня зовут Игорь Шамаев, я главный инженер по разработке в команде SmartData. Занимаюсь fullstack-разработкой внутренней аналитической BI-системы. В нашей компании React принят в качестве основного стандарта для построения пользовательских интерфейсов. Как и бо...

[Из песочницы] Особенности установления соединения между участниками сетевой игры типа «равный к равному» Это сборник информации, которая мне понадобилась, чтобы реализовать этап установления соединения между участниками сетевой игры типа «равный к равному» (peer-to-peer) с использованием протокола UDP. Статья расчитана на начинающих разработчиков игр. Попытался написать такую ...

IKEv2 туннель между MikroTik и StrongSwan: EAP ms-chapv2 и доступ к сайтам Идея статьи возникла желании пропускать определенные сайты через VPN-туннель напрямую через маршрутизатор. Так как количество устройств дома велико, а пускать весь трафик через VPN неудобно в связи с низкой пропускной способностью туннеля. Статья написана сразу после создани...

[Перевод] Что такое Waypoint и какие возможности дает его использование Пару недель назад я посмотрела демонстрацию Waypoint— нового инструмента, который представила 15 октября 2020 года компания Hashicorp. Инструмента, который предназначен для создания легкого, интуитивного и настраиваемого под пользователя рабочего процесса сборки, развертыва...

«Hello, Checkmarx!». Как написать запрос для Checkmarx SAST и найти крутые уязвимости Привет Хабр! В статье я хочу рассказать о нашем опыте создания своих запросов в Checkmarx SAST. При первом знакомстве с этим анализатором может сложиться впечатление, что кроме поиска слабых алгоритмов шифрования/хеширования и кучи false positive, он ничего больше не...

Можете написать Deadlock на Camunda BPM? А я могу Некоторое время назад я писал про успешную миграцию с IBM BPM на Camunda, и теперь наша жизнь полна счастья и приятных впечатлений. Camunda не разочаровала, и мы продолжаем дружбу с этим BPM-движком. Но, увы, Camunda может преподносить и неприятные сюрпризы, из-за которых ...

Обзор работы «Learnability Can Be Undecidable» Эта статья является моим вольным пересказом работы Learnability can be undecidable, Shai Ben-David, et al. Недавно на Хабре вышла статья Машинное обучение столкнулось с нерешенной математической проблемой, которая является переводом одноименного обзора в Nature News статьи Ш...

Маркетинг на рынке США: как SaaS-стартапу заработать десятки тысяч долларов с помощью AppSumo.com В русскоязычном интернете нет недостатка в статьях по выводу продукта на Product Hunt и другие похожие сервисы, но не так много материалов по использованию ресурса AppSumo. Я решил поделиться своим опытом продвижения продукта на американском рынке с помощью этого сервиса. ...

Дзен позволил встраивать в статьи эмбеды Яндекс.Форм В Яндекс.Дзене появилась возможность проводить опросы, конкурсы, собирать заявки на мероприятия (и многое другое). Это можно сделать с помощью сервиса Яндекс.Формы, код которого теперь вставляется в статьи. Пока эта возможность находится на стадии тестирования и будет доступ...

Война с тормозами. Оптимизация количества рендеров компонентов в React Native Привет, Хабр! Меня зовут Камо Сперцян, я занимаюсь React Native разработкой в Profi.ru. Если вы решили воспользоваться технологией React Native для быстрой доставки продуктовых фич и сосредоточились на скорости разработки, то, скорее всего, столкнётесь с проблемами производи...

Принцип единственной ответственности: глубокое погружение Про принцип единственной ответственности (The Single Responsibility Principle, SRP) уже было написано множество статей. В большинстве из них даётся лишь поверхностное его описание мало чем отличающееся от информации в википедии. А те немногие статьи что затрагивают ключевые ...

[Перевод] Webpack: руководство для начинающих Доброго времени суток, друзья! Представляю вашему вниманию перевод статьи «Webpack: A gentle introduction» автора Tyler McGinnis. Перед изучением новой технологии задайте себе два вопроса: Зачем нужен этот инструмент? Какие задачи он выполняет? Если вы не можете отв...

Учим физику с ребенком сами, чтобы всем было интересно Эта статья будет полезна тем родителям, которые отважились помогать ребенку с физикой. Сегодня узнаем, как правильно пояснять физику на примере таких тем, как инертность, масса, вес и сила тяжести. Бонусом — сделаю обзор нескольких полезных интернет-ресурсов которыми часто ...

Python GUI. Библиотека KivyMD. Шаблон MVC, parallax эффект и анимация контента слайдов Приветствую вас, дорогие любители и знатоки Python! Прошло пол года с момента моей последней публикации на Хабре. Был погружен в пучину обстоятельств и сторонние проекты. Начиная с сегодняшней, статьи будут выходить с периодичностью раз в месяц. В этой статье мы рассмотрим к...

Принимаем 10 000 ивентов в Яндекс.Облаке. Часть 1 Привет всем, друзья! * Эта статья написана по мотивам открытого практикума REBRAIN & Yandex.Cloud, если вам больше нравится смотреть видео, можете найти его по этой ссылке — https://youtu.be/cZLezUm0ekE Недавно нам представилась возможность пощупать вживую Яндекс.Обла...

[Перевод] Как корпоративные команды разработчиков используют GitLab и Mattermost ChatOps для ускорения разработки И снова здравствуйте! В феврале OTUS запускает новый курс «CI/CD на AWS, Azure и Gitlab». В преддверии старта курса подготовили перевод полезного материала. Полноценный набор DevOps инструментов, мессенджер с открытым исходным кодом и ChatOps – как тут не влюбиться? Нико...

WSL эксперименты. Часть 2 Привет, Хабр. В преддверии старта курса «Administrator Linux. Professional» публикуем продолжение статьи про WSL эксперименты, которую написал наш эксперт — Александр Колесников. Настало время для продолжения экспериментов с подсистемой WSL; первую часть статьи можно посм...

[Из песочницы] Unit тесты для RxSwift кода Привет, Хабр! Представляю вашему вниманию перевод статьи "Testing Your RxSwift Code" автора Shai Mishali с сайта raywenderlich.com. Написание реактивных приложений с помощью RxSwift концептуально отличается от написания приложений "обычным путем". Оно отл...

Keyboa: клавиатуры на максималках для ботов в Telegram Боты - одна из особенностей Telegram, сделавших мессенджер столь популярным. А его встроенные клавиатуры дают разработчикам большую свободу взаимодействия с пользователями.Keyboa помогает создавать встроенные клавиатуры любой сложности для ботов, разработанных на базе pyTele...

[Перевод] Управление жестами: Обработка визуальных перекрытий. Часть 2 В преддверии старта продвинутого курса по Android-разработке продолжаем делиться с вами серией полезных переводов. Вы читаете вторую статью из серии об управлении жестами. Первую часть вы можете найти здесь. В первой части серии мы узнали, как расположить ваше приложение ...

Как мы внедряли распределенный кеш на Tarantool в одной АБС Разработка любого достаточно серьезного софта, будь то калькулятор матриц или ИИ беспилотного автомобиля, — это всегда какая-то своя предметная область, определенные технологии, алгоритмы и структуры данных, архитектура кода, процесс разработки и еще много разных умных терм...

Как научиться программированию на Python? За последние несколько недель популярность онлайн-курсов и сектора онлайн-обучения в целом выросла почти в 4 раза. Почему? Во-первых, сейчас многие находятся на самоизоляции, и чтобы окончательно не потерять голову от безделья, пытаются занять себя чем-то полезным (и правил...

[Перевод] Docker передает cnab-to-oci в проект CNAB… и что вообще такое CNAB? Прим. перев.: Эта статья — перевод недавнего анонса из мира контейнеров. В прошлом месяце компания Docker объявила о передаче своей очередной разработки в руки более широкого Open Source-сообщества. Речь шла об инструменте конвертации метаданных CNAB-пакета в формат стандарт...

[Из песочницы] ECS back and forth Привет, Хабр! Представляю вашему вниманию перевод статьи "ECS back and forth — Part 1 — Introduction" автора Michele skypjack Caini. ECS back and forth Часть 1 — Введение. Когда я в первые узнал про архитектурный шаблон entity component system, я пошёл искать больш...

[Перевод] Мониторинг распределённых систем — опыт Google (перевод главы книги Google SRE) SRE (Site Reliability Engineering) — подход к обеспечению доступности веб-проектов. Считается фреймворком для DevOps и говорит как добиться успеха в применение DevOps-практик. В этой статье перевод Главы 6 Monitoring Distributed Systems книги Site Reliability Engineering о...

Из жизни с Kubernetes: Как мы выносили СУБД (и не только) из review-окружений в статическое Примечание: эта статья не претендует на статус лучшей практики. В ней описан опыт конкретной реализации инфраструктурной задачи в условиях использования Kubernetes и Helm, который может быть полезен при решении родственных проблем. Использование review-окружений в CI/CD м...

[Из песочницы] Телефонный эфир v2.0. Возрождение легенды в telegram боте Это первая статья из будущей серии статей о том, как я возродил однажды ушедшую в историю идею в коде. В этой статье я опишу реализацию регистрации в части места жительства. Читать дальше →

Создание Discord – бота на .NET Core с деплоем на VPS-сервер Привет, Хабровчане! Сегодня вы ознакомитесь со статьей, в которой будет рассказано, как создать бота, используя C# на .NET Core, и о том, как его завести на удаленном сервере. Статья будет состоять из предыстории, подготовительного этапа, написания логики и переноса бот...

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

[Из песочницы] Разбор UI/UX на примере прототипа в Figma и основные принципы Кому адресована статья В данной публикации я хочу помочь начинающим и «не очень» бизнес-аналитикам, менеджерам проектов, владельцам продуктов, желающим сделать свой первый сайт и всем-всем, кому надо сделать макет сайта или приложения, а он не знает с какой стороны подступит...

Первые шаги с aiohttp: часть 2. Подключаем базу данных к приложению Привет!В прошлой статье мы познакомились с aiohttp и написали на нем свое первое веб-приложение: стену с отзывами.В этой статье мы продолжим изучение и подключим к нашему приложению базу данных PostgreSQL, используя для этого Gino, SQLAlchemy и Aiopg, а также автоматически с...

NAS Backup и никакой магии. Deep dive от Veeam Уже несколько месяцев прошло с момента релиза Veeam Backup & Replication 10. Даже была обзорная статья про грядущий релиз. А вот пост-релизной статьи посвящённой более детальному и техническому разбору самой ожидаемой функции новой версии — NAS Backup, так и не было. Поэ...

Горизонтальный блог Всё больше новостные сайты и блоги превращаются в длинную портянку которую от статьи к статье надо долго мотать по вертикали. Чтобы облегчить прокрутку одни сайты скрывают часть статьи под спойлером. Другие сайты отображают часть статьи в ленте а для прочтения её заставляют...

Неразгаданная загадка Приветствую тебя, дорогой читатель! В этой статье я расскажу о своем опыте сделать «крутой квест» и как все накрылось медным тазом что у меня получилось. На момент публикации статьи до конца не дошел ни один из участников, поэтому если тебе интересно попробовать и, возможно...

Обзор основных функций Google BigQuery и примеры запросов для маркетинг-анализа Google BigQuery – это быстрое, экономичное и масштабируемое хранилище для работы с Big Data, которое вы можете использовать, если у вас нет возможности или желания содержать собственные серверы. В нем можно писать запросы с помощью SQL-like синтаксиса, стандартных и пользова...

[Из песочницы] Погружение в Delta Lake: принудительное применение и эволюция схемы Привет, Хабр! Представляю вашему вниманию перевод статьи «Diving Into Delta Lake: Schema Enforcement & Evolution» авторов Burak Yavuz, Brenner Heintz and Denny Lee. Данные, как и наш опыт, постоянно накапливаются и развиваются. Чтобы не отставать, наши ментальные модели ми...

[Перевод] Минимизируем наложение лейблов в интерактивных визуализациях Перевод статьи подготовлен в преддверии старта курса «Промышленный ML на больших данных». Интересно развиваться в данном направлении? Смотрите записи трансляций бесплатных онлайн-мероприятий: «День Открытых Дверей», «Вывод ML моделей в промышленную среду на примере онлайн-ре...

[Из песочницы] Краткое сравнение архитектуры SDS или поиск подходящей платформы хранения (GlusterVsCephVsVirtuozzoStorage) Данная статья написана для того, чтобы помочь выбрать для себя подходящее решение и понять отличия между такими SDS как Gluster, Ceph и Vstorage (Virtuozzo). В тексте используются ссылки на статьи с более детальным раскрытием тех или иных проблем, поэтому описания будут мак...

PostgreSQL 13: happy pagination WITH TIES На прошедшей неделе вышло сразу две статьи (от Hubert 'depesz' Lubaczewski и автора самого патча Alvaro Herrera), посвященные реализованной в грядущей версии PostgreSQL 13 поддержке опции WITH TIES из стандарта SQL:2008: OFFSET start { ROW | ROWS } FETCH { FIRST | NEXT } [ c...

Обучение программированию 2019, или в поисках идеальной программы: Последовательность Здравствуйте, меня зовут Михаил Капелько. Занимаюсь профессиональной разработкой ПО. Увлекаюсь разработкой игр и обучением программированию. Предисловие Осенью 2019-го я в третий раз участвовал в курсе обучения ребят 10-15 лет программированию в качестве одного из преподава...

История одного патча Apple В этом году мы с a1exdandy выступали на конференциях VolgaCTF и KazHackStan с докладом про Patch Diffing программ написанных на Оbjective-С и то, как с его помощью можно искать и находить 0-day и 1-day уязвимости в продуктах компании Apple. Видео выступления можно посмотрет...

Нейросеть — обучение без учителя. Метод Policy Gradient Доброго времени суток, Хабр Настоящей статьей открываю цикл статей о том, как обучать нейронные сети без учителя. (Reinforcement Learning for Neuron Networks) В цикле планирую сделать три статьи по теории и реализации в коде трех алгоритмов обучения нейронных сетей без учи...

[Перевод] Пять вопросов о Ceph с пояснениями Что нужно знать о Ceph, хранилища с открытым исходным кодом, чтобы решить, подходит ли оно вашей компании. В статье будет сравнение с альтернативными объектными хранилищами, а также рассмотрена оптимизация Ceph. Читать дальше →

[Перевод] Объединяем функции логическими операторами в C++ В преддверии старта занятий в новом потоке группы «Разработчик С++» подготовили перевод интересного материала. Большинство алгоритмов STL в C++ используют всего лишь одну функцию для выполнения некоторой работы над коллекцией. Например, чтобы извлечь все четные числа из ко...

Как находить небесные объекты по звездными картам Stellarium при помощи телескопа Всем привет! Возможно читателям ресурса Хабр окажется интересным. Данная статья призвана дать некоторые пояснения к пользованию звездными картами, генерируемыми приложением для смартфонов и планшетов Stellarium. Так же в статье изложен реальный опыт поиска слабосветящихся об...

[Перевод] Terraform, моно-репозитории и compliance as code Всем привет. OTUS открыл набор в новую группу по курсу «Инфраструктурная платформа на основе Kubernetes», в связи с этим мы подготовили перевод интересного материала по теме. Возможно, вы один из тех, кто использует terraform для Infrastructure as a Code, и вам интересно...

Решение задач по планиметрии Планиметрия изучется в начальном курсе геометрии и зачастую сводится к решению практических задач без изучения теоретической базы. В данной статье приводятся альтернативные (подсказкам) решения некоторых задач приложения Euclidea (геометрические построения с помощью циркул...

[Перевод] Решение проблемы N+1 запроса без увеличения потребления памяти в Laravel Одна из основных проблем разработчиков, когда они создают приложение с ORM — это N+1 запрос в их приложениях. Проблема N+1 запроса — это не эффективный способ обращения к базе данных, когда приложение генерирует запрос на каждый вызов объекта. Эта проблема обычно возникает, ...

[Из песочницы] Базовые команды Linux для тестировщиков и не только Предисловие Всем привет! Меня зовут Саша, и я больше шести лет занимаюсь тестированием бэкенда (сервисы Linux и API). Мысль о статье у меня появилась после очередной просьбы знакомого тестировщика подсказать ему, что можно почитать по командам Linux перед собеседованием. Обы...

[Перевод] Введение в gRPC на Rust В статье будет показано как создать gRPC сервер и клиент на Rust. Для большей наглядности клиент будет также Telegram ботом. В итоге будет получена следующая архитектура: Статья является не всеобъемлющим руководством по gRPC в Rust, а скорее практическим гайдом, демонстриру...

[recovery mode] Украденное резюме, человек, который ушел в Кемерово, призыв кандидата и другие «увлекательные» истории трэш-собеседовани За время работы в IT-рекрутинге у нас накопилось много историй о смешных, нелепых и странных собеседованиях как от разработчиков, так и от HR. Поэтому решили запустить рубрику «Трэш-собеседования», где будем делиться подобным контентом. В этой статье собрали 13 историй: стра...

Java: вещи, которые могут показаться любопытными и разработчику со стажем Доброе время суток! Статья написана по следам публикации «Вещи, которые вы [возможно] не знали о Java» другого автора, которую я бы отнёс к категории «для начинающих». Читая и комментируя её, я понял, что есть некоторое количество достаточно любопытных вещей, которые я узна...

Рубрика «Читаем статьи за вас». Март 2020. Часть 2 Привет, Хабр! Продолжаем публиковать рецензии на научные статьи от членов сообщества Open Data Science из канала #article_essense. Хотите получать их раньше всех — вступайте в сообщество! Первая часть мартовской сборки обзоров опубликована ранее. Статьи на сегодня: NeRF: ...

[Из песочницы] Актуальные библиотеки визуализации данных для react-разработчиков Привет, Хабр! Представляю вашему вниманию перевод статьи «Data Visualization Libraries for React Developers in 2019» автора Veronika Rovnik. Вот уже несколько лет подряд React не сдаёт позиции и входит в тройку самых любимых библиотек профессиональных разработчиков по всему...

Что почитать на праздниках Длинные праздники впереди, а это значит, что будет время вернуться к закладкам в Read later или еще раз перечитать важные статьи уходящего года. В этом посте мы собрали и подготовили для вас список из самых интересных материалов из нашего блога за 2019 год и надеемся, что ...

Как Youtube и Instagram: интернационализация и локализация приложения на Python Язык Python лежит в основе всемирно известных приложений, таких как Youtube, Instagram и Pinterest. Для продвижения на мировом рынке приложению необходима локализация, то есть адаптация к особенностям той или иной страны, и интернационализация – перевод контента. В статье мы...

[Перевод] Prometheus: мониторинг HTTP через Blackbox экспортер Всем привет. В мае OTUS запускает практикум по мониторингу и логированию, как инфраструктуры так и приложений с помощью Zabbix, Prometheus, Grafana и ELK. В связи с этим традиционно делимся полезным материалом по теме. Blackbox экспортер для Prometheus позволяет реализоват...

Golang: на что рассчитывать специалисту по Go в море IT-специальностей? В апреле на Хабре публиковалась статья «Зачем вам учить Go», в которой подробно освещались возможности языка и его преимущества.   Ну а сейчас — самое время поговорить о разработчиках Golang, пороге входа в эту отрасль и о том, чего может ожидать Go-разработчик от работода...

Как я искал хелпдеск среди 15 решений и… не нашёл Этой статьи не должно было быть: вроде как и Хабр не жалобная книга, и у меня частная история далеко не хабровской компании. Но именно на Хабре я получил не очень корректное отношение одной компании и познакомился аж с двумя другими в самый подходящий момент — в момент, когд...

[Перевод] Руководство Google по стилю в C++. Часть 1 Часть 1. Вступление … Часть 8. Именование Часть 9. Комментарии … Все мы при написании кода пользуемся правилами оформления кода. Иногда изобретаются свои правила, в других случаях используются готовые стайлгайды. Хотя все C++ программисты читают на английском легче, чем на...

Сниппеты. Как сделать процесс работы с документацией проще Привет, Хабр! Меня зовут Павел Лесюк. Я тестировщик нативных мобильных приложений. В своей предыдущей статье я привел список инструментов, которые могут использоваться тестировщиками и некоторыми другими специалистами для повышения продуктивности своей работы. В новой сери...

WebRTC через Kurento: опыт тестирования и внедрения В этой статье я поделюсь опытом работы с технологией WebRTC и медиасервером Kurento на этапе тестирования и внедрения. Расскажу с какими проблемами я столкнулся и как их решил. Я не расскажу о том как разработать приложение с нуля, но приведу много полезных ссылок. Уверен, ...

Ах, эти строки Это текстовая версия моего доклада "Ах, эти строки" на конференции JPoint-2020. Дабы не тратить время читателей зря, сразу расставим все точки над "ё". О чём статья? Статья об эффективном (или не очень) использовании строк. Для кого статья? Статья для раз...

Гайд по UI анимации. Как начать анимировать интерфейсы Привет! Меня зовут Айгуль, я продуктовый дизайнер в Райффайзенбанке, а до этого работала в Mail.ru Group, OneTwoTrip и приложила руку к нескольким стартапам. Как-то я взяла на себя задачу продумать систему UI-анимаций для дизайн-системы. Но когда я начала над ней работу...

Как я разработал мобильную игру на Android с использованием React.js и выложил её в Google Play Store В данной статье рассмотрим все этапы разработки: от зарождения идеи до имплементации отдельных частей приложения, в том числе выборочно будут предоставлены некоторые кастомные куски кода.Данная статья может быть полезна тем, кто только задумывается или начинает разрабатывать...

[Из песочницы] Адекватное MVC для начинающих и не только Небольшое вступление Всем 404! Большинство IOS-разработчиков не понимают как работать с Apple-MVC. Из-за чего появляется необоснованная критика, маленькие проекты стараются писать на архитектурах для этого не предназначенных, ViewController'ы становятся огромными, не читаемы...

Новые шаблоны — IPMI, Mikrotik, MSSQL Статья написана на основе доклада Максима Чудинова, инженера-интегратора Zabbix. В этой статье мы расскажем о некоторых новых шаблонах, добавленных в версию Zabbix 5.0. IPMI Шаблон IPMI работает только с пятой версией системы мониторинга Zabbix, потому что построен на новом...

[Перевод] Руководство по Aircrack-ng в Linux для новичков Всем привет. В преддверии старта курса «Практикум по Kali Linux» подготовили для вас перевод интересной статьи. Сегодняшнее руководство познакомит вас с основами для начала работы с пакетом aircrack-ng. Конечно, невозможно предоставить всю необходимую информацию и охватить...

[Перевод] Используем PowerShell для работы с REST API Многие из вас наверняка работают с разнообразными инфраструктурами, используя REST API. А поскольку все более широкие слои населения для автоматизации рутинных задач осваивают PowerShell, то почему бы и не начать применять его для работы с REST API? Сегодня вашему вниманию ...

[Из песочницы] Пять причин почему ИИ не сможет заменить людей, а сделает нас только лучше Привет, Хабр! Представляю вашему вниманию перевод статьи «f5 Reasons AI Won’t Replace Humans… It Will Make Us Superhuman». Многие говорят, что ИИ с немыслимой скоростью забирает у нас работу. Заменит ли искусственный интеллект людей и создаст ли он неизбежный мировой кризис...

Современная сборка 2020 для frontend. Gulp4 Начало Посмотрев на календарь, я понял, что уже 2020, а посмотрев на свою сборку, которая была с 2018 года, я понял, что пора её менять. В этой статье мы разберем структуру проекта, плагины (минимальный набор функционала) и их новые возможности, которые добавились за такое б...

Как я сдавал OSCP Мы с коллегами прошли курс OSCP и сдали экзамен. В этой статье я подробно расскажу, как всё проходит экзамен, какие подводные камни и стоит ли игра свеч вообще. Читать дальше →

Изучаем VoIP-движок Mediastreamer2. Часть 2 Материал статьи взят с моего дзен-канала. Создаем тональный генератор В предыдущей статье мы выполнили установку библиотеки медиастримера, инструментов разработки и проверили их функционирование, собрав пробное приложение. Сегодня мы создадим приложение, которое сможет пропи...

Maltego Часть 4. ВК, Instagram, LinkedIN и другие фантастические твари И снова здравствуйте, дорогие друзья. Мы опять готовимся окунуться в прекрасный мир OSINT. Статьи в нашем цикле прибавляются, поэтому пора уже вводить некое подобие оглавления, ведь дальше их будет только больше. Итак, что мы уже разобрали в Maltego: Часть 1 — Что такое ...

Svelte: знакомимся с Действиями Недавно на Хабре появилась статья от @sanReal, где Александр рассказал о том, каким приёмам и каким возможностям Svelte он научился на собственном опыте. Я был немного удивлён не увидев в его списке упоминания одного из самых мощных инструментов фреймворка — Действий. К тому...

[Из песочницы] 6 советов для успешного Code Review Привет, Хабр! Представляю Вашему вниманию перевод статьи «6 Tips To A Successful Code Review». Сode review во все времена являлся основополагающей практикой, отвечающей за создание чистого и поддерживаемого кода. Частенько разработчики пренебрегают и недооценивают code revie...

[Из песочницы] Пять интересных способов использования Array.reduce() (и один скучный путь) Привет, Хабр! Представляю вашему вниманию перевод статьи "Five Interesting Ways to Use Array.reduce() (And One Boring Way)" автора Chris Ferdinandi. Из всех современных методов работы с массивами самым сложным из всех, что мне пришлось использовать, был Array.reduce(). На пе...

[Перевод] Нововведения JavaScript ES2020 с простыми примерами Представляем вам перевод статьи из блога Carlos Caballero на сайте Medium.com. Ранее мы публиковали материал этого автора о функциях ES10, появившихся в 2019 году. Читать дальше →

Была ли жизнь до Audio CD? Программный декодер PCM В прошлой статье мы рассказали про динамические QR коды, которые записывали на VHS кассеты. Эпидемия PCM зацепила и меня, так что пришло время поковырять этот формат. Читать дальше →

[Из песочницы] DevOps инструменты не только для DevOps. Процесс построения инфраструктуры автоматизации тестирования с нуля Часть 1: Web / Android Примечание: данная статья является переводом на русский язык оригинальной статьи «DevOps tools are not only for DevOps. Building test automation infrastructure from scratch». Однако все иллюстрации, ссылки, цитаты и термины сохранены на языке оригинал...

Как организовать успешный стартап? Эта статья — почти точный транскрипт моего мастер-класса, который я провёл в офисе Mail.ru Group для студентов наших образовательных проектов. Мне больше всего нравится такое определение стартапа: это что угодно, находящееся в состоянии высокой неопределенности. И сегодня ...

Изучаем VoIP-движок Mediastreamer2. Часть 7 Материал статьи взят с моего дзен-канала. Используем TShark для анализа RTP-пакетов В прошлой статье мы собрали схему дистанционного управления из генератора и детектора тональных сигналов, связь между которыми осуществлялась с помощью RTP-потока. В этой статье мы продолжа...

[Перевод] Пишем CRUD-приложение на Go с помощью Mysql, GORM, Echo, Clean Architecture Начнем сначала В этой статье будет сказ о том, как на Clean Architecture написать API с функциями CR(U)D, где в качестве БД взят Mysql, фреймворк – Echo, ORMapper – GORM. Что делаем API с функциями Create, Read, (Update), Delete. Обновление на самом деле реализовать особо н...

[Перевод] Изменения в популярном античите BattlEye и способы их обхода Основные обновления шелл-кода BattlEye Время идёт, античиты меняются, и для повышения эффективности продукта в них появляются и исчезают функции. Год назад я подготовил подробное описание шелл-кода BattlEye в своём блоге [перевод на Хабре], и эта часть статьи станет простым...

[Перевод] Реализация SOLID и слоистой архитектуры в Node.js с TypeScript и InversifyJS Привет, Хабр! Предлагаю вашему вниманию перевод статьи Implementing SOLID and the onion architecture in Node.js with TypeScript and InversifyJS автора Remo H. Jansen В этой статье мы рассмотрим архитектуру, известную как слоистая (onion). Слоистая архитектура — подход к пост...

[Перевод] Quarkus — новый взгляд на Cloud Native Java Привет, Хабр! В наступившем новом году мы планируем всерьез развивать темы контейнеров, Cloud-Native Java и Kubernetes. Логичным продолжением этих тем на русском языке будет рассказ о фреймворке Quarkus, уже рассмотренном в хорошей статье на Хабре. Сегодняшняя статья посвящ...

Монады как паттерн переиспользования кода В предыдущей статье мы обсуждали, почему функциональное программирование это совсем не то, что распиарено, и что оно совершенно не противоречит ООП, так, что даже сам Фаулер пишет про хороший ФП дизайн порождающий хороший ООП дизайн программы (и наоборот). Сейчас же я хочу ...

SwayWM — сам себе UnixPorn Всем привет. В этой статье я опишу свой опыт настройки и использования sway — тайлингового оконного менеджера для Linux. Читать дальше →

[Перевод] 6 хитростей Python, о которых никто не рассказывает новичкам В наши дни Python — это самый популярный в мире язык программирования. Одна из причин этого кроется в том, что разработчики с удовольствием пишут на Python. Это выгодно отличает Python от других языков. Python завоёвывает сердца новичков и опытных программистов простотой си...

Унифицируй это: как Lamoda делает единообразными свои Go сервисы Мы широко используем микросервисную архитектуру, хоть и не считаем ее панацеей, и чуть больше 2 лет назад начали переходить на язык Go. Он сравнительно прост и, на мой взгляд, очень хорошо подходит для создания простых, небольших и быстрых микросервисов. Эта простота имеет и...

[Перевод] Магические сигнатуры методов в C# Представляю вашему вниманию перевод статьи The Magical Methods in C# автора CEZARY PIĄTEK. Есть определенный набор сигнатур методов в C#, имеющих поддержку на уровне языка. Методы с такими сигнатурами позволяют использовать специальный синтаксис со всеми его преимуществами. ...

[Из песочницы] Кое-как одетые принцы и дворяне Читая статью «Разработчики — никакая не элита, а голые короли индустрии», разделившую Хабр на две половины: резко-негативно ЗА и резко-позитивно ПРОТИВ, а особенно обсуждение под ней, хочется кое что добавить. Я в целом согласен с автором статьи и хочу добавить аргументов в ...

Как писать книгу в LaTeXe по физике. Cтатья 1 Это моя первая статья на Хабре. Глава 1. Введение 1.1 Позвольте представиться и почему я это пишу    Я — научный сотрудник, физик. Недавно выпустил книгу по спектроскопии объемом 880 страниц и весом 1560 грамм. Эту книгу я писал 9 лет, параллельно читая лекции по...

[Из песочницы] stm32. Смотрим в корень Вместо вступления Статья содержит пример ручной оптимизации критического участка прикладной программы применительно к бюджетным микроконтроллерам stm32, повышающий производительность в 5 и более раз по сравнению с библиотечной функцией. Читать дальше →

Насколько важен порядок свойств в объектах JavaScript? В случае JavaScript-движка V8 — очень даже. В этой статье я привожу результаты своего маленького исследования эффективности одной из внутренних оптимизаций V8. Читать дальше →

[Из песочницы] GSM IoT-провайдер в ЖКХ (Часть 1) Прочитал статьи автора Interfer о трудностях в Iot и решил рассказать о своём опыте IoT-провайдера. Статья первая не рекламная, большая часть материала без моделей оборудования. Постараюсь написать детали в следующих статьях. Не вижу проблем применения GSM модемов для сбо...

Navigation Component-дзюцу, vol. 1 — BottomNavigationView Два года назад на Google I/O Android-разработчикам представили новое решение для навигации в приложениях — библиотеку Jetpack Navigation Component. Про маленькие приложения уже было сказано достаточно, а вот о том, с какими проблемами можно столкнуться при переводе большого...

Почему Мистер Робот — лучший сериал про IT-индустрию Доброго времени суток, уважаемые читатели Хабра! 23 декабря 2019 года в свет вышла заключительная серия одного из самых популярных сериалов про IT — Мистер Робот. Посмотрев сериал до конца, я твёрдо решил написать статью о сериале на Хабре. Выход этой статьи приурочен к мое...

Консольные утилиты Linux, которые смогут облегчить вам жизнь (Часть 2) Так как предыдущая статья зашла довольно хорошо, было бы неправильно не поделиться дополнительными утилитами, которые я использую и по сей день. Сразу хочу оговориться, что статья адаптирована и для новичков, а старым линуксоидам придётся немного сточить зубы потерпеть разж...

Оконные функции с «форточкой» или как пользоваться фреймом Всем привет. 26 февраля в OTUS стартовали занятия в новой группе по курсу «MS SQL Server разработчик». В связи с этим я хочу поделиться с вами своей публикацией про оконные функции. Кстати, в ближайшую неделю еще можно записаться в группу ;-). Оконные функции прочно вошл...

[Из песочницы] Нужно ли нам озеро данных? А что делать с хранилищем данных? Это статья перевод моей статьи на medium — Getting Started with Data Lake, которая оказалась довольно популярной, наверное из-за своей простоты. Поэтому я решил написать ее на русском языке и немного дополнить, чтобы простому человеку, который не является специалистом по раб...

[Перевод] CIMON-2: (не)судный день, или как IBM Watson забрался выше облаков CIMON – Crew Interactive Mobile CompanioN (далее «Саймон») – научная разработка аэрокосмического агентства Airbus и IBM, спонсированная германским центром авиации и космонавтики DLR. В прошлом году его впервые испытали «в бою» на МКС, а в этом месяце начали испытание второй...

Единый реестр российских программ и GPL. Мои пять копеек Несколько дней назад на Хабре была опубликована статья вызвавшая определенный резонанс. Краткий пересказ статьи привело издание CNews, а оттуда тезис о запрете GPL и MPL в Едином реестре перекочевал в статью в Википедии. В исходной статье красноречиво рассказывалось о том, ...

[Перевод] Сертификация Microsoft в онлайн — вы, ваше пространство и ваш компьютер На момент написания этой статьи (апрель 2020 года) большая часть мира находится дома для сдерживания распространения COVID-19. В связи с этим было закрыто большинство центров тестирования, что нарушило планы многих людей по прохождению сертификации Microsoft. К счастью, у ва...

[Перевод] Масштабирование Redux-приложения с помощью ducks В преддверии старта курса «React.js разработчик» подготовили перевод полезного материала. Как масштабируется front-end вашего приложения? Как сделать так, чтобы ваш код можно было поддерживать полгода спустя? В 2015 году Redux штурмом взял мир front-end разработки и заре...

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

[Из песочницы] Визуализируя нейронный машинный перевод (seq2seq модели с механизмом внимания) Привет, Хабр! Представляю вашему вниманию перевод статьи "Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention)" автора Jay Alammar. Sequence-to-sequence модели (seq2seq) – это модели глубокого обучения, достигшие больших успех...

Замена дисков меньшего объёма на диски большего объёма в Linux Всем привет. В преддверии старта новой группы курса «Администратор Linux» публикуем полезный материал, написанный нашим студентом, а также наставником на курсах, специалистом технической поддержки корпоративных продуктов REG.RU — Романом Травиным. В данной статье будет расс...

16 советов по разработке для андроид на языке Kotlin. Часть 3 И еще раз здравствуйте! В преддверии старта базового курса по Android-разработке, делимся заключительной частью статьи «16 советов по разработке для андроид на языке Kotlin». Читать первую часть Читать вторую часть LATEINIT Одной из ведущих особенностей Kotlin является е...

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

Web Security SQL Injection 2020 Статья расскажет, как использовать SQLmap и похожих инструментов для автоматизации решений заданий по sql injection на одном из популярных CTF ресурсов. В статье зайдем немного дальше, чем просто модификация risk-level «if you know what i mean». Задания не будут полностью ра...

[Перевод] Как Java 8 поддерживается в Android Привет, Хабр! Предлагаю вашему вниманию перевод замечательной статьи из цикла статей небезызвестного Джейка Вортона о том, как происходит поддержка Андроидом Java 8. Оригинал статьи лежит тут Читать дальше →

[Из песочницы] Telegram-бот для управления инфраструктурой По мотивам статьи Телеграмм-бот для системного администратора (статья не моя, я только прочитал) захотел поделиться опытом создания Telegram-бота на PowerShell для управления серверами приложений. Будет текст, код и немножко картинок. Конструктивная критика приветствуется...

Подробная инструкция по изготовлению сплит клавиатуры на основе ATmega32U4. Аналог Iris / Jiran своими руками Моя самоделка Перед изготовленияем своей клавиатуры я наметил следующие цели: 1. Максимально возможный тактильный комфорт. 2. Добиться того, чтобы совершенно не было необходимости смотреть на клавиатуру при работе, чтобы она никоим образом не отвлекала внимание на себя, что...

[Перевод] О роли фронтенд-разработчика Привет, Хабр! Представляем вашему вниманию перевод статьи фронтенд-разработчика из MediaMonks Рональда Мендеса. Будучи родом из Венесуэлы, Рональд перебрался в Аргентину и построил успешную карьеру, а благодаря своему большому интересу к дизайну и анимации стал одним из член...

Никогда такого не было и вот опять. Почему нужно использовать self-hosted VPN. Релиз Amnezia Вот и пришло время для релиза VPN-клиента, родившегося благодаря хакатону DemHack, и выращенного при поддержке РосКомСвободы, PrivacyAccelerator и Теплицы социальных технологий. Спустя полгода с того момента, как идея была впервые озвучена, мы презентуем готовый продукт — б...

Диагностируем проблемы в микросервисной архитектуре на Node.js с помощью OpenTracing и Jaeger Всем привет! В современном мире крайне важна возможность масштабировать приложение по щелчку пальцев, ведь нагрузка на приложение может сильно отличаться в разное время. Наплыв клиентов, которые решили воспользоваться вашим сервисом, может принести как большую прибыль так и...

[Перевод] Как разобрать URL в JavaScript? Доброго времени суток, друзья! Представляю Вашему вниманию перевод заметки «How to Parse URL in JavaScript: hostname, pathname, query, hash» автора Dmitri Pavlutin. Унифицированный указатель ресурса или, сокращенно, URL — это ссылка на веб-ресурс (веб-страницу, изображ...

Опыт построения умного дома на Raspberry Pi и открытой платформе OpenHAB. Часть 1 Два года назад у нас появился загородный дом. Только сейчас, во время пандемии, мы поняли, что это была инвестиция, а не трата бабла повышение уровня жизни. Изначально планировали жить на два дома — квартира в городе и дом за городом. Поэтому появилось желание автоматизирова...

Flutter BloC паттерн + Provider + тесты + запоминаем состояние Эта статья выросла из публикации “BLoC паттерн на простом примере” где мы разобрались, что это за паттерн и как его применить в классическом простом примере счетчика. По комментам и для своего лучшего понимания я решил попробовать написать приложение в котором будут получены...

Как в линуксе подключиться к корпоративному VPN с помощью openconnect и vpn-slice Хотите использовать линукс на работе, но корпоративный VPN не даёт? Тогда эта статья может помочь, хотя это не точно. Хочу заранее предупредить, что вопросы администрирования сетей я понимаю плохо, поэтому не исключено, что я всё сделал неправильно. С другой стороны не исклю...

Сверхдлинное преобразование Фурье на FPGA Всем привет! В этой статье я хочу рассказать про реализацию алгоритма сверхдлинного быстрого преобразования Фурье на ПЛИС. Написать эту статью меня побудило желание поделиться личным практическим опытом, который не хотелось бы потерять, оставив информацию только у себя в го...

[Из песочницы] Бот Telegram для пиццерии на Python с помощью telebot Вступление На Хабре уже есть статья о Telegram боте, написанном на Python с помощью telebot. Признаться, свое знакомство с чат-ботами в недавно разблокированном мессенджере я начинал с этой статьи. Моя писанина — это дополнение, включающее в себя работу с Inline кнопками и б...

Реальный способ улучшения снимка без фоторедакторов Изначально, статья должна была быть присвоена теме улучшения снимков с помощью приложения для фото на основе алгоритмов искусственного интеллекта (https://play.google.com/store/apps/details?id=wide.android.camera&hl=uk), но разница между стандартным приложением фотокаме...

Вы делаете это неправильно: расчет глубины Приветствую вас, глубокоуважаемые! Что если я скажу, что глубина, что бы вы под ней не подразумевали, является одной из самых сложных для точного измерения величин? На какой глубине плывет подводная лодка? Какая глубина марианской впадины? На какой глубине лежит Титаник? Ес...

Как написать плагин для Фигмы: проблема, MVP, решение Привет, я Саша Катин, дизайнер продукта в Авито. Примерно за месяц я написал плагин для Фигмы, чтобы помочь коллегам-дизайнерам. В статье расскажу, что получилось хорошо и быстро, а что — не очень, и что нужно сделать, чтобы запустить свой энтерпрайз-плагин внутри компа...

Понимание (всех) «модульных» форматов и инструментов JavaScript Доброго времени суток, друзья! Представляю вашему вниманию перевод статьи «Understanding (all) JavaScript module formats and tools» автора Dixin. При создании приложения часто возникает желание разделить код на части, логические или функциональные блоки (модули). Однако ...

[Перевод] Переход к «Meta GSAP»: поиски «идеальной» бесконечной прокрутки Уже послезавтра, 14 мая, стартует новый поток курса Python для веб-разработки, поэтому мы решили поделиться переводом о не совсем очевидной, но интересной области разработки сайтов — анимации анимации. Автор не просто даёт готовый рецепт, но шаг за шагом показывает, как сдел...

[Перевод] Полигоны Another World: Sega Genesis Перевод пятой статьи из серии от Fabien Sanglard, в этот раз про порт Another World на Sega Genesis. Разработка MegaDrive/Genesis началась сразу после того, как Sega выпустила свою Master System ​​в 1987 году. В то время целью Sega было создание чего-то, что превосходит PC E...

LyX: Общие замечания. Часть 1 Скопировано с моего блога в целях создания еще одного русскоязычного источника информации по данной теме. Эта статья является продолжением следующих статей одного цикла: статья 1 статья 2 статья 3 статья 4 статья 5 Фух, даже не знаю, как писать этот пост. Я мог бы начать ...

[Из песочницы] 5 причин, по которым моушн дизайн помогает вам общаться с людьми Привет, Хабр! Представляю вашему вниманию перевод статьи «5 Reasons Motion Graphics Help You Connect With People» автора Katy French. Оригинал статьи: Katy French | Перевод статьи сделал моушн дизайнер Игорь Царёв Мы большие поклонники моушн дизайна. Это не потому, что о...

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

[Перевод] Разбираемся в моделях кода архитектуры x64 «Какой моделью кода мне воспользоваться?» — часто возникающий, но нечасто разбираемый вопрос при написании кода для архитектуры х64. Тем не менее, это довольно интересная проблема, и для понимания генерируемого компиляторами машинного кода х64 полезно иметь представление о м...

[Из песочницы] UX-исследование ДБО: наш опыт, ошибки и открытия Привет. Я Денис Элиановский, дизайн-директор в JTC и руководитель в Opium Pro. Мы работаем в очень узких сегментах рынка IT, связанных с финансами и документооборотом. Вы точно ещё не слышали об этих компаниях и сегодня мало что о них узнаете, ведь эта статья про UX-исследов...

Функциональное программирование на TypeScript: задачи (tasks) как альтернатива промисам Предыдущие статьи цикла: Полиморфизм родов высших порядков Паттерн «класс типов» Option и Either как замены nullable-типам и исключениям В предыдущей статье мы рассмотрели типы Option и Either, которые предоставляют функциональную замену nullable-типам и выбрасыванию искл...

Разработка первого проекта на платформе Microsoft Dynamics 365 For Finance and Operations Всем привет! Меня зовут Таня, я тимлид группы разработки Axapta в компании Lamoda. В этой статье речь пойдет про разработку нашего первого проекта на платформе Microsoft Dynamics 365 For Finance and Operations. Я расскажу про подходы, которые мы использовали, про ошибки,...

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

[Перевод] Как я научила свой компьютер играть в Доббль с помощью OpenCV и Deep Learning Привет, дорогие подписчики! Наверное вы уже знаете о том, что мы запустили новый курс «Компьютерное зрение», занятия по которому стартуют уже в ближайшие дни. В преддверии старта занятий подготовили еще один интересный перевод для погружения в мир CV. Мое хобби – играть в ...

[Перевод] Почему стоит начать использовать FastAPI прямо сейчас Привет, Хабровчане! В преддверии старта занятий в группах базового и продвинутого курсов «Разработчик Python», мы подготовили для вас еще один полезный перевод. Python всегда был популярен для разработки легковесных веб-приложений благодаря потрясающим фреймворкам, таким к...

[Перевод] Антипаттерны событийно-ориентированной архитектуры И снова здравствуйте! В преддверии старта курса «Архитектор ПО» подготовили перевод еще одного интересного материала. Последние несколько лет наблюдается рост популярности микросервисной архитектуры. Есть много ресурсов, которые учат правильно ее реализовывать, однако дост...

База данных на SharedPreferences — Android Kotlin Для хранения большого количества информации в Android используется DataBase (SQLite, FireBase и т. п.), а для простого хранения настроек SharedPreferences. Вопрос, можно ли использовать SharedPreferences как своего рода Базу Данных и как это сделать? Статья написана об учеб...

Хороший ли выбор Svelte для реализации виджета? Привет! Меня зовут Дмитрий Усов, я фронтенд-разработчик в Ситимобил. Буквально несколько месяцев назад появилась задача создать виджет для заказа такси через сайт. В этой статье я хотел бы рассказать, почему для этой задачи был выбран Svelte, поделиться своим мнением о его д...

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

[Из песочницы] Как писать хорошие комментарии к коду: «зачем», а не «как» Привет, Хабр! Представляю вашему вниманию перевод статьи «Writing good comments: the why, not the how» автора Jack Franklin. Комментирование кода в программистской среде нередко считается пустой тратой времени или неким сигналом о том, что код можно и улучшить. Вот цитата...

Сокеты в ОС Linux В данной статье будет рассмотрено понятие сокета в операционной системе Linux: основные структуры данных, как они работают и можно ли управлять состоянием сокета с помощью приложения. В качестве практики будут рассмотрены инструменты netcat и socat. Читать далее

Топ-3 HTML-элемента, которые мы забыли Привет, Хабр! Представляю вашему вниманию перевод статьи «Top 3 HTML elements that we forgot» автора Stas Melnikov. Недавно я прочитал спецификации и понял, что мы используем ограниченный набор HTML-элементов. Поэтому хотел бы рассказать о трёх элементах, которые мы забыли,...

[Из песочницы] Многопоточность на Node.js. Event Loop Инфа будет полезна JS-разработчикам, которые хотят глубоко понимать суть работы с Node.js и Event Loop. Вы сможете осознанно и более гибко управлять потоком выполнения программы (web-сервера). Эту статью я составил по материалам своего недавнего доклада для коллег. В конце с...

[Перевод] Руководство по Deno: примеры работы со средой выполнения TypeScript Доброго времени суток, друзья! Представляю Вашему вниманию перевод статьи «The Deno Handbook: A TypeScript Runtime Tutorial with Code Examples» автора Flavio Copes. В этой статье мы научимся работать с Deno. Мы сравним его с Node.js и создадим с его помощью простой RES...

[Перевод] Хорошо подумайте, прежде чем использовать Docker-in-Docker для CI или тестовой среды Docker-in-Docker представляет собой виртуализированную среду Docker-демон, запущенную в самом контейнере для сборки образов контейнера. Основной целью создания Docker-in-Docker была помощь в разработке самого Docker. Многие люди используют его для запуска Jenkins CI. Понач...

Как проанализировать рынок фотостудий с помощью Python (1/3). Парсинг данных В интернете огромное количество открытых данных. При правильном сборе и анализе информации можно решить важные бизнес-задачи. Например, стоит ли открыть свой бизнес? С таким вопросом ко мне обратились клиенты, желающие получить аналитику рынка услуг фотостудий. Для них было...

Хабрарейтинг 2019: статистика и рейтинг авторов за 2019 год Привет Хабр. В первой части была рассмотрена некоторая статистика и опубликован рейтинг статей этого сайта. Во второй части будут рассмотрены другие статистические закономерности этого года, которые мне показались интересными, а также будет опубликован рейтинг авторов за эт...

[Из песочницы] Как мы печатали гексапода и что из этого получилось Предыстория Заканчивалось жаркое лето, позади был прекрасных семейный отдых на теплом ласковом море, и впереди уже проступали очертания серых рабочих будней. Чтобы не поддаться осенней депрессии надо было срочно заняться чем-то приятным и полезным и это что-то не заставило с...

[Перевод - recovery mode ] Делаем быстрее POSTGRESQL COUNT (*) Часто жалуются, что count (*) в PostgreSQL очень медленный. В этой статье я хочу изучить варианты, чтобы вы получили результат как можно быстрее. Почему count (*) такой медленный? Большинство людей без проблем понимают, что следующий запрос будет выполняться медленно: S...

[Из песочницы] Переосмысление DTO в Java Привет, Хабр! Представляю вашему вниманию любительский перевод статьи “Rethinking the Java DTO” Стивена Уотермана, где автор рассматривает интересный и нестандартный подход к использованию DTO в Java. Я провел 12 недель в рамках программы подготовки выпускников Scott Logic,...

Как забраться на дерево Точнее, как с него спуститься. Но обо всем по порядку. Эта статья немного выбьется из привычного формата статей от PVS-Studio. Мы часто пишем о проверке других проектов, но почти никогда не приоткрываем дверь нашей внутренней кухни. Пришло время это исправить и рассказать о...

Зачем (не)нужны геттеры? Прошлая статья про сеттеры/геттеры как способ работы с сущностью (на примере Symfony в PHP) получила бурное обсуждение. В данной статье попробую выразить свои мысли отдельно по поводу геттеров: зачем и когда что-то получать, какую ответственность они решают и когда их уместн...

C++ в Практикуме. Как обучить студентов плюсам, не отпугивая Качественное образование — это не просто формальный диплом именитого вуза или парочка сертификатов о пройденных курсах. Это прежде всего новые навыки и уверенное желание применять их на практике. Такое возможно, если человек на самом деле хорошо учился и если его хорошо учил...

[Из песочницы] Очереди сообщений в PostgreSQL с использованием PgQ Очереди сообщений используются для выполнения: отложенных операций, взаимодействия сервисов между собой, «batch processing» и т.д. Для организации подобных очередей существуют специализированные решения, такие как: RabbitMQ, ActiveMQ, ZeroMQ и тд, но часто бывает, что в ни...

[Перевод] Шарманка на Ардуино Эта публикация является переводом моей инструкции размещенной на сайте instructables.com. Проект занял первое место в DIY Arduino contest 2020 от Instructables Привет! Это статья о том, как я делал шарманку на Arduino. Читать дальше →

Жизнь лида аналитики или «я рассчитывала, что ты сама это сделаешь» К моей прошлой статье был такой комментарий: «Или порой встречаешь ответственных людей с честными глазами, обсуждаешь план работ, создаёшь договоренности. И… люди потом ничего не делают, или затягивают процесс, или делают непонимающий взгляд. И ты стоишь и думаешь кто из н...

[Перевод] Три метода Pandas, о которых вы, возможно, не знали Автор статьи, перевод которой мы сегодня публикуем, говорит, что когда он узнал о тех методах библиотеки Pandas, о которых хочет тут рассказать, он почувствовал себя совершенно некомпетентным программистом. Почему? Дело в том, что ему, когда он до этого писал код, лень было ...

[Перевод] Go глазами Rust-программиста: первые впечатления В преддверии старта курса «Разработчик Golang» подготовили перевод интересного материала. А каким было ваше первое впечатление от Go? На протяжении последних нескольких недель мне довелось использовать Go в работе. Я впервые использовал Go на более-менее крупном и серьезно...

Инкапсулятор Etherblade.net и импортозамещение сетевых компонентов (часть вторая) В первой статье я хотел показать, что FPGA девелопмент — интереснейшее занятие, а реализация потокового инкапсулятора является достаточно несложным проектом, который вполне мог бы выступить в качестве академического проекта для студентов старших курсов или аспирантуры. Да...

Структура React REST API приложения + TypeScript + Styled-Components В этой статье я расскажу о том, как можно организовать структуру своего React приложения, чтобы работы протекала гораздо легче и навигация по директориям происходила быстрее. Звучит интересно

33 потрясающих GitHub-репозитория для разработчиков мобильных приложений В этой статье мы рассмотрим 33 полезных GitHub-репозитория для разработчиков iOS, Android и Flutter.

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

[Из песочницы] Home видео для Selenium aka WebDriver. Или чем записать экран, если у вас есть java, поломанные тесты и немного времени Решили мы на работе автоматизировать тесты для нескольких своих веб приложений. И кроме информации, когда упали тесты, захотелось еще и увидеть, как выглядела страница на этот печальный момент. Я уже давно не брал в руки шашки и Selenium, поэтому пришлось немного покопатьс...

Компьютерные бренды 90-х, ч.2 В предыдущей статье мы попросили поделиться в комментариях названиями компаний, о которых забыли упомянуть. Набралось под сорок штук, причём о существовании многих мы даже не подозревали. Также были просьбы чуть подробнее рассказать о судьбе некоторых компаний, поскольку он...

Изучаем VoIP-движок Mediastreamer2. Часть 10 Материал статьи взят с моего дзен-канала. В прошлой статье мы сделали дуплексное переговорное устройство, выполняющее обмен звуковым сигналом через дуплексную RTP-сессию. В этой статье мы научимся писать фильтры и добавим сделанный своими руками фильтр в сделанное своими рук...

[Из песочницы] 9 ключевых алгоритмов машинного обучения простым языком Привет, Хабр! Представляю вашему вниманию перевод статьи «9 Key Machine Learning Algorithms Explained in Plain English» автора Nick McCullum. Машинное обучение (МО) уже меняет мир. Google использует МО предлагая и показывая ответы на поисковые запросы пользователей. Netflix...

[Из песочницы] Получение видео из Tik Tok без водяного знака Добрый день, всем любителям habr. В этой статье я хочу поделиться с Вами как можно получить видео с Tik Tok без водяного знака, с помощью такого языка как PHP. В настоящее время Tik Tok набирает популярность и было бы не прилично не написать про него маленькую статейку, и ...

Создание отказоустойчивой ИТ инфраструктуры. Часть 3. Организация маршрутизации на роутерах VyOS Основная цель статьи – показать процесс установки и настройки виртуальных маршрутизаторов VyOS на кластере oVirt, для организации связи на уровне L3 между внутренними и внешними сетями. Также в статье будут рассмотрены вопросы, связанные с особенностями настройки выхода в Ин...

Project Loom: виртуальные потоки в Java уже близко Несколько дней назад Ron Pressler разродился статьей State of Loom, которую не полайкал только самый ленивый джавист. Статья действительно хорошая, в ней много интересных метафор, которые я собираюсь бессовестно использовать теперь без ссылки на первоисточник. Со своей сто...

Packer, Terraform и Ansible: деплой кластера Kubernetes за час Привет, меня зовут Андрей Щукин, я помогаю крупным компаниям мигрировать сервисы и системы в Облако КРОК. Вместе с коллегами из компании Southbridge, которая проводит в учебном центре «Слёрм» курсы по Kubernetes, мы недавно провели вебинар для наших заказчиков. Я решил в...

Изучаем VoIP-движок Mediastreamer2. Часть 4 Материал статьи взят с моего дзен-канала. Создаем измеритель уровня сигнала В прошлой статье мы внесли ясность в корректное завершение программ использующих медиастример. В этой статье мы соберем схему измерителя уровня сигнала и научимся читать результат измерения из фильтр...

Author.today — пираты под флагом копирайта? Так получилось, что у меня хобби - перевод текстов. И когда-то давным-давно я попал в команду перевода “Червя” - веб-сериала о мире, где люди обрели суперсилы, но остались людьми. Подробнее об этой работе вы можете узнать в этой  статье на хабре. У нас сформировалась ко...

[Из песочницы] Получение разрешения на полёт дрона (БВС, БПЛА) в Российской Федерации Данная статья написана мной с целью облегчить прохождение по пути официального оформления своего вылета тем моделистам-любителям, кто сомневается в выполнимости для себя данной процедуры и не знает с чего начать. В первую очередь хочу выразить благодарность автору статьи «...

Не боги горшки обжигают Дима: Читал эту статью? habr.com/ru/post/483592 (Разработчики — никакая не элита, а голые короли индустрии). Что скажешь? Я: Прочитал эту статью вчера Я: В двух словах моё мнение целиком не выразить Я: Это, скорее, тянет на получасовой разговор. Минимум Дисклеймер Несмотря ...

[Из песочницы] Как копирайтеру писать для IT без глупостей и стереотипов Привет. Я Дмитрий — автор и редактор, помогаю IT-компаниям рассказывать о себе с помощью PR-статей на различные ресурсы, начиная от развлекательных и заканчивая большими профильными площадками (Как раз про Хабр, да). Кто-то вроде литературного негра — грубо говоря, ко мне пр...

Заметки о разработке МРРТ контроллера Приветствую! Ранее я уже рассказывал в статье о своем проекте контроллера заряда для небольшой СЭС с алгоритмом поиска ТММ. Сей проект вялотекущий из-за нехватки времени и порой отcутствия настроения, но все же он развивается. С момент последней статьи я сделал еще 2 ревизии...

Инкрементальный annotation proccesing для ускорения gradle-сборок Начиная с версий Gradle 4.7 и Kotlin 1.3.30 появилась возможность получить ускорение инкрементальной сборки проектов за счет корректной работы инкрементальной обработки аннотаций. В статье разбираемся, как в теории работает модель инкрементальной компиляции в Gradle, что ну...

Vue для самых маленьких a.k.a небольшой блог по всем канонам Всем привет! В данной статье рассмотрим разработку фронта простенького блога на Vue с использованием всех прелестей Vue включая Vuex и Router. А также поговорим про структуру приложения и работу с контейнером и роутером. Читать дальше →

Ошибки, которые погубят проект любой сложности. Опыт менеджеров Redmadrobot Мы, электрические, запускаем проекты с 2008 года, и за 11 лет сформировали сильную команду робоменеджеров. Прокачивать железных помогают боевые задачи и одна из самых сложных — управлять проектом. Ситуации, при которых появляется необходимость взять на себя обязанности PM ...

Разработка простейшего логического анализатора на базе комплекса Redd В прошлой статье цикла мы потренировались сохранять данные из потокового интерфейса в память средствами DMA. Пришла пора сделать какую-то полезную поделку, используя полученные навыки. Очень полезная при удалённой отладке вещь — анализатор. Вообще, при работе с комплексом ск...

Embox на процессоре Эльбрус. Или никогда не забывайте о том, что получили при разведке Данная статья является логическим завершением серии статьей “восхождение на Эльбрус” об ознакомлении Embox с процессорной архитектурой Эльбрус (E2K) . Почему логическим завершением, потому что в результате удалось через telnet запустить приложение, которое выводит на экран ...

Вжух, и прогоны автотестов оптимизированы. Intellij IDEA плагины на службе QA Automation Привет, Хабр. Я работаю QA Automation инженером в компании Wrike и хотел бы поговорить о том, как нам удалось оптимизировать процесс код-ревью для репозитория с 30 000+ автотестов при помощи IntelliJ IDEA плагина. Я расскажу о внутреннем устройстве плагина и о том, какие п...

JPEG. Алгоритм сжатия И снова здравствуйте! Я нашел эту статью, написанную еще мае 2019-ого года. Это — продолжение серии статей о WAVE и JPEG, Вот первая. Эта публикация включит в себе информацию об алгоритме кодирования изображений и о самом формате в целом. Щепотку истории Столовую ложку стать...

Тестируем на Java, C#, JavaScript, Python: программа конференции Heisenbug Трудно представить в одном месте Java, .NET, JavaScript, Python-тестировщиков и разработчиков, если это не standup Agile-тренинг. Но нет, в этой статье речь пойдет совсем не про аджайл, а про навыки и опыт, которые можно получить на Heisenbug. Кто будет ими делиться? «Un...

[Перевод] Понимание CSS Grid (2 часть): Grid-линии Приветствую! Представляю вашему вниманию перевод статьи «Understanding CSS Grid: Grid Lines» автора Rachel Andrew В первой статье из серии "Понимание CSS Grid" мы рассмотрели, как создавать родительский grid-контейнер и различные свойства, применяемые к данному эл...

[Из песочницы] WebSockets и Spring WebFlux Вступление Все мы знаем вебсокеты, любим или не очень и можем написать их со Spring MVC. А что на счет реактивного приложения? В этой статье будет рассмотрено как создать вебсокеты с помощью Spring WebFlux. Контент: Как сконфигурировать вебсокет. Как прочитать сообщение? К...

[Из песочницы] Рендеринг списков в React Native В этой статье я не буду рассказывать что нужно использовать как можно меньше контента для отображения или кэшировать изображения. Нет! Мы будет говорить только о реальной оптимизации списка и не важно что нам нужно отобразит, так как если клиент говорит хочу и все то с ним у...

Решил 50 задач и ответил на вопрос — Python или JavaScript? Привет, друзья! Я — JavaScript-разработчик. Код пишу в основном на React (иногда на Vue), немного на TypeScript, немного на Node, немного знаю SQL, но... со мной работает много людей, которые пишут код на Python вокруг много разговоров про Python повсюду преподают Python ...

[Из песочницы] Руководство по прохождению сертификации в Salesforce Данная статья будет полезна начинающим разработчикам на платформе Salesforce. В ней я постараюсь обобщить собственный опыт прохождения сертификации Salesforce, и рассказать как это сделать с наименьшими затратами как по времени, так и по финансам. В 2019 году Salesforce п...

Машинное обучение. Нейронные сети (часть 2): Моделирование OR; XOR с помощью TensorFlow.js Статья является продолжением цикла статей, посвященных машинному обучению с использованием библиотеки TensorFlow.JS, в предыдущей статье приведены общая теоретическая часть обучения простейшей нейронной сети, состоящей из одного нейрона: Машинное обучение. Нейронные сети (ча...

[Перевод] Почему центр пикселя должен быть в (0,5; 0,5) Сегодня, когда всё популярнее становится трассировка лучей (ray tracing) выполняемая из «глаза» камеры, этот урок нужно усвоить заново: код становится лучше, а жизнь — проще, если центр пикселя находится в координате (0,5; 0.5). Если вы уверены, что делаете всё правильно, то...

Как сделать так, чтобы вашу статью или документацию поняли быстро и точно Не только содержание, но и структура текста должна быть осмысленна. Так, если мы говорим о техническом или научном тексте, например, о статье или документации, то форма должна помочь максимально быстро и легко понять содержание. Для меня, в случае статьи, это значит, что ст...

[Перевод] Seccomp в Kubernetes: 7 вещей, о которых надо знать с самого начала Прим. перев.: Представляем вниманию перевод статьи старшего инженера по безопасности приложений британской компании ASOS.com. С ней он начинает цикл публикаций, посвящённых повышению безопасности в Kubernetes благодаря использованию seccomp. Если введение понравится читателя...

МФТИ запускает открытый онлайн-курс по спортивному программированию МФТИ совместно с Фондом развития Физтех-школ при поддержке Фонда президентских грантов открыл набор на бесплатный онлайн-курс «Быстрый старт в спортивное программирование» для студентов младших курсов технических специальностей и тех, кто обладает базовыми навыками программи...

[Перевод] Используйте парсинг вместо контроля типов В 2019 году была написана потрясающая статья Parse, don’t validate. Я крайне рекомендую изучить её всем программистам (а также недавнее дополнение к ней Names are not type safety). Её основная идея заключается в том, что существует два способа проверки валидности входящих ...

IP-телефония. Виды VoIP устройств, обзор плюсов-минусов. Что выбрать? По данным исследований DISCOVERY Research Group среднегодовой темп роста IP-телефонии в России составляет 30%. Предположительно рынок IP-телефонии в России к 2021 году вырастет до 14,2 млрд. Как видите, рост довольно серьезный. С развитием услуг IP-телефонии растет и рынок V...

Автоматизация задач администрирования API VMware vSphere с использованием Ansible В предыдущей статье мы рассмотрели взаимодействие с VMware с помощью Python. В этой же обсудим взаимодействие с VMware с помощью Ansible. Ansible — система управления конфигурациями, написанная на языке программирования Python с использованием декларативного языка разметки ...

Как улучшить ваш API сервис на node.js. Часть 1 Сейчас доступно приличное количество материалов по написанию API на node.js. Большинство из них в виде туториалов и демо-примеров в документациях. Этого достаточно, чтобы быстро разобраться и написать что-то свое. Но в них редко найдутся детали, почему это делается именно та...

ViennaNET: набор библиотек для backend’а. Часть 2 Сообщество .NET-разработчиков Райффайзенбанка продолжает краткий разбор содержимого ViennaNET. О том, как и зачем мы к этому пришли, можно почитать в первой части. В этой статье пройдемся по еще не рассмотренным библиотекам для работы с распределенными транзакциями, очеред...

«Никогда не писали автотесты? Попробуйте Cypress» «Никогда не писали автотесты? Попробуйте Cypress» Автотесты на Cypress Первое впечатление и встречающиеся проблемы Дмитрий Кочергин, Lead Software Developer Luxoft Прежде всего хочу отметить, что я не профессиональный автотестер, а Java-программист. Но однажды поступила за...

[Перевод] Печатная плата с ракеты Сатурн-5 – обратная разработка с пояснениями Перевод статьи из блога Кена Ширрифа В лунных миссиях «Аполлон» ракетой Сатурн-5 управлял передовой бортовой компьютер, разработанный в IBM. Система собиралась из гибридных модулей, похожих на интегральные схемы, но содержавшие отдельные компоненты. Я провёл обратную разраб...

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

[Из песочницы] Разбор настройки ELK 7.5 для анализа логов Mikrotik Давно была мысль посмотреть, что можно делать с ELK и подручными источниками логов и статистики. На страницах хабра планирую показать практический пример, как с помощью домашнего мини-сервера можно сделать, например, honeypot с системой анализа логов на основе ELK стека. В э...

[Из песочницы] Как разместить статический сайт с помощью Yandex.Cloud Object Storage Привет, Хабр! В этой статье, я расскажу как легко и просто разместить статический сайт с помощью технологий Яндекса, а именно Object Storage. В конце у вас будет размещенный в сети сайт, который будет доступен по внешней ссылке. Эта статья будет полезна, если вы Начинающий ...

Цифровая логистика: решение транспортной задачи спроса и предложения с помощью библиотеки DOcplex от IBM Всем привет, меня зовут Дмитрий Кузин (Application Development Senior Analyst в Accenture), и в своей статье я делюсь историей о том, как запрос на решение задачи в корпоративной рассылке привел к освоению Python библиотеки DOcplex от IBM, предназначенной для решения оптими...

Опыт конвертирования кода C# в код Rust Постановка задачи Код на языке C# нужно перевести в код на Rust. Точнее, требуется такая процедура перевода (разработка продолжается на C#), чтобы в любой момент можно было получить работающий код на Rust. Эту задачу я решал для языков Java, Python, JavaScript и PHP, написав...

[Перевод] Расширяемые расширения в JavaScript Привет, Хабр! Обращаем ваше внимание на долгожданную допечатку книги "Выразительный JavaScript", которая только-только пришла из типографии. Тем, кто еще не знаком с творчеством автора книги (при всей энциклопедичности она понравится и начинающим разработчикам) ...

[Перевод] Python, pandas и решение трёх задач из мира Excel Excel — это чрезвычайно распространённый инструмент для анализа данных. С ним легко научиться работать, есть он практически на каждом компьютере, а тот, кто его освоил, может с его помощью решать довольно сложные задачи. Python часто считают инструментом, возможности которог...

Все материалы на данном сайте взяты из открытых источников или присланы посетителями сайта и предоставляются исключительно в ознакомительных целях. Права на материалы принадлежат их владельцам. Администрация сайта ответственности за содержание материала не несет. (Правообладателям)