Search
Write a publication
Pull to refresh
10
0
Денис Старцев @startsevdenis

User

Send message

Как легко настроить аутентификацию для нескольких доменов в Kubernetes: Deckhouse Kubernetes Platform

Level of difficultyEasy
Reading time13 min
Views2K

В статье описывается новый подход к настройке аутентификации для нескольких доменов с помощью DexAuthenticator в Deckhouse Kubernetes Platform. Узнайте, как одно решение заменяет сотни объектов, экономит ресурсы и делает управление безопасностью проще.

Читать далее

Разбираем конкурентность в Go: книги, блоги, выступления

Level of difficultyEasy
Reading time5 min
Views9.5K

Особенность Go — удобный механизм конкурентности. Создавать конкурентные задачи в парадигме языка можно буквально «бесплатно» и предельно просто: достаточно написать ключевое слово go перед вызовом функции — и она начнет выполняться в отдельном потоке.

Я Владислав Белогрудов, эксперт по разработке ПО в YADRO. В свое время изучал различные источники и лучшие практики в поиске эффективных способов организации параллельных процессов в Go. Делюсь ими с вами. 

Пополнить библиотеку

Как DNS работает через TLS: DNS-over-TLS на практике

Level of difficultyHard
Reading time12 min
Views15K

Защита DNS при помощи TLS позволяет скрыть состав DNS-трафика, который обычно передаётся в открытом виде. Соединения DNS-over-TLS не так распространены, как DNS-over-HTTPS, но зато могут прозрачно применяться не только для доступа к резолверам, но и на авторитативных серверах. Посмотрим, вооружившись консольными утилитами, как всё это работает на практике.

Читать далее

Глава 5: API-аутентификация, часть 2 (OAuth)

Level of difficultyEasy
Reading time7 min
Views8.3K

В Главе 4 мы упомянули, что большинство веб-сайтов используют имя пользователя и пароль для аутентификации учетных данных. Мы также обсудили, что повторное использование этих учетных данных для доступа к API небезопасно, поэтому API часто требуют другой набор учетных данных, нежели те, которые используются для входа на веб-сайт. Распространенным примером являются ключи API. В этой главе мы рассмотрим другое решение — открытую авторизацию (OAuth), которая становится наиболее широко используемой схемой аутентификации в Интернете.

Читать далее

Obsidian: все что нужно знать о Callout

Level of difficultyEasy
Reading time13 min
Views23K

В этой статье я подробно расскажу о возможностях использования Callout в Obsidian, покажу существующие решения, а также объясню, как создавать свои собственные, индивидуальные типы Callout-блоков.

Рассмотрим при чем здесь цитаты (Blackquotes).

Дополнительно поделюсь полезными надстройками и шаблонами

Читать далее

n8n. Создаём AI Telegram agent с установкой и настройкой

Reading time6 min
Views31K

Всем привет!

В этой статье будет рассматриваться n8n — open source платформа для автоматизации рабочих процессов, которая поддерживает более 400 интеграций, в том числе LMM, векторные базы данных и все, что нужно, чтобы создать ИИ-агентов и RAG-приложений.

Итак, сегодня мы развернем n8n c RAG-агентом и покажем, как им пользоваться на простых примерах, среди которых будет telegram чат-бот для работы с БД PostgreSQL.

Читать далее

Угон аккаунтов в Telegram: схемы, о которых все должны знать

Reading time21 min
Views142K

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

Читать

Снимаем оковы Webpack: как мы ускорили сборку проекта в 10 раз, потратив меньше рабочего дня

Level of difficultyMedium
Reading time6 min
Views4.4K

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

Это касается и одного из самых ключевых этапов в разработке - сборка проекта. Множество проектов, на которых я работал, собирались (и собираются) с помощью Webpack. Это классический и проверенный временем инструмент: со своими преимуществами и недостатками.  

В какой-то момент недостатки стали перешивать:  

Читать далее

Как создать свою криптовалюту, токен или мемкоин

Level of difficultyMedium
Reading time10 min
Views24K

Что-то модно, а что-то вечно. Это касается и цифровых технологий. Технологии приходят и уходят, но некоторые уже навсегда с нами. Сегодня никто не сомневается в вечности таких технологий как компьютеры, Интернет или смартфоны. В список уже можно добавить нейросети и ИИ, а также криптовалюты, которые прошли проверку временем. Конечно, криптовалюты еще не получили такого широкого применения у большинства людей, но прогресс идет. Нейросетями в наши дни пользуются даже дети. То же самое будет и с криптой.

В ноябре 2024 года 13-летний подросток под ником Quant Kid создал криптовалюту на основе мемов под названием Gen Z Quant. С первоначальными инвестициями всего в 350 долларов он приобрел 51 миллион токенов и во время прямой трансляции продал их все примерно за 30 000 долларов. Криптосообщество быстро отреагировало, увеличив рыночную капитализацию токена до 85 миллионов долларов.

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

Мемкоины типа Dogecoin тоже начинались как приколы, но быстро приобрели огромные сообщества и реальную ценность. Неужели создать свою криптовалюту так просто? На самом деле действительно просто, при соблюдении определенных правил. Хотите ли вы создать вирусный токен или просто поэкспериментировать с блокчейном, это руководство для новичков поможет вам начать. Погнали!
Читать дальше →

Bloom-фильтры в Postgres: скрытый инструмент для оптимизации запросов

Level of difficultyEasy
Reading time7 min
Views2K

В мире разработки и работы с базами данных Bloom-фильтры – это мощный, но малоизвестный инструмент, который может значительно ускорить выполнение запросов и снизить нагрузку на систему. Однако, несмотря на их потенциал, многие разработчики даже не знают, что Postgres поддерживает Bloom-фильтры "из коробки" (функциональность Bloom-фильтров доступна сразу после установки Postgres, при включении соответствующего расширения) через расширение bloom.

Bloom-фильтры особенно полезны в ситуациях, когда нужно быстро проверить, принадлежит ли элемент к множеству, или когда требуется оптимизировать запросы с несколькими условиями. Например, они могут ускорить JOIN-запросы, поиск по нескольким столбцам или агрегатные функции.

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

Читать далее

SOCINT: Подборка инструментов для поиска по никнейму

Reading time3 min
Views5.7K

Введение

Приветствуем дорогих читателей! Продолжая рубрику статей, про инструменты и методы сетевой разведки по открытым источникам OSINT, мы посвятили эту статью инструментам которые выполняют первостепенную задачу в расследованиях типа SOCINT, а конкретно выполняют поиск по никнейму. Эти инструменты, исходя из наших наблюдений, обрели популярность в сообществе относительно недавно и в этой статье мы попытаемся выделить все достоинства и недостатки каждого из инструментов, чтобы облегчить ваш выбор наилучшего варианта.

Дисклеймер: Все данные предоставленные в статье, взяты из открытых источников.

Читать далее

Джойстики из джойстиков своими руками

Level of difficultyEasy
Reading time22 min
Views10K

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

Будем курочить джойстики от старых игровых консолей, не приходя в сознание. Из двух проводных джойстиков сделаем один, другой джойстик лишим провода, а ещё пару просто подключим проводами. По сути это сразу три разных микро-проекта, связанные общей тематикой. Нет времени объяснять, приступаем!
Читать дальше →

Как я написал пакет для быстрого создания и управления формами в Go

Level of difficultyEasy
Reading time6 min
Views1.5K

Привет, Хабровчане! Сегодня я хочу рассказать о своём небольшом проекте - пакете goform, который я написал для упрощения работы с HTML-формами в Go. Это не просто ещё один пакет, а результат моего опыта и желания сделать процесс работы с формами более удобным и эффективным. В этой статье я поделюсь историей создания, функциональностью пакета и тем, как он может быть полезен другим разработчикам.

Читать далее

Компилятор GO. Добавляем цикл WHILE

Level of difficultyMedium
Reading time13 min
Views7.4K

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

Самым простым и понятным для меня в этом плане показалась реализация цикла while. В этой статье я покажу, что у меня получилось выяснить. Вот примерный результат, к которому мы придём:

Читать далее

Как реализовать DDD в Go

Reading time25 min
Views38K

С помощью микросервисной архитектуры можно построить масштабируемое и гибкое приложение. Однако, если команда бессистемно использует этот подход в своей работе, то скоро столкнется с разочарованием и неконтролируемой сложностью. Избежать этого поможет DDD (Domain-Driven Design, предметно ориентированное проектирование). Не так давно я ничего не знал про этот подход, но сейчас я постоянно натыкаюсь на эту тему.

Представляю вам перевод статьи "How to Implement Domain-Driven Design (DDD) in Golang". Повествование буду вести от лица автора, иногда прерывая собственными мыслями в таком же формате, как и это отступление. Приятного чтения.

Читать далее

Как я создавал Observability для своих pet-проектов. Часть 2

Level of difficultyMedium
Reading time10 min
Views4.7K

В первой части мы развернули базовый стек для сбора метрик, логов и трейсов и интегрировали его с приложением на Laravel. Теперь покажу настройку Observability на примере простого Golang-приложения — настроим в нём структурированные логи, распределённый трейсинг и метрики, а также интегрируем с нашим стеком.

Читать далее

Syscall и cgo в Go

Level of difficultyEasy
Reading time5 min
Views3K

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

В этой статье рассмотрим работу с системными утилитами в Go. Будем напрямую общаться с ядром, дергать системные вызовы и писать код на C, чтобы Go не чувствовал себя одиноким.

Читать далее

Cicada 3301: кого и куда должны были отобрать загадки таинственной «Цикады»? Часть 2

Level of difficultyEasy
Reading time14 min
Views60K

В первой части рассказа о том, как команда энтузиастов пыталась распутать загадки и шифры таинственной «Цикады 3301», мы дошли до момента, когда общедоступные послания 2012 года закончились. Маркус, Текк и немногие другие из тех, кто добрался до получения персонального письма с личными инструкциями, рассказали кое-что — но знаем о дальнейшем мы в основном с их слов.

Теперь попробуем проследить за тем, чем завершилось путешествие первой команды разгадывавших шифры «Цикады», что происходило в следующие годы с новыми циклами загадок, рассмотрим версии того, кто стоял за «Цикадой 3301» и зачем всё это делалось в принципе.
Читать дальше →

Методы распознавания матерных (и не только) языков

Level of difficultyMedium
Reading time8 min
Views1.6K

Всем привет! Меня зовут Миша, я работаю Backend-разработчиком в Doubletapp. В одном из проектов появилась фича по добавлению тегов по интересам. Любой пользователь может создать интерес, и он будет виден всем остальным. Неожиданно (!!!) появились интересы с не очень хорошими словами, которые обычно называют матерными. Встала задача по распознаванию языка с матерными словами, чтобы исключить возможность добавления гадости в наш огород!

Читать далее

Базовая архитектура сервиса на GO

Level of difficultyEasy
Reading time11 min
Views16K

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

Читать далее

Information

Rating
Does not participate
Location
Тверь, Тверская обл., Россия
Date of birth
Registered
Activity