Как стать автором
Обновить
-27
0

Пользователь

Отправить сообщение

Как оценивать и сравнивать устройства шифрования для сетей Ethernet

Время на прочтение17 мин
Количество просмотров15K
Этот обзор (или, если хотите, руководство для сравнения) я написал, когда мне поручили сравнить между собой несколько устройств разных вендоров. К тому же эти устройства принадлежали к разным классам. Пришлось разбираться в архитектуре и характеристиках всех этих устройств и составлять «систему координат» для сравнения. Я буду рад, если мой обзор поможет кому-то:

  • Разобраться в описаниях и спецификациях устройств шифрования
  • Отличить «бумажные» характеристики от действительно важных в реальной жизни
  • Выйти за рамки привычного набора вендоров и включить в рассмотрение любые продукты, подходящие для решения поставленной задачи
  • Задать правильные вопросы на переговорах
  • Составить тендерные требования (RFP)
  • Понять, какими характеристиками придется пожертвовать, если будет выбрана какая-то модель устройства
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии5

Xcode 11 и XCFrameworks: новый формат упаковки фреймворков

Время на прочтение9 мин
Количество просмотров18K


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


В случае разработки под платформу iOS, да и в целом, экосистему Apple, есть два варианта подключать библиотеки в качестве зависимостей:


  1. Собирать их каждый раз при сборке приложения.
  2. Собирать их заранее, используя уже собранные зависимости.

При выборе второго подхода становится логичным использовать CI/CD системы для сборки библиотек в готовые к употреблению артефакты.


Однако, необходимость собирать библиотеки под несколько платформ или архитектур процессора в экосистеме Apple, зачастую, требует проводить не всегда тривиальные операции, как при сборке библиотеки, так и конечного продукта, который её использует.


На этом фоне, было сложно не заметить и крайне интересно изучить, одно из нововведений от Apple, представленное на WWDC 2019 в рамках презентации Binary Frameworks in Swift — формат упаковки фреймворков — XCFramework.


XCFramework имеет несколько преимуществ, в сравнении с устоявшимися подходами:


  1. Упаковка зависимостей под все целевые платформы и архитектуры в единый bundle из коробки.
  2. Подключение bundle в формате XCFramework, как единой зависимости для всех целевых платформ и архитектур.
  3. Отсутствие необходимости в сборке fat/universal фреймворка.
  4. Нет необходимости избавляться от x86_64 слайсов (slice) перед загрузкой конечных приложений в AppStore.

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

Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии2

Трёхпроходные протоколы

Время на прочтение4 мин
Количество просмотров6.6K
Данный текст будет являться одной из переписанных глав для учебного пособия по защите информации кафедры радиотехники и систем управления, а также, с этого учебного кода, кафедры защиты информации МФТИ (ГУ). Полностью учебник доступен на github (см. также draft releases). На Хабре планирую выкладывать новые «большие» куски, во-первых, чтобы собрать полезные комментарии и замечания, во-вторых, дать сообществу больше обзорного материала по полезным и интересным темам.

Предыдущие темы:


Если между Алисой и Бобом существует канал связи, недоступный для модификации злоумышленником (то есть когда применима модель только пассивного криптоаналитика), то даже без предварительного обмена секретными ключами или другой информацией можно воспользоваться идеями, использованными ранее в криптографии на открытых ключах. После описания RSA в 1978 году, в 1980 Ади Шамир предложил использовать криптосистемы, основанные на коммутативных операциях, для передачи информации без предварительного обмена секретными ключами. Если предположить, что передаваемой информацией является выработанный одной из сторон секретный сеансовый ключ, то в общем виде мы получаем следующий трёхпроходной протокол.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии1

Анатомия акустических систем: металлокерамика и композиты — о диффузорах Monitor Audio

Время на прочтение4 мин
Количество просмотров8.2K
Если речь заходит о высокой верности воспроизведения в акустических системах, то приходится признавать, что многие технические решения являются компромиссом между КПД системы и способностью точно воспроизводить записанный звук. При этом существуют производители, которые не просто довольствуются удачным использованием очевидных конструктивных подходов, но и применяют собственные разработки, чтобы преодолеть существующие ограничения высокой верности.


Британская компания Monitor Audio известна, как один из таких производителей. На счету британцев сразу несколько технологий, позволяющих радикально увеличить качество воспроизведения звука, при этом не жертвуя КПД. АС от Monitor Audio я считаю одними из самых технологически емких в мире и, пожалуй, наиболее инновационными среди аналогичных устройств от европейских производителей. Внушительная часть инноваций и технологий относится к материалам диффузоров. Под катом речь об этих технологиях и свойствах, которые можно получить благодаря их применению.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии3

Генетика любви: межполовой конфликт как основа сотрудничества в парах моногамных птиц

Время на прочтение12 мин
Количество просмотров11K


Отношения между партнерами, наполненные заботой, знаками внимания и сопереживанием, поэты называют любовью, а вот биологи — межполовой взаимосвязью, нацеленной на выживание и продолжение рода. Одни виды предпочитают брать количеством — размножаться с как можно большим числом партнеров, чтобы увеличить потомство, тем самым повысив шансы на выживание всего вида. Другие же создают моногамные пары, которые могут прекратить свое существование лишь после смерти одного из партнеров. Многие годы ученые считали, что первый вариант значительно выгоднее, но это не совсем так. Моногамные пары, как правило, совместно воспитывают потомство, т.е. защищают его от хищников, добывают пищу и учат определенным навыкам, тогда как в полигамных отношениях все это чаще всего ложится на хрупкие плечи самок. Конечно, бывают исключения, но сегодня не о них. Биологов долгое время интересовал другой занятный момент — самцы продолжают проявлять знаки внимания в адрес самок, даже когда их пара уже сформирована и существует несколько лет. Чем обусловлено такое поведение, какая от этого выгода и какие эволюционные аспекты с этим связаны? На эти вопросы мы найдем ответы в докладе исследовательской группы. Поехали.
Всего голосов 32: ↑27 и ↓5+22
Комментарии5

Надежное хранилище с DRBD9 и Proxmox (Часть 2: iSCSI+LVM)

Время на прочтение9 мин
Количество просмотров19K

image


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


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


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

Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии5

Как я проработала 3 месяца в Я.Маркете и уволилась

Время на прочтение6 мин
Количество просмотров305K

Первая попытка


Все началось с того, что я люблю ходить по конференциям и частенько хожу на них в Яндекс, Mail.ru и другие крупные компании. Однажды мне написал HR из Яндекса и попросила сделать тестовое на стажера фронтенд-разработчика.

Я его сделала, вот оно. По условию оно должно было работать на айфонах и андроидах, поэтому я проверила его в Browser Stack и дописала пару префиксов и css-стилей.

Через какое-то время поняла, что не хочу быть стажером, имея несколько лет опыта за плечами и зааплаилась в Я.Маркет через форму на их сайте.

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

На интервью я не смогла решить алгоритмические задачки, не знала внутренности JS и меня сбрили.

Это задело мою самооценку и весь следующий год параллельно с работой я учила JS на глубоком уровне и решала задачки на codewars. Здесь можно оценить мой прогресс.
Читать дальше →
Всего голосов 811: ↑715 и ↓96+619
Комментарии1017

Надежное хранилище с DRBD9 и Proxmox (Часть 1: NFS)

Время на прочтение11 мин
Количество просмотров33K

image


Наверное каждый, кто хоть раз озадачивался поиском высокопроизводительного software-defiined хранилища рано или поздно слышал про DRBD, а может даже и имел дело с ним.


Правда на пике популярности Ceph и GlusterFS, которые работают в принципе неплохо, а главное сразу и из коробки, все просто немного подзабыли про него. Тем более что предыдущая версия не поддерживала репликацию более чем на два узла, и из-за чего часто встречались проблемы со split-brain, что явно не добавило ему популярности.


Решение и правда не новое, но вполне конкурентоспособное. При относительно небольших затратах на CPU и RAM, DRBD предоставляет реально быструю и безопасную синхронизацию на уровне блочного устройства. За все это время LINBIT — разработчики DRBD не стоят на месте и постоянно дорабатывают его. Начиная с версии DRBD9 перестает быть просто сетевым зеркалом и становится чем-то бОльшим.


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


Например DRBD9 поддерживает до 32 реплик, RDMA, diskless-ноды, а новые инструменты оркестрации позволяют использовать снапшоты, online-миграцию и много чего другого.


Несмотря на то что DRBD9 имеет инструменты интеграции с Proxmox, Kubernetes, OpenStack и OpenNebula, на данный момент они находится в некотором переходном режиме, когда новые инструменты еще не везде поддерживаются, а старые уже очень скоро будут объявлены как deprecated. Речь идет о DRBDmanage и Linstor.


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

Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии9

Бредогенератор: создаем тексты на любом языке с помощью нейронной сети

Время на прочтение17 мин
Количество просмотров69K
Привет, Хабр.

Эта статья будет в немного «пятничном» формате, сегодня мы займемся NLP. Не тем NLP, про который продают книжки в подземных переходах, а тем, который Natural Language Processing — обработка естественных языков. В качестве примера такой обработки будет использоваться генерация текста с помощью нейронной сети. Создавать тексты мы сможем на любом языке, от русского или английского, до С++. Результаты получаются весьма интересными, по картинке уже наверно можно догадаться.



Для тех, кому интересно что получается, результаты и исходники под катом.
Читать дальше →
Всего голосов 41: ↑35 и ↓6+29
Комментарии67

«Находки аудиомана»: древо музыкальных жанров, ксилофон из GitHub-событий и эфиры спутников

Время на прочтение4 мин
Количество просмотров8.7K
В прошлый раз мы рассказывали о картах, на которые нанесена разного рода аудиоинформация. Продолжаем тему музыкальных находок и говорим о сервисах, в которых можно «залипнуть».

Всего голосов 16: ↑14 и ↓2+12
Комментарии1

Тренинг Cisco 200-125 CCNA v3.0. День 45. Настройка OSPF

Время на прочтение8 мин
Количество просмотров7.4K
На прошло видеоуроке мы изучили раздел 2.4 тематики ICND2, где я в очень доступной манере рассказал, как работает протокол OSPF, как формируются соседские отношения роутеров и создаются таблицы маршрутизации. Сегодня мы ещё немного рассмотрим теорию вопроса, после чего перейдём к Packet Tracer и займемся настройкой топологии сети.

Когда мы говорим об общей среде Shared medium, то чаще всего имеем в виду Интернет. Рассмотрим сеть, состоящую из 4-х роутеров, каждый из которых подключен к свитчу. Свитч представляет собой общую широковещательную среду, потому что благодаря свитчу сообщение, отправленное роутером R1, будут «слышать» все остальные устройства.



Все маршрутизаторы представляют собой OSPF-устройства, настроенные на восприятие мультикастового адреса. В этом заключается проблема, потому что в данной сети образуется слишком много трафика, ведь каждый роутер стремится поделиться с остальными всеми маршрутами, которые ему известны. Синхронизация LSDB затрачивает огромный объем трафика, это крайне неэффективное использование каналов связи и пустая трата пропускной способности. OSPF решает эту проблему, выбрав в широковещательном домене один из роутеров в качестве выделенного маршрутизатора Designated router D.R, а другой – в качестве резервного выделенного маршрутизатора Backup designated router, B.D.R. При этом роутеры делятся базами не каждый с каждым, а передают свои LSDB только DR, а тот уже делится ими с остальными устройствами. При этом сетевой трафик при использовании OSPF сокращается в разы.
Всего голосов 14: ↑13 и ↓1+12
Комментарии0

Душевный Mikrotik против бездушного РКН и такого же провайдера

Время на прочтение3 мин
Количество просмотров86K
Статья описывает способ получения доступа к ресурсам ошибочно попавшим под раздачу плюшек Роскомнадзором (далее РКН). Именно ошибочно попавшим. Мы законопослушные граждане и не ходим туда куда нам запрещают наши госорганы. Так что если вдруг вы решите воспользоваться способом для того что бы пойти на какие то “законно” заблокированные ресурсы, суровый меч правосудия возможно взметнется над вашей головой и я в этом не виноват, поскольку вот прямо сейчас я вас предупредил!
Читать дальше →
Всего голосов 58: ↑49 и ↓9+40
Комментарии91

Создаем на C++ выразительные умные указатели для удаленной памяти

Время на прочтение10 мин
Количество просмотров11K
Привет, Хабр!

Сегодня мы публикуем перевод интересного исследования о работе с памятью и указателями в C++. Материал немного академический, но явно будет небезынтересен читателям книг Галовица и Уильямса.

Следите за рекламой!
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии1

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

Время на прочтение5 мин
Количество просмотров21K

(с)

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

В последние годы благодаря технологическому прогрессу мы значительно продвинулись в исследованиях, и даже раскрыли несколько нейронных механизмов формирования оптических иллюзий (подробнее смотрите в первой части). Впереди еще больше открытий, в чем мы сегодня убедимся — для некоторых зрительных иллюзий до сих пор не предложено подтвержденного и правильно описанного научного объяснения.
Всего голосов 59: ↑54 и ↓5+49
Комментарии12

Ssh-chat

Время на прочтение5 мин
Количество просмотров20K

Привет, Хабр. Console chat отличная вещь, но для фронтендеров, а что если вы хотите такой же, но для бэкэнда. Если да, то эта статья для вас. Но какой инструмент часто используют в бэкенде? Правильно ssh, так что представляю sshchat.

Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии41

ООП, «святая троица» и SOLID: некоторый минимум знаний о них

Время на прочтение43 мин
Количество просмотров115K

Необходимое вступление


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


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


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


Тут мне могут возразить, что учить эти вещи в школе рановато, и вообще на ООП свет клином не сошёлся. Во-первых, это смотря как учить. Во-вторых, 70% материала этой статьи применимо не только к ООП. Что я буду отмечать отдельно.



Читать дальше →
Всего голосов 88: ↑82 и ↓6+76
Комментарии79

Химия жареной курочки. Детальный разбор

Время на прочтение2 мин
Количество просмотров45K
Для многих курица во фритюре одно из самых вкусных блюд, пусть и не самое полезное. Что же делает её такой вкусной?

image

Все дело в поведении масла при высоких температурах, а именно в протекающих химических процессах. В данном случае идет речь о полном погружении куриного мяса во фритюр, и температура масла при этом достигает 150 — 190 С.

Первым делом происходит процесс конвекции — нагретое масло со дна поднимается к поверхности, а более холодное, соответственно, в нижние слои, тем самым обеспечивается равномерная температура.

image
Читать дальше →
Всего голосов 79: ↑66 и ↓13+53
Комментарии51

Исследование глубин аннотаций типов в Python. Часть 1

Время на прочтение8 мин
Количество просмотров9.1K
C 2014 года, когда в Python появилась поддержка аннотаций типов, программисты работают над их внедрением в свой код. Автор материала, первую часть перевода которого мы публикуем сегодня, говорит, что по её оценке, довольно смелой, сейчас аннотации типов (иногда их называют «подсказками») используются примерно в 20-30% кода, написанного на Python 3. Вот результаты опроса, который она, в мае 2019, провела в Twitter.

Как оказалось, аннотации используют 29% респондентов. По словам автора статьи, в последние годы она всё чаще натыкается на аннотации типов в различных книгах и учебных руководствах.

Вторая часть



В документации по Python термины «type hint» («подсказка типа») и «type annotation» («аннотация типа») используются как взаимозаменяемые. Автор статьи пользуется, в основном, термином «type hint», мы — термином «аннотация типа».

В этом материале будет рассмотрен широкий спектр вопросов, касающихся использования аннотаций типов в Python. Если вы хотите обсудить оригинал статьи с автором — можете воспользоваться механизмом pull-запросов.
Читать дальше →
Всего голосов 39: ↑34 и ↓5+29
Комментарии7

Кот Шрёдингера без коробки: проблема консенсуса в распределённых системах

Время на прочтение13 мин
Количество просмотров24K
Итак, представим. В комнате заперты 5 котов, и чтобы пойти разбудить хозяина им необходимо всем вместе договориться между собой об этом, ведь дверь они могут открыть только впятером навалившись на неё. Если один из котов – кот Шрёдингера, а остальные коты не знают о его решении, возникает вопрос: «Как они могут это сделать?»

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


Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии20

Sampler. Консольная утилита для визуализации результата любых shell команд

Время на прочтение5 мин
Количество просмотров85K

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


Sampler


Наблюдение за изменением состояния в базе данных, мониторинг размера очередей, телеметрия с удаленных серверов, запуск деплой скриптов и получение нотификации по завершению — конфигурируется за минуту простым YAML файлом.


Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.

Читать дальше →
Всего голосов 298: ↑297 и ↓1+296
Комментарии54

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность