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

Open source *

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

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

Как я создал клон 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, как он устроен внутри и как им пользоваться с примерами кода под каждый поддерживаемый фреймворк.

Читать далее

Локализация Flutter приложения на сервере

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

g11n, i18n, l10n... или один из множества вариантов локализации приложения. Привет, меня зовут Константин Комков и я надеюсь данный пример и последовательность шагов сэкономят Вам время при разработке!

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

Читать далее

Chotto UI — набор компонентов для чатов на Vue3

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

Пытаясь подражать слогу классика, можно сказать, что "все чаты в целом одинаковы, но каждый реализует что-то свое".

так ли это? посмотрим.

TL, DR: далее рассказываю, что мы делаем свой UI набор компонентов для чата, даю ссылки и приглашаю присоединяться к проекту.

Читать далее

Самодельная мобильная лаборатория из старого мультиметра и подручного телефона

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

Эта история началась с того, что я допиливал свой пет-проект по обработке данных. В ходе работы мне попался старый, но надежный мультиметр. Я долго им пользовался ранее, изучая электронику. Сам прибор неплохой, но софт под него сильно устарел, да и заточен он только под Windows. Так я занялся реверс-инжинирингом, отладкой обмена сообщениями и сборкой библиотек для телефона. Подробности — под катом!
Читать дальше →

Брокер сообщений своими руками

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

В эрланге (и эликсире) мне всегда недоставало способа организовать «потоковый» обмен сообщениями, наподобие того, который обеспечивает какой-нибудь Message Broker. Нормальные разработчики смиряются с ограничениями, которые им задают их фреймворки: в Финиксе есть PubSub, в OTP — :gen_event, в эликсире — депрекейтнутый еще до рождения GenEvent.

Так родилась библиотека Antenna, которая предоставляет все те возможности, которые обычно обеспечиваются посредством вкрячивания дополнительной зависимости от брокера сообщений. Требования, которые я к ней предъявлял, были следующими:

узнать, какими именно

Говорим с Битрикс24 на языке ИИ: представляем опенсорс MCP-сервер для LLM-интеграции

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

Привет! Мы — партнеры Битрикс24 и создаем для бизнеса приложения с генеративным ИИ, интегрируя их с корпоративными порталами.

В этой статье мы расскажем о созданном нами решении, которое позволяет любым разработчикам легко подключать свои чаты и другие приложения с LLM-моделями к Битрикс24. Речь идет о MCP-сервере — помощнике для ИИ, который позволяет получать из портала Битрикс24, например из раздела CRM, точные данные для ответа пользователю.

Читать далее

Теперь не забываю: вся инфраструктура под рукой в IDEA

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

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

И о решении, которое подойдёт не только мне.

Читать далее

Раздельное тестирование выходов торговой системы на Мосбирже через Pine Script: трейлинг стоп и ATR

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

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

В статье тестирую две стратегии трейлинг-стопов для Московской биржи на фьючерсном контракте USD/RUB (Si) на часовом таймфрейме, используя язык Pine Script в TradingView.

Весь код Pine Script приведен в статье.

Pine Script исследования

Измерение аудитории блога с помощью OpenTelemetry

Время на прочтение6 мин
Количество просмотров751
Мне интересно следить, какие статьи в моём блоге наиболее популярны, и сколько людей заглядывает в блог каждый день. Этот блог прошел через несколько этапов, позволяющих оценить эти показатели. Сначала это была Google Аналитика, но делиться всей этой информацией с Google не очень комфортно. Поэтому я перешёл на Matomo, развернутый на сервере CHATON: Libréon.

TL;DR

Хотите отслеживать трафик на статическом блоге без Matomo и Google Analytics?
Рассказываю, как с помощью OpenTelemetry, Prometheus, Grafana и небольшого самописного скрипта на JS (Otela) можно элегантно и эффективно следить за посещаемостью — при этом полностью сохранив контроль над своими данными.
Читать дальше →

Не хватает клавиш? (upd)

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

Сколько разных значений вы можете ввести нажатием одной клавиши? Так, на клавиатуре 33 клавиши в буквенном блоке, 13 в цифровом ряду, получается 46. А двумя нажатиями? Выходит 46×46, и ещё 46 – те же клавиши с Shift. Всего чуть больше двух тысяч, и это просто случайные сочетания букв, цифр и пунктуации.

Что если правильные ответы – сотни для одного нажатия, и десятки тысяч для двух? Это далеко не предел. И эти значения – не случайные пары символов, а кнопка "мой рабочий емейл" или "текущая дата", символы осо́бой пунктуации, специфичные языковые символы, кнопка для перевода с транслита, исправления регистра, запуска приложения, и даже "включить музыку через 20 минут" или "прогноз погоды". И для этого вам не нужно учить наизусть таблицу юникод или хитрые сочетания. Вы сами определяете, что и где будет находиться, никак не меняя базовую функциональность.

Нет, это не клавиатура с тысячью кнопок, и даже не прошиваемая механика. Самая обычная клавиатура, которая сейчас у вас под рукой. Как это возможно? Обо всём по порядку.

🕺💃

Game Engine 3 — оболочка для визуального программирования игр на Python (от идеи до реализации)

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

Привет, Хабр! Сегодня я хочу рассказать о своём проекте — «Game Engine 3», программной оболочке для создания двумерных игр и приложений.

Game Engine 3 — это инструмент для создания 2D‑игр с физикой и анимацией. С открытым исходным кодом, интуитивным редактором визуального программирования на основе нодов и возможностями работы с графикой, физикой и анимацией, он подходит как для новичков, так и для профессионалов. В этой статье разберем, что делает эту оболочку уникальной.

Читать далее

Fedora Linux 42 уже здесь: что нового в свежем выпуске дистрибутива

Время на прочтение5 мин
Количество просмотров12K
image
Источник.

Привет, Хабр! Несколько дней назад был анонсирован выпуск дистрибутива Fedora Linux 42. Доступны для скачивания редакции Fedora Workstation, Fedora KDE Plasma Desktop, Fedora Server, Fedora IoT, Fedora CoreOS, Fedora Cloud Base, Fedora IoT Edition, Fedora Silverblue, Fedora Kinoite, а также Live-сборки с пользовательскими окружениями, включая Xfce, MATE, Cinnamon, LXDE, Phosh, Miracle, LXQt, Budgie, Sway и Cosmic. Сборки подготовлены для архитектур x86_64, Power64 и ARM64 (AArch64).
Читать дальше →

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

Создание управляемых двойников в IDM Midpoint через Personas

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

Один из механизмов IDM Midpoint — Personas позволяет создавать управляемых двойников и хотя сами разработчики не очень доверяют этой функции (прочитайте вот тут внизу — типичный Evolveum) его вполне можно использовать в интересных сценариях. В статье не только покажу как можно использовать Personas но и залезу в дебри авторизации, потому что одно дело делать все Midpoint админом вручную а другое «давайте сами всё через GUI»!

Что такое Personas человеческим языком — это создание и обновление через маппинг сущности User — связь User to User. Пользователю А дается роль которая создает еще одного пользователя В, в которого по маппингу копируется данные из пользователя А. Если в А что то меняется и на это есть маппинг то это сразу обновляется в В. Вся суть в этой связи, а В сам по себе еще один полноценный пользователь для Midpoint.

Читать далее

Сворачиваем CPython вокруг PVS-Studio

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

Python... язык программирования, не нуждающийся в особом представлении. За удобство в обработке "больших данных" заслуженно получил звание "лучшего Excel". За удобство интеграции в C и C++ код его любит геймдев. А также у него низкий порог вхождения!

Но как обстоят дела внутри?

Pro-code, Low-code, и роль Camunda

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

Pro-code — наше сердце и душа, но люди и процессы бывают разными. Наши необязательные low-code-функции расширяют спектр применений, не мешая разработчикам.
 
Разработчики часто спрашивают меня о стратегии развития продуктов Camunda. Особенно во время запуска Camunda 8 они выражали обеспокоенность тем, что мы якобы «забыли свои корни» или «отказались от удобства для разработчиков» — именно те качества, за которые нас любят. Появилось мнение, что мы «прыгнули в поезд low-code», потому что у нас теперь есть финансирование и мы хотим «гнаться за большими деньгами». Как разработчик в душе, я могу вас уверить — это совсем не так. Позвольте объяснить нашу стратегию в этом посте.
 
TL;DR: Мы остаёмся на 100% дружелюбными к разработчикам, и pro-code — это наше всё (можно сказать, наш хлеб с маслом). Но люди, создающие процессные решения, бывают разными — как и сами процессы, которые нужно автоматизировать. Для некоторых сценариев low-code действительно имеет смысл, и здорово, что мы можем их поддерживать. Но low-code-функции в Camunda являются необязательными и никак не мешают pro-code-разработке.

Читать далее

2200 снимков Евгения Халдея собраны на Викискладе, потому что перешли в общественное достояние

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

Фотограф Евгений Халдей (1916—1997) был военным корреспондентом и активно фотографировал события Второй Мировой войны. Его авторские права охраняются в течение 75 лет после смерти, однако тысячи его фотографий уже перешли в общественное достояние. Как же это получилось?

Читать далее

Пробуем Codex CLI от OpenAI для доработки ХрюХрюКара

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

Пару дней назад я опубликовал статью про ХрюХрюКар - телегам-бот для борьбы со стоянкой автомобилей на зелёных зонах. Проект с открытым исходным кодом.

За два дня ко мне обратилось несколько сторонников с просьбой добавить их города. Но вот незадача: у меня была возможность через админ-панель Django править данные в базе, но об этом кеш сервера не узнает (основной бекэнд на Go). В результате приходилось добавлять данные и перезагружать контейнеры с go-бекэндом вручную.

Основные серверы ХХК уже имели сторы, которые получают и обрабатывают апдейты, прилетающие через redis.

По сути, оставалось внести правки в часть django-бэкенда, чтобы обрабатывать сигналы pre_save и pre_delete, сериализовать данные и отправлять их в нужный канал редиса.

Решил поручить эту задачу Codex CLI, которую вчера OpenAI представили нам с вами. 

Читать далее

Когда вам стоит обратиться к ИТ-юристу? (Возможно, прямо сейчас!)

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

Где именно юристы пересекаются с ИТ?

Ответ здесь может быть долгим. Тимлиды регулярно принимают решения о выборе технологий и инструментов, менеджеры управляют ИТ-проектами с учетом сроков и бюджета, а разработчики пилят полезные сервисы и фичи. Каждый из них сталкивается с правовыми аспектами своей работы: от проверки лицензий open source компонентов до простого (иногда в кавычках) оформления договора с подрядчиком.  

Часто коммуникация юристов и ИТ-спецов напоминает диалог двух разных миров: технический жаргон встречается с правовыми терминами; планы по запуску прорывных решений — с рядом законодательных ограничений.

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

Оба этих аспекта раскрываем под катом, в формате памятки. 

Читать далее

Pet-проект: «Граф Компетенций»

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

Как-то всем отделам дали задание: предоставить матрицы компетенций. Все поняли его по-своему. Я не был исключением. Речь пойдёт о том, зачем нужен более высокий уровень абстракции для матрицы компетенций, и как он называется?

Читать про граф компетенций

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