Pull to refresh
0
0
Ласкин Дмитрий @eshimischi

Fullstack разработчик

Send message

Auth service без библиотек

Level of difficultyMedium
Reading time8 min
Views5.3K

О чем эта статья: статья посвящена схемам регистрации, аутентификации, авторизации пользователей в веб приложениях, смене паролей, отзыве токенов, и т. п. Мы также рассмотрим, как организовать хранение данных, обсудим, что такое JWT, коротко поговорим о «сервисе для отправки email»

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

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

Читать далее
Total votes 8: ↑8 and ↓0+9
Comments3

Хранение данных в Postgresql

Level of difficultyMedium
Reading time10 min
Views11K

В этом тексте хочется подробнее рассмотреть хранение данных в PostgreSQL на физическом уровне.

Для начала определимся с общеизвестными вещами. Данные хранятся в таблицах, таблицы находятся в схемах, схемы, в свою очередь, в базах данных. Под данными я тут подразумеваю одну или несколько строк. В качестве примера будем рассматривать эталон критики, по моему личному мнению, цитаты Линуса Торвальдса.

Подробнее под катом
Total votes 16: ↑15 and ↓1+18
Comments3

Фреймворки для работа с данными на Rust. Часть 1

Level of difficultyEasy
Reading time5 min
Views1.7K

Привет, Хабр!

Если бы мне сказали, что я однажды заменю привычный Python или Scala для работы с данными на Rust, я бы, пожалуй, ухмыльнулся и продолжил привычное дело. Но времена меняются, и Rust вполне уверенно пробивает себе дорогу в мир больших данных. Сегодня я расскажу вам о трех фреймворках, которые делают Rust конкурентом в обработке данных.

Читать далее
Total votes 9: ↑7 and ↓2+9
Comments0

Как сделать и настроить собственный VPN

Level of difficultyEasy
Reading time6 min
Views49K

В статье рассмотрим четыре способа создания собственного VPN. Начнем с самого простого варианта, что под силу даже начинающим пользователям ПК.

Читать далее
Total votes 36: ↑35 and ↓1+41
Comments77

Деплой в Docker Swarm

Level of difficultyMedium
Reading time15 min
Views6.4K

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

Расскажу:

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

Читать далее
Total votes 14: ↑13 and ↓1+19
Comments20

Деплой сайта в облако за 4 команды в IDE

Level of difficultyMedium
Reading time4 min
Views3.7K

Доброго времени суток! Думаю, у всех, кто начинал свой путь в сферу веб-разработки, было желание захостить свою работу. В этот раз мы попробуем максимально быстро задеплоить сайт-одностраничник.

Эта статья создана для новичков, которые смогут просто скопировать код и в “два клика” опубликовать сайт.

Читать далее
Total votes 14: ↑11 and ↓3+12
Comments3

Сборка Min.io dev кластера в контейнерах

Level of difficultyEasy
Reading time18 min
Views3.8K

Сборка Min.io dev кластера в контейнерах с tls, site replication, nginx и мониторингом.

Статья представляет собой пошаговое руководство для разворачивания кластерного minio в контейнерах от bitnami. Доступ в кластер будет организован через nginx. Также рядом развернем однонодный minio. Объединим эти 2 minio с помощью site-replication. Создадим тестового пользователя, тестовую политику, тестовый бакет и попробуем с ним работать. Закончим настройкой мониторинга: дефолтные prometheus для сборки метрик и grafana для отрисовки дашбордов.

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

Обучение разработке чат-ботов Telegram: топ-15 курсов

Level of difficultyEasy
Reading time10 min
Views15K


Чат-боты Telegram — одна из новых модных технологий, которые сейчас на хайпе. Маркетологи внедряют чат-ботов в CRM и в мессенджеры. Все фирмы хотят использовать LLM, поувольнять «лишних» сотрудников и сэкономить. В общем, сейчас это востребованная фишка, на которую большой спрос.

Чат-боты выполняют рутинную работу, привлекают клиентов и разгружают труд владельцев и работников бизнеса. Каждая организация нуждается в собственном боте. Таких организаций миллионы, а разработчиков не хватает катастрофически.
Читать дальше →
Total votes 21: ↑17 and ↓4+20
Comments14

CI/CD Kubernetes платформа Gitorion. Highly Available кластер Kubernetes

Level of difficultyMedium
Reading time4 min
Views1.8K

Привет, всем! Мы продолжаем наш цикл статей про CI/CD Kubernetes платформу Gitorion. На очереди освещение шагов по построению платформы в Highly Available исполнении. Поскольку все компоненты платформы и пользовательские приложения запускаются в Kubernetes, начнем c построения Highly Avalable кластера Kubernetes. В статье разберем особенности штатной базы данных Kubernetes etcd, не позволившие избежать избыточности. Рассмотрим способ заменить etcd на SQL-базу с помощью Kine от проекта K3S и построить кластер Kubernetes высокой доступности на два дата центра, способный пережить падение любого из них.

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

Настройка Git сервера с нуля

Level of difficultyEasy
Reading time12 min
Views12K

Любой начинающий DevOps начинает своё знакомство с Git. Этот инструмент стал неотъемлемой частью рабочего процесса разработчиков по всему миру. Во многих курсах и руководствах по DevOps описывается настройка серверов через популярные платформы, такие как GitLab, а иногда и Gitea. Однако мне стало интересно попробовать другой путь — использовать встроенный в Git инструмент GitWeb.

Подробнее
Total votes 28: ↑25 and ↓3+24
Comments21

Gitea + Drone + Nginx + Portainer. Пошаговое руководство по деплою аналога github на своём железе

Reading time8 min
Views17K

В данном туториале я расскажу вам как можно задеплоить gitea на своём железе с использованием docker-compose подключить drone, для возможности автоматизации тестирования и доставки собственных приложений, настроить reverse-proxy через nginx для доступа через сеть и включить portainer для мониторинга запущенных контейнеров.

Читать далее
Total votes 10: ↑8 and ↓2+7
Comments18

Typescript ENUM — баланс использования

Level of difficultyMedium
Reading time4 min
Views9.6K

Привет Всем.

Меня зовут Михаил. В НЛМК нахожусь на должности Frontend-разработчика.  Занимаюсь разработкой внутренних информационных систем на React + Typescript.

В этой статье поговорим про тип enum (перечисление) в Typescript, о случаях когда его можно и нужно использовать, а когда нет.

Перечисления бывают числовыми и строковыми. Например, представим в виде перечисления должности работников кафе.

Рассмотрим перечисления с числовыми значениями:

Читать далее
Total votes 6: ↑5 and ↓1+5
Comments5

Запускаем нативную конфигурацию Linux как виртуальную машину при помощи HyperV

Reading time5 min
Views8.2K
Несколько дней назад я собрал первоклассную рабочую станцию, чтобы возиться с хобби-проектами и играть. Купил себе наилучший и новейший процессор (Ryzen 3900x — 12 ядер, 24 потока), производство AMD, а также 32 ГБ ОЗУ – как говорится, «компромиссы – не для нас». Собрал ПК, оказалось, он просто летает. Сконфигурировал систему так, чтобы в ней можно было одновременно работать с Windows и Linux (PopOS), пользуясь двойной загрузкой. От прошлой сборки у меня сохранился твердотельный диск (SSD), на котором был установлен и сконфигурирован дистрибутив Linux. Там я настроил поисковые роботы для Twitter, а также установил и приспособил для работы другие сервисы. Linux я использовал для задач, где требуется продуктивность, а под Windows в основном играл – впрочем, так и принято.

Некоторое время спустя я осознал, что у такой конфигурации есть явный недостаток. Пока я играл, мои поисковые роботы и прочие сервисы, в сущности, оставались выключены. Чтобы это исправить, я изменил порядок загрузки так, чтобы по умолчанию загружалась именно ОС Linux. Но даже в таком случае я не был готов смиряться с такой нагрузкой, которую испытывал процессор – фактически, он был вынужден тянуть обе эти ОС одновременно, хотя и более чем справлялся с этим. Если бы мне удалось как-то виртуализовать уже установленный у меня образ Linux, то процессор бы смог обслуживать обе ОС, даже не напрягаясь. Я к тому же ленив и обнаружил, что переключаться с одной действующей ОС на другую, фактически, деактивируя при этом первую – очень сложно, в особенности, если делать это часто. Мне хотелось просто снизить издержки.
Читать дальше →
Total votes 9: ↑7 and ↓2+8
Comments31

Почему эмигранты-удаленщики иногда не платят налоги в России: нюансы НДФЛ с зарплаты

Level of difficultyEasy
Reading time18 min
Views11K

В этом и прошлом году из России уехало огромное число специалистов – но при этом далеко не все из них хорошо понимают, какие налоговые последствия влечет эмиграция. В этой статье мы вместе с налоговым юристом детально разобрались в особенностях удержания российского НДФЛ с зарплаты (и как его можно уменьшить).

Читать далее
Total votes 27: ↑18 and ↓9+13
Comments8

Создание масштабируемой и высокодоступной системы Postgres с помощью Patroni 3.0 и Citus

Reading time16 min
Views12K

Citus — это расширение для PostgreSQL, которое обеспечивает масштабируемость PostgreSQL за счет прозрачного распределения и/или репликации таблиц на одном или нескольких узлах PostgreSQL. Citus можно использовать как на облачной платформе Azure, так и на собственных серверах, поскольку расширение базы данных Citus имеет полностью открытый исходный код.

Читать далее
Total votes 15: ↑14 and ↓1+16
Comments0

Аутентификация в React — это просто

Reading time13 min
Views32K


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

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

В этом руководстве мы рассмотрим другой подход к аутентификации (а также управлению доступом, SSO и т.д.) в React-приложениях.
Читать далее
Total votes 10: ↑7 and ↓3+6
Comments2

Puppeteer в Node.js: Антипаттерны, которые следует избегать

Reading time9 min
Views4.7K

Puppeteer — это мощная библиотека автоматизации работы с браузером для веб-скрейпинга и интеграционного тестирования. Однако ее асинхронный реалтайм API оставляет вам достаточно много пространства для неумышленного создания проблем и антипаттернов.

Хоть эти антипаттерны и не являются полноценными ошибками, исключение их из скриптов (или хотя бы разумное использование) значительно повысит надежность вашего Puppeteer-кода.

Давайте начнем.

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

Модели данных в NoSQL

Level of difficultyEasy
Reading time15 min
Views6.8K


Автор статьи: Артем Михайлов


NoSQL (от «Not Only SQL») представляют собой семейство баз данных, разработанных для решения проблем, связанных с хранением, извлечением и обработкой больших объемов разнообразных данных. Они отличаются от традиционных реляционных баз данных, таких как MySQL или PostgreSQL, тем, что не требуют жесткой схемы данных и предоставляют более гибкую структуру хранения.

Преимущества NoSQL баз данных включают в себя горизонтальное масштабирование, высокую производительность при больших нагрузках, способность обрабатывать полуструктурированные и неструктурированные данные, а также поддержку распределенных вычислений. Они широко используются в веб-разработке, анализе больших данных, интернете вещей и других областях, где требуется обработка и хранение данных большого объема и разнообразной структуры.
Читать дальше →
Total votes 11: ↑8 and ↓3+7
Comments1

Как открыть счет и карту в банках Грузии в 2024 году?

Reading time9 min
Views52K

Грузия — страна с хорошо развитой финансовой системой. Два ее банка — TBC и BoG — торгуются на London Stock Exchange. Грузия интересна открывателям счетов прежде всего благодаря современному банкингу, относительно лояльному валютному контролю, отсутствию автообмена с РФ, возможностью привязки карты к PayPal.

Среди минусов стоит отметить скандалы, связанные с неожиданными закрытиями счетов для Россиян и полное отсутствие возможности свифт, да и вообще каких либо переводов в РФ.

Одним словом, если требуется принимать платежи из-за границы и отправлять в РФ - это в Казахстан, Армению и Киргизию, если обладатель карты - кочевник, который получает зарплату из-за рубежа, то Грузия - идеальный вариант. Почти во всех банках требуется личное присутствие, но некоторые допускают открытие счета по доверенности.

Читать далее
Total votes 6: ↑3 and ↓3+2
Comments6

Шина между Веб-воркерами и основным потоком. Ускоряем работу JavaScript

Level of difficultyEasy
Reading time8 min
Views12K

Хотите узнать, как ускорить выполнение JavaScript в веб-приложениях? В этой статье я подробно расскажу о веб-воркерах, шине данных между основным потоком и веб-воркерами, и как это можно применить в Angular, React и Vue, используя мой npm пакет web-worker-bus. Вы узнаете, как вынести тяжелые вычисления в отдельные потоки, организовать обмен данными, и как это все собрать в единую архитектуру. Примеры кода, инструкции и советы внутри помогут вам сделать ваши проекты быстрее и эффективнее с помощью этого инструмента. Освоение этого подхода и использование web-worker-bus может стать значимым улучшением в ваших проектах. Загляните, если интересуетесь оптимизацией JavaScript и хотите узнать, как мой пакет может вам в этом помочь!

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments9
1
23 ...

Information

Rating
Does not participate
Location
Калининградская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Web Developer