[Перевод] Как мы удвоили скорость работы с Float в Mono

Мой друг Aras недавно написал один и тот же трассировщик лучей на разных языках, в том числе на C++, C# и компиляторе Unity Burst. Разумеется, естественно ожидать, что C# будет медленнее, чем C++, но мне показалось интересным, что Mono настолько медленнее .NET Core.

Опубликованные им показатели были плохими:

  • C# (.NET Core): Mac 17.5 Mray/s,
  • C# (Unity, Mono): Mac 4.6 Mray/s,
  • C# (Unity, IL2CPP): Mac 17.1 Mray/s

Я решил посмотреть, что происходит, и задокументировать места, которые можно улучшить.

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

  • Во-первых, необходимо улучшить параметры Mono по умолчанию, потому что пользователи обычно не настраивают параметры у себя
  • Во-вторых, нам нужно активнее знакомить мир с бекэндом оптимизации кода LLVM в Mono
  • В-третьих, мы улучшили настройку некоторых параметров Mono.

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

Результаты на моём домашнем iMac для Mono и .NET Core были следующими:

Рабочая среда Результаты, MRay/sec
.NET Core 2.1.4, отладочная сборка dotnet run 3.6
.NET Core 2.1.4, релизная сборка dotnet run -c Release 21.7
Ванильный Mono, mono Maths.exe 6.6
Ванильный Mono с LLVM и float32 15.5

Читать дальше →
[Перевод] Как мы удвоили скорость работы с Float в Mono
Source: habrahabr

Память Optane — симбиот для HDD, и конфигурации офисных ПК получаются на 8–15 % дешевле

Берёте ПК с HDD, втыкаете ему внутрь PCIe-модуль Intel Optane, и он становится кэшем жёсткого диска. Получается сильно быстрее, потому что это, по сути, флешовый NVMe-модуль, который становится частью жёсткого диска. Вы получаете гибридный массив. Это ещё и относительно просто.

К нам упал такой запрос: будет ли дешевле покупать офисные ПК с этой платой в сравнении с SSD-диском? И какие подводные камни возможны, если они есть? А они есть, конечно.

Плату 32 Гб мы сожгли во время тестов, поэтому числа будут только про 16 Гб.
Читать дальше →
Память Optane — симбиот для HDD, и конфигурации офисных ПК получаются на 8–15 % дешевле
Source: habrahabr

Apache NiFi: что это такое и краткий обзор возможностей

Сегодня на тематических зарубежных сайтах о Big Data можно встретить упоминание такого относительно нового для экосистемы Hadoop инструмента как Apache NiFi. Это современный open source ETL-инструмент. Распределенная архитектура для быстрой параллельной загрузки и обработки данных, большое количество плагинов для источников и преобразований, версионирование конфигураций – это только часть его преимуществ. При всей своей мощи NiFi остается достаточно простым в использовании.

image

Мы в «Ростелекоме» стремимся развивать работу с Hadoop, так что уже попробовали и оценили преимущества Apache NiFi по сравнению с другими решениями. В этой статье я расскажу, чем нас привлек этот инструмент и как мы его используем.
Читать дальше →
Apache NiFi: что это такое и краткий обзор возможностей
Source: habrahabr

Функциональное мышление. Часть 5

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

Читать дальше →
Функциональное мышление. Часть 5
Source: habrahabr

Класс PHP для вывода в консоль цветного текста

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

Console::indent(2)->color('brown')->bgcolor('magenta')->writeln('Привет Habr!');

Читать дальше →
Класс PHP для вывода в консоль цветного текста
Source: habrahabr

[Перевод] Курс MIT «Безопасность компьютерных систем». Лекция 19: «Анонимные сети», часть 3 (лекция от создателя сети Tor)

Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год

Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
Лекция 11: «Язык программирования Ur/Web» Часть 1 / Часть 2 / Часть 3
Лекция 12: «Сетевая безопасность» Часть 1 / Часть 2 / Часть 3
Лекция 13: «Сетевые протоколы» Часть 1 / Часть 2 / Часть 3
Лекция 14: «SSL и HTTPS» Часть 1 / Часть 2 / Часть 3
Лекция 15: «Медицинское программное обеспечение» Часть 1 / Часть 2 / Часть 3
Лекция 16: «Атаки через побочный канал» Часть 1 / Часть 2 / Часть 3
Лекция 17: «Аутентификация пользователя» Часть 1 / Часть 2 / Часть 3
Лекция 18: «Частный просмотр интернета» Часть 1 / Часть 2 / Часть 3
Лекция 19: «Анонимные сети» Часть 1 / Часть 2 / Часть 3 Читать дальше →
[Перевод] Курс MIT «Безопасность компьютерных систем». Лекция 19: «Анонимные сети», часть 3 (лекция от создателя сети Tor)
Source: habrahabr

Flutter 1.0 — релиз 4 декабря

Позавчера, 4 декабря, прошло знаменательное для мобильных разработчиков событие: презентация Flutter версии 1.0.

image

Если Вы еще не слышали об этой новой технологии, то стоит сказать о ней несколько слов.

Флаттер — это набор инструментов от Google для создания нативных приложений для iOS И Android из одной кодовой базы. То есть пишем код на Dart, а затем компилируем его в приложение для iOS и в приложение для Андроид. Сама по себе идея компиляции под разные платформы из одной кодовой базы не нова. React Native, Xamarin, PhoneGap… Но только Флаттер обещает сделать приложения быстрыми и красивыми настолько же, насколько вообще могут быть быстрыми и красивыми нативные приложения для этих операционок. А может быть даже красивее. По крайней мере то, что показали на вчерашней презентации, было очень эфффектным.

Постараюсь рассказать о том, что мне больше всего понравилось в этой презентации.

Читать дальше →
Flutter 1.0 — релиз 4 декабря
Source: habrahabr

О том, как в Питерской Вышке появились программисты

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

На самом деле, новым этот факультет можно назвать весьма условно. Его костяк составила команда, создавшая в Санкт-Петербургском Академическом университете (СПбАУ) кафедру математических и информационных технологий. В 2008 году команда кафедры начала готовить магистров, а в 2014 и бакалавров в области компьютерных технологий. Впечатления от обучения на этой кафедре можно посмотреть здесь, здесь и здесь. В силу некоторых субъективных обстоятельств весной 2018 года нам пришлось покинуть СПбАУ и перейти на новую площадку – в Питерский кампус Высшей школы экономики. Причем перейти вместе со всеми преподавателями (порядка 50 человек) и студентами (около 80 человек). Читать дальше →
О том, как в Питерской Вышке появились программисты
Source: habrahabr

Роскомнадзор предлагает маркировать контент для детей грудного возраста

Сегодня стало известно о том, что Роскомнадзор предложил ввести новую возрастную категорию для маркировки контента — 1+ и 3+. Об этом сообщают «Ведомости».

Предложение внес руководитель Роскомнадзора Александр Жаров. Он обосновывает свою точку зрения развитием форм информационного воздействия на детей, а также тем, что они «являются потребителями медиаконтента практически с грудного возраста».
Читать дальше →
Роскомнадзор предлагает маркировать контент для детей грудного возраста
Source: habrahabr

[Перевод] Курс MIT «Безопасность компьютерных систем». Лекция 19: «Анонимные сети», часть 2 (лекция от создателя сети Tor)

Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год

Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
Лекция 11: «Язык программирования Ur/Web» Часть 1 / Часть 2 / Часть 3
Лекция 12: «Сетевая безопасность» Часть 1 / Часть 2 / Часть 3
Лекция 13: «Сетевые протоколы» Часть 1 / Часть 2 / Часть 3
Лекция 14: «SSL и HTTPS» Часть 1 / Часть 2 / Часть 3
Лекция 15: «Медицинское программное обеспечение» Часть 1 / Часть 2 / Часть 3
Лекция 16: «Атаки через побочный канал» Часть 1 / Часть 2 / Часть 3
Лекция 17: «Аутентификация пользователя» Часть 1 / Часть 2 / Часть 3
Лекция 18: «Частный просмотр интернета» Часть 1 / Часть 2 / Часть 3
Лекция 19: «Анонимные сети» Часть 1 / Часть 2 / Часть 3 Читать дальше →
[Перевод] Курс MIT «Безопасность компьютерных систем». Лекция 19: «Анонимные сети», часть 2 (лекция от создателя сети Tor)
Source: habrahabr