home.social

#макросы — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #макросы, aggregated by home.social.

fetched live
  1. Декларативные макросы в Rust: полное руководство

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

    habr.com/ru/articles/1070794/

    #rust #макросы #macro_rules #декларативные_макросы

  2. Айсберг по Confluence: открываем спрятанное на самом видном месте

    Привет, Хабр! На связи старший технический писатель РТЛабс Фёдор Пеплин. Команда РТЛабс — коллектив из 2500+ человек. Объём контента для такого количества сотрудников может исчисляться миллионами знаков, а количество пространств, используемых для хранения информации и работы с ней, — несколькими сотнями. При этом всем нам нужно хранить информацию и обмениваться ею. Один из инструментов, который мы используем для этого, — Atlassian Confluence . В этой статье я поделюсь некоторыми лайфхаками, которые позволят значительно упростить работу с ним.

    habr.com/ru/companies/rtlabs/a

    #технический_писатель #простанство #confluence #макросы #метки #шаблоны #оформление #техническая_документация

  3. Почтовая рассылка без сервиса рассылок. Только Excel, Outlook и шаблоны писем

    База e-mail адресов в Excel и задача сделать рассылку писем. Сервиса рассылок нет, надстройки ставить нельзя из-за корпоративных ограничений. Как сделать полуавтоматическую рассылку без установки стороннего софта имея только Excel и корпоративный Outlook ? В статье даны все возможные способы рассылок через Excel и описан макрос, который собирает партию из видимых строк, кладёт её в скрытую копию и принципиально ничего не отправляет сам. Его код для копирования и описание всех процессов с которыми я столкнулся, решая данную задачу. Если у вас есть похожие задачи, вы сможете их решить после прочтения статьи.

    habr.com/ru/articles/1065760/

    #VBA #Excel #Outlook #Exchange #emailрассылка #макросы #автоматизация #BCC #корпоративная_почта #скрытая_копия

  4. Как убрать virtual и не сойти с ума: велосипедные генераторы через type loopholes

    В C++ уже есть корутины. Есть диапазоны. Есть готовые библиотеки. Но это не мешает взять гаечный ключ и начать собирать генератор вручную. В предыдущей статье макросы внезапно начинают изображать из себя язык: DO , LET , IS управляют препроцессорным ритуалом и создают DSL. Это синтаксис. Это оболочка. Это фронтенд. (чтение предыдущей статьи необязательно для понимания этой) Но ведь есть не только синтаксис, можно создать и конкретную семантику — генераторы. В этой статье я строю велосипедный генератор. Самый честный.

    habr.com/ru/companies/timeweb/

    #C++ #метапрограммирование #генераторы #type_loopholes #макросы #оптимизация #оптимизации_компилятора #ненормальное_программирование #timeweb_статьи #виртуальные_функции

  5. Безумие препроцессора: внедряем do-нотацию для монад из Haskell в C++

    Добро пожаловать в чистилище препроцессора — место, где здравый смысл уступает место макросам. Сегодня мы заставим C++ притвориться Haskell-ем и внедрим do-нотацию, за которую любой адепт «чистого языка» предаст нас анафеме. Программисты на C++ делятся на два типа: те, кто боится препроцессора, и те, кто познал сие древнее чудо с сишных времён. Сегодня мы перейдем черту. Функциональное программирование манит своими абстракциями, но когда дело доходит до цепочек вычислений в монадах, C++ встречает нас бесконечными лямбдами и вложенностью, от которой рябит в глазах. В Haskell эта проблема решена элегантным do-синтаксисом. А что, если я скажу, что мы можем получить то же самое в C++, используя лишь тёмную магию макросов, простые шаблоны и полное пренебрежение здравым смыслом? Приготовьтесь: мы будем дорабатывать парсер и превращать ваш код в нечто, что заставит коллег вызвать экзорциста. Это история о том, как затащить чистую красоту монад в суровый мир C++. Запустить конвейер безумия

    habr.com/ru/companies/timeweb/

    #C++ #монады #haskell #doнотация #ненормальное_программирование #функциональное_программирование #препроцессор #макросы #timeweb_статьи

  6. Как я писал библиотеку для локализации на Rust

    Эта статья посвящена тому, как я делал библиотеку локализации на Rust. От разработки для своего приложения до полноценного универсального решения.

    habr.com/ru/articles/994098/

    #rust #локализация #макросы #библиотека

  7. Что не так в Расте :: впечатления вкатуна

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

    habr.com/ru/articles/973938/

    #макросы #метапрограммирование #документация #комментарии_в_коде #тестирование

  8. Взаимодействие с пользователем в макросах Р7 Офис. Часть 3. Мой метод

    Итак, как я и обещал, согласно собственного плана на данный цикл статей, в сегодняшней я расскажу о своем решении проблемы отсутствия штатных средств пользовательского ввода-вывода данных в макросах, для редакторов "Р7/OnlyOffice". Оно не претендует на какую-либо уникальность, или универсальность но, по крайней мере на мой взгляд, достаточно простое и удобно, чтобы рассказать вам о нем.

    habr.com/ru/articles/966156/

    #р7офис #офис #javascript #макросы

  9. Взаимодействие с пользователем в макросах «Р7-Офис» Часть 2. Взаимодействие почти легальными способами

    И так, после вводной части, я попытался подвести заинтересованного читателя к проблемам, которые возникают при решении различных типовых, казалось бы, задач по автоматизации разных процессов для отечественного редактора «Р7» версии «Десктоп». Кому лень читать, то основная мысль у меня была такая: поскольку АПИ автоматизации нам предоставляется на языке javascript, то придется идти методами, которые он нам предоставляет, в том числе и с возможностями в той части АПИ редакторов, которое от нас заботливо упрятали.

    habr.com/ru/articles/961720/

    #р7офис #р7 #javascript #макросы #автоматизация

  10. Как автоматизировать подготовку отчетности в Word: макросы на практике

    Всем привет! Я студент-работяга, который увлекается аналитикой в многогранном мире ИБ. Почти каждая задача (как аналитика, так и студента) так или иначе заканчивается подготовкой каких-то материалов: для аналитика — отчета, для студента — курсовой работы. В процессе подготовки этих материалов неизбежно сталкиваешься с рутиной из однообразных кликов (разметка текста, форматирование картинок и много другой скукоты). Однако справиться с ней можно, и сегодня я расскажу, как это сделать с помощью автоматизации в редакторе Word посредством VBA-макросов. Статья может быть полезна студентам и начинающим специалистам, но уверен, какие-то идеи пригодятся и тем, кто уже работает. Даже если вы не пользуетесь Microsoft Office, то все равно сможете почерпнуть для себя некоторые идеи, так как почти во всех пакетах есть поддержка языков программирования, например Basic в LibreOffice, Lua в пакете «МойОфис» или JavaScript в «Яндекс Документах». Кроме того, часть моих скриптов я выложил в открытый доступ. Когда пишут про автоматизацию в Microsoft Office, то в большинстве случаев имеют в виду Excel, однако я сломаю шаблон и расскажу вам про автоматизацию в Word, которую часто незаслуженно обходят стороной.

    habr.com/ru/companies/pt/artic

    #автоматизация #word #office_365 #макросы #надстройки #вайбкодинг #рутина #документация #отчетность #vba

  11. Взаимодействие с пользователем в макросах «Р7-Офис». Часть 1. Вводная

    В моих планах на эту серию статей - раскрыть вам некоторые, на мой взгляд, не самые очевидный аспект при написания макросов для офисного пакета «Р7-Офис» версии десктоп. А именно: как пользователь может взаимодействовать с макросом привычным ему, оконным способом. Думаю, многое из мною здесь написанного вряд ли будет вами легко найдено в открытом доступе. Кое – что конечно имеется в «секретных» Телеграмм чатах. Но некоторые сведения, вы наверное не найдёте даже там. Я надеюсь, изложенные в этих статьях мысли, будут стоить потраченных вами усилий на их чтение. Ну а если вам не интересны мои рассуждения на тему текущего положения дела с макросами в редакторе «Р7», то смело пропускайте эту вводную статью и ждите следующих практических.

    habr.com/ru/articles/959442/

    #импортозамещение #р7_офис #пользовательские_интерфейсы #макросы

  12. DX в процедурных макросах на Rust Привет, Хабр! Сегодня поговорим про процедурные макросы как про инструмент р...

    #rust #Procedural #macros #атрибутные #макросы #derive-макросы #функциональные #макросы #proc_macro #syn

    Origin | Interest | Match
  13. Продвинутое использование препроцессора C/C++

    Зачастую, в проектах ограничивается использование препроцессора по следующим причинам: — Он не похож на весь остальной язык; — Макросы могут возвращать неполные синтаксические конструкции, или вовсе различные, в зависимости от параметров. Ввиду перечисленных особенностей, читать код с активным использованием препроцессора зачастую становится на порядок сложнее кода без него. Со всеми его недостатками, инструмент есть в языке и достоин изучения.

    habr.com/ru/companies/timeweb/

    #препроцессор #c_language #макросы #метапрограммирование #c++ #C #ненормальное_программирование #функциональное_программирование #timeweb_статьи

  14. Метапрограммирование 2.0: макросы и генерация кода в современном мире

    Забудьте про скучные «Hello, World». Макросы и шаблоны давно стали полноценными инструментами архитектора кода: от хитрых C++-шаблонов до процедурных макросов Rust и Java-аннотаций, автоматически генерирующих целые фреймворки. В этой статье мы рассмотрим примеры, где metaprogramming избавляет от рутины и экономит часы работы над проектом. Детали как всегда под катом.

    habr.com/ru/companies/ruvds/ar

    #ruvds_статьи #метапрограммирование #генерация_кода #макросы #code_generation #Rust #Java #C++ #metaprogramming #шаблонный_код

  15. Кроссплатформенный терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 4

    Терминальная программа – это многофункциональный кроссплатформенный инструмент инженера, который позволяет взаимодействовать с внешним устройством или сервером. Приложение поддерживает различные вариации протокола Modbus, а также дает возможность работы с данными в строковом или байтовом формате. В этом обновлении я расширил работу с макросами. Теперь макросы поддерживают отправку нескольких сообщений за раз. А еще появился конструктор макроса, в котором можно отправлять как отдельные сообщения, так и весь макрос целиком. Подробнее читайте в этой статье!

    habr.com/ru/articles/895692/

    #modbus_rtu #modbus_tcp #ascii #avalonia_ui #terminal #терминал #com #кроссплатформенность #с# #макросы

  16. Кроссплатформенный терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 3

    Встречайте новое обновление моего терминала! Терминальная программа – это многофункциональный кроссплатформенный инструмент инженера, который позволяет взаимодействовать с внешним устройством или сервером. Приложение поддерживает различные вариации протокола Modbus, а также дает возможность работы с данными в строковом или байтовом формате. Главные фичи этой версии это макросы с пользовательскими именами, работа с байтами в режиме "Без протокола" и поддержка протоколов Modbus RTU и ASCII поверх TCP.

    habr.com/ru/articles/871788/

    #modbus #tcp #rtu #ascii #avalonia_ui #терминал #terminal #com #net #макросы

  17. [Перевод] Решение Advent of Code на этапе компиляции с использованием макросов Rust

    Писать качественный софт сложно. Написание тестов, обдумывание возникших сайдэффектов, муки выбора между оптимизацией скорости выполнения и использованием памяти. Идеальная программа — та, которая никогда не запускается. Никаких тебе мук выбора, багов и забот. Но что, если мы пойдем дальше, что если мы получим ответ на наш вопрос еще до того, как программа скомпилируется? В этом году я хотел написать идеальную программу для решения челленджа Advent of Code. Если идеальная программа и может существовать, она должна быть написана на Rust. Давайте помучаем декларативные макросы Rust для получения ответа на задачу первого дня Advent of Code в виде ошибки компиляции.

    habr.com/ru/companies/beget/ar

    #rust #макросы #advent_of_code__2024

  18. Надоело просто добавлять запись в log-файл. Что еще можно сделать с помощью syslog-ng в Astra Linux SE?

    Всем привет! Меня зовут Михаил, и в своей предыдущей статье я кратко осветил цепочку прохождения логов в ОС Astra Linux SE. Продолжаем! Любой человек, который регулярно сталкивается с темой логирования, рано или поздно задаётся вопросом: «А что ещё можно сделать с логами, помимо простого добавления записей в некоторый файл?» Поэтому сейчас поговорим о таком мощном инструменте обработки логов, как syslog-ng . Читать

    habr.com/ru/companies/astralin

    #логирование #syslogng #astralinux #linux #макросы #stdout #bashскрипт #парсер #субд #python

  19. Ещё одна статья про макросы. Часть 2

    Продолжаем предыдущую статью — вместе с Серёжей, Flutter Developer Surf, мы пройдём путём разработчика, который только начал изучать макросы, и разберём оставшиеся интересные (и негативные, да!) примеры. Читать дальше

    habr.com/ru/companies/surfstud

    #dart #flutter #макрос #макросы #кроссплатформенность #кроссплатформенная_разработка

  20. Макросы в tentacli. Часть один

    Со времени публикации первых двух статей мой проект сменил имя и концепцию. Теперь он называется TentaCLI и это название, являющееся игрой слов tentacle и cli , полностью отражает новую суть проекта. Хотя tentacli по прежнему может быть скачан с github и использоваться, как отдельное клиентское приложение, он и его части также доступны в виде крэйтов. Внедряемость, а так же возможность добавлять собственные модули в tentacli делает его подходящим для создания собственных приложений. В частности, у меня таких два: мини wow сервер для тестирования tine и скрытый проект binary army, в котором tentacli полностью раскрывает свой потенциал как щупальца-исполнителя - и для управления которыми я пишу сердце. А сердце tentacli - это чтение и обработка TCP пакетов и для облегчения работы с ними я использую макросы. Дальше будет много букаф и примеры кода

    habr.com/ru/articles/835240/

    #rust #tentacli #макросы #procmacro #wow #wotlk #terminal

  21. Макросы — напишут код за вас, но есть нюанс…

    Привет! Меня зовут Настя Ищенко, я — iOS-разработчик в KTS . Эта статья поможет узнать, что такое макросы и как они работают, а также понять, стоит ли добавлять их в свой проект.

    habr.com/ru/companies/kts/arti

    #макросы #iOS #iosразработка #SwiftSyntax #ActorMacro #WWDC #пользоа #тестирование

  22. Новая жизнь или начало экзистенциального кризиса?

    Ни для кого не секрет, что популярные языки программирования развиваются по схожему сценарию. Сначала появляется новый язык программирования с амбициозной и благой целью решить те или иные проблемы уже существующего языка, которые иначе, как созданием нового языка программирования, не решить. Далее язык набирает популярность, часто путем обрастания различными модными фичами. Теряет связь с миром свою простоту и лаконичность в бесконечной погоне за новыми возможностями. В какой-то момент наступает экзистенциальный кризис в виде Франкенштейна. А как отмыть кровь решать подобные проблемы, мы уже знаем. Или я несколько утрирую (или нет?), и, возможно, не все так плохо? Сегодня поговорим об этом в общем и о новом функционале языка Dart в частности.

    habr.com/ru/articles/815527/

    #dart #macro #macros #metaprogramming #codegeneration #flutter #метапрограммирование #макросы #build_runner

  23. Раскрываем секретные функции: магия макросов в Burp Suite

    Привет! Если ты думаешь, что знаешь всё о Burp Suite, я тебя удивлю! Этот мощный инструмент для тестирования веб-приложений скрывает в себе ещё больше возможностей, способных значительно упростить и ускорить работу. Сегодня мы изучим функционал макросов на практике и увидим, как они могут стать надежным помощником в процессе тестирования и анализа веб-приложений...

    habr.com/ru/articles/811329/

    #burp_suite #burp #макросы

  24. Практика замены MS Office: 4 ситуации, когда это невозможно…но вполне получается

    Привет! На связи Саша Безноздрев, ведущий инженер-разработчик К2Тех. Тематика замены продуктов Microsoft для корпоративных пользователей лежит сегодня на поверхности. Действительно, как быть, если вендор планирует аннулировать все подписки и отключить все, до чего сможет дотянуться, уже в ближайшее время? Но на самом деле проблему замены именно офисного пакета (то есть MS Office или MS 365, если пожелаете) мы в К2Тех прорабатываем уже очень давно. В этой статье я хочу поделиться опытом подобных проектов, рассказать о том, почему замена MS Office часто идет со скрипом, а также поднять вопросы (с ответами) — «кто виноват?», и «что теперь делать?». Под катом — примеры, когда заменить MS казалось нереальной задачей, но в итоге стало только лучше!

    habr.com/ru/companies/k2tech/a

    #к2тех #р7офис #Александр_Безноздрев #плагины #microsoft_office #аналог_microsoft_office #софт #инфраструктура #импортозамещение #макросы

  25. Как использовать макросы для систематизации документов «как в Confluence»?

    Привет! Приятно ведь читать хорошо оформленные статьи на уютном хабре? В которых часть текста спрятана под катом, есть подписи к картинкам, красивые и понятные таблицы и все остальные плюшки? Я думаю очень приятно. Поэтому предлагаю рассмотреть немного полезных советов, о том какие макросы в Confluence помогали делать это раньше, а теперь точно также помогают в EvaWiki. В интернете много полезной информации по использованию Confluence. Например, вот статья с рекомендациями по использованию макросов. В ней всё достаточно круто описано, но хотелось бы внести поправку. Конфлюенс ушел из России, а EvaWiki осталась. И теперь тот функционал, который был в зарубежном решении можно использовать в российском. Статья может быть полезной для тех, кто активно работал в Confluence и хочет точно также делать это в нашем ПО.

    habr.com/ru/companies/evateam/

    #confluence #макросы #документация_проекта #документация_кода #документация

  26. Julia. Метапрограммирование и макросы

    Julia является одним из самых востребованных математических языков программирования. Однако некоторые особенности этого языка, которые обеспечивают гибкость и позволяют расширять её области применения, не столь часто используются программистами. В этой статье пойдёт речь о механизме макросов, который выгодно её отличает от прочих скриптовых языков программирования. Механизм макросов используется в Julia довольно часто. Макрос при использовании начинается с символа @ и имеет вид @show , @benchmark … А также, в неявной форме, макросами являются регулярные выражения r"[a..z]" (это макрос с полным именем r_str), а также многочисленные другие способы применения, включая примеры Modia.jl с макросом u_str , где физическая величина «вшита» в число: L = 0.8u"m", m = 1.0u"kg", d = 0.5u"Nms/rad", g = 9.81u"m/s^2",

    habr.com/ru/articles/796765/

    #макросы #macro #julia #metaprogramming

  27. Почему проверять результат вызова malloc c помощью assert плохая идея

    Указатель, который вернула функция malloc, необходимо проверить перед использованием. Неправильным решением будет использовать для этого макрос assert. В этой статье мы разберём, почему это является антипаттерном.

    habr.com/ru/companies/pvs-stud

    #malloc #assert #макросы #си #си++ #c #c++ #качество_кода #нулевые_указатели

  28. Следует ли проверять указатель на NULL перед вызовом функции free?

    Короткий ответ: нет. Тем не менее, раз про это вновь и вновь спрашивают на Reddit, Stack Overflow и других сайтах, пришло время подробно разобрать эту тему. Оказывается, есть много интересного, о чём можно порассуждать.

    habr.com/ru/companies/pvs-stud

    #c #си #программирование #free #malloc #указатели #макросы #нулевые_указатели

  29. Мойофис: автоматизация отчётности в банке

    Опыт разработки макросов и надстроек для Мойофис показал, что можно автоматизировать практически любой процесс, который раньше выполнялся с использованием Excel и макросов на VBA. А надстройки (о них не сегодня) вообще позволяют создавать корпоративные инструменты в связках "Python-Мойофис", "Nanocad-Мойофис" и т. п. Вот пример одной учебной задачи по автоматизации отчетности в Таблице Мойофис.

    habr.com/ru/articles/790248/

    #мойофис #макросы

Share on Mastodon

Enter the server where you have an account.