Все потоки
Поиск
Написать публикацию
Обновить
366.34

Open source *

Открытое программное обеспечение

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

Избавляемся от Flaky тестов в CI/CD при помощи JMina

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

Представьте: вы написали код, покрыли его тестами, запустили их локально — тесты успешно прошли. Вы загрузили изменения в репозиторий, пайплайн успешно завершился. Самое время расслабиться и приступить к новым задачам. Но не тут-то было!

Спустя некоторое время в CI/CD падает тест. Вы запускаете тесты локально — они проходят успешно. Вы снова запускаете пайплайн в CI/CD — и тесты снова проходят. Однако через какое-то время ситуация повторяется.

Читать далее

Автоматизация подписи кода в современных условиях

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


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

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

Сейчас для опенсорса и проприетарных ОС постепенно внедряются новые методы автоматизации подписи кода.
Читать дальше →

Автоматизация PetKit Smart Spray K3 через Bluetooth и интеграция с Home Assistant

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

Всем привет. Это моя первая статья, так что не судите строго (да, да, заезженная фраза).

Я думаю у всех есть домашние питомцы и за всеми так или иначе надо убирать - разбросанный силикагель (для кошек как пример). В один из дней, знатно наступив на один из силикагелевых шариков, которые разбросала моя кошка, я понял, что мне это надоело и установив Home Assistant, а так же датчик движения в кошачий лоток (который, к слову, выглядит как пуфик с дыркой для входа кошки) я написал простенький скрипт на то, чтобы робот-пылесос убирал определенную зону после того как кошка сделает свои грязные дела. Все заработало и мои, а так же моей жены телесные травмы свелись к минимуму (все же задержка перед уборкой аж целых 5 минут), но я начала думать о том что было бы неплохо еще и запах убивать после особо пахучих дел, но времени на это не было (да и желания, так как готовых решений не было, тем более появился ребенок и время на подобные дела вообще свелось к минимуму).
Шло время и вопрос о запахе из лотка становился все острее.

Читать далее

Лучше самому изобрести колесо, чем ездить на арендованном квадратном

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

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

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

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

Изобретайте колёса и стройте велосипеды!

Single Sign-On плагин для Sonatype Nexus Repository

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

Хочу рассказать о своём проекте - Single Sign-On плагин для Sonatype Nexus Repository. Плагин реализует аутентификацию через SSO и пользовательские токены для Nexus редакции "Community Edition". Если вам интересна эта тема, то добро пожаловать под кат.

Читать далее

FastExcelWriter — избавление от проклятия PhpSpreadsheet

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

Наверняка каждый php-разработчик, хоть раз сталкивавшийся с чтением или записью Excel-файлов, знает про библиотеку PhpSpreadsheet (в прошлом - PHPExcel). Это мощная библиотека на чистом php, которая позволяет читать, а, главное, создавать Excel-таблицы. И все с ней хорошо, пока работаешь с небольшим набором данных. Но при работе с большими файлами PhpSpreadsheet начинает чудовищно отжирать память, да и производительность резко падает, и php-скрипт, использующий библиотеку, часто просто отваливается по таймауту. И проблема - в архитектуре библиотеки.

Библиотека PhpSpreadsheet, казалось бы, спроектирована очень правильно: листы таблицы, строки, ячейки, прочие сущности - это все классы, стили, форматы и всевозможные свойства тоже состоят из классов. И когда создается таблица, то в памяти создается огромное количество связанных между собой объектов, им задаются свойства, выполняются всевозможные манипуляции, ячейки заполняются данными, всё-всё это держится в памяти, и пишется в файл только в момент сохранения.

И вот однажды, когда ресурсы на генерацию большого Excel-файла превысили все разумные значения, я начал искать альтернативу известной библиотеке. Альтернатива нашлась. В отличие от PhpSpreadsheet, тут все было упаковано в один класс, возможности по форматированию и стилям - скромнее некуда, но зато XLSX-файл создавался в разы быстрее, а потребление памяти было вообще копеечное. А все потому, что тут был реализован совсем иной принцип - данные не накапливались в памяти, а построчно сразу выводились в файл. Вдохновившись этой идеей, я и создал свою библиотеку FastExcelWriter.

Читать далее

Линус Торвальдс жёстко разнёс регистронезависимые ФС

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

Линус Торвальдс сегодня в привычной для себя прямой и резкой манере высказался о файловых системах с поддержкой case folding (регистронезависимых файлов и папок).

Поводом послужила проблема с поддержкой case folding в Bcachefs, обнаруженная на этой неделе и уже имеющая фикс для Linux 6.15. Линус написал огромное сообщение в рассылке разработчиков Linux (LKML), изложив своё мнение о реализации case folding.

Стоит отметить, что проблема с case folding в Bcachefs — не первая для Linux: ранее уже возникали баги, связанные с обработкой эмодзи и других специальных символов Unicode.

Читать далее

Интеграция Kafka с Manticore Search: пошаговое руководство по обработке данных в реальном времени

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

Kafka — это популярный брокер сообщений, который используется в самых разных проектах: от обработки логов и управления очередями задач до персонализации контента и аналитики в реальном времени. Например, его можно использовать для индексирования изменений в Википедии или поиска товаров в интернет-магазинах. Manticore Search, в свою очередь, поддерживает интеграцию с Kafka, что позволяет автоматически импортировать данные и использовать их для полнотекстового поиска, аналитики, векторного поиска и многого другого.

При импорте данных в Manticore вы можете гибко их обрабатывать:

Читать далее

Реализация концепции Сотрудник-Трудоустройство-Назначение на должность в IDM Midpoint part 2

Уровень сложностиСложный
Время на прочтение51 мин
Количество просмотров403

Продолжаем реализацию концепции Сотрудник-Трудоустройство-Назначение на должность в IDM Midpoint. В первой части мы настроили носители информации и пути её перетекания из профиля сотрудника в трудоустройства и назначения из кадрового источника. Теперь будем делать тоже самое с ролями. Нам потребуется еще две концепции Forward роли и nickNmae как роль.

Читать далее

Поиск в поиске: проверка Elasticsearch

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

Один из самых больших проектов на Java в Open Source. Elasticsearch используется во многих крупных организациях, таких как GitHub, Альфа-Банк, Тинькофф, Netflix и Amazon. Шесть лет назад мы уже проверяли проект, но интересно, какие новые ошибки появились за столь долгое время?

Читать далее

Эра Big Data: новые возможности в принятии решений

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

Big Data - это огромные объёмы данных, которые невозможно обработать с помощью традиционных методов.

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

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

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

Подробнее читать статью

Open source: как Mozilla защищает свои разработки

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

Проект Mozilla появился в конце 90-х. Его предшественник Netscape Navigator потерял аудиторию из-за агрессивной политики ближайшего конкурента — компания Microsoft автоматически устанавливала свой браузер Internet Explorer при покупке Windows.

Топ-менеджеры Netscape Navigator попытались решить проблему креативно. Они модифицировали свою программу в ПО с открытым исходным кодом. Для управления новым был сформирован проект, который как раз и назвали Mozilla, слово было образовано от «Mosaic» (так назывался один из первых браузеров Netscape Navigator) и «Godzilla» (монстр их японских фильмов, позволяющий справиться с Microsoft). Обновленная компания, объявившая о желании построить открытый интернет, выпустила браузер Firefox. 

Читать далее

Логирование действий пользователя в Joomla. Создание плагина Actionlog

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

На вашем сайте, внутреннем портале, в интернет-магазине кто-то что-то сделал, а потом всё сломалось: сайт открывается криво (или не открывается вообще?), перестали работать фоновые задачи в планировщике, установились неправильные скидки всем пользователям на все товары... Предположим, что с безопасностью у вас всё хорошо: Joomla свежая, актуальная, расширения - тоже. Да и в логах сервера и логах Joomla тоже чисто... Тогда остаётся ещё один источник информации - Лог действий пользователей Joomla. Основная его задача - помочь быстро найти кому настучать по рогам причину и устранить её.

Всё, что связано с действиями в админке - может логироваться: от обновления системы и компонентов, изменения настроек до редактирования и сохранения конкретных элементов (статьи, товары, категории и т.д.) и загрузки файлов в медиа менеджере. Лично мне нередко этот функционал помогал найти тех контент-менеджеров, кто дублирует названия товаров, создавая дубли и тем самым негативно влияя на SEO. Или же вдруг обнаруживается недозаполненная, но опубликованная карточка товара, которой не должно было быть, но она появилась. И ладно если б это был единичный случай...

Читать далее

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

Разыскивается живым или мёртвым: легендарная история Себастьяна Рамиреса

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

Себастьян Рамирес. Легенда мира Python-разработки, человек с моржовыми усами, единоличный создатель фреймворка FastAPI и герцог open-source разработки. Он работал на ферме, отчислился из католической школы, заболел раком, женился, изучил Data Science, стал Backend-разработчиком, выступал на конференциях, откликнулся на вакансию, где использовался разработанный им фреймворк, вел твиттер... И где-то между этими важными делами успел стать одним из самых интересных Open Source-разработчиков во всём мире, а также человеком, который на bus-факторе может прокатить половину Интернета (извините). Да, да, речь про того самого Tiangolo. И если вы знали его только как разработчика FastAPI, то сейчас точно удивитесь.

Меня зовут Макс, я TeamLead Backend в компании ИдаПроджект, автор YouTube-канала PyLounge. Не буду затягивать со вступлением, поехали!

Читать далее

Релиз lsFusion 6.0 — открытой и бесплатной альтернативы платформе 1С

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

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

Шестая версия lsFusion делает значительный шаг вперед, окончательно превращая платформу из инструмента для разработки бизнес-приложений в мощную платформу для создания веб-приложений. Основной акцент сделан на улучшение Web UX, что критически важно для современных приложений. Среди ключевых нововведений — интеграция с Bootstrap, использование различных API браузеров и поддержка прогрессивных веб-приложений (PWA).

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

Читать далее

Tinker WriterDeck: Linux для тех, кто работает с текстом. Превращаем ноутбук в печатную машинку

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

Источник.

Возможно, у вас есть старый ноутбук, который и выкинуть жалко, и применить негде, потому что уж слишком он устарел. Можно продать его за копейки или пустить на запчасти для DIY-проекта. А можно накатить на него интересную ОС, единственная опция которой — работа с текстом. Никаких вкладок браузера, уведомлений мессенджеров или соблазна заглянуть в соцсети. Только вы, текстовый редактор и ваши мысли. Tinker WriterDeck — это Linux-дистрибутив, с которым я предлагаю поближе познакомиться в этой статье.
Читать дальше →

Обходим подводные камни работы с UDA в коде на Lua для ScyllaDB: дружим Java-драйвер и пустые значения

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

Привет, Хабр! Мое имя Александр Коваль, я разработчик IoT-сервисов в МТС Web Services. Сейчас ScyllaDB поддерживает ограниченное количество функций, в том числе агрегационных. В стандартном наборе: min, max, count, avg. Но ее функциональность расширяется двумя типами пользовательских функций: скалярными (scalar functions) и агрегационными (aggregate functions). Первые работают со значениями одной строки, а вторые — нескольких. Реализовать такие функции можно на Lua или Rust.

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

Дисклеймер: этот материал написан на основе личного опыта — все решения получены методом проб и ошибок. Конструктивные предложения и советы по их улучшению приветствуется. Код с примерами и ссылки на ресурсы можно найти у меня в репозитории GitHub.

Читать далее

Kubernetes 1.33: упорядоченное удаление ресурсов, изменение алгоритма CrashLoopBackOff и декларативная валидация

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

Сегодня официально выпустили очередную версию Kubernetes — 1.33. Собрали все 64 изменения в одном материале. Из основных нововведений: упорядоченное удаление ресурсов в пространстве имён на основе логических зависимостей и соображений безопасности, декларативная валидация для нативных API-типов, расширение механизма CredentialProvider, доступ подов к информации о топологии кластера, изменение алгоритма выдержки CrashLoopBackOff, обязательная аутентификация при извлечении private-образов из репозиториев и многое другое.

Читать далее

Как я создал клон Pinterest с использованием Vue 3 и FastAPI

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

👋 Привет, Habr!

Вы когда-нибудь пытались найти качественный open-source клон Pinterest — с real-time функционалом, полноценной архитектурой, удобным UI и современной технологической основой? Я — да. И не нашёл. Поэтому решил создать свой.

Представляю вам Pinterest Clone — мой pet-проект, над которым я работал в одиночку 4 месяца, чтобы воссоздать не просто копию, а полнофункциональную платформу с реальным пользовательским опытом, максимально приближённым к оригиналу.

Читать далее

FastOpenAPI: автодокументация OpenAPI для разных фреймворков на Python

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

Всем привет! Меня зовут Никита Рыженков, и я хочу поделиться опытом разработки библиотеки FastOpenAPI. Это инструмент, который приносит удобный стиль маршрутизации FastAPI и автоматическую документацию OpenAPI в целый ряд Python-фреймворков. Идея родилась из личной боли: в одном проекте приходилось поддерживать OpenAPI-документацию сразу в нескольких фреймворках, и я устал дублировать решения под каждый из них. Вдохновившись лаконичностью FastAPI, я решил создать унифицированный подход для Flask, AioHttp, Sanic, Falcon, Starlette, Quart, Tornado – назвал его FastOpenAPI​. В этой статье расскажу, какие проблемы решает FastOpenAPI, как он устроен внутри и как им пользоваться с примерами кода под каждый поддерживаемый фреймворк.

Читать далее

Вклад авторов