Внедрение Multicast VPN на Cisco IOS (часть 3 — BGP Auto-Discovery)

В прошлых выпусках мы с Вами познакомились с понятиями Default MDT, типами корневых деревьев и разобрали два варианта реализации mVPN на основе mGRE и mLDP:
Profile 0
Profile 1

На сегодняшний день адресное семейство BGP MDT (которое уже рассматривали) является устаревшим. Ему на замену пришло новое — SAFI = multicast VPN (mVPN). Что нового приносит данное адресное семейство? Какие случаи использования могут быть? Попробуем разобраться.

Заинтересованным — добро пожаловать под кат.

Читать дальше →
Внедрение Multicast VPN на Cisco IOS (часть 3 — BGP Auto-Discovery)
Source: habrahabr

Как мы заставили код, портированный с C#, работать с моделью памяти C++

Привет, Хабр. В прошлой статье я рассказывал о том, как мы создали фреймворк для перевода кода C# на (неуправляемый) C++, чтобы выпускать свои библиотеки, изначально разработанные для платформы .Net, и под C++ тоже. В этой статье я расскажу о том, как нам удалось согласовать модели памяти этих двух языков, добившись работы портированного кода в необычном для него окружении.

Я расскажу о том, какие умные указатели мы используем, и почему нам пришлось разработать для них собственные реализации. Я также расскажу о процессе подготовки кода C# к портированию с точки зрения управления временем жизни объектов, о некоторых проблемах, с которыми мы столкнулись, и о специфических способах диагностики, которыми нам приходится пользоваться при работе.

Читать дальше →
Как мы заставили код, портированный с C#, работать с моделью памяти C++
Source: habrahabr

Прямое лазерное выращивание: Идея

В основе всех красивых вещей лежит идея. «А давайте ездить без лошадей?», «А давайте летать как плиты?», «А давайте сделаем сверхтяжелую полностью повторно используемую ракеты на метане и полетим на марс?»… В основе описанной дальше истории тоже лежит простая и красивая идея: «А давайте печатать крупногабаритные металлические изделия из порошка?». Действительно, почему бы и нет? Если существует технология послойного лазерного сплавления (SLM) для изделий до полуметра диаметром, то почему не получится напечатать изделие побольше?
Читать дальше →
Прямое лазерное выращивание: Идея
Source: habrahabr

Как корова помогла сделать интереснее процесс проектирования

Всем привет! Я ведущий системный аналитик в компании МойСклад и сейчас мы с командой «Производство» запускаем внутренний стартап внутри стартапа – Производство 2.0. Недавно я написала о том, с чего начать процесс разработки в новоиспеченном проекте, а сейчас хочу продолжить рассказ из «горящего танка».

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

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

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

Запасной вариант для Let's Encrypt — бесплатные автоматические УЦ

Для многих Let’s Encrypt стал неотъемлемой частью веб-разработки, а автоматическое обновление сертификата каждые 90 дней — рутинной процедурой. Фактически, сейчас это самый популярный удостоверяющий центр в интернете. Это великолепно, но и опасно.

Возникает вопрос: а что, если серверы Let’s Encrypt временно перестанут работать? Не хочется думать о возможных причинах сбоя. Но желательно предусмотреть запасной вариант. То есть такой же удобный автоматизированный центр бесплатной сертификации.

К счастью, запасные варианты есть. Как минимум два. Такие же бесплатные автоматизированные УЦ, созданные по образцу Let’s Encrypt.
Читать дальше →
Запасной вариант для Let's Encrypt — бесплатные автоматические УЦ
Source: habrahabr

[Перевод] Проблема с N+1 запросами в JPA и Hibernate

В этой статье я расскажу, в чем состоит проблема N + 1 запросов при использовании JPA и Hibernate, и как ее лучше всего исправить. 

Проблема N + 1 не специфична для JPA и Hibernate, с ней вы можете столкнуться и при использовании других технологий доступа к данным.

Читать далее
[Перевод] Проблема с N+1 запросами в JPA и Hibernate
Source: habrahabr

К вопросу защиты цифровой информации

Основной вопрос, который стоит перед любой организацией, которая стремится защитить свою информацию, это сохранность информации на серверах и компьютерах. С информацией на бумажных носителях вопросов обычно не возникает, этот тип информационных носителей и охранять легче всего, и опыт защиты такой информации накоплен огромный. Для такой защиты используют сейф, архив, банковскую ячейку, жестко ограничивают доступ сотрудников и проблема решена. Защитить цифровую информацию намного сложнее. С одной стороны, обычно эти данные постоянно нужны для работы, с другой стороны, крайне важно надежно защитить ее от несанкционированного доступа и копирования. Читать дальше →
К вопросу защиты цифровой информации
Source: habrahabr

[Перевод] Секреты производительности Spark, или Почему важна компиляция запросов

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

Читать далее
[Перевод] Секреты производительности Spark, или Почему важна компиляция запросов
Source: habrahabr

Избегаем поддельных шрифтов в Android

Недавно я столкнулся с проблемой поддельного жирного и курсивного текста при использовании семейства шрифтов в Android разработке.

В этой статье хочу рассказать об этой проблеме и о её решении.

Создание семейства шрифтов

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

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

Таким образом система сможет выбрать правильный шрифт в зависимости от стиля текста, который вы пытаетесь использовать.

Пример файла:

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
    <font
        android:fontStyle="normal"
        android:fontWeight="400"
        android:font="@font/lobster_regular" />
    <font
        android:fontStyle="italic"
        android:fontWeight="400"
        android:font="@font/lobster_italic" />
</font-family>

Вариант для Support Library

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:app="http://schemas.android.com/apk/res-auto">
    <font
        app:fontStyle="normal"
        app:fontWeight="400"
        app:font="@font/lobster_regular" />
    <font
        app:fontStyle="italic"
        app:fontWeight="400"
        app:font="@font/lobster_italic" />
</font-family>

Атрибут fontStyle определяет стиль начертания шрифта — обычное(normal) или курсивное(italic).
В свою очередь, fontWeight — устанавливает вес, aka насыщенность шрифта.
И конечно, font будет задавать шрифт который будет использоваться при заданном fontWeight и fontStyle.

Вес шрифта

Этот стандарт пришел с web-разработки. Значение устанавливается от 100 до 900 с шагом 100.

Следующая таблица соответствует распространенным именам насыщенности:

Значение Общее название
100 Тонкий (Волосяной)
200 Дополнительный светлый
300 Светлый
400 Нормальный
500 Средний
600 Полужирный
700 Жирный
800 Дополнительный жирный
900 Черный (Густой)

В основном, в файле семейства шрифтов, достаточно указать только шрифты для нормального начертания — 400, и стандартного жирного — 700.

Более подробно о насыщенности шрифта читайте здесь.

Читать дальше →
Избегаем поддельных шрифтов в Android
Source: habrahabr

Быстрое разворачивание Minecraft-сервера

Играя в Minecraft в одиночку, всегда настаёт тот момент, когда хочется добавить к себе друзей в свой мир. Построить с ними вместе различные строения, отправиться в путешествие, вместе убить дракона или открыть новые миры. И тогда встаёт логичный вопрос: как создать свой сервер? До сего момента для игрищ использовал только сервера linux. А тут решил попробовать готовый сервер из Маркетплейса на Windows без графического интерфейса (чистый PowerShell). Мне кажется были собраны все грабли, которые только можно, но из битвы с Windows Server я вышел победителем. Читать дальше →
Быстрое разворачивание Minecraft-сервера
Source: habrahabr