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

OpenSceneGraph: Основы работы с текстурами Введение Мы уже рассматривали пример, где раскрашивали квадрат во все цвета радуги. Тем не менее существует и другая технология, а именно применение к трехмерной геометрии так называемой текстурной карты или просто текстуры — растрового двухмерного изображения. При этом во...

[Перевод] Структуры данных для программистов игр: bulk data Любому программисту будет полезно понимание различных структур данных и способов анализа их производительности. Но на практике мне ни разу не пригождались АВЛ-деревья, красно-чёрные деревья, префиксные деревья, списки с пропусками, и т.д. Некоторые структуры данных я исполь...

[Перевод] 13 полезных приёмов по работе с массивами в JavaScript, которые могут вам пригодиться Массивы являются одной из самых популярных структур данных в JavaScript, потому что они используются для хранения данных. Кроме этого, массивы дают много возможностей для работы с этими самыми данными. Понимая, что для тех, кто находится в начале пути изучения JavaScript, ма...

[Перевод] Что нужно знать о массивах JavaScript Представляем вам перевод статьи автора Thomas Lombart, которая была опубликована на сайте medium.freecodecamp.org. Перевод публикуется с разрешения автора. Пример использования метода reduce для сокращения массива Позвольте мне сделать смелое заявление: циклы часто бывают...

Основы формата GLTF и GLB, часть 1 Что такое GLTF и GLB? GLTF (GL Transmission Format) — это формат файла для хранения 3Д сцен и моделей, который является крайне простым в понимании (структура записана в стандарте JSON), расширяемым и легко взаимодействующим с современными веб-технологиями. Данный формат хоро...

Основы формата GLTF и GLB, часть 2 Данная статья является продолжением рассмотра основ GLTF и GLB форматов. Вы можете найти первую часть статьи здесь. В первой части мы рассмотрели с вами зачем изначально планировался формат, а также такие артефакты и их атрибуты GLTF формата как Scene, Node, Buffer, BufferVi...

[Перевод] Объёмный рендеринг в WebGL Рисунок 1. Пример объёмных рендеров, выполненных описанным в посте рендерером WebGL. Слева: симуляция пространственного распределения вероятностей электронов в высокопотенциальной молекуле белка. Справа: томограмма дерева бонсай. Оба набора данных взяты из репозитория Open ...

[Перевод] Полное руководство по массивам и срезам в Golang Перевод статьи подготовлен специально для студентов курса «Разработчик Golang», занятия по которому начинаются уже сегодня! Поначалу легко воспринимать массивы и срезы как одно и то же, но с разными названиями: и то и другое является структурой данных для представления ко...

[Перевод] Как работают методы persist, merge из JPA и методы save, update, saveOrUpdate из Hibernate Добрый день, друзья. Перевод статьи подготовлен специально для студентов курса "Разработчик Java". Введение В этой статье я собираюсь показать вам, как работают методы persist, merge из JPA и сравнить их с методами save, update, saveOrUpdate из Hibernate. Хотя лучше испол...

[Перевод] Функциональный JavaScript: пять способов нахождения среднего арифметического элементов массива и метод .reduce() Методы итерирования массивов похожи на «стартовые наркотики» (это, конечно, не наркотики; и я не говорю, что наркотики — это хорошо; это — просто фигура речи). Из-за них многие «подсаживаются» на функциональное программирование. Всё дело в том, что они невероятно удобны. Кро...

Введение в ECMAScript 2017 (ES8) Оглавление Предисловие Краткий обзор ES7 1. Object.entries 2. Object.values 3. String.prototype.padEnd 4. String.prototype.padStart 5. Object.getOwnPropertyDescriptor 6. Trailing commas 7. SharedArrayBuffer 8. Atomics 9. Async functions Предисловие Здравствуйте, в прошлом я...

Работа с API КОМПАС-3D → Урок 14 → Многострочный текст На предыдущем уроке мы рассмотрели, как выводить многострочный текст с помощью параграфа. Описанный способ требует ручного обхода массива выводимых строк. На данном уроке мы рассмотрим альтернативный способ, лишенный этого недостатка. В его основе лежит интерфейс ksTextParam...

NetApp запустила массив хранения данных NetApp EF600 Компания NetApp объявила о запуске массива хранения данных NetApp EF600. Это система среднего уровня хранения данных со сквозной поддержкой NVMe, позволяющая ускорять доступ к данным для чувствительных к производительности ...

[Перевод] Учебный курс по React, часть 21: второе занятие и практикум по условному рендерингу Сегодня, в переводе следующей части учебного курса по React, мы предлагаем вашему вниманию второе занятие по условному рендерингу и практикум по этой теме. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: ф...

[Перевод] Учебный курс по React, часть 20: первое занятие по условному рендерингу Сегодня, в переводе следующей части учебного курса по React, мы поговорим об условном рендеринге. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: файлы компонентов, структура проектов → Часть 4: родительск...

[Перевод] Учебный курс по React, часть 19: методы жизненного цикла компонентов В сегодняшней части перевода учебного курса по React вашему вниманию будет представлен обзор методов жизненного цикла компонентов. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: файлы компонентов, структу...

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

Spring Data JPA В статье опишу использование Spring Data. Spring Data — дополнительный удобный механизм для взаимодействия с сущностями базы данных, организации их в репозитории, извлечение данных, изменение, в каких то случаях для этого будет достаточно объявить интерфейс и метод в нем, ...

[Из песочницы] Методы эффективного преобразования информации на основе модифицированной формулы Бэйли — Боруэйна — Плаффа Описание Указанный ниже метод позволяет осуществлять эффективное преобразование цифровых последовательностей любой размерности, что в свою очередь применимо в области обработки цифровой информации. Ниже рассмотрено два вычислительных способа: Преобразование объемной послед...

Передача двумерных списков из python в DLL Всем привет. Решил несколько дополнить статью C/C++ из Python. Передача стандартных типов, таких как int, bool, float и так далее довольно проста, но мало необходима. С такими данными быстро справится и сам python, и врядли у кого-то возникнет необходимость вынесения части т...

[Из песочницы] JPEG от мира 3D. Что такое glTF? Определение и краткая история GLTF (GL Transmission Format) — это формат файла для хранения 3Д сцен и моделей, который является крайне простым в понимании (структура записана в стандарте JSON), расширяемым и легко взаимодействующим с современными веб-технологиями. Данный фор...

Apache, ViewState&Deserialisation В данной статье рассмотрим уязвимость на основе подмены сериализованного Java-объекта ViewState и метод её эксплуатации на примере web-приложения виртуальной машины с HackTheBox, использующей технологию Apache MyFaces. Читать дальше →

Статическое распределение объектов FreeRTOS По умолчанию все объекты в системе FreeRTOS распределяются динамически — очереди, семафоры, таймеры, задачи (потоки), и мьютексы. Программист видит только «кучу» — область где динамически выделяется память по запросу программы или системы, а что там творится внутри – не ясно...

[Перевод] Учебный курс по React, часть 11: динамическое формирование разметки и метод массивов map В сегодняшней части перевода учебного курса по React мы поговорим об использовании стандартного метода массивов map() для организации динамического формирования JSX-разметки, описывающей наборы однотипных элементов. → Часть 1: обзор курса, причины популярности React, Reac...

Наследование в C++: beginner, intermediate, advanced В этой статье наследование описано на трех уровнях: beginner, intermediate и advanced. Expert нет. И ни слова про SOLID. Честно. Beginner Что такое наследование? Наследование является одним из основополагающих принципов ООП. В соответствии с ним, класс может использовать пер...

Swift против Rust — бенчмаркинг на Linux с (не)понятным финалом Привет, Хабр! Периодически посматриваю на Swift в качестве языка прикладного программирования для Linux — простой, динамичный, компилируемый, без сборщика мусора, а значит, теоретически, пригоден и для устройств. Решил сравнить его с чем-то таким же молодым и модным — напри...

JPMorgan презентовал новое решение для повышения конфиденциальности Ethereum-платежей Американский финансовый холдинг JPMorgan представил новый механизм обеспечения анонимности для блокчейнов на основе Ethereum, сообщает CoinDesk. Решение представляет собой расширение для протокола Zether — механизма конфиденциальных платежей, который совместим с Еthereum и д...

MIT и Ford представили новый метод навигации для роботов-курьеров Инженеры из Массачусетского технологического института (MIT) и Ford Motor разработали новый метод ориентирования для роботов-доставщиков. Благодаря новому методу навигации роботы во время движения ориентируются по специальным подсказкам на местности без помощи GPS. Так на...

Использование DiagnosticSource в .NET Core: практика В предыдущей статье я рассказал про механизм DiagnosticSource и на простом примере показал, как с его помощью можно перехватывать запросы в базу данных через классы SqlConnection и SqlCommand и измерять время их выполнения. В настоящее время DiagnosticSource уже используется...

Autodesk Maya: полезные базовые функции для работы с 3Д моделями Недавно я столкнулся лицом к лицу с таким зверем как Autodesk Maya. За плечами у меня не было опыта в работе с 3Д моделированием и пришлось в экстренном порядке прокачиваться, начиная с основ, а также ознакомится с функциональностью данного ПО, чтобы проверить работу плагина...

[Из песочницы] JavaScript в 3D: введение в Three.js Привет, Хабр! Представляю Вашему вниманию перевод статьи «JavaScript in 3D: an Introduction to Three.js» автора Брета Кемерона (Bret Cameron). Введение Three.js это мощный инструмент. Он помогает использовать 3D дизайн в браузере с приемлемой производительностью. По нач...

OpenSceneGraph: Управление окнами и режимами отображения Введение Мы уже говорили о том, что класс osg::Camera управляет связанным с ним графическим контекстом OpenGL. Графический контекст инкапсулирует информацию о том, как и куда происходит отрисовка объектов и какие атрибуты состояния к ним применяются. Под контекстом понимают...

Преобразование полигональных моделей в граничное представление: алгоритм и примеры кода В большинстве систем проектирования (САПР) основным представлением моделируемого объекта является граничное представление геометрии или B-rep (Boundary representation). Но все чаще пользователям САПР приходится иметь дело с полигональными моделями, например, полученными в ре...

[Из песочницы] Методы сжатия/хранения медиа данных в форматах WAVE и JPEG, часть 1 Здравствуйте! Моя первая серия статей будет направлена на изучение методов сжатия и хранения изображений/звука, таких как JPEG (изобр.) и WAVE (звук), также в них будут примеры программ с использованием этих форматов (.jpg, .wav) на практике. В этой части мы рассмотрим именн...

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

[Перевод] Есть ли что-то общее у разных песен-хитов? Если выполнить вход на Spotify.me, то можно получить персонализированную сводку того, как Spotify понимает вас через музыку, которую вы слушаете на этом сайте Spotify. Это круто! Я слушаю много музыки и люблю работать с данными, поэтому это вдохновило меня на попытку анали...

[Перевод] Учебный курс по React, часть 25: практикум по работе с формами В сегодняшней части перевода учебного курса по React вам предлагается выполнить практическое задание по работе с формами. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: файлы компонентов, структура проект...

IBM LTO-8 – простой способ хранить «холодные» данные Привет, Хабр! По статистике 80% данных устаревают в течение 90 дней и больше активно не используются. Весь этот массив данных нужно где-то хранить и желательно хранить с наименьшими затратами. И при этом иметь простой и быстрый доступ в случае необходимости. В последние ...

[Перевод] Учебный курс по React, часть 23: первое занятие по работе с формами В этой части перевода учебного курса по React мы поговорим о работе с формами. В частности, сегодняшнее занятие посвящено организации взаимодействия компонентов и текстовых полей. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные...

[Перевод] Учебный курс по React, часть 27: курсовой проект В этой части перевода учебного курса по React вам предлагается создать генератор мемов. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: файлы компонентов, структура проектов → Часть 4: родительские и дочер...

[Перевод] Учебный курс по React, часть 26: архитектура приложений, паттерн Container/Component В этой части перевода учебного курса по React мы поговорим об архитектуре React-приложений. В частности, обсудим популярный паттерн Container/Component. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: фай...

[Перевод] Учебный курс по React, часть 24: второе занятие по работе с формами Сегодня мы продолжим разговор об использовании форм в React. В прошлый раз мы рассматривали особенности взаимодействия компонентов и текстовых полей. Здесь же мы обсудим работу с другими элементами форм. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX →...

Земля — плоская Точнее, не плоская, но и не шар. И даже не эллипсоид. А вполне себе многогранник. Точнее, 56-гранник. Ещё точнее — предлагается новый формат записи гео-координат. Сначала немного общих соображений: в базе OSM имеется три типа данных: node way и relation. Узлы содержат коорд...

[Перевод] Учебный курс по React, часть 28: современные возможности React, идеи проектов, заключение Сегодня, в заключительной части перевода курса по React, мы поговорим о современных возможностях React и обсудим идеи React-приложений, создавая которые, вы можете повторить то, чему научились, проходя этот курс, и узнать много нового. → Часть 1: обзор курса, причины попу...

[Перевод] Как работает рендеринг 3D-игр: обработка вершин В этом посте мы рассмотрим этап работы с вершинами. То есть нам придётся снова достать учебники по математике и вспомнить линейную алгебру, матрицы и тригонометрию. Ура! Мы выясним, как преобразуются 3D-модели и учитываются источники освещения. Также мы подробно объясним р...

Массив твердотельных накопителей Western Digital IntelliFlash N5100 демонстрирует производительность 1 700 000 IOPS Компания Western Digital пополнила линейку массивов накопителей IntelliFlash, в которых используются только твердотельные накопители, моделью IntelliFlash N5100. По словам производителя, она относится к массовому сегменту массивов для центров обработки данных. В...

[Из песочницы] .NET зоопарк под призмой NET Core Всем привет! Сегодня мы рассмотрим разные фишки и изменения, которые появились в .NET Core платформе и сравним их с Framework. Я разбил статью на модули для более лучшего понимания. Эта статья будет интересна тем кто собирается переходить на .NET Core или уже использует его....

[Из песочницы] Управление состоянием и событиями между компонентами в GameObject Управление состоянием и событиями между компонентами в GameObject Ссылка на проект Как известно всем, более или менее знакомых с платформой Unity, каждый игровой объект GameObject состоит из компонентов (встроенных или пользовательских, который обычно называют «скрипт»). Ко...

С чего начать разработку архитектуры? Примечание: Если вы считаете, что на построении архитектуры съели хотя бы полпёсика, то эта статья не для вас. Модель — абстрактное представление реальности в какой-либо форме. Предполагаем, что архитектор уже закончил со сбором требований к будущей системе и их анализом. ...

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

[Перевод] Учебный курс по React, часть 13: компоненты, основанные на классах Сегодня мы публикуем перевод очередного занятия учебного курса по React. Оно посвящено компонентам, основанным на классах. Такие компоненты создают с использованием ключевого слова class. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функци...

Microsoft SQL Server 2019 и флэш-массивы Dell EMC Unity XT Сегодня мы познакомим вас с особенностями использования SQL Server 2019 с системой хранения Unity XT, а также дадим рекомендации по виртуализации SQL Server с помощью технологии VMware, по настройке и управлению базовыми компонентами инфраструктуры Dell EMC. В 2017 году De...

Mindtech: разработаны генератор синтетических данных и пакет ИИ-инструментов Chameleon Британский стартап Mindtech Global Ltd представил продукт Mindtech Chameleon Simulator, ориентированный на создание массивов синтетических визуальных данных для обучения нейронных сетей, и пакет ИИ-инструментов Mindtech Chameleon, предоставляющий полный с...

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

Dell Technologies представила обновленную СХД Dell EMC PowerMax Компания Dell Technologies представила обновления в семействе массивов Dell EMC PowerMax. Массив Dell EMC PowerMax впервые на рынке оснащается двухпортовыми накопителями Intel Optane SSD и использует память Storage Class Memory (SCM) в качестве ...

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

[Перевод] 7 шагов к использованию Room. Пошаговое руководство по миграции приложения на Room Room — это библиотека, которая является частью архитектурных компонентов Android. Она облегчает работу с объектами SQLiteDatabase в приложении, уменьшая объём стандартного кода и проверяя SQL-запросы во время компиляции. У вас уже есть Android-проект, который использует SQL...

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

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

OpenSceneGraph: Процедурная анимация геометрии и атрибутов состояния Введение Говоря о приемах программирования, специфичных для OSG в прошлый раз мы говорили о механизме обратных вызовов (Callback) и его реализации в движке. Настало время посмотреть на то, какие возможности дает нам применение этого механизма для управления содержимым трехм...

SamsPcbGuide, часть 10: Технологии, пайка бессвинцовых компонентов Данная статья – первая статья о технологиях сборки печатных плат. Последний семинар от PCB SOFT был посвящён проектированию, обеспечивающему технологичность изготовления печатной платы (англ. DFM, design for manufacture). Был поднят вопрос о целесообразности реболлинга бессв...

Построение поведенческих воронок на языке R, на основе данных полученных из Logs API Яндекс.Метрики Анализ воронки продаж — типичная задача для интернет маркетинга, и в частности электронной коммерции. С её помощью вы можете: Выяснить на каком из шагов к покупке вы теряете потенциальных клиентов. Моделировать объём дополнительного притока выручки, в случае расширения каж...

[Из песочницы] Топ-8 полезных фильтров Google Analytics По умолчанию Google Analytics (GA) собирает всю статистику посетителей веб-сайта, но для анализа весь массив данных может не понадобиться. Очистить и переработать информацию можно с помощью фильтров на уровне представления. Самые полезные из них разберем в этой статье. Что ...

StealthWatch базовые понятия и минимальные требования. Часть 1 Данная статья посвящена довольно новому продукту мониторинга сети Cisco StealthWatch. Основываясь на данных телеметрии вашей инфраструктуры, StealthWatch может выявлять самые разные кибератаки, включая: APTs DDoS атаки нулевого дня наличие ботов в сети кража данных (da...

Создание React-ивного хука usePosition() для получения и отслеживания координат браузера Если вкратце В этой статье мы создадим React-ивный хук usePosition() для отслеживания геолокации браузера. Под капотом этот хук будет использовать методы getCurrentPosition() и watchPosition() нативного браузерного объекта navigator.geolocation. Финальную версию хука я опуб...

[Перевод] Оптимизация стратегии игры в Блэкджек методом Монте-Карло Перевод статьи подготовлен специально для студентов курса «Machine learning». Обучение с подкреплением штурмом взяло мир Искусственного Интеллекта. Начиная от AlphaGo и AlphaStar, все большее число видов деятельности, в которых раньше доминировал человек, теперь завоевано...

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

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

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

[Перевод] Какой здесь this? Внутренняя работа объектов JavaScript Фотография: "Любопытный" Liliana Saeb (CC BY 2.0) JavaScript – это мультипарадигмальный язык, который поддерживает объектно-ориентированное программирование и динамическое связывание. Динамическое связывание — это мощная концепция, которая позволяет изменять структуру JavaS...

Генератор синтетических данных и пакет ИИ-инструментов Chameleon представила Mindtech Британский стартап Mindtech Global Ltd представил продукт Mindtech Chameleon Simulator, ориентированный на создание массивов синтетических визуальных данных для обучения нейронных сетей, и пакет ИИ-инструментов Mindtech Chameleon, предоставляющий полный с...

Western Digital представила IntelliFlash N5100: система хранения данных начального уровня Western Digital представила самый недорогой массив накопителей линейки IntelliFlash - IntelliFlash N5100. Устройство обладает вместимостью до 92 Тбайт неформатированной памяти, поскольку в блоке типоразмера 2U может разместиться 24 накопителя. Подробнее об этом читайте на ...

[Перевод] Учебный курс по React, часть 12: практикум, третий этап работы над TODO-приложением В сегодняшней части перевода курса по React мы предлагаем вам выполнить практическое задание по формированию наборов компонентов средствами JavaScript и продолжить работу над TODO-приложением. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: ф...

Новые карты CUBA Работа с геопространственными данными и отображение карт являются неотъемлемыми составляющими множества бизнес-приложений. Это могут быть городские и региональные информационные системы, приложения для нефтегазовой отрасли, системы управления транспортной инфраструктурой, а...

Работа с Worker “как хочется“, а не “как можно” В этой статье будет использоваться ГРЯЗНЫЙ, небезопасный, "костыльный", страшный и т. д. метод eval. Слабонервным не читать! Сразу скажу, что некоторые проблемы удобства использования решить не удалось: в коде, который будет передан в worker, нельзя использовать замыкание. ...

Синглтон размещающий объекты в ROM и статические переменные(С++ на примере микроконтроллера Cortex M4) В предыдущей статье Где хранятся ваши константы на микроконтроллере CortexM (на примере С++ IAR компилятора), был разобран вопрос о том, как расположить константные объекты в ROM. Теперь же я хочу рассказать, как можно использовать порождающий шаблон одиночка для создания ...

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

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

Azure Search Если какой-то из ваших проектов использует данные хранящиеся в Ажуровской базе, то вполне возможно, что у вас есть возможность задействовать поиск по данным с помощью Azure search. Совершать поиск можно не только по базам (Azure Cosmos DB, Azure SQL Database, SQL Server hos...

[Перевод] Извлечение данных при машинном обучении Хотите узнать о трех методах получения данных для своего следующего проекта по ML? Тогда читайте перевод статьи Rebecca Vickery, опубликованной в блоге Towards Data Science на сайте Medium! Она будет интересна начинающим специалистам. Получение качественных данных — это пе...

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

[Из песочницы] UICollectionView всему голова: Изменение представления на лету Привет, Хабр! Представляю вашему вниманию перевод статьи "UICollectionView Tutorial: Changing presentation on the fly". В данной статье мы рассмотрим использование различный способов отображение элементов, а также их переиспользование и динамическое изменение. Зде...

Расчет нулевой гипотезы, на примере анализа зарплат украинских программистов Решил поделиться, да бы и самому не забывать, как можно использовать простые статистические инструменты для анализа данных. В качестве примера использовался анонимный опрос относительно зарплат, стажа и позиций украинских программистов за 2014 и 2019 год. (1) Этапы анализа...

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

[Из песочницы] Бизнес-логика в базе данных при помощи SchemaKeeper Цель данной статьи — на примере библиотеки schema-keeper показать инструменты, которые позволяют существенно облегчить процесс разработки баз данных в рамках PHP-проектов, использующих СУБД PostgreSQL. Информация из этой статьи, в первую очередь, будет полезна разработ...

[Из песочницы] Эффективные и не эффективные методы кодинга на Python Привет, Хабр! Предлагаю Вашему вниманию перевод статьи Good and Bad Practices of Coding in Python автора Duomly. Python – высокоуровневый язык программирования, акцентирующий внимание на удобочитаемости. Он разрабатывается, поддерживается и часто используется в соответствии...

Используем статические ссылки на свойства объектов при помощи лямбд Так уж исторически сложилось, что в Java для свойств объектов (properties) не предусмотрено никакой физической сущности. Свойства в Java — это некоторые соглашения в именовании полей и методов доступа к ним (аксессоров). И, хотя наличие физических свойств в языке упростило б...

F#3: Форматирование текста При работе с любым языком вам, скорее всего, нужно будет отформатировать текст, и F# ничем не отличается. Поскольку F# является языком .NET, мы всегда можем использовать Console.WriteLine (..) и String.Format (..), где мы можем использовать любой из обычных форматеров, кото...

[Перевод] Будущее внедрения зависимостей в Android Предлагаю вашему вниманию перевод оригинальной статьи от Jamie Sanson Создание Activity до Android 9 Pie Внедрение зависимостей (DI) — это общая модель, по ряду причин используемая во всех формах разработки. Благодаря проекту Dagger, он взят в качестве шаблона, используемог...

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

[Перевод] Как полиморфизм реализован внутри JVM Перевод данной статьи подготовлен специально для студентов курса «Разработчик Java». В моей предыдущей статье Everything About Method Overloading vs Method Overriding (“Все о перегрузке и переопределении методов”) были рассмотрены правила и различия перегрузки и переопре...

Intel Ponte Vecchio — GPU с трёхмерной компоновкой и огромным объёмом кэш-памяти Как известно, в следующем году компания Intel представит свои первые (за последние много лет) дискретные видеокарты. Сейчас принято называть их Xe, так как сама Intel в своё время использовала данные буквы для обозначения. Но затем высказывание одного из сотрудников Int...

[Перевод] Как работает FaceID в iPhone X: алгоритм на Python Одна из самых крутых фишек iPhone X – это метод разблокировки: FaceID. В этой статье разобран принцип работы данной технологии. Изображение лица пользователя снимается с помощью инфракрасной камеры, которая более устойчива к изменениям света и цвета окружающей среды. Исп...

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

Беспроводные наушники Master & Dynamic MH40 оснащены интерфейсом Bluetooth 5.0 Компания Master & Dynamic представила беспроводные накладные наушники MH40. Как и выпущенной ранее проводной модели, в них используются 40-миллиметровые излучатели. Для беспроводного подключения используется интерфейс Bluetooth 5.0 с поддержкой AptX и SBC. По словам...

OpenVPN, о котором вы так мало знали OpenVPN, как много в этом слове. Мультиплатформенный, гибко настраиваемый, бесплатный VPN сервер с открытым исходным кодом, являющийся фактически стандартом "defacto" для организации доступа к внутренним корпоративным сетям. Большинство администраторов используют его с настр...

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

[Перевод] Java Challengers #4: Сравнение объектов с equals() и hashCode() Java Challengers #4: Сравнение объектов с equals() и hashCode() В преддверии запуска нового потока по курсу "Разработчик Java" мы продолжаем перевод серии статей Java Challengers, предыдущие части которых можно прочитать по ссылкам ниже: Перегрузка методов в JVM Сравнение с...

[Перевод] Логическая репликация между версиями PostgreSQL Есть разные подходы к обновлению PostgreSQL, но некоторые приводят к простою приложения. Если нужно избежать простоя, используйте для обновления репликацию — логическую или физическую (потоковую), в зависимости от сценария. В этой статье мы рассмотрим разницу между логическ...

[Перевод] Учебный курс по React, часть 16: четвёртый этап работы над TODO-приложением, обработка событий В сегодняшней части перевода учебного курса по React мы продолжим работу над Todo-приложением и поговорим о том, как в React обрабатывают события. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: функциональные компоненты → Часть 3: файлы комп...

[Перевод] Unreal Engine 4 — шейдер горения Это небольшой шейдер, который появился, когда я думал о различных методах применения flowmap. Существуют много эффектов перехода/растворения, но большинство из них выглядит довольно статично, так как они используют статические текстуры. Данный шейдер далек от совершенства, н...

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

Сбалансированные двоичные деревья поиска: реализация на Julia Иллюстрация из работы Г.М. Адельсон-Вельского и Е.М. Ландиса 1962 года Деревья поиска — это структуры данных для упорядоченного хранения и простого поиска элементов. Широко применяются двоичные деревья поиска, в которых у каждого узла есть только два потомка. В этой статье ...

Российские ученые нашли безопасный способ получения кремниевых нанонитей Открытие учёных МГУ может найти применение в промышленном производстве основанных на нанокремнии антиотражающих покрытий для солнечных батарей, оптических сенсоров для обнаружения различных молекул, наноконтейнеров для доставки лекарств. Исследование выполнено при поддержке ...

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

[Из песочницы] Typescript и react Разработка на javascript иногда становится похожа на работу детектива. Как понять чужой код? Хорошо, если разработчик обладает тонким искусством называть переменные так, чтобы другие поняли суть. А как быть, если члены команды все таки не всегда способны понять замысел своег...

[Из песочницы] Странные они, статические переменные в PHP Дисклеймер: данная статья не явит вам какого то откровения и не откроет третий глаз, но позволит разобраться в не очень очевидном вопросе более детально. Мне по крайней мере при ее написании она в этом помогла. Если вы матерый волк в php то можете не читать, опытным человека...

Расчёт каннибализации на основе классического A/B-теста и метод bootstrap’а В данной статье рассмотрен метод расчёта каннибализации для мобильного приложения на основе классического A/B-теста. В данном случае рассматриваются и оцениваются целевые действия в рамках процесса реаттрибуции с рекламного источника (Direct, Criteo, AdWords UAC и прочих) по...

Субпиксельный рендеринг произвольных векторных изображений (Haarmony LCD) Субпиксельный рендеринг (вики)— способ увеличить видимое разрешение LCD или OLED дисплея путем рендеринга пикселей с учетом свойств экрана. Используется тот факт, что каждый пиксель экрана фактически состоит из отдельных красных, зеленых и синих субпикселей. В посте я хочу р...

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

[Из песочницы] Лучшие практики React и советы, которые каждый разработчик должен знать. Часть 1 Привет, Хабр! Представляю вашему вниманию перевод статьи «React Best Practices & Tips Every React Developer Should Know Pt.1» автора Alex Devero. React — одна из самых популярных библиотек для построения интерактивных пользовательских интерфейсов. В этой статье я пока...

[Перевод] Почему, зачем и когда нужно использовать ValueTask Этот перевод появился благодаря хорошему комментарию 0x1000000. В .NET Framework 4 появилось пространство System.Threading.Tasks, а с ним и класс Task. Этот тип и порождённый от него Task<TResult> долго дожидались, пока их признают стандартами в .NET в роли ключевых а...

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

МТС предоставила возможность хранить в облаке гигантские объемы данных Компания МТС дополнила проект #СloudMTS новым корпоративным сервисом, предназначенным для хранения больших массивов данных. Емкость хранилища начинается от 1 Терабайта. Данные хранятся в собственных ЦОДах оператора.

Работа с внешними ресурсами в Unity 3d Введение Здравствуйте уважаемые читатели, сегодня речь пойдет о работе с внешними ресурсами в среде Unity 3d. По традиции, для начала определимся, что это и зачем нам это надо. Итак, что же такое эти внешние ресурсы. В рамках разработки игр, такими ресурсами может быть все...

[Перевод] Шейдеры 3D-игр для начинающих: эффекты [Первая часть] Разобравшись с основами, в этой части статьи мы реализуем такие эффекты, как контуры объектов, bloom, SSAO, размытие, глубина резкости, пикселизация и другие. Контуры Создание контуров вокруг геометрии сцены придаёт игре уникальный внешний вид, напоминающий...

Протокольно ориентированное программирование, часть 3 Завершающая статья на тему протокольно ориентированного программирования. В этой части мы рассмотрим как переменные обобщенного типа хранятся и копируются и как с ними работает метод dispatch. Читать дальше →

[Перевод] Inception bar: новый метод фишинга Доброго времени суток, Хабр! На просторах Интернета мне попалась статья на английском «The inception bar: a new phishing method» автора Jim Fisher. В ней описывается занимательный способ фишинга, механизм которого заключён в использовании экранного пространства строки отобра...

Google перестала «душить гуся»: DuckDuckGo включен в список стандартных поисковиков Chrome для 60 стран У нас есть определенно хорошие новости: поисковой гигант Google, по всей видимости, пересмотрел свою стратегию касательно конкурента DuckDuckGo. Компания включила «утку» в список поисковых систем по умолчанию Chrome для 60 различных регионов. Обновление поставляется с верс...

Заворачиваем весь трафик ОС в Tor Все описанное в статье реализовано в виде инструмента Toroxy, доступного на GitHub В последнее время анонимность в сети является предметом горячих споров. Ни для кого не секрет, что данные о посещениях Интернет-ресурсов с локального устройства могут собираться на разных у...

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

Мониторинг состояния SSD в массивах Qsan Использованием твердотельных накопителей в сфере хранения данных уже никого не удивишь. SSD прочно вошли в обиход IT оборудования от персональных компьютеров и ноутбуков до серверов и систем хранения данных. За это время сменилось несколько поколений SSD, каждое из которых о...

[Из песочницы] Обзор нового javascript фреймворка Htmlix В данной статье постараюсь описать все основные возможности нового javascript фреймворка Htmlix, а также рассмотреть принцип его работы на примере создания небольшого приложения. Данное приложение — это страница простого фильтра товаров по категориям, с различными частями ш...

[Перевод] Учебный курс по React, часть 17: пятый этап работы над TODO-приложением, модификация состояния компонентов В сегодняшней части перевода курса по React мы предлагаем вам выполнить очередное практическое задание и представляем вашему вниманию рассказ о том, как модифицировать состояние компонентов React. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть ...

[Перевод] Учебный курс по React, часть 18: шестой этап работы над TODO-приложением В сегодняшней части перевода учебного курса по React вам предлагается продолжить работу над Todo-приложением и сделать так, чтобы щелчки по флажкам воздействовали бы на состояние компонента. → Часть 1: обзор курса, причины популярности React, ReactDOM и JSX → Часть 2: фун...

[Перевод] Создаем конвейер потоковой обработки данных. Часть 1 Всем привет. Друзья, делимся с вами переводом статьи, подготовленным специально для студентов курса «Data Engineer». Поехали! Apache Beam и DataFlow для конвейеров реального времени Сегодняшний пост основан на задаче, которой я недавно занимался на работе. Я был действитель...

Построение микросервисной архитектуры на Golang и gRPC, часть 2 (docker) Пришло время заняться контейнерами Прежде всего, мы используем новейший образ Linux Alpine. Linux Alpine — это легкий дистрибутив Linux, разработанный и оптимизированный для запуска веб-приложений в Docker. Другими словами, Linux Alpine обладает достаточным количеством зави...

[Из песочницы] Размеры Java-объектов разного типа Введение Содержит ли Java-объект: поля, объявленные в суперклассе? private поля, объявленные в суперклассе? методы? элементы массива? длину массива? другой объект (в себе)? hash-код? тип (свой)? имя (своё)? Ответы на эти (и другие) вопросы можно получить с помощью библиот...

Пишем под FPGA без HDL. Сравнение высокоуровневых средств разработки В последнее время производители FPGA и сторонние компании активно развивают методы разработки для FPGA, отличающиеся от привычных подходов использованием высокоуровневых средств разработки. Являясь FPGA-разработчиком, в качестве основного инструмента я использую язык описа...

[Перевод] Как размеры массивов C стали частью двоичного интерфейса библиотеки Большинство компиляторов C позволяют получить доступ к массиву extern с неопределёнными границами, например: extern int external_array[]; int array_get (long int index) { return external_array[index]; } Определение external_array может находиться в другой единице трансля...

Основы статической маршрутизации в Mikrotik RouterOS Маршрутизация — процесс поиска оптимального пути для передачи пакетов в сетях TCP/IP. Любой устройство подключенное к сети IPv4 содержит процесс и таблицы маршрутизации. Данная статья не является HOWTO, она описывает на примерах статическую маршрутизацию в RouterOS, я намере...

[Перевод] Зачем ЯОП? Зачем Racket? Это продолжение статьи «Зачем Racket? Зачем Lisp?», которую я написал примерно через год после того, как открыл для себя Racket. Будучи новичком, я не мог понять дифирамбов, которые со всех сторон сыпались в адрес Lisp. Я не знал, что и думать. Как понимать, что Lisp в конце...

Граф Скоринг де ля Фер или исследование на тему кредитного скоринга, в рамках расширения кругозора. Ч.3 Часть третья, в которой Атос выпал в осадок, а Граф де ля Фер мудрит с алгоритмами. UPD Часть первая здесь UPD Часть вторая здесь AntipovSN and MihhaCF Вступление от авторов: Добрый день! Сегодня мы продолжаем цикл статей, посвященных скорингу и использованию в оном теории г...

[Из песочницы] Преодоление порога 32 КБ для данных в ПЗУ микроконтроллеров AVR Что может быть хуже костылей? Только неполно документированные костыли. Перед вами скриншот из последней официальной интегрированной среды разработки для 8-битных микроконтроллеров AVR, Atmel Studio 7, язык программирования Си. Как видно из столбца Value, переменная my_arra...

Как устроен поиск адреса по координатам в «Дадате» (и где мы взяли справочник) Весной мы добавили в API DaData.ru фичу «Обратное геокодирование», она же «Адрес по координатам». Название намекает: метод принимает геокоординаты и отдает данные об адресе. Солидный продукт с той же функциональностью сделал «Яндекс» — он называется «Геокодер». Но сервис ...

Что в черном ящике. Обзор методов тестирования биллинга Проверка платных сервисов — один из ключевых инженерных вопросов в тестировании Badoo. Наше приложение интегрировано с 70 платёжными провайдерами в 250 странах мира, и баг хотя бы в одном из них может привести к непредсказуемым последствиям.  В этой статье я расскажу о мето...

[Перевод] Рендеринг текста вас ненавидит Оглавление 1. Терминология 2. Стиль, вёрстка и форма зависят друг от друга? 3. Текст — это не отдельные символы 3.1. Наложения текста 3.2. Стиль может изменить лигатуру 4. Эмодзи ломают цвет и стиль 5. Сглаживание — это ад 5.1. Субпиксельные смещения ломают кэш глифов...

Структуры против Классов С самого начала, когда я начинал заниматься программированием, вставал вопрос, что использовать для улучшения быстродействия: структуру или класс; какие массивы лучше использовать и как. По поводу структур, Apple приветствует их использование, объясняя это тем, что они лучше...

Рекомендации по настройке AFA AccelStor при работе с VMware vSphere В рамках данной статьи хотелось бы рассказать об особенностях работы All Flash массивов AccelStor с одной из популярнейших платформ виртуализации – VMware vSphere. В частности, акцентировать внимание на тех параметрах, которые помогут получить максимальный эффект от использо...

[Перевод] AlphaFold: Использование ИИ для научных открытий И снова здравствуйте! Делимся публикацией, перевод которой подготовлен специально для студентов курса «Нейронные сети на Python». Сегодня мы расскажем о первом важном событии в истории развития DeepMind, чтобы показать, как исследования с помощью искусственного интеллекта м...

Реализация горячей перезагрузки С++ кода в Linux и macOS: копаем глубже *Ссылка на библиотеку и демо видео в конце статьи. Для понимания того, что происходит, и кто все эти люди, рекомендую прочитать предыдущую статью. В прошлой статье мы ознакомились с подходом, позволяющим осуществлять "горячую" перезагрузку c++ кода. "Код" в данном случае — ...

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

Метод 2D-укладки делает возможность печатать живые органы на шаг ближе Стремясь сделать производство биоматериалов более доступным, исследователи из Калифорнийского университета в Беркли сочетают 2D-биопечать, роботизированную руку для 3D-сборки и мгновенную заморозку в методе, который может однажды позволить печатать живые ткани и даже целые о...

[Из песочницы] Friendly Open Space JS: Рендеринг на стороне клиента и создание враппера «Friendly Open Space» — очень молодой фреймворк, но бегать уже умеет :-) В данной статье по освоению «Friendly Open Space», мы освоим рендеринг шаблона в браузере и запуск приложения на локальной файловой БД. Ядро фреймворка поддерживает два типа сборки шаблона на клиенте: ...

Разговорный BERT — учим нейросеть языку соцсетей Одним из главных событий в области компьютерной лингвистики и машинного обучения в 2018 году был выпуск BERT от Google AI, который признан лучшим докладом года по мнению североамериканского отделения Ассоциации компьютерной лингвистики (NACL). В этой статье мы расскажем об э...

[Перевод] Отличия LabelEncoder и OneHotEncoder в SciKit Learn Если вы недавно начали свой путь в машинном обучении, вы можете запутаться между LabelEncoder и OneHotEncoder. Оба кодировщика — часть библиотеки SciKit Learn в Python и оба используются для преобразования категориальных или текстовых данных в числа, которые наши предсказате...

Делаем процесс разработки тяжеловесного программного обеспечения под микроконтроллеры более удобным (нет) Сейчас уже никого не удивить микроконтроллерами с энергонезависимой (чаще всего Flash) памятью объемом 512 килобайт и более. Их стоимость постепенно снижается, а доступность напротив, растет. Наличие такого объема энергонезависимой памяти дает возможность писать «тяжелые» по...

Как научить машину понимать инвойсы и извлекать из них данные Привет, хабр! Меня зовут Станислав Семенов, я работаю над технологиями извлечения данных из документов в R&D ABBYY. В этой статье я расскажу об основных подходах к обработке полуструктурированных документов (инвойсы, кассовые чеки и т.д.), которые мы использовали совсем ...

Создание системы расширения на библиотеке Qt — Часть 2 Возвращаясь к первой статье хочется объяснить откуда появилась необходимость разработки механизма расширения с графическим интерфейсом (GUI) и подробней объяснить механизм создания плагинов. Было получено задание на разработку технологического программного обеспечения для ...

Учёные создали первый рабочий процессор с программируемыми мемристорами На прошлой неделе в сетевом издании Nature группа учёных из Университета Мичигана опубликовала статью, в которой рассказывается о практическом применении первого процессора с массивом программируемых мемристоров. Участок кремниевой подложки с 17 мемристорами Напомним, об отк...

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

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

Патент AMD описывает гибридный подход к трассировке лучей в реальном времени Трассировка лучей потенциально может стать священным Граалем для игр благодаря тому, что технология позволяет имитировать физически достоверные отражения, тени и освещение — это должно обеспечить новый уровень реализма. И недавно технология, наконец, стала доступна на потреб...

Применение R для утилитарных задач Хороший инструмент + наличие навыков работы с ним, что достигается путем практики, позволяет легко и элегантно решать множество различных «как бы» нетипичных задач. Ниже пара подобных примеров. Уверен, что многие могут этот список расширить. Является продолжением предыдущих ...

APEX станет главным нововведением Android Q. Что это такое? Android Q покажут, как обычно, на Googe I/O. Уже сейчас известно, что в систему встроят полноценную темную тему, а все стандартные приложения компании к моменту выхода новой версии Android будут обновлены под данное нововведение. Однако тёмная тема — не главное в Andr...

[Перевод] Как разрабатываются и производятся процессоры: изготовление чипа Это третья статья из серии о проектировании ЦП. В первой статье мы рассмотрели архитектуру компьютера и объяснили его работу на высоком уровне. Во второй статье говорилось о проектировании и реализации некоторых компонентов чипа. В третьей части мы узнаем, как архитектурные...

Принципы работы протокола BGP Сегодня мы рассмотрим протокол BGP. Не будем долго говорить зачем он и почему он используется как единственный протокол. Довольно много информации есть на этот счет, например тут. Итак, что такое BGP? BGP — это протокол динамической маршрутизации, являющийся единственным EG...

Универсальный способ настройки внешнего вида WinForms приложения (на примере FAQ.Net) Введение После размещения первой статьи о своем приложении FAQ.Net (программа заметок под Windows), появились первые пользователи, для которых хочется дальше развивать свою программу для заметок. Чтобы повысить интерес у пользователей, возникла идея повысить его привлекател...

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

Возможности языка Q и KDB+ на примере сервиса реального времени О том, что такое база KDB+, язык программирования Q, какие у них есть сильные и слабые стороны, можно прочитать в моей предыдущей статье и кратко во введении. В статье же мы реализуем на Q сервис, который будет обрабатывать входящий поток данных и высчитывать поминутно разли...

Как настроить Linux для входа в домен с использованием алгоритмов ГОСТ Введение Протокол Kerberos 5 сейчас активно используется для аутентификации. Особенностью данного протокола является то, что он осуществляет аутентификацию, базируясь на трех китах: Симметричное шифрование Хеширование ЭЦП Третья доверенная сторона Начиная с пятой версии п...

[Перевод] Моки, стабы и шпионы в Spock Framework Spock предоставляет 3 мощных (но разных по сути) инструмента, упрощающих написание тестов: Mock, Stub и Spy. Довольно часто коду, который нужно протестировать, требуется взаимодействовать с внешними модулями, называющимися зависимостями (в оригинальной статье используется т...

МТС и HackerU подготовят специалистов Big Data Обучающая программа ориентирована на студентов старших курсов IT-факультетов, системных администраторов, backend-разработчиков, системных аналитиков и IT-специалистов, имеющих знания в области математики и алгоритмизации. Основная цель курса - подготовить специалистов по одн...

[Перевод] Эффекты фильтрации SVG. Часть 4. Двухцветные изображения при помощи feComponentTransfer Эта четвертая статья серии об SVG-фильтрах, в которой Sara Soueidan покажет вам, как использовать feComponentTransfer для создания эффекта двухтонового фильтра. Предлагаемая серия статей "Эффекты фильтрации SVG" Sara Soueidan, внештатного разработчика UI/UX интерфейса и авт...

[Из песочницы] Визуальное представление выборов в Санкт-Петербурге — магия накрутки голосов Привет! В сентябре этого (2019) года прошли выборы Губернатора Санкт-Петербурга. Все данные о голосовании находятся в открытом доступе на сайте избирательной комиссии, мы не будем ничего ломать, а просто визуализируем информацию с этого сайта www.st-petersburg.vybory.izbirk...

[Из песочницы] Применение формальных методов валидации моделей для UI Привет, Хабр! Представляю вашему вниманию перевод статьи «FORMALLY SPECIFYING UIS» автора Hillel Wayne. От автора Относительно недавно я наткнулся на статью про Инженерные методы в разработке ПО, где vasil-sd рассказал про формальную валидацию спецификаций к создаваемым пр...

Фильм «Супермен» записали на куске стекла Это стало первым подтверждением концепции проекта Project Silica от Microsoft Research. В нем используются последние открытия в области сверхбыстрой лазерной оптики и искусственного интеллекта для хранения данных в кварцевом стекле. Лазер кодирует данные в стекле, создавая с...

Ещё один способ отстрелить себе ногу, используя std::thread Стандарт C++11 принёс в язык стандартный механизм поддержки тредов (их часто называют потоками, но это создаёт путаницу с термином streams, так что я буду использовать оригинальный англоязычный термин в русской транскрипции). Однако, как и любой механизм в C++, этот несёт в ...

[Перевод] C# Regex в примерах Перевод статьи подготовлен специально для студентов курса «Разработчик С#». Класс Regex реализует регулярные выражения в C#. В этой статье вы узнаете, как использовать C# Regex для проверки различных пользовательских входных данных. Regex в C# реализует регулярные выра...

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

[Перевод] Трассировка лучей на GPU в Unity — Часть 3 [Первая и вторая части.] Сегодня мы совершим большой скачок. Мы отойдём от исключительно сферических конструкций и бесконечной плоскости, которые трассировали ранее, и добавим треугольники — всю суть современной компьютерной графики, элемент, из которого состоят все виртуа...

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

Как ускорить разжатие LZ4 в ClickHouse При выполнении запросов в ClickHouse можно обратить внимание, что в профайлере на одном из первых мест часто видна функция LZ_decompress_fast. Почему так происходит? Этот вопрос стал поводом для целого исследования по выбору лучшего алгоритма разжатия. Здесь я публикую иссле...

Российский автопром: дорогу аддитивным технологиям Завод Nissan в Санкт-Петербурге: изготовленные на 3D-принтере детали (белые на фото) используются для фиксации крышки багажника. Фото: «Ведомости» / Nissan Автомобилестроение – одна из первых отраслей, где 3D-технологии нашли коммерческое применение: еще в 1988 год концер...

[Из песочницы] Под капотом у React. Пишем свою реализацию с нуля 


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

Изделия из полиамида SLS Напечатали детали из полиамида методом селективного лазерного спекания SLS. Для печати используется порошкообразный нейлоновый пластик. Главным преимуществом этого метода печати является отсутствие поддержек. Благодаря этому можно создавать модели с очень сложной геометрией ...

Нахождение объектов без учителя (Unsupervised Object Detection) Одна из важнейших задач в машинном обучении — детектирование объектов (Object Detection). Недавно был опубликован ряд алгоритмов машинного обучения основанных на глубоком обучении (Deep Learning) для детектирования объектов. Эти алгоритмы занимают одно из центральных мест ...

[Перевод] SMAA: улучшенное субпиксельное морфологическое сглаживание Данная статья основана на журнале Хорхе Хименеса, Хосе Эчеварриа, Тиаго Соуса и Диего Гутьерреса. Их демо реализации SMAA можно посмотреть здесь (файл .exe). На моём GTX 960 2GB оно работает вполне нормально. Старые способы сглаживания (антиалиасинга) Долгие годы стандарт...

[Перевод] Введение в Redis с использованием Spring Boot Перевод статьи подготовлен специально для студентов курса «Разработчик на Spring Framework». В этой статье мы рассмотрим основы использования Redis через Spring Boot с помощью библиотеки Spring Data Redis. Мы создадим приложение, которое демонстрирует, как выполнять CR...

[Из песочницы] Sourcery для автоматического конвертирования в структуры объектов Realm В интернете, да и даже на Хабре, есть куча статей о том, как работать с Realm. Эта база данных достаточно удобная и требует минимальных усилий для написания кода, если ей уметь пользоваться. В этой статье будет описан метод работы, к которому пришел я. Читать дальше →

Julia: типы, мультиметоды и арифметика над полиномами В этой публикации речь пойдёт об основной, на мой взгляд, отличительной особенности языка Julia — представлении функций в виде методов с множественной диспетчеризацией. Это позволяет повысить производительность вычислений, не снижая читаемости кода и не портя абстрагируемост...

Представляем InterSystems API Manager (+ вебинар) Недавно мы выпустили InterSystems API Manager (IAM) — новый компонент InterSystems IRIS Data Platform, обеспечивающий наблюдение, контроль и управление трафиком в/из web API в рамках IT-инфраструктуры. В этой статье я покажу как настраивать IAM и продемонстрирую некоторые из...

Дисплейный процессор Arm Mali-D77 предназначен для гарнитур виртуальной реальности Компания Arm представила дисплейный процессор (display processing unit, DPU) Mali-D77, предназначенный для гарнитур виртуальной реальности. Как утверждается, он позволяет разрабатывать более компактные, легкие и удобные устройства виртуальной реальности (VR). Используя...

Chrome Audit на 500: Часть 1. Лендинг В инструментах разработчика браузера хром есть вкладка «Audit». На ней расположился инструмент который называется Lighthouse, служит он для анализа насколько хорошо сделано веб приложение. Недавно я решил протестировать одно приложение и ужаснулся результатам. Сразу по нес...

[Из песочницы] novtable оптимизация Компилятор Microsoft позволяет добавить расширение «novtable» для атрибута «__declspec» при объявлении класса. Заявленная цель — значительно уменьшить размер генерируемого кода. На экспериментах с нашими компонентами уменьшение составило от 0,6 до 1,2 процента от размера D...

[Перевод] Исследование глубин аннотаций типов в Python. Часть 1 C 2014 года, когда в Python появилась поддержка аннотаций типов, программисты работают над их внедрением в свой код. Автор материала, первую часть перевода которого мы публикуем сегодня, говорит, что по её оценке, довольно смелой, сейчас аннотации типов (иногда их называют «...

[Перевод] Как внедрить BI-подход к анализу данных: практические рекомендации Статья подготовлена Сергеем Шопиком, руководителем и основателем «Лаборатория клиентского опыта». За основу взят материал, опубликованный Martha Bennett на сайте международного аналитического агентства Forrester Research. Приглашаем всех желающих 18 июня в 20:00 по мск. на ...

Статическое распределение памяти в микроконтроллерах Холмс: Любезнейший, не подскажите где мы находимся? Пастух: Вы находитесь на воздушном шаре!!! Холмс: Вы должно быть программист. Пастух: Да, но как вы догадались? Холмс: Только программист мог дать столь точный и при этом столь бесполезный ответ. … отрывок из известного а...

[Из песочницы] SpaceVIL — кроссплатфоремнный GUI фреймворк для разработки на .Net Core, .Net Standard и JVM В данной статье я постараюсь рассказать о фреймворке SpaceVIL (Space of Visual Items Layout), который служит для построения пользовательских графических интерфейсов на платформах .Net / .Net Core и JVM. SpaceVIL является кроссплатформенным и мультиязычным фреймворком, в его ...

Follow the money: как группировка RTM стала прятать адреса C&C-серверов в криптокошельке Группировка киберпреступников RTM похищает деньги у банковских клиентов с 2015 г. Большинство ее жертв — российские компании. Вредоносное ПО, которое используют злоумышленники, в ИБ-сообществе так же принято называть RTM. Об этой программе написано довольно много технических...

Компания Nvidia представила программное обеспечение Magnum IO Ориентируясь на исследователей в области искусственного интеллекта и других специалистов, использующих суперкомпьютеры, компания Nvidia представила программное обеспечение Magnum IO. По словам производителя, оно «устраняет узкие места при хранении и передаче данны...

Как быстро очистить смартфон от ненужных контактов Сегодня это сложно представить, но раньше (а если быть точным, то в начале 2000-х) память записной книжки большинства телефонов ограничивалась 150-200 контактами. Со временем количество ячеек памяти росло, пока и вовсе это ограничение не было снято. И сегодня на наших сматр...

[Из песочницы] Extension в Dart (Flutter) В недавном релизе языка Dart 2.6 в языке появилась новая функция, static extension или статические методы расширения, который позволяет вам добавить новые методы к существующим типам. Зачем вообще нужны extension? Как их использовать и на что они годятся? Введение Начнём ...

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

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

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

Неопределённая параметризация как универсальный метод построения архитектуры приложения на C++ и Java за минимальн. цену C++ — язык запутанный, и существенным его недостатком является сложность создания изолированных блоков кода. В типовом проекте всё зависит от всего. Эта статья показывает, как писать высокоизолированный код, который минимально зависит от конкретных библиотек (включая стандар...

Boost.Spirit, или Добавляем «духовности» фильтрам списков Доброго времени суток, коллеги. Я по-прежнему являюсь разработчиком ISPsystem, и меня все еще зовут Дмитрий Смирнов. Некоторое (довольно продолжительное) время я никак не мог определиться с темой следующей публикации, поскольку материала за последние месяцы работы с Boost.A...

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

Основы реактивного программирования с использованием RxJS. Часть 3. Higher Order Observables В данной статье мы рассмотрим, как можно в одном потоке обрабатывать другой, для чего это нужно, и как нам в этом помогут операторы Higher Order Observables (дальше HOO). При работе с потоками часто возникает ситуация, когда необходимо в качестве значения одному потоку пе...

«И невозможное возможно»: превращаем черный ящик в белый с помощью бинарного анализа На данный момент существует два основных подхода к поиску уязвимостей в приложениях — статический и динамический анализ. У обоих подходов есть свои плюсы и минусы. Рынок приходит к тому, что использовать надо оба подхода — они решают немного разные задачи с разным результа...

[Не] используйте CDN Практически в любой статье или инструменте для оптимизации скорости сайтов есть скромный пункт «используйте CDN». Вообще, CDN – это content delivery network или сеть доставки контента. Мы в компании «Метод Лаб» часто встречаемся с вопросами клиентов по этой теме, некоторые с...

[Перевод] Топ-65 вопросов по SQL с собеседований, к которым вы должны подготовиться в 2019 году. Часть I Перевод статьи подготовлен для студентов курса «MS SQL Server разработчик» Реляционные базы данных являются одними из наиболее часто используемых баз данных по сей день, и поэтому навыки работы с SQL для большинства должностей являются обязательными. В этой статье с вопрос...

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

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

PDFelement 7 – новая версия одного из лучших PDF-редакторов (Mac) На данный момент существует несколько популярных PDF-редакторов и самым известным среди них является продукт от Adobe. Однако в список продвинутых приложений, которые обладают широкими функциональными возможностями и подходят для профессиональной работы с документами, входит...

[Из песочницы] Пользовательские параметры в Google Analytics, которые не раз нас спасали При настройке аналитики через Google Analytics (GA) нередко без внимания остаются Пользовательские параметры или CD (Custom Dimensions). Это происходит из-за сложности с пониманием их области применения: неясно, как именно CD могут помочь в сборе и анализе данных и каким обр...

[Из песочницы] Краткое введение в рекурсию. JavaScript Перевод: Привет, Хабр! Представляю вашему вниманию перевод статьи "A Quick Intro to Recursion in Javascript" Yazeed Bzadough. Примечание. Рекурсия не единожды обсуждалась на хабре, но данная статья даёт базовое понимание рекурсии. Это будет полезно начинающим разр...

[Перевод] Вся правда об ОСРВ. Статья #29. Прерывания в Nucleus SE Все современные микропроцессоры и микроконтроллеры содержат какие-либо механизмы прерывания. Эти механизмы необходимы для обеспечения «отзывчивости», требуемой многими приложениями. Безусловно, отзывчивость и предсказуемость являются основной целью при использовании ОСРВ, но...

[Перевод] Асинхронные Stream в C# 8 Функционал Async/Await появился в C# 5, чтобы улучшить скорость отклика пользовательского интерфейса и веб-доступ к ресурсам. Другими словами, асинхронные методы помогают разработчикам выполнять асинхронные операции, которые не блокируют потоки и возвращают один скалярный ре...

[Перевод] Почему ['1', '7', '11'].map(parseInt) возвращает [1, NaN, 3] в Javascript? Javascript — странный. Не верите? Ну попробуйте тогда преобразовать массив строк в целые числа с помощью map и parseInt. Запустите консоль (F12 на Chrome), вставьте код ниже и нажмите Enter ['1', '7', '11'].map(parseInt); Вместо ожидаемого массива целых чисел [1, 7, 11] мы ...

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

Intel готова начать массовое производство память MRAM Компания Intel показала, что она может вывести на рынок совершенно новый продукт. Накопители Optane уже достаточно распространены, хотя речи о замене обычных SSD, конечно, не идёт. Как сообщает источник, Intel уже готова к массовому производству ещё одного нового проду...

Как не врать с помощью статистики: основы визуализации данных Не раз слышал мнение, что задача аналитиков — показать откровенно «грустные» цифры таким образом, будто всё идет по плану. Возможно, где-то так и происходит, но в геймдеве всё наоборот. Нам надо представить максимально объективные данные, чтобы в проекте принимались правил...

Qualcomm Snapdragon 730, 730G и 665: мобильные платформы среднего уровня с улучшенным ИИ Компания Qualcomm представила сразу три новые однокристальные платформы, предназначенные для использования в смартфонах среднего ценового сегмента. Новинки называются Snapdragon 730, 730G и 665, и, по словам производителя, они обеспечивают лучшую работу с ИИ и более высокую ...

Retentioneering: как мы open-source инструменты для продуктовой аналитики на Python и Pandas написали Привет, Хабр. Эта статья посвящена итогам четырехлетней разработки набора методов и инструментов обработки траекторий движения пользователей в приложении или на сайте. Автор разработки — Максим Годзи, который стоит во главе команды создателей продукта, он же — автор статьи. ...

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 10. Режимы работы портов свитча Сегодня мы рассмотрим режимы портов свитча и функции свитча. Свитч имеет два режима работы: Access, или статический доступ, и Trunk – режим туннельной магистрали. Первый режим используется, когда вы подсоединяете к порту свитча какое-либо конечное устройство. Если вы подсоед...

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

SK Hynix начала производство микросхем 4D QLC NAND объёмом 1 Тбит Компания SK Hynix приступила к производству 96-слойных микросхем памяти 4D QLC NAND объёмом 1 Тбит. На данный момент начаты поставки образцов этих микросхем крупным разработчикам контроллеров для твердотельных накопителей. А это означает, что до массового производства этих м...

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

Microsoft анонсировала Azure Kinect Кроме HoloLens 2, на MWC 2019 компания Microsoft анонсировала Azure Kinect, который уже доступен для предзаказа по цене $399. Это устройство впервые было представлено на Build 2018 в прошлом году, но называлось Project Kinect for Azure. Итак, Azure Kinect оснащён массивом и...

Опубликован OpenSSH 8.1 Разработчики OpenSSH представили очередную версию пакета программ для работы по протоколам SSH 2.0 и SFTP. Релиз устранил серию опасных уязвимостей, позволявших определить приватные ключи и вмешаться в защищенный обмен данными. Среди таких угроз эксперты выделили баг в коде ...

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

22 компьютерных музея: путеводитель для путешествующих по Европе инженеров Мы составили список интересных коллекций, посвященных истории IT, доступных для посещения в разных частях континентальной Европы. Думаем, остановка в любом из них, может здорово скрасить отпуск или командировку. *** Первые индустриальные музеи появились еще во второй по...

[Перевод] Почему вам стоит разгонять оперативную память (это легко!) Любая программа на ПК использует для работы оперативную память, RAM. Ваша RAM работает на определённой скорости, заданной производителем, но несколько минут копания в BIOS могут вывести её за пределы стандартных спецификаций. Да, скорость работы памяти имеет значение Кажд...

Обзор вентиляторов Arctic P12 PWM PST и Arctic P14 PWM PST В конце прошлого года мы проводили тестирование пары вентиляторов Arctic Cooling BioniX P140 и Arctic Cooling BioniX P120. Сегодня героями обзора будут Arctic P12 PWM PST и Arctic P14 PWM PST, они были представлены в это же время. Ориентированы они на высокое статическое дав...

Анализ производительности видеокарт в тесте трассировки лучей Crytek Neon Noir Прошёл почти год с тех пор, как игры, использующие для эффектов освещения аппаратное ускорение трассировки лучей (RT), впервые появились на рынке. Уже тогда стало ясно, что использование технологии RT будет набирать обороты, а после анонса аппаратной поддержки в консолях Son...

В 2019 году увеличилось количество атак инфостилеров Вредоносным программам для сбора данных не составляет труда получить сохраненную в браузере информацию, в том числе логины и пароли. Что и как воруют современные трояны-стилеры, рассказали специалисты «Лаборатории Касперского» в профильном обзоре вредоносной активн...

3D-печать домов постепенно набирает обороты Строительство домов с использованием методов 3D-печати может показаться футуристическим, но эта технология постепенно набирает обороты. В качестве примера источник приводит молодую компанию haus.me, которая недавно запустила производство в штате Невада. Этот производите...

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

[Из песочницы] Синтез как один из методов улучшения производительности PostgreSQL Философское вступление Как известно, существует всего два метода для решения задач: Метод анализа или метод дедукции, или от общего к частному. Метод синтеза или метод индукции, или от частного к общему. Для решения проблемы “улучшить производительность базы данных” это...

[Перевод] Ограничения 8-битных игр и их точное воссоздание в Unity Ретро-игры с простыми механиками и пиксельной графикой способны пробуждать тёплые воспоминания у опытных игроков, и в то же время вполне доступны для более юной аудитории. Сегодня многие игры называются «ретро», но для создания ностальгического стиля требуются усилия и план...

PVS-Studio идёт в облака: GitLab CI/CD Эта статья является продолжением цикла публикаций об использовании PVS-Studio в облачных системах. На этот раз мы рассмотрим работу анализатора совместно с GitLab CI — продуктом от GitLab Inc. Интеграция статического анализатора в CI систему позволяет выявить баги сразу пос...

Когда стандарта HTTP мало. Коммитим в Micronaut Всем привет, меня зовут Дмитрий, и сегодня я расскажу о том, как производственная необходимость заставила меня стать контрибутором для фреймворка Micronaut. Наверняка многие о нём слышали. Если вкратце, то это легковесная альтернатива Spring Boot, где основной упор сделан не...

[Перевод] Как заблокировать работу Microsoft Edge в фоне под Windows 10 Работая на устройстве под управлением ОС Windows 10, вы могли заметить в Task Manager среди запущенных процессов Microsoft Edge, даже если вы не пользуетесь этим браузером. Эти процессы, MicrosoftEdge.exe, MicrosoftEdgeCP.exe и MicrosoftEdgeSH.exe, отображаются там как прио...

Работа с callbacks в React За время свой работы, я периодически сталкивался с тем, что разработчики не всегда четко представляют, каким образом работает механизм передачи данных через props, в частности колбеков, и почему их PureComponents обновляется так часто. Поэтому в данной статье мы разберемся,...

5 лайфхаков оптимизации SQL-запросов в Greenplum Любые процессы, связанные с базой, рано или поздно сталкиваются с проблемами производительности запросов к этой базе. Хранилище данных Ростелекома построено на Greenplum, большая часть вычислений (transform) производится sql-запросами, которые запускает (либо генерирует и...

[Перевод] Как исследователи в Uber применяют и масштабируют знания о поведении человека Мы подготовили для читателей Хабры перевод статьи команды Uber Labs. Коллеги из Uber описывают процесс работы аналитиков узкоспециализированного типа (в области науки о поведении) в рамках огромной корпорации, как устроено их взаимодействие с аналитиками других типов (UX-и...

[Перевод] GitOps: сравнение методов Pull и Push Прим. перев.: В сообществе Kubernetes явную популярность набирает тренд под названием GitOps, в чём мы лично убедились, посетив KubeCon Europe 2019. Этот термин был относительно недавно придуман главой компании Weaveworks — Alexis Richardson — и означает применение привычных...

Существенно ускоряем выполнение задач на примере дополнительной настройки обновленной памяти HyperX FURY DDR4 Выбор оперативной памяти для рабочего или игрового ПК – головная боль для тех, кто хочет одновременно получить максимум производительности и не опустошить свой кошелёк. Нет, сегодня мы не будем в очередной раз говорить «такая-то память стоит столько и является оптимальным вы...

Лавочка прикрыта. На Huawei Mate 30 больше нельзя поставить приложения и сервисы Google Совсем недавно Huawei представила свои флагманские смартфоны серии Mate 30, которые стали первыми смартфонами компании без поддержки приложений и сервисов Google, поскольку Соединенные Штаты включили китайского гиганта в свой «Список запрещенных компаний». С...

Как мы делали нашу маленькую Unity с нуля У нашей компании есть свой игровой движок, который используется для всех разрабатываемых игр. Он предоставляет всю важную базовую функциональность:  рендеринг; работа с SDK; работа с операционной системой; с сетью и ресурсами.  Однако в нем не хватало того, чем так цени...

[Перевод] MVC без C: Что изменит SwiftUI в архитектуре приложений? MVC был давним стандартом в паттернах проектирования, используемых для написания iOS приложений. Структура iOS приложений, которые создавались ранее, была основана на одном базовом компоненте, который присутствует везде, и называется он — Controller. На WWDC19 был представле...

Удалите это Android-приложение. Оно распространяет вирусы Вирусы для Android — везде, даже в Google Play Думаю, не ошибусь, если предположу, что большинство наших читателей используют для загрузки приложений только Google Play. Самый распространённый довод в пользу фирменного каталога Google – это безопасность. Многим кажется...

[Из песочницы] Использование SQLite в Unity (Unity + SQLite) Всем привет, данная публикация будет посвящена работе с встраиваемой реляционной базой данных SQLite в Unity. Данная статья написана новичком для новичков с целью показания работы с SQLite, предполагается, что вы знаете основы SQL. Так как в интернете нет ясного тутора для н...

[Из песочницы] Инкапсуляция в Python 3 Определение Значение термина «инкапсуляция» расплывчато и отличается от источника к источнику. Принято считать, что инкапсуляция — один из основополагающих принципов ООП, хотя некоторые научные статьи вовсе упускают инкапсуляцию из списка. К примеру, Джон Митчелл в книге «К...

Еще одно приложение Google получило поддержку темной ... С оглядкой на то, что Android Q будет иметь специальную настройку для включения общесистемного темного режима, Google продолжает добавлять темную тему во многие свои фирменные приложения. В первую очередь тех, которые обновлены в соответствии с последними нормами Material De...

Генерация кода для бекенда. Что генерировать, как и зачем? Я хочу показать в этой статье как у нас в фирме генерируется бекенд (и немного фронтенд) код, зачем вообще это нужно и как это лучше делать. Что именно будем генерировать — не так важно. Важно что мы опишем 3 вида объектов на основе которых сгенерируем взаимодействие фронте...

Российские специалисты разработали передовой способ пеленгации Государственная корпорация Роскосмос сообщает о том, что отечественные исследователи разработали передовой способ пеленгации, который может использоваться для определения местоположения объектов в пределах околоземного космического пространства. Центр космической связи ОКБ М...

KOST: что входит в новый стек технологий для разработки облачных приложений Рассказываем о его компонентах и перспективах. / фото Gozha Net Unsplash Почему появился новый стек Существует множество стеков для разработки программного обеспечения. Один из наиболее известных — LAMP (Linux, Apache HTTP server, MySQL, PHP). На нем построен сайт «Википед...

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

[Из песочницы] Особенности HttpUrlConnection из java.net Здравствуйте, сегодня постараюсь рассказать о том, как можно отправить запрос и прочитать ответ от HTTP сервера, используя URLConnection из библиотеки JRE. Сейчас изучаем Java в онлайн режиме. Вся наша команда использует Slack для работы и общения. Заинтересовала возможнос...

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

Основы реактивного программирования с использованием RxJS. Часть 2. Операторы и пайпы В предыдущей статье мы рассмотрели, что такое потоки и с чем их едят. В новой части мы познакомимся с тем, какие методы RxJS предоставляет для создания потоков, что такое операторы, пайпы(pipes) и как с ними работать. RxJS обладает богатейшим API. В документации описано б...

Один из методов получения истории блокировок в PostgreSQL Продолжение статьи "Попытка создать аналог ASH для PostgreSQL ". В статье будет рассмотрено и показано на конкретных запросах и примерах — какую же полезную информацию можно получить с помощью истории представления pg_locks. Предупреждение. В связи с новизной темы и незавер...

Антирейтинг 2018 Эта статья написана по аналогии со статьей «Как не надо писать на Хабр: Антирейтинг 2017». Статьи взяты за 2018 год, точнее, начиная с индекса 345000. Кроме отрицательных значений рейтинга, есть список по абсолютному количеству минусов (видимо, самые обсуждаемые темы, в бо...

Телескоп TESS поможет в поиске внеземной разумной жизни NASA Проект Breakthrough Listen (BL) был запущен в 2015 году. Он использует мощные обсерватории для поиска радиосигналов, приходящих от ближайших к нам звезд, которые бы могли свидетельствовать о наличии внеземной разумной жизни. На днях было объявлено о сотрудничество ...

Spring JPA репозитории в CUBA Тема статьи достаточно узконаправленная, но, возможно, окажется полезной тем, кто разрабатывает свои собственные хранилища данных и думает об интеграции со Spring Framework. Предпосылки Разработчики обычно не очень любят менять свои привычки (зачастую, в список привычек вхо...

Консенсус в криптовалютах с гибридным майнингом Мне довелось участвовать в разработке механизма майнинга для криптовалюты, позволяющего использовать разные алгоритмы хэширования для построения блокчейна. Цель — дать возможность майнерам с любым оборудованием(ASIC, GPU, CPU) поддерживать сеть, охватывая всю возможную аудит...

СХД для мультиоблака Российские облачные провайдеры только начинают предоставлять сервисы по модели PaaS, но зарубежные гиперскейлеры давно предлагают платформенные сервисы разработчикам. Переполненные залы редких российских конференций AWS, на которые трудно попасть даже представителям прессы,...

Разоблачаем магию DiffUtil Каждый Android-разработчик использовал RecyclerView для отображения списков и каждый сталкивался с проблемой обновления данных в списке, пока в 2016 году не появился магический класс DiffUtil. Я на пальцах объясню, как на самом деле он работает, и постараюсь рассеять его ма...

[Из песочницы] Не учите паттерны, учите концепции Добрый день (или вечер, или утро, в зависимости от того, когда выйдет этот пост). Я хочу высказаться о элитарной части программирования, и донести, в общем-то, очевидную мысль до начинающих в back-end(и не только) разработке, попутно используя попытку начать писать на Хабре...

Работа с датами на языке R (базовые возможности, а также пакеты lubridate и timeperiodsR) Получить текущую дату в любом языке программирования, операция эквивалентная "Hello world!". Язык R не является исключением. В этой статье мы разберёмся с тем, как устроена работа с датами в базовом синтаксисе языка R, а также рассмотрим несколько полезных пакетов, расширяющ...

Крупнейшего китайского производителя светодиодных чипов исключили из «чёрного» списка США В минувшие выходные стало известно, что Sanan Optoelectronics, крупнейшего производителя светодиодных чипов в Китае, а также ещё 7 китайских компаний исключили 27 июня из так называемого «списка непроверенных стран и компаний» (Unverified List) правительства США в связи с ос...

Резервное копирование, часть 4: Обзор и тестирование zbackup, restic, borgbackup В данной статье будут рассматриваться программные средства для резервного копирования, которые путем разбиения потока данных на отдельные компоненты (chunks), формируют репозиторий. Компоненты репозитория могут дополнительно сжиматься и шифроваться, а самое главное — при по...

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

Уроки по T-FLEX CAD 16 - Создание 3D модели ролика (эскиз, ограничения, управляющие размеры) Друзья!В  прошлом уроке по работе с T-FLEX CAD 16 мы познакомили вас с методами создания 3D модели фланца и её опорной геометрии на основе линий построения и линий изображения. В новом уроке построим 3D модель, используя эскиз, ограничения и управляющие размеры для созд...

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

[Из песочницы] Способы сегментации точек в Point Clouds Введение Некоторое время назад мне потребовалось решить задачу сегментации точек в Point Cloud (облака точек — данные, полученные с лидаров). Пример данных и решаемой задачи: Поиски общего обзора существующих методов оказались неуспешными, поэтому пришлось собирать информац...

[Перевод] Вся правда об ОСРВ. Статья #32. Миграция Nucleus SE: Нереализованные функции и совместимость Основным требованием при разработке Nucleus SE была высокая степень совместимости с главным ОСРВ-продуктом Mentor – Nucleus RTOS. Nucleus SE поддерживает определенную часть функционала Nucleus RTOS, о чем много раз говорилось в предыдущих статьях, однако в этой статье я пост...

[Из песочницы] Практичный гайд по переменным окружения в Go Привет, Хабр! Представляю вашему вниманию перевод статьи A no-nonsense guide to environment variables in Go автора Enda Phelan. Переменные окружения — лучший способ хранения конфигурации приложения, поскольку они могут быть заданы на системном уровне. Это один из принципов ...

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

Генерация документов с помощью ONLYOFFICE DocumentBuilder Привет, Хабр. Я хочу рассказать об утилите под названием DocumentBuilder, которая позволяет генерировать документы, таблицы и презентации, а также показать, как можно его использовать для решения ваших задач, на примере создания резюме из шаблонов. Работает билдер следующи...

10 способов, как вас могут обмануть при обмене криптовалют Во время работы по запуску мониторинга обменников криптовалют на Bits.media занялся я составлением списка рисков, с которыми сталкивался, и о которых мне писали пользователи после инцидентов. А чтоб добру не пропадать, решил оформить все в отдельную статью. Немного дополни...

MPS 2019.2: перечисляемые типы данных, настройка сообщений об ошибках, переход на JDK 11 и многое другое В MPS 2019.2 мы подготовили для вас много новых функций в различных подсистемах и исправили ряд ошибок. Скачать MPS 2019.2 Перечисляемые типы данных Новый способ объявления перечисляемых типов данных позволяет определить список вариантов в компактной форме, указав для к...

Уроки по T-FLEX CAD 16 - Создание 3D модели фланца для шарового крана Друзья!В прошлом уроке по работе с T-FLEX CAD 16 мы познакомили вас с 3D элементами, 3D профилями и их типами. Это опорная геометрия, на основе которой создаются 3D операции. В новом уроке построим 3D модель, используя различные операции. Моделирование можно выполнять в бесп...

Флэш-массивы Infortrend установлены в крупнейшем европейском центре обработки данных Компания Infortrend® Technology, Inc. (код TWSE: 2495), разработчик передовых корпоративных систем для хранения данных, сообщила об установке флэш-массивов в крупнейшем европейском центре обработки данных e-shelter. Сотрудничество с инновационной лабораторией ...

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

T-FLEX CAD 16 - Моделирование в 3D сцене. 3D профили и другие 3D элементы Друзья!В прошлом уроке по работе с T-FLEX CAD 16 мы познакомили вас с особенностью, интерфейсом и настройками программы. Все действия, описанные в уроках, можно выполнять в бесплатной учебной версии.В новом уроке мы разберём основные принципы создания 3D моделей: создание оп...

Множественные эксперименты: теория и практика В современном мире сложно представить развитие продукта без A/B-тестирования. Чтобы успешно запустить продукт или новую функциональность — надо грамотно спроектировать A/B, рассчитать и интерпретировать его результаты. Иногда нам требуется тестирование более чем для двух гру...

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

[Перевод] PHP дженерики уже сегодня (ну, почти) Если спросить PHP-разработчиков, какую возможность они хотят увидеть в PHP, большинство назовет дженерики. Поддержка дженериков на уровне языка была бы наилучшим решением. Но, реализовать их сложно. Мы надеемся, что однажды нативная поддержка станет частью языка, но, вероятн...

SSD Toshiba BG4 обзор BG4 - это SSD-массив Toshiba четвертого поколения, объединяющий NAND и контроллер в одном корпусе. Накопитель поставляется в двух форматах: M.2 (моноблочная упаковка 1620) и съемный модуль M.2 2230. Рассмотрим флагманский вариант на 1 ТБ. Модель с поддержкой PCIe 3 x4...

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

Анализ механизмов локализации интерфейса приложений в Splunk В данной статье мы рассмотрим основной механизм локализации интерфейса приложений Splunk (в т.ч. стандартных элементов приложения Search) — gettext internationalization and localization (i18n). Читать дальше →

Отображение текста в Android Отображение текстовой информации — наверное, самая базовая и важная часть многих Android-приложений. В данной статье пойдет речь о TextView. Каждый разработчик, начиная с «Hello World», постоянно сталкивается с этим элементом пользовательского интерфейса. Периодически в раб...

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

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

[Перевод] Unreal Engine4 — PostProcess эффект сканирования В эти выходные у меня появилось немного свободного времени между занятиями (прим. автор на момент статьи получал степень магистра наук), и я решил вернуться к созданию шейдеров, придумав этот postprocess эффект сканирования. Я представил, что он используется в игре как сво...

Как выбрать СХД на основе NVMe СХД с использованием NVMe-протокола ускоряют передачу данных между флэш-памятью и местом их обработки. Эта статья определяет аспекты, которые следует учитывать при выборе системы хранения данных с использованием стандарта NVMe. Все ...

[Из песочницы] Передача знания и Нейронный машинный перевод на практике Нейронный машинные перевод (НМП, англ. Neural Machine Translation, NMT) развивается очень быстро. Сегодня, чтобы собрать свой переводчик, не нужно иметь два высших образования. Но чтобы обучить модель, нужен большой параллельный корпус (корпус, в котором предложению на исход...

[Перевод] Learn OpenGL. Урок 7.1 – Отладка Графическое программирование — не только источник веселья, но еще и фрустрации, когда что-либо не отображается так, как задумывалось, или вообще на экране ничего нет. Видя, что большая часть того, что мы делаем, связана с манипулированием пикселями, может быть трудно выясни...

[Из песочницы] Создание системы расширения на библиотеке Qt Плагины(Расширения) Расширения это совместно используемая динамическая библиотека предназначения для загрузки в процессе исполнения основного приложения, которая обязательно должна реализовывать хотя бы один специальный интерфейс. Расширения делятся на два типа: Для Qt Дл...

Как работает PageRank: реализация на языке R через линейную алгебру и power-метод Привет, хабровчане! Меня зовут Алексей. На этот раз я вещаю с рабочего места в ИТАР-ТАСС. В данном небольшом тексте я познакомлю вас с методом расчета PageRank © (далее буду называть его ПР) на простых, понятных примерах, на языке R. Алгоритм является интеллектуальным дос...

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

Apple выпустит iPhone с экранным Touch ID уже в следующем году Touch ID под экраном — вспомогательный способ разблокировки для iPhone Apple редко возвращается к использованию старых технологий, от которых она однажды отказалась. Такие ситуации можно пересчитать по пальцам одной руки, но почти все они были связаны с экспериментальн...

[Из песочницы] Основы прозрачного проксирования с использованием 3proxy и iptables/netfilter или как «пустить всё через прокси» В данной статье хотелось бы раскрыть возможности прозрачного проксирования, которое позволяет абсолютно незаметно для клиентов перенаправлять весь либо часть трафика через внешние прокси-серверы. Когда я начинал решать данную задачу то столкнулся с тем, что её реализация ...

Руководство: Thymeleaf + Spring. Часть 2 Первая часть Третья часть 5 Отображение Seed Starter Data Первое, что покажет наша страница /WEB-INF/templates/seedstartermng.html, — это список с начальными стартовыми данными, которые в данный момент сохранены. Для этого нам потребуются некоторые внешние сообщения, а т...

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

Создание и обновление списков рассылки в Zimbra Collaboration OSE на основе групп и пользователей Active Directory 1. Пара слов от автора В комментариях к прошлой статье мне задали интересный вопрос об автоматическом формировании списков рассылки на основе групп безопасности AD. Есть задача – есть решение. Правда, оговорюсь сразу, решение несколько костыльное (почему – читать далее), но ...

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

«Секретики» DPAPI или DPAPI для пентестеров Вторая статья по итогам выступления нашей команды на OFFZONE-2018. На этот раз рассмотрим доклад с MainTrack “Windows DPAPI “Sekretiki” or DPAPI for pentesters”. Внимание! Очень много буков! При проведении RedTeam кампаний хочется давать меньше поводов для реакции BlueTeam...

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

[Перевод] RabbitMQ: отказоустойчивость и высокая доступность в кластерах Отказоустойчивость и высокая доступность — большие темы, так что посвятим RabbitMQ и Kafka отдельные статьи. Данная статья о RabbitMQ, а следующая — о Kafka, в сравнении с RabbitMQ. Статья длинная, так что устраивайтесь поудобнее. Рассмотрим стратегии отказоустойчивости, ...

[Перевод] Переполнение и потеря данных в CSS В этой статье Рейчел Эндрю рассматривает ситуации, в которых вы можете столкнуться с переполнением при верстке сайтов, и объясняет, как развивался CSS, чтобы создавать более эффективные методы разметки в ситуациях, когда объёмы контента заранее неизвестны Читать дальше →

Как включить новый интерфейс автозаполнения в Chrome на Android Google Chrome получил новый интерфейс автозаполнения. Но, чтобы включить его, нужно постараться Автозаполнение данных является относительно новой функцией для браузеров. Её появление было обусловлено многократным увеличением числа веб-сайтов и сервисов, которые мы используем...

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

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

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

Когда сам президент на твоей стороне. В противостоянии Apple и Samsung купертинцам может помочь Дональд Трамп Несколько дней назад источники сообщали, что Apple наняла лоббиста, близкого к президенту США. Цель — исключить продукцию Apple из списков товаров, на которые будет распространяться дополнительный налог. Напомним, списки эти связаны с торговой войной США с Китаем....

Airtest IDE — новый путь в автоматизации тестирования мобильных игр? Сегодня я хочу вам рассказать о достаточно новом open-source инструменте для автоматизированного тестирования под названием Airtest. В дальнейшем я сделаю ещё несколько статей с подробным рассказом об отдельных элементах данного инструментария и как с ними работать, а сейчас...

Проблемы Huawei — лишь вершина айсберга. От действий Трампа в итоге пострадают Arm, Google и вся американская индустрии Американские санкции, наложенные на Huawei, будет «разрушительными» для Arm, считает соучредитель компании Герман Хаузер (Hermann Hauser). Напомним, Arm и Huawei приостановили сотрудничество в свете последних событий. В мае Huawei была добавлена в особый спи...

Отличаем символы от мусора: как построить устойчивые нейросетевые модели в задачах OCR В последнее время мы в группе распознавания компании ABBYY всё больше применяем нейронные сети в различных задачах. Очень хорошо они зарекомендовали себя в первую очередь для сложных видов письменности. В прошлых постах мы рассказывали о том, как мы используем нейронные сети...

[Из песочницы] Метод создания DRAG and DROP эффекта Придя впервые к технологии DRAG and DROP столкнулся с очень тяжелым её описанием (Это мое субъективное мнение. Прошу с ним не соглашаться, а перечитать все что только можно и посмотреть на этот вопрос с многих сторон). И решил написать пару статей, нацеленных на начинающих р...

Hitachi Vantara представила новый класс СХД на базе ИИ Среди ключевых анонсов конференции NEXT 2019 компании Hitachi Vantara — платформа Hitachi Virtual Storage Platform серии 5000 и новая программная система управления Hitachi Ops Center. Решения Hitachi VSP&nbsp;серии 5000,...

Тысячи Android-приложений могут содержать RCE-уязвимость Уязвимость выполнения стороннего кода в WhatsApp присутствует и в других приложениях для Android. К такому выводу пришли специалисты TrendMicro, нашедшие около 3000 потенциально опасных программ в Google Play и сторонних файловых архивах. Баг эксплуатируется через вредоносны...

[Перевод] Что такое Strict Aliasing и почему нас должно это волновать? Часть 2 (ИЛИ каламбур типизации, неопределенное поведение и выравнивание, о мой Бог!) Друзья, до запуска нового потока по курсу «Разработчик С++», остается совсем немного времени. Пришло время опубликовать перевод второй части материала, в которой рассказывается о том, что такое ка...

[Перевод] Перекрестная репликация между PostgreSQL и MySQL Я в общих чертах расскажу о перекрестной репликации между PostgreSQL и MySQL, а еще о методах настройки перекрестной репликации между этими двумя серверами базы данных. Обычно базы данных в перекрестной репликации называются однородными, и это удобный метод перехода с одног...

[Перевод] Вся правда об ОСРВ. Статья #30. Инициализация и процедуры запуска Nucleus SE У любой операционной системы есть определенный механизм запуска. Принцип работы этого механизма у каждой системы свой. Обычно говорят, что система загружается (англ. boot), это сокращение от «bootstrap», которое отсылает к выражению «pull oneself over a fence by one’s boot...

Google прокачала ARcore и добавила дополненную реальность в поиск на Android Прежде всего, ARcore – это один из проектов Google, который способен не только развлечь пользователей своими возможностями, но и не на шутку впечатлить. ARcore является основой многих приложений дополненной реальности, таких как Google Lens и Playground, а также таких сторо...

[Из песочницы] Хранение настроек в памяти Базового устройства Привет! Если Вам посчастливилось подержать в руках микроконтроллер ESP32 (мне посчастливилось больше и у меня в руках M5Stack) от китайской компании ESPRESSIF, то этот пост, возможно, будет полезен. Бывает ситуация, когда необходимо сохранить какие-то параметры в энергонеза...

Cоздание визуальных компонентов в Unity UI. Система частиц Привет! Эта статья о создании собственных визуальных компонентов в UI на примере компонента для визуализации системы частиц в Canvas’e. Данная информация будет полезна для реализации различных эффектов в пользовательском интерфейсе, а также может использоваться для генераци...

Эксперты предупредили о небезопасных роутерах NETGEAR Исследователи Talos Intelligence обнаружили уязвимости в беспроводных роутерах NETGEAR. Из-за некорректной настройки рукопожатия между клиентом и точкой доступа злоумышленник может перехватить закрытые данные сетевых устройств. Баги содержатся в модуле ядра NetUSB одного из ...

[Перевод] О декораторах в Python Всем привет! Перевод статьи подготовлен для студентов курса «Web-разработчик на Python». Интересно развиваться в данном направлении? Запишитесь на День Открытых Дверей курса и пообщайтесь вживую с преподавателем: онлайн-трансляция 23 июля в 20:00 по мск.! Когда вы упражняли...

Метод Pomodoro не так крут, как мог бы быть У метода pomodoro есть не совсем очевидные нюансы. И эти нюансы, если переформулировать Кличко, понимают не только лишь все, мало кто может это делать. Поэтому давайте разберемся, что это за метод, и что можно было бы улучшить. Читать дальше →

«Если компания скидывает на Data Scientist петабайты данных в надежде на чудо, то, скорее всего, чуда не случится» Работа с данными – одно из самых приоритетных направлений у большинства зарубежных и российских компаний. Это также подтвердило недавнее исследование IDC и Hitachi Vantara. Но для принятия взвешенных решений и разработки стратегии на основе данных нужен специалист, котор...

Графические процессоры для “озер” восьмого поколения. Поговорим? iGPU – это встроенные в системы-на-чипе от Intel графические процессоры, а “озера” 8-го поколения – это процессоры Kaby Lake R, Coffee Lake, Amber Lake и Whiskey Lake. А вот к какому поколению Intel-графики относились эти iGPU, я так и не понял. 9.5+? Это продолжение серии...

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

[Из песочницы] События на базе LiveData Android LiveData – это отличный инструмент для связывания состояния ваших данных и объектов с жизненным циклом (LifecycleOwner, обычно это Fragment или Activity). Обычно LiveData помещаются во ViewModel и используются для обновления состояния вашего UI. Часто ViewModel может пережи...

[recovery mode] Типобезопасная работа с массивами PHP Всем привет, расскажу о собственном велосипеде для удобной работы с массивами в PHP. Type hinting В PHP7 появились подсказки типов (type hinting), что позволило IDE проводить более качественный статический анализ кода, качество нашего кода улучшилось (или правильно говорит ...

[Перевод] Основы Signed Distance Field в 2D Хотя меши являются простейшим и наиболее универсальным способом рендеринга, существуют и другие варианты представления фигур в 2d и 3d. Одним из часто используемых способов являются поля расстояний со знаком (signed distance fields, SDF). Поля расстояний со знаком обеспечива...

Изучаем Adversarial Tactics, Techniques & Common Knowledge (ATT@CK). Enterprise Tactics. Часть 9 Сбор данных (Collection) Ссылки на все части: Часть 1. Получение первоначального доступа (Initial Access) Часть 2. Выполнение (Execution) Часть 3. Закрепление (Persistence) Часть 4. Повышение привилегий (Privilege Escalation) Часть 5. Обход защиты (Defense Evasion) Часть 6. ...

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

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

Еще одна ошибка Windows 10 вызывает высокую загрузку процессора и нарушает работу IME Windows 10 KB4515384, выпущенная для всех 10 сентября с исправлениями безопасности и улучшениями качества, страдает от еще одной ошибки. KB4515384 содержит исправления безопасности и исправление ошибки Cortana, приводящей к высокой загрузке ЦП в некоторых системах, но пользо...

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

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

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

Саммит DIGITAL BRANDING. Best Cases 2019 Маркетинг никогда не будет прежним! 24 и 25 Октября 2019 в Москве на Саммите Digital Branding. Best Cases 2019 будут представлены пионерские кейсы эффективного использования Big Data в Стратегиях и Маркетинге Ведущих Брендов. B...

Подключение Micrometer для веб-приложения на Java Micrometer используется для сбора метрик приложения JVM и позволяет экспортировать данные в различные системы мониторинга. В этой статье я расскажу, как подключить Micrometer для spring web приложения и экспортировать данные в Prometheus (хороший пост о нем). Так как мое при...

Более 660 операторов связи подключились к Единому реестру запрещенной информации На сегодняшний день новый механизм внедрен и применяется на сетях более 660 крупных и магистральных операторов связи. На сетях еще около 10 операторов проходит тестовая эксплуатация.Новый механизм позволяет операторам связи получать из Единого реестра только обновленные или ...

PostGIS и JPA PostGIS — открытое программное обеспечение, добавляющее поддержку географических объектов в реляционную базу данных PostgreSQL. В этой небольшой статье будет рассмотрено использование его в Java. В частности — задача нахождения географических объектов по их координатам. Ч...

Инструменты для хорошего Wi-Fi. Ekahau Pro и другие Если вы занимаетесь построением средних и крупных Wi-Fi сетей, где самое меньшее число точек доступа это несколько десятков, а на больших объектах оно может исчисляться сотнями и тысячами, вам нужны инструменты для планирования такой внушительной сети. От результатов плани...

Инструменты для запуска и разработки Java приложений, компиляция, выполнение на JVM Ни для кого не секрет, что на данный момент Java — один из самых популярных языков программирования в мире. Дата официального выпуска Java — 23 мая 1995 года. Эта статья посвящена основам основ: в ней изложены базовые особенности языка, которые придутся кстати начинающим “д...

Шасси QNAP TR-002 можно использовать для расширения дисковых хранилищ Компания QNAP Systems представила TR-002 — корпус для расширения массивов RAID, рассчитанный на два накопителя. Его можно использовать как в составе NAS, так и подключая непосредственно к ПК под управлением Windows, macOS или Linux. Для подключения используется ин...

[Из песочницы] Расшифровка LUKS контейнера в момент загрузки системы Всем доброго дня, ночи! Этот пост будет полезен тем, кто используется шифрование данных LUKS и хочет производить decryptдешифровку дисков под Linux (Debian, Ubuntu) на стадии расшифровки root раздела. И такой информации в интернете я найти не смог. Совсем недавно с увеличен...

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

Уже скоро в браузере Chrome появится отложенная загрузка веб-страниц Для тяжелых сайтов, на которых много различного медиа-контента помимо текста, такие функции, как отложенная загрузка, являются просто спасением – они позволяют сайтам загружать только тот контент на странице, который видит пользователь, исключая то, что находится вне поля з...

MVCC-2. Слои, файлы, страницы В прошлый раз мы поговорили о согласованности данных, посмотрели на отличие между разными уровнями изоляции транзакций глазами пользователя и разобрались, почему это важно знать. Теперь мы начинаем изучать, как в PostgreSQL реализованы изоляция на основе снимков и механизм м...

[Перевод] Почему люди не используют формальные методы? На Software Engineering Stack Exchange я увидел такой вопрос: «Что мешает широкому внедрению формальных методов?» Вопрос был закрыт как предвзятый, а большинство ответов представляли собой комментарии типа «Слишком дорого!!!» или «Сайт — это не самолёт!!!» В каком-то смысле ...

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

[Перевод] Особенности рендеринга в игре Metro: Exodus c raytracing Предисловие После выхода последней игры из серии «Метро» я потратил несколько часов на изучение её внутренней работы и решил поделиться тем, что может показаться интересным с технологической точки зрения. Я не буду проводить подробный анализ или изучать дизассемблированный ...

[Перевод] Делегаты и события в C# Перевод статьи подготовлен специально для студентов курса «Разработчик С#». Что такое события в C#? Событие может быть использовано для предоставления уведомлений. Вы можете подписаться на событие, если вам нужны эти уведомления. Вы также можете создавать свои собственные...

Все свое: туториал по созданию новых действий для UiPath RPA Данная статья – обучающий материал, который позволяет по шагам пройтись по процессу создания и публикации нового компонента для платформы UiPath RPA. Это удобно в разных случаях, например, для простой интеграции с системами компании или в ситуациях, когда компания хочет помо...

Spring Boot 2 и JDK 8: Вы все еще используете аннотации @Param, @RequestParam и @PathVariable? Тогда статья для Вас Здравствуй, Хаброчитатель! Разрабатывая учебный проект по Spring Boot 2 решил поэкспериментировать с @Param в запросах Spring Data JPA, а точнее c их отсутствием: @Transactional(readOnly = true) public interface UserRepository extends JpaRepository<User, Integer> { ...

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

[Перевод] Процедурные паттерны, которые можно использовать с тайловыми картами Процедурная генерация используется для повышения вариабельности игр. Среди известных проектов можно упомянуть Minecraft, Enter the Gungeon и Descenders. В этом посте я объясню некоторые из алгоритмов, которые можно применять при работе с системой Tilemap, появившейся как 2D-...

[Перевод] Деплоим ML проект, используя Flask как REST API, и делаем доступным через приложение на Flutter Введение Машинное обучение уже везде и, пожалуй, почти невозможно найти софт, не использующий его прямо или косвенно. Давайте создадим небольшое приложение, способное загружать изображения на сервер для последующего распознавания с помощью ML. А после сделаем их доступными ...

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

Названы лучшие изобретения россиян Роспатент опубликовал список «100 лучших изобретений 2018 года», собранный после анализа патентного массива за прошедший год. Всего за 2018 год ведомство выдало 35 774 патента.

Повторное использование форм на React Привет! У нас в БКС есть админка и множество форм, но в React-сообществе нет общепринятого метода — как их проектировать для переиспользования. В официальном гайде Facebook’a нет подробной информации о том, как работать с формами в реальных условиях, где нужна валидация и п...

3D-печать металлами: 5 очевидных преимуществ на практическом примере Завихритель, изготовленный по SLM-технологии. При серийном изготовлении таких деталей сокращение стадии подготовки производства может достигать 50% Об особенностях и выгодах, которые способна дать предприятию технология селективного лазерного плавления (SLM), написано нем...

Обзор iBOX PRO-1080 DUAL. Автомобильный видеорегистратор зеркало Сегодня мы бы хотели представить вашему вниманию автомобильный видеорегистратор зеркало с двумя камерами, что позволяет использовать камеру заднего вида в качестве парковочного ассистента. Встречайте, перед вами iBOX PRO-1080 DUAL. Устройство доступно в российских магазина...

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

Energizer представила смартфон с аккумулятором, как у пяти iPhone Xs Max На данный момент основной претензией к современным мобильным устройствам является небольшое время автономной работы. Обычно производители стараются решить эту проблему, используя в своих гаджетах более энергоэффективные компоненты и специальные технологии. Но компания Energi...

[recovery mode] Agilean — убийца Lean и Agile Гибридная методология управления на основе ценностей В этой статье мы расскажем вам об Agilean («Эджайлин») как методе создания гибридных инструментов на базе Lean и Agile и шире об Agilean как о философии управления бизнесом с плацдарма ценностей. Немного поговорим о нюан...

Сжимаем список IP-адресов наилучшим образом Как-то я прочитал на Хабре статью про настройку BGP на роутере. Инструкции оттуда можно использовать для настройки домашнего роутера так, чтобы трафик на определённые IP-адреса шёл через другой канал. Однако здесь есть проблема: список IP-адресов может быть очень большим. ...

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

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

[Из песочницы] DDS Синтезатор на Verilog В этом посте я поделюсь тем, как разбирался с написанием DDS синтезатора на Verilog. Он будет использован для генерации синусоидального колебания, частоту и начальную фазу которого можно регулировать и рассчитан для использования с 8-битным однополярным ЦАП. О том, как рабо...

[Из песочницы] Операционные vs аналитические базы: колоночное vs построчное хранение данных Базы данных можно реализовать с помощью Excel, GSheet или при помощи больших ORM систем. В своей практике бизнес-аналитика я сталкивался с разными решениями. А поскольку в бизнес-анализ я пришёл из финансов и аудита, то каждый раз встречая новую систему задавался вопросами —...

Как установить родительский контроль на YouTube YouTube — очень интересная интернет-площадка с массой разнообразного контента на любой вкус. Однако встречается на платформе YouTube не мало роликов, которые не подходят для просмотра лицами, которым еще не исполнилось 18 лет. Многие родители задаются вопросом: «...

[Из песочницы] Создание REST API с Node.js и базой данных Oracle Привет, Хабр! представляю вашему вниманию перевод статьи «Creating a REST API: Web Server Basics». Часть 1. Создание REST API: основы веб-сервера Веб-сервер является одним из наиболее важных компонентов REST API. В этом посте вы начнете свой проект API REST, создав нескольк...

[Перевод] Преимущества и недостатки HugePages Перевод статьи подготовлен для студентов курса «Администратор Linux». Ранее я рассказал о том, как проверить и включить использование Hugepages в Linux. Эта статья будет полезна, только если у вас действительно есть, где использовать Hugepages. Я встречал множество людей, ...

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

[Перевод] Новости из мира OpenStreetMap № 484 (22.10.2019-28.10.2019) Данные из OSM + Blender + QGIS + … + творческий подход Долли Андриацифераны 1 | Dolly Andriatsiferana(@privatemajory) – Map data OpenStreetMap contributors Картографирование Жан-Луи Циммерман приводит еще один пример, наверное, самой распространенной в OSM проблемы — «ка...

Ученые разработали дешевый способ производства биотоплива из водорослей Текущие методы производства биотоплива в больших объемах экономически невыгодны. На производство тратится слишком много энергии. Поэтому эксперты в этой сфере давно ищут более эффективные и менее затратные способы производства. Специалисты из Университета Юты (США) считают,...

Около 850 операторов связи перешли на новый механизм получения выгрузки из Единого реестра запрещенной информации На сегодняшний день новый механизм внедрен и применяется на сетях около 850 крупных и магистральных операторов связи. Тестовая эксплуатация проходит на сетях еще около 20 операторов связи.Среди ключевых преимуществ нового механизма - возможность получения операторами связи в...

[Из песочницы] Принцип работы протокола VRRP FHRP (First Hop Redundancy Protocol) — семейство протоколов, предназначенных для создания избыточности шлюза по умолчанию. Общей идеей для данных протоколов является объединение нескольких маршрутизаторов в один виртуальный маршрутизатор с общим IP адресом. Этот IP адрес буд...

Флагманский смартфон Samsung Galaxy Note 10+ обучили 3D-сканированию Флагманские смартфоны Samsung Galaxy Note10 и Note10+ выходят в России Вчера начались официальные продажи флагманских планшетофонов Samsung Galaxy Note10 и Note10+, которые существенно превзошли по уровню предварительных заказов прошлогодний Samsung Galaxy Note9. В ...

Apple Watch получат встроенный механизм обновления в watchOS 6 Пожалуй, главным недостатком Apple Watch, который делал их недостаточно привлекательным устройством для покупки, была их несамостоятельность. Глубокая связка с iPhone, без которого смарт-часы не могли буквально ничего, во многом и стала причиной формирования их образа как и...

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

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

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

Про подсчёт битов, беззнаковые типы в Kotlin и про ситуации, когда экономия на спичках оправдана К написанию статьи подтолкнул вот этот комментарий. А точнее, одна фраза из него. … расходовать память или такты процессора на элементы в миллиардных объёмах — это нехорошо… Так сложилось, что в последнее время мне именно этим и пришлось заниматься. И, хотя, случай, которы...

Анализ данных на Scala — суровая необходимость или приятная возможность? Традиционными инструментами в сфере Data Science являются такие языки, как R и Python — расслабленный синтаксис и большое количество библиотек для машинного обучения и обработки данных позволяет достаточно быстро получить некоторые работающие решения. Однако бывают ситуации...

Компактная С++ библиотека для программирования конечно-разностных методов в операторном стиле. Часть 1. Семантика Представлена семантика разработанной библиотеки pde++ для программирования конечно-разностных методов в операторном стиле. Основными объектами библиотеки являются сеточная функция, сеточная ячейка и сеточные операторы, арифметические соотношения между которыми максимально пр...

Должны ли строки в Python быть итерируемы? И сотворил Гвидо строки по образу C, по образу массивов символов сотворил их. И увидел Гвидо, что это хорошо. Или нет? Представьте, что вы пишете совершенно идиоматичный код по обходу неких данных с вложенностью. Beautiful is better than ugly, simple is better than complex,...

[Перевод] Service mesh для микросервисов. Часть II, основы работы с Istio Перевод статьи подготовлен специально для студентов курса «Инфраструктурная платформа на основе Kubernetes». Настройка базового микросервиса в Kubernetes обманчиво проста. В одной из последних статей мы рассказали, как легко начать работать с контейнерами. Мы скомпоновали п...

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

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

Huawei P30 Pro превратили в продвинутый шпионский инструмент Технология пятидесятикратного зуммирования, используемая во флагманском Huawei P30 Pro, изменила наше представление о способности мобильных камер приближать объекты, попавшие в кадр. Несмотря на объективные недостатки такого метода увеличения, он может прийтись весьма кстат...

Камера Honor V30 позволяет оживлять 2D-объекты. Мона Лизу уже оживили Дебютирующие 26 ноября камерофоны Honor V30 и V30 Pro удивят не только своими камерами, но и «постпродакшеном». Функция, о которой идет речь — «2D в 3D», или применение дополненной реальности для превращения плоских объектов в объемные. В ...

«Фабричный метод» и «Абстрактная фабрика» во вселенной «Swift» и «iOS» Слово «фабрика» – безусловно одно из самых часто употребляемых программистами при обсуждении своих (или чужих) программ. Но смысл в него вкладываемый бывает очень разным: это может быть и класс, порождающий объекты (полиморфно или нет); и метод, создающий экземпляры какого-л...

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

Как собрать когорты пользователей в виде графиков в Grafana [+docker-образ с примером] Как мы решили задачу визуализации когорт пользователей в сервисе Promopult c помощью Grafana. Promopult — мощный сервис с большим числом пользователей. За 10 лет работы число регистраций в системе перевалило за миллион. Те, кто сталкивался с подобными сервисами, знают, что ...

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

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

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

Как узнать IMEI на iPhone? В этой статье объясняется, как найти уникальный номер IMEI вашего iPhone, поскольку Apple перестала печатать его на задней панели iPhone 6s и более поздних версий. Как мне найти номер IMEI моего iPhone? И что такое IMEI? Каждый iPhone имеет уникальный идентификационный код, ...

Фотоаппарат на дискетах: 8 интересных фактов о Sony Mavica MVC-FD85 (много картинок) Меня раньше всегда забавляло, что в старой фантастике люди далёкого будущего продолжают пользоваться старыми носителями информации. Космические корабли бороздят просторы далёких галактик, но на Земле и в космосе всё ещё используют дискеты или магнитные ленты. А теперь пре...

[Перевод] Гайд: обновление интерфейсов с помощью дефолтных членов в C# 8.0 Начав работу с C# 8.0 на .NET Core 3.0, при создании члена интерфейса вы можете определить его реализацию. Наиболее распространенным сценарием является безопасное добавление членов к интерфейсу, уже выпущенному и используемому бесчисленным количеством клиентов. В этом гайде...

Неопределённое поведение с устаревшими объявлениями функций в ANSI C Стандарт ANSI C определяет понятие прототипа функции, представляющее собой подмножество объявления функции, которое указывает типы входных параметров. Прототипы были введены с целью устранить недостатки, которыми обладают обычные объявления функций. Таким образом, указание ...

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

Зачем писать свой React Data Grid в 2019 Привет, Хабр! Я участвую в разработке ECM системы. И в небольшом цикле статей хочу поделится нашим опытом и историей разработки своего React Data Grid (далее просто грид), а именно: почему мы отказались от готовых компонент с какими проблемами и задачами мы столкнули при ра...

[Перевод] Тренинг Cisco 200-125 CCNA v3.0. День 20. Статическая маршрутизация Сегодня мы поговорим о статической маршрутизации и рассмотрим три темы: что такое статическая маршрутизация, как она настраивается и какая у неё альтернатива. Вы видите топологию сети, которая включает в себя компьютер с IP-адресом 192.168.1.10, подсоединенный через свитч к ...

Data Mesh: как работать с данными без монолита Привет, Хабр! Мы в Dodo Pizza Engineering очень любим данные (а кто их сейчас не любит?). Сейчас будет история о том, как накопить все данные мира Dodo Pizza и дать любому сотруднику компании удобный доступ к этому массиву данных. Задача под звёздочкой: сохранить нервы коман...

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

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

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

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

[Из песочницы] Создание минимального Docker-контейнера для Go-приложений Привет, Хабр! Предлагаю вашему вниманию перевод статьи основателя сервиса Meetspaceapp Nick Gauthier «Building Minimal Docker Containers for Go Applications». Время чтения: 6 минут Существует множество, как официальных, так и поддерживаемых сообществом контейнеров для разл...

[Из песочницы] Тестирование пользовательского функционала вебсайта с помощью Capybara page objects Page Objects могут быть использованы как мощный метод абстракции (изоляции) ваших тестов от технической реализации. Важно помнить, их (Page Objects) можно использовать для увеличения стабильности тестов и поддержания принципа DRY (do not repeat yourself) — посредством инкапс...

[Из песочницы] Преобразование черно-белых изображений в ASCII-графику при помощи неотрицательного матричного разложения В общем случае преобразование изображения в ASCII-графику представляет собой довольно трудоемкую задачу, однако существуют алгоритмы, позволяющие автоматизировать данный процесс. В данной статье рассматривается подход, предложенный исследователями Paul D. O’Grady и Scott T....

Как упростить исследование БД Oracle: «джентльменский набор» скриптов Добрый день! Мы команда системных аналитиков одного из подразделений управления данными «Ростелекома». В нашей компании насчитывается более 300 неоднородных источников данных — такое многообразие необходимо для поддержки работы Ростелекома по всем многочисленным направлениям...

[Перевод] Как сделать контейнеры еще более изолированными: обзор контейнерных sandbox-технологий Несмотря на то, что большая часть ИТ-индустрии внедряет инфраструктурные решения на базе контейнеров и облачных решений, необходимо понимать и ограничения этих технологий. Традиционно Docker, Linux Containers (LXC) и Rocket (rkt) не являются по-настоящему изолированными, пос...

[recovery mode] Стратегия информационной безопасности: а вы решили, как двигаться вперед? Здравствуйте! Меня зовут Антон Удовиченко, я являюсь начальником отдела аудита «Инфосекьюрити». На основе своего опыта я подготовил инструкцию как разработать стратегию ИБ в компании. Читать дальше →

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

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

Empire ERP. Занимательная бухгалтерия: главная книга, счета, баланс В данной статье мы осуществим попытку проникновения в самое сердце "кровавого энтерпрайза" — в бухгалтерию. Вначале мы проведем исследование главной книги, счетов и баланса, выявим присущие им свойства и алгоритмы. Используем Python и технологию Test Driven Development. Здес...

[Перевод] 8 лучших трендов International Conference on Learning Representations (ICLR) 2019 Тема анализа данных и Data Science в наши дни развивается с поразительной скоростью. Для того, чтобы понимать актуальность своих методов и подходов, необходимо быть в курсе работ коллег, и именно на конференциях удается получить информацию о трендах современности. К сожалени...

Игровая система Супероматик (Superomatik) – лучший софт для азартного клуба Чтобы запустить в работу свой прибыльный бизнес достаточно зайти на http://superomaticcasino.ru и скачать специальную систему Супероматик. Ее достоинства уже оценило более чем 700 партнеров по всей территории СНГ, благодаря мультиязычности и мультивалютности, это легко удало...

Мобильная разработка hh.ru и где она обитает В далеком 2000 году, когда hh.ru был совсем маленьким и ласково назывался “National Job Club”, а доступ к интернету получили всего 3% россиян, у нас, разумеется, не было никакой мобильной разработки. Тогда и смартфоны, в нынешнем их виде, были лишь далекой мечтой. Шли годы, ...

Атаки и безопасность современных Windows систем В данной статье будут представлены видеозаписи методов атак и защиты современных Windows систем: различные вектора и способы перехвата учетных записей, атаки контроллера домена, использование IPv6 и многое другое. Читать дальше →

[Перевод] Внутренности JVM, Часть 1 — Загрузчик классов Перевод статьи подготовлен специально для студентов курса «Разработчик Java». В этой серии статей я расскажу о том, как работает Java Virtual Machine. Сегодня мы рассмотрим механизм загрузки классов в JVM. Читать дальше →

Баг в macOS Mojave может привести к компрометации системы Уязвимость в актуальной версии ОС для компьютеров Apple позволяет злоумышленнику с минимальными правами обойти защитные механизмы и выполнить вредоносный код. К такому выводу пришел ИБ-специалист Патрик Уордл (Patrick Wardle), рассказавший о баге на конференции Objective By ...

[Перевод] Самодельный сборщик мусора для OpenJDK Это перевод статьи Алексея Шипилёва «Do It Yourself (OpenJDK) Garbage Collector», публикуется с согласия автора. О любых опечатках и других багах сообщайте в личку — мы их поправим.Процесс создания чего-нибудь в рантайме языка — весёлое упражнение. По крайней мере, создание ...

Обзор Acer ASPIRE 3 (A315-41G). Лучший ноутбук для учебы и работы? Сегодня героем нашего обзора будет ноутбук Acer ASPIRE 3, использующий связку из двухъядерного процессора AMD Ryzen 3 2200U и дискретной видеокарты AMD Radeon R535 с 2 Гбайт графической памяти. На борту 6 Гбайт оперативной памяти и жесткий диск объемом 1000 Гбайт. Все это уп...

MVCC-3. Версии строк Итак, мы рассмотрели вопросы, связанные с изоляцией, и сделали отступление об организации данных на низком уровне. И наконец добрались до самого интересного — до версий строк. Заголовок Как мы уже говорили, каждая строка может одновременно присутствовать в базе данных в не...

Улучшение производительности Zabbix + PostgreSQL при помощи партиционирования и индексирования Примерно год назад передо мной и моими коллегами была поставлена задача разобраться с использованием популярной системы мониторинга сетевой инфраструктуры — Zabbix. После изучения документации мы сразу же перешли к нагрузочному тестированию: хотели оценить с каким количество...

RAMBleed: извлечь RSA-ключ за 34 часа Представлена новая атака RAMBleed, основанная на методе Rowhammer. Теперь под ударом не только целостность, но и конфиденциальность пользовательских данных. Исследователи продемонстрировали атаку на OpenSSH, в ходе которой им удалось извлечь 2048-битный RSA-ключ. Как они...

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

Ускорение программы для синтезированного процессора комплекса Redd без оптимизации: замена тактового генератора До сих пор мы рассматривали тему, как повысить быстродействие системы, применяя какие-то интенсивные методы. Но на самом деле, есть методы и экстенсивные. Сейчас мы работаем на тактовой частоте 50 МГц, что связано с использованием компонента из набора для университетской про...

Опасность 3D-напечатанных имплантатов для организма Поскольку аддитивное производство и биопечать открывают новые пути для инноваций в медицинской сфере и во многих других отраслях, неизбежно возникают вопросы о недостатках 3D-печати. Какие опасности ждут пациентов, получающих 3D-напечатанные имплантаты? Исследователи Nihal E...

[Перевод] Реализация шаблона проектирования Command в Unity Вы задавались когда-нибудь вопросом, как в играх наподобие Super Meat Boy реализована функция реплея? Один из способов её реализации — выполнять ввод точно так же, как это делал игрок, что, в свою очередь, означает, что ввод нужно как-то хранить. Для этого и многого другого...

Разработка Unix подобной OS — Драйверы символьных устройств (8) В предыдущей статье мы ввели многозадачность. Сегодня пришло время рассмотреть тему драйверов символьных устройств. Конкретно сегодня мы напишем драйвер терминала, механизм отложенной обработки прерываний, рассмотрим тему обработчиков верхних и нижних половин прерываний. ...

Распознавание лиц в «Google Фото» для Android заработало в России Сфера применения технологии распознавания лиц оказалась гораздо шире, чем предполагалось первоначально. Ей нашлось место в наших смартфонах, где она используется для их разблокировки, в правоохранительных органах, которые используют ее для поиска преступников, разгуливающих...

Горизонтальное масштабирование и отказоустойчивость Redis для сервисных служб DirectumRX Redis – это система управления базами данных класса NoSQL (не реляционные СУБД), размещаемых целиком в оперативной памяти. Для доступа к данным используется модель «ключ» — «значение». Такая СУБД используется зачастую для хранения кэшей в масштабируемых сервисах, для хранени...

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

[Перевод] 8 способов хранения данных, которые представляли себе фантасты Мы можем напомнить вам эти фантастические способы, но сегодня мы предпочитаем использовать более привычные методы Хранение данных, наверное, является одной из наименее интересных частей вычислительной техники, но при этом совершенно необходимой. Ведь те, кто не помнит прош...

Первый канал привлек Group-IB для проверки результатов голосования шоу «Голос.Дети» Эксперты Group-IB проведут независимое расследование, в ходе которого будет оценена информационная безопасность системы подсчета голосов, а также проведен технико-криминалистический анализ звонков и СМС на предмет возможной накрутки голосов, использования ботов и других техн...

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

Julia и метод покоординатного спуска Метод покоординатного спуска является одним из простейших методов многомерной оптимизации и неплохо справляется с поиском локального минимума функций с относительно гладким рельефом, поэтому знакомство с методами оптимизации лучше начинать именно с него. Поиск экстремума ве...

Как добавить индекс на нагруженной системе 24/7 без простоя? Друзья, в конце января у нас стартует новый курс под названием «MS SQL Server разработчик». В преддверии его запуска мы попросили преподавателя курса, Кристину Кучерову, подготовить авторскую статью. Эта статья будет вам полезна, если у вас есть очень популярная таблица на ...

Установка и настройка Nexus Sonatype используя подход infrastructure as code Sonatype Nexus – интегрированная платформа, с помощью которой разработчики могут проксировать, хранить и управлять зависимостями Java (Maven), образами Docker, Python, Ruby, NPM, Bower, RPM-пакетами, gitlfs, Apt, Go, Nuget, а также распространять свое программное обеспечение...

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

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

[Из песочницы] KVM (недо)VDI с одноразовыми виртуальными машинами с помощью bash Кому предназначена данная статья Данная статья может быть интересна системным администраторам, перед которыми вставала задача создать сервис «одноразовых» рабочих мест. Пролог В отдел ИТ сопровождения молодой динамично развивающейся компании с небольшой региональной сетью,...

[Из песочницы] Основные заблуждения о SCRUM SCRUM? Какой SCRUM? Впервые подход SCRUM (англ. scrum «схватка вокруг мяча») описали Хиротака Такэути и Икудзиро Нонака, которые заметили, что небольшие команды (5 — 9 человек), укомплектованные разнопрофильными специалистами, дают лучшие результаты. Наиболее полное описание...

Краш-тесты СХД AERODISK ENGINE N2, проверка на прочность Всем привет! Этой статьей компания AERODISK открывает блог на Хабре. Ура, товарищи! В предыдущих статьях на Хабре были рассмотрены вопросы об архитектуре и базовой настройке СХД. В этой статье мы рассмотрим вопрос, который ранее не был освещен, но его часто задавали – об от...

VueJs + VueRouter + modal. Очередной велосипед Добрый день. В этой статье я разберу способ, который позволяет при смене адреса показывать модальное окно для наших нужд. Я знаю, что есть собственное решение для компонента «modal» на официальном сайте. Вдобавок к этому на Хабре есть много других статей, посвященных теме мо...

Российские ученые раскрыли состав нового эффективного средства против рака Ученые из “Курчатовского института” предложили использовать электрохимический метод для выделения радиоизотопа лютеций-177 из облученного в нейтронном реакторе иттербия-176. Данный метод позволяет получать до нескольких кюри “очищенного” радионуклида, которым в свою оче...

Компания Cellebrite создала устройство для взлома любого iPhone Год назад мы рассказывали о таком программно-аппаратном комплексе как GrayKey. Данное устройство позволяло взломать любой iPhone с помощью быстрого подбора паролей. На это могло уйти несколько дней, но результат всегда был. В iOS 11.4.1 Apple ввела новые механизмы защиты, с...

Промышленные неуправляемые коммутаторы Advantech серии EKI-2000 При построении сетей Ethernet используются различные классы коммутирующего оборудования. Отдельно стоит выделить неуправляемые коммутаторы – простые устройства, позволяющие быстро и эффективно организовать работу небольшой Ethernet-сети. В данной статье приводится подробны...

[Из песочницы] Криптографический алгоритм «Кузнечик»: просто о сложном В данной статье будет подробно рассмотрен алгоритм блочного шифрования, определенный в ГОСТ Р 34.12-2015 как «Кузнечик». На чем он основывается, какова математика блочных криптоалгоритмов, а так же как реализуется данный алгоритм в java. Кто, как, когда и зачем разработал д...

Microsoft обнаружила криптовалютный майнер, атаковавший почти 80 000 компьютеров Инженеры по безопасности Microsoft рассказали о новой разновидности криптовалютного майнера Dexphot, который с октября 2018 года заразил почти 80 000 компьютеров под управлением Windows. Своего пика вредонос достиг в июне 2019 года. Специалисты Microsoft подчеркнули довольно...

Применение MATLAB/Simulink с аппаратурой производства АО «ИнСис» Важной практической задачей является использование Matlab/Simulink с реальной аппаратурой которая позволит принять сигнал из реального мира. Это очень полезно для отладки алгоритмов. В данной работе представлена технология подключения к Simulink устройств АЦП производства АО...

Ticket to Ride.Европа — арифметика, часть вторая Всё ещё продолжаю изучать основы математики и механики в игре. Данная статья является второй в серии (Ссылка на первую часть), в ней продолжается анализ перегонов, попытка их сортировки по потребности, изучение различных способов строительства маршрутов. Если проводить анало...

Список полезных книг по анализу данных, математике, data science и machine learning Хабр, привет! Написал пост, который идет строго в закладки, он со списком полезнейших книг по анализу данных, математике, data science и machine learning. Они будут полезны как новичкам, так и профессионалам. Для удобства можете читать здесь или использовать удобный google ...

Mozilla запретил сторонним программам ставить расширения в Firefox Mozilla опубликовала официальное сообщение, в котором компания рассказала о принятом ей решении - отказаться от Sideloading. Данный метод позволял устанавливать расширения в Firefox путем добавления файла расширения в специальную папку.

Место посадки зонда «Чанъэ-4» официально стало второй в истории лунной базой На днях в Пекине на совместной пресс-конференции Международного астрономического союза IAU и Китайского центра изучения Луны при национальном агентстве China National Space Administration (CNSA) было объявлено, что место прилуненния зонда «Чанъэ-4» с определённой прилегающей...

Не работает поиск на Mac: как перестроить индекс Spotlight на macOS Spotlight на macOS является системным приложением для поиска других программ, документов, контактов, закладок, электронных писем, элементов сторонних приложений и многого другого из одного центрального места на вашем Mac. Для оптимальной своей работы Spotlight использует инд...

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

Работа с API КОМПАС-3D → Урок 15 → Составные строки на основе параграфа В уроке 12 мы познакомились с составными строками и рассмотрели недокументированный способ их создания. В уроке 13 были представлены параграфы. Сегодня мы рассмотрим, как их использовать для создания составных строк. Для начала возьмем строки, включающие в свой состав отклон...

Как ускорить работу с API на языке R с помощью параллельных вычислений, на примере API Яндекс.Директ (Часть 2) В прошлой статье я рассказал о том, что такое многопоточность, и привёл примеры её реализации на языке R при работе с API Яндекс.Директ с помощью пакетов doSNOW, doParallel и конструкции foreach. Данная статья является продолжением, но может быть рассмотрена как автономное р...

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

[Перевод] Использование Immer для управления состоянием React-приложений Состояние используется для организации наблюдения за данными React-приложений. Состояния меняются по мере того, как пользователи взаимодействуют с приложениями. Когда пользователь выполняет некое действие — нам нужно обновить состояние, представляющее собой набор данных, на ...

Mattermost. Интеграция с внешними сервисами Выбирая замену, используемой у нас системы обмена сообщениями, наткнулся на описание Mattermost, и решил попробовать. Одним из плюсов, описываемой системы, является простая интеграция со сторонними сервисами, так называемые "хуки" (outgoing и incoming hooks). Вот про настрой...

Алгоритм взаимодействия сотен тысяч уникальных частиц на GPU, в GLES3 и WebGL2 Описание алгоритма логики, и разбор рабочего примера в виде техно-демки-игры WebGL2 версия этой демки https://danilw.itch.io/flat-maze-web остальные ссылки смотрите в статье. Статья разбита на две части, сначала про логику, и вторая часть про применение в игре, первая часть...

iOS Responder Chain или Что спрашивают на интервью Какая разница между первым и вторым примером? За что отвечает таргет? В каком случае вызывается метод при нажатие кнопки? TL;DR При нажатии на кнопку наш метод вызывается в обоих случаях. Только в первом примере UIKit попытается вызвать метод в назначенном таргете(у нас э...

Вейвлет — анализ.Часть 1 Введение Рассмотрим дискретное вейвлет – преобразования (DWT), реализованное в библиотеке PyWavelets PyWavelets 1.0.3. PyWavelets — это бесплатное программное обеспечение с открытым исходным кодом, выпущенное по лицензии MIT. При обработке данных на компьютере может выполня...

LQR оптимизация систем управления Введение На Habr были опубликованы несколько статей [1,2,3], прямо или косвенно касающиеся указанной темы. В связи с этим, нельзя не отметить публикацию [1] с названием “Математика на пальцах: линейно-квадратичный регулятор”, которая популярно поясняет принцип работы оптимал...

Приводит к образованию артефактов: AMD критически высказалась относительно технологии Nvidia DLSS В прошлом месяце после анонса видеокарты Radeon VII глава Nvidia Дженсен Хуанг (Jensen Huang) весьма резко высказался относительно данного адаптера. Теперь пришёл черёд выпада AMD. Правда, компания решила подвергнуть критике не видеокарты конкурента, а технологию DLSS. ...

[Перевод] Лучшие дистрибутивы Linux для старых компьютеров Привет! Вкратце: пока не бросайте свой старый компьютер — используйте легкий дистрибутив Linux, чтобы возродить его! Что вы делаете со своим старым компьютером? Тот, который когда-то имел хорошую аппаратную конфигурацию, но теперь считается устаревшим. Почему бы не восстан...

Метод дублирования. 11 примеров из конструкции ДВС Дублирование (от французского doubler удваивать) в системе это вид резервирования, имеющего минимальную избыточность. Статья эволюция развития автомобильных двигателей с начала 90-х годов вызвала интерес, и сильное обсуждение преобразований в двигателестроении. Эта стать...

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

[recovery mode] Бинарные деревья поиска Прелюдия Эта статья посвящена бинарным деревьям поиска. Недавно делал статью про сжатие данных методом Хаффмана. Там я не очень обращал внимание на бинарные деревья, ибо методы поиска, вставки, удаления не были актуальны. Теперь решил написать статью именно про деревья. Пожа...

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

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

Pixel 4 получит Face ID и управление воздушными жестами Что-то действительно странное происходит прямо у нас на газах. Компания Google почему-то решила начать раскрывать основные фишки своего предстоящего флагмана за несколько месяцев до официального анонса. Так, в июне Google удивила нас тем, что запостила рендер с дизайном Pix...

[Перевод] Используем все возможности индексов в PostgreSQL В мире Postgres индексы крайне важны для эффективной навигации по хранилищу базы данных (его называют «куча», heap). Postgres не поддерживает для него кластеризацию, и архитектура MVCC приводит к тому, что у вас накапливается много версий одного и того же кортежа. Поэтому о...

Обзор HyperX FURY Black RGB DDR4-3200 2x8GB (HX432C16FB3AK2/16). Память для AMD и Intel Не так давно был анонсирован выход серии оперативной памяти HyperX FURY Black RGB с частотами 2400/2666/2933/3000/3200/3466 MHz. Для неё заявлена поддержка последних поколений процессоров AMD и Ryzen. Поддерживается режим автоматического увеличения тактовой частоты в играх, ...

Security Week 40: уязвимость в BootROM мобильных устройств Apple В зависимости от ваших предпочтений к этой новости можно подобрать один из двух заголовков. Либо «серьезная уязвимость обнаружена в мобильных устройствах Apple вплоть до iPhone X», либо «наконец-то придумали новый способ для джейлбрейка iДевайсов (но это не точно)». Насчет д...

Анализ подходов к связыванию модулей в Node.js Многие разработчики Node.js для связывания модулей используют исключительно создание жёсткой зависимости с помощью require(), однако существуют и другие подходы, со своими плюсами и минусами. О них я в этой статье и расскажу. Будут рассмотрены четыре подхода: Жёсткие завис...

Оптимизация производительности .NET (C#) приложений Статей с подобным заголовком достаточно много, поэтому постараюсь избежать банальных тем. Надеюсь, что даже очень опытные разработчики найдут здесь что-то новое для себя. В данной статье будут рассмотрены только простые механизмы и подходы к оптимизации, которые позволят п...

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

Тест-драйв nanoCAD СПДС Стройплощадка 8. Часть 2 Тест-драйв nanoCAD СПДС Стройплощадка 8 Мы продолжаем публикацию тест-драйва по nanoCAD СПДС Стройплощадка. В первой части тест-драйва мы разобрали работу со специальным инструментом Менеджер проектов, его основные функции и способы построения элементов стройгенплана. Во вто...

Тест-драйв nanoCAD СПДС Стройплощадка 8. Часть 1 Тест-драйв nanoCAD СПДС Стройплощадка 8 Мы начинаем публикацию тест-драйва по nanoCAD СПДС Стройплощадка. В первой части тест-драйва мы разберем работу со специальным инструментом Менеджер проектов, его основные функции и способы построения элементов стройгенплана. Во второ...

[Перевод] Интеграция проверок пароля в KeePass по базе данных утечек Данная статья по шагам описывает процесс интеграции проверок пароля на безопасность в менеджере паролей KeePass. Проверки используют последнюю базу данных Have I Been Pwned, где хранятся утекшие пароли, и всё это работает локально, поэтому вам не надо беспокоиться о возможно...

W3C и FIDO Alliance завершили разработку веб-стандарта для безопасного входа без пароля Консорциум World Wide Web (W3C) и FIDO Alliance объявили, что спецификация Web Authentication (WebAuthn) теперь является официальным веб-стандартом. Как сказано в совместном пресс-релизе, «это улучшение является важным шагом вперед в деле повышения безопасности и ...

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

[Из песочницы] Использование локальной директории с пакетами в Python уже сейчас В Python 3.8 предлагается добавить альтернативу виртуальным окружениям — локальную директорию с пакетами PEP 582 Python local packages directory. Данный PEP предлагает добавить в Python механизм автоматического обнаружения директории __pypackages__ и использовать её при имп...

Ноутбук MSI P65 Creator 9SF: модель для профессионального применения с очень мощными комплектующими Когда мы видим ноутбук с видеокартой Nvidia GeForce RTX 2070, не требуется особой смекалки, чтобы сообразить, что это игровое решение. Когда мы узнаём, что это ноутбук MSI, наши догадки обретают почти твердокаменную уверенность, ибо именно игровые ноутбуки — конек и основа а...

Оптимизация конструкции методами теории автоматического управления В предыдущей статье "Скрещивание ужа и ежа.." мы проверяли применимость методов настройки систем автоматического управления к «реальным» моделям. В это статье попробуем оптимизировать не систему управления, а сам «физический» объект. Для настройки регуляторов существует бол...

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

Создана новая технология массового секвенирования белков Большинство из вас наверняка слышало о секвенировании ДНК и РНК. А они, как известно, состоят из аминокислот. При этом, что удивительно, для определения аминокислотной последовательности белков подобных методов пока что не существует. Точнее, не существовало. Ведь недавно г...

Обзор GoodRAM IRDM X DDR4-3200 (IR-X3200D464L16S/16GDC). Оперативная память Годом ранее мы проводили тестирование планок оперативной памяти GoodRAM IRDM X DDR4-3000. Тогда по результатам тестов нам удалось получить хорошие показатели по уровню быстродействия и возможностям дальнейшего повышения тактовых частот. Сегодня мы детально рассмотрим GoodRAM...

[Перевод] Обмен данными между React-компонентами с использованием библиотеки RxJS Перед вами перевод статьи Chidume Nnamdi, опубликованной на blog.bitsrc.io. Перевод публикуется с разрешения автора. Появление библиотеки RxJS открыло массу новых возможностей в мире JS. Цель RxJS — достигать многого, используя небольшое количество кода. Прочитав эту стат...

Как легко отредактировать STL модель в Autodesk Inventor, плагин Autodesk Mesh Enabler Всем привет.Многие сталкиваются с проблемой  редактирования полигональных STL моделей  в Autodesk Inventor.Проблема в том, что   в Инвенторе невозможно изменить  полигональную 3д модель, так как система векторная.Но благодаря  выходу  плагина Au...

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

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