Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

DLP: предотвращаем утечки

Время на прочтение 8 мин
Количество просмотров 237

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

При этом, уже не одно десятилетие существуют системы предотвращения утечек (DLP). Но прежде, чем идти дальше и говорить о проблемах внедрения DLP, давайте правильно расшифруем данную аббревиатуру. DLP это Data Leak Prevention, предотвращение утечек информации. Можно встретить расшифровку Data Loss Prevention – то есть предотвращение потери информации. Однако, потеря информации и ее утечка - это немного разные вещи. При потере информации она совершенно необязательно становится доступной посторонним, в то время как утечка информации однозначно определяет получение доступа к ней посторонних.

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

Но это было лишь небольшое лирическое отступление. Вернемся непосредственно к DLP системам.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Комментарии 0

Новости

JS. Валидация данных. Пишем свой YUP

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

Создаем TypeScript библиотеку для валидации данных. Поэтапно добавляем основной функционал и типизацию. Делаем основую упор на простоту кода и проиводительность. Как протитип используем yup и zod.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 0

Изучаем WebRTC на практике: Лучшие инструменты и демо

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

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

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 4

The Sims 4: разбор нарративных механик самой знаменитой игры без сюжета

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

С момента своего запуска в 2014 году, The Sims 4 превратилась не просто в игру, но в целый культурный феномен, привлекая миллионы поклонников по всему миру. Этот необычайный успех можно объяснить множеством факторов, но одним из ключевых является уникальная возможность игры служить платформой для творчества и самовыражения. В отличие от традиционных видеоигр с заранее заданным сюжетом, The Sims 4 предлагает игрокам свободу создавать собственные истории в мире, где практически нет ограничений. Эта игра-песочница позволяет каждому игроку стать автором уникальных нарративов, переплетая жизни и судьбы симов в соответствии со своими желаниями и фантазиями.

В The Sims 4 отсутствует традиционный сюжет в его классическом понимании, зато нарративные возможности ограничены лишь воображением игроков. Таким образом, игра демонстрирует, как сюжет и нарратив работают ради одной цели – вовлечения игрока в историю и предоставления ему пространства для уникальных переживаний.

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Комментарии 0

Истории

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

Время на прочтение 7 мин
Количество просмотров 599

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

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

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

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Комментарии 1

Устройство умного приёмника звука в составе сетецентрической системы установления координат источника звука

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

Фомичев В.А., полковник запаса,
Крюков В.А., гражданское лицо.

Живый в помощи Вышняго,
в крове Бога Небеснаго водворится

Псалом 90.

Данная статья является продолжением статьи «Концепции устройства приёмника умного звукового датчика на базе шины CAN»

Авторы настоящей статьи объединили свои усилия в разработке компактной малоресурсной дешевой сетецентрической системы контрбатарейной борьбы для защиты жизней людей.

В статье представлено наше понимание вопроса устройства умных приёмников звука и их совместной работы в составе сетецентрической системы для установления 3–х мерных координат источника звука.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Комментарии 13

Разработка игры на C++/SFML: Начало

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

Всем привет!

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

Ну, собственно, вот - первая часть.
В ней я покажу, как я создал персонажа и научил его бегать.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 4

Как потерять управление оболочкой… Расследование

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

image


Несколько недель назад я занимался хаком языковых серверов в Zed, пытаясь заставить Zed определять, когда заданный бинарник языкового сервера, например gopls, уже присутствует в $PATH. Если так, вместо загрузки нового бинарника Zed должен использовать его.


Трудность: часто $PATH динамически изменяется такими инструментами, как direnv, asdf, mise и другими, которые позволяют в данной папке установить определённый $PATH. Почему эти инструменты так делают? Потому что это даёт возможность, скажем, в начале $PATH добавить ./my_custom_binaries, пока вы находитесь в my-cool-project. Поэтому нельзя просто использовать $PATH, связанный с процессом Zed, нужен $PATH, как он есть, когда выполняется cd в каталог проекта.


Легко, подумал я. Просто запусти $SHELL, выполни cd в проект, чтобы запустить direnv и всё такое, запусти env, сохрани окружение, выбери $PATH, найди в нём бинарники. И это было легко. Вот часть кода, та часть, которая запускает $SHELL, cd и получает env:


fn load_shell_environment(dir: &Path) -> Result<HashMap<String, String>> {
    // Получает $SHELL
    let shell = std::env::var("SHELL")?;

    // Конструирует команду, которую хочется выполнить в $SHELL
    let command = format!("cd {:?}; /usr/bin/env -0;", dir);

    // Запускает $SHELL как интерактивную оболочку (чтобы использовались файлы пользователя rc).
    // и выполняет `command`:
    let output = std::process::Command::new(&shell)
        .args(["-i", "-c", &command])
        .output()?;

    // [... проверка кода выхода, получение stdout, превращение stdout в HashMap и т. д. ...]
}

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

Что?
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 0

Разработка высоконагруженного игрового WebSocket сервера на Kotlin, Webflux с поддержкой BattleRoyale/Matchmaking

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

Всем доброго времени суток. Некоторое время назад мною была написана статья, где я детально описал процесс разработки демо игрового вебсокет сервера. На этот раз, я хотел бы поделиться более усовершенствованным и оптимизированным материалом на Kotlin и реактивном стеке.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Комментарии 1

SwiftUI уроки (часть 4)

Время на прочтение 6 мин
Количество просмотров 180

Понимание ScrollView и создание UI карусели

ссылка на 3ю часть

В этом уроке мы разберемся с таким элементом как ScrollView для создания длинных прокручивающихся полотен

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Часть 1. Геймификация: «Система образования как продукт: аудит системы

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

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

Выявим проблемы, которые возникают в текущей версии системы образования (далее - СО).

Читать далее
Всего голосов 1: ↑0 и ↓1 -1
Комментарии 1

Мемоизация в React: я почитал документацию вместо вас

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

В статье рассмотрены три инструмента мемоизации в React: useMemo, useCallback, memo. Главный источник информации: документация React. Не всем комфортно работать напрямую с документацией, так что если вы постоянно откладываете погружение в документацию React - я сделал это за вас, постарался выделить самое важное, и дать ссылки для углубленного погружения.  

Так как мы будем рассматривать не самые базовые вещи, касающиеся React, то я не буду останавливаться на таких основах как хуки, состояние, свойства, чистые функции и чистые компоненты, ожидая, что вы ознакомитесь с ними за пределами статьи. А также все рассмотренное ниже относится в первую очередь к React 18. 

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 1

Я знаю, каким был твой пароль прошлым летом…

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

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

Читать далее
Всего голосов 6: ↑2 и ↓4 -2
Комментарии 2

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

Телеграм бот + LLM (GigaChat)

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

В данном посте я расскажу о своем опыте общения с gigachat. Меня просто утомило это американское OpenAI: vpn, проблема с пополнением и т.д. В общем, после определенного количества экспериментов с chatGPT я решил попробовать GigaChat. Во-первых это патриотично, во-вторых Сбер собрал действительно крутую команду нейронщиков, которые идут в правильном направлении, в-третьих нейро-сотрудники это сейчас топ для бизнеса основанного на консалтинге, в-четвертых Сбер дает много бесплатных токенов каждый месяц, в-пятых скорость ответа пугает даже спамеров ВКонтакте ;)) Честно говоря, Сбер самым первым из банков «поехал» на big data, что сразу дало понять о работе в сфере Ai.

Итак, что мы имеем?

GigaChat – российская LLM модель, разработанная Сбером. Как зявляет сам Сбер «Команда Сбера создала сервис GigaChat, который умеет взаимодействовать с пользователем в формате диалога, писать код, создавать тексты и картинки по запросу»

На низком старте, я честно задолбал поддержку gigachat, что приятно удивило, так это то, что они просили выслать им код. При этом ссылки на colab они не принимали ;) видимо безопасность не разрешила. Это им еще со мной повезло, т.к. мой опыт в Ai достаточно большой и уровень джуна на python за плечами, а вообще я гуманитарий ;)

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

Ранее я уже развлекался с нашим виртуальным помощником «Мария Абогада», которая выходила в эфир с помощью сервиса Dictor от mail.ru, который уже не работает. Поэтмоу боту я решил дать тоже имя. Первоначальный промт:

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 1

Изменение формата отображения столбца какой-либо таблицы в программе DB Browser for SQLite

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

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

В программе DB Browser for SQLite мне часто приходится редактировать вручную какие-то значение таблицы, но проблема в том, что некоторые поля таблицы - это ссылки на поле ID другой таблицы. В таком случае тяжело понять к чему относится редактируемое значение.

Объясню на примере.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

KC868-A8M: 8x8, GSM, RTC и прочие плюшки (плюс CAN для любителей)

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


В семействе «лёгких» контроллеров конфигурации «8 входов на 8 выходов» прибыло: Kincony смастерила новую, современную модификацию с поддержкой 2G/4G GSM и часов реального времени (про Wi-Fi, LAN, RS485 даже не упоминаю — это уже стало стандартом), а также добавила для любителей и фанатов интерфейса CAN его поддержку.

И незатейливо назвала своё произведение Smart Controller/CAN Bus Board. Kincony нас избаловала обилием модификаций контроллеров на любой вкус (и задачу), а вообще KC868-A8M — это интересная машинка со множеством возможностей о которых (особенно в своей совокупности на одной плате) раньше приходилось только мечтать.

Итак…
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 1

$2500 в месяц на сервисе с 1 функцией, которая уже была у крупных компаний

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

Разбираем, как разработчик создал простой продукт с выручкой $2500 в месяц, связав два популярных сервиса. Несмотря на то, что это уже было сделано до него крупными компаниями.

Читать далее
Всего голосов 34: ↑23 и ↓11 +12
Комментарии 11

Proof of Work и Proof of Stake для чайников

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

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

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

Для достижения консенсуса в блокчейне существуют механизмы Proof of Stake и Proof of Stake. Рассмотрим их в этой статье.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 5

Пин коды от кредитных карт. Трудно запомнить. Нельзя забыть. Поэтому я их пишу прямо на самих картах

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

Когда у человека одна кредитная/дебитная карта, то думаю, он вполне сможет запомнить ее пин код. И когда две тоже. Когда их три и более, то уже можно и записать на всякий случай. А где лучше записать пин код? Правильно! Прямо на самой карте!

Читать далее
Всего голосов 29: ↑12 и ↓17 -5
Комментарии 77

Система рендеринга для космического симулятора в Unity

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

Несколько лет назад я работал над проектом по реализации на Unity реалистичного космического симулятора. Это достаточно нестандартное применение движка, и в ходе работы были решены разные специфические задачи, одна из которых - обеспечение корректного рендеринга объектов космических масштабов. Этим опытом я бы хотел поделиться с сообществом.

Читать далее
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 14