Социальные сети Рунета
Пятница, 16 апреля 2021

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

Путешествие в unmanaged code: туда и обратно Несмотря на популярность высокоуровневых языков программирования, существует значительное количество областей, в которых вам придется использовать в своем коде неуправляемые реализации библиотек. Это могут быть вызов специфических функций ОС, низкоуровневый доступ к устройст...

[Перевод] Советы по использованию алгоритма коллапса волновой функции В последнее время я много экспериментировал с процедурной генерацией на основе ограничений. В частности, с алгоритмом Wave Function Collapse (WFC, коллапс волновой функции). Я даже написал собственную open source-библиотеку и ассет unity. WFC — это очень гибкий алгоритм, в...

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

[Перевод] Создание образа Мона Лизы в Игре «Жизнь» Клеточные автоматы представляют большой интерес и являются предметом исследования во многих областях, включая математику, физику, биологию, программирование и прочие. В статье мы разберем базовую реализацию и оптимизацию алгоритма для поиска состояния Жизни, из которого в т...

Аппаратная реализация алгоритмов DES и TDES-EDE3 Алгоритм TDES (3DES, Tripple DES) был создан в 1978 году как улучшение алгоритма DES. По сравнению с последним улучшилась криптостойкость, но в три раза увеличилось время вычисления. Несмотря на то, что на сегодняшний день наиболее распространен алгоритм AES, который принят ...

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

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

Пишем игру Гонки на бумаге, C# WPF Дело было в начале 90-х, компьютера не было, но было желание поиграть в гонки ) Показал мне друг как можно на тетрадном листе бумаги в клеточку играть в гонки. А еще говорят, что есть настольная игра с такими правилами. И что чуть ли не все играли в эту игру в университете з...

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

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

SafetyNet Attestation — описание и реализация проверки на PHP В эту тему пришлось детально погрузиться во время работы над обеспечением стандартных механизмов верификации устройств для разных мобильных платформ. Задача сводилась к разработке полноценной реализацию проверки JWS-токенов по протоколу SafetyNet на серверной стороне.После м...

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

[Перевод] Использование алгоритма Прима для генерации соединённых друг с другом пещер Я решил объяснить один из алгоритмов генерации карты, используемых в моей игре In the House of Silence. Главное преимущество этого способа заключается в том, что в отличие от других алгоритмов, он никаким образом не может сгенерировать карту с разделёнными частями. Гене...

[Перевод] Браузерные войны 2021 Дисклеймер: речь в данной статье не идёт о браузерных войнах как таковых. Скорее, автор пытается объяснить устройство и механизм работы браузеров простым языком (прим. переводчика).Наблюдая за тем, как Google Chrome планомерно подавляет конкуренцию на рынке браузеров, Нил Мо...

[Перевод] Как разработать ансамбль Light Gradient Boosted Machine (LightGBM) В преддверии старта нового потока курса «Машинное обучение» представляем вашему вниманию материал о Light Gradient Boosted Machine (далее — LightGBM), библиотеке с открытым исходным кодом, которая предоставляет эффективную и действенную реализацию алгоритма градиентного буст...

Генераторы псевдослучайных чисел на основе РСЛОС Сегодня для решения множества прикладных задач требуется возможность генерировать случайные числа. Очевидно, что в зависимости от того, какая конкретно задача решается, к генератору случайных чисел будут предъявляться различные требования: например, иногда от генератора случ...

[Перевод] Алгоритм Укконена: от простого к сложному Изучая курс Алгоритмы на строках столкнулся с задачей о построении суффиксного дерева. Перейдя по ссылке на дополнительные материалы наткнулся на рекомендацию "просмотреть этот замечательный комментарий на Stack Overflow". Изучив и реализовав по приведённому вольному описан...

Симметричный алгоритм блочного шифрования Advanced Encryption Standart Доброго времени суток, читатель. В данной статье я бы хотел рассказать об одном из самых распространенных алгоритмов симметричного шифрования - AES. Читать далее

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

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

[Из песочницы] Конспект по методам классификации данных При изучении Data Science, я решил составить для себя конспект по основным приемам, используемым в анализе данных. В нем отражены названия методов, кратко описана суть и приведен код на Python для быстрого применения. Готовил конспект для себя, но подумал, что кому-то это та...

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

[Из песочницы] Реализация алгоритма определения ширины объекта с помощью ультразвукового дальномера и энкодеров на языке RobotC Доброго дня! Сегодня я бы хотел поделиться реализацией алгоритма определения ширины объекта с помощью ультразвукового дальномера и энкодеров на языке программирования RobotC (с использованием платформы VEX EDR). Предистория Недавно, мне предложили провести мастер-класс на ...

Проектируем мультипарадигменный язык программирования. Часть 6 — Заимствования из SQL Продолжаем рассказ о создании мультипарадигменного языка программирования, сочетающего декларативный логический стиль с объектно-ориентированным и функциональным, который был бы удобен при работе со слабоструктурированными данными и интеграции данных из разрозненных источник...

[Перевод] Как работает алгоритм генерации паролей Castlevania III В данной статье объясняется механизм, используемый игрой Castlevania III: Dracula’s Curse для сохранения и восстановления игрового состояния при помощи паролей. Информация статьи относится к североамериканским и PAL-версиям, выпущенным для NES, а не к японской версии, Akumaj...

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

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

Глубокие нейросети в компьютерном зрении: genesis for geeks Если вы в общих чертах представляете себе, как работает компьютерное зрение, но жаждете деталей, то эта статья для вас.Под катом — о том, как работают нейросети, какого рода алгоритмы используются в системах компьютерного зрения и насколько улучшилось качество распознавания ...

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

Как я устал от JavaScript и создал свой собственный язык программирования За свою карьеру я успел поработать со множеством языков программирования. Писал flash-игры на ActionScript 3 и Android-игры на Java, сервера на Java, Scala и NodeJS (JavaScript), скрипты на Python, веб и мобильные приложения на React (JavaScript). И на каком бы языке я не пи...

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

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

[Перевод] Шпаргалка по сортировке для Data Science Сортировка данных является основной задачей для ученых и инженеров по обработке данных. Пользователи Python могут выбирать наиболее удобную из ряда библиотек со встроенными, оптимизированными опциями сортировки. Некоторые даже работают параллельно с GPU. На удивление, неко...

GSoC 2019: Проверка графов на двудольность и трансформеры монад Прошлым летом я участвовал в Google Summer of Code — программе для студентов от компании Google. Ежегодно организаторы отбирают несколько Open Source-проектов, в том числе от таких известных организаций, как Boost.org и The Linux Foundation. Для работы над этими проектами Go...

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

[Из песочницы] EM-алгоритм для кластеризации EM-алгоритм – полезный инструмент моделирования данных, когда максимизация правдоподобия "в лоб", через дифференцирование, невозможна. Кластеризация – одна из задач, где этот алгоритм приходит на помощь. В статье приведен общий вывод EM-алгоритма для кластеризации....

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

Алгоритм Kosaraju по полкам На самом деле, уже есть статья на Хабре по этому алгоритму, но она не освещает доказательство корректности и некоторых шагов алгоритма. Я решил создать более справочную версию той статьи с полным разбором.Этот пост будет полезен студентам, изучающим дисциплину "Алгоритмы и Т...

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

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

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

Представляем Owlcat Mono Profiler для Unity Добрый день. Я работаю программистом в компании Owlcat Games, которая выпустила одну из самых успешных российских компьютерных RPG Pathfinder: Kingmaker и сейчас работает над её продолжением, Pathfinder: Wrath of the Righteous. В ходе портирование первой игры нашей студии на...

[Перевод] Все дело в виртуальном «прянике»: Uber создал алгоритм, способный обыграть человека в игре Atari В ИИ-лаборатории Uber AI Labs создали новое семейство алгоритмов Go-Explore. В основе алгоритма — обучение с подкреплением. По эффективности Go-Explore превосходит большинство существующих разработок при испытании на классических играх Atari 1980-х годов. ИИ от Uber проше...

[Перевод] Python Gateway в InterSystems IRIS Эта статья посвящена Python Gateway — комьюнити-проекту с открытым исходным кодом для платформы данных InterSystems IRIS. Этот проект позволяет оркестрировать любые алгоритмы машинного обучения, созданные на языке Python (основная среда для многих Data Scientists), использов...

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

Wrike уходит от использования языка Dart. Часть 1 Данной статьёй мы хотим пролить свет на технический стек Wrike: каким он был раньше и каким мы видим его в будущем. Мы расскажем о том, почему пять лет назад мы выбрали язык Dart основным для frontend-разработки нашего продукта и почему сейчас мы решили посмотреть в сторону ...

[Перевод] Процедурная генерация многоэтажных 3D-подземелий В последнее время я играл в несколько roguelike, поэтому решил попробовать написать собственный процедурный генератор подземелий. Существует множество способов решения этой задачи, и я выбрал алгоритм автора TinyKeep, описанный здесь. Я расширил этот алгоритм, чтобы он рабо...

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

Снова про шаблоны C++ в микроконтроллерах Идея использования шаблонов языка C++ для программирования контроллеров не является чем-то новым, в сети доступно большое количество материалов. Кратко напомню основные преимущества: перенос значительной части ошибок из runtime в compile-time за счет строгого контроля ти...

Гениальный алгоритм создания лабиринтов в игре Entombed, который до сих пор не могут разгадать В 2017 двое ученых, канадец John Aycock и британка Tara Copplestone, опубликовали анализ классической игры Entombed для игровой приставки Atari 2600. Механика этой игры, выпущенной в 1982, крайне проста: археолог, управляемый игроком, должен пробраться по прокручивающимся ...

Алгоритм Джонсона на орграфе с отрицательными дугами Статья подготовлена в преддверии старта курса «Алгоритмы и структуры данных» Алгоритм Джонсона находит кратчайший путь между всеми парами вершин во взвешенном ориентированном графе с отрицательными весами без негативных контуров. О, как звучит! Давайте разберём условие зад...

Taiga UI — библиотека компонентов под Angular, которую вам стоит попробовать Привет!Саша Инкин и я регулярно пишем на Хабр статьи по Angular. Почти все они основаны на нашем опыте разработки большой библиотеки компонентов.Эту библиотеку мы развиваем, перерабатываем и дополняем уже несколько лет, а свои идеи проверяем на нескольких десятках проектов Т...

[Из песочницы] AI на минималках: пишем свой Сокобан и учим компьютер его решать В этой статье я расскажу как написать свою реализацию известной игрушки Сокобан, а также алгоритм для её решения с нуля. Заодно применю на практике некоторые шаблоны проектирования и принципы SOLID. Весь код расположен по адресу Читать дальше →

Автоматизация рутины в DotA 2 или читы? Привет, в этой статье будут рассматриваться легальные способы получить преимущество перед противником с помощью таких простых средств, как NodeJS, Electron и React, при этом обходя бан стороной. На эксперименты меня вдохновила другая статья Визуализация времени возрождения Р...

Как Magento 2 взаимодействует с Vue Storefront Привет! Меня зовут Павел и я занимаюсь бэкенд разработкой. Как уже писал AndreyHabr, многие из наших проектов основаны на стеке Adobe Magento 2 (для краткости далее я буду называть ее M2) в качестве бэкенда и Vue Storefront (VS) в качестве фронтенда. Я не буду подробно оста...

CubeHash Криптографическая хэш функция представляет собой набор шагов, позволяющих преобразовать произвольный блок данных в последовательность фиксированной длины. Любое изменение входных данных ведёт к изменению значения функции. Хэш функции используются для вычисления контрольных с...

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

Хеш-функция, что это такое? Приветствую уважаемого читателя!Сегодня я хотел бы рассказать о том, что из себя представляет хеш-функция, коснуться её основных свойств, привести примеры использования и в общих чертах разобрать современный алгоритм хеширования SHA-3, который был опубликован в качестве Феде...

[Перевод] Рейт лимиты с помощью Python и Redis В этой статье мы рассмотрим некоторые алгоритмы рейт лимитов на основе Python и Redis, начиная с самой простой реализации и заканчивая продвинутым обобщённым алгоритмом контроля скорости передачи ячеек (Generic Cell Rate Algorithm, GCRA). Для взаимодействия с Redis (pip in...

[Перевод] Надоел JavaScript — используй браузерный Python Мой опыт разработки игры «Змейка» на Brython «Погоди, что?» – думаю, большинство читателей отреагирует на заголовок именно так. В смысле «просто использовать Python в браузере»? Все знают, что в браузерах работает только JavaScript. Ну, выше приведен скриншот с исходны...

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

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

Intel Boot Guard на пальцах Предлагаю окунуться в дебри микроархитектуры компьютера и разобраться с тем, как работает одна из наиболее распространенных технологий обеспечения аппаратной целостности загрузки BIOS — Intel Boot Guard. В статье освещены предпосылки появления технологии, перечислены все реж...

Люди не распознали авторство робота у статей про хакинг Студент Калифорнийского университета в Беркли провёл эксперимент с алгоритмом GPT-3. Алгоритм писал статьи про хакинг в блог на веб-агрегаторе Hacker News. Большинство людей не распознали авторство робота у статей.

Детекция аномалий на снимках с БПЛА Medium postОсенью мы с друзьями участвовали в хакатоне DIGITAL SUPERHERO от организаторов хакатона ИТС и СЦ, о котором я писал в статье. Хакатон проходил с 18 по 23 сентября 2020 года. Мы выбрали задачу Распознавание аномалий (объектов и инцидентов) на фотоматериал...

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

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

[Перевод] Методы Монте-Карло для марковских цепей (MCMC). Введение Привет, Хабр! Напоминаем, что ранее мы анонсировали книгу "Машинное обучение без лишних слов" — и теперь она уже в продаже. Притом, что для начинающих специалистов по МО книга действительно может стать настольной, некоторые темы в ней все-таки затронуты не были. П...

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

TON Labs назвала дату публикации основных компонентов операционной системы для Telegram Open Network 7 мая в 15:00 по МСК разработчики TON Labs выложат в открытый доступ на GitHub основные компоненты разрабатываемой ими операционной системы TON OS. Об этом ForkLog сообщили представители стартапа. В частности, будут опубликованы реализация полной ноды TON в Rust, интерфейс к...

Динамика потокового вычислителя В публикации https://habr.com/ru/post/530078/ я рассказывал  о возможностях пото́кового (архитектуры Data-Flow, далее DF) параллельного вычислителя. Особенности выполнения программ на нём столь необычны и интересны, что о них следует сказать “два слова”. Эксперимент...

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

Java 16 — новые синтаксические возможности языка В марте этого года Oracle выпускает 16-ю версию Java, а уже осенью выйдет 17-я версия - следующая версия с долгосрочной поддержкой (LTS). Вряд ли за пол года появятся какие-то существенные нововведения, а потому уже сейчас можно взглянуть на то, с чем мы будем работать в бли...

«Нюансы» использования TeamCity Всем привет. Статья написана в простом стиле "DevOps для домохозяек" от таких же домохозяек. В ней будет описано с какими неожиданностями можно столкнуться при настройке проекта в TeamCity. Также приведу рекомендации как эти проблемы можно обойти. Нижеописанное ос...

Как мы делали универсальный сервис подписания для инфраструктуры Госуслуг на C и GO. Часть 1 Это первая часть статьи, в которой будет рассмотрена GO-часть нового сервиса подписания для всем известного (а если не всем, то многим) портала Госуслуг. Сюда входит конфигурирование, тестирование, ресты, файловый менеджер и планировщик. В общем все то, что происходит до тог...

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

[recovery mode] Как обойти «No-communication theorem»? Передача информации сквозь пространство и время No-communication theorem утверждает, что квантовое запутывание не может использоваться для передачи какой-либо информации. Теорема предполагает, что Боб никак не может отличить начальное состояние σ от состояния P(σ) после измерения Алисой. Это доказывается математически, п...

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

Как преобразовать текст в алгебру Как пишут тексты в Большой Академии в ЛагадоАлгебра и язык (письменность) являются двумя разными инструментами познания. Если их объединить, то можно рассчитывать на появление новых методов машинного понимания. Определить смысл (понять) – это вычислить как часть соотносится ...

Dart на сервере Недавно столкнулся с необходимостью написать REST API сервер на Dart. Оставим за рамками этой статьи почему и зачем это было надо, но первое с чем я столкнулся - выбор библиотек. Так уж сложилось, что я привык писать на NodeJS используя KoaJS в качестве веб сервера. Простая ...

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

Сколько стоит расписание Основные данные вычислительных экспериментов по реорганизации ярусно-параллельной формы  (ЯПФ) информационных графов алгоритмов (ТГА) приведены в предыдущей публикации. Цель текущей публикации – показать окончательные результаты исследований разработки расписаний выполн...

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

Как мы делали универсальный сервис подписания для инфраструктуры Госуслуг на C и GO. Часть 2 Это вторая часть статьи, посвященной универсальному сервису подписания для инфраструктуры Госуслуг. Первая часть статьи была посвящена GO-части нового сервиса, в которую входит конфигурирование, тестирование, ресты, файловый менеджер и планировщик. Всему тому, что происходит...

SQL HowTo: пишем while-цикл прямо в запросе, или «Элементарная трехходовка» Периодически возникает задача поиска связанных данных по набору ключей, пока не наберем нужное суммарное количество записей. Наиболее «жизненный» пример — вывести 20 самых старых задач, числящихся на списке сотрудников (например, в рамках одного подразделения). Для различны...

Balloon Fight: перенос с VS system на NES Итак, для начала хочется отметить, что хотя я и пишу в песочницу, это уже не первый мой текст на Хабре. Когда-то я писал how to для блога зарубежных ретроигроделов, а поскольку они зарубежные, статьи приходилось переводить на английский. И я был немного удивлен, обнаружив з...

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

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

Google: «core algorithm» – это набор алгоритмов, которые являются частью IR Score На днях сотрудник Google Гэри Илш рассказал в Twitter, что в его понимании представляет собой основной алгоритм поисковой системы (core algorithm). «Я ни с кем не сверялся, не говоря уже о Дэнни [Салливане], который говорит об основном алгоритме больше, чем кто-либо другой, ...

Создан компьютерный алгоритм для распознавания интернет-тролля Исследователь Сергей Монахов из Йенского университета имени Фридриха Шиллера создал два компьютерных алгоритма для распознавания интернет-тролля. Они анализируют твиты предполагаемого тролля.

[Перевод] GraphQL на Rust В этой статье я покажу как создать GraphQL сервер, используя Rust и его экосистему; будут приведены примеры реализации наиболее часто встречающихся задач при разработке GraphQL API. В итоге API трёх микросервисов будут объединены в единую точку доступа с помощью Apollo Serve...

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

Match-3 Framework – это «просто» Один из наших новых проектов, которые мы сейчас разрабатываем — игра в жанре Match-3. В этой статье расскажем о некоторых интересных технологических решениях, которые мы для нее используем. Речь пойдет о разрабатываемом фреймворке для Match-3 игр (M3Engine) и прилагающемся к...

Опыт использования gRPC в Почте Mail.ru Привет, Хабр! Я работаю в команде Антиспама Почты Mail.ru. В этой статье я бы хотел рассказать про наш опыт запуска сервиса с пропускной способностью около 3 миллионов запросов в минуту на базе технологии gRPC. Это современная технология передачи данных по сети, которая реа...

Арбитражная торговля (Алгоритм Беллмана — Форда) Торговля на бирже обычно ассоциируется с рисками. Это совершенно верно для большинства торговых стратегий. Успешность торговли в этих случаях определяется исключительно способностью верно оценивать риски и управлять ими. Но не все торговые стратегии таковы. Существуют безр...

TON Labs назвала дату публикации основных компонентов операционной сети для Telegram Open Network 7 мая разработчики TON Labs выложат в открытый доступ на GitHub основные компоненты разрабатываемой ими операционной системы TON OS. Об этом ForkLog сообщили представители стартапа. В частности, будут опубликованы реализация полной ноды TON в Rust, интерфейс командной строки...

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

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

Шифруем по-русски, или отечественные криптоалгоритмы В данной статье простыми словами описаны криптоалгоритмы, являющиеся актуальными на данный момент российскими стандартами защиты информации, и подобраны ссылки на материалы, которые при желании помогут разобраться с ними глубже. А также, в конце статьи приведены работы с рез...

Генетический алгоритм vs алгоритм роя частиц К задачам поиска лучшего варианта решения (объекта, параметров или других данных) сводятся многие из проблем математики, экономики, статистики и т.д. Эти проблемы возникают, когда приходится строить математическую модель ситуации. При обработке полученной математической моде...

Разработка приложения с использованием Python и OpenCV на Android устройстве В это статье я хочу показать пример того, как андроид устройство можно использовать для разработки на таких языках программирования как python с библиотекой opencv в среде VSCode (будет использован code-server). В конце статьи приведено небольшое сравнение производительнос...

Разгоняем JS-парсер с помощью WebAssembly (часть 2: алгоритм и его оптимизации) В первой части статьи мы исследовали скорость различных вариантов обмена информацией между JavaScript и WASM-кодом. В этом продолжении - наконец-то займемся написанием прикладного кода нашего парсера.Мы ведь теперь пишем "прямо на ассемблере" - значит, все будет супербыстро!...

Атаки на компьютерное зрение Данная статья — попытка собрать известные теоретические и практические атаки на алгоритмы компьютерного зрения и реализовать атаку на практике. Материал будет полезен специалистам, которые занимаются построением систем распознавания и классификации объектов.Компьютерное зрен...

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

Windows 10 20H1: решения проблем высокой загрузки процессора и диска Microsoft представляет новый алгоритм для индексатора поиска Windows, который делает его более эффективным с точки зрения общей производительности системы, использования процессора и диска. Изменения, включенные в Windows 10 версии 2004 (20H1), могут, наконец, устранить жало...

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

[Из песочницы] Вскрытие покажет: Решаем лёгкий crackme и пишем генератор ключа Доброго времени суток читающий. Мне хочется рассказать тебе про алгоритм решения одного лёгкого crackme и поделиться кодом генератора. Это был один из первых crackme, который я решил. На просторах сети найден был наш подопотный. Это сrackme. Естественно, что необходимо изуч...

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

Трансформеры в Поиске: как Яндекс применил тяжёлые нейросети для поиска по смыслу Привет, Хабр. Меня зовут Саша Готманов, я руковожу группой нейросетевых технологий в поиске Яндекса. Сегодня на YaC 2020 мы впервые рассказали о внедрении трансформера — новой нейросетевой архитектуры для ранжирования веб-страниц. Это наиболее значимое событие в нашем поиске...

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

[Из песочницы] Понимание итераторов в Python Python — особенный язык в плане итераций и их реализации, в этой статье мы подробно разберём устройство итерируемых объектов и пресловутого цикла for. Особенности, с которыми вы часто можете столкнуться в повседневной деятельности 1. Использование генератора дважды >>&...

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

Алгоритм поиска товаров для продажи на маркетплейсах Одним из способов поиска подходящего товара для продажи является сравнение маркетплейсов. Какой товар, к примеру, хорошо продаётся на Ozon, но отсутствует на WildBerries или наоборот, тот и нужно брать в продажу.Мы же (в качестве примера) хотим выйти с товаром на оба этих ма...

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

Музыка в играх будет соответствовать настроению геймера Новая разработка может стать одной из функций PlayStation 5. Патент, который был обнаружен в базе данных изданием Gaming Intel, описывает систему на базе ИИ, которая адаптирует фоновую музыку к игровым сценариям с учетом эмоционального состояния игрока. Система распознает, т...

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

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

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

Математические бэкдоры в алгоритмах шифрования Мы привыкли полагаться на современные алгоритмы шифрования. Однако, действительно ли они так безопасно защищают наши данные? Давайте разберёмся с таким понятием как математический бэкдор, что он из себя представляет и как работает. Читать далее

Разбор статей конференции RecSys 2020 Привет, Хабр! Несмотря на все невзгоды года текущего, интересные мероприятия и статьи с них никуда не деваются. Поэтому ML команда Одноклассников подготовила разборы работ коллег из Google, Microsoft, Tencent и др. представленных на прошедшей этой осенью конференции по реком...

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

Коротко об одном из стандартов формата токена PKCS#15 Много статей написано про стандарты API между токенами и программным обеспечением. Однако, стандартизация формата самих токенов, как правило, несправедливо обойдена стороной. В данной статье кратко описан один из стандартов формата токена PKCS#15 (Public Key Cryptography sta...

[Перевод] «Привет, мир»: разбираем каждый шаг хэш-алгоритма SHA-256 SHA-2 (Secure Hash Algorithm), в семейство которого входит SHA-256, — это один самых известных и часто используемых алгоритмов хэширования. В тексте подробно покажем каждый шаг работы этого алгоритма на реальном примере. SHA-2 отличается безопасностью (его тяжелее взломать,...

Google: мы обновляем основной алгоритм 2-4 раза в год Мелкие изменения в поиск вносятся каждый день

Root cause анализ инцидентов на корреляциях между временными рядами метрик ИТ-инфраструктуры Одной из задач систем ИТ-мониторинга является сбор, хранение и анализ различных метрик, характеризующих как состояние различных элементов ИТ-инфраструктуры (загруженность CPU, объем свободной оперативной памяти, объем свободного дискового пространства и т.п.), так и состояни...

Безопасный downgrade macOS Big Sur (без 1008F) Недавно, я писал о том, как решить проблему с вечной ошибкой 1008F при попытке откатить macOS Big Sur до macOS Catalina через Internet Recovery. Как показал опрос, есть необходимость рассказать о том, как откатить macOS Big Sur без ошибки 1008F. Причин для отката может бы...

Fortinet Security Fabric на практике. Часть 3. FortiAP Всем привет! В нашей прошлой статье мы рассказали об устройстве FortiSwitch и его основных функциональных возможностях. Вторая часть решения от компании Fortinet для обеспечения защищенного доступа - точки доступа FortiAP. Сегодня мы хотим рассказать о них. В планах - расска...

[Перевод] Четыре приема быстрой разработки на Unity3D Уже долгое время Unity3D — мой любимый инструмент разработки игр, которым я пользуюсь уже более 8 лет — и для профессиональных продуктов, и для личных проектов, и при обучении программированию и гейм-дизайну. Более того, я писал на Unity почти на всех гейм-дже...

[Из песочницы] Пишем на языке С/C++ в Linux под KolibriOS Вступление KolibriOS – миниатюрная операционная система, ядро и большинство программ которой написано на ассемблере. Это, конечно же, не значит, что на других языках программирования писать для KolibriOS нельзя. Данная статья — инструкция по настройке toolchain'а для Linux. ...

ИИ-модель Microsoft превзошла результат человека Алгоритм понимания естественного языка (Natural Language Understanding, NLU) Microsoft DeBERTa превзошел человеческие возможности в одном из самых сложных тестов для подобных алгоритмов SuperGLUE.

VSTi-плагин ASIO-хоста для подключения входа дополнительного ASIO-драйвера в DAW Столкнулся я как-то с ситуацией, когда, при наличии основной звуковой карты со своим ASIO-драйвером, необходимо было в DAW подключить USB-микрофон со своим ASIO-драйвером. А DAW не поддерживает подключение двух ASIO-драйверов одновременно. Поиском наткнулся на VST-плагин "VS...

Python & EEL. Делаем просто на Python’е и красиво на JS Тема красивых интерфейсов была и будет актуальна всегда, кто-то использует для создания графических приложений C#, кто-то использует Java, кто-то уходит в дебри C++, ну а кто-то извращается с Python, используя tkinter или PyQT. Существуют различные технологии, позволяющие со...

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

Нейросеть научили распознавать речь по губам при помощи алгоритма распознавания записи голоса Hal 9000 прекрасно читал по губам, правда, по-английски Нейросети сейчас умеют многое, и постепенно их обучают все большему количеству умений. На днях стало известно о том, что объединенная команда исследователей из США и Китая смогла обучить нейросеть распознавать речь по...

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

Быстрая медианная фильтрация с использованием AVX-512 Недавно Боб Стигалл сделал в конференции CppCon 2020 доклад под названием «Adventures in SIMD-thinking”, где он среди прочего рассказывал о своем опыте использования AVX512 для медианной фильтрации (с окном 7). Этот доклад вызвал у меня двоякие чувства: с одной стороны, прик...

Море, пираты — 3D онлайн игра в браузере Приветствую пользователей Хабра и случайных читателей. Это история разработки браузерной многопользовательской онлайн игры с low-poly 3D графикой и простейшей 2D физикой. Позади немало браузерных 2D мини-игр, но подобный проект для меня в новинку. В gamedev решать задачи, с...

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

Windows 10 будет работать быстрее после майского обновления Если верить последним новостям из стана Windows 10, большое майское обновление даст прирост к производительности ОС. Ранее, когда мы подробно расписывали основные моменты (кстати, там же инструкция о том, как это обновление получить уже сейчас), которые Microsoft планирует...

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

Пираты обошли защиту игры по мотивам кинофраншизы Форсаж Вчера мы писали о вышедшей в Steam Fast & Furious: Crossroads — игра по мотивам серии фильмов Форсаж. Пользователи Steam восприняли игру преимущественно негативно, ругая ее оптимизацию графику, геймплей и крайне высокую цену. Некоторые даже называли игрой «худшей на PC». Т...

Я вас графония принес! Как нейросеть может улучшить разрешение в старых играх до HD Данная статья является вольным переводом моей статьи на Medium Я детстве я любил играть на компьютере. Совсем маленьким я застал несколько игра на кассетном ZS Spectrum, однако настоящим открытием стали красочные DOS игры 90x годов. Тогда же и зародилось большинство сущест...

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

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

Алгоритм SHA-3 В настоящее время информационная безопасность стала неотъемлемой частью любых цифровых операций. Ключевой роль в защите информации играет понятие криптографической функции. Криптографические хеш-функции — это выделенный класс хеш-функций, который имеет определённые свой...

Deep Anomaly Detection Детекция аномалий с помощью методов глубокого обученияВыявление аномалий (или выбросов) в данных - задача, интересующая ученых и инженеров из разных областей науки и технологий. Хотя выявлением аномалий (объектов, подозрительно не похожих на основной массив данных) занимаютс...

Пишем телеграм-бота, который будет переводить интернет статьи в mp3-файлы Всем привет! В данной статье я поделюсь своей реализацией бота для telegram, который может переводить статьи из интернета в mp3-файлы. Для этого я буду использовать python 3.6 и соответствующие библиотеки. Итак, приступим... Читать далее

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

Эмоциональная история процессоров: IBM/370 В первой части были описаны многие разные процессоры до середины 90-х. Для мейнфреймов IBM там места не нашлось, так как эти системы долгое время не использовали процессоры-чипы. Однако, мейнфреймы IBM тесно связаны с другими компьютерными системами, долгое время являясь луч...

Динамический лут в играх: что стоит учитывать Люди всех возрастов любят азарт, будь то Kinder Surprise, блэкджек или компьютерные игры. Представьте, у вас в игре есть две коробки: на одной написано "Вы получите 100 монет", а на второй — “Вы получите 50-1000 монет”. Сразу понятно, вокруг какой из коробок буде...

Алгоритмы персонализации: пять тенденций-2021 Достижения в области машинного обучения позволяют разрабатывать новые типы моделей и алгоритмов персонализации. Ильи Кацов, руководитель по работе с данными компании Grid Dynamics, рассказывает на портале eWeek о современных ...

[Из песочницы] Мой опыт разработки приложения, как PM Я программист в душе. Первую программу написал в 8 лет — игра на ламповый телевизор (24 года назад). Данный проект — это вызов для меня. Я лично не написал ни одной строчки кода. В процессе перекупили основного кодера. Дочь глотнула батарейку — стресс на неделю. Коронавирус....

[Перевод] Microsoft Excel: революционный игровой 3D-движок? Введение В самых передовых компьютерных играх используются различные графические подсистемы — так называемые трёхмерные графические движки. Играм и специалистам этой отрасли хорошо известны Source (Half Life 2), Unreal Engine (Unreal Tournament), idTech 4 (Doom 3), CryENGIN...

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

Moonshot Games™ и Secret Door™: первые студии создала Dreamhaven Бывший глава и соучредитель компании Blizzard Entertainment Майк Морхейм (Mike Morhaime) и целый ряд ветеранов игровой индустрии объявили о создании новой компании Dreamhaven, специализирующейся на разработке компьютерных игр и расположенной в г. Ирвайне (шт. Калифорния). Ко...

«Томограф» для нефтегазовых месторождений, или Пересечение трёхмерной расчётной сетки и плоскости на CUDA В данной статье приведены описание и алгоритм решения задачи построения рисунка внутренностей месторождения, являющегося результатом пересечения расчётной сетки с плоскостью. А также приведены тайминги построения решения, которые получаются на типичном компьютере геолога-мод...

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

Мелкая питонячая радость #10: конечные автоматы и глубокое обучение в несколько строк Конечно, самая большая радость этих дней — python 3.9. Но кроме этой радости кто-то должен ворошить github в поисках мелких приятностей, которые несут добро и свет тем, кто пишет на python. Transitions Тем, кому приходилось писать реализацию какого-нибудь сложного информаци...

Объявлены лучшие компьютерные игры по средним оценкам критиков Сайт-агрегатор отзывов Metacritic опубликовал рейтинг лучших компьютерных игр. Он базируется на средних оценках игр от критиков.

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

Совсем не ретро-эффекты для ретро-игры Всем привет! Занимаюсь разработкой игры: ее дизайн полностью сделан из символов, которые можно набрать на клавиатуре. Используются символы из ASCII таблицы. Как бы странно ни звучало, но моя цель - сделать современную игру. Она должна смотреться классно, сохраняя при этом ре...

Трейлер DOOM Eternal "Битва с Cyberdemon" Doom Eternal компьютерная игра в жанре шутера от первого лица. Выход игры на ПК уже несколько раз переносили. Новая дата выпуска намечена на 20 марта 2020 года. В игре представлен широкий выбор различного оружия. Помимо стандартной механики перемещения по уровню, игрок мо...

Max Patrol SIEM. Обзор системы управления событиями информационной безопасности Введение Друзья, добрый день. Данную статью я хочу посвятить такому продукту, как MaxPatrol SIEM компании Positive Technologies уже более 17 лет разрабатывающей инновационные решения в области кибербезопасности. В ней я постараюсь кратко описать основные задачи и меропр...

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

«Яндекс.Маркет» и «М.Видео» с «Эльдорадо» назвали популярные игры на консолях «Яндекс.Маркет» недавно поделился статистикой поиска и заказов компьютерных игр в интернет-магазинах. Эту же информацию отдали «Эльдорадо» и «М.Видео». В итоге получилось несколько рейтингов с самыми популярными играми для консолей. Читать полную статью

Серийных убийц в России начнут искать алгоритмами искусственного интеллекта МВД намерено использовать алгоритмы искусственного интеллекта (ИИ) для поиска серийных убийц и подозреваемых. В качестве улик система будет использовать биоматериалы с места преступления.

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

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

Шифрование TEA, XTEA, XXTEA В данной статье рассматриваются блочные симметричные алгоритмы шифрования, которые используют сеть Фейстеля в качестве основы, как и большинство современных блочных шифров. А точнее, описываются алгоритмы шифрования TEA, XTEA, XXTEA и их криптоанализ Читать далее

[Из песочницы] DirectX 12 — от Леонардо да Винчи к современному искусству Компьютерная графика — обширная и быстроразвивающаяся дисциплина. С каждым годом интерфейсы прикладного программирования становятся более гибкими, что позволяет на их основе реализовывать более сложные алгоритмы формирования и обработки изображений. Однако возможности интера...

Google объявил о глобальном запуске BERT Google приступил к запуску алгоритма BERT по всему миру, на более чем 70 языках. Об этом сообщил сотрудник поиска Дэнни Салливан (Danny Sallivan) в Twitter. Как стало известно вчера, в число этих языков также входит русский. Всего их 72. Со всем списком можно ознакомиться в ...

Google: сайты на Shopify не получают преимуществ в ранжировании На днях один из вебмастеров спросил в Twitter, предоставляет ли Google какие-либо преимущества в ранжировании такой популярной ecommerce-платформе как Spotify. По словам сотрудника поиска Джона Мюллера, алгоритмы Google не учитывают используемую сайтом CMS. «У нас нет специа...

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

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

Свежий взгляд на честное 3D в браузере Приветствую.Так получилось, что некоторое время назад я принимал участие в проекте, разрабатывал браузерную игру с принципиально новым подходом в хранении данных - предполагалось создать некую вариацию на тему .krieger, игру, которая использовала бы экстремально мало памяти ...

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

Как сделать из нейросети журналиста, или «Секреты сокращения текста на Хабре без лишних слов» Только не удивляйтесь, но второй заголовок к этому посту сгенерировала нейросеть, а точнее алгоритм саммаризации. А что такое саммаризация? Это одна из ключевых и классических задач Natural Language Processing (NLP). Она заключается в создании алгоритма, который принимает н...

Nodens: создание лавкрафтианского робота для мультиплеерного шутера от идеи до релиза Привет! В этой статье я разберу частный кейс создания контента для мобильной игры — как мы делаем это в Pixonic. От поиска идей до появления персонажа в игре — обо всех этих этапах и сложностях, возникших на них, мы поговорим подробно. Если ты — начинающий гейм-дизайнер...

Пишем Slack бота для Scrum покера на Go Здравствуйте! Сегодня мы напишем Slack Scrum покер бота на языке Go. Писать будем по возможности без фреймворков и внешних библиотек, так как наша цель – разобраться с языком программирования Go и проверить, насколько этот язык удобен для разработки подобных проектов. Прошу ...

Fortinet Security Fabric на практике. Часть 2. FortiSwitch Приветствуем! В нашей прошлой статье мы описали общую концепцию построения сети на продуктах компании Fortinet - Fortinet Security Fabric. Практически все продукты из этой концепции мы уже описывали. Неосвещенными остались только FortiSwitch и FortiAP. Сегодня мы хотим расск...

[Перевод] Мы создали Web приложение для определения лиц и масок для Google Chrome Основная цель - обнаружение лица и маски в браузере, не используя бэкенд на Python. Это простое приложение WebApp / SPA, которое содержит только JS-код и может отправлять некоторые данные на серверную часть для следующей обработки. Но начальное обнаружение лица и маски выпо...

Google научился распознавать песни по мычанию и свисту Теперь Google поймет, что за песня «спулае мулае» и «на-на-на-наааа-на-на» Новая «фишка» поиска Google называется «hum to search». Чтобы получить к ней доступ, необходимо вызвать Google Assistant на мобильном устройстве или воспользоваться виджетом Google Search. Затем нужно...

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

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

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

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

[Перевод] 7 опасных ошибок, которые легко совершить в С#/.NET Перевод статьи подготовлен в преддверии старта курса «C# ASP.NET Core разработчик». C# — великолепный язык, и .NET Framework также очень хорош. Строгая типизация в C# способствует уменьшению количества ошибок, которые вы способны спровоцировать, по сравнению с другими язык...

Тетрис на битбордах: старые песни на новый лад Битборды (Bitboard) — специальные битовые структуры, позволяющие эффективно рассчитывать ходы в настольных играх. На хабре писали про применение битбордов к шахматам и даже к шашкам. Сегодня мы применим технику битбордов к несколько неожиданной, но всем знакомой игре – к т...

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

Power-line communication. Часть 2 — Основные блоки устройства В первой части статьи мы кратко ознакомились с основными понятиями при передаче данных по линиям электропередач. Узнали, что такое “полезный сигнал”, как с его помощью можно кодировать передаваемую информацию. Но ни слова не было о том, как это устройство должно быть выполне...

Rust включили в список основных языков для разработки платформы Android На днях компания Google сделала важный шаг, объявив о включении языка программирования Rust в число языков, которые допускаются для разработки платформы Android. Да, еще в 2019 году компилятор Rust включили в дерево исходных текстов Android, но это была экспериментальная по...

Компьютерных персонажей научили разговаривать с игроком на любые темы Разработчик игры Modbox научил компьютерных персонажей разговаривать с игроком на любые темы. В этом помог алгоритм GPT-3 для обработки естественного языка.

Google приступил к запуску May 2020 Core Update Google начал запуск очередного обновления основного алгоритма – May 2020 Core Update. Об этом сообщил евангелист поиска Дэнни Салливан в Twitter. Запуск был начат 4 мая. Обычно полное развёртывание обновлений такого рода занимает около двух недель. Рекомендации Google для ве...

Crusader Kings III: настоящая игра престолов Crusader Kings III – это The Sims в Средневековье, симулятор игры престолов, практическое пособие к учебнику истории за 7 класс, поле бесконечных экспериментов и потрясающий генератор забавных историй. Crusader Kings III Жанр стратегия, ролевая игра Платформы Windows, macOS,...

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

[Перевод] Что такое Жизнь во Вселенной: четыре базовых принципа вместо трёх характерных функций Данная статья мотивирована необходимостью построить более общую картину, что такое жизнь (и какой она может быть) по отношению к остальным явлениям во Вселенной.(Является переводом довольно любопытной научной статьи от 16 апреля 2020 года). Читать далее

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

Пишем блог на микросервисах – часть 3 «User» Во второй части нашего цикла статей «Пишем блог на микросервисах» мы описали «API Gateway». Здесь мы опишем реализацию микросервиса User. Читать дальше →

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

[Из песочницы] Knight's life — онлайн Aрена с элементами RPG Всем доброго времени суток! Для тех кто не читал мои предыдущие посты, я разрабатываю мобильную игру. Онлайн арену с элементами РПГ. Основная идея игры состоит в арене и в развитие своих персонажей. Под персонажами имеется ввиду 3 основных класса. Воин. Маг. Разбойник. Нем...

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

Симуляторы компьютерных систем – похожи ли на реальность Простым и доступным языком про основные термины из области симуляторов, а также типы и уровни детализации моделей. Материал для легкого и быстрого знакомства с данным направлением. Читать дальше →

Вышел пакет Sequoia 0.20.0, реализация OpenPGP на Rust Вчера был представлен выпуск пакета Sequoia 0.20.0. Он предлагает библиотеку функций и инструментарий командной строки с реализацией стандартов OpenPGP (RFC-4880). Команда проекта состоит из трех человек — участников проекта OpenPGP (RFC-4880). Для повышения безопасности и ...

Xiaomi научила смартфоны с MIUI 12 определять пульс без дополнительных датчиков В MIUI 12 появилась функция, которая может быть востребована многими пользователями, не владеющими навыками определения частоты сердечных сокращений. Все, что для этого потребуется, — смартфон под управлением MIUI 12 с камерой и встроенной вспышкой. Функция реали...

Тонкость определения EIGRP Feasible Distance EIGRP – это дистанционно-векторный протокол маршрутизации, изначально разработанный Cisco. Найти корректное определение одного из основных параметров DUAL, feasible distance (FD), оказывается подчас непростой задачей. Читать далее

Очереди на очереди: Magento 2 + RabbitMQ Привет! Меня зовут Павел и я Magento 2 бэкенд-разработчик. Когда-то давно, когда я только начинал знакомство с Magento 2 (для краткости буду называть ее M2), мне понадобилось автоматизировать обработку однотипных событий при разработке одного решения. Тогда я удивился, наско...

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

[Перевод] От int main() до BeginPlay: как происходит инициализация Unreal Engine под капотом Одна из самых простых и базовых концепций в программировании игр — это идея игрового цикла. При запуске вашего проекта происходит его инициализация, после чего игровой цикл действует до тех пор, пока игрок хочет продолжать игру: каждый кадр вы обрабатываете ввод, обновляете ...

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

Эксклюзив для PlayStation 5, Returnal, отложен до апреля Перед выпуском, шутеру нужен еще месяц разработок и доработок. Эксклюзивная игра Returnal для PlayStation 5 была немного отложена по сравнению с предыдущей датой выхода в конце марта. Эксклюзив выйдет 30 апреля. Sony сделала объявление в Твиттере, заявив, что команде разра...

[Из песочницы] Как сделать тематическое моделирование форума быстро или что беспокоит людей с целиакией В данной статье я расскажу и покажу на примере, о том, как человек с минимальным Data Science опытом, смог собрать данные из форума и сделать тематическое моделирование постов с использованием LDA модели, и выявил наболевшие темы людей с глютеновой непереносимостью. В прошл...

Когда компьютерные игры — твоя работа: внутреннее устройство облачного гейминга О том, как работают игровые компании, на Хабре писали не раз и не два. Нюансы индустрии гейминга известны многим. Но о том, как организована работа в компаниях из сферы облачного гейминга, мало кто знает. Эта статья даст представление о внутренней кухне этой индустрии на ...

Минкомсвязь России исследовала перспективные направления применения робототехники В документе приведена информация о мировых рынках робототехники, ведущих российских и зарубежных компаниях, описаны кейсы как реализованных, так и разрабатываемых робототехнических комплексов для различных отраслей и секторов экономики."Цель исследования - рассказать о...

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

Часть 1. MPI — Введение и первая программа В этом цикле статей речь пойдет о параллельном программировании. Довольно часто самые сложные алгоритмы требуют огромного количества вычислительных ресурсов в реальных задачах, когда программист пишет код в стандартном его понимании процедурного или Объектно Ориентированного...

Let vs where в Ocaml/Haskell Языки Ocaml и Haskell ведут родословную из языка ISWIM, описанного в знаменитой статье Питера Лендина "The next 700 programming languages". В ней автор, отталкиваясь от языка LISP, создаёт новый язык программирования и, в частности, вводит ключевые слова let, and и where, ко...

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

Головоломка Арнольда: от комбинаторной геометрии к браузерной игрушке Представьте игру, в которой выполняются простые правила:1. На плоскости проведены несколько линий, каждая пара линий пересекается в одной точке.2. Линии разбивают плоскость на области, раскрашенные в шахматном порядке.3. Вы можете перестраивать разбиение, «схлопывая» и «выво...

Реализация архитектуры Redux на MobX. Часть 1: «Проблемные места Redux» Эта часть статьи будет об осмыслении составляющих Redux. Так ли они необходимы, что является их аналогом. Также будет предложена более удобная альтернатива хука useReducer.На самом деле, я не буду воспроизводить Redux. Вместо этого, в следующей части будет описано, как спро...

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

Как выучить иностранный язык: алгоритм Если вы хоть немного пересекались с Machine Learning, то понимаете, что человеческий мозг — это, по сути, большая нейросеть. А раз так, то и работу с ним можно строить по известным в ML алгоритмам. Так я нашел универсальный способ выучить любой иностранный язык до нормальног...

Учим AI Dungeon говорить по-русски Недавно ребята из сбер(-банка) анонсировали и выложили в свободный доступ свою модель gpt-3 и я понял, что можно наконец то реализовать свою давнюю мечту - сделать AI dungeon для русского языка. Данная игра сильно выстрелила в прошлом году, про нее было написано множество ст...

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

Можно ли генерировать случайные числа, если мы не доверяем друг другу? Часть 1 Привет, Хабр!В этой статье мы обсудим генерацию псевдо-случайных чисел участниками, которые не доверяют друг другу. Как мы увидим ниже, реализовать “почти” хороший генератор достаточно просто, а вот очень хороший – сложно.Зачем вообще нужно генерировать случайные числа участ...

Чего мне не хватало в функциональных компонентах React.js Помню первое впечатление от React hooks. Можно не писать классы. Не нужно описывать тип состояния, инициализировать состояния в конструкторе, теснить всё состояние в одном объекте, помнить о том, как setState сливает новое состояние со старым. Не придется больше насиловать м...

В тестировщики пойду: 10 вопросов про то, как переквалифицироваться в специалиста по тестированию Есть такая поговорка: если за дело берется профессиональный тестировщик, он обязательно что-нибудь сломает. Ну а если серьезно, то это достаточно интересная тема для обсуждения. Тестирование, как правило, лежит на стыке двух областей — разработки и того, чему посвящен разраб...

[Из песочницы] Todolist на React Hooks + TypeScript: от сборки до тестирования Начиная с версии 16.9, в библиотеке React JS доступен новый функционал — хуки. Они дают возможность использовать состояние и другие функции React, освобождая от необходимости писать класс. Использование функциональных компонентов совместно с хуками позволяет разработать полн...

Разработчик Telegram Open Network обнародовал детали алгоритма консенсуса платформы Сооснователь Telegram Николай Дуров описал схему работы алгоритма консенсуса Catchain Consensus Protocol, лежащего в основе блокчейн-платформы Telegram Open Network (TON). Catchain Consensus: An Outline by ForkLog on Scribd Catchain является алгоритмом Byzantine Fault Tolera...

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

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

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

[Перевод] Обнаружение лиц в Node.js с использованием Rust и WebAssembly В последней статье мы рассказывали, как вызывать функции Rust из Node.js. Сегодня мы расскажем, как написать приложение AIaaS (англ. Artificial Intelligence as a Service — «искусственный интеллект как услуга») на базе Node.js.Большинство приложений с искусственным интел...

[Перевод] Теория вероятностей для физически точного рендеринга Введение В рендеринге часто используется вычисление многомерных определённых интегралов: например, для определения видимости пространственных источников освещения (area light), светимости, доходящей до области пикселя, светимости, поступающей за период времени и облучения, ...

Как мы обошли bytenode и декомпилировали байткод Node.js (V8) в Ghidra «Да я роботов по приколу изобретаю!» Рик СанчесМногим известно, что в 2019 году АНБ решило предоставить открытый доступ к своей утилите для дизассемблирования (реверс-инжиниринга) под названием Ghidra. Эта утилита стала популярной в среде исследователей благодаря высокой «вс...

To spawn, or not to spawn? Вот в чём вопрос! Что лучше - держать всё в одном процессе, или создавать отдельный процесс на каждый кусок состояния, которым нам нужно управлять? В этой статье я немного расскажу об использовании или неиспользовании процессов. Я также расскажу, как отделить сложную логику ...

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

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

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

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

Мелкая питонячая радость #14: ботнеты, распознавание текстов и генератор статических сайтов Самое поразительное из того, что я увидел за последние 2 недели — тулкит на Python для создания ботнетов. Конечно же, он написан для исследовательских и учебных целях, но, тем не менее, эта штука дает энтузиастам компьютерной безопасности доступ к реализации целого  наб...

Движок, скриптовый язык и визуальная новелла — за 45 часов Приветствую. Так получилось, что уже три года подряд в качестве подарка на Новый год определенным людям я делаю игру. В 2018-ом году это был платформер с элементами головоломки, о котором я писал на хабре. В 2019-ом — сетевая RTS для двух игроков, о которой я ничего не писа...

[Перевод] Архитектор современных алгоритмов Барбара Лисков является пионером современного подхода к написанию кода. Она хочет предостеречь нас, что задачи, с которыми сегодня сталкиваются компьютерные науки, невозможно решить с помощью одного лишь продуманного дизайна. Читать далее

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

Система под контролем: как автоматизировать интеграционные тесты Привет! Меня зовут Ксения Якиль. Я пишу core-сервисы на C и Go в бэкенд-отделе Badoo и Bumble. Наш бэкенд — это высоконагруженная распределённая система, обслуживающая пользователей по всему миру. Она оперирует большими массивами данных и делает всю ту магию, благодаря котор...

Какой язык выбрать для работы с данными R или Python? Оба! Мигрируем с pandas на tidyverse и data.table и обратно По запросу R или Python в интернете вы найдёте миллионы статей и километровых обсуждений по теме какой из них лучше, быстрее и удобнее для работы с данными. Но к сожалению особой пользы все эти статьи и споры не несут. Цель этой статьи — сравнить основные приёмы обработки д...

ФРОНСТЕП разработала решение с алгоритмом позаказного планирования производства и снабжения ФРОНСТЕП разработала решение с алгоритмом позаказного планирования производства и снабжения. Реализация позаказного MRP-планирования является востребованным решением, созданным в рамках развития существующих ERP систем заказчиков. Ключевой ...

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

Обзор системы дистанционного электронного голосования ЦИК РФ 31 августа 2020 состоялся публичный тест системы дистанционного электронного голосования (далее ДЭГ) с применением технологии блокчейн, разрабатываемой по заказу ЦИК РФ. Для знакомства с новой системой электронного голосования и понимания того, какую роль в ней играет техн...

И еще один сервис проверки паспортов или опять вопрос сколько гигабайт в одном мегабайте Какое-то время назад появилась возможность уделить внимание языку Go и удачно на глаза попалась публикация «Паспортный контроль, или Как сжать полтора гигабайта до 42 мегабайт» . В статье кратко, но информативно, рассказывается о тестовой задаче по разработке сервиса проверк...

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

Переделка CNC 3018 Pro на рельсы. Личный опыт. Дамы и господа, здравствуйте!Опишу тех. процесс доработки станочка. Так же предложу варианты (если это возможно) для упрощения доработки. Основной посыл данного поста - не бояться работать руками!Технология переделки не моя, акцентирую на этом внимание.При написании статьи я...

Азбука libp2p от Textile (или за что мы её любим) Перевод статьи начального уровня в блоге проекта Textile от 19 ноября 2019 г.Первые шаги к созданию децентрализованного приложения могут быть трудными. Изменить привычный при разработке централизованных приложений образ мышления не легко, поскольку распределённый дизайн ло...

Онлайн-курс «Создание и продвижение бренда» Курс повышения квалификации для Бренд-менеджеров. Директоров по маркетингу. Менеджеров по продукту. Программа курса Создание компании — бренда Брендинг и функции бренд-менеджера в компании, KPI. Основные этапы создания бренда. Связь товара и бренда: создан...

Google завершил запуск May 2020 Core Update Google завершил запуск последнего обновления основного алгоритма – May 2020 Core Update, который был начат 4 мая. Об этом сообщил сотрудник поиска Дэнни Салливан в Twitter. Таким образом, на этот раз полный запуск обновления занял 2 недели. Обычно апдейты такого рода выкатыв...

[Перевод] Адаптивная процедурная генерация при помощи алгоритма WaveFunctionCollapse и априорного распределения вероятностей Что такое процедурная генерация? Процедурная генерация включает в себя множество генеративных алгоритмов, принцип работы которых заключается в создании данных не вручную, а алгоритмически: вместо ручного изготовления того, что мы хотим создать (карты, музыки, рельефа…), пише...

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

[Перевод] Реализация алгоритмической теории игр на Python с Nashpy Теория игр — это метод изучения стратегических ситуаций, когда результаты зависят не только от ваших действий, но и от того, что предпримут другие. Что такое стратегическая ситуация? Вспомним типы рыночных структур: есть совершенная конкуренция, когда все компании являются...

Cordova. Опыт Enterprise-проекта В данной статье хочу поделиться опытом разработки мобильного enterprise-приложения на платформе Apache Cordova, рассказать о вариантах реализации такого проекта, о плюсах, минусах и нюансах. Это будет общий обзор без технических деталей, последние, возможно, будут описаны в ...

Различия в подходах к обработке и защите ПДн в Европе и России Кратко описал основные различия в подходах к обработке и защите ПДн в Европе и России.

Швейцарские инженеры доработали двухколесного робота Ascento, сделав его в разы устойчивее Швейцарские разработчики обновили алгоритмы двухколесного робота Ascento, сделав его гораздо устойчивее. На демонстрационных видео устройство удерживает равновесие после сильного удара маятником, а также запрыгивает на ступени и выполняет другие трюки. Статья с описанием нов...

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

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

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

Каким было майское обновление основного алгоритма Google – анализ от Moz Научный сотрудник Moz Питер Мейерс (Dr. Peter Meyers) опубликовал свой анализ последнего обновления основного алгоритма Google (May 2020 Core Update), запуск которого стартовал 4 мая. По состоянию на 14 мая колебания в выдаче практически улеглись. Ниже – график за 11 дней, н...

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

Игры в Steam начнут устанавливаться быстрее Стало известно, что в Steam появилось важное упоминание о том, что в ближайшее время в клиенте будет улучшена установка игр. Ускорится процесс установки игр и обновлений. Раньше это могло заниматься до нескольких минут, но благодаря исправлениям в алгоритмах этот процесс т...

Выпуск Cyberpunk 2077 откладывается до ноября, но зато новые приключения в Найт-Сити станут доступны для всех Мультиплатформенная компьютерная игра Cyberpunk 2077 в жанре Action/RPG, разрабатываемая польской игровой студией CD Projekt RED, станет «универсальной», но с небольшой задержкой. Выпуск игры пока откладывается до ноября. Подробнее об этом читайте на THG.ru.

Logstash + ClickHouse + Grafana: Как сделать Logger для логов ИБ умнее и эффективнее? В этой статье постараемся рассказать, как на базе всем доступного open-source можно построить эффективный Logger, поддерживающий интеграцию со всеми SIEM системами, и как можно модернизировать уже существующий Logger с помощью алгоритмов машинного обучения, сделав его умнее ...

[Из песочницы] Как мы сделали VR-игру о космической катастрофе Этапы, ошибки, выводы Я пришёл в BeaversBrothers год назад. Меня позвали, когда компания запускала новую услугу — разработку VR/AR-решений для бизнеса. Чтобы отработать технологии и понять наши возможности, мы решили сделать виртуальную игру. Ведь в игре есть всё: заворажива...

Telegram-бот на Java для самых маленьких — от старта до бесплатного размещения на heroku Для кого написано Если вы ни разу не писали Telegram-ботов на Java и только начинаете разбираться — эта статья для вас. В ней подробно и с пояснениями описано создание реального бота, автоматизирующего одну конкретную функцию. Можно использовать статью как мануал для созда...

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

Catchain: алгоритм консенсуса блокчейна TON В предыдущем обзоре наша команда R&D рассказала о структуре Telegram Open Network и особенностях функционирования ключевых узлов (валидаторов) TON Blockchain, а также поделилась опытом Mercuryo, как валидатора сети. Эта статья посвящена одному из ключевых вопросов, отве...

[Перевод] Сравнение Blazor и JavaScript-инструментов В последние несколько лет JavaScript был самым популярным и распространённым языком для разработки одностраничных приложений (Single Page Application, SPA). Это так и сегодня. Но недавно Microsoft выпустила новый фреймворк, который называется Blazor. Он позволяет писать брау...

Нехватка видеокарт GeForce RTX 3080 и RTX 3090 продлится до начала 2021 года Всем компьютерным энтузиастам и любителям компьютерных игр известно, что компания Nvidia на данный момент не в состоянии обеспечить всех желающих своими новинками в лице GeForce RTX 3080 и RTX 3090.

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

Вебмастера обсуждают возможный апдейт в локальном поиске Google Зарубежные вебмастера заметили признаки возможного обновления алгоритма локального поиска Google. Этот алгоритм отвечает за формирование блоков локальной выдачи (Local Pack). Выраженные колебания в локальной выдаче начались в районе 23 апреля и продолжаются до сих пор. Предп...

Black-Box Optimization Challenge, или как подбирать гиперпараметры для моделей Всем привет! В этом посте я расскажу, как наша команда участвовала и заняла третье место в Black-Box Optimization Challenge — соревновании по автоматическому подбору параметров для моделей машинного обучения. Особенность соревнования в том, что алгоритм не знает, какая модел...

Цена естественности или как обогнать QuickSort Сортировка — такая же «вечная» тема для алгоритмистов, как любовь — для поэтов. Казалось бы, новое слово в этой области сказать трудно, а поди же ты — продолжают придумывать новые алгоритмы сортировок (TimSort...) Есть, однако, базовые факты, которые знает каждый приличный с...

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

Новые функции умных часов Huawei Watch 3 и Watch GT 3: определение гипертонии, предсказание инфаркта и постоянный мониторинг температуры тела Huawei сегодня рассказала, в каком направлении будут развиваться технологии определения витальных показателей в фирменных умных часах. Как оказалось, Huawei сейчас работает над тремя исследованиями, которые уже в текущем году преобразуются во встроенные алгоритмы нового...

Статический генератор сайтов Hugo. Фронтенд реалии В 2020 практически весь мир фронтенда заполонили Javascript фреймворки. Только и слышно о React, Angular, Vue и иногда в далеких просторах можно услышать тихий шепот «Svelte». Разработчики умело используют эти инструменты для создания крутых продуктов, но есть и «динозавры» ...

50 оттенков жёлтого. Проверяем на практике технологию Retrobright Пару недель назад на Хабре вышла хорошая статья с объяснением химических процессов, которые происходят при пожелтении и отбеливании ABS-пластика. Автор доступно изложил теорию, ну а я хотел бы дополнить её практикой. Так совпало, что где-то год назад я начал собственные эксп...

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

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

[Из песочницы] Игра с открытым API: Swagger Play В данной статье я хочу рассказать, как использовать Swagger модуль для Play Framework, с примерами из реальной жизни. Я расскажу: Как прикрутить последнюю версию Swagger-Play (модуль Play, позволяющий использовать аннотации swagger-api и генерировать на их основе документ...

HoughNet: поиск точек схода сетью, сплавленной с классическим алгоритмом Пока в мире распознавания объектов обучают десятки и даже сотни зарекомендовавших себя архитектур искусственных нейронных сетей (ИНС), разогревая планету мощными видеокарточками и создавая «панацею» для всех задач компьютерного зрения, мы в Smart Engines твердо идем по иссл...

Шифрование TLS-трафика по алгоритмам ГОСТ-2012 c Stunnel В этой статье я хочу показать, как настроить Stunnel на использование российских криптографических алгоритмов в протоколе TLS. В качестве бонуса покажу, как шифровать TLS-канал, используя алгоритмы ГОСТ, реализованные в криптоядре Рутокен ЭЦП 2.0. Но для начала давайте вооб...

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

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

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

Онлайн-курс «3 функции маркетинга: исследования, брендинг, digital» Работа каждого маркетолога связана с созданием бренда, использованием цифровых инструментов продвижения и веб-аналитики. Именно эти «три кита» стоят в основе качественно выстроенной стратегии продвижения любой компании. Наши преподаватели расскажут вам, как Отстроиться о...

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

Скремблер: надёжно и просто Эта статья написана для того, чтобы рассказать читателю, что такое скремблеры, обозначить области их применения и затронуть некоторые практические тонкости, а также раскрыть секреты алгоритма скремблирования.Зачем и почему?Иногда возникает необходимость зашифровать трафик, н...

[Из песочницы] Использование Quartus и ModelSim Меня всегда интересовала цифровая схемотехника, а в частности языки описания аппаратуры -HDL. У меня давно лежала в списке будущего чтения книга Дэвида М. Хэррис и Сары Л. Хэррис «Цифровая схемотехника и архитектура компьютера», воспользовавшись свободным временем на самоизо...

[Из песочницы] Разбираемся с управлением памятью в современных языках программирования Привет, Хабр! Представляю вашему вниманию перевод статьи «Demystifying memory management in modern programming languages» за авторством Deepu K Sasidharan. В данной серии статей мне бы хотелось развеять завесу мистики над управлением памятью в программном обеспечении (далее...

Майское обновление основного алгоритма Google сильно повлияло на выдачу и позиции Данные аналитических сервисов

О талантах, деньгах и алгоритмах сжатия данных Алгоритмы сжатия — это очень коварная тема, привлекающая многих новичков. Это правда! Часто человеку кажется, что его осенила божественная идея, как сильно сжать данные. Любые, кстати! Без потерь! Рекурсивно! А поскольку данные — это хранение информации и передача, то если...

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

[Из песочницы] Пишем бот для пазл игры на Python Давно хотел попробовать свои силы в компьютерном зрении и вот этот момент настал. Интереснее обучаться на играх, поэтому тренироваться будем на боте. В статье я попытаюсь подробно расписать процесс автоматизации игры при помощи связки Python + OpenCV. Читать дальше →

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

[Перевод] Машинное обучение столкнулось с нерешенной математической проблемой Салют, хабровчане! В преддверии запуска новых потоков по продвинутому и базовому курсам «Математика для Data Science» хотим поделиться с вами достаточно интересным переводом. В этой статье не будет практики, но материал интересен для общего развития и обсуждения. Группа ис...

Алгоритм Ethash В этой статье я расскажу про алгоритм Ethash, который используется для майнинга различных криптовалют, но главная из них это, конечно, Ethereum. Ethash - это Proof of Work (PoW) алгоритм, который является последней версией алгоритма Dagger-Hashimoto, хотя его больше нельзя н...

Пирамидальная сортировка выбором Один из самых необычных алгоритмов сортировки массива  - это HeapSort, в основе которого лежит алгоритм сортировки выбором, используется структура данных «куча» для быстрого нахождения максимального элемента, а также способ хранения двоичного дерева в линейном массиве. ...

Обобщённый алгоритм визуальной криптографии Рассмотрим схему визуальной криптографии, предложенную Мони Наору и Ади Шамиром [2, 3]. Основная идея схемы заключается в том, что для передачи секретного изображения генерируются две пластины, каждая по отдельности выглядящая как белый шум и не несущая никакой информации об...

Коды избыточности: простыми словами о том, как надёжно и дёшево хранить данные Так выглядит избыточность. Коды избыточности* широко применяются в компьютерных системах для увеличения надёжности хранения данных. В Яндексе их используют в очень многих проектах. Например, применение кодов избыточности вместо репликации в нашем внутреннем объектном хранил...

Новая надстройка Arria для Power BI доступна на Microsoft AppSource Arria NLG  анонсирован выход новой эффективной версии  Arria для Power BI – надстройки, позволяющей пользователям Microsoft Power BI работать с интеллектуальными комментариями на базе системы генератора естественного языка (NLG).  До настоящего времени ра...

Google внедряет BERT в поиск на русском языке Google объявил, что самое крупное обновление алгоритмов работы поиска за последние 5 лет – BERT Update – в этом месяце будет внедрено в поиск на русском языке. BERT – это технология предварительного обучения обработке текста на естественном языке. Она анализирует не отдельны...

ML и DS оттенки кредитного риск-менеджмента Всем привет. Мы команда Advanced Analytics GlowByte и запускаем цикл статей о моделировании в задачах управления кредитным риском. Цель цикла — кратко рассказать о сфере, расширить словарь профессиональных терминов и дать ссылки на полезные статьи и книги. В вводной стать...

IT-словарик для не-айтишников Приходилось ли вам объяснять IT-понятия людям из других сфер? Это хитрая задача: при объяснении одного IT-термина нельзя пользоваться другими, потому что они тоже будут непонятными. Представим, что ваш знакомый захотел «войти в айти», впервые открыл Хабр и офигел — как объяс...

SEMrush: анализ основного обновления алгоритма Google за декабрь 2020 г. По данным SEMrush, от декабрьского Core Update Google наиболее пострадали сайты в тематиках «Здравоохранение», «Недвижимость», «Право» и «Правительство»

Курс “Введение в информационный поиск” и немного истории Меня зовут Павел Браславский, я научный сотрудник JetBrains Research и доцент Питерской Вышки. Осенью прошлого года я после большого перерыва прочитал курс “Введение в информационный поиск”, на этот раз — для студентов академических программ JetBrains в Питерской Вышке и ИТ...

[Из песочницы] Реализация MVVM в ABAP После окончания университета я несколько лет работал программистом C#. Я разрабатывал приложения на WPF с использованием шаблона проектирования MVVM. Затем перешел на ABAP. К большому удивлению обнаружил что ABAP является скорее процедурным языком чем объектно-ориентированны...

The Elder Scrolls VI находится на ранней стадии разработки Официальный анонс игры The Elder Scrolls VI был представлен в 2018 году. С этого момента не было никакой информации об игре и на какой стадии она находится. Над проектом работает компания Bethesda Softworks. Компьютерная ролевая игра является шестой основной частью в сери...

Войны лоббистов и развитие BIM. Часть 3: Отцы BIM технологий. Кто стоит за успехом Autodesk и openBIM? В этой статье мы осветим работу всех основных отцов BIM технологий, которые в 80-е и 90-е разрабатывали инструменты для автоматизированного проектирования. Разберём также, кто стоит за успехом организации buildingSMART и таких корпораций, как Nemetschek Group и Autodesk и по...

Xamarin.Forms. Личный опыт использования В статье речь пойдет о Xamarin.Forms на примере живого проекта. Кратко поговорим о том, что такое Xamarin.Forms, сравним с похожей технологией WPF, увидим, как достигается кроссплатформенность. Также разберём узкие места, с которыми мы столкнулись в процессе разработки, и до...

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

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

Идеальный график отпусков. Естественные алгоритмы. Поведение роя пчёл Естественные (или эволюционные) алгоритмы – это направление в искусственном интеллекте, которое моделирует процессы естественного отбора, мутации и воспроизводства. Одним из видов естественных алгоритмов является метод роя пчел. Его целью является концентрация бОльшего ко...

Дерево отрезков: просто и быстро Накануне очередного запуска курса «Алгоритмы для разработчиков» мы провели открытый урок. На нём поговорили об известной идее дерева отрезков, обсудили, как его строить, обновлять и быстро O(log n) вычислять сумму чисел любого отрезка данного массива. Алгоритм очень простой ...

Многорукие бандиты: особенности использования алгоритмов ранжирования При работе с алгоритмами есть две реальности: как это написано в учебнике и как это получается у тебя. Второе ближе к телу, и хочется, чтобы оно получалось. Главное, понимать, что ты работаешь не с оригинальной модельной задачей; в твоём проде есть особенности, которые могу...

Umka: новый статически типизированный скриптовый язык Только что вышла первая версия разработанного мной статически типизированного встраиваемого скриптового языка Umka. Он призван сочетать гибкость привычных скриптовых языков с защитой от ошибок типов на этапе компиляции в байт-код. Основная идея языка — Explicit is better th...

[Перевод] CSS-функции min(), max() и clamp() Поддержка CSS-функций сравнения min(), max() и clamp() появилась в Firefox 8 апреля 2020 года. Это означает, что данные функции теперь поддерживаются во всех основных браузерах. Эти CSS-функции расширяют наши возможности по созданию динамических макетов и по проектированию б...

[Перевод] C#: Знакомство с генераторами исходного кода Мы рады представить вам превью генераторов исходного кода. Это новая возможность, которая позволяет разработчикам C# анализировать пользовательский код и создавать новые файлы C#, которые в свою очередь могут добавляться в процесс компиляции. Это происходит при помощи новог...

Ведение разработки БД. Шаблоны создания/изменения объектов MSSQL При постоянной работе с MSSQL необходимо создавать различные объекты БД: таблицы, представления, триггеры и т.д. В статье приведу шаблоны SQL запросов, которые помогут, и, возможно, стандартизируют подход создания кода на языке T-SQL. Кроме этого, опишу о том, как я веду ре...

Плюсы интеграции Xiaomi Gateway 3 в Home Assistant Первая версия компонента XiaomiGateway3 для Home Assistant вышла 4 месяца назад, и с тех пор много всего изменилось. В прошлой статье я писал про создание компонента. А в этой статье расскажу, почему это решение так заинтересовало сотни пользователей. Читать далее

Начинаем опыты с интерфейсом USB 3.0 через контроллер семейства FX3 фирмы Cypress В целом, основной цикл статей про работу с комплексом Redd можно считать завершённым. Мы познакомились с методиками доступа к основным компонентам комплекса, научились писать и отлаживать на нём программы для центрального процессора, при этом локально используя хоть Linux, х...

Разбираем ресурсы Twisted Metal 4 (PSX) в Ghidra. Часть 1 Всем привет, В данной статье я расскажу о реверс-инжиниринге ресурсов игры Twisted Metal 4 для первой Playstation. В качестве основного инструмента я буду использовать Ghidra. Наверняка вы слышали об игровой серии Twisted Metal. А кому-то, наверное, довелось и поиграть (мне...

[Из песочницы] Расширенный HTML В этой статье хотел бы рассказать немного про библиотеку, первую версию которой я создал еще в конце прошлого года. Суть очень простая — расширить возможности языка HTML, чтобы можно было без JavaScript'а писать простые и рутинные вещи: отправка формы в json формате, загрузк...

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

[Перевод] Распределенное обучение XGBoost и параллельное прогнозирование с Apache Spark Привет, Хабр! Уже в конце июля Otus запускает новый курс «Промышленный ML на больших данных». Традиционно, в преддверии старта нового курса, мы подготовили для вас перевод полезного материала. Общие сведения В бустинге (из ансамбля моделей машинного обучения), алгоритмы р...

2. Check Point SandBlast Agent Management Platform. Интерфейс веб-консоли управления и установка агента Продолжаем изучать новую облачную платформу Check Point Management Platform для управления средством защиты пользовательских компьютеров — SandBlast Agent. В предыдущей статье мы описали основные составляющие SandBlast Agent, познакомились с архитектурой Check Point Infini...

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

[Перевод] Как я создал собственный алгоритм YouTube (чтобы не тратить время впустую) Побег от алгоритма YouTube Я люблю смотреть видео на YouTube, осязаемым образом улучшающие мою жизнь. К сожалению, алгоритм YouTube с этим не согласен. Он любит кормить меня кликбэйтом и прочим мусором. Всё это неудивительно: алгоритм отдаёт приоритет кликам и времени про...

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

Агломеративная кластеризация: алгоритм, быстродействие, код на GitHub Несколько лет назад мне потребовалось очень качественно кластеризовать относительно неплотные графы среднего размера (сотни тысяч объектов, сотни миллионов связей). Тогда оказалось, что алгоритма с подходящим набором свойств просто не существует, несмотря на всё разнообраз...

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

Google мог обновить свой локальный алгоритм в конце января Западные SEO-специалисты заметили изменения в позициях сайтов, которые могут говорить об обновлении алгоритма локального поиска Google в районе 31 января. Инструмент мониторинга локальной выдачи Local Rank Flux от BrightLocal также показал более сильные изменения в тот день:...

Создаем свою инспекцию для IDEA В статье показано, как быстро можно сделать свою полноценную инспекцию для IDEA для языка Java. В инспекции будем проверять, что переопределены методы equals, hashСode для классов, используемых в качестве ключа в HashMap. Писать будем на Kotlin. Читать далее

[Перевод] Распределенные блокировки с применением Redis Привет, Хабр! Сегодня мы предлагаем вашему вниманию перевод сложной статьи о реализации распределенных блокировок средствами Redis и предлагаем поговорить о перспективности Redis как темы. Анализ рассматриваемого алгоритма Redlock от Мартина Клеппмана, автора книги "Вы...

Зарплаты разработчиков во втором полугодии 2020: языки и квалификации По следам большого зарплатного исследования по всем ИТ-специализациям за второе полугодие 2020 года мы решили проверить, сколько зарабатывали разработчики разных языков и квалификаций и как их зарплаты изменились в целом за прошлый год.Среди квалификаций, по сравнению с перв...

Тайна слепой девы: ужастик The Origin: Blind Maid выйдет в 2021 году Компания Badland Publishing и студия Warani анонсировали хоррор от первого лица The Origin: Blind Maid. Он выйдет на ПК, PlayStation 4, Xbox One и Nintendo Switch во втором квартале 2021 года. Ужастик будет посвящён мифам и легендам южноамериканского фольклора. В The Origin:...

Численный FORTH Форт и сейчас известен, главным образом, среди разработки встроенных систем, как что-то вроде необычайного высокоуровневого ассемблера, например, для микроконтроллеров - AmForth и Mecrisp. Однако, когда-то давным давно был известен в другой ипостаси - как язык программирован...

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

Автоматизация тестирования при создании игр Введение: Автоматизированное тестирование во всю свою мощь используется многими компаниями. Юнит-тесты, Интеграционные тесты, UI тесты, ручное тестирование и прочие методы. Но почему-то в такой большой области, как GameDev автоматизация тестов сводится к тому, что билды пер...

Как «Ревущий Котёнок» с Reddit заработал 28.500% на акциях GameStop: объясняю простым языком Все обсуждают безумно красивую историю про то, как пацаны с Reddit смогли одолеть зазнавшиеся хедж-фонды, но далеко не все понимают, что именно происходило на рынках. В этой статье я объясняю простым языком, что конкретно привело к текущей ситуации. Читать далее

Rust. Borrow checker через итераторы Привет, Хабр! Я уже около года изучаю и, в свободное время, пишу на расте. Мне нравится как его авторы решили проблему управления памятью и обошлись без сборщика мусора — через концепцию заимствования. В этой статье подойду к этой идее через итераторы. Последнее время scal...

Представляем Windows Terminal Preview 1.7 Добро пожаловать в очередной релиз Windows Terminal! В этом релизе основной Терминал Windows переносится в версию 1.6, которая включает в себя все функции из этого предыдущего поста в блоге, за исключением пользовательского интерфейса настроек. Windows Terminal Preview перей...

TOTP (Time-based one-time Password algorithm) С ростом числа угроз кибербезопасности, для разработчиков становится все более и более необходимым обновлять стандарты безопасности веб-приложений и быть при этом уверенными в том, что аккаунты пользователей в безопасности. Для этого в настоящее время многие онлайн-приложени...

2D-to-3D: конструируем сервис для экспериментов с реконструкциями формы Привет, хабровчане! Сегодня мы хотим поделиться с вами нашим опытом по созданию сервиса для апробации моделей 3D реконструкции. В заметки мы:• кратко обсудим что из себя представляет задача 2D-to-3D, • взглянем на наиболее успешные алгоритмы и работы, • сравним ...

Древности: Roland MT-32, альтернативный звук для DOS-игр Не во всех играх под DOS есть настройки звука. Например, в Lemmings все просто работает. Или нет. Но там, где настройки все же имеются, они выглядят примерно так: Когда я играл в «Принца Персии» в девяностые, моим единственным выбором была верхняя строчка, по причине отсу...

[Перевод] Генерирование псевдослучайных чисел с помощью клеточного автомата: Правило 30 Генераторы псевдослучайных чисел выдают числа детерминировано, но обычно такие числа выглядят непериодическими (случайными). По крайней мере, в большинстве случаев применения подобных чисел так обычно и происходит. Генератор принимает начальное значение (в идеале — истинное ...

[Перевод] Как написать игру за месяц, не отвлекаясь от основной работы MoonGun — игра в жанре экшен/стратегия о защите лунной базы от астероидов. Игра была создана Ивенсом Серпой — автором множества статей о геймдизайне — в рамках Github Game Off Game Jam в ноябре 2020 года. Занимался он ей в одиночку в свободное от работы время. Игра получил...

Ambarella показала на CES 2020 новую робототехническую платформу Компания Ambarell, специализирующаяся на разработке процессоров для машинного зрения, продемонстрировала на выставке CES 2020 свою новую робототехническую платформу. Основанная на архитектуре Ambarella CVflow, она нацелена на использование в автоматически управляемых тр...

[Перевод] HyperBand и BOHB. Понимание современных алгоритмов оптимизации гиперпараметров Специально к старту курса «Машинное обучение» в этом материале представляем сравнение BOHB и HyperBand — двух передовых алгоритмов оптимизации гиперпараметров нейронной сети и простого случайного поиска оптимальных гиперпараметров. Сравнение выполняется с помощью платформы n...

Быстрый поиск касательных и пересечений у выпуклых многоугольников Я недавно сделал маленькую библиотеку для решения задачи поиска кратчайшего пути на 2D карте с выпуклыми препятствиями. В процессе реализации я придумал пару алгоритмов и трюков, описания которых я нигде не встречал. Поэтому делюсь этими "изобретениями" с обществе...

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

[Перевод] Алгоритм обратного распространения ошибки на примере Word2Vec Поскольку я столкнулся с существенными затруднениями в поисках объяснения механизма обратного распространения ошибки, которое мне понравилось бы, я решил написать собственный пост об обратном распространении ошибки реализовав алгоритм Word2Vec. Моя цель, — объяснить сущность...

HeroQuest DIY HeroQuest - это настольная ролевая игра, которая была выпущена в 1989 году (+ несколько дополнений, которые выходили в середине 90-х), после этого не переиздавалась. Стоимость оригинальной коробки с игрой на eBay начинается от 200 долларов (некомплект, плохое состояние), сре...

Redmi K30S Extreme Edition получил новое обновление программного обеспечения Китайская компания Xiaomi выпустила Redmi K30S Extreme Commemorative Edition. Смартфон был очень хорошо принят на внутреннем рынке компании, и устройство по-прежнему пользуется большим спросом, что вызывает проблемы с поставками. Новое обновление для Redmi K30S Extreme Comm...

Новый язык программирования — Relax Всем привет, я являюсь автором языка программирования Relax. На данный момент я разрабатываю RVM(RelaxVirtualMachine) И Relasm(Relax Assembly). Первые попытки сделать свой язык начались в конце лета 2020, тогда я и не думал что делать язык - это так сложно. Сам же проект Rel...

Обязательная вакцинация — новая реальность? В связи с пандемией новой коронавирусной инфекции все чаще поднимается вопрос обязательной вакцинации и ужесточения контроля со стороны правительства. Обсуждается введение паспортов вакцинации и иммунизации [1]. И похоже, что к моменту появления эффективной вакцины от COVID-...

Использование примесей (mixins) в Dart Несколько раз от коллег звучал вопрос о том, что не понятно, зачем вообще нужны mixin'ы (примеси) в языке Dart. Я решил посмотреть, что есть на просторах Интернета по этому вопросу. К великому огорчению в статьях, которые удалось найти в основном говорится о том, как использ...

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

Почему я ушел с React Native и перешёл во Flutter: Часть 1 Всем привет. Меня зовут Дмитрий Андриянов. Два года писал на React Native, сейчас я разработчик в Surf и уже полтора года пишу на Flutter. Когда я только решил серьёзно взяться за Flutter, я бы очень хотел найти статью от разработчика, который перешёл с React Native на Flutt...

«M: TG в реальном времени» Magic: ManaStrike от Netmarble вышла на iOS и Android Издатель Netmarble объявил о глобальном релизе Magic: ManaStrike — нового проекта во вселенной Magic: The Gathering. Напомним, что эта игра использует лишь элементы лора MTG, но не является карточной. По сюжету древний дракон Никол Болас после поражения в войне с Planeswalk...

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

До 2024 года рынок игр вырастет более чем на 119 млрд долларов Согласно последнему отчету Technavio, объем мирового игрового рынка в период с 2020 по 2024 год вырастет на 119,07 млрд долларов. Этот прогноз соответствует росту в среднем более чем на 12% в год в течение прогнозируемого периода. Рост в текущем году оценивается в 9,35%...

Обзор IT-Weekly (16.12 - 22.12.2019) «Газинформсервис» и СППУ выпустили тестовую версию платформ расширенной аналитики безопасности Ankey ASAP с функциями поведенческого анализа. Продукт формирует аналитический контент и модели поведения пользователей и компонентов (сущностей) корпоративной сети ...

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

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

Как заставить Arduino петь как ZX Spectrum. Часть 1: исторический экскурс ZX Spectrum 128 и его многочисленные клоны имели встроенный звукогенератор AY-3-8912, благодаря чему как зарубежные музыканты, так и наши соотечественники успели написать огромное количество музыки под этот компьютер.В двух частях этой статьи, приправленных щепоткой ностальг...

[Перевод] Алгоритм Беллмана-Форда В преддверии старта курса «Алгоритмы для разработчиков» подготовили очередной перевод интересной статьи. Задача: Дан граф и начальная вершина src в графе, необходимо найти кратчайшие пути от src до всех вершин в данном графе. В графе могут присутствовать ребра с отрицатель...

Мониторим основные сервисы в AWS с Prometheus и exporter’ами для CloudWatch Если вы используете в облачных провайдерах managed-инсталляции серверных служб вроде RDS или ElastiCache от AWS, то несомненно задавались темой мониторинга инфраструктуры, а главное — оповещений по произошедшим инцидентам. При реализации возникают понятные вопросы: Как можно...

Раздел «Refactor» в IDEA Эта статья - краткий обзор по разделу меню "Refactor" в IDEA для начинающих. Рассматриваются основные способы рефакторинга для Java-файлов, для большинства способов рефакторинга приведены анимированные картинки и примеры использованного кода.Осторожно, много тяжелых gif-карт...

Наблюдения за «погодными условиями» в проекте с C++/CLI Каждая команда в своей работе сталкивается с необходимостью внедрения новой технологии или языка программирования в проект. Иногда это внедрение проходит успешно, а иногда нет. В этой статье хотелось бы рассказать о нашем опыте использования C++/CLI. Читать далее

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

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

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

Surface Duo 2 исправит ключевые проблемы оригинальной модели В прошлом году Microsoft начала продажи собственного складного смартфона Surface Duo, который имеет отличный дизайн и уникальный форм-фактор. Но в то же время это довольно неоднозначное устройство, так как оно построено на базе устаревшего процессора Snapdragon, не поддержи...

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

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

13 стандартов code review, вдохновленных Google В этой статье мы кратко рассмотрим 13 стандартов code review, которые могут значительно улучшить состояние вашего программного обеспечения, а также сделать ваших разработчиков счастливее.

Введение: Соревнование от финансовой группы HOME CREDIT по определению риска дефолта заемщика В статье рассматривается соревнование по машинному обучению «Home Credit Default Risk», цель которого – использовать исторические данные о заявках на получение кредита, чтобы предсказать, сможет ли заявитель погасить ссуду (определить риск дефолта заемщик...

[Перевод] Анализ данных Twitter для ленивых в Elastic Stack (сравнение Xbox и PlayStation) Данные Twitter можно получить множеством способов — но кому хочется заморачиваться и писать код? Особенно такой, который будет работать без перебоев и перерывов. В Elastic Stack вы можете с легкостью собирать данные из Twitter и анализировать их. Logstash может в ...

Проблемы с производительностью в игре XCOM 2 Привет! Меня зовут Александр, я руководитель программистов компьютерной графики в Gaijin в проектах CRSED и Enlisted. Иногда, в свободное время, я исследую как устроена графика в других играх и нахожу там что-то интересное.Недавно я решил разобраться, почему XCOM 2 тормозит ...

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

PostgreSQL Antipatterns: работаем с отрезками в «кровавом энтерпрайзе» В различных бизнес-приложениях регулярно возникает необходимость решить какую-либо задачу с отрезками/интервалами. Самое сложное в них — понять, что это именно одна из таких задач. Как правило, они отчаянно маскируются, и даже у нас в СБИС их найти можно в абсолютно разных...

Эволюция дизайна интерфейса на примере компонента выбора метрик в GridGain Control Center В данной статье я расскажу об эволюции компонента выбора метрик, который используется в GridGain Control Center, а также об изменениях, которые он претерпевал как во внешнем виде, так и в еще большей степени в логике своей работы. Идея, которую я попытаюсь донести до читател...

Ambarella показала на CES 2020 новую робототехническую платформу Компания Ambarell, специализирующаяся на разработке процессоров для машинного зрения, продемонстрировала на выставке CES 2020 свою новую робототехническую платформу. Основанная на архитектуре Ambarella CVflow, она нацелена на использование в автоматически управляемых тр...

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

Анатомия таблиц LuaJIT и особенности их использования Не знаю как вы, а я люблю ковыряться в кишочках разных систем. И в этой статье хочу рассказать о внутреннем устройстве Lua-таблиц и их особенностях. Lua — мой основной язык программирования по долгу службы, и чтобы писать хороший код, надо хоть немного понимать, что происход...

Sony объявила список бесплатных игр за апрель Подписчикам PlayStation Plus стали доступны две игры в апрельском дайджесте. Ими стали Uncharted 4: A Thief's End и Dirt Rally 2.0. Игры будут доступны 7-го апреля. Uncharted 4: A Thief's End - компьютерная игра в жанре action-adventure с видом от третьего лица. Главный ге...

[Перевод] Head-of-Line Blocking в QUIC и HTTP/3: Подробности Как вы могли слышать, после четырех лет разработки протоколы HTTP/3 и QUIC приблизились к официальной стандартизации. Предварительные версии уже доступны для тестирования на серверах и браузерах. HTTP/3 обещает значительный прирост производительности по сравнению с HTTP/2,...

Как желание поиграть в шахматы превратилось в написание своего движка. История и реализация Всем привет! Меня зовут Борис Николаев, сегодня я хотел бы поделиться с вами своими наработками по технической реализации простого шахматного движка на Kotlin. Пару месяцев назад я посмотрел сериал «Ход королевы», и вполне ожидаемо, что сразу захотелось поиграть в шахматы. ...

Беги, муравей. Беги В данной статье рассматривается процесс создания имитационной модели поведения муравьиной колонии (можно почитать в википедии ) в среде имитационного моделирования «AnyLogic». Данная статься носит практический характер. В ней будет рассмотрен вопрос применения муравьиного ал...

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

Слух: первоначально PlayStation 5 будет доступна только в США и Канаде В этом году игровая индустрия столкнулась с серьёзными проблемами из-за пандемии COVID-19. И речь не только о студиях, которые вынуждены переносить релизы своих игр на более поздний срок, но и о консолях нового поколения, производство которых оказалось затруднено из-за необ...

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

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

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

Рекомендательный движок за 2 строчки кода Эта статья про то, как можно сделать рекомендации на сайт, если один из ключевых критериев — скорость. Нужно это, например, тогда, когда существующая система к набору молотков рекомендует заготовку для выпиливания лобзиком (как это было у нас) или когда её вообще нет.Алгорит...

Boardgame.io: движок для пошаговых игр Boardgame.io — бесплатный открытый клиент-серверный движок для пошаговых многопользовательских “настольных” (пошаговых) игр. Вы пишите простые функции, описывающие, как состояние игры изменяется при выполнении определенного хода, а движок делает все остальное, автомати...

Зона доступа: 30 способов, которые позволят разблокировать любой смартфон. Часть 2 По правде говоря, технические методы разблокировки мобильных устройств не являются самоцелью для компьютерного криминалиста. Его основная задача — получить доступ к данным, хранящимся в памяти. Поэтому, если исследователю удается извлечь информацию из устройства в обход ус...

[Перевод - recovery mode ] Учебный проект на Python: алгоритм Дейкстры, OpenCV и UI ( часть 1) Лабиринты — это распространенная головоломка для людей, но они представляют из себя интересную задачу для программирования, которую мы можем решить, используя методы кратчайшего пути, такие как алгоритм Дейкстры. Вспоминаем алгоритм Дейкстры Алгоритм Дейкстры — один из наиб...

Повторяем когортный анализ. Комплексный подход — Python, SQL, Power BI Добрый день уважаемые читатели! Данная статья является продолжением публикации "Повторяем когортный анализ, выполненный в Power BI, силами Python" (ссылка). Настоятельно рекомендую познакомиться с ней хотя бы бегло, иначе последующее повествование будет вам малопонятным. С м...

Story of a Gladiator – кровь, песок и много противников (Mac) В различных играх пользователям достаточно часто приходится принимать участие в сражениях на разнообразных аренах. В большинстве случаев такие бои не являются центральной частью игрового процесса. Однако разработчики из Brain Seal решили не следовать канонам. Они построили с...

Из ничего к ЦОД с VXLAN/EVPN или как готовить Cumulus Linux. Часть 2 Всем привет. Вот и подошло продолжение первой части. Как и обещал, в данной статье, я хочу затронуть основные варианты реализации фабрики на VXLAN/EVPN, и рассказать почему мы решили выбрать то или иное решение в нашем ЦОД. Читать далее

[Перевод] Реверс-инжиниринг и сравнение двух чипов аудио усилителей Game Boy У Nintendo Game Boy есть чип усилителя аудио, использующийся для звуков, которые издают динамик и наушники. В данной статье я опишу реверс-инжиниринг этого чипа и сравню его с более поздней версией от Game Boy Color (который я разбирал ранее). Неожиданно оказалось, что Game ...

Цифровая телеведущая Елена о том, как компьютерам доверяют выбор имени для ребёнка Роботы не знают усталости, а мы не знаем горизонтов графомании, поэтому продолжаем наши еженедельные видеовыпуски новостей с цифровой телеведущей Сбербанка (SberDevices), Еленой. Сегодня кратко расскажем о любимых брендах молодёжи, новом градусе слежки за людьми в России и к...

Оценка достоверности отчетов об ошибках с помощью анализа временных рядов Привет, Хабр! Меня зовут Илья Селицер. В DINS мы участвуем в разработке продукта для UCaaS-провайдера RingCentral, которая объединяет много функций — от звонков и факса до корпоративного мессенджера и видеоконференций. Я, среди прочего, отвечаю за качество этого сервиса. В п...

Игровой магазин Epic Games добавила функцию достижений Магазин Epic Games имеет ряд функций, которые описаны в планах компании. Одной из самых востребованных функций является достижения, которую разработчики выпустили пару дней назад. Это не окончательная версия функции, разработчики продолжают работать над ней и на данный момен...

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

Доступ к элементам std::tuple во время исполнения программы При тестировании разрабатываемой библиотеки математических алгоритмов для автономного вождения нашей команде приходилось достаточно много манипулировать с кортежами (std::tuple): итерироваться по каждому элементу кортежа или в произвольном порядке, выбирать элементы, чьи инд...

[Перевод] Как улучшить резюме с помощью алгоритмов обработки текстов на естественных языках Рекрутеры используют всё более сложное ПО и инструменты для анализа и сопоставления присылаемых резюме с размещёнными вакансиями и описанием должностных обязанностей в них. Если в вашем резюме будет представлена только общая информация или если ваши ответы на описание должно...

Детские шалости: как Roblox стала одной из самых дорогих игровых компаний современности Убыточная детская платформа для создания компьютерных игр Roblox с третьей попытки вышла на биржу, и её рыночная оценка тут же побила все самые смелые прогнозы. Сейчас она стоит больше, чем Take-Two (издатель Grand Theft Auto) и Ubisoft (разработчик серии Assaisin’s Creed) в...

В Epic Games Store бесплатно раздают игры The Escapists и The Wolf Among Us Магазин цифровой дистрибуции Epic Games Store устроил очередную бесплатную раздачу игр для своих пользователей. На этой неделе предлагается возможность получить игру The Escapists, разработанную компанией Mouldy Toof Studios и выпущенную в 2015 году, а также проект The Wolf ...

Новые функции умных часов Huawei Watch 3 и Watch GT 3 Huawei сегодня рассказала, в каком направлении будут развиваться технологии определения витальных показателей в фирменных умных часах. Как оказалось, Huawei сейчас работает над тремя исследованиями, которые уже в текущем году преобразуются во встроенные алгоритмы нового поко...

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

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

[Перевод] Перестаньте использовать Page Objects (РО) и начните использовать App Actions Написание поддерживаемых сквозных тестов — это сложная задача. Часто тестировщики создают косвенный слой веб-страницы, называемый page objects, для выполнения общих действий. В этой статье я утверждаю, что page objects — это плохая практика, и предлагаю непосредственно обрат...

Ультразвуковая система определения координат 2.0 Ультразвуковая система определения координат 2.0 О чем эта статья: Эта статья описывает принципы работы моей системы определения координат, и мой опыт её изготовления. Данная статья не является инструкцией по изготовлению навигационной системы, ибо это не так просто, чтобы о...

Spotify получила патент, в котором описывается алгоритм изучения голоса пользователя и подбора музыки на его основе Сегодня портал The Next Web рассказал о полученном патенте Spotify, в котором описывается система определения настроения пользователя на основе аудиоданных с микрофона. Патент был выдан ещё 12 января, но журналисты смогли обнаружить его только сегодня. Источник изображения: ...

А что, если без Python? Julia для машинного обучения и вообще Мы всегда хотим писать код быстро, но за это приходится платить. На обычных высокоуровневых гибких языках можно быстро разрабатывать программы, но после запуска они работают медленно. Например, чудовищно медленно cчитать что-то тяжелое на чистом Python. Си-подобные языки раб...

Почему монитор с IPS-матрицей и задержкой 1 мс является лучшим выбором для геймера К выбору монитора для игр нужно относиться еще более ответственно, чем к выбору видеокарты. Монитор покупается не на полгода или год, его нельзя модернизировать как компоненты компьютера. На что стоит обратить внимание при покупке геймерского монитора в 2020 году, какие техн...

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

Дайджест по посадкам. ИБ-специалисту на заметку Весна, карантин и заколосившаяся рассада на подоконнике навеяли забавное название для поста. Но содержимое его вполне серьёзно. Работаю я в SearchInform и раньше довольно часто доводилось слышать мнение, что DLP-система и суд – понятия несовместимые. Мол, эта игра не стоит с...

Процедура обновления Check Point с R80.20/R80.30 до R80.40 Более двух лет назад мы писали о том, что перед каждым администратором Check Point рано или поздно встает вопрос обновления на новую версию. В данной статье было описано обновление с версии R77.30 до R80.10. К слову, в январе 2020-го стала сертифицированной версией ФСТЭК. а ...

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

Сразу четыре игры для Android-смартфонов стали бесплатными Нескольким ранее мы писали о большой распродаже компьютерных игр в Ubisoft Store. Однако хорошие новости есть и для любителей мобильных игр. Так, сразу четыре игры для Android-смартфонов стали бесплатными.

[Перевод] Как я изучал структуры данных и алгоритмы для собеседования в FAANG Продолжая тему устройства в FAANG, которую уже мы поднимали в нашем блоге, и специально к старту нового потока нашего курса по алгоритмам сегодня делюсь описанием пути Эско Обонга, старшего инженера-программиста Uber. Эта история началась в 2015 году, когда стартап, к котор...

CVE-2019-18683: Эксплуатация уязвимости в подсистеме V4L2 ядра Linux В данной статье описана эксплуатация уязвимости CVE-2019-18683 в ядре Linux, которую я обнаружил и исправил в конце 2019 года. Указанный CVE-идентификатор присвоен нескольким аналогичным ошибкам типа «состояние гонки», которые присутствовали в подсистеме V4L2 ядра Linux на п...

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

Реализация моделей динамических систем средствами контроллера За основу задания динамических свойств систем может быть принята любая из форм представления операторов: дифференциальные уравнения (ДУ), передаточные функции (ПФ), временные характеристики (ВХ) или частотные характеристики (ЧХ), однако для конкретных задач целесообразно выб...

Armored Warfare: Проект Армата. Хроматическая аберрация Armored Warfare: Проект Армата — бесплатный танковый онлайн-экшн, разрабатываемый Allods Team, игровой студией MY.GAMES. Несмотря на то, что игра сделана на CryEngine, достаточно популярном движке с неплохим realtime render’ом, для нашей игры приходится многое дорабатывать...

[Перевод] Vanilla All the Way. Ванильное облачное решение на K8s Публикуем перевод статьи о Vanilla Stack — новой облачной open-source технологии на основе Kubernetes. Недавно я наткнулся на стек технологий Vanilla Stack, включающий в себя множество компонентов с открытым кодом. В этой статье мы кратко рассмотрим процесс их установки и ра...

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

Ленивая склейка модулей Android-приложения Тема многомодульности уже давно витает в среде Android-разработчков. За много лет проб и ошибок, выработались определённые подходы к разбиению приложения на модули. В целом о принципах разбиения на модули есть хорошая статья Андрея Берюхова: https://habr.com/ru/company/kaspe...

Азино777 официальный сайт Вы готовы окунуться в чрезвычайных доходов вместе с лучшими игровыми автоматами и настольными развлечениями от проверенных провайдеров? Азино777 официальный сайт экономит ваши деньги, потому что выдает бездепозитные бонусы, большие проценты кешбеков, которые в значительной с...

Детские часы Xiaomi Mi Bunny 4 с двумя камерами и 5G представлены официально В пятницу компания Xiaomi выпустила детские часы Mi Bunny's Watch 4, стартовая цена которых составляет 899 юаней, что примерно равно 127 долларам. В тот же день был открыт прием предварительных заказов на устройство, и те, кто забронирует для себя новинку и внесет предпродаж...

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

Шутер от первого лица Necromunda: Hired Gun выйдет 1 июня Представлен шутер Necromunda: Hired Gun. Разработкой игры занимается студия Streum On Studio. Necromunda: Hired Gun представляет собой шутер от первого лица, действие которого происходит во вселенной Warhammer 40,000. В игре будет обширный арсенал оружия с возможностью ап...

Игра The Witness для iPhone и iPad: Превосходнейшая головоломка о тщетных поисках универсальных принципов Среди мобильных и компьютерных игр хватает таких, которые только притворяются оригинальными и глубокомысленными, но на деле вся их интеллектуальность оказывается лишь беспочвенной заявкой на нее. По неосторожности в категорию таких проектов можно отнести и The Witness для iP...

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

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

Numl – Альтернативный язык разметки и стилизации для веб Всем привет! Меня зовут Андрей, я профессионально разрабатываю веб-интерфейсы уже больше 11 лет и последний год развиваю проект Numl, который можно назвать языком разметки и стилизации для веб. В этой статье я расскажу, как в попытке перебороть ряд особенностей CSS и упрости...

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

Машинное обучение на помощь руководителю разработки Интро Интерес к теме машинного обучения и искусственного интеллекта неуклонно растет. Ежедневно в новостных сводках мы читаем про победу искусственного интеллекта над человеком. Как правило, описывается решение некоторой сложной задачи (челенджа). От жгучего желания воспрои...

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

Google объявил об обновлении основного алгоритма Апдейт займет несколько дней

Как устроен Sporth — ЯП для музыкальных live-сессий Один из предыдущих материалов мы посвятили OpenMusic — инструменту для написания музыки на ООП. Мы также говорили о языках программирования, заточенных под создание аудиокомпозиций. Сегодня мы решили продолжить тему и рассказать о языке Sporth. Его разработали специально, ч...

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

Прыжок до небес: запускаем телеграм бота на Python в serverless облаке Одним из современных архитектурных подходов в области облачных вычислений является, так называемый, Serverless. Этот способ запуска приложений в облаке освобождает разработчиков от нужды администрировать сервер и заботиться о чем-то, кроме кода.Очевидно, что для такой задачи...

7 Кругов SPM или как сделать модульное приложение на Swift Package Manager Думаю, многие разработчики сталкивались с задачей, когда нужно разбить проект на модули. В этой статье нет информации о том, как решать циклические зависимости или выделять по слоям функционал, подразумевается, что это уже реализовано. Цель статьи — описать проблемы с которы...

В квантовом алгоритме Google нашли ограничения Группа учёных из Deep Quantum Labs Центра по фотонике и квантовым материалам московского Сколковского института науки и технологий во главе с профессором Джейкобом Биамонте обнаружила и количественно оценила слабые стороны алгоритма Google. Американская корпорация Google стр...

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

Трилогия Danganronpa выйдет на мобильных устройствах Danganronpa — довольно популярная в определенных кругах серия игр в жанре визуального романа, включающая Trigger Happy Havoc и Goodbye Despair, а также несвязанную с ними Dananronpa V3: Killing Harmony. Японское издание Famitsu сообщает, что вся серия выйдет на мобильных в ...

Основы Bash-скриптинга для непрограммистов. Часть 3 Во второй части статьи мы обсудили файлы скриптов, их параметры и права доступа. Также поговорили про операторы условного выполнения, выбора и циклы. В этой, заключительной части мы рассмотрим функции и планировщик заданий cron. Также приведу различные полезные команды и ссы...

MOBA MARVEL Super War вышла в режиме пробного запуска на iOS и Android Компания NetEase объявила о релизе в режиме пробного запуска новой MOBA под названием MARVEL Super War. В игре вас ждут все популярные персонажи киновселенной MARVEL: Мстители, Люди Икс и другие. Основной режим традиционный для жанра — сражения 5-на-5 в реальном времени. Бо...

YOLOv4 – самая точная real-time нейронная сеть на датасете Microsoft COCO Эта же статья на medium: medium Код: github.com/AlexeyAB/darknet Статья: arxiv.org/abs/2004.10934 Мы покажем некоторые нюансы сравнения и использования нейронных сетей для обнаружения объектов. Нашей целью было разработать алгоритм обнаружения объектов для использования в...

Хеш четкий и хеш нечеткий. Как антивирусы ловят и классифицируют малварь Для подписчиковСоздатели вредоносных программ используют массу разных методов, чтобы скрыть свои творения от антивирусных средств и статических-динамических анализаторов. Однако и антивирусы для поиска «родственных» семплов разрабатывают продвинутые алгоритмы хеширования. Се...

«Яндекс» внедрил «Вегу» — изменяет и оптимизирует алгоритмы поиска Представленное командой Яндекса глобальное поисковое обновление «Вега» способствует не только более конкретизированным ответам на запрос пользователя, а также рассмотрению сигналов от асессоров-экспертов. Читать полную статью

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

Видеокарты AMD Radeon RX 6000 будут поддерживать все игры с трассировкой лучей на основе Microsoft DXR и Vulkan AMD заявила, что новые видеокарты серии Radeon RX 6000 с архитектурой RDNA 2 будут иметь полную поддержку трассировки лучей в играх, где используются API-интерфейсы Microsoft DXR и Vulkan Raytracing. Поскольку они являются отраслевыми стандартами, то в большинстве игр уже и...

Tencent работает над мобильной Assassin's Creed для китайских геймеров Один известный инсайдер под ником Daniel Ahmad решил порадовать мобильных геймеров. По всей видимости Ubisoft хочет нарастить количество условно-бесплатных проектов по своим популярным франшизам. И первой из них будет Assassin's Creed для китайских геймеров. Точного названия...

[Перевод] kotlinx.coroutines 1.4.0: представляем StateFlow и SharedFlow Сегодня мы с радостью объявляем о выходе версии 1.4.0 библиотеки Kotlin Coroutines. Основными новшествами этого релиза стали StateFlow и SharedFlow, которые теперь являются стабильными API-интерфейсами. StateFlow и SharedFlow предназначены для использован...

Платформа анализа данных. Умные алгоритмы в сельском хозяйстве 22 июля в еженедельной программе «Цифровая среда» Денис Касимов, генеральный директор Factory5 (входит в ГК Ctrl2GO), расскажет, как умные алгоритмы помогают планировать сельскохозяйственные работы, вовремя ремонтировать технику и избавляться от ...

HKDF: как получать новые ключи и при чем тут хэш-функции Для современных алгоритмов шифрования одним из факторов, влияющих на криптостойкость, является длина ключа.Но что поделать, если существующие ключи не обладают достаточной длиной для их безопасного использования в выбранных нами алгоритмах? Тут на помощь приходит KDF (Key De...

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

[Из песочницы] HTTP Error 503. Service Unavailable: случай в поддержке хостинга Работа в поддержке хостинга в основном однотипная, большинство запросов от клиентов решаются по проработанной схеме, но иногда всё же приходится сталкиваться с нетривиальными проблемами. Тогда главная задача инженера — найти тот самый — единственно верный путь, который приве...

В Сколтехе разработали программный алгоритм синхронизации времени на нескольких смартфонах Алгоритм позволяет создать полноценную сенсорную сеть, объединив несколько устройств.

Первые результаты январского обновления алгоритма Google Издание Search Engine Land опросило ряд поставщиков данных, чтобы выяснить, как последнее обновление основного алгоритма Google – January 2020 Core Update – повлияло на результаты поиска. Как известно, Google приступил к запуску обновления 13 января. По состоянию на 17 январ...

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

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

Google запустил обновление основного алгоритма Развертывание на весь мир займет одну-две недели

Вы точно ничего не пропустили Майское обновление основного алгоритма Google и мероприятия Яндекса

Как мы используем алгоритмы компьютерного зрения: обработка видео в мобильном браузере с помощью OpenCV.js Для идентификации личности онлайн уже есть все возможности, но пока их применяют крайне редко. Пожалуй, одними из первых мы реализовали оптимальный сценарий для пользователя – зайти на сайт со смартфона, сфотографировать свои водительские права или паспорт и отправить данные...

Случайности не случайны: кто такие семейства псевдослучайных функций (PRFs) В 1984 году Голдрайх, Голдвассер и Микали в своей статье формализовали концепцию псевдослучайных функций и предложили реализацию PRF, основанную на псевдослучайном генераторе (PRG) с удвоением длины. С тех пор псевдослучайные функции показали себя чрезвычайно важной абстракц...

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

[Перевод] Random Forest, метод главных компонент и оптимизация гиперпараметров: пример решения задачи классификации на Python У специалистов по обработке и анализу данных есть множество средств для создания классификационных моделей. Один из самых популярных и надёжных методов разработки таких моделей заключается в использовании алгоритма «случайный лес» (Random Forest, RF). Для того чтобы попытать...

[Перевод] Реверс-инжиниринг популярного античита BattlEye BattlEye — это преимущетвенно немецкий сторонний античит, в основном разрабатываемый 32-летним Бастианом Хейко Сутером. Он предоставляет (или пытается предоставить) издателям игр простую в применении систему античита, использующую механизмы общей защиты, а также обнаружение...

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

[Перевод] Создание арт-объектов, игр и много чего ещё с использованием числа Пи и Python Число Пи — пожалуй, самое знаменитое число в мире. Это единственное число, ради которого учредили особый день в году — День числа пи, отмечаемый 14 марта. В этой статье мы рассмотрим различные особенности числа π и попробуем с его помощью создать что-нибудь развлекательное, ...

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

2048 WASM или игра на Rust за 2 дня Данная статья представляет из-себя эксперимент с Rust'ом с последующей его компиляцией в WASM. Было интересно пощупать данные технологии на чем-то сложнее, чем вычисление факториала, поэтому выбор пал на всем известную игру 2048. Читать дальше →

Морская пехота США экспериментирует с новым противотанковым оружием После того, как в прошлом году командование морской пехоты США полностью отказалось от танков, начались поиски их адекватной замены. Основная задача – сделать морпехов для противника более опасными, чем прежде. Как мы писали ранее, США готовятся к возможному захвату военных ...

Настоящая оптимизация на C/C++ Это продолжение двух постов (первый, второй). В этот раз оптимизация будет произведена на реальной задаче, с правильно построенной методологией тестирования. Задачу возьмем из нашумевшего поста «Алгоритм перевода числа (байтов) в приставку СИ», она интересна тем, что на перв...

Демон Тьюринга В физике, точнее, в термодинамике, есть такое мифическое существо — демон Максвелла. Так называют вымышленное сверхминиатюрное создание, которое сидит в сосуде с газом и открывает или закрывает дверцу перед летящими молекулами. Действуя по алгоритму «пропускать молекулы со с...

[Из песочницы] Создание браузерных 3d-игр с нуля на чистом html, css и js. Часть 1/2 Современная вычислительная техника позволяет создавать классные компьютерные игры! И сейчас, достаточно популярны игры с 3d-графикой, так как, играя в них, ты окунаешься в вымышленный мир и теряешь всякую связь с реальностью. Развитие интернета и браузерных технологий сделал...

Компьютерную игру For the King можно получить бесплатно в магазине Epic Games For the King это солянка жанров, в игре присутствуют элементы стратегии, пошаговая боевая система и приключенческий характер. В игре есть два режима игры: одиночная и многопользовательская. Игра разработана в художественном стиле. Игровой магазин Epic Games на данный момен...

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

VVVVVV??? VVVVVV!!! :) Если вы читаете этот текст – значит, вы либо подумали, что с заголовком статьи что-то не то, либо увидели в нём название знакомой компьютерной игры. VVVVVV – это инди-игра в жанре «платформер», завоевавшая сердца многих игроков своей приятной внешней простотой и не менее при...

[Из песочницы] Web2Text: глубокое структурированное извлечение содержимого web-страницы Привет, Хабр! Представляю вашему вниманию перевод статьи "Web2Text: Deep Structured Boilerplate Removal" коллектива авторов Thijs Vogels, Octavian-Eugen Ganea и Carsten Eickhof. Веб-страницы являются ценным источником информации для многих задач обработки естествен...

Переделка CNC 3018 Pro на рельсы. Личный опыт. Часть 1 Дамы и господа, здравствуйте!Опишу тех. процесс доработки станочка. Так же предложу варианты (если это возможно) для упрощения доработки. Основной посыл данного поста - не бояться работать руками!Технология переделки не моя, акцентирую на этом внимание.При написании статьи я...

Модули в JavaScript Фронтенд-разработчики каждый день используют модули. Это может быть функция из локального файла или сторонняя библиотека из node_modules. Сегодня я кратко расскажу об основных модульных системах в JavaScript и некоторых нюансах их использования. Читать дальше →

Xbox Series X может серьёзно разочаровать владельцев Windows 10 Компания Microsoft начала вчера международные продажи своих игровых приставок следующего поколения — Xbox Series X и Xbox Series S. Тем временем в сети появляется всё больше отзывов и открытий на их счёт по итогам реального использования.   Мы уже писали о р...

Core Updates Google охватывают весь контент в индексе Обновления основного алгоритма Google распространяются на весь контент в индексе поисковой системы

Как получить OpenID/OAuth2 токен для тестирования front-end rest сервисов? Есть задача нагрузочно потестировать фронтальные веб рест апи. Ресты защищены OAuth с Authorization Code Grant. Значит появляется необходимость наличия валидного токена для Authorization: Bearer TOKEN. Вопрос — как его взять? И так это сделать красиво и правильно? Вот тут я...

[Из песочницы] Null safety в Dart Привет, Хабр! Представляю вашему вниманию перевод статьи «Announcing sound null safety» автора Filip Hracek с моими комментариями: Null safety — безопасная работа с пустыми ссылками. Далее по тексту для краткости и по причине устойчивости термина будет использоваться англий...

[Из песочницы] Как использовать сторонние сборки в Plug-In Проблема Я, и думаю многие разработчики MS Dynamic CRM (в моём случае это 2016 on premise) столкнулись с проблемой, для того что бы использовать сторонние сборки, необходимо их объединять с основной сборкой и потом её регистрировать в Plugin Registration Util. Как пример мн...