Технические лайфхаки для конкурсов

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

Формальный язык поиска

Многие SMM-щики вынуждены проходить все круги ада, пока не автоматизируют максимум процессов при проведении нетипичных конкурсов. Поэтому хотим поделиться некоторыми из используемых нами технических лайфхаков.
Данная статья написана с уклоном на практическое применение регулярных выражений в проектах. Изначально написана для начинающих разработчиков в моей компании. Статья включает в себя примеры использования на JavaScript (TypeScript).


Женщины играли заметную роль в программировании, начиная с Ады Лавлейс. Поэтому сегодня (как и всегда) в нашем блоге — никаких слов про «украшения офиса», а только программирование, только хардкор.
В этой подборке — 8 докладов женщин, спикеров наших конференций. Мы разделили доклады по темам: можете переходить сразу к своему стеку или смотреть все подряд. Мы понимаем, что некоторые доклады могли частично устареть, но они нашли большой отклик у зрителей, и в них можно найти полезные идеи и трюки.

В этом посте я расскажу о технике REcollapse. Я изучал её последние пару лет, чтобы обнаружить до странности простые, но эффективные уязвимости в защищённых объектах. Эта техника может быть использована для захвата учётных записей с нулевым взаимодействием, обнаружения новых обходных путей для брандмауэров веб-приложений и многого другого.
Этот пост преимущественно основан на моём выступлении на BSidesLisbon 2022 и посвящён запуску инструмента REcollapse, который теперь доступен на GitHub. Это также то, что мы начали исследовать внутри Ethiack.
Всё начинается с непредвиденного ввода.

Unicode – это набор символов, целью которого является определение всех символов и глифов всех человеческих языков, живых и мертвых. Поскольку всё больше и больше программ должны поддерживать несколько языков или просто любой язык, юникод в последние годы приобретает всё большую популярность. Использование различных наборов символов для разных языков может быть слишком обременительным для программистов и пользователей.
К сожалению, юникод привносит свои требования и подводные камни, когда речь заходит о регулярных выражениях. Но в дополнение к сложностям, он также приносит и новые возможности.
Привет, Хабр!
Если ваш проект вырос, в нем бэкенд с фронтендом, различные точки входа API, интеграции с внешними системами, сложные алгоритмы, проверки введенных данных пользователем на валидность, диаграммы бизнес-процессов имеют тысячи ветвей, то скорее всего регрессионное тестирование занимает кучу времени, и проводить его вручную уже не выгодно. Проще эту работу поручить машине и тестировать продукт автоматически. Первый вопрос, который возникает — «Как генерировать данные?», а конкретнее, как генерировать то, что может ввести пользователь. Этот вопрос мы и разберем в данной статье.

Регулярные выражения – очень полезный и удобный инструмент для поиска и замены текста. Однако в некоторых случаях они могут привести к зависанию системы или даже стать причиной уязвимости к ReDoS-атакам.

Хороший код читается легко, как проза. Многие книги учат нас тому, как важно делить код на небольшие, повторно используемые, легко потребляемые блоки.
Но почему-то, в случае с регэкспами у программистов как будто появляется слепое пятно на чувстве стиля. Вот такая регулярка – совершенно обычное дело:
/^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.]((19|20)\d\d)$/
При написании HTML-страницы по методологии БЭМ («Блок, Элемент, Модификатор») БЭМ-сущности привязываются к узлам HTML-дерева. В предыдущих статьях я рассматривал, как можно выполнить в скрипте на языке PowerShell проверку правильности написания названий БЭМ-сущностей по отдельности с помощью регулярных выражений.
В этой статье рассмотрено, какие есть правила для совмещения нескольких имен БЭМ-сущностей на одном узле HTML-дерева и как соблюдение этих правил можно проверить в скрипте на языке PowerShell. Приведены иллюстрации фрагментов результатов работы скрипта в разных случаях, при обнаружении разных ошибок.
Распознавание типов БЭМ-сущностей (блок, элемент, разные виды модификаторов) в скрипте на языке PowerShell с помощью простых регулярных выражений.
Предполагается, что скрипт получает файл с кодом на языке HTML, разбирает его (парсит) и определяет типы БЭМ-сущностей, привязанных к узлам HTML-дерева, после чего выводит информацию об этом в окно терминала (консоли). Приведена иллюстрация того, как может работать подобный скрипт. Такой инструмент можно использовать для изучения методологии БЭМ самому или обучения этой методологии других.
В методологии БЭМ, которую используют для создания сайтов, существует соглашение (схема) по именованию классов CSS (БЭМ-сущностей), которые привязывают к HTML-элементам HTML-дерева. Я рассматриваю классическую схему именования классов CSS по методологии БЭМ, а также — как создать функцию на языке PowerShell для проверки (валидации) имен БЭМ-сущностей на ошибки.
Проверка выполняется с помощью ряда простых регулярных выражений, по которым одно за другим в определенном порядке проверяются правила именования. Каждое из применяемых регулярных выражений я рассматриваю в подробностях.
Приведена иллюстрация, как может работать (какой результат может выдавать в консоль) такой скрипт-валидатор.

К старту курса по Fullstack-разработке на Python показываем, как работают регулярные выражения, на примере их движка с визуализацией, которую вы видите на КДПВ. Под катом подробности и код.

Всем привет! Я Даниил, java разработчик в Just AI, и в этой статье я расскажу, как мы столкнулись с проблемой backtracking’а в регулярных выражениях и как ее решили с помощью библиотеки re2j.

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

Набор утилит для потоковой обработки текста появился уже в первых версиях Unix и доступен практически везде. Это такие команды как cat/tac, head/tail, cut, grep, sed, sort, uniq, wc, nl, fmt. Каждая из этих утилит выполняет свою простую обработку текста, но комбинируя их в конвейере, т.е. передавая стандартный вывод одной команды на вход следующей, можно обрабатывать тексты произвольного размера или быстро решить некоторые задачи.

Регулярные выражения для ленивых людей?!
Regex – это модуль вашего языка программирования который позволяет работать со сложными и большими строками просто! Давайте разбираться в них вместе. Приятного прочтения ;)
Эта короткая статья обязана одному интересному тестовому заданию, в котором требовалось реализовать базовый функционал утилиты grep на языке PHP, не используя никаких встроенных функций по работе с регулярными выражениями.
Строка с шаблоном должна была включать поддержку следующих метасимволов:
^ - начало строки
$ - конец строки
. - любой символ
* - 0 или более раз
? - 0 или 1 раз
+ - 1 или более раз
Так же нужно было поддерживать экранирование метасимволов при помощи '\', чтобы по ним возможно было производить поиск. В результате, получившаяся утилита занимает порядка ста строк кода, из которых 70 - это функции регулярных выражений.
Для тех кого интересует простая реализация механизма регулярных выражений в сугубо обучающих целях, здесь приведен ее код и краткий разбор.

Получение несколько десятков параметров запросом в базы oracle, автоматическая разведка (discovery) метрик и наполнение их данными, и все за один запрос к базе