Данная статья преследует цель рассказать о новом походе к авторизации в облачных решениях, в основе которого лежит использование интерпретируемого языка определения политики управления доступом — который называется языком моделирования PERM (PML). Данный язык можно использовать для выражения различных моделей управления доступом, таких как список управления доступом (ACL), управление доступом на основе ролей (RBAC), управление доступом на основе атрибутов (ABAC) и других. А также рассказать о практическом воплощении этого подхода в виде конкретной реализации кросс-языковой библиотеки авторизации Casbin
Программист C++
Техдолг. Все говорят: «невозможно», а я говорю, что буду
Можно спросить, а причем здесь техдолг, если конференция DevOps? Холиварить об этом можно, например, в рамках DevOps-фуршета, но настолько ли это широкое понятие? Мы узнали, что Артем относит к техдолгу все изменения и доработки, инфраструктурные модификации и изменения процессов, изменения структур команд, направленные на устранение гэпов — которые были допущены (осознанно или нет) в рамках запуска продуктов и фич, и которые со временем сильно мешать жить.
А так как такие вещи невозможно исправить без твердой и уверенной спайки производственного и операционного цехов, то и получается, что эта история напрямую — про DevOps.
![](https://habrastorage.org/webt/10/0x/la/100xlavtavizmabumqn3pqfuzau.jpeg)
SLO и SLI на практике — что это такое, как внедрить и как контролировать на примере инструмента Instana
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/0ca/5a2/dda/0ca5a2dda8f6e7baabbaf2990f290784.png)
Сегодня мы хотим обсудить практическую сторону внедрения концепций Service Level Objectives и Service Level Indicators. Рассмотреть, что входит в понятия SLI, SLO и Error budget, как рассчитывать эти показатели, как за 7 шагов внедрить их отслеживание и как в последствии контролировать эти показатели на примере инструмента Instana.
Определимся с терминологией
Service Level Indicator (SLI) – это количественная оценка работы сервиса, как правило, связанная с удовлетворенностью пользователей производительностью приложения или сервиса за заданный период времени (месяц, квартал, год). А если говорить конкретнее – это индикатор пользовательского опыта, который отслеживает одну из многочисленных возможных метрик (рассмотрим их ниже) и, чаще всего, представляется в процентном эквиваленте, где 100 % - означает отличный пользовательский опыт, а 0% - ужасный.
Service Level Objectives (SLO) – это желаемое, целевое значение нашего SLI или группы SLI. При установке SLO необходимо указывать реально достижимое значение для каждого конкретного SLI. Ниже мы рассмотрим логику установки SLO на примере конкретных SLI.
Также важно понимать, что SLO – это наш внутренний показатель качества работы сервиса и/или приложения, в отличие от Service Level Agreement (SLA), который обычно устанавливается бизнесом как внешнее обязательство по доступности сервиса перед клиентами компании.
Scala 3: избавление от implicit. Тайпклассы
Моя предыдущая статья была про неявные преобразования и extension-методы. В этой статье обсудим новый способ объявления тайпклассов в Scala 3.
Научившись добавлять внешние методы к произвольным классам, мы хотим пойти еще глубже, а именно научиться приводить произвольные классы к "внешним" интерфейсам, то есть без непосредственного наследования от них. Эту задачу как раз решают тайпклассы.
Что вас на самом деле ждёт на курсе про алгоритмы в Яндекс.Практикуме
В этом посте мы разберем наши ошибки при создании первой версии курса, поговорим о том, чему мы научились (вдруг вам тоже пригодится), а также расскажем, что из себя представляет новая версия, для кого вообще этот курс и кому не надо на него идти.
![](https://habrastorage.org/webt/bt/2u/ca/bt2ucakp4hshhltokttf8v3vjcy.jpeg)
Итак, начнём с главного. Первую версию делали специалисты по алгоритмам для мидлов с уже какими-то знаниями. И это был основной фейл.
Изучение data science c нуля: этапы и вехи
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/aa0/c7b/cc0/aa0c7bcc077a92a6a7d36f1d3ce0d93b.png)
В соответствии с концепцией спирального подхода к обучению, о которой писал ранее, привожу поэтапный план освоения data science. План составлен так, чтобы каждый этап делал учащегося в той или иной степени лучше подготовленным к выполнению реальных задач. Такой подход вдохновлен идеологией Agile в том смысле, что сколько бы времени вы не уделили обучению и в какой бы момент не остановились - у вас будет наиболее востребованный набор знаний, из возможных к освоению за такое время.
Как я готовился к собеседованию в Google
![](https://habrastorage.org/webt/x8/ub/ha/x8ubhawrp_hajlvbel5ov5lejoq.jpeg)
Пост для мотивации: как я инвестирую в акции
Дисклеймер
- этот документ не является финансовым советом, прост личные мысли по поводу инвестиций, компаний
- почему я инвестирую в компании, а не крипту/недвиж/крышечки от пива (крипта, недвиж и крышечки у меня, конечно, есть): цель коммерческих компаний — зарабатывать деньги, цель валюты/крышечек — быть средством обмена, а недвиж/etc — заморозить $ где-то вокруг инфляции, ну или как-то так, я инженер, а не экономист, сильно не бейте ¯*(ツ)*/¯
- мои принципы инвестирования оч простые:
Опционы: расчет одношаговой биномиальной модели. Ликбез для гика, ч. 8
![](https://habrastorage.org/r/w780/getpro/habr/upload_files/c70/3d5/1fb/c703d51fbc19e116e3c22f5bf7679c9f.jpg)
Это третья часть рассказа про опционы, где мы поговорим про биномиальную модель, риск-нейтральную меру и разберёмся, как рассчитать цену опциона.
«Привет, мир»: разбираем каждый шаг хэш-алгоритма SHA-256
![](https://habrastorage.org/webt/cm/fw/iu/cmfwiu3xymlfb0b1zm7ts2mi8o8.png)
SHA-2 (Secure Hash Algorithm), в семейство которого входит SHA-256, — это один самых известных и часто используемых алгоритмов хэширования. В тексте подробно покажем каждый шаг работы этого алгоритма на реальном примере. SHA-2 отличается безопасностью (его тяжелее взломать, чем SHA-1) и скоростью.
Linux kernel development для самых маленьких
Любой программист знает, что теоретически он может внести свой посильный вклад в развитие Linux ядра. С другой стороны, подавляющее большинство уверено, что занимаются этим исключительно небожители, а процесс контрибьюта в ядро настолько сложен и запутан, что обычному человеку разобраться в нём нет никакой возможности. А значит, и надобности.
Сегодня мы попробуем развеять эту легенду и покажем, как абсолютно любой инженер при наличии достойной идеи, воплощённой в коде, может предложить ее на рассмотрение Linux community для включения в ядро.
Самописная криптуха: vulnerable by design, или история одного CTF-таска
Автор: Иннокентий Сенновский (rumata888)
Как заинтересовать студента скучным предметом? Придать учебе форму игры. Довольно давно кто-то придумал такую игру в области безопасности — Capture the Flag, или CTF. Так ленивым студентам было интереснее изучать, как реверсить программы, куда лучше вставить кавычки и почему проприетарное шифрование — это как с разбегу прыгнуть на грабли.
Студенты выросли, и теперь в этих «играх» участвуют и взрослые прожженные специалисты с детьми и ипотекой. Они многое успели повидать, поэтому сделать таск для CTF, чтобы «старики» не ныли, не самая простая задача.
А переборщишь с хардкором — и взвоют команды, у которых это непрофильная предметная область или первый серьезный CTF.
В статье я расскажу, как наша команда нашла баланс между «хм, нечто новенькое» и «это какая-то жесть», разрабатывая таск по крипте для финала CTFZone в этом году.
Финальный scoreboard CTFZone 2020
Математические основы кодирования и шифрования
![](https://habrastorage.org/webt/ch/vl/e8/chvle8yr7f0swtbgpldmrm2m7lg.jpeg)
Информационное взаимодействие абонентов в компьютерных и связных сетях подвергается возмущениям, которые приводят к возникновению ошибок и возмущений разного рода. Помимо возникновения ошибок в передаваемых сообщениях возможен несанкционированный доступ к содержанию сообщений нарушителя. Борьба с этими нежелательными явлениями ведется тысячелетиями, но с переменным успехом. Создатели Интернета задумывали его совсем не таким, каким он стал сейчас. О хакерах тогда и не думали.
Основные теоретические проблемы информационного противостояния, задачи по их решению возлагаются на теории кодологии, криптологии и стеганологии, в которых во всем мире интенсивно развиваются направления кодоанализа, криптоанализа и стегоанализа. Практические аспекты также не остаются в стороне, но замечу, что в РФ активность не очень-то высока, сказывается инертность молодых (сам я разменял уже 9-й десяток, но администрация Хабра ограничила возрастной ценз 1950 г). Мое мнение, конечно, ограничено наблюдением потомства (вплоть до правнуков) и общением в интернете, а также с обучаемыми и сотрудниками фирмы, где подрабатываю. СМИ тоже добавляют негатива. Кто из молодежи чуть поумнел, уходят за бугор. Поведение остальных видите сами.
65 бесплатных курсов по Machine Learning от ведущих университетов мира
![image](https://habrastorage.org/getpro/habr/post_images/bfa/292/267/bfa2922674222578915fd86afecfe1dd.jpg)
Картинка отсюда.
- Machine Learning от Stanford University
- Machine Learning Foundations: A Case Study Approach от University of Washington
- CS188.1x: Artificial Intelligence от University of California, Berkeley
- Practical Machine Learning от Johns Hopkins University
- Introduction to Artificial Intelligence от Stanford University
- Artificial Intelligence for Robotics от Stanford University
- Introduction to Machine Learning Course от Stanford University
CSS Grid: Верстаем адаптивный журнальный макет в 20 строк
![](https://habrastorage.org/webt/in/vy/fm/invyfmr9wggf_x3z20znmwfyn8y.png)
Недавно я работал над современной реализацией блогролла (перечня внешних полезных/интересных блогов). Замысел был в том, чтобы предоставить читателям подборку из последних постов в этих блогах, упакованную в журнальную вёрстку, а не сухой список ссылок в сайдбаре.
Самая простая часть задачи — получение списка постов и их эксцерптов (эксцерпт — вступительный текст до ката) с наших любимых RSS–фидов. Для этого мы воспользовались WordPress-плагином Feedzy lite, который умеет агрегировать несколько фидов в один список, отсортированный по времени — идеальное решение в нашем случае. Трудная же часть в том, чтобы сделать всё красиво.
Саморазвитие: как я не усидел на двух стульях и нашел третий
![](https://habrastorage.org/webt/i6/bc/cf/i6bccfjjor-fs0vrsqn0cchxxcq.jpeg)
Всем привет! Я руковожу командой антиспама в Mail.ru Group, а также несколькими группами по машинному обучению. Тема этой статьи — саморазвитие для тимлидов/руководителей, но на самом деле многие техники и рецепты совершенно не зависят от роли. Для меня этот вопрос очень актуален, так как машинное обучение развивается крайне стремительно, и чтобы хотя бы быть в теме, надо потратить уйму времени. Поэтому вопрос, как и на что тратить время для развития, стоит достаточно остро.
Контент статьи, разумеется, не истина в последней инстанции, а всего лишь описание результатов моего продолжающегося квеста, в котором изложены сработавшие для меня подходы, основанные на книгах и тренингах, на пробах и ошибках. Буду рад подискутировать с вами в комментариях.
Мир трехмерной гиперсферы. Геодезическая трассировка лучей в замкнутой вселенной со сферической геометрией
![](https://habrastorage.org/webt/jw/id/ay/jwidayclnpk-wguu08u8omxbams.jpeg)
Автоматическая реорганизация массивов в памяти графического ускорителя
О чем речь
В данном посте я бы хотел описать часть системы времени выполнения (RTS — RunTime System в дальнейшем) компилятора DVMH. Рассматриваемая часть, как видно из заголовка, относится к обработке пользовательских массивов на GPU, а именно, их автоматическая трансформация или реорганизация в памяти ускорителя. Данные преобразования делаются для эффективного доступа к памяти GPU в вычислительных циклах. Что такое DVMH, как можно подстраиваться под вычисления и почему это делается автоматически — описано далее.
Произведения и копроизведения
![](https://habrastorage.org/getpro/habr/post_images/257/ef2/101/257ef2101177d334d05615244cd560a2.jpg)
0. Теория категорий для программистов: предисловие
1. Категория: суть композиции
2. Типы и функции
3. Категории, большие и малые
4. Категории Клейсли
На КДПВ поросенок Петр заводит по одному трактору в каждый объект категории.
Следуй по стрелкам
Древнегреческий драматург Еврипид писал «Всякий человек подобен своему окружению». Это верно и для теории категорий. Выделить определенный объект категории можно только путем описания характера его взаимоотношений с другими объектами (и самим собой), где отношения — это морфизмы.
Для определения объектов в терминах их взаимоотношений теория категорий прибегает к т. н. универсальным конструкциям. Для этого можно выбрать некоторый шаблон, диаграмму из объектов и морфизмов определенной формы, и рассмотреть все подходящие под него конструкции рассматриваемой категории. Если шаблон достаточно распространен и категория достаточно велика, то, вероятно, найденных конструкций будет очень и очень много. Идея универсальной конструкции состоит в том, чтобы упорядочить конструкции по какому-то закону и выбрать наиболее подходящую.
Этот процесс можно сравнить с поиском в сети. Запрос пользователя — это наш шаблон. Если запрос не очень специфичен, то в ответ поисковая система выдаст множество подходящих документов, только часть из которых релевантны. Чтобы исключить нерелевантные ответы, пользователь уточняет запрос, что увеличивает точность поиска. В конце концов поисковая система проранжирует совпадения и, если повезет, искомый результат будет в самом начале списка.
Атомарная обработка блоков данных без блокировки
Основная идея такого метода заключается в том, что каждый поток использует отдельный буфер, в который копирует данные из основного буфера, обрабатывает их и затем меняет местами указатель на свой буфер с указателем на основной буфер.
Информация
- В рейтинге
- 5 616-й
- Зарегистрирован
- Активность