Архив за 05 октября 2020 - 2

Как генерируются UUID - 1

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

Современную реализацию UUID можно проследить до RFC 4122, в котором описано пять разных подходов к генерированию этих идентификаторов. Мы рассмотрим каждый из них и пройдёмся по реализации версии 1 и версии 4.
Читать полностью »

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

Выступая в понедельник на виртуальном мероприятии в Афинах, президент Microsoft Брэд Смит (Brad Smith) сказал, что новый дата-центр будет полезен для бизнеса, потребителей и банков.

Мы провели исследование микроконтроллера Espressif ESP32 на предмет устойчивости к атакам, выполняемым методом внесения сбоев в работу чипов (Fault Injection). Мы постепенно шли к тому, чтобы найти уязвимости, которые позволят нам обойти механизмы защищённой загрузки (Secure Boot) и шифрования флеш-памяти (Flash Encryption) посредством всего одного сбоя, вызванного электромагнитным полем. Более того, мы, успешно проведя атаку, не только смогли выполнить произвольный код, но и получили данные флеш-памяти в расшифрованном виде.

Взлом ESP32 путём обхода Secure Boot и Flash Encryption (CVE-2020-13629) - 1

Компания Espressif зарегистрировала эту уязвимость в базе данных CVE под кодом CVE-2020-13629. Знакомясь с атакой, описанной в этой статье, учитывайте то, что она применима к чипам ESP32 ревизий 0 и 1. Более новые ESP32 V3 поддерживают функционал отключения загрузчика UART, который использован в этой атаке.
Читать полностью »

Запретить сделки государственных органов и компаний с Google, Facebook и Twitter и ведение аккаунтов в их соцсетях предложила Комиссия Общественной палаты РФ по развитию информационного сообщества, СМИ и массовых коммуникаций. Комиссия проводит сегодня круглый стол по регулированию соцмедиа в России и подготовила предложения по поправкам в законы.

«Мы считаем, Читать полностью »

в 12:50, , рубрики: Без рубрики

Привет.

Разбираемся в рекурсии - 1

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

Зачем это надо? Рекурсия — один из краеугольных камней ФП, а некоторые из функциональных языков (например, Idris или Agda) обладают достаточно мощной системой типов, чтобы использовать их для проверки доказательств. А чтобы проверенным доказательствам на самом деле можно было доверять, было бы неплохо, чтобы логическая система, которую представляет система типов языка, была консистентна — то есть, если упрощать, чтобы в ней нельзя было доказать ложь.

Один из главных источников неконсистентности — незавершающиеся вычисления (для примера см. КДПВ), поэтому вышеупомянутые языки очень стараются дать возможность убедиться, что вычисления завершаются — соответствующая их часть даже имеет отдельное название, «termination checker». Но, увы, по фундаментальным причинам невозможно не иметь ни ложноположительных, ни ложноотрицательных результатов любой такой проверки, поэтому приходится идти на компромиссы. В доказательствах лучше перебдеть, чем недобдеть, поэтому всегда есть завершимые функции, которые этими языками отвергаются. Однако, эти функции можно переписать так, чтобы termination checker был доволен, если можно доказать, что рекурсивный вызов всегда в каком-то смысле «меньше».

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

Читать полностью »

В нативный код из уютного мира Java: путешествие туда и обратно (часть 1) - 1

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

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

Иван Углянский (dbg_nsk) из Huawei разбирается со всем по порядку: что необычного в интеропе между Java и нативным кодом, как оно работало раньше и что нужно делать для их нормальной совместной работы (и можно ли это вообще сделать). Иван рассказывает, как избежать просадок производительности, внезапных OOM и размышляет на тему будущего — в контексте проектов Panama и Sulong.

Мы подготовили текстовую версию доклада о работе с нативами в Java. В первой части:

  • Зачем вообще работать с нативным кодом в Java.
  • С какими ошибками и проблемами придётся столкнуться при работе с нативами.

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

Далее — повествование от лица спикера.

Читать полностью »

Фриланс на острове – теория и практика - 1
Сферический фрилансер в вакууме

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

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

И все-таки, этим летом (на дворе стоял 2020-й…) я решил провести подобный эксперимент, о результатах которого и пишу этот очерк. Постараюсь описать самые основные проблемы, а также малоочевидные, но важные нюансы существования на природе, с которыми мне пришлось столкнуться.
Читать полностью »

Яндекс запустил несколько проектов ко Дню учителя. Новые бесплатные возможности для школ и учителей включают путеводитель по цифровым инструментам, образовательный интенсив «Я Учитель» и специальное предложение для школ в наборе сервисов — Яндекс.Почта 360. 

Бесплатные аналоги популярных SaaS решений - 1

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

Пока индустрия смартфонов осваивает гибкие экраны, исследователь Джунйонг Чжу (Junyong Zhu) из Лаборатории лесных продуктов (Forest Products Laboratory) в сотрудничестве с коллегами из Университета Мэриленда и Университета Колорадо разработал прозрачный древесный материал, который может найти применение в самых разных отраслях.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js