Search
Write a publication
Pull to refresh
5
5
Владислав Щапов @phprus

Манул

Send message

Универсальный https c использованием ГОСТ сертификата

Reading time6 min
Views53K
При попытках организовать https-соединения для различных web-сервисов с использованием ГОСТ-шифрования всегда оставались вопросы с посетителями, браузеры которых не поддерживают ГОСТ-алгоритмы. Логичным казалось решение при установке https-соединения отдавать клиенту сертификат в зависимости от поддерживаемых его системой алгоритмов, но до недавнего времени практические реализации такого подхода мне не встречались.
Читать дальше →

Некоторые простейшие принципы автовекторизации

Reading time21 min
Views28K
Предыдущий мой пост был посвящен цикловым перестановочным оптимизациям, проблемам распознавания циклов, разрешению неоднозначности при работе с памятью, определению и важности зависимостей. Теперь я хочу сделать обзор одной из самых эффективных цикловых оптимизаций — автовекторизации. Хочется обсудить вопросы эффективности оптимизации, а также попытаться понять, какие факторы эту эффективность определяют. Всем, кому это интересно – добро пожаловать. При обсуждении я буду ориентироваться на интеловский автовекторизатор и автовекторизатор gcc 4.7.2. gcc я буду исследовать, чтобы подтвердить, что те принципы векторизации, которые я здесь пытаюсь сформулировать, имеют достаточно общую природу. Заодно мне, конечно, хочется понять уровень автовекторизации в gcc. Тут, конечно, есть некий элемент неравенства, поскольку я использую последний компилятор Интел, но не самую топовую версию gcc, но в основном я буду ориентироваться при сравнении на SSE инструкции. (Кстати, Intel активно участвует в разработке автовекторизатора gcc). Поскольку Intel и интеловский компилятор мне ближе, то ему я уделю кое-где больше внимания. Я не претендую на то, что я векторизаторный гуру и буду рад, если кто-то увидит мои ошибки и меня поправит. Букв будет много.
Читать дальше →

Подпись объектного кода сертификатом от StartSSL. По шагам — заплатил, получил, подписал

Reading time4 min
Views11K

Приветствую! Хочу поделиться своим опытом как я получил сертификат для подписи объектного кода. Много статей и постов написано о цифровой подписи, и бюджетном StartSSL. Я решил потратив почти $ 60, попробовать пройти по этому пути и поделиться с обществом своим опытом.
Относиться все ниже изложенное исключительно к моему личному опыту и относится к ОС Windows.
Ну, начинаем...

С 18 июля новый порядок регистрации программ для ЭВМ в Роспатенте. Что изменилось?

Reading time6 min
Views73K
18 июля 2016 года вступили в силу новый Административный регламент предоставления государственной услуги по государственной регистрации программы для ЭВМ, а также новые Правила регистрации программ и баз данных. Таким образом, прекращает действие Административный регламент 2008 года. Понятно, что если вы по каким-то причинам регистрируете программы в Роспатенте (зачем их регистрировать — мы обсуждали здесь ранее), то с 18 июля нужно пользоваться новой формой заявления.



Больший интерес представляет анализ нового Регламента с целью понять, есть ли что-то существенно новое в регистрации программ, улучшающее или ухудшающее положение заявителей.
Подробности

Запуск cron внутри Docker-контейнера

Reading time6 min
Views78K

Так уж вышло, что запуск cron в Docker-контейнере — дело весьма специфическое, если не сказать сложное. В сети полно решений и идей на эту тему. Вот один из самых популярных (и простых) способов запуска:
cron -f

Но такое решение (и большинство других тоже) обладает рядом недостатков, которые сходу обойти достаточно сложно:
  • неудобство просмотра логов (команда docker logs не работает)
  • cron использует свой собственный Environment (переменные окружения, переданные при запуске контейнера, не видимы для cron заданий)
  • невозможно нормально (gracefully) остановить контейнер командой docker stop (в конце концов в контейнер прилетает SIGKILL)
  • контейнер останавливается с ненулевым кодом ошибки
Читать дальше →

Как Linkmeup ходил в гости к «НТЦ Метротек»

Reading time10 min
Views8K
Уже почти неделю, как за окном был беспробудный Питер, всё местное население окончательно перешло на жаберное дыхание и посмеивалось над гостями города, а так же теми кто ещё не выработал столь необходимое здесь умение. Ситуация требовала решительных мер и редакция Linkmeup приняла стратегическое решение поехать в гости. Выбор пал на “НТЦ Метротек”, благо звали они к себе давно и обещали интересное времяпрепровождение. По результатам визита был написан сей отчёт, который и предлагается вашему вниманию.

Внимание! Под катом текст с картинками. Качество картинок может сильно расстроить творческих личностей, но у нас был только длиннофокусный объектив. Наше дело предупредить.



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

Кровеносная система мирового интернета

Reading time6 min
Views129K

Инфографика TeleGeography

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

Крупнейшие хабы


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

В списке крупнейших точек обмена трафиком в мире лидируют DE-CIX (пиковая пропускная способность 5178 Гбит/с), AMS-IX (4270 Гбит/с). Российская MSK-IX находится на 5-м месте (2135 Гбит/с).
Читать дальше →

Последние новости о развитии C++

Reading time7 min
Views77K
Недавно в финском городе Оулу завершилась встреча международной рабочей группы WG21 по стандартизации C++, в которой впервые официально участвовали сотрудники Яндекса. На ней утвердили черновой вариант C++17 со множеством новых классов, методов и полезных нововведений языка.



Во время поездки мы обедали с Бьярне Строуструпом, катались в лифте с Гербом Саттером, жали руку Беману Дейвсу, выходили «подышать воздухом» с Винцентом Боте, обсуждали онлайн-игры с Гором Нишановым, были на приёме в мэрии Оулу и общались с мэром. А ещё мы вместе со всеми с 8:30 до 17:30 работали над новым стандартом C++, зачастую собираясь в 20:00, чтобы ещё четыре часика поработать и успеть добавить пару хороших вещей.

Теперь мы готовы поделиться с вами «вкусностями» нового стандарта. Всех желающих поглядеть на многопоточные алгоритмы, новые контейнеры, необычные возможности старых контейнеров, «синтаксический сахар» нового чудесного C++, прошу под кат.
Покажите мне чудеса!

Векторизация кода преобразования координат в пространстве на Intel® Xeon Phi™ с помощью низкоуровневых инструкций

Reading time10 min
Views9.3K

Введение


При решении задач моделирования движения объектов в трехмерном пространстве практически всегда требуется использование операций пространственных преобразований, связанных с умножением матриц преобразований и векторов. Для задачи N тел эта операция используется многократно для задания поворота и смещения тела относительно начала координат. Матрица пространственного преобразования имеет размерность 4х4, а размерность вектора, к которому применяется преобразование, соответственно 4x1. Рассмотрим оптимизацию выполнения такой операции с большим числом матриц и векторов под архитектуру Intel® Xeon Phi™.


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

Как мы рассылали SMS со старой Nokia и телефона на Android

Reading time4 min
Views29K
image

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

Самой главной проблемой в нем оказалась рассылка смс. Мы не ожидали, что проект понравится и у нас будет 1500+ регистраций. В самом лучшем случае мы расчитывали человек на 300. Этим мы были приятно удивлены.
Читать дальше →

Машинное обучение вместо DPI. Строим классификатор трафика

Reading time10 min
Views30K
image

Вряд ли можно представить мир современных сетевых технологий без DPI (deep packet inspection – глубокий анализ пакетов). На нём держатся системы обнаружения сетевых атак, львиная доля политик безопасности корпоративных сетей, шейпинг и блокировка пользовательского трафика оператором связи – да-да, чтобы выполнять требования Роскомнадзора, средства DPI обязан иметь каждый провайдер.

И всё-таки, при всей своей востребованности, DPI имеет некоторые недостатки. Главный из них в том, что средствам DPI необходимо видеть полезную нагрузку анализируемых пакетов. А что делать, когда клиент использует шифрование? Или, например, если у нас нет DPI здесь и сейчас, но в перспективе потребуется проводить какой-то анализ текущего по сети трафика – тогда нам остаётся только сохранять всю полезную нагрузку для последующего анализа, что очень неудобно.

В данной статье я хочу предложить альтернативный способ решения одной из главных задач DPI – определения протокола прикладного уровня – на основе очень маленького количества информации, при этом не сверяясь со списком широко известных портов (well-known ports) и не глядя в полезную нагрузку пакетов. Вообще.
Читать дальше →

Oracle прекратила разработку Java EE?

Reading time5 min
Views110K


Прошло два года с момента выпуска Java 8 и многие с нетерпением ожидают выхода Java 9, который отодвинули на март 2017 года.

Тем временем в лагере разработчиков Java накаляются страсти. Будущее серверной платформы Java Platform, Enterprise Edition (Java EE) выглядит крайне смутно. Месяц назад компания Oracle объявила о значительной задержке с выпуском Java EE 8, и это был первый звонок. Как сейчас стало известно изданию Ars Technica, компания Oracle вовсе прекратила финансирование и разработку Java EE. Издание пишет, что традиционная бизнес-модель Oracle сейчас напрямую угрожает самому существованию платформы Java.

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

Если что-то не приносит денег, то нет причин это разрабатывать, считает Oracle. Обычный бизнес, ничего личного. И ничего нового для всех, кто знает историю Oracle.
Читать дальше →

Распознавание паспорта РФ на платформе Эльбрус. Часть 1

Reading time14 min
Views35K

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



Итак, что же мы знаем про архитектуру Эльбрус?


Эльбрус — высокопроизводительная и энергоэффективная архитектура процессоров, отличающаяся высокой безопасностью и надежностью. Современные процессоры архитектуры Эльбрус могут применяться в качестве серверов, настольных компьютеров и даже встраиваемых вычислителей. Они способны удовлетворить повышенным требованиям по информационной безопасности, рабочему диапазону температур и длительности жизненного цикла продукции. Процессоры архитектуры Эльбрус, как говорят нам публикации МЦСТ [1, 2], предназначены для решения задач обработки сигналов, математического моделирования, научных расчетов, а также других задач с повышенными требованиями к вычислительной мощности.


Мы в Smart Engines попробовали убедиться, правда ли производительности Эльбруса достаточно, чтобы реализовать распознавание паспорта без значительных потерь в скорости работы.

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

Если вы работаете с государственными организациями

Reading time3 min
Views14K
По адресу http://regulation.gov.ru/projects# доступен очередной проект закона о внесении очередных изменений в закона «Об информации, информационных технологиях и о защите информации». Точнее на данном портале сейчас выложено два таких проекта, но нас интересует проект закона от ФСТЭК РФ:



Что же предполагается изменить в методах защиты и кого касаются изменения?
Читать дальше →

Строительство обсерватории с удаленным управлением

Reading time5 min
Views21K
image

Увлечение любительским астрофото связано с использованием одного очень ограниченного ресурса – времени. Для получения качественного изображения требуется получить снимки с суммарной экспозицией от нескольких часов до нескольких суток. Кроме того, должно совпасть несколько факторов: пару дней\ночей свободного времени, хорошая погода, луна в нужной фазе. Зимой, когда за одну ночь можно получить до 10 часов, есть ненулевая вероятность превратиться в сосульку. А летом – стать кормом для комаров и мух, да и небо дают на всего пару часов. Добавьте к этому необходимость уехать подальше от города и засветки, вес и габариты оборудования, дизельный генератор, умножьте на шанс того, что погода внезапно испортится – и всё – данное мероприятие превращается в Mission Impossible, а два три снимка за год – в предел мечтаний.

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

SO_TIMESTAMPING в картинках. Прием пакета

Reading time11 min
Views11K

Бывает, что приложению требуется узнать точное время приема или отправки сетевого пакета. Например, для синхронизации часов (см. PTP, NTP) или тестирования задержек в сети (см. RFC2544).


Наивным решением будет запоминать в приложении время сразу после получения пакета от ядра (или перед отправкой ядру):


  recv(sock, buffer, length, flags);
  clock_gettime(CLOCK_REALTIME, timespec);

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


Начиная с версии 2.6.30 Линукс поддерживает опцию сокета SO_TIMESTAMPING. Она позволяет пользовательскому сокету получать временные метки для отправляемых и принимаемых пакетов. Временные метки могут быть сняты самим ядром, драйвером или сетевым устройством (см. список поддерживающих устройств и драйверов). О том, что это вообще такое и как этим пользоваться, стоит почитать в Documentation/networking/timestamping.txt


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

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

Open-source реализации отечественных криптоГОСТов

Reading time2 min
Views63K
На выходных решил поискать open-source реализации отечественных криптографических стандартов. Прежде всего интересовали новые: хэш-функция Стрибог (ГОСТ Р 34.11-2012), Кузнечик (ГОСТ Р 34.12-2015) и ЭЦП (ГОСТ Р 34.10-2012 или 2001 (без 512-бит) ). Старый ГОСТ 28147-89 специально не искал, поскольку найти его реализацию никаких проблем нет уже давно.
Итак, давайте посмотрим, что же получилось. Сразу предупреждаю, что корректность реализаций не проверял.
Читать дальше →

Работаем с бюджетным учреждением. Часть 3

Reading time18 min
Views5.1K
Это третья статья из цикла про работу с бюджетными учреждениями. Если вы подзабыли, о чем идет речь, то можете перечитать предыдущие части (часть 1, часть 2).
Сегодня мы затронем следующие темы:
— долог путь от обещания к обязательству;
— подводные камни технического задания;
казнить нельзя помиловать менять нельзя оставить, или как законодательство влияет на техническое задание;
— опять КОСГУ;
— и другие.
Читать дальше →

D3.js. Визуализация графов

Reading time13 min
Views60K
D3.js — это библиотека JavaScript для управления документами, в основе которых лежат данные. D3 помогает претворить данные в жизнь, используя HTML, SVG и CSS. D3 позволяет привязывать произвольные данные к DOM, и затем применять результаты манипуляций с ними к документу.

Для понимания статьи пригодится знание основ D3, и в ней мы рассмотрим реализацию алгоритмов визуализации графа на основе сил (Force-directed graph drawing algorithms), которая в D3 (version 3) имеет название Force Layout. Это класс алгоритмов визуализации графов, которые вычисляют позицию каждого узла, моделируя силу притяжения между каждой парой связанных узлов, а также отталкивающую силу между узлами.

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

Information

Rating
381-st
Location
Пермь, Пермский край, Россия
Date of birth
Registered
Activity