Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Сериализация данных в C++ с библиотекой Cereal

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров376

Привет, Хабр!

Сегодня рассмотрим библиотеку Cereal в C++, которая позволяет сохранять и загружать состояние объектов, не теряя производительности.

Cereal — это заголовочная библиотека для C++, предназначенная для сериализации данных. Она поддерживает XML и JSON. Помимо этого поддерживает практически все стандартные типы данных в C++ и имеет инструменты для работы с пользовательскими типами. В отличие от, например, библиотек Boost, Cereal не требует сложных настроек и имеет интуитивно понятный синтаксис, знакомый юзерам Boost.

Читать далее
Рейтинг0
Комментарии0

Новости

Строим свой SSO. Часть 5: Итоговый SSO, Защита от XSS/CSRF, Custom Grant Type

Уровень сложностиСредний
Время на прочтение44 мин
Количество просмотров281

Всем привет! Мы продолжаем нашу серию статей по созданию собственного SSO. В этой статье мы увидим итоговый проект и разберём самые интересные решения из него. Подумаем над безопасностью приложения и настроим защиту от XSS и CSRF атак, а также изучим разные Security Headers. В заключение статьи мы создадим собственый Grant Type.

Читать далее
Рейтинг0
Комментарии0

Разработка ядра – API для прошивки

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров394

Что касается абсолютного большинства устройств, поддерживаемых в ядре Linux, от вас не требуется почти никакого вмешательства, чтобы пустить их в работу. Пожалуй, устройство потребуется включить (например, при помощи регулятора), отменить команду сброса или обратиться к нескольким конфигурационным регистрам. Но среди устройств есть и достаточно сложные; чтобы в полной мере использовать имеющиеся в них функции или добавлять собственные, для таких устройств требуется специализированная прошивка. Некоторые подобные устройства изначально рассчитаны на подключение заранее запрограммированной персистентной памяти, но в других предусматривается механизм, получающий им подтягивать прошивку из какого-либо приложения. Есть даже такие устройства, в которых одновременно предоставляются обе эти возможности.

Читать далее
Всего голосов 2: ↑2 и ↓0+5
Комментарии0

Как с помощью систем ЖКХ анализировать потенциально экстренные ситуации

Время на прочтение1 мин
Количество просмотров353

С помощью мониторинга счетчиков воды, электричества, газа (если таковой имеется) можно создать систему оповещения о несчастных случаях с большой вероятностью. Причем речь идет так о человеческих жизнях, так и о бытовых чрезвычайных ситуациях.

Алгоритм очень простой: нужно замечать случаи, когда расход ресурсов превышает средний статистический.
Пример: В доме бабушки Марфы из соседней квартиры уже два часа подряд течет вода. Вряд ли она столько моется в душе или моет посуду. Скорее всего, у неё в доме прорвало воду (хотя её может прорвать до счетчика, тогда утечки мы не увидим) либо ей стало плохо и она не закрыла кран. Аналогичные случаи про газ и свет. Вряд ли вы будете готовить на плите несколько часов или не выключать свет, телевизор, прочие электроприборы больше 12 часов, для примера.

Резюмируем

Читать далее
Всего голосов 5: ↑1 и ↓4-3
Комментарии14

Истории

Netmiko: упрощение сетевой автоматизации на Python

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.1K

Привет, Хабр!

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

Netmiko — это обертка над библиотекой Paramiko, разработанная для сетевых инженеров. Она упрощает работу с SSH-соединениями и добавляет ряд методов и интерфейсов для взаимодействия с сетевыми устройствами.

Этот модуль поддерживает большой спектр сетевых устройств — от Cisco и Juniper до Arista и HP. Всё, что нужно, это определить параметры устройства в виде словаря, и Netmiko позаботится обо всем остальном.

Читать далее
Всего голосов 3: ↑3 и ↓0+4
Комментарии4

Использование библиотеки для профилирования в Spring Boot

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров356

Эта статья посвящена использованию библиотеки для профилирования методов в приложениях Spring Boot. Она предоставляет механизм для мониторинга времени выполнения методов, используя аннотацию @ActuatorProfiling и Spring Boot Actuator для экспонирования данных профилирования через настраиваемые конечные точки (эндпоинты).

GitHub https://github.com/litefunction/spring-boot-starter-actuator-profiling

Введение

Профилирующее приложение предназначено для помощи разработчикам в мониторинге и анализе времени выполнения методов, аннотацией @ActuatorProfiling. Данные профилирования экспонируются через Spring Boot Actuator.

Особенности

• Профилирование времени выполнения методов.

• Настраиваемые параметры профилирования.

• Информация получения данных профилирования в actuator.

• Потокобезопасное управление данными профилирования.

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии0

Алгоритм Backpropagation на Python

Время на прочтение9 мин
Количество просмотров574

Привет, Хабр!

Алгоритм backpropagation, или обратное распространение ошибки, является некой базой для тренировки многослойных перцептронов и других типов искусственных нейронных сетей. Этот алгоритм впервые был предложен Полем Вербосом в 1974 году, а позже популяризирован Дэвидом Румельхартом, Джеффри Хинтоном и Рональдом Уильямсом в 1986 году.

Читать далее
Всего голосов 3: ↑3 и ↓0+4
Комментарии0

Читаем ключевой контейнер КриптоПро (ч.2)

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров890

В прошлой части я разбирался с транспортным ключевым контейнером от КриптоПро (он же PFX, PKCS12, P12). В этой статье пойдёт речь о собственном формате ключевого контейнера КриптоПро (те самые 6 файлов .key)

Читать далее
Всего голосов 8: ↑7 и ↓1+8
Комментарии0

System Analyst Roadmap или что нужно знать системному аналитику

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров651

Забудь про хаос в карьере!

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

Не упусти шанс стать экспертом! Узнавай новое уже сегодня и открой для себя мир успешной карьеры в IT!

Читать далее
Всего голосов 2: ↑0 и ↓2-2
Комментарии1

Базы данных не существует

Время на прочтение23 мин
Количество просмотров1.9K

Если вы не читали мою предыдущую статью, то и не читайте. Статья получилась короткая, скомканная, и, самое главное, не отвечала на вопрос, как именно ORM может помочь в повседневной работе программиста.

Сегодня попробую восполнить этот пробел и рассказать, как упрощается написание логики на примере одной экстремальной ORM. В которой базы данных не существует.

Если позволите, начну с небольшого исторического экскурса на 30 секунд, о том, как эта система появилась.

Нам ваш ORM совсем не нужон!
Всего голосов 11: ↑6 и ↓5+3
Комментарии26

Анти-паттерны в Go Web Applications

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров1.1K

В какой-то момент моей карьеры меня перестало радовать ПО которое я разрабатывал.

Больше всего мне нравилось работать с низкоуровневыми деталями и сложными алгоритмами. Но после перехода на пользовательские приложения эта часть работы почти исчезла. Теперь программирование казалось мне просто перемещением данных из одного места в другое с помощью уже готовых библиотек и инструментов. Знания, которые я получил раньше о программном обеспечении, уже не были такими полезными.

Читать далее
Всего голосов 3: ↑3 и ↓0+5
Комментарии2

История переформатирования 100 000+ файлов Google в 2012 году

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.7K

В сентябре далёкого 2012 года я трудился начинающим инженером в Google, занимаясь разработкой Bazel (инструмент сборки, внутри компании также известный под именем Blaze). Однажды мне на почту пришло загадочное приглашение из Google Календаря. Его прислали два инженера из США, пригласив на встречу меня и моего тимлида.

Я сразу узнал имена отправителей — это были Роб Пайк и Расс Кокс. И хотя работать мне с ними не доводилось, я был о них наслышан. Расса Кокса я знал по его блогу, который любил читать, а Роба Пайка просто, потому что он известен. В ходе встречи они поделились с нами своим амбициозным планом: переформатировать каждый BUILD-файл Bazel в кодовой базе Google с помощью автоматизированного скрипта.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+19
Комментарии3

Понимание бизнес-сущности системы при тестировании

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров234

Введение

Добрый день! Меня зовут Анастасия, я QA-инженер команды бэкофиса в «Финаме». С 2022 года занимаюсь тестированием бэкофисных и торговых систем финансовых компаний. До перехода в QA работала в эксплуатации и поддержке торгово-клиринговой системы СПБ Биржи. Моя сильная сторона — глубокое понимание бизнесовой части тестируемого продукта, о важности чего мы и поговорим в этой статье.

Идея

Цель этой статьи — подчеркнуть важность понимания бизнесовой сущности системы, которую вы тестируете. Я приведу реальные примеры, которые помогут вам развить смекалку в тестировании различных систем. Статья будет особенно полезна QA-инженерам, работающим в брокерских, банковских компаниях и на биржах.

Содержание

Читать далее
Всего голосов 4: ↑2 и ↓20
Комментарии0

Ближайшие события

AdIndex City Conference 2024
Дата26 июня
Время09:30
Место
Москва
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Python logging — вывод лога на QTextWidget (PyQt6)

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров899

Было консольное Python приложение, в котором пишутся логи через стандартный модуль logging. Затем прикрутил GUI на PyQt6, конечно, хочется продублировать логи в какой-нибудь виджет в уголочке. Категорически не хочется ничего менять в консольной части, и спокойно использовать дальше стандартный logging.

В этом посте будет рассмотрено два примера. Простой - виджет, который дублировал бы вывод стандартного Python логгера. Усложнение - имеется несколько потоков, они тоже пишут логи. Нужно их логи тоже увидеть на виджете, но он в родительской части, а потоки не могут напрямую в него писать - получим сегфолт.

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии3

Введение в Advanced Views Framework

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров416

Advanced Views — это специализированный WordPress фреймворк, который предлагает улучшенный способ запроса и отображения контента. Его основная цель - ускорить и упростить создание качественного фронтенда для WordPress.

Если вы привыкли думать, что WordPress - это только про page builders и что быстрое создание качественного фронтенда здесь априори невозможно, то Advanced Views вас приятно удивит: модульный подход, Twig шаблоны, Just-in-Time assets, BEM из коробки, поддержка Tailwind и WordPress Interactivity API - в общем все что нужно для того, чтобы быстро и качественно отобразить контент на любом WordPress сайте.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Кратко про осцилляторы RSI и Stochastic

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров636

Привет, Хабр!

Осцилляторы — это технические индикаторы, которые колеблются в пределах заданного диапазона, обычно от 0 до 100, и используются для определения состояния перекупленности или перепроданности рынка.

Осцилляторы способны предсказывать возможные изменения трендов до того, как эти изменения произойдут.

Принцип работы осцилляторов основан на сравнении текущей цены актива с его ценовыми уровнями за определенный период. Например, если текущая цена находится близко к верхнему диапазону за последний период, осциллятор покажет высокие значения, указывая на перекупленность. И наоборот, если цена находится близко к нижнему диапазону, это указывает на перепроданность.

Читать далее
Всего голосов 4: ↑3 и ↓1+3
Комментарии2

Тьюринг. Гений, опередивший время

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.8K

Как известно, именно Алан разгадал немецкий шифр в «Энигме». Но не будем повествовать об этом – тема давно изъезжена вдоль и поперёк, сняты фильмы, написаны книги и выпущено бесчисленное количество статей. Лучше к дню рождения великого британского математика попробуем узнать, каким человеком он был. 

Читать далее
Всего голосов 16: ↑14 и ↓2+16
Комментарии7

Переход на другую систему контроля версий

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1K

Собеседование:

- Какую систему контроля версий используете?
- У нас RTC, но ты привыкнешь.

  У всех компаний происходят такие события, как переход на новую версию библиотеки, смена фреймворка, внедрение новых инструментов. Смена системы контроля версий случается не так часто, и застать этот период может быть интересно. 

Так получилось, что на новом месте работы использовалась IBM Rational Team Concert или RTC. RTC - разработка компании IBM и является централизованной системой контроля версий. Лицензия на RTC подходила к концу, программисты пускали слюни на git. После обсуждений было принято решение перейти на git. И пока коллеги рассматривали все за и против между использованием rebase и merge команд, я решала написать об опыте перехода с RTC на git .

Хочу сразу уточнить по особенностями организации кода: компонентная архитектура. Компоненты немного упростили нам процесс миграции. Каждый компонент лежит в своём репозитории, которые размещены на одном сервере.

Читать далее
Всего голосов 5: ↑4 и ↓1+4
Комментарии13

Feature-Based Flutter Architecture

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров636

Всем привет! В этой статье я хотел бы поговорить о вопросах многомодульной архитектуры для разработки средней сложности flutter - проектов.

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

Читать далее
Рейтинг0
Комментарии0

Telegram Боты на Aiogram 3.x: Деплой бота через Docker

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.4K

Приветствую, друзья! Сегодня мы разберемся, как деплоить бота с использованием Docker. Многие новички считают Docker сложным, но, прочитав эту статью, вы поймете, что это не так, и полюбите эту технологию.

Дисклеймер

Цель данного руководства — не обучение Docker, а пример использования этой технологии в контекте телеграмм ботов на aiogram 3. Я не буду сильно акцентировать внимание на таких вещах, как слои, volume, docker-compos, bridge и прочей технической информации более глубокого уровня, чем необходимо для деплоя ботов на VPS сервере.

Далее вы получите пример использования Docker и общее описание методов (команд). Если вам нужны мои обучающие публикации по Docker, сообщите мне об этом любым удобным способом.

Подготовка

Для начала вам нужно обзавестись базой данных PostgreSQL. О том, как развернуть ее на VPS сервере, я писал ТУТ. Также потребуется установить Docker. Новичкам будет удобнее поставить Docker Desktop, если с технологией уже знакомы, используйте консольный вариант.

Читать далее
Всего голосов 7: ↑3 и ↓4-1
Комментарии13
1
23 ...