Search
Write a publication
Pull to refresh
4
0.8
Дмитрий Померанцев @pda0

User

Send message

Как различные страны законодательно защищают несовершеннолетних в интернете

Reading time5 min
Views3.2K

Власти Китая запретили детям и подросткам часто заниматься видеоиграми. Эта инициатива отлично иллюстрирует глобальный тренд – ужесточение законодательных норм, защищающих несовершеннолетних от вредного и опасного онлайн-контента. Эксперты Научно-технического центра Главного радиочастотного центра (НТЦ ГРЧЦ) сравнили опыт правового регулирования в этой сфере ведущих стран мира.

Читать далее

Более удобная разработка 64-битного графического UEFI приложения

Reading time6 min
Views8K

В предыдущей статье «Разработка 64-битного графического UEFI-приложения в Visual Studio 2019» VS задействовался лишь в двух аспектах: как редактор для кода — «продвинутый Блокнот» — и как отладчик для скомпилированного приложения. Всё остальное — управление зависимостями, настройки компиляции и т.д. — было отдано на откуп фреймворку edk2. Хотелось бы использовать мощь VS как IDE более полно: как минимум заиметь в редакторе кода автодополнение.

Бонусом получим более быструю компиляцию проекта: edk2 ищет изменившиеся файлы во всём своём полугигабайтном дереве, что, очевидно, излишне.
Читать дальше →

Вычисляем на видеокартах. Технология OpenCL. Часть 0. Краткая история GPGPU

Reading time7 min
Views19K
22 июня автор курса «Разработчик C++» в Яндекс.Практикуме Георгий Осипов провёл вебинар «Вычисляем на видеокартах. Технология OpenCL».

Мы подготовили для вас его текстовую версию, для удобства разбив её на смысловые блоки.

  • 0 (вводная часть). Зачем мы здесь собрались. Краткая история GPGPU.
  • 1. Пишем для OpenCL.
  • 2. Алгоритмы в условиях массового параллелизма.
  • 3. Сравнение технологий.

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

Цикл будет полезен и тем, кто уже знаком с OpenCL: в нём мы поделимся некоторыми хаками и неочевидными наблюдениями из собственного опыта.

CPU — в помойку?


В статье будем рассматривать технологию GPGPU. Разберёмся, что значат все эти буквы. Начнем с последних трёх — GPU. Все знают аббревиатуру CPU — Central Processor Unit, или центральный процессор. А GPU — Graphic Processor Unit. Это графический процессор. Он предназначен для решения графических задач.

Но перед GPU есть ещё буквы GP. Они расшифровываются как General-Purpose. В аббревиатуре опускают словосочетание Computing on. Если собрать всё вместе, получится General-Purpose Computing on Graphic Processor Unit, что по-русски — вычисления общего назначения на графическом процессоре.



То есть процессор графический, но мы почему-то хотим вычислять на нём что-то, что вообще к графике никакого отношения не имеет. Например, прогноз погоды, майнинг биткоинов. Моя задача в ближайшее время — объяснить, зачем нужно на процессоре для графики обучать, например, нейросети.
Читать дальше →

Как за неделю до релиза переобуться и сократить размер билда в 3 раза

Reading time8 min
Views6.5K

Современные AAA-тайтлы уже давно стали весить больше 100 ГБ, а их апдейт еще на 20 ГБ считается обычным делом. Тот же тренд разрастания билда постепенно просачивается в мидкорные и хардкорные мобильные игры. Впрочем, к тому, что уже не удивляет ПК- и консольных юзеров, мобильные геймеры все еще довольно чувствительны.

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

Читать далее

Загадка волшебного SSD: почему системный накопитель PlayStation 5 настолько быстр?

Reading time8 min
Views44K

29 июля участники программы бета-тестирования PlayStation 5 получили возможность загрузить предварительную версию прошивки, разблокирующую встроенный M.2-слот для дополнительного SSD. А это значит, что совсем скоро каждый владелец консоли сможет поставить в нее высокоскоростной WD_BLACK SN850 и навсегда забыть о нехватке дискового пространства для любимых игр. Во всяком случае, именно эту линейку NVMe-накопителей рекомендует технический директор PlayStation Марк Церни, а он плохого не посоветует.

Но возникает логичный вопрос: не будут ли игры, установленные на дополнительный SSD, дольше загружаться и фризить? Ведь, если верить прессе, производительность системного накопителя PlayStation 5 достигает 9 ГБ/с, а это больше, чем у любого другого устройства из представленных на рынке, включая и SN850. И как вообще Sony удалось добиться столь фантастической производительности?

Попробуем разобраться

Как мы оптимизировали сетевой шейпер Linux в облаке с помощью eBPF

Reading time18 min
Views17K

Меня зовут Леонид Талалаев, я занимаюсь разработкой внутреннего облака Одноклассников one-cloud, про которое уже рассказывали на Хабре. 

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

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

Для управления сетевым трафиком до недавнего времени мы использовали решение на основе дисциплины Hierarchical Fair Service Queue из Linux Traffic Control. Сегодня пойдет речь про проблему масштабирования в Linux Traffic Control, известную как root qdisc locking. И про то, как нам удалось ее решить, переделав управление сетевым трафиком с использованием eBPF.

Читать далее

Разработка 64-битного графического UEFI-приложения в Visual Studio

Reading time9 min
Views18K
Зимой в блоге RUVDS было несколько статей о написании загрузчиков для «классического» BIOS, в т.ч. симпатичная графическая демка, целиком помещающаяся в загрузочном секторе и работающая в VGA-режиме 320×200. Комментаторы справедливо отмечали, что в наступившем 2021 г. нет смысла осваивать это лютое легаси;
а вот статей про “Hello, World” на UEFI да с графикой действительно не хватает. Больше того — я таких вообще не припомню.» (MinimumLaw)
Под катом мы пошагово перепишем ту бутсекторную демку под UEFI, и она будет работать в полноцветном видеорежиме с высоким разрешением. С другой стороны, вместо 512 байт она будет занимать несколько десятков КБ.

Zip – как не нужно создавать формат файлов

Reading time13 min
Views42K

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

Алгоритм коррекции геометрических искажений, вносимых объективом «рыбий глаз» в изображения и видео

Reading time4 min
Views9.5K

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

Алгоритм разработан при реализации одного из проектов компании Оксаджайл (Oxagile)

Читать далее

Задача о форме капли жидкости на потолке

Reading time4 min
Views5.4K
Разбирая старые архивы, я обнаружил несколько задачек, которые я когда-то ставил сам себе и пытался их решить. Про две из них я уже рассказал в статьях на Хабре — это задача о колебании свободно висящей цепочки и задача о форме поверхности вращающейся жидкости. Сегодня я хочу рассказать о еще одной задачке. Не знаю, задумывался ли кто-нибудь ранее о форме капли, которая висит на потолке в душе, но меня этот вопрос заинтересовал и я нашел ответ на него, который приведен под катом.

Читать дальше →

Анатомия широты. 2 часть

Reading time8 min
Views8.3K

Мы продолжаем изучать волшебство преобразования энергии в ШИМ преобразователе. Почему волшебство? Теоретически, как мы убедились в предыдущей части, линейный стабилизатор, изначально по природе своей, переводит часть полезной энергии в тепло, делая КПД линейного стабилизатора менее 100%, что в принципе ожидаемо для технических систем. А в ШИМ преобразователе, теоретически, это происходит без потерь, ну чем не волшебство? ШИМ преобразователь, словно портной ножницами, нарезает своими ключами ткань энергии на лоскутки, а потом как швейная машинка сшивает фильтром лоскутки энергии в стройное платье - постоянную составляющую (ПС). 

Что такое ПС и как её получить? Давайте изучим!

Фабрика пошива качественной энергии

Быстрая математика для графиков, на примере вычисления среднего

Reading time5 min
Views5.1K

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

Читать далее

Клонируем GPT-диск с 512B-сектором на диск с 4K-сектором в Linux. Подводные камни с EFI, NTFS и LVM

Reading time9 min
Views14K

Для современного компьютера диск с 4К сектором выглядит предпочтительнее, чем с олдскульным 512B. Так как почти все современные ФС имеют размер кластера по-умолчанию 4KiB или больше. Поэтому использование 512B сектора несколько снижает производительность, а также увеличивает коэффициент умножения записи (Write Amplication) у SSD, что уменьшает ресурс.

Более того, сложно найти современные диски более 4ТБ с сектором 512N. Если диск и рапортует сектор в 512 байт, то, как правило, это 512E — эмулируемый, который используется в основном для совместимости со старыми контроллерами. А в реальности на физическом уровне используется 4К или даже больше (больше в основном у SSD).

Поэтому при покупке нового диска я выбрал диск с сектором 4КiB. И передо мной встала задача клонирования старого диска с 512B сектором (GPT) на новый c сектором 4KiB. Я хотел сохранить установленные Linux, Windows 10, Windows 7 и тома LVM, чтобы не заниматься переустановками ОС. В процессе чего всплыло несколько подводных камней.
Поехали!

Золотая середина. Поиск медианного элемента потока входных чисел

Reading time5 min
Views12K


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

Почему современная наука основана на вере?

Reading time12 min
Views47K

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

Проблема неполной индукции

Знаменитый древнегреческий философ Аристотель в своем трактате «Аналитика» выделяет два вида возможных умозаключений - индуктивное и дедуктивное.

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

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

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

Читать далее

Маршрутизация IPv6 через WireGuard с поддержкой SLAAC

Reading time6 min
Views23K

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

Для дома решение довольно простое: при наличии статического IPv4, можно получить подсеть IPv6 от туннельного брокера и на этом вопрос можно считать закрытым.

А вот с мобильными устройствами так не получится: услуга статического IPv4 тут скорее редкость; да и при наличии бесплатного WiFi я выберу подключение к нему, а не к мобильной сети.

Остаётся единственный вариант — использовать VPN. Существующие на GitHub решения типа “wireguard-install” или “openvpn-install” имеют фатальный недостаток: они отдают клиенту единственный IPv6/128 адрес, а чтобы у клиентов появилась возможность автоконфигурации, нужна целая /64 подсеть.

Предлагается решение на основе WireGuard.

Это интересно, читать далее

Менеджер качества, или как не спалить лоу-энд девайсы ультра-графикой

Reading time12 min
Views4.4K
Всем привет, сегодня мы расскажем о том, как мы делим качества и какие инструменты для этого используем в проекте War Robots.

Релиз War Robots состоялся еще в 2014 году, и за 7 лет существования проекта графическая часть в нем постоянно развивалась. Но в то же время команда постоянно сталкивалась с ограничениями из-за минимальных требований к девайсам. Оперируя таким большим проектом, у которого немало устройств входит в low-end сегмент, нельзя просто взять и запилить крутой современный графен, не потеряв при этом часть аудитории.

image

Так у нас появилась задача: сделать всем красиво и хорошо. Поэтому мы решили делать War Robots Remastered — с блэк-джеком, обновлением графического пайплайна и разделением ассетов на разные качества.

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

На тот момент билд War Robots под Android со всеми ресурсам весил порядка 700 МБ и включал сотни единиц контента. У нас было 13 карт, 81 мех, более ста пушек, десяток дронов и еще куча всякой мелочи. Не то, чтобы все это было категорически необходимо в проекте, но если уж начал пилить контент, то иди в своем увлечении до конца.

И второе — нам нужно этими качествами как-то управлять и предоставлять пользователю то качество, которое будет оптимально для его девайса.
Читать дальше →

Перевод Курса по стартапам и бизнесу от Стэнфордского Университета. Лекция №4. Создание продукта, общение с клиентами…

Reading time2 min
Views3.1K

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

Итак, из Лекции №4 - Создание продукта, общение с клиентами и рост стартапа вы узнаете следующее:

00:10 – Как пройти путь от 0 до большого количества клиентов?

01:30 – Необходимое условие стартапа – иметь достаточно свободного времени.

01:45 – Сколько времени нужно уделять стартапу?

02:35 – Какой план у неопытных стартаперов?

03:35 – Какие вопросы нужно задать себе как основателю стартапа?

05:30 – С чего нужно начинать решение проблемы?

06:45 – С чего начал решение своей проблемы проект HOMEJOY?

08:20 – Способы для изучения рынка стартапа.

09:00 – Как и зачем нужно изучать конкурентов?

10:00 – Как идентифицировать потенциальных клиентов?

10:30 – Последнее, что нужно сделать перед созданием продукта или услуги?

11:45 – Что такое MVP и зачем он нужен?

12:40 – Как и зачем позиционировать свой продукт?

13:20 – Какую роль играет слоган для стартапа?

14:00 – Каким образом привлечь первых клиентов?

15:30 – Как искать возможность для продвижения своего продукта?

17:45 – Что делать после привлечения первых клиентов?

19:00 – Для чего нужны отзывы клиентов?

20:00 – Зачем нужно собирать статистические данные о клиентах?

21:20 – Что такое кривая честности?

23:55 – Что нужно сделать до официального запуска проекта?

25:15 – Как производить масштабирование стартапа?

26:30 – Временная недееспособность лучше, чем паралич стартапа.

27:00 – Что такое подход Франкенштейна?

Читать далее

Генеративное искусство: с чего начать

Reading time3 min
Views15K

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

Читать далее

Создаем установочные пакеты для macOS средствами системы

Reading time3 min
Views11K

Как-то так вышло, что раньше я довольно скептически относился к macOS, поскольку не имел возможности поработать с ней в более-менее устоявшейся корпоративной среде (т.е. не когда на всю компанию в 500-600 человек есть 2 мака, и те у генерального с его замом, да еще и с виндой в буткемпе). Но несколько лет назад мне повезло познакомиться с очень масштабной гетерогенной средой, показавшей, что в современных компаниях macOS не только успешно сосуществует с привычной Windows, но иногда и превалирует над ней в общей доле клиентских машин.

Читать далее

Information

Rating
2,756-th
Location
Химки, Москва и Московская обл., Россия
Date of birth
Registered
Activity