- Разобраться в описаниях и спецификациях устройств шифрования
- Отличить «бумажные» характеристики от действительно важных в реальной жизни
- Выйти за рамки привычного набора вендоров и включить в рассмотрение любые продукты, подходящие для решения поставленной задачи
- Задать правильные вопросы на переговорах
- Составить тендерные требования (RFP)
- Понять, какими характеристиками придется пожертвовать, если будет выбрана какая-то модель устройства
Пользователь
Xcode 11 и XCFrameworks: новый формат упаковки фреймворков
В жизни многих компаний, которые имеют и развивают свой стек библиотек и компонентов, наступает момент, когда объёмы этого стека становится сложно поддерживать.
В случае разработки под платформу iOS, да и в целом, экосистему Apple, есть два варианта подключать библиотеки в качестве зависимостей:
- Собирать их каждый раз при сборке приложения.
- Собирать их заранее, используя уже собранные зависимости.
При выборе второго подхода становится логичным использовать CI/CD системы для сборки библиотек в готовые к употреблению артефакты.
Однако, необходимость собирать библиотеки под несколько платформ или архитектур процессора в экосистеме Apple, зачастую, требует проводить не всегда тривиальные операции, как при сборке библиотеки, так и конечного продукта, который её использует.
На этом фоне, было сложно не заметить и крайне интересно изучить, одно из нововведений от Apple, представленное на WWDC 2019 в рамках презентации Binary Frameworks in Swift — формат упаковки фреймворков — XCFramework.
XCFramework имеет несколько преимуществ, в сравнении с устоявшимися подходами:
- Упаковка зависимостей под все целевые платформы и архитектуры в единый bundle из коробки.
- Подключение bundle в формате XCFramework, как единой зависимости для всех целевых платформ и архитектур.
- Отсутствие необходимости в сборке fat/universal фреймворка.
- Нет необходимости избавляться от x86_64 слайсов (slice) перед загрузкой конечных приложений в AppStore.
В этой статье мы расскажем, зачем был внедрён этот новый формат, что он из себя представляет, а также, что он даёт разработчику.
Трёхпроходные протоколы
Предыдущие темы:
- Криптографические протоколы: определения, запись, свойства, классификация, атаки
- Протоколы распространения ключей на симметричных шифрах
Если между Алисой и Бобом существует канал связи, недоступный для модификации злоумышленником (то есть когда применима модель только пассивного криптоаналитика), то даже без предварительного обмена секретными ключами или другой информацией можно воспользоваться идеями, использованными ранее в криптографии на открытых ключах. После описания RSA в 1978 году, в 1980 Ади Шамир предложил использовать криптосистемы, основанные на коммутативных операциях, для передачи информации без предварительного обмена секретными ключами. Если предположить, что передаваемой информацией является выработанный одной из сторон секретный сеансовый ключ, то в общем виде мы получаем следующий трёхпроходной протокол.
Анатомия акустических систем: металлокерамика и композиты — о диффузорах Monitor Audio
Британская компания Monitor Audio известна, как один из таких производителей. На счету британцев сразу несколько технологий, позволяющих радикально увеличить качество воспроизведения звука, при этом не жертвуя КПД. АС от Monitor Audio я считаю одними из самых технологически емких в мире и, пожалуй, наиболее инновационными среди аналогичных устройств от европейских производителей. Внушительная часть инноваций и технологий относится к материалам диффузоров. Под катом речь об этих технологиях и свойствах, которые можно получить благодаря их применению.
Генетика любви: межполовой конфликт как основа сотрудничества в парах моногамных птиц
Отношения между партнерами, наполненные заботой, знаками внимания и сопереживанием, поэты называют любовью, а вот биологи — межполовой взаимосвязью, нацеленной на выживание и продолжение рода. Одни виды предпочитают брать количеством — размножаться с как можно большим числом партнеров, чтобы увеличить потомство, тем самым повысив шансы на выживание всего вида. Другие же создают моногамные пары, которые могут прекратить свое существование лишь после смерти одного из партнеров. Многие годы ученые считали, что первый вариант значительно выгоднее, но это не совсем так. Моногамные пары, как правило, совместно воспитывают потомство, т.е. защищают его от хищников, добывают пищу и учат определенным навыкам, тогда как в полигамных отношениях все это чаще всего ложится на хрупкие плечи самок. Конечно, бывают исключения, но сегодня не о них. Биологов долгое время интересовал другой занятный момент — самцы продолжают проявлять знаки внимания в адрес самок, даже когда их пара уже сформирована и существует несколько лет. Чем обусловлено такое поведение, какая от этого выгода и какие эволюционные аспекты с этим связаны? На эти вопросы мы найдем ответы в докладе исследовательской группы. Поехали.
Надежное хранилище с DRBD9 и Proxmox (Часть 2: iSCSI+LVM)
В предыдущей статье я рассмотрел возможность создания отказоустойчивого NFS-сервера с помощью DRBD и Proxmox. Получилось довольно неплохо, но не будем останавливаться на достигнутом и теперь постараемся "выжать все соки" из нашей хранилки.
В этой статье я расскажу как подобным образом создать отказоустойчивый iSCSI-таргет, который при помощи LVM мы будем нарезать на маленькие кусочки и использовать под виртуальные машины.
Именно такой подход позволят снизить нагрузку и повысить скорость доступа к данным в несколько раз, это бывает особенно выгодно когда не требуется конкурентный доступ к данным, например в случае когда вам нужно организовать хранилище под виртуальные машины.
Как я проработала 3 месяца в Я.Маркете и уволилась
Первая попытка
Все началось с того, что я люблю ходить по конференциям и частенько хожу на них в Яндекс, Mail.ru и другие крупные компании. Однажды мне написал HR из Яндекса и попросила сделать тестовое на стажера фронтенд-разработчика.
Я его сделала, вот оно. По условию оно должно было работать на айфонах и андроидах, поэтому я проверила его в Browser Stack и дописала пару префиксов и css-стилей.
Через какое-то время поняла, что не хочу быть стажером, имея несколько лет опыта за плечами и зааплаилась в Я.Маркет через форму на их сайте.
Мне позвонила HR и предложила пройти скайп-интервью с лайвкодингом. Перед собеседованием я повторила структуры данных, сложность алгоритмов, сортировки. Тогда я еще не знала, что этого недостаточно.
На интервью я не смогла решить алгоритмические задачки, не знала внутренности JS и меня сбрили.
Это задело мою самооценку и весь следующий год параллельно с работой я учила JS на глубоком уровне и решала задачки на codewars. Здесь можно оценить мой прогресс.
Надежное хранилище с DRBD9 и Proxmox (Часть 1: NFS)
Наверное каждый, кто хоть раз озадачивался поиском высокопроизводительного 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.
Бредогенератор: создаем тексты на любом языке с помощью нейронной сети
Эта статья будет в немного «пятничном» формате, сегодня мы займемся NLP. Не тем NLP, про который продают книжки в подземных переходах, а тем, который Natural Language Processing — обработка естественных языков. В качестве примера такой обработки будет использоваться генерация текста с помощью нейронной сети. Создавать тексты мы сможем на любом языке, от русского или английского, до С++. Результаты получаются весьма интересными, по картинке уже наверно можно догадаться.
Для тех, кому интересно что получается, результаты и исходники под катом.
«Находки аудиомана»: древо музыкальных жанров, ксилофон из GitHub-событий и эфиры спутников
Тренинг Cisco 200-125 CCNA v3.0. День 45. Настройка OSPF
Когда мы говорим об общей среде Shared medium, то чаще всего имеем в виду Интернет. Рассмотрим сеть, состоящую из 4-х роутеров, каждый из которых подключен к свитчу. Свитч представляет собой общую широковещательную среду, потому что благодаря свитчу сообщение, отправленное роутером R1, будут «слышать» все остальные устройства.
Все маршрутизаторы представляют собой OSPF-устройства, настроенные на восприятие мультикастового адреса. В этом заключается проблема, потому что в данной сети образуется слишком много трафика, ведь каждый роутер стремится поделиться с остальными всеми маршрутами, которые ему известны. Синхронизация LSDB затрачивает огромный объем трафика, это крайне неэффективное использование каналов связи и пустая трата пропускной способности. OSPF решает эту проблему, выбрав в широковещательном домене один из роутеров в качестве выделенного маршрутизатора Designated router D.R, а другой – в качестве резервного выделенного маршрутизатора Backup designated router, B.D.R. При этом роутеры делятся базами не каждый с каждым, а передают свои LSDB только DR, а тот уже делится ими с остальными устройствами. При этом сетевой трафик при использовании OSPF сокращается в разы.
Душевный Mikrotik против бездушного РКН и такого же провайдера
Когнитивное выпрямление 2: изучаем иллюзии и искажения
(с)
Сотни лет исследователи обсуждали, какие неизвестные процессы в глазах, мозге или за пределами человеческого тела вызывают иллюзии. Поскольку измерить такого рода физиологические реакции очень непросто, до недавнего времени невозможно было досконально изучить корреляции между иллюзиями и их физиологическими предшественниками.
В последние годы благодаря технологическому прогрессу мы значительно продвинулись в исследованиях, и даже раскрыли несколько нейронных механизмов формирования оптических иллюзий (подробнее смотрите в первой части). Впереди еще больше открытий, в чем мы сегодня убедимся — для некоторых зрительных иллюзий до сих пор не предложено подтвержденного и правильно описанного научного объяснения.
Ssh-chat
Привет, Хабр. Console chat отличная вещь, но для фронтендеров, а что если вы хотите такой же, но для бэкэнда. Если да, то эта статья для вас. Но какой инструмент часто используют в бэкенде? Правильно ssh, так что представляю sshchat.
ООП, «святая троица» и SOLID: некоторый минимум знаний о них
Необходимое вступление
Я не гарантирую, что изложенные здесь трактовки общепринятых терминов и принципов совпадают с тем, что изложили в солидных научных статьях калифорнийские профессора во второй половине прошлого века. Я не гарантирую, что мои трактовки полностью разделялись или разделяются большинством IT-профессионалов в отрасли или научной среде. Я даже не гарантирую, что мои трактовки помогут вам на собеседовании, хоть и предполагаю, что будут небесполезны.
Но я гарантирую, что если отсутствие всякого понимания заменить моими трактовками и начать их применять, то код вами написанный будет проще сопровождать и изменять. Так же я прекрасно понимаю, что в комментариях мной написанное будут яростно дополнять, что позволит выправить совсем уж вопиющие упущения и нестыковки.
Столь малые гарантии поднимают вопросы о причинах, по которым статья пишется. Я считаю, что этим вещам должны учить везде, где учат программированию, вплоть до уроков информатики в школах с углублённым её изучением. Тем не менее, для меня стала пугающе нормальной ситуация, когда я узнаю, что собеседник мой коллега, причём работающий уже не первый год, но про инкапсуляцию «что-то там слышал». Необходимость собрать всё это в одном месте и давать ссылку при возникновении вопросов зрела давно. А тут ещё и мой «pet-project» дал мне изрядно пищи для размышлений.
Тут мне могут возразить, что учить эти вещи в школе рановато, и вообще на ООП свет клином не сошёлся. Во-первых, это смотря как учить. Во-вторых, 70% материала этой статьи применимо не только к ООП. Что я буду отмечать отдельно.
Химия жареной курочки. Детальный разбор
Все дело в поведении масла при высоких температурах, а именно в протекающих химических процессах. В данном случае идет речь о полном погружении куриного мяса во фритюр, и температура масла при этом достигает 150 — 190 С.
Первым делом происходит процесс конвекции — нагретое масло со дна поднимается к поверхности, а более холодное, соответственно, в нижние слои, тем самым обеспечивается равномерная температура.
Исследование глубин аннотаций типов в Python. Часть 1
Как оказалось, аннотации используют 29% респондентов. По словам автора статьи, в последние годы она всё чаще натыкается на аннотации типов в различных книгах и учебных руководствах.
→ Вторая часть
В документации по Python термины «type hint» («подсказка типа») и «type annotation» («аннотация типа») используются как взаимозаменяемые. Автор статьи пользуется, в основном, термином «type hint», мы — термином «аннотация типа».
В этом материале будет рассмотрен широкий спектр вопросов, касающихся использования аннотаций типов в Python. Если вы хотите обсудить оригинал статьи с автором — можете воспользоваться механизмом pull-запросов.
Кот Шрёдингера без коробки: проблема консенсуса в распределённых системах
В этой статье я простым языком расскажу вам о теоретической составляющей мира распределённых систем и принципах их работы. А также поверхностно рассмотрю главную идею, лежащую в основе Paxos'а.
Sampler. Консольная утилита для визуализации результата любых shell команд
В общем случае с помощью shell команды можно получить любую метрику, без написания кода и интеграций. А значит в консоли должен быть простой и удобный инструмент для визуализации.
Наблюдение за изменением состояния в базе данных, мониторинг размера очередей, телеметрия с удаленных серверов, запуск деплой скриптов и получение нотификации по завершению — конфигурируется за минуту простым YAML файлом.
Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность