Пользователь
Самое главное в Wi-Fi 6. Нет, серьёзно
Если верить теории простоты Эйнштейна, главный показатель понимания предмета — это способность максимально просто его объяснить, то и в этом посте я постараюсь максимально просто и подробно объяснить действие всего одной детали нового стандарта, которую почему-то даже Wi-Fi Alliance считает недостойной упоминания в инфографике о новых возможностях Wi-Fi 6, хотя она, как мы скоро убедимся вместе, очень важна и примечательна. Здесь не всё достаточно глубоко и уж точно не всеобъемлюще (потому что такого слона сложно есть даже по частям), но я надеюсь, что мы все почерпнём из моих словесных экзерсисов что-то новое и интересное для себя.
Тот самый 802.11ax, который мы ждём со дня на день вот уже минимум второй год, несёт в себе массу нового и удивительного. Перед каждым, кто хочет о нём что-то рассказать, всегда стоит выбор: либо устроить обзорные скачки по головам, упоминая ведро аббревиатур и сокращений, стараясь не увязнуть в сложных механизмах под капотом каждого из них, либо завернуть часовой доклад про что-то одно, наиболее приятное автору. Я рискну пойти ещё дальше: бОльшая часть моей заметки будет посвящена даже не новому!
Как GPU-вычисления буквально спасли меня на работе. Пример на Python
Сегодня мы затрагиваем актуальнейшую тему — Python для работы с GPU. Автор рассматривает пример, тривиальный в своей монструозности, и демонстрирует решение, сопровождая его обширными листингами. Приятного чтения!
Как мы решаем проблему неинициализированной стековой памяти в Windows
Естественно, мы не опустили руки, а разработали и запустили платформу Huawei Mobile Services, которая заменила сервисы Google для наших устройств. Чтобы вы с ней познакомились и интегрировали в свои приложения, мы собрали 10 самых популярных вопросов, которые возникают у разработчиков, впервые столкнувшихся с HMS.
Вычисление центра масс за O(1) с помощью интегральных изображений
Интегральное изображение ― алгоритм, позволяющий эффективно вычислять сумму значений, заключенных в прямоугольном подмножестве многомерного массива. Сама его идея восходит к исследованиям многомерных функций распределения вероятностей, и до сих пор он находил успешное применение в тех областях, которые непосредственно используют теорию вероятностей в качестве основного инструментария. Например, в распознавании образов.
Сегодня мы рассмотрим любопытный случай, как применить интегральные изображения в кардинально другой сфере ― вычислительной физике. А именно ― посмотрим, что будет, если вычислить с их помощью центр масс поля импульсов, и какую выгоду можно извлечь из этого симбиоза.
В этой статье я расскажу:
- Что за задача такая, о которой идет речь;
- Подробнее об интегральных изображениях;
- Как использовать интегральные изображения для приближенного решения гравитационной задачи N тел применительно к дискретному полю импульсов (масс-скоростей);
- Какой недостаток имеет это решение и как его исправить;
- И, наконец, как за константное время вычислить центр масс для произвольного региона.
Сколько инструкций в x86?
Я решил, что мне это тоже интересно — да настолько, что не жалко потратить выходной день на сведение en.wikipedia.org/wiki/X86_instruction_listings в одну табличку:
Считались различные мнемоники; например, десятки вариантов MOV считались за одну инструкцию.
Таким образом, можно грубо считать, что количество мнемоник в x86 удваивается каждые 13 лет.
Юлия → Iuliia. Всё о транслитерации
Транслитерация — это запись кириллических слов латиницей (Анна → Anna, Самара → Samara). Её используют в загранпаспортах, водительских удостоверениях, трансграничной доставке, библиотечных каталогах и множестве других международных процессов.
Так вышло, что я недавно окунулся в эту тему, а в Википедии она раскрыта слабо. Поэтому расскажу, что к чему (спойлер — если вы думаете, что с транслитерацией всё плохо, то на самом деле всё ещё хуже).
И конечно, поскольку это Хабр — предложу open-source библиотеки для решения проблемы.
Советский графический планшет «эскиз»
Основы ZFS: система хранения и производительность
Этой весной мы уже обсудили некоторые вводные темы, например, как проверить скорость ваших дисков и что такое RAID. Во второй из них мы даже пообещали продолжить изучение производительности различных многодисковых топологий в ZFS. Это файловая система следующего поколения, которая сейчас внедряется повсюду: от Apple до Ubuntu.
Исследуем баг iOS с помощью Hopper
Всё началось в августе 2019 года с первых бета-версий iOS 13. Тогда мы впервые столкнулись с проблемой. В приложениях Badoo и Bumble мы постоянно работаем над улучшением интерфейсов и, например, стараемся максимально оптимизировать нудный и не любимый пользователями процесс регистрации. Системные предиктивные подсказки над клавиатурой — отличный способ сокращения количества кликов пользователя при вводе данных. Однако в новой версии iOS мы с удивлением обнаружили, что подсказки при вводе номера телефона пропали.
В подходе к математике столетней давности найдены новые ключи к разгадке природы времени
Из законов физики следует, что течение времени – всего лишь иллюзия. Чтобы избежать такого заключения, нам, возможно, придётся переосмыслить реальность чисел с бесконечной точностью.
Если числа нельзя записывать бесконечными последовательностями цифр, то и будущее не предопределено
Странно, что, хотя нам кажется, будто мы проносимся сквозь время, беспрерывно находясь на тонкой грани между фиксированным прошлым и открытым будущим, эта самая грань – настоящее – никак не проявляет себя в существующих законах физики.
К примеру, в теории относительности Эйнштейна время переплетено с тремя измерениями пространства, и формирует гибкий четырёхмерный пространственно-временной континуум – "блок-вселенную", охватывающую прошлое, настоящее и будущее. Уравнения Эйнштейна описывают всё в блок-вселенной, как предрешённое с самого начала; изначальные условия космоса определяют, что будет дальше, и никаких сюрпризов не происходит – они только кажутся сюрпризами. «Для нас, верящих в физику, — писал Эйнштейн в 1955, за несколько недель до смерти, — различие между прошлым, настоящим и будущим является лишь упорной и настойчивой иллюзией».
C2x: будущий стандарт C
Я ловлю в далёком отголоске,
Что случится на моём веку.
(«Гамлет», Борис Пастернак)
Признаться, пишу на чистом C я не так уж и часто и за развитием языка уже давно не слежу. Но тут произошло два неожиданных события: С вернул себе звание популярнейшего языка программирования по версии TIOBE и случился анонс первой за долгие годы действительно интересной книги, посвящённой этому языку. Поэтому я провёл несколько вечеров за изучением материалов о C2x — следующей версии C.
Самыми, на мой взгляд, интересными нововведениями я и хочу поделиться с читателями Хабра.
Apple TimeCapsule/AirPort Extreme. Root доступ и побег из привязанного региона
Если кто не знал или забыл, устройства выглядят так:
Умирает ли RuTracker? Анализируем раздачи
Любая деятельность генерирует данные. Чем бы вы ни занимались, у вас наверняка на руках кладезь необработаной полезной информации, ну или хотя бы доступ к его источнику.
Сегодня побеждает тот, кто принимает решения, основываясь на объективных данных. Навыки аналитика как никогда актуальны, а наличие под рукой необходимых для этого инструментов позволяет всегда быть на шаг впереди. Это и является подспорьем появления данной статьи.
У вас есть свой бизнес? Или может… хотя, не важно. Сам процесс добычи данных бесконечен и увлекателен. И даже просто хорошо покопавшись в интернете можно найти себе поле для деятельности.
Вот, что мы имеем сегодня – Неофициальная XML-база раздач сайта RuTracker.ORG. База обновляется раз в полгода и содержит в себе информацию о всех раздачах за историю существования данного торрент-трекера.
Что она может рассказать владельцам рутрекера? А непосредственным пособникам пиратства в интернете? Или обычному юзеру, увлекающемуся аниме, например?
2 в 1: шифрование с имитозащитой
С начала XXI века начались попытки создать механизмы шифрования с имитозащитой (иногда можно встретить термин «аутентифицированное шифрование» — от английского Authenticated Encryption), которые бы решали сразу обе указанные задачи.
Работа с SD-картой по интерфейсу SPI. Реализация на VHDL
Linux в одном файле для Macbook
TL;DR Можно уместить полноценный Linux Live дистрибутив в один файл, если вкомпилировать в ядро initramfs с корневой файловой системой. Компьютеры с UEFI умеют загружать такой файл напрямую, без помощи загрузчика типа GRUB. У меня получилось уместить дистрибутив с программами aircrack-ng, reaver и драйверами для карт Wi-Fi в файл размером 12 мегабайт (наверняка можно еще меньше).
Основные преимущества
- Работает на любых компьютерах с UEFI — один и тот же файл будет работать на PC и Mac.
- Не требует установки — достаточно скопировать один файл на EFI-раздел диска и указать в переменных NVRAM путь к этому файлу.
- Не нужно устанавливать загрузчики GRUB, rEFInd — ядро Linux собранное с поддержкой EFI Stub можно грузить напрямую без промежуточного загрузчика.
- Не нужны USB-флешки — скопированный на раздел EFI дистрибутив остается там навсегда, и его можно будет загрузить в любой момент. Он не занимает места на разделе основной системы, так как раздел EFI не используется в ОС.
- Не изменяет процесс загрузки — систему можно загрузить один раз, без изменения порядка загрузки в настройках UEFI. Следующая перезагрузка компьютера загрузит обычную операционную систему. Никаких следов Linux в очередности загрузки не останется.
- Совместимо с шифрованием диска FileVault и т.д. — файл копируется на EFI System Partition, специальный зарезервированный раздел диска. В компьютерах Mac его размер около 200 мегабайт. Он выделен под Boot Camp и обычно не используется
Инициализация в современном C++
Общеизвестно, что семантика инициализации — одна из наиболее сложных частей C++. Существует множество видов инициализации, описываемых разным синтаксисом, и все они взаимодействуют сложным и вызывающим вопросы способом. C++11 принес концепцию «универсальной инициализации». К сожалению, она привнесла еще более сложные правила, и в свою очередь, их перекрыли в C++14, C++17 и снова поменяют в C++20.
Под катом — видео и перевод доклада Тимура Домлера (Timur Doumler) с конференции C++ Russia. Тимур вначале подводит исторические итоги эволюции инициализации в С++, дает системный обзор текущего варианта правила инициализации, типичных проблем и сюрпризов, объясняет, как использовать все эти правила эффективно, и, наконец, рассказывает о свежих предложениях в стандарт, которые могут сделать семантику инициализации C++20 немного более удобной. Далее повествование — от его лица.
Ускоряем std::shared_mutex в 10 раз
Далее мы покажем как ускорить работу contfree_safe_ptr<std::map> до уровня сложных и оптимизированных lock-free структур данных аналогичных по функциональности std::map<>, например: SkipListMap и BronsonAVLTreeMap из библиотеки libCDS (Concurrent Data Structures library): github.com/khizmax/libcds
И такую многопоточную производительность мы сможем получить для любого вашего изначально потоко-небезопасного класса T используемого как contfree_safe_ptr<T>. Нас интересуют оптимизации повышающие производительность на ~1000%, поэтому мы не будем уделять внимание слабым и сомнительным оптимизациям.
Информация
- В рейтинге
- 2 146-й
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность