Социальные сети Рунета
Понедельник, 8 марта 2021

[Перевод] Реализация epoll, часть 1 Сегодня мы публикуем перевод первой статьи из серии материалов, посвящённых реализации epoll в ядре Linux 3.16.1*. Автор исходит из предположения о том, что читатели знакомы с API и с использованием epoll. Он уделяет основное внимание реализации подсистемы epoll в ядре Linux...

[Перевод] Реализация epoll, часть 3 В предыдущих двух материалах (часть 1, часть 2) этой серии речь шла об общих вопросах работы epoll, и о том, как epoll получает уведомления о новых событиях от файловых дескрипторов, за которыми наблюдает. Здесь я расскажу о том, как epoll хранит уведомления о событиях, и о ...

Кракс! Миллениалы изобрели Python фреймворк Пролог Здравствуй, Хабр! Данная статья посвящена разбору плюсов и минусов очередного Python фреймворка, который увидел свет около недели назад. Итак, небольшое лирическое отступление. Во время всем известных событий, когда нас чуть-чуть самоизолировали, у нас появилось немно...

[Перевод] Реализация epoll, часть 2 Публикуя перевод первой статьи из цикла материалов о реализации epoll, мы провели опрос, посвящённый целесообразности перевода продолжения цикла. Более 90% участников опроса высказались за перевод остальных статей. Поэтому сегодня мы публикуем перевод второго материала из эт...

Под капотом сортировок в STL Стандарт С++ почти никогда не указывает, как именно должен быть реализован тот или иной std алгоритм. Дается только описание того, что на входе, что на выходе и асимптотические ограничения по времени работы и памяти. В статье я постарался прикинуть, какие математические алг...

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

Отлаживаем ядро из командной строки с bpftrace Это очередная статья из цикла «BPF для самых маленьких» (0, 1, 2) и первая из серии практических статей про трассировку Linux современными средствами. Из нее вы узнаете о программе и языке bpftrace — самом простом способе погрузиться в мир BPF с практической точки зрения, да...

[Перевод] Процесс: Создание Vue 3 Уроки, полученные от написания следующей главной версии Vue.js Автор: Эван Ю (Evan You) В течение прошлого года команда Vue работала над следующей основной (major) версией Vue.js, которую мы надеемся выпустить в первой половине 2020 года (эта работа продолжается на момент н...

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

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

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

[Перевод] Разбираемся с доступом к атрибутам в Python Интересно, сколько людей понимают, что в Python много синтаксического сахара? Я не говорю, что он похож на Lisp-подобные языки, где синтаксис настолько голый, насколько это возможно (хотя и сравнение с Lisp не совсем обосновано), но большая часть синтаксиса Python технически...

Реализация ARP-спуфинга на Python Введение В данной статье я бы хотел продемонстрировать то, как можно реализовать собственную программу ARP-спуфинга на Python. Реализаций уже тысячи, но почти все они с использованием библиотеки Scapy и пары методов. Возможно данную библиотеку использовать эффективнее, не сп...

Windows 10 IoT Enterprise 2019 — режим мультикиоска Введение Windows 10 IoT Enterprise 2019 – маркетинговое наименование очередного выпуска Windows 10. Выход данной версии был объявлен в сентябре 2018 года, соответственно имеет версию 1809, 18 – год, 09 – месяц. По новому выпуску Windows 10 1809 написано много статей, но боль...

[Из песочницы] Наука о пользовательском опыте. Использование когнитивных искажений в разработке качественных продуктов Содержание Введение. О чем эта статья Цели и дисклеймеры Часть 1. Хороший продукт Часть 2. Пользовательский опыт (UX). Что это? Часть 3. Архитектура выбора Часть 4. Архитектор выбора Часть 5. Когнитивные искажения и Пользовательский опыт Ссылка на полную версию UX CORE (105...

[Перевод] Руководство по работе с OpenAL на C++. Часть 1: воспроизводим звук Вашей игре нужен звук! Наверно, вы уже использовали OpenGL для рисования на экране. Вы разобрались с его API, и поэтому обратились к OpenAL, потому что название кажется знакомым. Что же, хорошие новости — OpenAL тоже имеет очень знакомый API. Он изначально задумывался для и...

TDD в микроконтроллерах. Часть 2: Как шпионы избавляют от зависимостей В предыдущей статье мы начали освещать тему эффективности применения методологии TDD для микроконтроллеров (далее – МК) на примере разработки прошивки для STM32. Мы выполнили следующее: Определили цель и инструменты разработки. Настроили IDE и фреймворк для написания тесто...

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...

[Перевод] Микросервисы со Spring Boot. Часть 4. Использование Ribbon для балансировки нагрузки Это часть 4 серии о микросервисных архитектурах, в которой мы сосредоточимся на использовании Ribbon для балансировки нагрузки. Это статья входит в серию статей «Микросервисы со Spring Boot»: Часть 1. Начало работы с архитектурой микросервисов Часть 2. Создание микросерви...

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

ModBus Slave RTU/ASCII без смс и регистрации. Версия 3 Ранее на Хабре была опубликована статья «ModBus Slave RTU/ASCII без смс и регистрации», посвященная реализации ModBus Slave RTU/ASCII устройств. В комментариях к статье было высказано множество замечаний, в том числе и несколько весьма дельных. В данной публикации приведен...

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

Новый фронтенд Одноклассников: запуск React в Java. Часть I Многие слышали название GraalVM, но опробовать эту технологию в продакшене пока довелось не всем. Для Однокласснииков эта технология уже стала «священным Граалем», меняющим фронтенд. В этой статье я хочу рассказать о том, как нам удалось подружить Java и JavaScript, и нач...

IDA Pro: каким не должен быть SDK Приветствую, Эта статья будет о том, как не нужно делать, когда разрабатываешь SDK для своего продукта. А примером, можно даже сказать, самым ярким, будет IDA Pro. Те, кто хоть раз что-то разрабатывал под неё и старался поддерживать, при чтении этих строк, наверняка, сейчас...

[Перевод] Микросервисы со Spring Boot. Часть 5. Использование сервера имен Eureka В этой заключительной части нашей серии архитектур микросервисов мы научимся включать сервер имен Eureka и позволять микросервисам взаимодействовать с ним. Это статья входит в серию статей «Микросервисы со Spring Boot»: Часть 1. Начало работы с архитектурой микросервисов ...

[Перевод] Как реализованы конвейеры в Unix В этой статье описана реализация конвейеров в ядре Unix. Я был несколько разочарован, что недавняя статья под названием «Как работают конвейеры в Unix?» оказалась не про внутреннее устройство. Мне стало интересно, и я зарылся в старые источники, чтобы найти ответ. Читать да...

Архитектурный шаблон MVI в Kotlin Multiplatform, часть 2 Это вторая из трёх статей о применении архитектурного шаблона MVI в Kotlin Multiplatform. В первой статье мы вспомнили, что такое MVI, и применили его для написания общего для iOS и Android кода. Мы ввели простые абстракции, такие как Store и View, а также некоторые вспомо...

Масштабирование базы данных. Microsoft AlwaysOn Привет. Меня зовут Тигран Петросян, я ведущий инженер по технической поддержке Docsvision, и сегодня расскажу о применении технологии MS SQL AlwaysOn. Это вторая статья из мини-серии «Масштабируемость системы ECM на предприятии», в которой первая статья моего коллеги была по...

[Перевод] Выпуск Rust 1.41.1: корректирующий выпуск Команда Rust опубликовала новый корректирующий выпуск Rust, 1.41.1. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение. Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.41.1...

[Перевод] Как демо Memories умещается в 256 байт Введение Привет! Меня зовут «HellMood», а эта статья посвящена небольшой программе для MS DOS под названием «Memories». Эта программа имеет размер 256 байт, она выиграла в категории «PC 256 byte» соревнований демосцены «Revision» 2020 года, а также получила приз зрительских...

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

Решения для защиты корпоративной и технологической сети: обзор продуктов Positive Technologies Коллеги, добрый день! Данная статья является отправной точкой в цикле статей по продуктам Positive Technologies. Первая часть будет посвящена MaxPatrol 8, а сегодня в рамках данной статьи мы поговорим о разнообразии продуктов и решений Positive Technologies и их совместно...

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

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

Реализуем кооперативную многозадачность на C# Когда речь заходит о многозадачности в .Net, то в подавляющем большинстве случаев предполагается вытесняющая многозадачность на основе потоков операционной системы. Но в этой статье речь пойдёт о реализации кооперативной многозадачности, с помощью которой можно создать види...

Что может пойти не так с Data Science? Часть 1: сбор данных Сегодня существует 100500 курсов по Data Science и давно известно, что больше всего денег в Data Science можно заработать именно курсами по Data Science (зачем копать, когда можно продавать лопаты?). Основной минус этих курсов в том, что они не имеют ничего общего с реально...

4. Check Point SandBlast Agent Management Platform. Политика Data Protection. Deployment и Global Policy Settings Добро пожаловать на четвёртую статью цикла о решении Check Point SandBlast Agent Management Platform. В предыдущих статьях (первая, вторая, третья) мы детально описали интерфейс и возможности веб-консоли управления, а также рассмотрели политику Threat Prevention и протести...

Точные и быстрые вычисления для чисел с плавающей точкой на примере функции синуса. Часть 3: fixed-point Продолжаем цикл лекций (часть 1 и часть 2). В части 2 мы посмотрели, что внутри у библиотеки libm и в данной работе попробуем немного переделать функцию do_sin, чтобы увеличить её точность и скорость работы. Приведу эту функцию ещё раз do_sin): Как было показано в предыду...

Выбор материалов для 3д печати. Часть 2. Аве товарищи печатники !С вами вновь на связи 3DMindex.Прошлая статья получила некий отклик, поэтому приняв во внимание всю критику я решил продолжить написание статей по этой теме. Напоминаю вновь, что я пишу о материалах для 3д-печати в доступной форме, сравниваю одинаковы...

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

Разработка прошивки для аналоговой видеокамеры EVR-Y2022F В предыдущей статье было очень подробно рассмотрено устройство аналоговой видеокамеры с целью создания собственной прошивки. Как уже было сказано, камера имеет микроконтроллер неизвестного происхождения. Он гораздо богаче, чем привычные мне AVR: у него два напряжения питания...

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

Buck-boost преобразователь с цифровым управлением на STM32F334 в режиме CC/CV Наиболее популярные топологии dc/dc преобразователей buck и boost имеют существенное ограничение: топология buck может лишь понижать входное напряжение, а топология boost только повышает его. Однако бывают задачи, когда диапазон входного напряжения требует одновременно работ...

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

Массивы в C++ Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это четвертая статья из серии, первые три, посвященные перегрузке в C++, находятся здесь, здесь и здесь. Эта статья посвящена...

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

[Из песочницы] Отладка и программирование микроконтроллеров stm32f303, atmega328 через любой интерфейс, как через jtag Данная статья посвящена моему первому open source проекту “repl”(ссылка на репозиторий внизу). Идея данного проекта заключается в том, чтоб позволить программисту микроконтроллеров отлаживать программу в микроконтроллере через любой его интерфейс, при этом чтобы отладка не с...

[Из песочницы] Точные и быстрые вычисления для чисел с плавающей точкой на примере функции синуса. Введение и часть 1 Внимательно прочитал очень хорошие статьи от ArtemKaravaev по сложению чисел с плавающей точкой. Тема очень интересная и хочется её продолжить и показать на примерах, как работать с числами с плавающей точкой на практике. В качестве эталона возьмём библиотеку GNU glibc (libm...

[Перевод] Intl.Segmenter: сегментация Юникода в JavaScript Предисловие к переводу Это перевод объяснительной части предложения (proposal) Intl.Segmenter, которое скорее всего будет добавлено в ближайшую спецификацию ECMAScript. Предложение уже реализовано в V8 и без флага может быть использовано в версии 8.7 (точнее в 8.7.38 и выше)...

Безопасность REST API от А до ПИ Введение Умение реализовать грамотное REST API — полезный навык в наше время, т.к. все больше сервисов предоставляют свои возможности с помощью API. Но разработка REST API не ограничивается реализацией HTTP запросов в определенном стиле и формированием ответов в соответстви...

Разработка круговых интерфейсов. Часть 2. Перенос библиотеки с JavaScript на QML Оглавление Введение Библиотека круговых интерфейсов v2.0 Круговая CAPTCHA Перенос библиотеки с JavaScript на QML Демонстрационное мобильное приложение Заключение Введение Предыдущая статья была вводной к вопросу разработки круговых интерфейсов. В ней рассмотрены определение,...

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

[Перевод] Rust crashcourse. Итераторы Ниже представлен перевод одной из частей серии статей Rust Crash Course от Майкла Сноймана, которая посвящена итераторам. Мне материал показался удачным в плане доступности изложения, поэтому перевод, сделанный для себя, решил опубликовать. Надеюсь, что это кому-то пригодитс...

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

Что такое Android? Когда речь заходит об Android, многие не совсем понимают, что имеет ввиду человек. Android — это смартфон или операционная система? Что вообще такое «операционная система»? Многим может показаться этот вопрос слишком простым, но не все до конца понимают это....

[Перевод] О сложностях мониторинга работающих процессов в Linux Все знают о том, как наблюдать за работающими процессами в Linux-системе. Но почти никто не добивается в подобных наблюдениях высокой точности. На самом деле, всем методам мониторинга процессов, о которых пойдёт речь в этом материале, чего-то не хватает. Давайте, прежде ч...

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

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

[Перевод] Полигоны Another World: Amiga 500 Эта статья часть серии про порты игры Another World. В ней пойдёт речь про хитрости при работе с Amiga 500. Рекомендуется сначала прочитать предыдущую статью. История Amiga начинается в середине 1982 года со звонка Ларри Каплана Джею Майнеру. Оба тогда работали в Atari в 70-...

Эффективное хранение сотен миллионов маленьких файлов. Self-Hosted решение Уважаемое сообщество, эта статья будет посвящена эффективному хранению и выдаче сотен миллионов маленьких файлов. На данном этапе предлагается конечное решение для POSIX совместимых файловых систем, в том числе кластерных, и вроде бы даже уже без костылей. Поэтому для это...

Pipes & Filters. Пример применения и реализации при помощи Spring В данной статье речь пойдёт о применении паттерна Pipes & Filters. Для начала мы разберём пример функции, которую позже перепишем с помощью выше упомянутого паттерна. Изменения в коде будут происходить постепенно и каждый раз мы будем создавать работоспособный вариант, п...

Игра на WinForms + C# в 16 лет (2 часть) Предыстория Прошло довольно много времени с момента написания предыдущей статьи. Как и обещал я написал вторую часть. Хотелось бы сказать спасибо всем тем, кто давал советы в комментариях, из всех их я смог узнать что-то новое. Ну а для тех кому хочется сразу посмотреть прое...

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

[Перевод] Transformer в картинках В прошлой статье мы рассматривали механизм внимания (attention) – чрезвычайно распространенный метод в современных моделях глубокого обучения, позволяющий улучшить показатели эффективности приложений нейронного машинного перевода. В данной статье мы рассмотрим Трансформер (T...

DLR RMC — часть 1. Путь из космоса на Землю Ссылка на первоисточник: http://www.robotexnik.info/publ/robotics/dlr-rmc-part1/1-1-0-13. Здесь больше порядка с оформлением, особенно, для видеороликов. Заходите! Содержание Введение Ничего необычного: один из лучших центров робототехники в мире Оберпфаффенхофен Просто ко...

[Из песочницы] Байесовские сети при помощи Питона — что и зачем? Дисклеймер: данная статья является адаптированным переводом. Оригинал можно прочесть здесь. Байесовские сети при помощи Питона — объяснение с примерами Из-за ограниченности информации (особенно на родном русском) и ресурсов работы, байесовские сети окружены рядом проблем. ...

Дополняя SQL. Часть 4. Работа с исключениями, влияние данных на процесс разработки. Использование ML.NET Что будет в этой статье? Это заключительная статья в цикле о жизни разработчиков IDE для баз данных. В этой части я расскажу, о том, как внедрение продуктовой аналитики повлияло на некоторые аспекты разработки. Для понимания этой статьи не обязательно читать все три предыду...

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

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

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

Дополняя SQL. Часть 1. Сложности парсинга. Истории о доработке ANTLR напильником Публикую на Хабр оригинал статьи, перевод которой размещен в блоге Codingsight. Что будет в этой статье? Более пяти лет работаю в компании, что занимается разработкой линейки IDE для работы с базами данных. Начиная работу над этой статьей я и не представлял как много интере...

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

[Перевод] Современные архитектуры фронт-энда (часть 2) Вторая часть статьи "Contemporary Front-end Architectures", в которой рассмотрены архитектуры фронт-энда с точки зрения распределения потоков данных. Начало здесь Читать дальше →

«Морзянка сэр» или обзор составных функциональных блоков в CannyLab 2 Год назад, мне подарили мой первый контроллер Canny 3 Tiny, о чем я написал статью, из которой со временем вырос целый небольшой цикл. Все-таки опыты с этим контроллером стали в некотором роди моим хобби. Поэтому я решил отметить годовщину нашего знакомства очередной стать...

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

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

[Из песочницы] Как мы придумали TableAdapter и упростили работу с UITableView При работе с UITableView хотелось избежать написания шаблонного кода, который еще больше усложняется, если нужно обновлять состояние таблицы анимировано. Apple представила свое решение этой проблемы на WWDC 2019, но оно работает только с iOS 13. А у нас, как у студии разраб...

Xiaomi Redmi 6 Pro получил MIUI 12 за пределами Китая В начале августа компания Xiaomi выпустила стабильную версию прошивки MIUI 12 на базе операционной системы Android 10 Pie для смартфона Xiaomi Redmi 6 Pro в Китае. Теперь же обновление начало распространяться за пределами Китая, начиная с Индии. Если и на данной стадии ...

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

Строим маршрутизатор в SOCKS на ноутбуке с Debian 10 Целый год (или два) я откладывал публикацию данной статьи по главной причине — мной уже были опубликованы две статьи, в которых я описал процесс создания полноценного маршрутизатора в SOCKS из самого обычного ноутбка с Debian. Однако, с тех пор стабильная версия Debian обно...

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

[Из песочницы] Как скомпилировать декоратор — C++, Python и собственная реализация. Часть 2 Декораторы — одна из самых необычных особенностей Python. Это инструмент, который полноценно может существовать только в динамически типизированном, интерпретируемом языке. В первой части статьи мой товарищ Witcher136 показал, как в С++ реализовать наиболее приближенную к эт...

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

[Перевод] Разработка инструмента командной строки: сравнение Go и Rust Эта статья посвящена разбору моего эксперимента по написанию небольшого инструмента командной строки с использованием двух языков, в программировании на которых у меня не особенно много опыта. Речь идёт о Go и Rust. Если вам не терпится увидеть код и самостоятельно сравни...

SVM. Объяснение с нуля, имплементация и подробный разбор Привет всем, кто выбрал путь ML-самурая! Введение: В данной статье рассмотрим метод опорных векторов (англ. SVM, Support Vector Machine) для задачи классификации. Будет представлена основная идея алгоритма, вывод настройки его весов и разобрана простая реализация своими рука...

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

[Перевод] Простое объяснение делегирования событий Приветствую. Представляю вашему вниманию перевод статьи «A Simple Explanation of Event Delegation in JavaScript», опубликованной 14 июля 2020 года автором Dmitri Pavlutin В данной статье Дмитрий Павлутин объясняет, на чём основан один из базовых паттернов работы с DOM-событ...

MQTTv5.0: Обзор новых функций. Часть 2 Всем привет! Приведенный ниже материал является продолжением статьи о функционале, добавленном в новой версии MQTTv5.0. Если вы уже успели ее изучить, то для вас не составит труда заметить, что большинство новых функций базируется на понятии свойств, которые можно добавлят...

I. Введение в T-FLEX CAD и основные принципы моделирования Друзья!Перед вами первая часть нашей небольшой серии публикаций "Планирование и оптимизация порядка построения 3D модели", в которой будут рассмотрены базовые принципы работы в CAD системах и способы оптимизации процесса 3D моделирования. Данная информация будет особенно пол...

О репозиториях замолвите слово В последнее время на хабре, и не только, можно наблюдать интерес GO сообщества к луковой/чистой архитектуре, энтерпрайз паттернам и прочему DDD. Читая статьи на данную тему и разбирая примеры кода, постоянно замечаю один момент — когда дело доходит до хранения сущностей пре...

Выгорание — норма? Часть 1 Почему люди выгорают, как отличить выгорание от усталости, как отловить на ранних стадиях, терминология и нейробиология процесса на пальцах. Первая статья цикла — вводная: разбираемся с терминами и пониманием явления. Вводная часть Выгорание — довольно объемная тема, охватит...

Чаты на вебсокетах, когда на бэкенде WAMP. Теперь про Android Мой коллега уже писал про наш опыт разработки чатов на вебсокетах для iOS, поэтому часть про особенности бэкенда с точки зрения клиента у нас общая. А вот реализация на Android, конечно, отличается. И ещё мне не приходилось, как в первой статье, искать библиотеку для поддерж...

Honor 20i, Honor 10 Lite и 4 смартфона начали получать стабильную EMUI 10 Huawei начала раздавать обновление со стабильной версией прошивки EMUI 10 для 6 своих устройств. Тема обновлений очень горяча, ведь EMUI 10 сильно изменилась по сравнению с прошлой версией, как внешне, так и по количеству возможностей. Да и просто все мы любим новые устрой...

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

Что нового в TestMace часть 1. Облачная синхронизация, обновленный интерфейс и многое другое Всем привет! После долгого перерыва TestMace вновь вылезает из норы, чтобы поведать миру о новостях, связанных с проектом. Если кто забыл либо не читал статью о нас, TestMace — это IDE для работы с API. Наша тулза ставит целью покрыть весь спектр работ с существующим API, к...

DCImanager 6 — новая панель управления серверами и оборудованием дата-центра. Первое знакомство и сравнение с «пятёркой» 28 января мы закончили тестирование и выпустили стабильную версию DCImanager 6 — новой панели управления серверами и оборудованием дата-центра. Предыдущее поколение работало почти 10 лет, поэтому обновление получилось значительным. В этой статье сравним две версии и расскаж...

Реализация аудиоконференций в Telegram + Asterisk В предыдущей статье я описывал реализацию выбора пользователем места жительства при регистрации в моем telegram боте, который я создавал вдохновившись идеей «Телефонного эфира». В этой же статье я опишу интеграцию бота с Asterisk . Читать дальше →

Отладка микроконтроллеров ARM Cortex-M по UART Часть 2 В прошлой статье я рассказывал про прерывание DebugMon и регистры с ним связанные. В этой статье будем писать реализацию отладчика по UART. Читать дальше →

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

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

[Перевод] Дэн Абрамов о замыканиях в JavaScript Замыкания вызывают у программистов сложности из-за того, что это — «невидимая» конструкция. Когда вы используете объект, переменную или функцию, вы делаете это намеренно. Вы думаете: «Тут мне понадобится переменная» — и добавляете её в свой код. А вот замыкания — это уже...

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

JavaScript: что нас ждет в следующем году Доброго времени суток, друзья! Данная статья посвящена возможностям JavaScript, которые будут представлены в новой версии спецификации (ECMAScript 2021, ES12). Речь пойдет о следующем: String.prototype.replaceAll() Promise.any() WeakRefs Операторы логического присваив...

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

Power-line communication. Часть 1 — Основы передачи данных по линиям электропередач Не так давно передо мной встала нетривиальная задачка — собрать устройство, которое могло бы по линиям электропередач (0,4 кВ), в сетях обычных бытовых потребителей, передавать некоторую информацию, а точнее — показания электросчетчиков. Перед началом работы над создание...

[Перевод] MVC в Unity со Scriptable Objects. Часть 3 Завершение цикла статей от Cem Ugur Karacam о реализации MVC в Unity с помощью Scriptable Objects. Прочитать предыдущие части вы можете здесь и здесь. Читать дальше →

TS Total Sight. Средство сбора событий, анализа инцидентов и автоматизации реагирования на угрозы Добрый день, в прошлых статьях мы познакомились с работой ELK Stack. А теперь обсудим возможности, которые можно реализовать специалисту по ИБ в использовании данных систем. Какие логи можно и нужно завести в elasticsearch. Рассмотрим, какую статистику можно получить, наст...

API, ради которых наконец-то стоит обновиться с Java 8. Часть 1 На сегодняшний день Java 8 является самой популярной версией Java и ещё довольно долго будет ей оставаться. Однако с тех пор уже выпущено пять новых версий Java (9, 10, 11, 12, 13), и совсем скоро выйдет ещё одна, Java 14. В этих новых версиях появилось гигантское количество...

Этюд по реализации Row Level Secutity в PostgreSQL В качестве дополнения к Этюд по реализация бизнес-логики на уровне хранимых функций PostgreSQL и в основном для развернутого ответа на комментарий. Теоретическая часть отлично описана в документации Postgres Pro — Политики защиты строк. Ниже рассмотрена практическая реализ...

Добавляем поддержку Vendor-команд к USB3.0 устройству на базе FX3 В предыдущих статьях мы сделали достаточно интересную железку, состоящую из контроллера FX3 и ПЛИС Cyclone IV. Мы научились гонять через шину USB 3.0 потоки данных с достаточно высокой скоростью (я доказал, что поток 120 МБ/с из ULPI будет проходить через эту систему без иск...

По пути в Авалонию Здравствуй дорогой наш читатель. Это третья статья из серии переезда нашего ПО на кроссплатформенные рельсы. Она затронет визуальную часть продукта, а именно диалоговое окно. В рамках первой статьи упоминалось, что данное приложение вызывается через пункт ПКМ, в связи с чем ...

Как реализовать интеграцию с ЕСИА на Java без лишних проблем Долгое время основным способом идентификации граждан был обычный паспорт. Ситуация изменилась, когда в 2011 году по заказу Минкомсвязи была внедрена Единая система идентификации и аутентификации (ЕСИА), ― она позволила распознавать личность человека и получать о ней данные в...

[Из песочницы] Эффектное программирование. Часть 1: итераторы и генераторы Javascript на данный момент является самым популярным языком программирования по версиям многих площадок (например Github). Является ли при этом он самым продвинутым или самым любимым языком? В нём отсутствуют конструкции, которые для других языков являются неотъемлемыми час...

[Из песочницы] PCI Express в ПЛИС V-й серии Intel: основы интерфейса и особенности аппаратных ядер Введение Знакомый многим интерфейс PCI Express или PCIe был доступен разработчикам систем на ПЛИС уже тогда, когда он только начинал распространяться в цифровой технике. В это время существовало решение, в котором программное ядро подключалось ко внешней микросхеме физическо...

HONOR 20, 20 Pro и V20 получили глобальное обновление Magic UI 4.0 Серия смартфонов HONOR 20 и V20 получили глобальное стабильное обновление Magic UI 4.0. Ранее стабильное обновление уже было выпущено на эти устройства в Китае. Теперь глобальные варианты HONOR 20, HONOR 20 Pro и HONOR V20 получают глобальную стабильную версию Magic UI 4.0....

Современный код для выполнения HTTP запросов в Swift 5 с помощью Combine и применение их в SwiftUI. Часть 1 Выполнение HTTP запросов — это один из самых важных навыков, которые необходимо получить при разработке iOS приложений. В более ранних версиях Swift (до версии 5) вне зависимости от того, формировали ли вы эти запросы «с нуля» или с использование известного фреймворка Alam...

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

Fortinet Security Fabric на практике. Часть 4. Взаимная интеграция Доброго дня! В наших прошлых статьях мы рассказали про концепцию Fortinet Security Fabric, а также описали продукты FortiSwitch и FortiAP. Теперь пришло время рассмотреть процесс взаимной интеграции продуктов “фабрики безопасности” на практике, а также познакомиться с возмож...

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

История разработки The Light Remake. Часть 2 Приветствую, читатель! В первой части статьи, посвященной разработке The Light Remake в общих чертах был рассмотрен процесс переноса игры на новую версию Unity. Я немного рассказал об используемых шейдерах и эффектах, о том, какие решения были реализованы в работе со свето...

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

WhatsApp получает долгожданное обновление с тёмной темой Долгое ожидание собственного тёмного режима WhatsApp прошло. В последней бета-версии приложения разработчики наконец-то добавили в мессенджер собственную темную тему. Несколько разочаровывает тот факт, что первый намек на то, что пользователи могут получить темный режим What...

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

Пишем telegram бота на языке R (часть 4): Построение последовательного, логического диалога с ботом Если вы уже ознакомились с предыдущими тремя статьями из данной серии, то вы уже умеете писать полноценных telegram ботов с клавиатурой. В этой статье мы с вами научимся писать бота, который будет поддерживать последовательный диалог. Т.е. бот будет задавать вам вопросы, и ...

Что нужно знать об устройстве коллекций, основанных на хешировании Всем привет. На связи Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах посвященных архитектуре ПО. Помимо преподавания, как вы могли заметить, я занимаюсь написанием авторского материала для б...

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

Полная поддержка популярных реализаций Docker Registry в werf Все популярные реализации реестров для образов контейнеров поддерживают Docker Registry HTTP API и позволяют использовать одни и те же инструменты для работы с ними. Тем не менее, часть реализаций имеет свои особенности и ограничения, а значит — если вам нужно их поддержива...

Так выглядит MIUI 12 от Xiaomi. Качественные скриншоты новой оболочки На сайте XDA Developers опубликовали целую подборку новых скриншотов, которые позволяют нам оценить изменения в предстоящем пользовательском интерфейсе MIUI 12 от Xiaomi. В последнее время в Сети появляется все больше информации о грядущей фирменной оболочке MIUI 12 для...

[Перевод] Полигоны Another World: Atari ST Это третья статья из серии про портирование игры Another World. В ней пойдёт речь про хитрости при работе с Atari ST. Рекомендуется сначала прочитать предыдущие статьи. Зарождение Atari ST было, мягко говоря, неспокойным. Всё начинается как в сказке, а заканчивается войной и...

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

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

Опубликован релиз Sequoia 1.0, реализации OpenPGP на языке Rust Спустя три года после начала разработки опубликован релиз Sequoia 1.0. Это реализация OpenPGP на языке Rust, содержащая обширную библиотеку функций и инструментарий командной строки. Релиз опубликован после того, как разработчики закончили работу над низкоуровневым API — в ...

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

Стрелочка поворачивается: поговорим об обобщениях, или зачем программисту математика Привет, Хабр. Прошло довольно много времени с публикации предыдущей статьи об обобщённой реализации паттерна Has, где мы успешно победили скуку и однообразный код при написании инстансов соответствующего класса, заодно поигравшись с дженериками и семействами типов одновремен...

Как мы распилили монолит. Часть 3, Frame Manager без фреймов Привет. В прошлой статье я рассказал про Frame manager — оркестратор фронтовых приложений. Описанная реализация решает многие проблемы, но в ней есть недостатки. Из-за того, что приложения грузятся в iframe, появляются проблемы с версткой, некорректно работают плагины, клие...

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

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

Redux Toolkit как средство эффективной Redux-разработки В настоящее время разработка львиной доли веб-приложений, основанных на фреймворке React, ведется с использованием библиотеки Redux. Данная библиотека является самой популярной реализацией FLUX-архитектуры и, несмотря на ряд очевидных преимуществ, имеет весьма существенные ...

[Из песочницы] Создание Discord-бота на Python. Часть 1 Версии, которые стоят у автора Версия Python: 3.8.2 Версия discord.py: 1.3.3 Приветствую, хабровчане и другие пользователи интернета. Сегодня я начну цикл статей, посвящённых созданию Discord-бота с помощь...

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

[Из песочницы] Корутины в C++20 Введение Данная статья является переводом главы из книги Райнера Гримма Concurrency with Modern C++, которая является более доработанной и обширной версией статьи на его сайте. Так как весь перевод не умещается в рамках данной статьи, в зависимости от реакции на публикацию, ...

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

Как я html-парсер на php писал, и что из этого вышло. Заключительная часть Здравствуйте. Представляю вам заключительную главу цикла. В ней пойдет речь о реализации самого парсера, его модулей, вроде функции анализа, построения стека и dom дерева. Помимо этого поговорим и об обработке комментариев. Как оказалось, комментарии могут обрабатываться по...

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

Mein Linux На Хабре в последнее время появилась серия холиварных статей: Семь причин, почему Линукс Главная причина, почему не Linux (от автора предыдущей статьи) Главная причина, почему все-таки Linux В этих статьях и комментариях к ним много говорили о коммунизме, цельности системы, ...

BPF для самых маленьких, часть первая: extended BPF В начале была технология и называлась она BPF. Мы посмотрели на нее в предыдущей, ветхозаветной, статье этого цикла. В 2013 году усилиями Алексея Старовойтова (Alexei Starovoitov) и Даниэля Боркмана (Daniel Borkman) была разработана и включена в ядро Linux ее усовершенствова...

Nvidia будет использовать в GeForce GTX 1650 отбракованные ядра TU106 и TU116 В ближайшее время партнёры Nvidia выведут на рынок новые версии 3D-ускорителя GeForce GTX 1650, о чём стало известно благодаря разработчикам утилиты Aida64. В свежей бета-версии приложения реализована поддержка видеокарт GeForce GTX 1650 на...

[Перевод] Создание блога с помощью Nuxt Content (часть первая) От переводчика: Я собирался сделать собственную статью по Nuxt Content, но наткнулся на готовую статью, которая отлично раскрывает тему. Лучше у меня вряд ли получится, поэтому я решил перевести. Написал автору в твиттер и практически сразу получил согласие. Статья будет с ...

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

lsFusion 5, 6: больше асинхронности, агрегация / расширение / пользовательская настройка форм, новые представления После выпуска первой публичной (третьей) версии платформы мы получили огромное количество фидбэка, большая часть работы над которым нашла отражение в недавно вышедшей четвертой версии платформы. Впрочем, значительная часть этого фидбэка осталась “за бортом”, но не была заб...

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

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

Paragon открыла свой драйвер NTFS для Linux, предложив включить его в ядро Компания Paragon Software опубликовала набор патчей с полноценной реализаций файловой системы NTFS, открыв код драйвера под лицензией GPL. Драйвер поддерживает работу как в режиме чтения, так и в режиме записи. По словам разработчиков, эта реализация поддерживает все во...

Глобальный запуск MIUI 12 назначен на 19 мая На прошлой неделе на мероприятии в Китае компания Xiaomi анонсировала свою пользовательскую оболочку следующего поколения MIUI 12 вместе со смартфоном Mi 10 Youth Edition, а также выпустила обновление закрытой бета-версии стабильной сборки MIUI 12 для Китая, выход которой ож...

Xiaomi Mi 8 Lite и Xiaomi Mi Max 3 получили бета-версию MIUI 11 на ... Оболочка MIUI 11 была представлена в сентябре и до конца года компания планирует, что новая версия фирменной прошивки придет на большое количество устройств.   На данный момент стабильную сборку уже успели получить флагманы Xiaomi Mi MIX 3, Mi 8 и Mi 9, среднебюджетны...

[Из песочницы] Flutter. BlOC, Provider, async – архитектура «по полочкам» Вступление Когда пытаешься написать приложение, то первое с чем сталкиваешься – это как организовать архитектуру приложения. А когда еще при этом речь идет про Flutter, так голова совсем может пойти кругом от того, что выдает Гугл — Vanilla, Scoped Model, BLoC, MVP, MVC, MVV...

Создание браузерных 3d-игр с нуля на чистом html, css и js. Часть 2/2 В данной статье мы продолжим создавать трехмерную браузерную игру лабиринт на чистом html, css и javascript. В предыдущей части мы сделали простой 3-мерный мир, реализовали движение, управление, столкновения игрока со статическими объектами. В этой части мы будем добавлять г...

[Из песочницы] Как плохо настроенная БД позволила захватить целое облако с 25 тысячами хостов Привет, Хабр! Я не так давно в ИТ, но в последнее время увлёкся темой кибербезопасности. Особенно интересна профессия пентестера. Во время сёрфинга увидел классную статью «How a badly configured DB allowed us to own an entire cloud of over 25K hosts» от Security Shenanigans...

Вышел релиз OpenZFS 2.0, реализация ZFS для Linux и (теперь) для FreeBSD На случай, когда получаешь что-то давно обещанное и/или ожидаемое, есть поговорка «И полгода не прошло». В случае с OpenZFS 2.0 все чуть дольше: этот релиз мы ждали не полгода, а полтора. О том, что это за проект и в чем его положительные стороны, можно почитать в подробней...

Еще два смартфона Samsung допущены к тестированию One UI 3.0 Samsung открыл возможность владельцам Galaxy M31 и Galaxy A51 поучаствовать в тестировании One UI 3.0.     Galaxy A51 5G   Еще два смартфона Samsung Galaxy готовы получить доступ к обновлению до One UI 3.0. Galaxy M31 станет первым смартфоном среднего диапаз...

[Перевод] Современные архитектуры фронт-энда В статье "Contemporary Front-end Architectures" рассмотрены архитектуры фронт-энда с точки зрения потоков данных в исторической ретроспективе. Материал состоит из трех частей Теория и история Реализация Перспективы Читать дальше →

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

Новые экзамены по Azure За последние 3 месяца, Microsoft анонсировал много изменений в сертификации и экзаменах. Часть из них описаны в этой статье. В этой статье фокус выставлен не на совершенно новые экзамены, а на обновленные версии ранее существовавших: AZ-104 для администраторов, AZ-204 для ...

Прошивка для фотополимерного LCD 3D-принтера своими руками. Часть 2 Продолжение статьи о написании своей прошивки для фотополимерного LCD 3D-принтера. Первая часть лежит тут. В ней было описан первый этап — создание графического пользовательского интерфейса для дисплея с сенсорной панелью. В этой части продолжу описывать этапы своего проек...

Официальный список устройств Huawei, которые получат обновления EMUI 10.1 Последнее обновление системы EMUI от Huawei появилось у серии смартфонов Huawei P40 примерно в месяц назад. Эта версия EMUI 10.1 основана на Android 10, и поэтому ряд устройств Huawei уже обновили его (получили закрытое бета-обновление). Однако вчера на мероприятии по запуск...

Две альтернативы JDBC Примеры для двух неблокирующих библиотек доступа к SQL базам данных — Vert.X SQL и R2DBC. Примеры будут основаны на PostgreSQL и реактивных обертках Java. Начнем с главного: JDBC — это отличный стандарт. Служил и служит верой и правдой. Но новые веяния просят новых решений...

Внедрение Multicast VPN на Cisco IOS (часть 5 — знакомство с Data/Partitioned MDT) В предыдущих выпусках: Profile 0 Profile 1 Profile 3 Profile 11 Как мы узнали из прошлых записей, в опорной сети при реализации mVPN всегда присутствует конструкция Default MDT, к которой подключены все РЕ маршрутизаторы. В рамках данного MDT передаются служебные сообщен...

[Из песочницы] Desktop pet на C# WPF Desktop pet — пусть и бесполезное, но весьма забавное украшение рабочего стола. В данной статье показана, наверное, самая простая его реализация. Гифка под катом! Читать дальше →

Изучаем ELK. Часть I — Установка Elasticsearch Эта статья является первой в серии статей по стеку Elasticsearch, Logstash, Kibana (ELK). Цикл статей ориентирован на тех, кто только начинает знакомится со стеком ELK, и содержит минимально необходимый набор знаний, чтобы успешно запустить свой первый кластер ELK. В этой ...

[Из песочницы] Изучаем VoIP-движок Mediastreamer2. Часть 1 Материал статьи взят с моего дзен-канала. Введение Эта статья является началом серии статей о реалтайм обработке медиаданных с помощью движка Mediastreamer2. В ходе изложения будут задействованы минимальные навыки работы в терминале Linux и программирования на языке Си. Medi...

Разработка hexapod с нуля (часть 8) — улучшенная математика передвижения Всем привет! В результате перехода на удаленную работу у меня появилось больше свободного времени на разработку гексапода (+2 часа в день за счет экономии на дороге). Я наконец-то смог сделать универсальный алгоритм для построения траектории движения в реальном времени. Нов...

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

Делаем голову шинного USB-анализатора на базе комплекса Redd В прошлой паре статей мы рассмотрели пример «прошивки» для комплекса Redd, делающей его ПЛИСовую часть логическим анализатором общего применения. Дальше у меня было желание сделать следующий шаг и превратить его в шинный USB-анализатор. Дело в том, что фирменные анализаторы ...

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

Стало известно «сладкое» название Android 12, операционная система получит режим управления одной рукой Как сообщает XDA Developers, следующая версия операционной системы Android проходит под внутренним названием Snow Cone. В последние годы Google больше не даёт новым версиям Android официальные названия в честь различных сладостей и десертов, однако они продолжают исполь...

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

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

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

Студенты пишут Uart драйвер для STM32F411 Доброго здравия всем! Сегодня я хочу вам рассказать, как постепенно студенты учатся разрабатывать ПО для микроконтроллера на примере драйвера UART на STM32F411. Код и архитектуру с небольшими моими изменениями и доработками я попытаюсь привести здесь. Сразу отмечу, что все...

Работа не волк, часть 4. Опытный сотрудник: как не перегореть и не сдаться Итак, первый год работы прошёл, и вы стали дедом матёрым волком, который растёт вместе с компанией, сечёт в бизнес-процессах и довольно борзо спорит с руководством. Кажется, что может случиться? Но чем больше срок работы на одном месте, тем больше моральных и профессиональны...

[Перевод] Что покупать для глубокого обучения: личный опыт и советы использования GPU Перевод статьи Тима Деттмерса, кандидата наук из Вашингтонского университета, специалиста по глубокому обучению и обработке естественного языка Глубокое обучение (ГО) – область с повышенными запросами к вычислительным мощностям, поэтому ваш выбор GPU фундаментально определи...

Ещё один прежний флагман Xiaomi перешёл на Android 10 Компания Xiaomi начала распространять стабильную фирменную оболочку MIUI 11.0.1 для смартфонов Xiaomi Mi Mix 2S.  Этот флагман 2018 года обновился до стабильной китайской MIUI 11 ещё в октябре 2019 года, но тогда оболочка базировалась на прошлой версии операционно...

nanoCAD Конструкторский BIM с точки зрения САПР-администратора Введение Эта статья представляет тот необходимый минимум, который, по мнению автора, следует учитывать при администрировании ПО nanoCAD Конструкторский BIM (версия 2.0). В первую очередь подразумевается использование данного ПО в корпоративной среде. Материал также будет п...

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

[Из песочницы] Симуляция ПИД-регулятора температуры Поискал я статьи на данном ресурсе на тему ПИД-регуляторов. Много статей. И с объяснением принципов работы таких регуляторов. И с алгоритмами подбора параметров. И с реализацией на конкретных железках и программах. Не увидел одного — симуляции ПИД-регуляторов на моделях, с т...

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

Обновлённый компактный голосовой помощник Google Ассистент стал доступен широкому кругу пользователей В июле прошлого года Google начала тестирование фирменного голосового помощника Ассистент в новом, более компактном дизайне. Пользователи смартфона Pixel 4 первыми получили возможность испытать новинку, а теперь бета-версия приложения станет доступна широкому кругу пользоват...

Производственный календарь своими руками в Firebird Здравствуйте, меня зовут Денис, я явлюсь разработчиком информационных систем, пишу статьи и документацию по СУБД Firebird. В этой статье я хочу рассказать о реализации производственного календаря с использованием СУБД Firebird. На написание этой статьи меня натолкнули похож...

[Перевод] Нововведения CSS – Июль 2020 (Gap, Aspect ratio, Masonry, Subgrid) Приветствую. Представляю вашему вниманию перевод статьи «CSS News July 2020», опубликованной 7 июля 2020 года автором Rachel Andrew В последнее время скорость внедрения новых возможностей технологий веб-разработки существенно увеличилась по сравнению с тем, как это было ран...

Поднимаем свой полноценный игровой Minecraft сервер с мини-играми. Часть 2. Устанавливаем карту для лобби сервера После публикации первой части статьи по установке своего Minecraft сервера, ко мне обратился один читатель Хабра. В письме он написал, что по неосторожности показал мою статью своим детям и ему пришлось пообещать сделать все, как написано. Теперь я, как отец двух детей, пр...

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

Работа с базами данных глазами разработчика Когда вы разрабатываете новый функционал с использованием базы данных, цикл разработки обычно включает следующие этапы (но не ограничивается ими): Написание SQL миграции → написание кода → тестирование → релиз → мониторинг. В этой статье я хочу поделиться некоторыми практ...

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

[Перевод] Сервер Prometheus и TLS Prometheus теперь поддерживает TLS и базовую аутентификацию для HTTP эндпоинтов. Скрейпинг таргетов через HTTPS вместо HTTP поддерживается уже давно. Метрики можно собирать с поддержкой HTTPS, аутентификации по клиентским сертификатам и базовой аутентификации. В прошлом год...

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

Разбираемся в особенностях графической подсистемы микроконтроллеров Привет! В этой статье я бы хотел рассказать об особенностях реализации графического пользовательского интерфейса с виджетами на микроконтроллере и при этом иметь и привычный пользовательский интерфейс и приличный FPS. Внимание я хотел бы акцентировать не на какой-то конкрет...

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

Redmi Note 8T наконец-то получает стабильную версию MIUI 12 После месяцев ожидания Xiaomi приступила к рассылке обновления MIUI 12 для смартфонов серии Redmi Note 8 на базе чипсета Snapdragon 665, начиная с модели Redmi Note 8T. MIUI 12 для глобальной версии Redmi Note 8T уже поступает на устройства, а в ближайшее время должно появит...

Xiaomi объявила о сроках выхода стабильной MIUI 12.5 В Китае финальная сборка MIUI 12.5 выйдет до конца апреля и первыми ее получат флагманы В один день с премьерой Xiaomi Mi 11 компания представила новую версию фирменной оболочки — MIUI 12.5. Со сцены хвастались тем, что в новой прошивке меньше предустановленных приложе...

Xiaomi объявила о сроках выхода стабильной MIUI 12.5 В Китае финальная сборка MIUI 12.5 выйдет до конца апреля и первыми ее получат флагманы В один день с премьерой Xiaomi Mi 11 компания представила новую версию фирменной оболочки — MIUI 12.5. Со сцены хвастались тем, что в новой прошивке меньше предустановленных приложе...

Смотрите ка, Genius Обновили. Мини обзор на обновленную версию мини Artillery Всем доброго времени сутокИ конечно же Всех с новым годом!Я всех поздравляю с окончанием 2020. Честно говоря не хочется рассусоливать, год был тяжкий и хочу пожелать всем, что бы в этом году все стало на свои места, цели достигались и желания сбывались.Речь в этой статье пой...

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

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

Стабильная Android 10 пришла на Honor 20i, Honor 10 Lite и ещё четыре модели Huawei Компания Huawei начала распространять стабильную версию фирменной оболочки EMUI 10 на основе свежей версии операционной системы Android для нескольких моделей смартфонов Honor и Huawei.  По данным источника, уже не тестовая, а стабильная EMUI 10 доступна для смарт...

[Из песочницы] Антипаттерны работы с базами данных Привет, Хабр! Представляю вашему вниманию перевод статьи «Database: Anti-Patterns» автора Sergey Kozlov. Если вы храните данные, это критически важная часть вашего приложения. Можно легко и быстро задеплоить исправление бага на новом сайте знакомств, чтобы фермер Джо из сев...

Настройка WPA2 Enterprise c RADIUS В статье пойдёт речь о вопросах расширенной аутентификации в беспроводной сети через WPA2 Enterprise. Для данной системы используется RADIUS сервер, поэтому рассмотрим краткий пример упрощённой установки и настройки. Читать дальше →

В этом году Microsoft проведет специальные виртуальные мероприятия для игр, облака и Windows Согласно новому отчету The Verge, Microsoft планирует провести в ближайшие месяцы серию виртуальных мероприятий, которые будут посвящены играм, облаку и Windows. Первое мероприятие состоится позже на этой неделе и будет посвящено Microsoft 365. Сообщается, что после мероприя...

Прекращаем ставить диод 2 Несколько лет назад мною была опубликована статья под аналогичным заголовком. Если кратко, то в ней я рассказал о процессе разработки с нуля устройства, выполняющего функции «идеального диода» для предотвращения разряда буферного аккумулятора на обесточенный блок питания. У...

Ленивая реализация обхода дерева дочерних элементов класса QObject Введение В статье описана ленивая реализация обхода дерева на языке C++ с использованием сопрограмм и диапазонов на примере улучшения интерфейса работы с дочерними элементами класса QObject из фреймворка Qt. Подробно рассмотрено создание пользовательского представления для р...

[Из песочницы] Драйвер-фильтр операций в реестре. Практика Привет, Хабр! Когда передо мной встала задача написать свой драйвер, осуществляющий мониторинг операций в реестре, я, конечно же, полезла искать на просторах интернета хоть какую-то информацию по этому поводу. Но единственное, что вылезало по запросу «Драйвер-фильтр реестра...

Делаем модем: передаем цифровые данные по воздуху с помощью OFDM и GNU Radio Привет, Хабр. Данный текст можно считать продолжением статьи "Разбираем звук Dial-up модема", в которой разбирался метод установки связи между модемами. Сегодня мы пойдем дальше, и посмотрим на практике как передаются данные, для чего создадим простую реализацию м...

Tips & tricks в работе с Ceph в нагруженных проектах Используя Ceph как сетевое хранилище в разных по нагруженности проектах, мы можем столкнуться с различными задачами, которые с первого взгляда не кажутся простыми или тривиальными. Например: миграция данных из старого Ceph в новый с частичным использованием предыдущих с...

[Из песочницы] Ваш C# уже «функциональный», просто позвольте ему это Привет, Хабр! Представляю вашему вниманию перевод оригинальной статьи «Your C# is already functional, but only if you let it» автора Igal Tabachnik. Несколько дней назад я написал в Твиттере фрагмент кода C#, реализующий FizzBuzz, используя некоторые из новых «фичи» в C# 8....

Продвинутая система авторизации действий с ресурсами в Laravel. Часть 3. Чтение/запись атрибутов, собственные модели Введение Здравствуйте, дорогие Хабровчане. Сегодня я представляю вашему вниманию заключающую часть цикла статей о продвинутой авторизации действий с ресурсами в Laravel. Чтобы лучше понимать о чем пойдет речь в этой статье — необходимо прочесть первую и вторую части. На э...

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

[Перевод] Архитектурный шаблон MVI в Kotlin Multipaltform, часть 1 Около года назад я заинтересовался новой технологией Kotlin Multiplatform. Она позволяет писать общий код и компилировать его под разные платформы, имея при этом доступ к их API. С тех пор я активно экспериментирую в этой области и продвигаю этот инструмент в нашей компани...

Все ли вы знаете о useCallback Привет, Хабр!Начиная с версии ReactJS 16.8 в наш обиход вошли хуки.  Этот функционал вызвал много споров, и на это есть свои причины. В данной статье мы рассмотрим одно из самых популярных заблуждений использования хуков и заодно разберемся стоит ли писать компоненты на...

Windows 95 исполнилось 25 лет Да, %username%, именно четверть века назад мир увидела новая операционная система от Microsoft с кодовым именем Chicago. Это была многозадачная ОС, которая стала прорывом по сравнению с предыдущими версиями Windows. 24 августа 1995 года ОС поступила в продажу в США, а вот ...

[Из песочницы] Микросервисы — комбинаторный взрыв версий Привет, Хабр! Представляю вашему вниманию авторский перевод статьи Microservices – Combinatorial Explosion of Versions. Во времена когда мир IT постепенно переходит на микросервисы и инструменты вроде Kubernetes, все более заметной становится лишь одна проблема. Эта проблем...

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

Создаем веб-приложение на Haskell с использованием Reflex. Часть 1 Введение Всем привет! Меня зовут Никита, и мы в Typeable для разработки фронтенда для части проектов используем FRP-подход, а конкретно его реализацию на Haskell – веб-фреймоворк reflex. На русскоязычных ресурсах отсутствуют какие-либо руководства по данному фреймворку (да и...

Про новинки в .NET 5 и C# 9.0 Добрый день. В нашей компании .NET используется с самого его рождения. У нас в продуктиве работают решения, написанные на всех версиях фреймворка: от самой первой и до последней на сегодняшний день .NET Core 3.1. История .NET, за которой мы пристально следим всё это время,...

RESTinio-0.6.13: последний большой релиз RESTinio в 2020 и, вероятно, последний в ветке 0.6 RESTinio — это относительно небольшая C++14 библиотека для внедрения HTTP/WebSocket сервера в C++ приложения. Мы старались сделать RESTinio простой в использовании, с высокой степенью кастомизации, с приличной производительностью. И, вроде бы, пока что это получается. Ранее...

Когда и какие смартфоны Xiaomi, Redmi, Poco и Black Shark получат стабильную Android 11 Компания Xiaomi недавно начала тестировать операционную систему Android 11 на своих смартфонах. При этом стабильная версия фирменной оболочки MIUI 12 на данный момент основана на Android 10. Теперь стало известно, когда планируется выпуск стабильной версии MIUI 12 на An...

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

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

FOSS News №47 – дайджест новостей и других материалов о свободном и открытом ПО за 14-20 декабря 2020 года Всем привет! Продолжаем дайджесты новостей и других материалов о свободном и открытом ПО и немного о железе. Всё самое главное про пингвинов и не только, в России и мире. Релиз ядра Linux 5.10; презентация юридической базы данных Creative Commons Legal Database; обзор Sla...

Темная Вселенная. Часть 2 И вновь доброго времени суток! Данная статья является продолжением ранее опубликованной статьи о нашей «темной» Вселенной. В данной части мы продолжим рассмотрение различных интересных особенностей в космологии, над объяснением которых бьются множество ученых. В целом я пос...

SwiftUI по полочкам: Анимация. Часть 1 Недавно мне попалась свежая статья, в которой ребята пытались воспроизвести интересный концепт средствами SwiftUI. Вот что у них получилось: Я с интересом изучил их код, но испытал некоторое разочарование. Нет, не в том смысле, что они что-то сделали неправильно, вовсе...

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

[Перевод] Chaos Engineering: искусство умышленного разрушения. Часть 3 Прим. перев.: Это продолжение цикла статей от технологического евангелиста из AWS (Adrian Hornsby) про довольно новую ИТ-дисциплину — chaos engineering, — в рамках которой инженеры проводят эксперименты, призванные смягчить последствия сбоев в системах. Первый материал этого...

[Перевод] Rust 1.48.0: упрощение создания ссылок и псевдонимы поиска Команда Rust рада сообщить о выпуске новой версии, 1.48.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение. Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.48.0 вам дост...

Полнотекстовый поиск в Couchbase Server Дмитрий Калугин-Балашов большую часть своей жизни писал поиск: с 2011 года в компании Mail.ru был поиск по почте, затем был небольшой перерыв из-за работы в США, а сейчас это — работа над поиском в Couchbase. Одна из первых вещей, которую Дмитрий понял, работая в США — не вс...

Определено слабое место PlayStation 5. Это SSD Судя по данным, опубликованным независимым аналитиком игровой индустрии, выступающим в Twitter под ником Benji-Sales, у PlayStation 5 есть большая проблема, и она называется SSD. Дело не в производительности твердотельного накопителя, но в его объеме. Как известно, объ...

[Из песочницы] EventBus — Система событий для Unity В этой статье я расскажу вам о том, что такое система событий применительно к Unity. Изучим популярные методы и подробно разберем реализацию на интерфейсах, с которой я познакомился, работая в Owlcat Games. Читать дальше →

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

Время первых 6 августа 1991 года Тим Бернерс-Ли запустил первый в мире веб-сайт на первом в мире веб-сервере, доступном по адресу http://info.cern.ch/ Ресурс определял понятие «Всемирной паутины», содержал инструкции по установке веб-сервера, использования браузера и т.п. Этот сайт также...

[Перевод] Портирование Detroit: Become Human с Playstation 4 на PC Введение В этой серии постов мы расскажем о портировании игры Detroit: Become Human с PlayStation 4 на PC. Detroit: Become Human была выпущена на PlayStation 4 в мае 2018 года. Мы начали работу над версией для PC в июле 2018 года, а выпустили её в декабре 2019 года. Это адв...

MMORPG больше не в Telegram — Swift и Kotlin — Первый большой проект — Часть 1 Прошло полгода с выпуска пробной статьи про создание MMORPG в телеграме. Изменился мир, изменились и планы по игре.Почему больше не в TelegramПосле выпуска первой статьи, энтузиазма писать игру хватило еще на неделю. Прилетели проблемы по работе, поиски новой, да и вообще ле...

Конкурент MIUI и EMUI наконец готов. Вышла стабильная версия ColorOS 7 Компания Oppo наконец начала распространять стабильную версию фирменной оболочки ColorOS 7 для первой партии устройств. Напомним, Oppo официально представила свой пользовательский интерфейс ColorOS 7 еще в ноябре прошлого года, первые тестеры назвали прошивку достойным ...

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

Я есть root. Получаем стабильный shell Давайте представим, что мы получили бэк-коннект в результате эксплуатации RCE-уязвимости в условном PHP-приложении. Но едва ли это соединение можно назвать полноценным. Сегодня разберемся в том, как прокачать полученный доступ и сделать его более стабильным. Это третья част...

Когда появится EMUI 11 и что нового предложит Какие изменения стоит ждать от EMUI 11   На сегодняшний день Huawei единственная компания, которая устанавливает на свои устройства Android, но без сервисов Google. Но этот факт отнюдь не мешает ей выкатывать новые версии фирменной оболочки, основанные на свежей версии ...

Google Chrome и другие приложения в Windows 10 будут потреблять меньше оперативной памяти Google Chrome печально известен своим потреблением оперативной памяти, особенно в Windows. К счастью, это будет исправлено. Последнее обновление для Windows (20H1) принесло различные улучшения, например, приложения Win32, такие как Google Chrome, смогут уменьшить общее ...

Samsung начинает выпуск обновления One UI 3.1 для серии Galaxy Note 10 Samsung представила One UI 3.1 для серии Galaxy S21, а затем в течение нескольких недель развернула его на более ранних устройствах. За последние несколько дней было выпущено обновление One UI 3.1 для серий Galaxy S20, Galaxy Note 20, Galaxy Z Flip, Galaxy Z Flip 5G, Galaxy ...

Разбираем атаки на Kerberos с помощью Rubeus. Часть 2 Всем привет! Это вторая часть статьи про возможности инструмента проведения атак на протокол Kerberos — Rubeus. Первую можно прочитать тут. В этот раз мы рассмотрим, как с помощью данного инструмента возможно реализовать следующие атаки:
 — Overpass The Hash/Pass The Key...

Первый обзор «карманного» геймерского ноутбука, напоминающего Nintendo Switch. One GX1 пока основан только на Core i5-10210Y Об игровом «карманном» ноутбуке One GX1 мы уже писали не раз. Напомним, это очень маленький мобильный ПК с семидюймовым экраном Full HD, процессором Tiger Lake и возможностью подключения геймпадов по принципу Nintendo Switch. И сейчас в Сети появился первый...

SamsPcbGuide, часть 14: Технологии — Микроразварка и технология Chip-On-Board В этой самоизоляционной статье я расскажу о разварке проволочных микровыводов (англ. wire bonding). В контексте печатных плат речь пойдёт о технологии монтажа кристаллов на печатную плату (англ. chip-on-board, COB). Обязательно смотрите видео по ссылкам, микроразварка — это ...

[Перевод] Реализуем простые кооперативные потоки на C Привет, Хабр! Спасибо вам за внимание, проявленное к нашей предыдущей переводной публикации о REST. Сегодня мы предлагаем взглянуть на тему проектирования систем несколько с другой стороны и публикуем перевод статьи Стивена Бреннана, корифея Linux, который рассказывает о со...

[Перевод] Как масштабируется бизнес Docker для обслуживания миллионов разработчиков, часть 2: Исходящие данные Это вторая статья из серии статей, в ней будут рассмотрены ограничения при скачивании образов контейнеров. Читать дальше →

Стабильная версия MIUI 12.5 появится в конце февраля 2021 года Ранее в этом месяце Xiaomi подтвердила появление следующей версии своей фирменной оболочки MIUI, MIUI 12.5. Теперь у нас есть некоторые подробности о бета-версии промежуточной версии (x.5) и сроках выпуска стабильной версии. Согласно сообщению Telegram, рассылка стабильной в...

[Перевод] Разбираемся с системными вызовами в Linux с помощью strace Перевод статьи подготовлен специально для студентов базового и продвинутого курсов Administrator Linux. Системный вызов — это механизм взаимодействия пользовательских программ с ядром Linux, а strace — мощный инструмент, для их отслеживания. Для лучшего понимания работы о...

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

[Перевод] Кунг-фу стиля Linux: упрощение работы с awk Утилита awk — это нечто вроде швейцарского ножа для обработки текстовых файлов. Но некоторые ограничения awk порой доставляют неудобства тем, кто этой утилитой пользуется. Я, для того чтобы упростить работу с awk, создал несколько функций. Но сразу хочу сказать о том, что дл...

[Из песочницы] BPF для самых маленьких, часть нулевая: classic BPF Berkeley Packet Filters (BPF) — это технология ядра Linux, которая не сходит с первых полос англоязычных технических изданий вот уже несколько лет подряд. Конференции забиты докладами про использование и разработку BPF. David Miller, мантейнер сетевой подсистемы Linux, назыв...

Huawei HarmonyOS 2.0 для смартфонов получит поддержку приложений Android Huawei недавно представила HarmonyOS 2.0 для ряда продуктов, и теперь ожидается, что китайский гигант запустит то же самое для смартфонов начиная с сборки Developer Beta. Судя по сообщениям в сети, бета-версия HarmonyOS 2.0 для смартфонов уже была отправлена ​​некоторым раз...

О работе ПК на примере Windows 10 и клавиатуры ч.2 В этой части мы рассмотрим какой путь проходит информация о нажатой клавише от клавиатуры до CPU, будет очень много картинок и это не последняя часть. Я буду рассказывать об этом с точки зрения программиста который пишет в режиме пользователя — пользовательские програмы, web...

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

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

Как продуктовому дизайнеру оценить свою работу Photo by Brooke Cagle on Unsplash Вы читаете третью статью из серии «Дизайнер и метрики». В первой мы поразмышляли, нужны ли продуктовому дизайнеру метрики, а во второй посмотрели, какие вообще бывают метрики. Если вы ещё не читали эти статьи, то советую начать с них. В это...

Политики хранения Veeam B&R — распутываем бэкапные цепи вместе с техподдержкой Приветствую читателей нашего блога! Отчасти мы уже знакомы – мои англоязычные посты появлялись здесь в переводе моей дорогой коллеги polarowl. На этот раз я решил обратиться к русскоязычной аудитории напрямую. Для своего дебюта мне хотелось найти тему, интересную максималь...

Сравнение российской рэп сцены используя R и техники Text Mining. Эпизод 2 R. Text Mining. Rap. Episode 2 Данная статья является продолжением материала «Сравнение российской рэп сцены используя R и техники Text Mining. Noize Mc and Kasta vs Pharaoh and Morgenshtern» и сейчас я постараюсь детально проанализировать творчество Нойз Мс и Оксимирона. Од...

Потрясающие виджеты в iOS. Концепт художника показывает, как они могли бы выглядеть Как известно, в коде бета-версий iOS 14 не раз обнаруживали указание на то, что в системе могут появиться виджеты. Правда, были слухи, что это нововведение Apple всё же прибережёт до iOS 15. Как бы могли выглядеть эти виджеты? Мы не знаем, как именно их реализует Apple,...

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

Машина опорных векторов в 30 строчек В этой статье я расскажу как написать свою очень простую машину опорных векторов без scikit-learn или других библиотек с готовой реализацией всего в 30 строчек на Python. Если вам хотелось разобраться в алгоритме SMO, но он показался слишком сложным, то эта статья может быть...

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

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

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

Радиация: детекторы. Часть первая, газоразрядная Недавняя статья про опарафиненный детектор нейтронов побудила меня поднять старую тему и написать еще парочку статей на тему радиации. А именно -- про детекторы ионизирующих излучений.Начну я с газоразрядных детекторов. Собственно, в вышеуказанной статье газоразрядный детект...

Новый фронтенд Одноклассников: запуск React в Java. Часть II Мы продолжаем рассказ о том, как внутри Одноклассников с помощью GraalVM нам удалось подружить Java и JavaScript и начать миграцию в огромной системе с большим количеством legacy-кода. Во второй части статьи мы подробно расскажем о запуске, сборке и интеграции приложений...

Pentium — имя нарицательное. Часть 1 — Intel уходит от погони В прошлый раз вашему вниманию предстал легендарный, но недоступный большинству пользователей процессор Pentium® Pro. Теперь заглянем немного глу… Нет, не глубже в пучину времен, скорее — шире. Герой этой статьи — не менее легендарный, чрезвычайно популярный и знакомый, ...

Прошлогодний бестселлер Redmi Note 8T получил глобальную стабильную MIUI 11.0.5.0 Компания Xiaomi регулярно обновляет программное обеспечение своих устройств, а этот раз речь идёт о Redmi Note 8T, который получил глобальную стабильную версию MIUI 11.0.5.0. Так как это уже не бета-версия производитель рекомендует всем пользователям как можно скорее об...

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

[Перевод] Обратная связь по грантам памяти (memory grant feedback) в SQL Server 2019 Всем привет! В преддверии старта курса «MS SQL Server разработчик», подготовили для вас еще один интересный перевод. Если оптимизатор неправильно вычисляет необходимый объем памяти для выполнения запроса, то это будет либо пустая трата памяти, которую мог бы использовать ...

Архитектурный шаблон MVI в Kotlin Multiplatform. Часть 3: тестирование Эта статья является заключительной в серии о применении архитектурного шаблона MVI в Kotlin Multiplatform. В предыдущих двух частях (часть 1 и часть 2) мы вспомнили, что такое MVI, создали общий модуль Kittens для загрузки изображений котиков и интегрировали его в iOS- и A...

POCO X2 получит Android 11 В самом начале этого года Xiaomi удивила пользователей смартфоном Redmi K30 4G в Китае обновлением до операционной системы Android 11. Пару недель спустя индийская версия устройства POCO X2 получает последнее обновление ОС. Пользователи POCO X2 в Индии получат новое обновлен...

JavaScript библиотека Webix глазами новичка. Часть 4. Работа с данными. CRUD Я — начинающий front-end разработчик. Сейчас я учусь и стажируюсь в одной минской IT компании. Изучение основ web-ui проходит на примере JS библиотеки Webix и я хочу поделиться своим скромным опытом и сохранить его в виде небольшого учебного пособия по этой интересной UI б...

Учимся разворачивать микросервисы. Часть 3. Helm Привет, Хабр! Это третья часть в серии статей "Учимся разворачивать микросервисы", и сегодня речь пойдет о Helm 3. В прошлой части мы создали Kubernetes конфигурацию для учебного проекта из 2 микросервисов (бекенда и шлюза) и задеплоили все это в Google Kubernetes...

[Из песочницы] Windows 10 + Linux. Настройка GUI KDE Plasma для Ubuntu 20.04 в WSL2. Пошаговое руководство Введение Данная статья предназначена вниманию системных администраторов, которые подготавливают типовые рабочие места на компьютерах под управлением ОС Windows 10, в том числе для разработчиков ПО. Следует отметить, что существует определенная проблема, связанная с невозм...

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

Для Xiaomi Mi 10 выпускают супер-обновление Не так давно Xiaomi презентовала новые флагманы, а уже подоспело масштабное обновление для смартфонов семейства Mi 10. Напомним, в серию вошли модели Xiaomi Mi 10 и Mi 10 Pro. Это обновление полностью посвящено улучшению камеры. Что же новенького приготовили разработчики для...

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

Realme X50 Pro получил стабильное обновление Realme UI 2.0 на OC Android 11 Самый быстрорастущий в мире бренд смартфонов Realme выпустил Realme X50 Pro. Это флагманский смартфон был первым, который получил бета-версию Realme UI 2.0 на OC Android 11. Теперь компания официально выпустила стабильную версию обновления для Realme X50 Pro. Realme X50 Pro...

[Перевод] Коды Рида — Соломона в RAID 6 В интернете много статей о восстановлении информации в массиве RAID-6 и о том, как сделать собственную реализацию такого массива. Но большинство этих статей напичканы математическими формулами. Чтобы понять реальный алгоритм, приходится тратить очень много времени. В этой с...

Инфографика средствами Excel и PowerPoint. Часть 2 Не жди поездку в Гагры! Давид Маркович, сериал «Ликвидация» Всем привет! За время карантина все, наверное, не по разу прочитали о том, как плодотворно А.С. Пушкин провел свой период «заточения», названный впоследствии «Болдинской осенью», поэтому не буду объяснять, что имен...

Смартфоны Xiaomi Redmi 8, 8A и 7A начали получать обновление MIUI 12 Компания Xiaomi хорошо известна тем, что обновляет свои устройства в течение многих лет, даже более старые и менее дорогие модели.Несмотря на то, что в устройствах Xiaomi не установлена последняя версия Android, они часто получают большинство функций, которые предлагает обол...

Двухлетний Xiaomi Mi 8 Lite получил стабильную MIUI 12, но она оказалась слегка урезанной Компания Xiaomi начала распространять финальную стабильную версию прошивки MIUI 12 на базе операционной системы Android 10 для смартфона Xiaomi Mi 8 Lite, который вышел два года назад и стал более доступной версией флагмана того года Xiaomi Mi 8. Согласно устоявшейся ст...

Вебинар Solarwinds и что у них нового в последней версии 2020.2 Solarwinds — очень известен своими решениями по мониторингу и удаленному управлению (Dameware). В этой статье мы расскажем об обновлениях платформы мониторинга Orion Solarwinds версии 2020.2 (вышла в июне 2020 года) и приглашаем вас на вебинар. Расскажем о решаемых задачах п...

Изучаем ELK. Часть III — Безопасность В первой и второй частях данной серии была описана процедура установки и настройки кластера Elasticsearch, Kibana и Logstash, но никак не освящался вопрос безопасности.На борту стека ELK имеется широкий функционал, который позволяет организовать ролевую модель доступа, шифро...

[Перевод] Структуры данных и алгоритмы, которыми я пользовался, работая в технологических компаниях Пользуетесь ли вы структурами данных и алгоритмами в повседневной работе? Я обратил внимание на то, что всё больше и больше людей считает алгоритмы чем-то таким, чем, без особой связи с реальностью, технические компании, лишь по собственной прихоти, интересуются на собеседов...

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

EMUI 11 может стать последней версией перед переходом на Harmony OS Пользовательский интерфейс EMUI 11 от Huawei основан на Android 10, а не на Android 11. Это неудивительно, учитывая сложную ситуацию, сложившуюся у производителя в данный момент. Однако технический гигант работает над своей собственной операционной системой под названием Hon...

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

Использование Intel Processor Trace для трассировки кода System Management Mode Эта статья посвящена тестированию возможности использования технологии Intel Processor Trace (Intel PT) для записи трассы в System Management Mode (SMM) режиме. Работа была выполнена в рамках Summer Of Hack 2019. Автор работы: @sysenter_eip. Большинство использованных инст...

Всё о проекте «Спутниковый интернет Starlink». Часть 7. Пропускная способность сети Starlink и программа RDOF Часть 1 ‣ Часть2 ‣ Часть 3 ‣ Часть 4 ‣ Часть 5 ‣ Часть 6 Пропускная способность сети Starlink В первой заявке, поданной SpaceX в FCC (Федеральная Комиссия по связи), указывалось, что пропускная способность одного спутника составит 17-23 Гбит/с, и усредненно принималась ка...

Гибриды побеждают или холивары дорого Мотивом для написания данной статьи послужил тот факт, что на habr.com участилось появление материалов маркетингового характера про Apache Kafka. А также тот факт, что из статей складывается впечатление что пишут их немного далекие от реального использования люди — это конеч...

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

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

Потрясающие виджеты в iOS. Концепт художника показывает, как они могли бы выглядеть Как известно, в коде бета-версий iOS 14 не раз обнаруживали указание на то, что в системе могут появиться виджеты. Правда, были слухи, что это нововведение Apple всё же прибережёт до iOS 15. Как бы могли выглядеть эти виджеты? Мы не знаем, как именно их реализует Apple...

«Крупнейшее обновление в истории». Вышло новое ядро Linux 5.8 В минувшее воскресенье состоялось очередное обновление стабильной ветки ядра операционной системы Linux — до версии 5.8. Как сказал Линус Торвальдс, ядро Linux версии 5.8 — это «крупнейшее обновление в истории». Однако стоит сразу оговорить, что в отличие от предыдущих релиз...

Maltego Часть 5. Твое лицо тебя сдало Здравствуйте, дорогие друзья. Сегодня поговорим о более тяжелой артиллерии в рамках OSINT, а именно, о применении технологии распознавания лиц от Social Links для Maltego. Если не читали предыдущие статьи цикла о Maltego, то сейчас — самое время: Часть 1 — Что такое Malt...

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

Новейшая версия MIUI 12 для Xiaomi Mi 10 Pro добавляет очень интересный режим в камеру Компания Xiaomi в данный момент не только предлагает владельцам флагманского смартфона Xiaomi Mi 10 Pro опробовать бета-версию MIUI 12 на базе операционной системы Android 11, но и продолжает выпускать стабильные прошивки на базе Android 10. На этой неделе производитель...

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

Функциональное программирование на TypeScript: паттерн «класс типов» Предыдущие статьи цикла: Полиморфизм родов высших порядков В предыдущей статье я рассказал, как можно в TypeScript эмулировать полиморфизм родов высшего порядка. Давайте же теперь посмотрим, какие возможности это даёт функциональному программисту, и начнем мы с паттерна «...

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

[recovery mode] Базовые возможности LXD — системы контейнеров в Linux LXD — это системный менеджер контейнеров следующего поколения, так гласит источник. Он предлагает пользовательский интерфейс, похожий на виртуальные машины, но использующий вместо этого контейнеры Linux. Ядро LXD — это привилегированный демон (сервис запущенный с правами ro...

Sysmon теперь может записывать содержимое буфера обмена О релизе 12 версии Sysmon сообщили 17 сентября на странице Sysinternals. На самом деле в этот день вышли также новые версии Process Monitor и ProcDump. В этой статье я расскажу о ключевом и неоднозначном нововведении 12 версии Sysmon — типе событий с Event ID 24, в который л...

Небольшой гайд по выбору 3D-принтера для начинающих Поводом для написания данной статьи послужила статья “Я хотел купить недорогой 3D-принтер, но посмотрел YouTube и расхотел”, в конце которой автор просит ответить на несколько вопросов. Попробую ответить с точки зрения своего семилетнего опыта 3D-моделера и 3D-печатника. Для...

Обновление процесса CI/CD: teamcity Это вторая статья из цикла об обновлении CI/CD процессов. До этого момента осуществлялась подготовка к настройке новых средств, а именно: планирование, ежедневные митинги, решение разногласий, в общем, все без чего не получится грамотно построить рабочий процесс. И вот, все...

[Перевод] Корутины в C++20. Часть 2 Введение Данная статья является продолжением данной статьи. Бесконечный поток данных при помощи co_yield Код ниже реализует бесконечный поток данных. Корутина getNext использует co_yield для создания потока данных который начинается со start и выдает по запросу каждое новое ...

[Перевод] Фрактальное сжатие изображений Пару лет назад я написал очень простую реализацию фрактального сжатия изображений для студенческой работы и выложил код на github. К моему удивлению, репозиторий оказался довольно популярным, поэтому я решил обновить код и написать статью, объясняющую его и теорию. Читать ...

Путь к ООП: Взгляд инженера Дисклеймер Статья не предполагает какой-то принципиально новый взгляд на вещи, кроме как с точки зрения изучения этого материала с «абсолютного нуля». Материал основан на записях примерно 7-летней давности, когда мой путь в изучении ООП без IT-образования только начинался...

[Перевод] Хакаем WhatsApp, часть 2 – разбор Whatsapp VOIP протокола В это статье я хочу рассказать как я вскрыл несколько частей WhatsApp VoIP протокола с помощью джейлбрейкнутого iOS устройства и набора разных программ для анализа. В последнее время Whatsapp привлекает к себе большое внимание из за найденных уязвимостей и возможностей дл...

Перегрузка в C++. Часть II. Перегрузка операторов Продолжаем серию «C++, копаем в глубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Эта статья посвящена перегрузке операторов. Особое внимание уделено использованию перегруженных операторов в стандартной биб...

[Перевод] Полируем UI в Android: StateListAnimator Привет, Хабр! В преддверии старта курса «Android Developer. Professional» мы подготовили для вас перевод еще одного интересного материала. Большую часть времени разработки нашего Android-приложения мы тратим отнюдь не на работу над пользовательским интерфейсом — мы просто...

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

Samsung готовит стабильную версию One UI на Android 10 С окончанием бета-тестирования Galaxy S10 компания Samsung усердно работает над выпуском обновления для своего «убер-флагмана» Note 10. На прошлой неделе компания выпустила четвертую бета-версию для Galaxy Note 10.     Теперь же появилась информация об...

Запускаем Rust-приложение на мобильной ОС Аврора Всем привет! Меня зовут Шамиль, я ведущий инженер-разработчик в КРОК. Помимо всего прочего мы в компании занимаемся ещё и разработкой мобильных приложений для операционной системы Аврора, есть даже центр компетенций по ней.Для промышленной разработки мы, конечно же, пока исп...

Telegram на go, часть 2: бинарный протокол В предыдущей части были описаны подходы, примененные при написании парсера для схемы MTProto. Статья получилась чуть более общей, чем я рассчитывал, на этот раз я постараюсь рассказать больше про специфику Telegram. Клиент на Go продолжает развиваться, а мы вернемся в прошло...

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

Разработка hexapod с нуля (часть 10) — датчики касания Всем привет! Был сделан очередной шаг к реализации алгоритма адаптации к ландшафту. До текущего момента я не мог придумать оптимальное решение для определения состояния ноги: наступила она на землю или нет. И вот спустя пол года я случайно наткнулся на интересный датчик, при...

Состоялся релиз новой версии Proton 5.13 для запуска Windows-игр в Linux Компания Valve выпустила новую версию проекта Proton 5.13-1, который основан на Wine и предназначен для запуска в Linux-системах игр, созданных для платформы Windows и распространяемых через Steam. Новая версия Proton переведена на Wine 5.13. Разработчики перенесли 256 патче...

[Из песочницы] Настройка динамической маршрутизации (в частности BGP) поверх туннеля OpenVPN на Linux (и вероятно *BSD) Зачем и о чём эта статья? Если погуглить на тему «openvpn bgp», то можно найти несколько интересных и полезных с практической точки зрения статей (например раз или два). Но начиная решать задачку вынесенную в заголовок, я по многим причинам даже не удосужился погуглить. Идея...

Concurrent Mode в React: адаптируем веб-приложения под устройства и скорость интернета В этой статье я расскажу о конкурентном режиме в React. Разберёмся, что это: какие есть особенности, какие новые инструменты появились и как с их помощью оптимизировать работу веб-приложений, чтобы у пользователей всё летало. Конкурентный режим — новая фишка в React. Его зад...

[recovery mode] Пример реализации универсального REST сервиса (Avalanche — application framework for Java) Пример реализации универсального REST сервиса (Avalanche — application framework for Java) "Avalanche — application framework for Java" — реализация технологии стирающей различия между вызовами локального и удаленного кода. Отказоустойчивость, масштабируемость, мод...

Jmix — будущее CUBA Platform TL;DR Jmix — новое название и новый большой релиз CUBA Platform. На текущий момент Jmix находится в стадии предварительного релиза, мы планируем выпустить стабильную версию во втором квартале 2021 года. Основные изменения: В ядре платформы теперь будет Spring Boot Фреймвор...

Перегрузка в C++. Часть III. Перегрузка операторов new/delete Продолжаем серию «C++, копаем в глубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Эта статья посвящена перегрузке операторов new/delete. Это третья статья из серии, первая, посвященная перегрузке функций и ш...

[Перевод] Выпуск Rust 1.41.0: новые гарантии для Box<T> в FFI, улучшения в cargo install, ослабление ограничений для типажей Команда Rust рада сообщить о выпуске новой версии, 1.41.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение. Если вы установили предыдущую версию Rust средствами rustup, то для обновления до версии 1.41.0 вам дост...

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

Cucumber и BDD. Пишем UI-автотесты на iOS Привет, Хабр! В данной статье-мануале я хочу рассказать о базовых функциях такого фреймворка как Cucumber и его применение для создания ui авто тестов на мобильных iOS устройствах.Я ставлю перед собой задачу сделать описание максимально простым и понятным для большинства чит...

Как переиспользовать код с бандлами Symfony 5? Часть 7. Релизный цикл, установка и обновление Поговорим о том, как прекратить копипастить между проектами и вынести код в переиспользуемый подключаемый бандл Symfony 5. Серия статей, обобщающих мой опыт работы с бандлами, проведет на практике от создания минимального бандла и рефакторинга демо-приложения, до тестов и ре...

Xiaomi Mi Mix 3 получил глобальную стабильную MIUI 12 После обновления своих флагманов текущего поколения и смартфонов среднего класса до стабильной версии MIUI 12 Xiaomi продолжать выпускать обновления для более старых флагманских устройств. В начале месяца в пользователи Xiaomi Mi Mix 2S и Mi Mix 3 в Китае сообщили, что ...

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

[Перевод] Семь практических советов по массовой загрузке данных в PostgreSQL Вольный перевод статьи «7 Best Practice Tips for PostgreSQL Bulk Data Loading» Иногда возникает необходимость в несколько простых шагов загрузить в БД PostgreSQL большой объём данных. Данная практика обычно называется массовым импортом, когда в качестве источника данных служ...

Загрузка и обработка изображений в .NET Core В этой статье я хочу рассказать о своём опыте реализации механизма загрузки изображений в .NET Core приложении с последующим их ресайзом и сохранением в файловой системе. Для обработки изображений я использовал кроссплатформенную библиотеку ImageSharp от Six Labors. Существу...

Snort или Suricata. Часть 3: защищаем офисную сеть В предыдущей статье мы рассказали, как запустить стабильную версию Suricata в Ubuntu 18.04 LTS. Настроить IDS на одном узле и подключить бесплатные наборы правил довольно несложно. Сегодня мы разберемся, как с помощью установленной на виртуальном сервере Suricata защитить ко...

[Перевод] Учебный проект на Python: интерфейс в 40 строк кода (часть 2) Демонстрация проекта Python с пользовательским интерфейсом никогда не была такой простой. С помощью Streamlit Framework вы можете создавать браузерный пользовательский интерфейс, используя только код Python. В этой статье мы будем создавать пользовательский интерфейс для п...

[Перевод] Разработка PWA с поддержкой распознавания лица и голоса Этот материал посвящён продвинутым возможностям PWA (Progressive Web Application, прогрессивное веб-приложение), основанным на некоторых современных API. А именно, здесь мы поговорим о разработке веб-проекта, поддерживающего распознавание лица и голоса. Тем, что раньше было ...

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

JIRA: правила своевременного приготовления вкусного ПО. TLDR 2: управление требованиями Ранее в статье «JIRA: правила своевременного приготовления вкусного ПО. TLDR 1: границы возможностей» была  предпринята попытка унификации общих требований по применению JIRA в случае управления несколькими проектами по разработке заказного программного обеспечения в одном и...

Недорогой Xiaomi Mi 8 Lite и огромный Xiaomi Mi Max 3 получили удивительное обновление Android 10 В отличие от оболочки EMUI 10, которая распространяется для смартфонов Huawei и Honor, новая MIUI 11 для смартфонов Xiaomi и Redmi совсем необязательно основана на свежей версии операционной системы Android 10.  Так было и со смартфонами Xiaomi Mi 8 Lite и Mi Max ...

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

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

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

[Из песочницы] О проблемах транслятора Python и переосмысление языка — Сколько нужно архитекторов, чтобы реализовать язык программирования? — Сто. Один будет писать реализацию, а 99 — говорить, что могут сделать лучше. В этой статье я хочу затронуть не столько сам язык, сколько детали реализации CPython и его стандартной библиотеки, которые г...

Как выбирать акции биотеха, глядя на механизмы старения В прошлом году мы опубликовали две статьи, в которых пытались предсказать будущее. Мы выбрали десяток биотехнологических компаний, технологии которых могут здорово пригодиться в борьбе с возраст-зависимыми заболеваниями, а может даже и со старением как таковым — кто знает? ...

[Перевод] Что принёс нам Pandas 1.0 9 января состоялся релиз Pandas 1.0.0rc. Предыдущая версия библиотеки — 0.25. Первый мажорный релиз содержит множество замечательных нововведений, в том числе улучшенное автоматическое суммирование датафреймов, больше форматов вывода, новые типы данных и даже новый сайт док...

C2x: будущий стандарт C Я ловлю в далёком отголоске, Что случится на моём веку. («Гамлет», Борис Пастернак)Признаться, пишу на чистом C я не так уж и часто и за развитием языка уже давно не слежу. Но тут произошло два неожиданных события: С вернул себе звание популярнейшего языка программирования ...

Google уберёт из Chrome 89 поддержку некоторых старых процессоров В документе поддержки браузера Chrome компания Google сообщила, что скоро он лишится поддержки некоторых действительно устаревших процессоров. Сообщается, что с версии 89 веб-обозреватель лишится совместимости с чипами, не поддерживающими инструкции SSE3. Стоит отметить, что...

Per aspera ad astra, или как я строил ракету. Часть 2. Собираем альтиметр на STM32 и BMP280 Всем привет!  В предыдущей части я остановился на том, что мои ракеты удачно взлетели и приземлились, а на одной даже был установлен альтиметр. В этой статье я и расскажу о том как сделать простой высотомер на основе STM32 Nucleo L031K6 и датчика давления BMP 280 , кот...

Однажды на пентесте, или Как все сломать при помощи уролога и Роскомнадзора Эта статья написана по мотивам очень удачного пентеста, который пару лет назад провели специалисты Group-IB: случилась история, претендующая на экранизацию в Болливуде. Сейчас, наверное, последует реакция читателя: «О, очередная пиар-статья, опять эти рисуются, какие они х...

Авторам! [именно так: в дательном падеже и с восклицанием] Хабр создали Авторы. Да, придумали, написали код и профинансировали его другие люди, но Хабр стал Хабром только благодаря статьям Авторов. Именно за Хабра-знанием Авторов пользователи приходили и приходят на ресурс. Это Авторы днями вычитывают свой текст, чтобы грамотнее по...

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

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

АДСМ3. IPAM/DCIM-системы В предыдущих сериях АДСМ мы выработали фреймворк автоматизации, разобрались с тем, зачем появилась виртуализация и как она работает. В последней части мы выбрали и обосновали дизайн сети, роли устройств, производителей, определились с LLD (адресацией, маршрутизацией, номерам...

Консоли против ПК. Бесконечная война? Приветствую вас, хабровчане! Вот и пятница подкралась незаметно. Сегодня пойдёт речь о давней и непрекращающейся войне ПКшников с консольщиками. Этому противостоянию нет равных. Битвы внутри консольного рынка не идут ни в какое сравнение с баталиями ПК vs консоли. Так же, ...

Реализация строкового типа в CPython Продолжу неспешный разбор реализации базовых типов в CPython, ранее были рассмотрены словари и целые числа. Тем, кто думает, что в их реализации не может быть ничего интересного и хитрого, рекомендуется приобщиться к данным статьям. Те, же, кто уже их прочёл, знают, что CPyt...

[Из песочницы] Тестирование JavaScript кода с Jest для чайников. Часть 1 Здравствуй, Хабр! Данное руководство является первой частью в запланированном цикле статей про такой замечательный фреймворк для тестирования как Jest. Материал будет полезен новичкам и тем, кто только знакомится с тестированием, и хотел бы изучить этот фреймворк. В первой ч...

Руководство по Node.js для начинающих. Часть 3 Доброго времени суток, друзья! Продолжаю публиковать перевод этого руководства по Node.js. Другие части: Часть 1 Часть 2 Часть 3 Получение данных, введенных пользователем, в Node.js Как сделать Node.js-программу интерактивной? Для этого в 7 версии Node.js представлен м...

[Из песочницы] Выход стабильной версии Python 3.9.0 Сегодня, 05.10.2020 ожидается выход стабильной версии Python 3.9.0. Новая версия будет получать обновления с исправлениями примерно каждые 2 месяца в течение примерно 18 месяцев. Через некоторое время после выпуска финальной версии 3.10.0 будет выпущено девятое и последнее о...

[Перевод] Эмуляция компьютера: интерпретатор CHIP-8 и формирование изображений Недавно мы опубликовали перевод первого материала из серии статей, посвящённой эмуляции компьютера. Автор этих статей подробно рассказывает о написании интерпретатора CHIP-8 на C++. В той публикации мы устроили опрос о целесообразности перевода продолжения цикла. Почти 94% т...

Руководство по Node.js для начинающих. Часть 4 Доброго времени суток, друзья! Продолжаю публиковать перевод этого руководства по Node.js. Другие части: Часть 1 Часть 2 Часть 3 Часть 4 Файл package-lock.json В пятой версии Node.js был представлен файл package-lock.json. Что это такое? Для чего он нужен, если есть ...

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

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

Майнкрафт для геологов: 3D-рендеринг миллиарда ячеек на встроенной видеокарте (часть 1) В одной из прошлых статей с подозрительно похожим заголовком мы показали, как построить модель месторождения и посчитать свойства пласта глубоко под землёй, используя крохи информации о породе, полученной со скважин.В этой статье мы расскажем, как отобразить модель месторожд...

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

Immutable Trie: найди то, не знаю что, но быстро, и не мусори Про префиксное дерево (Trie) написано немало, в том числе и на Хабре. Вот пример, как оно может выглядеть: И даже реализаций в коде, в том числе на JavaScript, для него существует немало — от «каноничной» by John Resig и разных оптимизированных версий до серии модулей в NP...

Android 10 пришла на Xiaomi Mi 8 для пользователей по всему миру Компания Xiaomi начала распространять стабильную версию фирменной оболочки MIUI 11 на основе свежей версии операционной системы Android 10 для смартфонов Xiaomi Mi 8.  Речь идёт о международной прошивке, китайская начала обновляться немного раньше. Смартфон Xiaomi...

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

Wulfric Ransomware – шифровальщик, которого нет Порой так хочется заглянуть какому-нибудь вирусописателю в глаза и спросить: зачем и почему? С ответом на вопрос «как» мы справимся сами, а вот узнать, чем думал руководствовался тот или иной создатель вредоносного ПО, было бы очень интересно. Тем более, когда нам попадаются...

[Перевод] Заметки о Unix: С-функция main() — одно из мест, где видны различия между API пользовательского пространства и ядра Unix В современных Unix-дистрибутивах часто проводят формальную границу между API, предоставляемыми пользовательскому пространству ядром, и Unix API, которые предоставляет программам «стандартная библиотека», под которой подразумевается стандартная библиотека C. Кое-кого, включая...

USB4: все тот же USB? В конце 2020 года ожидается выход устройств с поддержкой интерфейсов нового поколения USB4/Thunderbolt 4. Данные интерфейсы похожи, однако имеют ряд принципиальных отличий. Среди таких отличий можно выделить наиболее значимое: спецификации на USB4 общедоступные и любой жела...

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

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

[Из песочницы] Разработка бренда в среде lean startup. Часть 1 Очень часто владельцы малого бизнеса или основатели стартапов сталкиваются с проблемой разработки бренда своей компании и отстройки от конкурентов в условиях ограниченных ресурсов. Особенно актуально это сейчас, когда в мире бушует пандемия Covid-19. Запустив несколько ста...

Работаем с Cutter — основы реверса. Решение задач на реверсинг с r0от-мi. Часть 3 В данной статье разберемся с декомпиляцией ELF файлов в Cutter на примере легеньких задач. Прошлые части введения в реверс: Часть 1: C, C++ и DotNet decompile — основы реверса Часть 2: Реверсим MIPS и Golang — основы реверса Организационная информ...

RBK.money выпустила первый в мире open-source платежный процессинг — творим будущее вместе Привет! Если вы читали наши предыдущие посты (читали же?), то точно помните, что мы в RBK.money очень сильно за опенсорс. Настолько, что выложили в открытый доступ наш антифрод в виде открытых исходников под лицензией Apache 2.0. Как вы понимаете, нам понравилось. Одного а...

Продвинутая Helm-шаблонизация: выжимаем максимум Стандартной Helm-библиотеки и привычных подходов к написанию Helm-чартов обычно хватает для автоматизации несложных приложений. Но когда количество и сложность Helm-чартов растут, то минималистичных Go-шаблонов и неоднозначной стандартной Helm-библиотеки быстро перестаёт х...

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

[Из песочницы] Создаем EXE Самоизоляция это отличное время приступить к тому, что требует много времени и сил. Поэтому я решил заняться тем, чем всегда хотел — написать свой компилятор. Сейчас он способен собрать Hello World, но в этой статье я хочу рассказать не про парсинг и внутреннее устройство ...

[Из песочницы] Сервисно-ориентированный state management c lamp-luwak Благодаря тому, что React предоставляет удивительные возможности по работе с отображением, можно сосредоточиться только на организации логики приложения и семантике кода, описывающего работу с данными. Т.е. выбирая state management библиотеку, происходит выбор стилистики буд...

Погружение в Глубину: Как реализовать настоящую свободу выбора в цифровом мире В статье рассматривается идея реализации свободы выбора, уходе от линейности, механизмах сознания, психики, векторах вероятностей, квантовых смещениях… А самое главное — о том, как всё это можно применить в действительности, скоро и даже уже сейчас! Читать дальше →

Политики хранения Veeam B&R, — бэкапы, цепочки и магнитные ленты В предыдущей части мы разобрали, как работает политика хранения для заданий первоначального бэкапа и создания его архивной копии. В этой части мы продолжим начатое и рассмотрим хранение на магнитных лентах. Ретеншен магнитных лент может быть довольно сложен для понимания, п...

Смартфон Xiaomi Mi 8 обновили до Android 10 Компания Xiaomi выпустила финальную стабильную версию оболочки MIUI 12 на основе Android 10 для позапрошлогоднего флагмана Xiaomi Mi 8. Пока обновление доступно только в Китае, но загрузившие прошивку пользователи сообщают о стабильной работе без ошибок, а потому выхода глоб...

Samsung обновил свои бюджетные Galaxy M20 и M30 до Android 10 Samsung известны своей «забывчивостью», если дело касается бюджетных решений компаний. Многие смартфоны либо не получают должных обновлений, либо они приходит с очень заметным опозданием. Однако что-то поменялось в привычном ходе событий, и компания решила обнови...

Samsung обновил свои бюджетные Galaxy M20 и M30 до Android 10 Samsung известны своей «забывчивостью», если дело касается бюджетных решений компаний. Многие смартфоны либо не получают должных обновлений, либо они приходит с очень заметным опозданием. Однако что-то поменялось в привычном ходе событий, и компания решила обнови...

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

[Перевод] Android Bluetooth Low Energy (BLE) – готовим правильно, часть #3 (read/write) Часть #1 (scanning)Часть #2 (connecting/disconnecting)Часть #3 (read/write), вы здесьВ предыдущей статье мы подробно поговорили о подключении/отключении BLE устройств. Эта статья о чтении и записи характеристик, а также о включении-выключен...

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

Nuxt.js app от UI-кита до деплоя. Часть 2: Темная тема Привет, Хабр! Публикуем вторую часть серии статей о создании современного блога на Nuxt.js. Сегодня реализуем темную тему в приложении, которое мы написали вместе с вами в первой части. Обратите внимание, что код каждой части можно найти в собственной ветке на Github, а в ...

Премии и конкурсы для инновационных проектов. Опыт мировых вендоров Хорошо, когда у компании есть ресурсы для того, чтобы продвигать инновационные решения на рынке, широко рассказывать о своих успехах в реализации инновационных ИТ-проектов. Но на практике далеко не всегда бывает так. Часто признание получить очень нелегко. Так случилось, что...

В Android 11 может появиться темная тема по расписанию Как известно, в Android 10 разработчики предусмотрели темную тему оформления всей системы, но при этом они не предложили активацию и отключение темного режима в определенное время. Другими словами, нет возможности задать расписание автоматического переключения Dark Mode. &nb...

[Из песочницы] Изобретаем велосипед или пишем персептрон на С++. Часть 1 и 2 Изобретаем велосипед или пишем персептрон на C++. Часть 1 Напишем простую библиотеку для реализации персептрона на C++ Читать дальше →

[Из песочницы] Микросервисы или модульные системы? Как заказчику выбрать подход к IT-архитектуре продукта Микросервисная и модульная системы — это типы архитектуры IT-решений. При работе с модулями мы дорабатываем коробочную версию существующего IT-продукта. Под коробочной версией имеем в виду монолит, готовую систему с ядром, которая поставляется всем заказчикам одинаково, «ка...

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

Microsoft подтверждает ошибку сертификата в Windows 10 Microsoft недавно признала новую ошибку в Windows 10, и компания заявляет, что единственное, что можно сделать, – это просто вернуться к предыдущей версии операционной системы. В частности, софтверный гигант из Редмонда заявляет, что сертификаты могут отсутствовать после обн...

Насколько точной может быть IP-геолокация? Технология IP-геолокации существует уже давно. Это единственный ненавязчивый инструмент, который поставщик услуг может использовать для оценки географического положения онлайн-посетителей.IP-геолокация зарекомендовала себя как главный механизм для предоставления услуг локали...

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

Полный набор gRPC, RESTful JSON API и Swagger из одного .proto файла. От введения до нюансов и тонкостей grpc-gateway В этой статье я опишу процесс создания сервера с gRPC и RESTful JSON API одновременно и Swagger документацию к нему. Эта статья — продолжение разбора различных способов реализаций API-сервера на Golang с автогенерацией кода и документации. Там я обещал более подробно остано...

«Суперобои» для российских Xiaomi Mi 10. Флагман, наконец, получил стабильную MIUI 12 Компания Xiaomi начала распространять стабильную версию фирменной оболочки MIUI 12 для российских пользователей флагманских смартфонов Xiaomi Mi 10.  Прошивка с номером V12.0.1.0.QJBRUXM носит статус Beta Stable. Cоответственно, она доступна «по воздуху&raqu...

5. Check Point SandBlast Agent Management Platform. Logs, Reports & Forensics. Threat Hunting Добро пожаловать на пятую статью цикла о решении Check Point SandBlast Agent Management Platform. С предыдущими статьями можно ознакомиться, перейдя по соответствующей ссылке: первая, вторая, третья, четвёртая. Сегодня мы рассмотрим возможности мониторинга в Management Pla...

[Перевод] Напишем и поймем Decision Tree на Python с нуля! Часть 5. Информационная энтропия Данная статья — пятая в серии. Ссылки на предыдущие статьи: первая, вторая, третья, четвертая 5.1 Информационная энтропия (Средний объем информации) При создании дерева решений из данных алгоритм ID3 использует индекс, называемый информационной энтропией, чтобы определить, ...

ITIL 4. Вчера, сегодня, завтра Декабрь. Скоро Новый год. Время подводить итоги. Одним из самых значимых событий в мире ITSM в этом году, на мой взгляд, является завершение публикации книг и практик новой версии ITIL® 4. С точки зрения обучения эта часть картины тоже является завершённой. Началась эта исто...

Новые видеокарты AMD Radeon будут основаны на лучшей версии архитектуры RDNA2, чем та, которая используется в PlayStation 5 и Xbox Series X Когда Microsoft и Sony рассказывали о своих грядущих игровых приставках, обе компании говорили, что графические процессоры их консолей будут основаны на архитектуре AMD RDNA2. При этом обе компании упоминали, что это будет «кастомная» версия RDNA2, то есть и...

Нас Django вкус волнует и манит Прошло уже несколько недель, как официально вышла 3 версия Django. Я работал с этой версией ещё до публикации официального релиза и, к сожалению, заметил, что развитие Django сильно замедлилось. Версия 1.3 от 1.7 отличается в разы, а вот 3 версия содержит косметические изм...

40 ГБ памяти и TDP 250 Вт. Nvidia A100 PCIe — первая графическая карта компании с PCIe 4.0 В мае компания Nvidia представила графический ускоритель A100, который ранее назывался бы Tesla A100, но компания решила избавляться от бренда Tesla, чтобы не было путаницы с известным американским автогигантом. Nvidia A100 основана на монструозном GPU GA100, состоящем ...

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

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

Huawei пообещала долгожданную Android 10 для старых флагманов уже в марте Компания Huawei прояснила судьбу обновления до свежей версии операционной системы Android для смартфонов серии Huawei Mate 10.  В ответ на вопрос пользователя в социальной сети Twitter, немецкое подразделение Huawei Mobile сообщило, что смартфоны Mate 10 начнут по...

4 угла хорошо, а 6 лучше: гексагональные шахматы в консоли и с ботом Привет! Мы учимся на первом курсе бакалавриата «Прикладная математика и информатика» в Питерской Вышке. Во время работы над семестровым командным проектом по С++ мы решили написать компьютерную версию Интеллектора с ботом — шахматную игру на гексагональной доске с особыми ф...

[Из песочницы] Сохраните в закладках эту статью, если вы новичок в Python (особенно если изучаете Python сами) Привет, Хабр! Представляю вашему вниманию перевод статьи "Bookmark this if you are new to Python (especially if you self-learn Python)" в двух частях (1, 2) c простыми, но полезными советами и трюками в Python. Если из-за скучной карантинной жизни вы решили погру...

Обзор k9s — продвинутого терминального интерфейса для Kubernetes K9s предоставляет пользовательский интерфейс терминала для взаимодействия с кластерами Kubernetes. Цель этого Open Source-проекта — облегчить удобную навигацию по приложениям в K8s, наблюдение за ними и управление ими. K9s постоянно следит за изменениями в Kubernetes и пре...

Как переиспользовать код с бандлами Symfony 5? Часть 6. Тестирование Поговорим о том, как прекратить копипастить между проектами и вынести код в переиспользуемый подключаемый бандл Symfony 5. Серия статей, обобщающих мой опыт работы с бандлами, проведет на практике от создания минимального бандла и рефакторинга демо-приложения, до тестов и ре...

Асинхронное взаимодействие. Брокеры сообщений. Apache Kafka Данная публикация предназначена для тех, кто интересуется устройством распределенных систем, брокерами сообщений и Apache Kafka. Здесь вы не найдете эксклюзивного материала или лайфхаков, задача этой статьи – заложить фундамент и рассказать о внутреннем устройстве упомянутог...

MIUI 12 для твоего Xiaomi! Первый взгляд на новый интерфейс Xiaomi представила смартфон Mi 10 Youth Edition и новую версию фирменного интерфейса MIUI. Большую часть своей презентации компания посвятила именно анонсу MIUI 12, которую она называет одной из красивых и сбалансированных оболочек Android. Что нового и интересного предложил...

TelegramBot инструкция по созданию базового функционала для бота. (Часть 1) Не так давно я предложил вам воспользоваться моим ботом для телеграмма. Telegram Bot — помощник в планировании мероприятий Получив много вопросов в личку, я понял, что вопрос создания ботов для Телеграм довольно популярен. У меня спрашивали исходный код бота, просили по...

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

[Из песочницы] 3D картинка на питоне с (почти) нормальной производительностью Можно считать эту статью ответом на вот эту, где речь идет о написании подобной вещи на C++, с прицелом на новичков, то есть с упором на простой читаемый код вместо высокой производительности. После прочтения статьи у меня возникла идея повторить написанную автором программ...

Оживляем гексапода. Часть первая В прошлой статье мы поделились опытом создания гексапода с использованием технологии 3D печати. Теперь речь пойдет о программной составляющей, которая позволила его оживить. Первоначально планировалось изложить всю информацию в одной статье, но в процессе написания стало по...

[Из песочницы] Удав укрощает Graal VM В мире Java за последнее время произошло много интересных событий. Одним из таких событий стал выход первой production ready версии Graal VM. Лично у меня Graal давно вызывает нескрываемый интерес и я пристально слежу за докладами и последними новостями в этой области. Одно...

AdDuplex: May 2020 Update стала самой популярной версией Windows 10 Компания AdDuplex опубликовала ежемесячный статистический отчёт об использовании различных версий Windows 10. За октябрь доля Windows 10 May 2020 Update (версия 2004) выросла на 4%, достигнув отметки в 37,7%. Таким образом, эта версия системы стала самой популярной на рынке...

[Из песочницы] Взаимодействие с NIDD через SCEF с использованием утилиты Postman. Краткий экскурс в SCEF и его возможности Данная статья позволит тем, кто еще только начинает свою разработку или уже применяет технологию NB-IoT, составить представление о том, как можно удаленно взаимодействовать с NB-IoT устройством. Краткий обзор NB-IoT легко наступает на пятки 2G и зарекомендовал себя как эн...

TDD для микроконтроллеров. Часть 3: Запуск на железе TDD для микроконтроллеров. Часть 1: Первый полет TDD для микроконтроллеров. Часть 2: Как шпионы избавляют от зависимостей TDD для микроконтроллеров. Часть 3: Запуск на железе В первой части нашего цикла статей мы начали освещать тему эффективности применения методологии TDD...

Опыт сопряжения Java, JavaScript, Ruby и Python в одном проекте посредством GraalVM В прошлом месяце вышла стабильная LTS-версия многоязычной среды выполнения GraalVM 20.3.0 от корпорации Oracle и мне захотелось испробовать её для решения какой-нибудь интересной практической задачи. Для тех кто не в курсе, приведу краткое описание этой новой платформы. Graa...

Повторяем когортный анализ, выполненный в Power BI, силами Python Добрый день уважаемые читатели! Поводом для написания данной публикации послужил вебинар, который я посмотрел на Youtube. Он был посвящен когортному анализу продаж. Автор использовал для работы с данными платформу Power BI Desktop. Ссылку на указанное видео приводить не буду...

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

Как вывести не особо мощный Samsung Galaxy A51 на уровень Pocophone F1? Дать ему новейшую платформу Exynos 980 Смартфон Samsung Galaxy A51 получился во многом лучше предшественника, но не по части платформы. В основе этой модели лежит SoC Exynos 9611, которая, судя по всему, ничем не отличается от Exynos 9610 в основе Galaxy A50. Но ранее мы уже слышали о том, что Samsung намере...

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

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

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

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

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

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

Глобальные Honor View 20, Honor 20 и Honor 20 Pro получили большое обновление Бренд Honor, не так давно отделившийся от Huawei, начал распространять обновление оболочки Magic UI 4.0 для международных версий флагманских смартфонов Honor серии 20.  Глобальная стабильная версия прошивки Magic UI 4.0 стала доступна для Honor View 20, Honor 20 и...

Точные и быстрые вычисления для чисел с плавающей точкой на примере функции синуса. Часть 2: libm Продолжаю цикл статей по работе с плавающей точкой. В первой статье я дал небольшое математическое введение и показал самый простой и очевидный способ вычисления синуса с примерами программ с разными «подводными камнями». Сегодня статья будет немного другая по стилю. Здесь н...

Анализ тональности в русскоязычных текстах, часть 2: основные исследования Исследователи применяли анализ тональности для совершенно разных русскоязычных текстов: постов из соцсетей, отзывов, новостных статей и книг. Как следствие, результаты их исследований тоже были совершенно разными и крайне интересными. Например, кто бы мог подумать, что тек...

Продвинутая система авторизации действий с ресурсами в Laravel. Часть 2. Шлюзы, Политики Введение Здравствуйте дорогие Хабровчане. Я продолжаю свой цикл статей о продвинутой авторизации действий с ресурсами в Laravel. Чтобы лучше понимать о чем пойдет речь этой статье — необходимо прочесть Первую часть. Для начала вкратце повторю постановку задачи: Имеется бол...

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

Голая правда Дорогие друзья, рад видеть вас снова. Лично я очень соскучился по нашему общению. Моё долгое отсутствие на этом ресурсе вызвано чрезвычайно большим наплывом пациентов. Среди которых, что мне приятно отметить, было очень много читателей моих предыдущих статей. И даже, не по...

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

Список бед OnePlus 8 и 8 Pro, которые приносит Android 11 Компания OnePlus выпустила вторую бета-версию операционной системы Android 11 для пользователей смартфонов OnePlus 8 и OnePlus 8 Pro. Примечательно, что в списке изменений нет никаких новых возможностей для OnePlus 8 и OnePlus 8 Pro, однако уже опубликован список пробле...

Microsoft начала тестирование новой версии пакета Feature Experience Pack для Windows 10 Стало известно о том, что Microsoft выпустила новую предварительную сборку пакета Windows Feature Experience Pack под номером 120.2212.2020.0, которая стала доступна участникам инсайдерской программы на канале Beta. Этот пакет предназначен для улучшения функций Windows 10, р...

Европейский Redmi Note 8T получил MIUI 12 Компания Xiaomi выпустила стабильную версию фирменной оболочки MIUI 12 для европейских пользователей Redmi Note 8T. Ранее апдейт получили владельцы глобальной версии MIUI 12, а позже обновление доберется и до российских пользователей. Помимо всех нововведений, прошивка 12.0....

[Перевод] Практическое руководство по HashiCorp Consul — Часть 2 Это вторая часть из 2 частей Практического руководства по HashiCorp Consul. Предыдущая часть была в первую очередь сосредоточена на понимании проблем, которые решает Consul, и на том, как он их решает. Эта часть посвящена практическому применению Consul на примере реальной ...

Microsoft выпустила специальную версию консоли Xbox One X Компания Microsoft представила эксклюзивную версию игровой консоли Xbox One X, которая посвящена предстоящему Super Bowl 2020 — финалу Национальной футбольной лиги.Версия приставки называется Nike x Madden NFL 20 Xbox One X. Она будет выпущена ограниченным тиражом. Консоль и...

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

Конец флагманским смартфонам Google? Pixel 5 и Pixel 5 XL не получат топовую платформу Уже в начале мая компания Google может представить смартфон Pixel 4a. Пока неясно, будет ли модель Pixel 4a XL, так как, во-первых, в последнее время никаких слухов о ней нет, а во-вторых, в Сети уже появлялась информация о том, что Google откажется от старшей модели. П...

Названы особенности обновлённых мобильных видеокарт GeForce RTX 2060 и RTX 2070 В начале этого месяца компания NVIDIA представила обновлённую серию мобильных видеокарт на графических процессорах Turing. В неё как вошли новые модели, так и осталась часть существовавших ранее. Но как оказалось, некоторые уже существовавшие мобильные видеокарты на базе Tur...

Новая версия браузера Opera получила встроенный Twitter, обновленный виджет погоды и другие улучшения Разработчики Opera сообщили, что их детище стало первым браузером со встроенным Twitter-клиентом — начиная с последней версии Opera 69 пользователи данной соцсети могут полноценно использовать ее на своих десктопах без установки дополнительного ПО. В последнее время Op...

Windows 10 сама расскажет о новшествах очередного обновления В Microsoft наконец-то задумались о том, что далеко не все пользователи ощущают все новшества обновлений Windows 10, даже крупных. Поэтому компания решила внедрить в ОС приложение «Советы», которое будет рассказывать о всех новшествах очередного апдейта...

Освободи свой Android — алаверды О чём это? Данная статья написана в качестве продолжения статьи Освободи свой Android. Зачем? Очень просто — та статья очень подробно и хорошо описывает, как перешить смартфон на LineageOS. Но она просто требует продолжения о том, как потом с этим перешитым смартфоном жить. ...

[Перевод] Кристиан Вервейс: О сложности или зачем вам Скрам? Кристиан Вервейс: О сложности или зачем вам Скрам? Предисловие переводчика Предупреждение: Это лонгрид и это достаточно серьезный текст, далекий от большинства “простеньких” объяснений что вы могли прочитать на русском про Скрам и Эджайл.  Оригинал статьи...

Выбор хэш-функции в задаче шардирования данных Мы в Miro работаем над процессом шардирования баз Postgres и используем разные подходы в зависимости от бизнес-требований. Недавно перед нами встала задача шардирования новых баз, в ходе неё мы выбрали новый для нас подход к шардированию, основанный на согласованном хеширова...

Модель адаптивного усвоения углеводов часть 2: Васывание углеводов Абсорбация (разложение) углеводов в организме человека с диабетом 1 типа. В данной статье анализируется абсорбация углеводов (на самом деле не только их, но так же и белков, жиров) в организме человека 1 типа. Напомню, что данный топик изучается в целях учета реального разло...

Angular для Vue разработчиков Сейчас во фронтенде среди фреймворков есть три явных лидера: Angular, React и Vue. Думаю, мы можем судить о любви разработчиков к проекту по количеству звезд на GitHub. На момент написания данной статьи у Vue уже 161 тысяча звезд, на втором месте находится React с 146 тысяча...

[Из песочницы] Выбор генератора форм для Vue.js Уважаемый хабрачитатель, хочу поделиться с тобой опытом в выборе и использовании генераторов форм для Vue.js. Введение Пожалуй, известно каждому, что любой выбор начинается с фиксации целей, постановки задач и формирования списка требований к объектам выбора. Данная статья ...

Huawei может запустить EMUI 11.1 в марте 2021 года Huawei представила EMUI 11 на конференции разработчиков Huawei (HDC) 10 сентября прошлого года, и первым устройством, оснащенным этой последней версией пользовательского интерфейса, стала серия Huawei Mate 40. На Ежегодной конференции клуба Huawei в январе этого года президе...

Как собрать паука в Godot, Unigine или PlayCanvas С наступившим 21-м годом 21-го века. В данной статье пробегусь по особенностям работы в трёх игровых движках, на примере написания кода для паукообразного средства передвижения. Читать дальше →

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

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

Повторная проверка Newton Game Dynamics статическим анализатором PVS-Studio Недавно на просторах интернета мной был обнаружен физический движок Newton Game Dynamics. Зная, что в таких проектах обычно большой объём сложного кода, я подумал, что будет интересно проверить его статическим анализатором PVS-Studio. Мой энтузиазм ещё больше подстегнуло то...

В текстовом редакторе Microsoft Word появился новый инструмент проверки грамматики Разработчики из Microsoft продолжают улучшать свои продукты, в том числе приложения, входящие в состав фирменного офисного пакета. На этот раз стало известно, что в текстовом редакторе Word появился новый инструмент проверки грамматики под названием Microsoft Editor. Изображ...

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

[Из песочницы] Архитектура нейронной сети RetinaNet Данная статья посвящается объяснению устройства архитектуры нейронной сети RetinaNet. Обзор был проведён мною в ходе выполнения дипломной работы, а так как для его написания потребовалось обращаться исключительно к англоязычным источникам и собрать найденную информацию воеди...

[Из песочницы] Riak Cloud Storage. Часть 1. Настройка Riak KV Riak CS (Cloud Storage) – лёгкое в использовании программное обеспечение для организации хранилища объектов, работающее поверх Riak KV. Riak (KV) это распределённая NoSQL база данных типа «ключ-значение(key-value)». Riak CS спроектирована так, чтобы обеспечить простоту, дост...

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

Фреймворк Camel: сравнение компонентов HTTP и AHC В данной статье производится сравнение работы простейших сервисов реализованных с помощью фреймворка Camel и двух его компонентов: HTTP и AHC. Углубляться в структуру и работу с самим фреймворком не будем, предполагается что читатель уже немного знаком с ним. Читать далее

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

Как устроена графика в Linux: обзор различных сред оформления рабочего стола Эта статья о том, как устроена графика в Linux и из каких компонентов она состоит. В ней много скриншотов с различными реализациями сред рабочих столов.  Если вы не сильно различаете KDE и GNOME или различаете, но хотели бы узнать, какие еще есть альтернативы, то эта статья...

Xiaomi Mi 9 SE, Mi CC9 Pro и Redmi 10X/10X Pro получили стабильную MIUI 12 С тех пор, как Xiaomi анонсировала MIUI 12 в конце апреля , компания еженедельно рассылала бета-версии новой прошивки на большинство поддерживаемых устройств. Также выходят стабильные финальные версии MIUI 12. В данный момент китайский производитель смартфонов нача...

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

Xiaomi Mi 8 получил стабильную версию MIUI 12 Компания Xiaomi начала распространять финальную стабильную версию прошивки MIUI 12 на базе операционной системы Android 10 для смартфона Xiaomi Mi 8, который был флагманом производителя в 2018 году. Как обычно, обновление распространяется поэтапно в различных регионах м...

Используем DI в Angular по максимуму — концепция частных провайдеров В Angular очень мощный механизм Dependency Injection. Он позволяет передавать по вашему приложению любые данные, преобразовывать и переопределять их в нужных частях. Поэтому мы можем делать архитектуру приложений более простой и гибкой: понятный поток данных, минимальная св...

[Перевод] Plan 9-кластер на Raspberry Pi Операционная система Plan 9, созданная в Bell Labs, является, как и Linux, потомком UNIX. На сертифицированной UNIX, например, основана и macOS. ОС Plan 9, как и UNIX, была создана в виде экспериментальной операционной системы, предназначенной для испытания новых концепций. ...

PostgreSQL 14: Часть 1 или «июльский разогрев» (Коммитфест 2020-07) Выход PostgreSQL 13, о возможностях которого мы уже писали, планируется только осенью. Ничего принципиально нового в нем уже не появится. Поэтому самое время перейти к PostgreSQL 14. Жизненный цикл нововведений 14 версии состоит из 5 коммитфестов. Первый из которых — июльск...

Baikal-T1 — первый российский процессор, поддержка которого включена в основную ветку ядра Linux Компания Baikal Electronics заявила о том, что стала первым в России производителем процессоров, включённым в основную ветку ядра Linux. Само собой, речь о включении поддержки процессоров, произведённых Baikal Electronics. Версия Linux 5.8-rc1, вышедшая неделю назад и ...

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

[Перевод] Я перехожу на JavaScript После того, как я 5 лет писал на Go, я решил, что мне пора двигаться дальше. Go хорошо послужил мне. Вероятно, это был лучший язык, которым я мог бы пользоваться столько времени, но теперь настал момент оставить Go. Не могу сказать, что я насмотрелся на ограничения и пробле...

Этюд по реализация бизнес-логики на уровне хранимых функций PostgreSQL Побудительным мотивом к написанию этюда послужила статья «В карантин нагрузка выросла в 5 раз, но мы были готовы». Как Lingualeo переехал на PostgreSQL с 23 млн юзеров. Показалось интересным то, что одна и та же мысль-"реализовать бизнес-логику в БД". пришла в ...

GeekBench показал, что подготовка к выходу OnePlus 8T идет ... Мы еще не успели отойти на презентации OnePlus и всех новостей, связанных с новой «бюджетной» линейкой от китайского бренда, как появился новый повод поговорить о смартфонах компании. Это событие должно было произойти так или иначе, но теперь мы имеем подтвержден...

Как смотреть WWDC 2020, если ты не разработчик Многим кажется, что WWDC — праздник только для разработчиков, и если ты дизайнер или маркетолог, то тебе там нечего ловить. На самом деле это не совсем так. Действительно, большая часть будет актуальна только разработчикам, но многое будет полезно не только им. В этой стать...

Kotlin Multiplatform. Работаем с многопоточностью на практике. Ч.2 Доброго всем времени суток! С вами я, Анна Жаркова, ведущий мобильный разработчик компании «Usetech». В предыдущей статье я рассказывала про один из способов реализации многопоточности в приложении Kotlin Multiplatform. Сегодня мы рассмотрим альтернативную ситуацию, когда м...

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

Аутентификация в .NET Core gRpc с помощью JWT В этой статье я расскажу об особенностях аутентификации API в gRpc сервисах с помощью JWT. Я предполагаю, что вы знакомы с JWT и заголовками HTTP, с их использованием в .NET Core WebAPI, поэтому не буду обсуждать эти детали. Когда я пытался реализовать аутентификацию в gRpc,...

В Mario Kart Tour в режиме бета-теста появился онлайн-мультиплеер Как и планировалось, в Mario Kart Tour в режиме бета-теста появился онлайн-мультиплеер. Интересно, что доступен он только владельцам подписки Gold Pass. Последняя предполагает двухнедельный пробный период, поэтому если вы его еще не активировали, то сейчас самое время. Новы...

Samsung оставила владельцев своих бестселлеров без возможности заранее опробовать Android 10 Компания Samsung некоторое время назад запустила бета-тестирование Android 10 для ряда своих флагманских смартфонов. Более того, модели линейки Galaxy S10 уже начали получать стабильную версию новой ОС. К сожалению, владельцам каких бы то ни было моделей Galaxy A опробо...

Изучаем VoIP-движок Mediastreamer2. Часть 11 Материал статьи взят с моего дзен-канала. Механизм перемещения данных Блок данных dblk_t Сообщение mblk_t Функции работы с сообщениями mblk_t Очередь queue_t Функции работы с очередями queue_t Соединение фильтров Сигнальная точка графа обработки данных Закулисная деятельно...

Haval – будущий лидер российского рынка? После проведенной пресс-конференции компании, россиянам в скором времени стоит ожидать наплыва «китайцев» на дорогах. Стоит отметить, что китайский бренд Haval стремительно взялся за покорение российского авторынка, который считается самым успешным в плане реализации выпуск...

[Из песочницы] A* pathfinding на C#: двоичные кучи и борьба с аллокациями Сегодня мы разбираем один из популярнейших алгоритмов поиска пути. Работать будем с двумерным массивом целочисленных координат. Сначала кратко ознакомимся с методами обхода графов, напишем собственно поиск пути, а затем перейдём к самому вкусному: оптимизации быстродействия...

[Перевод] Большая история аргументов функций в Python Ну, на самом деле, история аргументов в Python не такая уж и большая. Я всегда удивлялся тому, что для работы с аргументами Python-функций достаточно лишь разобраться с *args и **kwargs. И удивлялся я не зря. Как оказалось, аргументы — это далеко не так просто. В этом матер...

Jinja2 в мире C++, часть третья. «Теперь ты в конане» С момента публикации предыдущей части прошло больше полутора лет, была реализована большая куча фичей, сделано несколько релизов, но не об этом пойдёт речь. Пару дней назад в жизни библиотеки произошло важное событие: она была добавлена в основной репозиторий conan'а (conan...

[Перевод] Современные решения старых CSS-задач (1 часть): Удержание футера внизу страницы Приветствую. Представляю вашему вниманию перевод статьи «Keep the Footer at the Bottom: Flexbox vs. Grid», опубликованной 8 апреля 2020 года автором Stephanie Eckles Это первая статья из серии, посвящённой ознакомлению с современными способами решения CSS-проблем, с которы...

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

Бесконечный раннер Faily Brakes 2 теперь появился и на Android Студия Spunge Games заняла нишу второсортных, но интересных раннеров с серией Faily Brakes. Первая часть была загружена более 10 млн раз в Google Play за последние 4 года. Судя по всему, казуальные геймеры заинтересованы в выходе подобных проектов, поэтому студия решила не о...

[Перевод] Низкоуровневое программирование STM32: от включения питания до «Hello, World» В этом материале я хочу рассказать о том, как писать программы для микроконтроллеров (Microcontroller Unit, MCU) Cortex-M, вроде STM32, используя лишь набор инструментов ARM и документацию, подготовленную STMicroelectronics. У некоторых читателей может появиться вопрос о том...

Скоро Apple может выпустить 6,1-дюймовый iPhone SE Plus На данный момент часть аналитиков считает, что в ближайшее время Apple не станет расширять линейку своих бюджетных смартфонов. Однако сетевые источники делятся другой информацией. Согласно последним данным, в ближайшее время Apple может выпустить iPhone SE Plus, который очен...

Интеграция проекта VueJS+TS с SonarQube В своей работе мы активно используем платформу SonarQube для поддержания качества кода на высоком уровне. При интеграции одного из проектов, написанном на VueJs+Typescript, возникли проблемы. Поэтому хотел бы рассказать подробней о том, как удалось их решить. В данной стать...

AdDuplex: October 2020 Update используется на 20% устройств с Windows 10 Компания AdDuplex опубликовала ежемесячный статистический отчёт об использовании различных версий Windows 10. За январь доля October 2020 Update (версия 20H2) увеличилась с 16,8% до 20%, то есть на 3,2%. Это означает, что темпы роста версии 20H2 остались такими же, как и ме...

Книга “Разработка мобильных приложений на C# для iOS и Android” Уважаемые читатели, рады представить вам книгу “Разработка мобильных приложений на C# для iOS и Android” от уже хорошо известного вам автора и эксперта в Xamarin, Вячеслава Черникова из компании Binwell. Без долгих прелюдий передаю слово автору. Добрый день, уважаемый хабр...