По итогам апгрейда с 11 на 12 логичным показался шаг превращения базы в pluggable. Казалось бы, три простых действия — и проблема решена. Но во время миграции вылез ряд нетривиальных ошибок.
По итогам апгрейда с 11 на 12 логичным показался шаг превращения базы в pluggable. Казалось бы, три простых действия — и проблема решена. Но во время миграции вылез ряд нетривиальных ошибок.
Представим, что вот прямо сейчас в текущей строчке кода некоего класса нужно получить std::shared_ptr от this, чтобы передать его куда-нибудь. Создавать или нет?
В спецификации CDI предусмотрен механизм «перехватчиков», который позволяет реализовывать в прикладном коде приёмы аспектно-ориентированного программирования. Иначе говоря, разработчику становится доступна сквозная функциональность (cross cutting concerns), то есть прежде, чем обратиться к некоторому методу CDI-бина, у программиста появляется возможность выполнить предобработку, сам бизнес-метод и постобработку.
Для этих целей и существует механизм CDI Interceptors, причём применяется он не только для спецификации CDI, но и активно используется в технологии Enterprise JavaBeans.
Была поставлена задача — организовать резервное копирование на Google Drive. Анализ имеющихся решений в интернете не сильно порадовал.
google-drive-ocamlfuse — устанавливает кучу разного непонятного софта и требует браузер для своей работы, что несколько неприменимо к серверным системам.
За плечами Дмитрия Шебордаева более чем 20-летний опыт работы сначала разработчиком, а потом и руководителем. Он закончил «Московский государственный университет экономики, статистики и информатики» (МЭСИ) по специальности «Прикладная математика» в 1997 году. Будучи студентом последних курсов, работал в ЦГЭ программистом С++, где занимался созданием внутреннего языка, обработкой каротажных данных и анализом массивных объемов информации.
Если рассмотреть историю текстовых редакторов, то можно проследить тенденцию развития от уж очень примитивных (например, ed) до более продвинутых. И сейчас они вплотную подошли к тому, что их можно использовать как легковесную IDE.
В мае 2018 года разработчики TravisCI анонсировали объединение коммерческой и Open Source версий. Теперь, чтобы добавить TravisCI в свой проект на гитхабе, нужно использовать не Services, как раньше, а GitHub Marketplace.
В процессе разработки кода программистам не обойтись без инструмента по версионности и контролю изменений. Одна из наиболее известных и популярных систем контроля версий — git (изменение кода можно зафиксировать и у этого изменения будет специальная метка). В результате вся история процесса разработки видна программистам, что очень удобно.
Наверняка все, кто изучал старый добрый стандарт C++11, знают о существовании в стандартной библиотеке вызова std::async, который позволяет выполнить некий код асинхронно (более точно – поведение указывается первым параметром вызова).
Согласно документации, вызов с параметром std::launch::async обещает выполнить пользовательский код в отдельном потоке. Посмотрим на приведённый ниже код.
OSSIM — комплексная система безопасности. Приятно, что Open Source. Есть и платная версия (всем, кому интересно, сюда). И, конечно, такой инструмент очень любит ресурсы. Ниже приведена рабочая конфигурация.