Pull to refresh
0
Pilat @Pilat

User

Send message

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

Level of difficultyMedium
Reading time5 min
Views3.7K

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

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

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

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

Функции guards

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

Читать далее
Total votes 7: ↑5 and ↓2+3
Comments3

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

Reading time5 min
Views9.8K

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

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

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

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments0

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

Level of difficultyEasy
Reading time5 min
Views6.9K

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

Поехали
Total votes 6: ↑6 and ↓0+6
Comments15

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

Level of difficultyEasy
Reading time4 min
Views18K

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

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

Мне хотелось бы изменить ситуацию. Предположим, что вы работаете на более-менее стандартной машине с Ubuntu. Вы только что установили fzf при помощи стандартного скрипта установки. Что же дальше?
Читать дальше →
Total votes 54: ↑54 and ↓0+54
Comments25

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

Level of difficultyEasy
Reading time5 min
Views32K

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

Под катом — подборка некоторых инструментов для создания интерфейсов на Python. Сохраняйте статью в закладки и предлагайте свои варианты в комментариях!
Читать дальше →
Total votes 56: ↑53 and ↓3+50
Comments61

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

Level of difficultyEasy
Reading time22 min
Views11K

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

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

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments0

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

Level of difficultyMedium
Reading time7 min
Views10K

Всем привет!

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

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

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

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

Читать далее
Total votes 28: ↑28 and ↓0+28
Comments10

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

Reading time4 min
Views35K

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

Читать далее
Total votes 16: ↑13 and ↓3+10
Comments1

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

Level of difficultyMedium
Reading time11 min
Views9.6K
Картинка Vecstock, Freepik

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

В этой статье мы рассмотрим методы создания подобных элементов, а также кратко рассмотрим их виды.
Читать дальше →
Total votes 58: ↑58 and ↓0+58
Comments3

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

Level of difficultyEasy
Reading time3 min
Views10K

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

Читать далее
Total votes 20: ↑11 and ↓9+2
Comments9

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

Level of difficultyMedium
Reading time10 min
Views10K

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

Перейти к статье
Total votes 38: ↑37 and ↓1+36
Comments19

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

Level of difficultyEasy
Reading time6 min
Views4.5K

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

Читать далее
Total votes 1: ↑1 and ↓0+1
Comments1

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

Reading time4 min
Views11K

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

Читать далее
Total votes 19: ↑15 and ↓4+11
Comments2

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

Reading time17 min
Views7.4K
Это вторая статья команды setUP про наш опыт создания автономных роботов для соревнований Eurobot Open и использования для этого ROS.

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

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

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


Total votes 12: ↑12 and ↓0+12
Comments4

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

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

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

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


Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments0

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

Level of difficultyMedium
Reading time11 min
Views3.1K

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

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

Поехали
Total votes 5: ↑5 and ↓0+5
Comments0

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

Level of difficultyMedium
Reading time18 min
Views8.4K

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

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

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

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

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

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

Читать далее
Total votes 15: ↑13 and ↓2+11
Comments7

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

Level of difficultyEasy
Reading time2 min
Views43K

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

Читать далее
Total votes 179: ↑174 and ↓5+169
Comments128

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

Level of difficultyMedium
Reading time7 min
Views34K

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

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

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

Level of difficultyEasy
Reading time4 min
Views15K

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

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

Читать далее
Total votes 14: ↑12 and ↓2+10
Comments21

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity