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

Open source *

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

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

Изменить цвета и кнопки сервиса — и не сломать дизайн-систему

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

Меня зовут Алексей Афонин, я старший дизайнер продукта в Yandex Cloud. В прошлом году нам понадобилось полностью изменить внешний вид нашего сервиса для бизнес‑аналитики DataLens перед его выходом в опенсорс. Разработчики и дизайнеры интерфейсов часто сталкиваются с подобными задачами: есть уже работающий сервис, но его нужно стилизовать, например, в случае ребрендинга или при необходимости учесть специфический пользовательский опыт.

В наших продуктах мы пользуемся дизайн‑системой и библиотекой компонентов Gravity UI — это проект Yandex Cloud, который не так давно тоже вышел в опенсорс. В этой статье я поделюсь опытом, как мы решили задачу «перекрашивания DataLens» с её помощью. Но даже если вы не используете DataLens и ещё не знакомы с Gravity UI, наши наработки могут пригодиться командам разработчиков и дизайнеров, которые хотят стилизовать свои продукты быстрее и удобнее.

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

Новости

Настройка Kerberos аутентификации в OpenAM

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

В корпоративном среде пользователи используют, как правило несколько приложений. И в каждом приложении в корпоративной среде необходимо аутентифицироваться. Конечно, можно создавать для каждого приложения свою учетную запись. Но такой подход неудобен и для администраторов системы и для пользователей. Гораздо удобнее входить в приложение под пользователем, который уже аутентифицирован в операционной системе. Для пользователей в домене Windows - таким решением является протокол Kerberos.

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

Использование открытых форматов для строительных проектов набирает обороты. Забудьте об использовании API и плагинов

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

В 2024 году ни одна крупная компания в мире, работающая с CAD (BIM) данными, не получает доступ к данным из CAD (BIM) программ через API или плагины.

Все крупные компании, работающие с форматами CAD (BIM), работают с определенными SDK а форматы, содержащие данные о строительных проектах становятся взаимозаменяемы.

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

Настройка конвейерной сборки Java-проектов в GitLab

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

Автоматическая доставка проектных артефактов в тестовые и продуктивные среды является безусловной необходимостью современных процессов промышленной разработки ПО. 

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

Предполагается, что у вас уже установлены Docker и ssh-сервер и вы немного умеете со всем этим обращаться. 

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

Истории

Удобное управление тестовыми окружениями в docker-compose

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

Всем привет, хочу рассказать о своей утилите dcw (Docker Compose Workspace) для удобного управления тестовыми окружениями на базе docker-compose.

Читать далее
Всего голосов 16: ↑19 и ↓-3+22
Комментарии17

Векторные базы данных: простым языком про устройство и принцип работы

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

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

Читать далее
Всего голосов 23: ↑24 и ↓-1+25
Комментарии6

Что нового в joomla 5.1?

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

16 апреля 2024 года вышли релизы Joomla 5.1 и Joomla 4.4.4. Если Joomla 4.x уже находится в режиме поддержки и получает только "заплатки", то в каждом выпуске Joomla 5.x появляется что-то новое. Краткий список был опубликован в недавней новости. Давайте посмотрим подробнее на то что же именно появилось в Joomla 5.1.

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

Никому нельзя верить на слово в безопасной разработке, или Еще один взгляд на SCA

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

Захожу я в английский клуб. Там все сидят, выпивают, в карты играют. Смотрю — в очко режутся! Сел я за столик, взял карты. У меня — 18. А мой соперник говорит: «20». Я ему: «Покажи!». А он мне: «Мы, джентльмены, верим друг другу на слово». И вот тут-то мне поперло.

Но в ИБ так не пройдет, нужна здоровая паранойя. Поэтому на слово не верим никому, в том числе и инструментам анализа, а сначала их проверяем.

Читать
Всего голосов 6: ↑8 и ↓-2+10
Комментарии6

Фальшивые криптокошельки в официальном каталоге Ubuntu — индикатор более серьёзной угрозы

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


Через официальный каталог приложений Ubuntu Snap некоторое время распространялся фейковый криптокошелёк, средства с которых сразу переводились на сторонний адрес. У одного из пользователей удалось увести 9,84 BTC.

Это типичная supply chain attack, один из самых опасных видов атак. Он предполагает внедрение зловредов в официальные каналы поставки ПО. Например, в прошивки от производителя оборудования, официальные обновления программ, которые распространяются через официальные сайты, и т д.
Читать дальше →
Всего голосов 9: ↑11 и ↓-2+13
Комментарии10

ИИ под запретом. Gentoo вводит ограничения на использование искусственного интеллекта

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

Gentoo, один из самых популярных дистрибутивов Linux, ввёл запрет на принятие изменений, созданных при помощи инструментов генеративного искусственного интеллекта (ГИИ). Этот запрет охватывает различные аспекты работы над дистрибутивом. Так, разработчики больше не могут использовать ГИИ для написания кода, отчётов об ошибках или документации. Но не исключено, что в будущем эти изменения будут пересмотрены. Подробности — под катом.

Читать далее
Всего голосов 11: ↑12.5 и ↓-1.5+14
Комментарии14

Искусство ETL. Пишем собственный движок SQL на Spark [часть 6]

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

НЬЮ!


В предыдущих сериях (FAQ 1 2 3 4 5 ) мы весьма подробно рассмотрели, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL поверх Spark RDD API, заточенный на задачи подготовки и трансформации наборов данных.

В данной части поговорим о том, как добавить в выражения SQL поддержку функций. Например,


SELECT
    MAX(score1, score2, score3, score4, score5) AS max_score,
    MIN(score1, score2, score3, score4, score5) AS min_score,
    MEDIAN(score1, score2, score3, score4, score5) AS median_score,
    score1 + score2 + score3 + score4 + score5 AS score_sum
FROM raw_scores INTO final_scores
WHERE ABS(score1 + score2 + score3 + score4 + score5) > $score_margin;

— тут у нас функции MAX, MIN и MEDIAN принимают любое количество аргументов типа Double и возвращают Double, а ABS только один такой аргумент.


Вообще, кроме общей математики, в любом уважающем себя диалекте SQL как минимум должны быть функции для манипуляций с датой/временем, работы со строками и массивами. Их мы тоже обязательно добавим. В classpath, чтобы движок мог их оттуда подгружать. До кучи, ещё и операторы типа >= или LIKE, которые у нас уже были реализованы, но хардкодом, сделаем такими же подключаемыми.


Предупреждение о сложности материала

Уровень сложности данной серии статей в целом высокий. Базовые понятия в тексте совсем не объясняются, да и продвинутые далеко не все. Однако, эта часть несколько проще для ознакомления, чем предыдущие. Но всё равно, понимать её будет легче, если вы уже пробежались по остальным хотя бы по диагонали.

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

21 ошибка в 21-й версии Apache NetBeans

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

Apache NetBeans — одна из первых IDE для Java, поддержка которой не прекращается на протяжении почти 30 лет. Совсем недавно вышла 21-я версия. Мы решили проверить исходный код такого долгожителя и выбрали наиболее интересные ошибки, которые разберём в этой статье.

Читать далее
Всего голосов 11: ↑13.5 и ↓-2.5+16
Комментарии1

Добавление полей Joomla в результаты Умного Поиска при помощи JFilters

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

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

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

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

Mojo: убийца Python и будущее AI

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

Всем привет! Меня зовут Вадим, я Data Scientist в компании RAFT. Сейчас технологии AI применяются и развиваются во многих сферах деятельности человека, в особенности LLM, про которые уже слышал каждый. В большинстве случаев подобные технологии реализуют на Python, используя различные библиотеки, такие как pytorch, tensorflow, jax. Все они имеют свои преимущества и недостатки. Например, всем известная скорость вычислений.

Читать далее
Всего голосов 42: ↑33.5 и ↓8.5+25
Комментарии74

Автоматически выделяем кусочно-линейные тренды временного ряда

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

Меня зовут Антон Сорока, я математик и аналитик данных.

Я хотел бы рассказать об алгоритме, который выделяет кусочно-линейный тренд из временного ряда и сам определяет точки изменения тренда. Другими словами, это алгоритм для автоматического кусочно-линейного приближения любой функции. Это может понадобиться, если вам важно анализировать линейные тренды ряда, но единственная линия явно недостаточно точно описывает ряд, и самостоятельно искать точки, где тренд менялся, неудобно. Реализация этого алгоритма есть в open-source библиотеке для анализа изменений временных рядов, написанной на Python.

Читать далее
Всего голосов 8: ↑8.5 и ↓-0.5+9
Комментарии9

Java для домохозяек: инструкция по обработке сообщений внутри Telegram бота

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

Представляю вашему вниманию своё видение данного процесса, т.к. ничего подобного пока не находил. Для примера будет показана обработка сообщений и нажатий на различные кнопки в боте Avandy News (бот основан на программе Avandy News Analysis, которая включена в Реестр российского ПО).

Стек: Java 17, Spring Boot 3.15, Postgresql 16.1

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

Testplane в опенсорсе: автоматизируем пользовательские сценарии в веб-интерфейсах

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

Привет! Меня зовут Евгений Константинов. Я занимаюсь разработкой инструментов автоматического тестирования в Яндексе. В этой статье хочу рассказать про историю создания инструмента Testplane

Testplane поможет вам:

- протестировать разные сценарии в любом браузере; 

- проверить вёрстку с помощью скриншотного тестирования; 

- выполнить тестирование ваших React-компонентов;

- запустить клиентские unit-тесты в контексте браузера. 

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

Настройка сервиса аутентификации OpenAM и шлюза авторизации OpenIG для защиты приложений

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

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

В этой статье мы настроим централизованную аутентификацию через сервис аутентификации на Open Access Manager (OpenAM) и настроим доступ к приложению через шлюз авторизации Open Identity Gateway (OpenIG), который будет использовать сессию аутентификации OpenAM. В качестве защищаемого приложения будем использовать приложение, разработанное с использованием Spring Boot и Spring Security.

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

Kubernetes 1.30:  структурированные параметры для DRA, рекурсивное монтирование read-only-томов и другие фичи

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

Вышла новая версия Kubernetes — 1.30. Среди главных нововведений — структурированные параметры для DRA, рекурсивное монтирование read-only-томов, синхронизация статусов задач сторонними контроллерами, более гибкие критерии успешности индексированных задач, обновленное управление маршрутизацией трафика.

Читать далее
Всего голосов 24: ↑26.5 и ↓-2.5+29
Комментарии2

Как исправить изменившийся номер договора в нескольких сотнях Эксель файлов менее чем за минуту

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

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

Так появилась задача однотипной замены номера договора и его даты в каждом из *.xlsx файлов, которые были расположены в папках, названных по адресу объекта. Таких папок было множество и некоторые ещё имели вложенные подкаталоги.

Ручной способ, который состоит из использования сочетания клавиш Ctrl + H хоть и позволял сделать замену во всей книге Microsoft Excel сразу, но подразумевал что придётся открыть каждый файл по отдельности, нажимать несколько раз (под замену не только номер, но и дата) сочетания клавиш для замены, сохранять книгу Экселя, закрывать книгу, открывать новую книгу. В общем совершать множество механических действий.

Я конечно же стал думать, как можно наиболее простым для себя способом сделать это множество автозамен. Выбор сразу пал на VBA - Visual Basic для приложений. Ведь при помощи VBA можно заставить Эксель делать то, чего он не умеет по умолчанию.

Так что в этой статье хочу показать пошаговое руководство по быстрой и массовой автозамене любых данных во множестве файлах Excel с помощью сценария VBA.

VBA Excel автозамена
Всего голосов 16: ↑14 и ↓2+12
Комментарии42
1
23 ...

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