Детальный разбор стандарта NIST SP 800-232 со схемами преобразований. Часть 1
Совсем недавно – в августе текущего года – Институт стандартов и технологий США NIST выпустил стандарт NIST SP 800-232 [1], описывающий четыре низкоресурсных криптографических алгоритма на базе семейства алгоритмов Ascon:
алгоритм аутентифицированного шифрования с присоединенными данными Ascon-AEAD128;
три алгоритма хеширования: Ascon-Hash256 (классическая хеш-функция), Ascon-XOF128 (хеш-функция с переменным размером выходного значения) и Ascon-CXOF128 (хеш-функция с кастомизацией и переменным размером выходного значения).
Предыдущий опыт показывает, что криптографические стандарты США после их принятия обычно широко используются во всем мире, поэтому данный документ может представлять значительный интерес и достоин детального разбора (краткий обзор стандарта NIST SP 800-232 уже был опубликован на Хабре ранее здесь), который я и предлагаю вам в двух частях в этой (и следующей) статье.
https://habr.com/ru/companies/aktiv-company/articles/962134/
Алгоритмы и Структуры данных
Совсем недавно – в августе текущего года – Институт стандартов и технологий США NIST выпустил стандарт NIST SP 800-232 [1], описывающий четыре низкоресурсных криптографических алгоритма на базе семейства алгоритмов Ascon:
алгоритм аутентифицированного шифрования с присоединенными данными Ascon-AEAD128;
три алгоритма хеширования: Ascon-Hash256 (классическая хеш-функция), Ascon-XOF128 (хеш-функция с переменным размером выходного значения) и Ascon-CXOF128 (хеш-функция с кастомизацией и переменным размером выходного значения).
Предыдущий опыт показывает, что криптографические стандарты США после их принятия обычно широко используются во всем мире, поэтому данный документ может представлять значительный интерес и достоин детального разбора (краткий обзор стандарта NIST SP 800-232 уже был опубликован на Хабре ранее здесь), который я и предлагаю вам в двух частях в этой (и следующей) статье.
https://habr.com/ru/companies/aktiv-company/articles/962134/
Алгоритмы и Структуры данных
Хабр
Детальный разбор стандарта NIST SP 800-232 со схемами преобразований. Часть 1
Приветствую, Хабр! Совсем недавно – в августе текущего года – Институт стандартов и технологий США NIST выпустил стандарт NIST SP 800-232 [1], описывающий четыре низкоресурсных криптографических...
🤯1
Кому нужен Graphviz, если можно написать его самому?
Недавно мы переделали наши внутренние инструменты, визуализирующие компиляцию JavaScript и WebAssembly. При работе оптимизирующего компилятора Ion мы теперь можем генерировать интерактивные графы, демонстрирующие, как конкретно обрабатываются и оптимизируются функции.
Вы можете сами поэкспериментировать с этими графами в оригинале статьи. Просто введите какой-нибудь код на JavaScript в функцию test, и наблюдайте за созданием графа. Также там можно щёлкать и перетаскивать граф, менять масштаб при помощи колеса мыши с зажатым Ctrl и перетаскивать ползунок вниз, чтобы изучить процесс оптимизации.
В процессе экспериментов обратите внимание на то, насколько стабильна схема графа даже при изменении размеров блоков и добавлении новых структур. Попробуйте нажать на заголовок блока, чтобы выделить его, а затем перетащить ползунок, и наблюдайте за тем, как меняется граф, а блок остаётся на месте. Или нажмите на номер команды, чтобы подсветить её и следить за ней между проходами.
https://habr.com/ru/articles/962436/
Алгоритмы и Структуры данных
Недавно мы переделали наши внутренние инструменты, визуализирующие компиляцию JavaScript и WebAssembly. При работе оптимизирующего компилятора Ion мы теперь можем генерировать интерактивные графы, демонстрирующие, как конкретно обрабатываются и оптимизируются функции.
Вы можете сами поэкспериментировать с этими графами в оригинале статьи. Просто введите какой-нибудь код на JavaScript в функцию test, и наблюдайте за созданием графа. Также там можно щёлкать и перетаскивать граф, менять масштаб при помощи колеса мыши с зажатым Ctrl и перетаскивать ползунок вниз, чтобы изучить процесс оптимизации.
В процессе экспериментов обратите внимание на то, насколько стабильна схема графа даже при изменении размеров блоков и добавлении новых структур. Попробуйте нажать на заголовок блока, чтобы выделить его, а затем перетащить ползунок, и наблюдайте за тем, как меняется граф, а блок остаётся на месте. Или нажмите на номер команды, чтобы подсветить её и следить за ней между проходами.
https://habr.com/ru/articles/962436/
Алгоритмы и Структуры данных
Хабр
Кому нужен Graphviz, если можно написать его самому?
Недавно мы переделали наши внутренние инструменты, визуализирующие компиляцию JavaScript и WebAssembly. При работе оптимизирующего компилятора Ion мы теперь можем генерировать интерактивные графы,...
Алгоритмы поиска подстроки на JavaScript
Недавно я столкнулся с одной не очень сложной задачей на leetcode. В рамках задачи нужно было реализовать алгоритм поиска подстроки в строке. Пока я пытался сделать задачу, я понял, что я очень мало знаю про то как можно искать подстроку и решил изучить эту тему подробнее, и рассказать результат вам.
Как говорит Википедия “Поиск подстроки в строке — одна из простейших задач поиска информации”, но это не совсем так, ниже я расскажу про разные алгоритмы решения и покажу примеры их реализации. Начнем!
https://habr.com/ru/articles/733998/
Алгоритмы и Структуры данных
Недавно я столкнулся с одной не очень сложной задачей на leetcode. В рамках задачи нужно было реализовать алгоритм поиска подстроки в строке. Пока я пытался сделать задачу, я понял, что я очень мало знаю про то как можно искать подстроку и решил изучить эту тему подробнее, и рассказать результат вам.
Как говорит Википедия “Поиск подстроки в строке — одна из простейших задач поиска информации”, но это не совсем так, ниже я расскажу про разные алгоритмы решения и покажу примеры их реализации. Начнем!
https://habr.com/ru/articles/733998/
Алгоритмы и Структуры данных
Хабр
Алгоритмы поиска подстроки на JavaScript
Недавно я столкнулся с одной не очень сложной задачей на leetcode. В рамках задачи нужно было реализовать алгоритм поиска подстроки в строке. Пока я пытался сделать задачу, я понял, что я очень мало...
❤1
Метод генерации столбцов для решения задач математической оптимизации большой размерности
Недавно на хабре мне понравилась статья "Математическая оптимизация и моделирование в PuLP: задача о назначениях" , где автор и, как я потом узнал, мой знакомый решил сделать серию статей о математической оптимизации, с целью популяризовать это направление и максимально доступно ознакомить читателей с инструментами, позволяющими решать такой класс задач, и научить пользователя видеть такие задачи в реальном мире, чтобы понимать, где может оказаться полезен этот инструмент. Так, в своей статье автор описывает решение задачи назначения ресурсов на потенциальные работы с помощью верхнеуровневой питоновской оболочки pulp с подключением солвера cbc для решения самой задачи смешанного целочисленного программирования.
https://habr.com/ru/articles/733804/
Алгоритмы и Структуры данных
Недавно на хабре мне понравилась статья "Математическая оптимизация и моделирование в PuLP: задача о назначениях" , где автор и, как я потом узнал, мой знакомый решил сделать серию статей о математической оптимизации, с целью популяризовать это направление и максимально доступно ознакомить читателей с инструментами, позволяющими решать такой класс задач, и научить пользователя видеть такие задачи в реальном мире, чтобы понимать, где может оказаться полезен этот инструмент. Так, в своей статье автор описывает решение задачи назначения ресурсов на потенциальные работы с помощью верхнеуровневой питоновской оболочки pulp с подключением солвера cbc для решения самой задачи смешанного целочисленного программирования.
https://habr.com/ru/articles/733804/
Алгоритмы и Структуры данных
Хабр
Метод генерации столбцов для решения задач математической оптимизации большой размерности
Недавно на хабре мне понравилась статья " Математическая оптимизация и моделирование в PuLP: задача о назначениях " , где автор и, как я потом узнал, мой знакомый решил сделать серию статей о...
❤1👍1🔥1
Эволюция радиомашинок в среде Unity с помощью NGspice
В этой статье я расскажу про свой эксперимент: я создал в Unity симуляцию радиоуправляемых машинок, которые эволюционируют. «Мозгом» каждой машинки является электронная схема. Я заставил эти схемы мутировать(случайно меняться) и скрещиваться(обмениваться частями), чтобы создавать новые модели машин и улучшать их. Их «интеллект» и поведение меняются в зависимости от того, сколько блоков они успешно поднимают.
Старт симуляции:
Мутация: У машинки меняется "ДНК" (её электронная схема)
Скрещивание: Эта машинка объединяет свои "гены" с другой, и рождается новая.
Принцип такой: «мозг» машинки (её радиосхема) учится методом проб и ошибок. Каждый раз, когда она успешно поднимает блок, она получает положительный сигнал (подкрепление), который заставляет её повторять удачные действия в будущем.
Основная задача заключалась в организации непрерывного обмена данными между Unity и NGspice.
https://habr.com/ru/articles/963624/
Алгоритмы и Структуры данных
В этой статье я расскажу про свой эксперимент: я создал в Unity симуляцию радиоуправляемых машинок, которые эволюционируют. «Мозгом» каждой машинки является электронная схема. Я заставил эти схемы мутировать(случайно меняться) и скрещиваться(обмениваться частями), чтобы создавать новые модели машин и улучшать их. Их «интеллект» и поведение меняются в зависимости от того, сколько блоков они успешно поднимают.
Старт симуляции:
Мутация: У машинки меняется "ДНК" (её электронная схема)
Скрещивание: Эта машинка объединяет свои "гены" с другой, и рождается новая.
Принцип такой: «мозг» машинки (её радиосхема) учится методом проб и ошибок. Каждый раз, когда она успешно поднимает блок, она получает положительный сигнал (подкрепление), который заставляет её повторять удачные действия в будущем.
Основная задача заключалась в организации непрерывного обмена данными между Unity и NGspice.
https://habr.com/ru/articles/963624/
Алгоритмы и Структуры данных
Хабр
Эволюция радиомашинок в среде Unity с помощью NGspice
В этой статье я расскажу про свой эксперимент: я создал в Unity симуляцию радиоуправляемых машинок, которые эволюционируют. «Мозгом» каждой машинки является электронная схема. Я заставил эти схемы...
👍3❤1
Как решать LeetCode? Легко! Нужно просто…
Просто знать 15 важных паттернов, которые помогут облегчить тернистый путь в решении алгоритмических задач. Про эти паттерны мы и расскажем в этой статье.
https://habr.com/ru/articles/964104/
Алгоритмы и Структуры данных
Просто знать 15 важных паттернов, которые помогут облегчить тернистый путь в решении алгоритмических задач. Про эти паттерны мы и расскажем в этой статье.
https://habr.com/ru/articles/964104/
Алгоритмы и Структуры данных
Хабр
Как решать LeetCode? Легко! Нужно просто…
Просто знать 15 важных паттернов, которые помогут облегчить тернистый путь в решении алгоритмических задач. Про эти паттерны мы и расскажем в этой статье. Перевод статьи автора Ashish Pratap Singh....
👍3
ИИ-ученые 2025: SR-Scientist, DeepEvolve и Kosmos — чем отличаются и зачем. И почему выстрелил Kosmos
В 2025-м на наших глазах складывается новый класс инструментов - ИИ-Ученые (AI-Scientist). Если раньше алгоритмы ИИ могли только генерировать идеи или перерабатывать уже известные решения, то современные системы умеют не просто придумывать гипотезы, но и реализовывать их на практике, тестировать и совершенствовать из раза в раз.
Речь не просто про чат-боты и Co-Pilot’ы, речь про агентные системы, которые сами ставят гипотезы, пишут и исполняют код, проверяют результаты и накапливают опыт.
https://habr.com/ru/articles/964254/
Алгоритмы и Структуры данных
В 2025-м на наших глазах складывается новый класс инструментов - ИИ-Ученые (AI-Scientist). Если раньше алгоритмы ИИ могли только генерировать идеи или перерабатывать уже известные решения, то современные системы умеют не просто придумывать гипотезы, но и реализовывать их на практике, тестировать и совершенствовать из раза в раз.
Речь не просто про чат-боты и Co-Pilot’ы, речь про агентные системы, которые сами ставят гипотезы, пишут и исполняют код, проверяют результаты и накапливают опыт.
https://habr.com/ru/articles/964254/
Алгоритмы и Структуры данных
Хабр
ИИ-ученые 2025: SR-Scientist, DeepEvolve и Kosmos — чем отличаются и зачем. И почему выстрелил Kosmos
В 2025-м на наших глазах складывается новый класс инструментов - ИИ-Ученые (AI-Scientist) . Если раньше алгоритмы ИИ могли только генерировать идеи или перерабатывать уже известные решения, то...
🤯1
Кэширование и всё, что с ним связано
Сегодня хочу рассказать об одной технологии, которая сопровождает нас буквально везде. От процессора в вашем смартфоне до глобальных сервисов вроде YouTube. Речь пойдет о кэшировании.
Да, я знаю, тема кажется избитой. Но когда я впервые осознала, что одни и те же принципы работают на всех уровнях, от крошечного L1-кэша до распределенного Redis-кластера — это было похоже на инженерное просветление. Предлагаю и вам пройти этот путь вместе со мной.
https://habr.com/ru/companies/timeweb/articles/959676/
Алгоритмы и Структуры данных
Сегодня хочу рассказать об одной технологии, которая сопровождает нас буквально везде. От процессора в вашем смартфоне до глобальных сервисов вроде YouTube. Речь пойдет о кэшировании.
Да, я знаю, тема кажется избитой. Но когда я впервые осознала, что одни и те же принципы работают на всех уровнях, от крошечного L1-кэша до распределенного Redis-кластера — это было похоже на инженерное просветление. Предлагаю и вам пройти этот путь вместе со мной.
https://habr.com/ru/companies/timeweb/articles/959676/
Алгоритмы и Структуры данных
Хабр
Кэширование и всё, что с ним связано
Привет, Хабр! Сегодня хочу рассказать об одной технологии, которая сопровождает нас буквально везде. От процессора в вашем смартфоне до глобальных сервисов вроде YouTube. Речь пойдет о кэшировании....
❤2
В процессе обучения нейронных сетей получаются красивые фракталы
Как-то раз моя пятилетняя дочка, вернувшись домой из детского садика, сообщила мне и моей жене, что математика — тупая штука (!). С тех пор мы не покладая рук работаем (пока что успешно), стараясь увлечь её всевозможными математическими интересностями, а теперь ещё и гордимся её успехами в математике. Одна из наших наиболее удачных находок привела к тому, что теперь дочь очень интересуется фракталами вообще. Особенно ей нравится смотреть видеоролики, где с увеличением показаны множества и оболочки Мандельброта, а вдобавок есть капусту романеско. Благодаря этому увлечению дочери, я стал больше задумываться о фракталах, а также о том, как они соотносятся с особенно волнующей меня темой — искусственными нейронными сетями.
https://habr.com/ru/articles/964394/
Алгоритмы и Структуры данных
Как-то раз моя пятилетняя дочка, вернувшись домой из детского садика, сообщила мне и моей жене, что математика — тупая штука (!). С тех пор мы не покладая рук работаем (пока что успешно), стараясь увлечь её всевозможными математическими интересностями, а теперь ещё и гордимся её успехами в математике. Одна из наших наиболее удачных находок привела к тому, что теперь дочь очень интересуется фракталами вообще. Особенно ей нравится смотреть видеоролики, где с увеличением показаны множества и оболочки Мандельброта, а вдобавок есть капусту романеско. Благодаря этому увлечению дочери, я стал больше задумываться о фракталах, а также о том, как они соотносятся с особенно волнующей меня темой — искусственными нейронными сетями.
https://habr.com/ru/articles/964394/
Алгоритмы и Структуры данных
Хабр
В процессе обучения нейронных сетей получаются красивые фракталы
Как-то раз моя пятилетняя дочка, вернувшись домой из детского садика, сообщила мне и моей жене, что математика — тупая штука (!). С тех пор мы не покладая рук работаем (пока что успешно), стараясь...
👍1
Параметризация нечётных чисел на основе подмножеств вычетов по модулю шесть
Известно, что подмножество вычетов по модулю числа представляет собой набор целых чисел, полученных при делении на заданный модуль [Subspace Sum Graphs over Residue Class Rings, J. Sangwisat, S. Sirisuk, 2014, Lobachevskii journal of mathematics]. Вычет по модулю m – это остаток от деления целого числа на m. Множество всех возможных вычетов по модулю m называется полной системой вычетов и обозначается как Z/mZ или {0, 1, …, m-1} [An efficient algorithm deciding chaos for linear cellular automata over ( Z / m Z ) n with applications to data encryption, A. Dennunzio, E. Formenti, L.Margara, 2024, Information Sciences]. Подмножество вычетов по модулю m – это любой набор элементов из этого множества.
Предлагается рассмотреть параметризацию всех натуральных нечетных чисел на основе приведенной системы вычетов {1, 3, 5}, которая взаимно проста с модулем 6. Показан способ описания подмножеств вычетов {1, 3, 5}, который за счет разбиения на подмножества, подпространства, уровни масштабирования и индексации внутри уровней, позволяет исчерпывающе покрыть все нечетные числа и доказывает их фрактальную структурную детерминированность.
https://habr.com/ru/articles/964400/
Алгоритмы и Структуры данных
Известно, что подмножество вычетов по модулю числа представляет собой набор целых чисел, полученных при делении на заданный модуль [Subspace Sum Graphs over Residue Class Rings, J. Sangwisat, S. Sirisuk, 2014, Lobachevskii journal of mathematics]. Вычет по модулю m – это остаток от деления целого числа на m. Множество всех возможных вычетов по модулю m называется полной системой вычетов и обозначается как Z/mZ или {0, 1, …, m-1} [An efficient algorithm deciding chaos for linear cellular automata over ( Z / m Z ) n with applications to data encryption, A. Dennunzio, E. Formenti, L.Margara, 2024, Information Sciences]. Подмножество вычетов по модулю m – это любой набор элементов из этого множества.
Предлагается рассмотреть параметризацию всех натуральных нечетных чисел на основе приведенной системы вычетов {1, 3, 5}, которая взаимно проста с модулем 6. Показан способ описания подмножеств вычетов {1, 3, 5}, который за счет разбиения на подмножества, подпространства, уровни масштабирования и индексации внутри уровней, позволяет исчерпывающе покрыть все нечетные числа и доказывает их фрактальную структурную детерминированность.
https://habr.com/ru/articles/964400/
Алгоритмы и Структуры данных
Хабр
Параметризация нечётных чисел на основе подмножеств вычетов по модулю шесть
Известно, что подмножество вычетов по модулю числа представляет собой набор целых чисел, полученных при делении на заданный модуль [Subspace Sum Graphs over Residue Class Rings, J. Sangwisat, S....
🔥1
Что не так с ИИ-«искусством»
Не знаю, как у вас, но когда я натыкаюсь на заполонившие интернет изображения и видео, которые были созданы ИИ, у меня возникает очень странное чувство. Это своего рода инстинктивное ощущение, что с этими изображениями что‑то не так.
Часть меня скептически относится к этой инстинктивной реакции: не попадаю ли я в ловушку, в которую попадали бесчисленные поколения до меня? Может быть, я, как могли бы предположить сторонники ИИ, просто рефлекторно отвергаю следующий логический шаг в технологическом прогрессе, потому что он несёт с собой некомфортные для меня перемены? Может быть, я просто повторяю за Платоном, когда он критиковал развитие письменности, утверждая, что это приведет к потере памяти у людей?
Или это инстинктивное чувство, что что‑то «не так» с «искусством», созданным ИИ, указывает на нечто более глубокое и истинное? Не сообщает ли оно нам что‑то важное о том, что такое искусство для нас, для людей? О том, что, каким бы ни было искусство, попытка создать его с помощью ИИ — это своего рода насилие?
https://habr.com/ru/articles/964418/
Алгоритмы и Структуры данных
Не знаю, как у вас, но когда я натыкаюсь на заполонившие интернет изображения и видео, которые были созданы ИИ, у меня возникает очень странное чувство. Это своего рода инстинктивное ощущение, что с этими изображениями что‑то не так.
Часть меня скептически относится к этой инстинктивной реакции: не попадаю ли я в ловушку, в которую попадали бесчисленные поколения до меня? Может быть, я, как могли бы предположить сторонники ИИ, просто рефлекторно отвергаю следующий логический шаг в технологическом прогрессе, потому что он несёт с собой некомфортные для меня перемены? Может быть, я просто повторяю за Платоном, когда он критиковал развитие письменности, утверждая, что это приведет к потере памяти у людей?
Или это инстинктивное чувство, что что‑то «не так» с «искусством», созданным ИИ, указывает на нечто более глубокое и истинное? Не сообщает ли оно нам что‑то важное о том, что такое искусство для нас, для людей? О том, что, каким бы ни было искусство, попытка создать его с помощью ИИ — это своего рода насилие?
https://habr.com/ru/articles/964418/
Алгоритмы и Структуры данных
Хабр
Что не так с ИИ-«искусством»
ИИ-Одри Хепберн Disclaimer: это перевод статьи , основанной на видеоэссе . Автор — Томас Флайт Не знаю, как у вас, но когда я натыкаюсь на заполонившие интернет...
🤯1
Рейтинг контента и пользователей на основе офелократии. Часть 2. Реализация на SQL
В первой части мы обсудили философские основы рейтинговой системы и основные принципы её работы. Теперь перейдём к техническим деталям реализации на MySQL.
https://habr.com/ru/companies/ruvds/articles/964162/
Алгоритмы и Структуры данных
В первой части мы обсудили философские основы рейтинговой системы и основные принципы её работы. Теперь перейдём к техническим деталям реализации на MySQL.
https://habr.com/ru/companies/ruvds/articles/964162/
Алгоритмы и Структуры данных
Хабр
Рейтинг контента и пользователей на основе офелократии. Часть 2. Реализация на SQL
Как сделать на SQL, чтобы голос полезного гражданина Джима Хокинса был весомее, чем голоса трёх троллей-пиратов ? Первая часть статьи В первой части мы обсудили философские основы рейтинговой системы...
👍1
Два универсальных SIMD алгоритма
Большинство SIMD инструкций узконаправленны, например применяют бинарную операцию параллельно для нескольких чисел, упакованных в длинный регистр. Применение таких операций прямолинейно и в большинстве случаев компилятор сам оптимизирует код с использованием таких инструкций. Например компилятор легко соптимизирует таким образом проверку несложного предиката на массиве или например суммирование элементов массива. Есть однако и более универсальные инструкции, в частности довольно много всякого рода манипуляций с битами внутри регистра. В этой статье хочу рассказать о двух таких инструкциях: уже давно присутствующей PSHUFB и довольно новой GF2P8AFFINEQB, расскажу как с их помощью делать побайтовую обработку общего вида и приведу пару примеров с известными операциями такими как popcount, подсчет четности, разворот битов числа.
https://habr.com/ru/articles/964608/
Алгоритмы и Структуры данных
Большинство SIMD инструкций узконаправленны, например применяют бинарную операцию параллельно для нескольких чисел, упакованных в длинный регистр. Применение таких операций прямолинейно и в большинстве случаев компилятор сам оптимизирует код с использованием таких инструкций. Например компилятор легко соптимизирует таким образом проверку несложного предиката на массиве или например суммирование элементов массива. Есть однако и более универсальные инструкции, в частности довольно много всякого рода манипуляций с битами внутри регистра. В этой статье хочу рассказать о двух таких инструкциях: уже давно присутствующей PSHUFB и довольно новой GF2P8AFFINEQB, расскажу как с их помощью делать побайтовую обработку общего вида и приведу пару примеров с известными операциями такими как popcount, подсчет четности, разворот битов числа.
https://habr.com/ru/articles/964608/
Алгоритмы и Структуры данных
Хабр
Два универсальных SIMD алгоритма
Кликбейтная картинка от ChatGPT Большинство SIMD инструкций узконаправленны, например применяют бинарную операцию параллельно для нескольких чисел, упакованных в длинный регистр. Применение таких...
🤯1
Кодирование с помощью параметризации нечётных чисел
Рассмотрим стандартную 8-битную кодировку (например, ASCII+). Но с одним условием, мы хотим передавать сообщения так, чтобы только адресат мог их расшифровать — без применения традиционных криптографических примитивов, таких как AES или RSA. Есть ли альтернатива? Оказывается, да — можно построить биективное отображение между символами и определённым подмножеством нечётных натуральных чисел, генерируемых по заданному правилу.
https://habr.com/ru/articles/964666/
Алгоритмы и Структуры данных
Рассмотрим стандартную 8-битную кодировку (например, ASCII+). Но с одним условием, мы хотим передавать сообщения так, чтобы только адресат мог их расшифровать — без применения традиционных криптографических примитивов, таких как AES или RSA. Есть ли альтернатива? Оказывается, да — можно построить биективное отображение между символами и определённым подмножеством нечётных натуральных чисел, генерируемых по заданному правилу.
https://habr.com/ru/articles/964666/
Алгоритмы и Структуры данных
🤯1
Алготрейдинг на крипторынке: Реализация стратегии «Bomberman» как самостоятельного Python-бота
. Вдохновившись недавней статьей на Veles Finance "«Bomberman»: стратегия для крипторынка с индикаторами BOP, Mean Reversion и Дончиана", я решил воплотить эту идею в жизнь. Не просто в теории, а в коде: создал полноценного алгобота на Python, который автоматизирует торговлю, тестирует параметры и визуализирует результаты.
Этот бот прозрачен: использует открытые данные с binance, классические индикаторы технического анализа и строгий walk-forward бэктест, чтобы избежать look-ahead bias (смещения в будущее).
В статье разберем логику стратегии, архитектуру бота, ключевые функции и реальные результаты на исторических данных BTC/USDT. Если вы программист с интересом к финансам или трейдер, жаждущий автоматизации, — добро пожаловать. Мы пройдемся по коду, формулам и рискам.
https://habr.com/ru/articles/964672/
Алгоритмы и Структуры данных
. Вдохновившись недавней статьей на Veles Finance "«Bomberman»: стратегия для крипторынка с индикаторами BOP, Mean Reversion и Дончиана", я решил воплотить эту идею в жизнь. Не просто в теории, а в коде: создал полноценного алгобота на Python, который автоматизирует торговлю, тестирует параметры и визуализирует результаты.
Этот бот прозрачен: использует открытые данные с binance, классические индикаторы технического анализа и строгий walk-forward бэктест, чтобы избежать look-ahead bias (смещения в будущее).
В статье разберем логику стратегии, архитектуру бота, ключевые функции и реальные результаты на исторических данных BTC/USDT. Если вы программист с интересом к финансам или трейдер, жаждущий автоматизации, — добро пожаловать. Мы пройдемся по коду, формулам и рискам.
https://habr.com/ru/articles/964672/
Алгоритмы и Структуры данных
Хабр
Алготрейдинг на крипторынке: Реализация стратегии «Bomberman» как самостоятельного Python-бота
. Вдохновившись недавней статьей на Veles Finance "«Bomberman»: стратегия для крипторынка с индикаторами BOP, Mean Reversion и Дончиана" , я решил воплотить эту идею в жизнь. Не просто в теории, а в...
🤯1
Арбитраж ставок финансирования — создаём скрипт для отслеживания возможностей
На крипто рынке у бессрочных фьючерсов существует специальный механизм: ставка финансирования (funding rate) - периодический платёж между держателями длинных (long) и коротких (short) позиций, который служит для выравнивания цены фьючерса с ценой спота.
Арбитраж по ставке финансирования - стратегия, цель которой не столько угадать движение цены, сколько извлечь выгоду из разницы в ставках финансирования на разных площадках или между контрактом и спотом.
Например: если фьючерс на актив торгуется с положительной ставкой +0.03 % за период, то держатели short получают оплату от long. Арбитражер может занять длинную позицию на споте и короткую на фьючерсе, тем самым оставаясь почти нейтральным к движению цены, и получать платёж по ставке. Или - если ставка отрицательная (short платят long) - можно действовать наоборот: short спот и long фьючерс.
https://habr.com/ru/articles/965072/
Алгоритмы и Структуры данных
На крипто рынке у бессрочных фьючерсов существует специальный механизм: ставка финансирования (funding rate) - периодический платёж между держателями длинных (long) и коротких (short) позиций, который служит для выравнивания цены фьючерса с ценой спота.
Арбитраж по ставке финансирования - стратегия, цель которой не столько угадать движение цены, сколько извлечь выгоду из разницы в ставках финансирования на разных площадках или между контрактом и спотом.
Например: если фьючерс на актив торгуется с положительной ставкой +0.03 % за период, то держатели short получают оплату от long. Арбитражер может занять длинную позицию на споте и короткую на фьючерсе, тем самым оставаясь почти нейтральным к движению цены, и получать платёж по ставке. Или - если ставка отрицательная (short платят long) - можно действовать наоборот: short спот и long фьючерс.
https://habr.com/ru/articles/965072/
Алгоритмы и Структуры данных
Хабр
Арбитраж ставок финансирования — создаём скрипт для отслеживания возможностей
Введение: что такое арбитраж по ставке финансирования На крипто рынке у бессрочных фьючерсов существует специальный механизм: ставка финансирования (funding rate) - периодический платёж между...
🤯1
Решаем криптарифмы с помощью алгебры и python
Если вы увлекались математикой в возрасте до 12 лет, то, наверное, встречались с криптарифмами - числовыми ребусами.
Числовым ребусом называется корректное арифметическое выражение (обычно - равенство), часть цифр в котором заменена на буквы и звездочки. Правила просты: одинаковые буквы заменяются на одинаковые цифры, разные - на разные.
Задача - восстановить исходные цифры, получив верное равенство.
Числовые ребусы хороши для тренировки у младшеклассников навыков логического мышления и счета в столбик. Однако и взрослым программистам может быть интересно поискать ответ на общий вопрос - а как, всё таки, алгоритмизировать процесс решения ребуса?
https://habr.com/ru/articles/733642/
Алгоритмы и Структуры данных
Если вы увлекались математикой в возрасте до 12 лет, то, наверное, встречались с криптарифмами - числовыми ребусами.
Числовым ребусом называется корректное арифметическое выражение (обычно - равенство), часть цифр в котором заменена на буквы и звездочки. Правила просты: одинаковые буквы заменяются на одинаковые цифры, разные - на разные.
Задача - восстановить исходные цифры, получив верное равенство.
Числовые ребусы хороши для тренировки у младшеклассников навыков логического мышления и счета в столбик. Однако и взрослым программистам может быть интересно поискать ответ на общий вопрос - а как, всё таки, алгоритмизировать процесс решения ребуса?
https://habr.com/ru/articles/733642/
Алгоритмы и Структуры данных
Хабр
Решаем криптарифмы с помощью алгебры и python
Если вы увлекались математикой в возрасте до 12 лет, то, наверное, встречались с криптарифмами - числовыми ребусами. Числовым ребусом называется корректное арифметическое выражение (обычно -...
❤1🤯1
Поведенческие шаблоны проектирования: назначение, структура, примеры использования
Как создавать приложения, которые легко поддерживать и масштабировать: подробный разбор поведенческих шаблонов.
https://proglib.io/p/povedencheskie-shablony-proektirovaniya-naznachenie-struktura-primery-ispolzovaniya-2022-02-22
Алгоритмы и Структуры данных
Как создавать приложения, которые легко поддерживать и масштабировать: подробный разбор поведенческих шаблонов.
https://proglib.io/p/povedencheskie-shablony-proektirovaniya-naznachenie-struktura-primery-ispolzovaniya-2022-02-22
Алгоритмы и Структуры данных
Библиотека программиста
🏗️ Поведенческие шаблоны проектирования: назначение, структура, примеры использования
Как создавать приложения, которые легко поддерживать и масштабировать: подробный разбор поведенческих шаблонов.
👍1
Как работает навигация между городами без интернета
2ГИС с самой первой версии навигатора умеет строить разные виды маршрутов — автомобильные, пешеходные, маршруты на общественном транспорте — на мобильных устройствах без доступа к интернету, но только внутри городов.
С 2019 года 2ГИС также умеет строить маршруты между городами, но только при наличии интернета.
Уже давно наши пользователи просили дать возможность строить междугородние маршруты без доступа к сети. И вот, мы наконец сделали это.
https://habr.com/ru/companies/2gis/articles/959712/
Алгоритмы и Структуры данных
2ГИС с самой первой версии навигатора умеет строить разные виды маршрутов — автомобильные, пешеходные, маршруты на общественном транспорте — на мобильных устройствах без доступа к интернету, но только внутри городов.
С 2019 года 2ГИС также умеет строить маршруты между городами, но только при наличии интернета.
Уже давно наши пользователи просили дать возможность строить междугородние маршруты без доступа к сети. И вот, мы наконец сделали это.
https://habr.com/ru/companies/2gis/articles/959712/
Алгоритмы и Структуры данных
Хабр
Как работает навигация между городами без интернета
2ГИС с самой первой версии навигатора умеет строить разные виды маршрутов — автомобильные, пешеходные, маршруты на общественном транспорте — на мобильных устройствах без доступа к интернету, но только...
🤯1
Серверы VALORANT с тикрейтом 128
Привет! Меня зовут Brent «Brentmeister» Randall (Брент Рэндалл). Я — инженер из команды Gameplay Integrity, которая занимается игрой VALORANT. В сферу нашей ответственности входит система сборки игры, фреймворки, используемые для автоматизации различных задач, производительность игрового клиента и серверов. Именно последнему пункту этого списка и посвящена данная статья. Я поделюсь с вами историей поиска подходов, позволивших вывести производительность наших серверов на оптимальный уровень.
https://habr.com/ru/companies/wunderfund/articles/964694/
Алгоритмы и Структуры данных
Привет! Меня зовут Brent «Brentmeister» Randall (Брент Рэндалл). Я — инженер из команды Gameplay Integrity, которая занимается игрой VALORANT. В сферу нашей ответственности входит система сборки игры, фреймворки, используемые для автоматизации различных задач, производительность игрового клиента и серверов. Именно последнему пункту этого списка и посвящена данная статья. Я поделюсь с вами историей поиска подходов, позволивших вывести производительность наших серверов на оптимальный уровень.
https://habr.com/ru/companies/wunderfund/articles/964694/
Алгоритмы и Структуры данных
Хабр
Серверы VALORANT с тикрейтом 128
Привет! Меня зовут Brent «Brentmeister» Randall (Брент Рэндалл). Я — инженер из команды Gameplay Integrity, которая занимается игрой VALORANT. В сферу нашей ответственности входит система сборки игры,...
👍2❤1
Главная проблема «чистых архитектур»
Откройтелюбой пулл‑реквест в проекте с любой «чистой архитектурой», и вы скорее всего увидите не обсуждение бизнес‑логики, а срач. «Это нельзя класть в UseCase, это логика домена!», «Зачем тут еще один DTO, мы же просто поле прокидываем!», «Этот интерфейс не нужен, у нас никогда не будет другой реализации!». Полагаю, с очень многими такое случалось.
Это и есть главная проблема. «Чистая архитектура» — это не инженерная дисциплина. Это множество концепций, который каждый понимает по своему. И это касается не только чистой архитектуры, которую описывает «о великий Роберт Мартин». Это касается вообще всех архитектур. Из‑за отсутствия конкретных ответов каждая команда превращается в парламент, где все спорят, но никто ничего не может решить. Архитектура из инструмента для разработки превращается в причину, по которой разработка стоит на месте, а страдают все.
https://habr.com/ru/articles/965812/
Алгоритмы и Структуры данных
Откройтелюбой пулл‑реквест в проекте с любой «чистой архитектурой», и вы скорее всего увидите не обсуждение бизнес‑логики, а срач. «Это нельзя класть в UseCase, это логика домена!», «Зачем тут еще один DTO, мы же просто поле прокидываем!», «Этот интерфейс не нужен, у нас никогда не будет другой реализации!». Полагаю, с очень многими такое случалось.
Это и есть главная проблема. «Чистая архитектура» — это не инженерная дисциплина. Это множество концепций, который каждый понимает по своему. И это касается не только чистой архитектуры, которую описывает «о великий Роберт Мартин». Это касается вообще всех архитектур. Из‑за отсутствия конкретных ответов каждая команда превращается в парламент, где все спорят, но никто ничего не может решить. Архитектура из инструмента для разработки превращается в причину, по которой разработка стоит на месте, а страдают все.
https://habr.com/ru/articles/965812/
Алгоритмы и Структуры данных
Хабр
Главная проблема «чистых архитектур»
Откройтелюбой пулл‑реквест в проекте с любой «чистой архитектурой», и вы скорее всего увидите не обсуждение бизнес‑логики, а срач. «Это нельзя класть в UseCase, это логика...
👍1