Многие IT-компании до сих пор придерживаются традиционного цикла разработки программного обеспечения. Организации склонны отдавать больший приоритет реализации, чем проектированию и редко уделяют должное внимание вопросам качества приложения. Но что такое качественное приложение? В чем разница между компаниями, ориентированными на качество, и компаниями, нацеленными на конечный продукт?
Новости
Сетевая безопасность Linux: Best practices и баш скрипты
Linux — это операционная система с открытым исходным кодом, которая широко используется на различных устройствах, включая серверы, ПК и встроенные системы. Важно обеспечить безопасность систем Linux при подключении к сети для защиты от потенциальных угроз и уязвимостей. Существуют различные best practices, которым можно следовать для повышения безопасности систем Linux при подключении к сети, в том числе использование надежных паролей, включение двухфакторной аутентификации, поддержание систем в актуальном состоянии, настройка и включение брандмауэра, а также регулярный мониторинг. журналы и активность системы.
Интеграция Primefaces в приложение на Spring Boot. Часть 2 — Готовим контекстное меню для главной страницы
В этой статье описывается пример интеграции библиотеки компонентов пользовательского интерфейса Primefaces, построенной на основе фреймворка JavaServer Faces (JSF), в MVC приложение на Spring Boot.
Пентест. Думаем как злоумышленник. Часть 2: угрозы внутри
В первой статье мы поговорили о том, как может действовать Внешний нарушитель при проведении пентеста, какими методами он может собирать и использовать информацию для последующего проникновения. В этой статье мы продолжим рассмотрение темы тестирования на проникновение и поговорим о том, как можно развить атаки на сеть при наличии физического доступа на контролируемую территорию.
Резервное копирование и восстановление СУБД PostgreSQL
Резервное копирование является одной из основных задач администрирования баз данных. Отсутствие бэкапа может привести к катастрофическим последствиям при эксплуатации базы данных. Однако недостаточно только настроить регулярное создание резервных копий, необходимо также регулярно проверять созданные копии на способность к восстановлению БД. В этой статье мы поговорим от том, как правильно настраивать резервное копирование в БД PostgreSQL.
Hydrosphere — управляем ML как сервисом
Подобно тому, как в мире разработки многокомпонентных систем применяются подходы для управления и мониторинга микросервисами на основе инструментов DevOps (для запуска и восстановления сервисов, передачи данных, наблюдения за распределенными операциями, выполнение замеров и получение операционных метрик), так же и для моделей машинного обучения становится важным обеспечить возможность их развертывания, обновления и наблюдения за метриками (точность модели, время выполнения прямого прохождения нейронной сети и другими). В обобщенном виде такие решения получили названия MLOps и в этой статье мы рассмотрим возможности платформы Hydrosphere 3.0.
Enterprise Architecture и ее подходы
В основном всем понятно, чем занимаются архитекторы решений, архитекторы по интеграции, системные архитекторы, но у многих возникают вопросы по поводу Архитекторов Предприятий, они же Enterprise Architects. В этой статье и поговорим об этой роли.
Go 1.20 и арена памяти
Одной из революционных особенностей Go в сравнении с другими компилируемыми языками стало автоматическое управление освобождением памяти от неиспользуемых объектов (сборка мусора). В то же время она может привести к потере производительности при передаче контроля процессу управления памятью, но альтернативного механизма в Go представлено не было. Начиная с Go 1.20 появляется поддержка экспериментального решения для управления памятью, которое позволяет совместить безопасное выделение динамической памяти и уменьшить влияние интегрированного в скомпилированный код управления памятью на производительность приложения. В этой статье мы рассмотрим основные аспекты использования Memory Arena в Go 1.20.
Управление проектом по Agile методике
Отличное практическое пособие по agile-управлению проектами для всех и каждого!
Agile - это способ оперативного и эффективного управления проектами. Этот метод можно использовать для любого типа проектов, но в основном он был определен для разработки программного обеспечения. Agile разбивает большие проекты на небольшие, управляемые части, называемые итерациями. В конце каждой итерации достигается определенный результат. Продукт, который создается в течение каждой итерации, должен быть пригодным для использования для последующего получения обратной связи от пользователей или заинтересованных сторон.
Agile относится к любому процессу, который соответствует концепциям Agile Manifesto (манифест). В 2001 году 17 разработчиков программного обеспечения встретились, чтобы обсудить простые и эффективные методы разработки. Они опубликовали Манифест Agile Software Development, в котором рассказали о том, как они нашли "лучшие способы разработки программного обеспечения, применяя их самостоятельно и помогая делать это другим".
В отличие от управления проектами по водопадной модели, которая является строго последовательной: вы не начинаете разработку, пока не проведены исследования, и не приступаете к разработке, пока дизайн не завершен; в agile дизайнеры, разработчики и бизнесмены работают одновременно и параллельно.
Модели управления инфраструктурой
Управление инфраструктурой даже средней организации является непростой задачей. Большое количество серверов требует постоянного внимания. Установка обновлений и развертывание новых систем все это трудоемкие задачи. Поговорим о том, каким способами можно автоматизировать выполнение данных задач.
Эксперименты со Schedulers в Stable Diffusion
В этой статье разберём, что есть scheduler в диффузионных моделях и как можно подменять их, пользуясь возможностями библиотеки diffusers.
Интеграция Primefaces в приложение на Spring Boot. Часть 1 — настройка зависимостей и базовый проект
В данной статье описывается пример интеграции библиотеки компонентов пользовательского интерфейса Primefaces, построенной на основе фреймворка JavaServer Faces (JSF), в MVC приложение на Spring Boot.
Повышайте безопасность приложений с помощью FORTIFY_SOURCE
Макрос FORTIFY_SOURCE служит для упрощенной процедуры обнаружения переполнений буфера (buffer overflows) в различных функциях, выполняющих операции с памятью и строками. Не все типы переполнений буфера могут быть обнаружены с помощью этого макроса, но он дает возможность осуществить дополнительную проверку для некоторых функций, которые потенциально могут быть источником проблем, связанных с buffer overflow. Он предназначен для защиты как C, так и C++ кода. FORTIFY_SOURCE вычисляет количество байт, которые будут копироваться из источника в место назначения.
3D-графика в Go
В большинстве случаев, когда речь заходит об использовании Go, вспоминается backend или DevOps и в самую последнюю очередь можно подумать об использовании Go для создания мобильных или десктопных приложений. Но в действительности, благодаря возможностям интеграции с нативными библиотеками (в том числе, OpenGL и OpenAL для пространственного звука) Go может использоваться и для создания игр (в том числе для мобильной платформы).
В этой статье мы обсудим несколько библиотек, которые могут помочь в создании 3D-графики на Go и обсудим вопросы портирования приложений на мобильные платформы.
Повышаем производительность C# кода с помощью Span<T> и Memory<T>
Эта статья познакомит вас с новыми типами, представленными в C# 7.2: Span и Memory. Я подробно разберу Span<T> и Memory<T> и покажу, как работать с ними в C#.
2.6 миллиона доменов и ~45 000 открытых Phpinfo() спустя… История о незащищенном Phpinfo()
После сканирования 2.6 миллионов доменов на наличие открытых .git каталогов (ссылка на статью), .env (ссылка на статью) и .DS_Store (ссылка на статью) файлов я проделал такое же сканирование для phpinfo-файлов, таких как info.php или phpinfo.php.
В первой части этой статьи я объясню, что такое phpinfo и что из него можно извлечь. Во второй части я расскажу о конфиденциальной информации, которую я нашел.
Абстрактные классы и интерфейсы в Java
В каких случаях стоит использовать абстрактный класс, а в каких — интерфейс? Давайте разбираться, в чем между ними разница.
Spring Data Specification: наложение фронтенд-фильтров на репозитории spring data
Коллеги, добрый день. Во многих проектах для работы с данными на бекенде используется Spring Data со всеми плюшками использования декларативного подхода описания запросов к данным на основе интерфейсов. Также очень часто бекенду нужно быть очень универсальным, чтобы обрабатывать произвольные запросы от фронтенда.
Рассмотрим ситуацию: мы реализуем интернет-магазин. Со стороны UI пользователь имеет возможность осуществлять поиск товаров, задавания произвольное количество фильтров. Например, он может указать в качестве фильтров для поиска:
Будьте внимательны при использовании AT TIME ZONE в запросах SQL Server
Если вы не разобрались в тонкостях работы базы данных, то использование новых средств языка T-SQL может привести к неожиданным результатам в плане производительности.
Пентест. Думаем как злоумышленник Часть 1. Угрозы извне
О тестировании на проникновение написано уже немало книг и статей. Эта тема становится все актуальнее с каждым новым инцидентом ИБ. Злоумышленники проникают в сети различных организаций с целью прямого хищения денег с счетов (банки, финансовые организации), атак на отказ в обслуживании (предприятия критической инфраструктуры), хищения персональных данных и других вредоносных действий. Системы информационной безопасности большинства организаций не способны в полной мере защитить от действий квалифицированных злоумышленников. Причин этому несколько. В России традиционным драйвером рынка ИБ являются требования регуляторов (ФЗ 152, ФЗ 187 и т.д.) и при построении системы защиты прежде всего стремятся выполнить требования приказов ФСТЭК, ФСБ, ЦБ и т.д. Проведя категорирование, построив модель угроз, написав ОРД, спроектировав и внедрив систему защиты заказчик считает что он теперь защищен. Хотя обычно этого недостаточно.
Кроме того, еще одной причиной недостаточной эффективности системы защиты является недостаточно жесткая настройка входящих в нее средств. Попытка закрыть часть требований нормативки организационными мерами вместо технических часто приводит к снижению общей эффективности системы защиты.
Ну и наконец, модели угроз не могут дать точных рекомендаций относительно того, как будут ломать вашу сеть. Тестирование на проникновение позволяет посмотреть на взлом вашей сети глазами хакера. Ведь находясь на стороне защиты вы можно просто не знать или не замечать некоторые моменты, которые позволят хакеру с легкостью проникнуть в вашу сеть. Например, многие безопасники «старой» школы очень часто недооценивают угрозы, исходящие от социальной инженерии и комбинированных атак.