Привет! Сегодня расскажу, как я автоматизировал поиск внешних ссылок в Excel-файлах с помощью PowerShell, и какие технические сложности пришлось преодолеть по пути. История включает работу с COM-объектами, разбор ZIP-архивов, XML-парсинг, многопоточность и создание GUI на Windows Forms.
Рубрика «XML»
Как я приручал Excel: автоматизация поиска внешних ссылок с помощью PowerShell
2025-05-18 в 18:41, admin, рубрики: Excel, GUI, powershell, windowsforms, XML, автоматизация, многопоточностьКомпактные структуры данных
2025-03-12 в 13:01, admin, рубрики: abstract syntax tree, AST, json, ruvds_переводы, XML, деревья, днк, сжатие данных
Введение
Несколько месяцев назад в поисках идей по ускорению кода я изучал множество научных статей по computer science. Не буду притворяться, что хорошо их понимал, но меня не пугает непонятное, и я готов признать своё невежество1. Я обнаружил статью, написанную пятнадцать лет назад2, в которой было множество новых для меня концепций. Мне никак не удавалось в них разобраться.
Что же делать дальше? Можно искать другие статьи, чтобы они заполнили мои пробелы. Это рискованное предприятие, потому что они могут запутать ещё больше, но избежать этого нельзя. Я нашёл статью с нужной структурой данных, в которой упоминался исходный код с веб-сайта. Код был написан на C++, а я работаю на Rust, но решил, что всё равно стоит на него взглянуть. Однако зайдя на сайт, я не обнаружил там ресурс, поэтому я написал владельцу веб-сайта, который оказался преподавателем computer science.
Этот преподаватель (Гонсало Наварро) очень тепло меня принял и сразу же ответил мне3 4. И только в процессе общения с ним я осознал, что видел его фамилию на множестве статей в этой области. Оказалось, я познакомился с одним из специалистов мирового уровня в области компактных структур данных (succinct data structure). Невежество может завести очень далеко.
Что же такое компактные структуры данных? Если вы изучали в последние десятилетия computer science, то могли сталкиваться с ними, но мне не доводилось встречаться с ними в процессе работы программистом, а если и доводилось, то я сразу же о них забыл. Но я считаю, что эти структуры данных обладают потрясающими свойствами.
Все мы пользуемся массивами и хэш-таблицами5, популярны также различные деревья. Нам не нужно полностью понимать их устройство, чтобы эффективно пользоваться их свойствами. А теперь я задаюсь вопросом, почему же люди не используют компактные структуры данных чаще.
Я решил, что стоит немного о них рассказать.Читать полностью »
XML против JSON: как «слишком много тегов» убивает скорость
2024-10-20 в 13:01, admin, рубрики: json, XMLКогда речь заходит о форматах обмена данными, сразу на ум приходят два давних соперника: XML и JSON. Это как сравнить эпическое повествование с краткой заметкой на полях. XML — это длинный роман, где каждый нюанс тщательно прописан и обрамлен тегами. JSON — это записка на холодильнике с краткими инструкциями. Оба формата выполняют свою задачу, но важно понимать, когда лучше использовать один, а когда другой. Ведь забивать гвозди молотком — это хорошо, а вот пытаться забивать им шурупы — уже не так весело.
Автоматизация проверки XML сообщений на платформе 1С с помощью инструмента Vanessa Automation
2024-09-13 в 13:08, admin, рубрики: 1С, vanessa-automation, XML, сценарииВсем привет! Меня зовут Пётр и это моя первая статья.
Занимаюсь функциональным и интеграционным тестированием на проекте 1С. И решил попробовать свои силы в автоматизированном тестировании - чтобы упростить себе жизнь. И на текущий момент около года работаю с инструментом Vanessa Automation и решил поделиться своим решением для проверки XML сообщений. К нему я пришел не сразу - пришлось экспериментировать, чтобы найти рабочий подход для таких проверок.
Проблема
SolriXML: Лучи света в темном лесу XML-данных
2024-09-07 в 7:05, admin, рубрики: python, tfidfvectorizer, web-разработка, XML, xml parser, xml schema, xml web services, xmlhttprequest, маркетплейс
В эпоху больших данных работа с огромными XML-файлами часто становится настоящим испытанием для разработчиков и аналитиков. Представьте себе гигантский XML-файлЧитать полностью »
RSS отлично себя чувствует
2024-04-08 в 9:00, admin, рубрики: atom, DiscordRSS, FeedBurner, Feedly, FreshRSS, google reader, Inoreader, MonitoRSS, NewsBlur, PolitePol, rss, RSS-Bridge, RSSHub, ruvds_статьи, semantic web, VCard, XML, YouTube, генерация фидов, Семантическая Сеть
RSS и Atom — простые и понятные форматы для публикации контента. Кто-то считает, что золотое время RSS осталось в прошлом, но это не так. На самом деле этап хайпа остался в прошлом, а сейчас синдикация вышла на плато продуктивного использования в своих нишах. Например, подкасты (MP3 по RSS) живут и процветают.
Но корпорациям использовать RSS не выгодно. Например, компания Google удалила RSS откуда могла и позакрывала сервисы. Но это не помогло. RSS отлично себя чувствует. Хабр и многие другие сайты получают существенную часть трафика со своих фидов.
Читать полностью »
SQL в качестве API
2024-03-10 в 8:01, admin, рубрики: ansi, api, crud, elasticsearch, Go, graphql, http, json, sql, timeweb_статьи_перевод, XML, архитектура, бэкенд
SQL в API???
Верно, вы уже успели подумать: «это же безумие, предоставлять API, который принимает SQL». Да, это ужасная идея. Особенно, если API обращён к Интернету. Делать так небезопасно, вы напрашиваетесь на атаки в виде SQL-инъекций. Поддержка такого интерфейса превратится в кошмар, а сама реализация бэкенда будет замкнута на конкретную технологию (это будет какая-нибудь база данных ANSI SQL).
Но справедливо ли такое суждение? Время его пересмотреть!Читать полностью »
Когда парсеры URL-адресов расходятся (CVE-2023-38633)
2023-09-15 в 13:00, admin, рубрики: Canva, librsvg, ruvds_перевод, XML, информационная безопасность, обход каталога, уязвимости
Обнаружение и разбор уязвимости CVE-2023-38633 в librsvg, заключающейся в ситуации, когда две реализации URL-парсера (Rust и Glib) расходятся в парсинге схемы файла, создавая уязвимость к атаке обхода каталога.Читать полностью »
Манипуляции с байт-кодом Java
2023-04-08 в 8:01, admin, рубрики: asm, c++, class, classloader, Foo, java, javascript, jit, push, spring, timeweb_статьи_перевод, XML, Блог компании Timeweb Cloud, виртуальная машина, консоль
В этой статье мы разберём, как добавить к файлу класса публичный атрибут. Когда загрузчик классов завершит загрузку модифицированного файла класса, мы увидим то поле, которое добавили вручную.
Читать полностью »
Проверка XML. Schematron
2023-03-14 в 9:00, admin, рубрики: open source, ruvds_статьи, schematron, XML, xml schema, xslt, Блог компании RUVDS.com, Программирование
Так или иначе, все сервисы сталкиваются с задачами валидации. Часто они сводятся к простым и однотипным проверкам: заполнены ли все обязательные поля, верен ли формат телефонного номера, кредитной карты и пр. Но существуют проекты, в которых условия и правила проверок более разнообразные, да и те временами требуют серьёзного пересмотра. Внесение же изменений или создание дополнительных правил валидации требует непростых согласований и привлечения внимания нескольких команд разработчиков, обновления документации.
Недавно мне довелось поучаствовать в проекте, особую роль в котором занимают функции форматно-логического контроля входящих документов. Как следствие, у меня появились некоторые варианты решения подобных задач. Одним из них я и хочу поделиться.Читать полностью »