Pull to refresh
46
2.5

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

Send message

PostgreSQL + pgAdmin + mTLS + certificate-based authentication + docker-compose в одном флаконе

Reading time4 min
Views4.5K

Чего у меня не отнять, дак это мастерства заголовка...

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

Данная статья является легким переосмыслением того, что я написал на медиуме. Ибо думать я продолжаю на русском.

TL;DR исходники к вашим услугам.

В рамках любых взаимодействий мы сталкиваемся с такими сущностями как авторизация и аутентификация. Повторять в 100500 раз что есть что я не буду (но мне не лень такую длинную ремарку напечатать, ага). В рамках PostgreSQL первое обеспечивается через Roles, а второе через Privileges.

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

Маскирование баз данных

Level of difficultyEasy
Reading time6 min
Views9.6K

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

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

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

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

40 Полезных инструментов Дата Саентиста

Level of difficultyEasy
Reading time11 min
Views16K

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

Но что если я расскажу вам о некоторых полезных библиотеках, о которых вы скорее всего не слышали? В списке не будет всем известных библиотек таких, как Pandas, Polars, Scipy и тд

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

Надеюсь, вы найдете что-то полезное для себя.

Читать
Total votes 27: ↑21 and ↓6+15
Comments6

Поиск в глубину, поиск в ширину, алгоритмы Дейкстры и А* — это один и тот же алгоритм

Reading time7 min
Views15K

В алгоритмических задачах на графах мы часто используем четыре известных алгоритма: Поиск в ширину или глубину, алгоритмы Дейкстры и А*. Разбираемся, почему на деле это один и тот же алгоритм.

Читать далее
Total votes 39: ↑34 and ↓5+29
Comments21

Проецирование вершин графа в векторное пространство. Часть 2. Марковская цепь и Word2Vec

Reading time6 min
Views2.4K

И снова здравствуйте! Меня зовут Илья Котов, я Data Scientist в Сбере, участник профессионального сообщества NTA. Эта статья — вторая часть небольшого цикла, посвящённого алгоритмам вложений вершин графа в векторное пространство. Сегодня рассмотрим главную идею алгоритмов, основанных на случайных блужданиях. Перед прочтением рекомендуем прочитать первую часть.

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

Нормальные алгоритмы Маркова как основание языка программирования

Reading time12 min
Views22K

В этой статье хотелось бы поделиться мыслями о применении Нормальных Алгоритмов Маркова (далее по тексту: НАМ) в качестве основания для языка программирования.

Заранее скажу, что представленный концепт ЯП не претендует на решение каких-либо «мировых» проблем программирования, не представляет собой замену существующим инструментам, это результат моих скромных исследований в области проектирования ЯП.

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

R*-tree в Go, немного геймдева и поиска элементов в пространстве

Reading time7 min
Views7.3K

Приветствую, уважаемые читатели Habr!

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

Эта статья заденет опыт в геймдейве и идеи, где это ещё можно было бы использовать :)

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

'Attention is all you need' простым языком

Level of difficultyEasy
Reading time6 min
Views6.9K

Некоторое время назад я повесил здесь статью с кратким обзором техник векторизации, и мне показалось логичным продолжить эту тему попыткой разобраться с тем, в какую сторону NLP шагнула дальше, как научилась оцифровывать смысл: выбор пал на механизм attention. Мы с коллегой-переводчицей перевели и переработали Youtube-ролик 'Attention is all you need explained' в статью, которую и представляем вашему вниманию.

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

В 2017 году, в статье Attention is all you need, исследователи из Google представили архитектуру Transformer. Новизна Transformer заключалась в использовании self-attention (досл. с англ. — самовнимание, внутреннее внимание) — механизма, благодаря которому модель может сосредоточиться не на всех сразу, а на наиболее важных элементах входной последовательности...

Читать продолжение
Total votes 6: ↑5 and ↓1+4
Comments8

Объясняем простым языком, что такое трансформеры

Level of difficultyEasy
Reading time12 min
Views23K

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

Один из важнейших инструментов машинного обучения — трансформеры. Популярность трансформеров взлетела до небес в связи с появлением больших языковых моделей вроде ChatGPT, GPT-4 и LLama. Эти модели созданы на основе трансформерной архитектуры и демонстрируют отличную производительность в понимании и синтезе естественных языков. 

Хотя в сети уже есть хорошие статьи, в которых разобран принцип действия трансформеров, большинство материалов изобилует запутанными терминами. Мы подготовили перевод статьи, в которой без кода и сложной математики объясняют современную трансформерную архитектуру.

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

Вкатываемся в Machine Learning с нуля за ноль рублей: что, где, в какой последовательности изучить

Level of difficultyEasy
Reading time26 min
Views163K

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

Читать далее
Total votes 159: ↑157 and ↓2+155
Comments49

Правильный мониторинг API: метрики и лучшие практики

Reading time7 min
Views5.8K

Применение API в разработке ПО сыграло большую роль в создании современных приложений и повлияло на их общую оценку и опыт конечных пользователей. В этой статье Екатерина Саяпина, Product Owner личного кабинета платформы МТС Exolve, рассказывает про правильные подходы при отслеживании работы API. Подробности — под катом.

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

Реализация случайности в CSS при помощи тригонометрии

Level of difficultyMedium
Reading time5 min
Views5.2K

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

Несмотря на надёжность этого решения, оно имеет и недостатки:

  • Функция деления с остатком не непрерывна
  • Способ слишком сложен: он требует трёх переменных и определения @property для каждого случайного значения, которое мы хотим сгенерировать
  • Требует применения @property, которое пока поддерживается не очень широко

К счастью, можно сделать лучше! В этой статье я предложу более оптимальное решение на основе тригонометрии.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments4

Неочевидные сложности CRDT

Reading time23 min
Views6.1K


Мы все так привыкли к облачной синхронизации Dropbox и совместному редактированию в Google Docs, что объединение результатов действий разных пользователей может казаться давно решённой проблемой. Но на самом деле в этом вопросе остаётся множество подводных камней, а работа над алгоритмами CRDT вовсю продолжается.


Один из людей, ведущих эту работу — Мартин Клеппманн (Martin Kleppmann): исследователь в Кембриджском университете и создатель популярной библиотеки Automerge. И на конференции Hydra он рассказывал о нескольких вещах, которые исследовал буквально в последнюю пару лет. Какие действия пользователя могут заставить Google Drive выдать «unknown error»? Почему в CRDT метаданные о работе над документом могут занимать в сто раз больше места, чем сам документ, и как с этим бороться? А у какой проблемы сейчас даже не существует известного решения?


Обо всём этом он поведал в докладе, а теперь мы сделали для Хабра текстовый перевод. Видео и перевод — под катом, далее повествование будет от лица спикера.

Total votes 24: ↑24 and ↓0+24
Comments5

Совместная работа в реальном времени: алгоритмы, редакторы и облако

Level of difficultyEasy
Reading time5 min
Views2.3K

Сегодня никого не удивляет онлайн редактирование общего документа, файла или базы данных. Но под капотом сервисов параллельной работы с данными находится большая история. И эта история еще далека от завершения. 

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

Основы программного обеспечения для групповой работы были заложены в системе NLS (oN-Line System), разработанной в 1960-х годах. Под катом расскажем, как от первых экспериментов в области цифровых коммуникаций разработчики перешли к инструментам и сервисам для совместного онлайн-кодинга.

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

Топ 7 библиотек для управления состоянием в React

Level of difficultyEasy
Reading time8 min
Views6.2K

Перевод данной статьи был выполнен с оригинального источника, автор — Tanveer Singh.

Управление состоянием является одной из самых больших проблем при использовании фреймворка React. Это касается не только пользователей. Разработчикам нужен простой и масштабируемый процесс управления состоянием для проектирования эффективных и сложных пользовательских интерфейсов.

Обычно используют хуки React для доступа и обмена состояниями между разными компонентами. Но при работе с их значительным количеством сложность становится слишком большой для хуков. В таких случаях необходимо использовать библиотеки управления состоянием.

Как выбрать библиотеку, которая лучше всего подходит именно вам? Это зависит от нескольких факторов. Давайте узнаем больше о наиболее важных библиотеках и о том, на что обращать внимание при принятии решения.

Читать далее
Total votes 2: ↑1 and ↓10
Comments8

Микроменеджер — горе в команде

Reading time15 min
Views30K

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

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

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

Читать далее
Total votes 44: ↑43 and ↓1+42
Comments29

Движок для игры от первого лица в 265 строках Javascript

Level of difficultyHard
Reading time6 min
Views25K
image

Сегодня окунёмся в мир, который можно потрогать. В этой статье мы исследуем, как с нуля, быстро и без особо сложной математики написать движок для игры от первого лица. Для этого мы воспользуемся приёмом под названием «бросание лучей» (raycasting). Возможно, вы видели примеры такой техники в играх Daggerfall и Duke Nukem 3D, а из более свежего – в статьях из «ludum dare» от Нотча Перссона. Что ж, для Нотча это неплохо, но не для меня! Вот демка (управление стрелками и тачпадом) [источник].
Читать дальше →
Total votes 78: ↑77 and ↓1+76
Comments36

Выбор структур данных для самописного текстового редактора

Level of difficultyMedium
Reading time13 min
Views10K

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

Ресурсы


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

  • Build Your Own Text Editor — наверно, самый фундаментальный пост о создании текстового редактора с нуля, который я видел. Это превосходный туториал на случай, если вы хотите начать писать собственный текстовый редактор. Стоит заметить, что в редакторе из этого туториала в качестве внутренней структуры для текста используется, по сути, вектор строк.
  • Text Editor: Data Structures — отличный обзор множества структур данных, которые можно использовать при реализации текстового редактора. (Спойлер: как минимум одна из них будет рассмотрена в моём посте)
  • Плейлист Ded (Text Editor) на YouTube — это потрясающая серия, в которой @tscoding фиксирует процесс создания с нуля текстового редактора. Эти видео стали для меня источником вдохновения.

Зачем?


Если в сети есть так много хороших ресурсов о создании собственного текстового редактора (не говоря уже о том, что уже существует множество феноменальных текстовых редакторов), то зачем я это пишу? На то есть несколько причин:

  1. Я хотел заняться проектом, непохожим ни на один свой прошлый.
  2. Я хотел создать инструмент, которым смогу пользоваться.
  3. Мне всегда хотелось глубже разобраться с созданием собственных структур данных.
Читать дальше →
Total votes 60: ↑59 and ↓1+58
Comments18

Swin Transformer V1 и V2 — лучшие модели компьютерного зрения не на основе CNN

Reading time5 min
Views2.7K

Трансформеры широко используются в операциях, связанных с обработкой естественного языка (Natural Language Processing. NLP), а в последнее время также часто применяются во многих задачах компьютерного зрения, поскольку они моделируют глобальные и действующие на дальнем расстоянии связи, а также семантическую информацию изображений лучше, чем CNN, поскольку последняя является более локализованной.

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

ESLint. Анатомия правил линтинга: разбираем структуру, создаём собственное правило для React-приложения

Level of difficultyMedium
Reading time13 min
Views17K

Всем привет! Меня зовут Анастасия Щедрина, я технический лидер по фронтенду проекта размещения объявлений в компании Домклик. Сегодня я расскажу вам немного о том, как устроены правила в ESLint, и покажу на примере, как можно разработать собственные.

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

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

Information

Rating
1,031-st
Registered
Activity