Как стать автором
Поиск
Написать публикацию
Обновить
0
Pilat @Pilat

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

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

Внедрение Guards NestJS. Аутентификация и авторизация на основе ролей

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров7.1K

На данный момент об инструменте guards защиты данных не так  много публикаций как он того заслуживает. В основном это техническая документация от разработчика https://docs.nestjs.com/guards . Для восполнения указанного пробела рассмотрим  наш  кейс по внедрению guards  для защиты данных от пользователя, который не имеет достаточно прав на их получение и/или изменение. Описание процедуры внедрения guards сопровождается примерами кода.

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

Итак, аутентификация - это процесс проверки личности пользователя или устройства, позволяющий получить авторизованный доступ к конфиденциальной информации или системам. То есть проверка, что вы действительно тот человек, за которого себя выдаёте.

Авторизация - это процесс определения наличия у пользователя или устройства необходимых прав для доступа к определённому ресурсу, в нашем случае к запросам (Mutation, Query...).

Функции guards

Guards определяют, будет ли запрос обрабатываться маршрутизатором или нет, в зависимости от определённых условий (в нашем случае ролей). Это часто называют авторизацией.  Авторизация обычно обрабатывается промежуточным программным обеспечением в традиционных приложениях Express. Но промежуточное ПО по своей природе ограничено. Оно не знает, какой обработчик будет выполнен после вызова next() функции. С другой стороны, guards имеют доступ к ExecutionContext экземпляру и, таким образом, точно знают, что будет выполняться дальше. Они спроектированы так,  чтобы вставить логику обработки точно в нужную точку цикла запроса/ответа и делать это декларативно.

Читать далее

Open Source решение на React для быстрого создания панели управления в проекте

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

Мы занимаемся разработкой на аутсорсе. Часто стартуем новые проекты. Не работаем с готовыми CMS – всё на фреймворках с нуля, обычно PHP, node.js у нас на бекенде. В таких проектах постоянно требуется создавать панель управления. 

В 90% случаев это довольно однотипные таблички и формы. Процесс их создания превращается в рутину. В остальных 10% встречаются и сложные задачи, которые требуется реализовать в панели управления: особенные интерфейсы, логику. 

Мы искали инструмент, чтобы клепать однотипные админки, но при необходимости создавать и кастомные решения. У нас были такие требования:

Читать далее

Быстрые дашборды на Python с помощью DashExpress

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров9.5K

Привет! Эта статья для тех, кто ищет простой и быстрый способ делать полноценные дашборды на python и ad-hoc дашборды прямо в jupiter notebook. А так же для всех, кто интерсуется Plotly Dash.

Поехали

Итак, вы установили fzf. Что дальше?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров24K

Разработчики ПО — если не единственные, то практически единственные, кому очень просто создавать инструменты для улучшения своей профессиональной работы; однако со временем это усложняет жизнь людям, постоянно переключающимся между разными инструментами и не вкладывающим время в глубокое изучение своего инструментария. Имея глубокое уважение к негласным знаниям людей лучше меня, я всё же считаю, что отличная эвристика 80/20 заключается в том, чтобы изучать старые добрые инструменты Unix cat, ls, cd, grep и cut. (а если вам повезло устроиться на должность настоящего современного сисадмина, то ещё и sed с awk.)

Однако существуют инструменты, выгода от использования которых настолько мгновенна и ценность от применения настолько уникальна, что эвристика 80/20 полностью к ним неприменима. Один из них — это fzf. И меня очень печалит то, что многие скачивают его, запускают в командной строке «как есть», а потом просто мотают головой и произносят: «Я не понимаю».

Мне хотелось бы изменить ситуацию. Предположим, что вы работаете на более-менее стандартной машине с Ubuntu. Вы только что установили fzf при помощи стандартного скрипта установки. Что же дальше?
Читать дальше →

Четыре способа написать Hello world, или инструменты для создания GUI на Python

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров62K

После написания программы ее можно модифицировать и добавить графический интерфейс — с Python это проще, чем кажется. Для программирования красивого и функционального GUI иногда достаточно простого знания html и css.

Под катом — подборка некоторых инструментов для создания интерфейсов на Python. Сохраняйте статью в закладки и предлагайте свои варианты в комментариях!
Читать дальше →

Опенсорс-библиотеки для Python: 40+ вариантов, как упростить жизнь начинающего дата-сайентиста

Уровень сложностиПростой
Время на прочтение22 мин
Количество просмотров15K

Для Python существует более 137 тысяч библиотек с открытым исходным кодом, автоматизирующих работу в разных областях — от отдельных рутинных рабочих процессов в компаниях до создания сложных многофункциональных приложений. Одна из самых популярных областей применения «змеиного языка» — наука о данных, а также задачи, связанные с искусственным интеллектом и машинным обучением.

В этой обширной «шпаргалке» для начинающих AI/ML специалистов мы собрали опенсорсные библиотеки Python, сгруппированные по областям практического применения. Этот список с кратким описанием функций каждого инструмента будет полезен всем, кто постоянно работает с «Питоном» и ищет эффективные инструменты для решения возникающих задач.

Читать далее

Семантическая сегментация на основе архитектуры U-Net и определение расстояния между объектами

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров20K

Всем привет!

Возвращаясь к бытовому применению нейронных сетей, изначально была идея усовершенствовать модель детекции свободного парковочного места из предыдущей моей статьи (Определение свободного парковочного места с помощью Computer Vision), сделать возможность сегментации дороги, тротуара и исключать из парковочных мест, автомобили, которые стоят на газоне (было несколько гневных комментариев на этот счёт).

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

Модель на базе U-Net архитектуры сегментирует различные объекты (кот, стул, стол, тарелка с котлетами итд) и при сближении двух объектов сегментации (кот - тарелка) модель сигнализирует об этом с помощью телеграмм бота.

Отлично, задача поставлена, теперь реализация!

Читать далее

9 ИИ-сервисов в помощь разработчику: используем возможности нейросетей на полную

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

Недавно мы публиковали статью «Плагины ChatGPT, которые помогут в работе — и не только программистам». В ней говорилось о плагинах ChatGPT, которые серьёзно облегчают жизнь большинству специалистов, связанных с IT. Сегодня давайте обсудим сервисы, которые предназначены для помощи исключительно программистам. С каждым днём таких сервисов всё больше, и наиболее интересные из них мы разместили в новой подборке.

Читать далее

Технологии создания МикроЭлектроМеханических (МЭМС) устройств

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров11K
Картинка Vecstock, Freepik

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

В этой статье мы рассмотрим методы создания подобных элементов, а также кратко рассмотрим их виды.
Читать дальше →

Линейная алгебра самым простым языком с добавлением фишек из Python (часть 1)

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров12K

Линейная алгебра является одним из самым интересных направлений в математике. В этой статье мы узнаем как выглядит матрица, как ее задать в Python и базовые операции с ними.

Читать далее

Самодельная отладочная плата на базе STM32G431CB — STM32G431 DevBoard V1.1

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров14K

Ищите дешёвую и удобную в использовании отладочную плату на базе STM32G431CB? Предлагаю вам следующее решение... (К статье прилагаются: схема электрическая принципиальная, перечень элементов, сборочный чертёж печатной платы, производтсвенные файлы).

Перейти к статье

easypy – неизвестная библиотека для борьбы с boiler-plate на python

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров4.7K

Если занимаетесь автотестами на python, часто работаете с многопоточностью и хотите уменьшить количество boiler-plate кода в ваших тестах – имеет смысл посмотреть на библиотеку easypy.  

Читать далее

Плагины ChatGPT, которые помогут в работе — и не только программистам

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

О нейросетях не писал только ленивый, причём тон статей меняется от откровенно пренебрежительного до восхищения возможностями нейронок. Мы же решили сделать практичный пост и показать инструменты, которые помогут в работе, как и говорилось в заголовке, не только программистам. Речь идёт о плагинах ChatGPT, которые могут пригодиться многим. Подробности — под катом.

Читать далее

Свой стек навигации. Лучше чем у ROS?

Время на прочтение17 мин
Количество просмотров8.1K
Это вторая статья команды setUP про наш опыт создания автономных роботов для соревнований Eurobot Open и использования для этого ROS.

Первая статья про механику и общую архитектуру роботов.

Роботы ездят по ровному полю и большинство препятствий заранее известно, однако, коварные противники могут попытаться украсть наши ресурсы (да и мы не прочь иногда полакомиться парой десяткой дополнительных баллов), при этом мы хотим проехать к желаемой точке как можно быстрее и не задеть препятствия. С внешней камеры на поле мы получаем данные о положении противника и знаем, где он сейчас находится. Однако, мало знать его положение — нужно уметь использовать эту информацию.

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


Локализация по Aruco маркерам

Время на прочтение14 мин
Количество просмотров20K
В прошлом посте мы рассказали, как проехать из точки А в точку Б, не задев при этом ничего. Но, чтобы что-то объехать, нужно понять, где находимся мы сами, и где находятся динамические препятствия (наши противники и не только).

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

Сегодня мы расскажем про то, как решали проблему определения положения роботов на поле Eurobot, как всё это сделать, запустить и настроить под себя.


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

Распознайте это немедленно

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров4.3K

Качественным, быстрым, устойчивым  - именно таким должен быть распознаватель! 

Всем привет! Распознаватель строки - элемент системы распознавания, о котором в первую очередь подумает обыватель, услышав о распознавании документов. А учитывая нынешний хайп вокруг нейронных сетей многим обязательно представится какая-то магия, замешанная на трансформерах и рекуррентности. Однако, как известно, магия вне Хогвартса запрещена и может быть опасна. Так что сегодня хотим рассказать, почему мы не используем рекуррентность и трансформеры в нашей системе и как же мы всё-таки получаем высокое качество. И приведем несколько замеров.

Поехали

Чат-бот на ChatGPT в энтерпрайз: чего нам это стоит?

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров9.2K

В М2 большой объём письменной коммуникации с клиентами. Это и ответы на общие вопросы — о компании, процессах подбора и покупки недвижимости, — и обсуждение конкретных деталей запущенных сделок. К примеру, клиенты хотят знать, в каком отделении банка они будут подписывать документы, пришли ли деньги продавцу, прошёл ли объект недвижимости проверки перед продажей.

Работа с вопросами происходит в тикет-системе клиентской поддержки (UseDesk). Для каждого вопроса через любой канал коммуникации (e-mail, мессенджеры, чат на сайте) заводится обращение, и сотрудник экспертной поддержки отвечает на него с определённым SLA. 

Для оптимизации работы с обращениями процесс разделён на 3 линии поддержки. Первая линия отвечает только на вопросы без привязки к продукту и не знает о конкретных сделках. Она обрабатывает порядка 10 000 обращений в месяц. Вторая линия знает о продуктах и отвечает на вопросы по сделкам, таких обращений около 3 000 в месяц. Третья линия — это уже команды продуктов, до них доходят единичные вопросы.

Вопросы к первой линии поддержки и частично ко второй  — однотипные, их обработку можно автоматизировать и сократить тем самым затраты на поддержание бизнес-процесса. 

Так выглядел контекст проблемы, с которой вышла на внутренний хакатон наша команда из трёх человек. 

Кстати, интересно ваше мнение, как бы вы подошли к решению задачи по автоматизации такого бизнес-процесса? Напишите в комменты или личку. 

Читать далее

«Ростех» разработал «независимую сеть передачи данных для беспилотников»

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров45K

Сегодня у меня есть особенная история, которую хотел бы поделиться с вами. Я являюсь одним из разработчиков проекта Meshtastic, и сегодня я обнаружил, что российская госкорпорация "Ростех" представила уникальную "разработку" – mesh-терминал, который выглядит удивительно знакомо для любого энтузиаста использующего Meshtastic, о котором @NanoVHF выпустил цикл статей на Хабре.

Читать далее

Карманный ПК своими руками

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров41K

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

Карманные ПК всегда занимали в моём сердце особое место. Первым был Palm III, а чуть позже я стал обладателем Sharp HC-4500. Меня заинтересовали проекты Yarh.io, и в начале этого года я задумал купить uConsole. Предполагалось, что этот девайс будет отправлен в марте, но заказ всё ещё находится на стадии подготовки. Так что, вооружившись множеством идей и сильной мотивацией, я приступил к реализации собственного проекта по сборке карманного ПК: Decktility.
Читать дальше →

Логи из Linux в Zabbix. Подробнейшая инструкция

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров23K

Не смог найти нормальную актуальную инструкцию по мониторингу линуксовых логов заббиксом - сделал свою, под 6.4.

И отвлекусь на установку агента - не зря же писал скрипт...

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность