Pull to refresh
14
0
Send message

Объект в футляре или Optional в Java 8 и Java 9. Часть 4: «Как футляром с двойным дном закрыть дыру в Java“

Reading time7 min
Views6.5K
Объект в футляре

Это четвёртая статья серии, посвящённая использованию класса Optional при обработке объектов с динамической структурой. В первой статье было рассказано о способах избежания NullPointerException в ситуациях, когда вы не можете или не хотите использовать Optional. Вторая статья посвящена описанию методов класса Optional в том виде, как он появился в Java 8. Третья — методам, добавленным в класс в Java 9.
Ну а в пятой статье я рассказываю о том, где внутри класса следует применять Optional, подвожу итоги и дарю каждому читателю, дочитавшему серию до конца, ценный подарок.
Класс о котором я хочу рассказать в этой статье возник при попытке найти решение реальной задачи. На абстрактном уровне постановка задачи звучит так: вы обращаетесь к некому сервису, который в случае успеха должен вернуть объект. Но запрос может закончится и неудачей. Причин для неудачи может быть несколько. И логика дальнейшей обработки ошибочной ситуации зависит от того, какова была причина неудачи.

Если сервис возвращает Optional, о причине мы ничего не узнаем. Значит надо использовать что-то похожее на Optional, но содержащее информацию об ошибке в случае неуспеха.
Читать дальше →

Две геометрические задачки, которые попадались на собеседовании, и где они обитают

Reading time3 min
Views81K
Когда программист ходит на собеседования, то рано или поздно сталкивается с математическими задачками. В этом посте я рассмотрю две геометрические задачи и их решения.
Читать дальше →

Увеличиваем себе премию в два раза, или как взломать документы, подписанные усиленной квалифицированной подписью

Reading time4 min
Views51K

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


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

Как взломать выключенный компьютер или выполнить код в Intel ME

Reading time9 min
Views43K
На прошедшей недавно конференции Black Hat Europe исследователи Positive Technologies Марк Ермолов и Максим Горячий рассказали об уязвимости в Intel Management Engine 11, которая открывает злоумышленникам доступ к большей части данных и процессов на устройстве.

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

Обнаружение известного вредоносного кода в зашифрованном с помощью TLS трафике (без дешифровки)

Reading time4 min
Views13K
В данной статье рассматривается работа группы исследователей компании Cisco, доказывающая применимость традиционных методов статистического и поведенческого анализа для обнаружения и атрибуции вредоносного ПО, использующего TLS в качестве метода шифрования каналов взаимодействия, без дешифровки или компрометации TLS-сессии, а также описание решения Encrypted Traffic Analytics, реализующая принципы, заложенные в данном исследовании.
Читать дальше →

Прошло 10 лет, а никто не придумал, как использовать блокчейн

Reading time14 min
Views145K
Все говорят, что блокчейн — технология, лежащая в основе криптовалют — изменит ВСЁ. Но спустя годы усилий и многомиллиардные инвестиции никто так и не придумал, как можно использовать блокчейн, если не считать криптовалютных спекуляций и противозаконных финансовых транзакций.

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

Как это работает: Деревья Меркла в биткойн сети

Reading time5 min
Views41K
Узлы в блокчейн-сети анонимны и работают в условиях отсутствия доверия. В этой ситуации встает проблема верификации данных: как проверить, что в блоке записаны корректные транзакции? Для оценки каждого блока понадобится большое количество времени и вычислительных ресурсов. Решить проблему и упростить процесс помогают деревья Меркла.

Что это такое, как используется, какие существуют альтернативы — расскажем далее.

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

Немного об арифметике

Reading time7 min
Views34K
Вы когда-нибудь задумывались о том, как мы считаем? Как устроен счет на низком уровне? Например, как выглядят на прямой единичные отрезки в выражении 1 + 1 = 2. Или что такое квадратный корень из $i$.

Счет появился не просто чтобы считать, а чтобы посчитать какие-то объекты. Например, количество яблок или антилоп в стаде. То есть всегда есть единица измерения.
Читать дальше →

Как именно работает Meltdown

Reading time4 min
Views98K

Уже третий день у всех на слуху слова Meltdown и Spectre, свеженькие уязвимости в процессорах. К сожалению, сходу найти что либо про то, как именно работают данные уязвимости (для начала я сосредоточился на Meldown, она попроще), у меня не удалось, пришлось изучать оригинальные публикации и статьи: оригинальная статья, блок Google Project Zero, статья аж из лета 2017. Несмотря на то, что на хабре уже есть перевод введения из оригинальной публикации, хочется поделиться тем, что мне удалось прочитать и понять.

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

Russian AI Cup 2017 — история второго места

Reading time16 min
Views14K
Привет! В этой статье я хотела бы рассказать вам о своем участии в соревновании по написанию игровых ботов Russian AI Cup CodeWars, на котором мне удалось занять 2 место, и что и как для этого было сделано.


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

Математические модели релейно-импульсных регуляторов

Reading time7 min
Views11K


Введение

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

Практика промышленного использования микропроцессорных регулирующих приборов (МРП) показала, что “идеальные алгоритмы” физически не реализуемы. Синтезированная на их основе АСР не отражает поведение реальной системы [1].

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

Релейно-импульсные регуляторы применяются в микропроцессорных регулирующих приборах, где наблюдается следующая тенденция. Например, в публикации [2] описаны возможности применения протокола modbus для создания собственной Scada системы на базе Python.
В публикации [3] описано использование Python для работы с Arduino. Продолжаю эту тенденцию и я в надежде, что Python окончательно овладеет этой новой областью применения.
Читать дальше →

Объяснение SNARKs. Спаривание эллиптических кривых (перевод)

Reading time6 min
Views6.4K
Привет, Хабр! Представляю вашему вниманию перевод статей блога ZCash, в которых рассказывается о механизме работы системы доказательств с нулевым разглашением SNARKs, применяемых в криптовалюте ZCash (и не только).

Источник

Предыдущие статьи:

Часть 1: Объяснение SNARKs. Гомоморфное скрытие и слепое вычисление полиномов (перевод)
Часть 2: Объяснение SNARKs. Знание о принятом коэффициенте и достоверное слепое вычисление полиномов (перевод)
Часть 3: Объяснение SNARKs. От вычислений к многочленам, протокол Пиноккио и спаривание эллиптических кривых (перевод)
Читать дальше →

Достижение максимальной производительности Быстрого Преобразования Фурье на основе управления данными

Reading time1 min
Views19K
Статья поддерживается здесь:
[3] Caterpillar Implementation Based on Generated Code

// не вижу смысла писать на ресурсе а) с цензурой тэгов б) где каждый проходящий бот, набравший рейтинг галиматьей, сносит твой рейтинг и объяснение причины с него не требуется

Вывод формулы n-ного члена для рекуррентной последовательности на примере задачи из квеста Амнезия

Reading time6 min
Views42K
Пеленгский фермер Бух'ерик разводит хрякоплюхов. Эти животные размножаются так быстро, что их поголовье ежедневно возрастает в 3 раза. Но, начиная со второго дня, на ферму повадилась нападать стая страшных зверей долбогрызов, каждый вечер пожирающих вдвое больше хрякоплюхов, чем их было в предыдущий день. Сколько хрякоплюхов будет у фермера на 7-й вечер, если вначале их было 10?


Вы спросили у гаальца, что он думает по поводу этой задачки. После некоторого размышления тот ответил:
— В начале было 10 хрякоплюхов. В первый день они размножились, и к началу второго дня их стало 30. Во второй день они опять размножились (их стало 90), но вечером пришли долбогрызы и съели вдвое больше хрякоплюхов, чем было вчера (в первый день), т.е. 20 штук. Итого, в начале третьего дня получаем 70 хрякоплюхов. Мне кажется, что, продолжая решать таким образом, можно вычислить число хрякоплюхов в любой день.

Это задача из игры «Космические Рейнджеры 2», квест Амнезия.
Попробуем вывести формулу для количества хрякоплюхов на n-ный день, и посчитать для примера количество хрякоплюхов на 32-й день.
Читать дальше →

Отслеживаем Millenium Falcon с помощью TensorFlow

Reading time7 min
Views7.7K


На момент написания этой статьи большинство крупных технологических компаний (вроде IBM, Google, Microsoft и Amazon) предлагают простые в использовании API визуального распознавания. Аналогичные инструменты предлагают и более мелкие компании, например, Clarifai. Но никто из них не предлагает средств по обнаружению объектов (object detection).

Чем распознавать на мобильных платформах?

Reading time3 min
Views17K
image

image

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

Что-то не так с IDS сигнатурой

Reading time12 min
Views9.8K


Имена Snort и Suricata IDS знакомы каждому, кто работает в сфере сетевой безопасности. Системы WAF и IDS — это те два класса защитных систем, которые анализируют сетевой трафик, разбирают протоколы самого верхнего уровня и сигнализируют о злонамеренной или нежелательной сетевой активности. Если первая система помогает веб-серверам обнаружить и избегать атак, специфичных только для них, то вторая, IDS, способна обнаружить атаки во всем сетевом трафике.

Многие компании устанавливают IDS для контроля трафика внутри корпоративной сети. Благодаря механизму DPI они собирают транспортные потоки, заглядывают внутрь пакетов от IP до HTTP и DCERPC, а также выявляют как эксплуатацию уязвимостей, так и сетевую активность вредоносных программ.

Сердце и тех и других систем — наборы сигнатур для выявления известных атак, разрабатываются экспертами сетевой безопасности и компаниями по всему миру. Мы, команда @attackdetection, также занимаемся разработкой сигнатур для обнаружения сетевых атак и вредоносной активности. Далее в статье речь пойдет о обнаруженном нами новом подходе, который позволяет нарушить работу систем IDS Suricata и скрыть такую активность.
Читать дальше →

Квантовые вычисления: отжиг с выключателями и прочее веселье

Reading time11 min
Views21K
В предыдущей статье мы начали рассказ о квантовых вычислениях и сравнили их с обычными. Сегодня мы погрузимся глубже в их технические особенности и расскажем, как это используется на благо человечества.


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

Нехватка оперативной памяти в Linux на рабочем ПК: оптимизация и действия при зависании

Reading time5 min
Views90K
На любой операционной системе часто не хватает оперативной памяти. Рассмотрим, как и сэкономить на увеличении аппаратных ресурсов машины с Linux, и продолжить более-менее комфортно пользоваться компьютером с Linux в условиях нехватки памяти.
Читать дальше →

Обнаружение аномалий в данных сетевого мониторинга методами статистики

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


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

Information

Rating
9,950-th
Registered
Activity