Рубрика «XML»

Компактные структуры данных - 1

Введение

Несколько месяцев назад в поисках идей по ускорению кода я изучал множество научных статей по computer science. Не буду притворяться, что хорошо их понимал, но меня не пугает непонятное, и я готов признать своё невежество1. Я обнаружил статью, написанную пятнадцать лет назад2, в которой было множество новых для меня концепций. Мне никак не удавалось в них разобраться.

Что же делать дальше? Можно искать другие статьи, чтобы они заполнили мои пробелы. Это рискованное предприятие, потому что они могут запутать ещё больше, но избежать этого нельзя. Я нашёл статью с нужной структурой данных, в которой упоминался исходный код с веб-сайта. Код был написан на C++, а я работаю на Rust, но решил, что всё равно стоит на него взглянуть. Однако зайдя на сайт, я не обнаружил там ресурс, поэтому я написал владельцу веб-сайта, который оказался преподавателем computer science.

Этот преподаватель (Гонсало Наварро) очень тепло меня принял и сразу же ответил мне3 4. И только в процессе общения с ним я осознал, что видел его фамилию на множестве статей в этой области. Оказалось, я познакомился с одним из специалистов мирового уровня в области компактных структур данных (succinct data structure). Невежество может завести очень далеко.

Что же такое компактные структуры данных? Если вы изучали в последние десятилетия computer science, то могли сталкиваться с ними, но мне не доводилось встречаться с ними в процессе работы программистом, а если и доводилось, то я сразу же о них забыл. Но я считаю, что эти структуры данных обладают потрясающими свойствами.

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

Я решил, что стоит немного о них рассказать.Читать полностью »

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

Читать полностью »

Всем привет! Меня зовут Пётр и это моя первая статья.

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

Проблема

Читать полностью »

image

image

В эпоху больших данных работа с огромными XML-файлами часто становится настоящим испытанием для разработчиков и аналитиков. Представьте себе гигантский XML-файлЧитать полностью »

RSS отлично себя чувствует - 1

RSS и Atom — простые и понятные форматы для публикации контента. Кто-то считает, что золотое время RSS осталось в прошлом, но это не так. На самом деле этап хайпа остался в прошлом, а сейчас синдикация вышла на плато продуктивного использования в своих нишах. Например, подкасты (MP3 по RSS) живут и процветают.

Но корпорациям использовать RSS не выгодно. Например, компания Google удалила RSS откуда могла и позакрывала сервисы. Но это не помогло. RSS отлично себя чувствует. Хабр и многие другие сайты получают существенную часть трафика со своих фидов.
Читать полностью »

SQL в качестве API - 1

SQL в API??? 

Верно, вы уже успели подумать: «это же безумие, предоставлять API, который принимает SQL». Да, это ужасная идея. Особенно, если API обращён к Интернету. Делать так небезопасно, вы напрашиваетесь на атаки в виде SQL-инъекций. Поддержка такого интерфейса превратится в кошмар, а сама реализация бэкенда будет замкнута на конкретную технологию (это будет какая-нибудь база данных ANSI SQL).

Но справедливо ли такое суждение? Время его пересмотреть!Читать полностью »

Когда парсеры URL-адресов расходятся (CVE-2023-38633) - 1


Обнаружение и разбор уязвимости CVE-2023-38633 в librsvg, заключающейся в ситуации, когда две реализации URL-парсера (Rust и Glib) расходятся в парсинге схемы файла, создавая уязвимость к атаке обхода каталога.Читать полностью »

image

В этой статье мы разберём, как добавить к файлу класса публичный атрибут. Когда загрузчик классов завершит загрузку модифицированного файла класса, мы увидим то поле, которое добавили вручную.
Читать полностью »

Проверка XML. Schematron - 1


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

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

Топ-10 докладов DotNext 2022 Spring - 1

У нас есть традиция: каждые полгода перед тем, как провести конференцию DotNext, мы публикуем на Хабре десять докладов с предыдущей конференции, которые особенно понравились участникам.

Сейчас до осеннего DotNextЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js