Pull to refresh
-1
0.1
Send message

Опыт работы с библиотекой h3: гексы, геопризнаки и Geo Feature Store

Level of difficultyEasy
Reading time5 min
Views1.9K

Привет, меня зовут Роман Симановский, я Junior Data Scientist в команде Геоаналитики Альфа-Банка. Сегодня поделюсь опытом того, как мы работаем с пространственными данными, преобразовывая их в гео-признаки. С их помощью мы улучшаем модели машинного обучения, добавляя в них информацию об окружающем мире. На самом деле, это не так уж сложно, поэтому статья будет короткой.

Читать далее

Оптимизация PostgreSQL: параметры для ускорения запросов

Level of difficultyMedium
Reading time5 min
Views13K

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

Читать далее

Проверка готовности приложения к работе в реальном ненадежном мире. Часть 4

Reading time10 min
Views2K

Четвертая часть статьи, в которой Виталий Лихачёв, SRE в booking.com и спикер курса Слёрма «Golang-разработчик» рассказывает, о чём стоит подумать перед выкаткой сервиса в жестокий прод, где он может не справиться с нагрузкой или деградировать из-за резких всплесков при наплыве пользователей и по вечерам.

Статья состоит из 5 частей, которые выходят по очереди:

1. Надежность.

2. Масштабируемость/отказоустойчивость.

3. Resiliency/отказоустойчивость.

4. Безопасность. Процесс разработки. Процесс выкатки.

5. Наблюдаемость. Архитектура. Антипаттерны.

Читать далее

Руководство по созданию приложения для поиска данных на основе агента GraphRAG

Level of difficultyMedium
Reading time3 min
Views6.5K

Это приложение интегрирует GraphRAG с агентами AutoGen, работающими на локальных LLM от Ollama, для бесплатного и автономного встраивания и вывода.

Ключевые моменты включают:
1. Agentic-RAG: - Интеграция метода поиска знаний GraphRAG с агентом AutoGen через вызов функций.
2. Поддержка автономного LLM: - Настройка GraphRAG (локальный и глобальный поиск) для поддержки локальных моделей из Ollama для вывода и встраивания.
3. Вызов функций не из OpenAI: - Расширение AutoGen для поддержки вызова функций с LLM из Ollama через прокси-сервер Lite-LLM.
4. Интерактивный пользовательский интерфейс: - Развертывание пользовательского интерфейса Chainlit для обработки непрерывных разговоров, многопоточности и настроек пользовательского ввода.

Читать далее

Как я создавал бесплатный сервис оптимизации изображений FlashImg.ru

Level of difficultyEasy
Reading time3 min
Views2.6K

Всем привет. В этом материале я расскажу как создавал беспслатный сервис оптимизации изображений FlashImg.ru

Читать далее

Советы Team/Tech Lead: навыки, инструменты и вызовы

Level of difficultyMedium
Reading time9 min
Views3.9K

Team Lead и Tech Lead – это НЕ должности, а ключевые функциональные роли в команде, которые могут взять на себя опытные специалисты. Team Lead отвечает за организацию работы команды, поддержание продуктивной среды и помощь коллегам в достижении общих целей. Tech Lead фокусируется на техническом направлении, принимая архитектурные решения и обеспечивая качество проекта. Эти роли требуют не только профессиональных навыков, но и способности направлять, вдохновлять и поддерживать команду. В этой статье я поделюсь основными навыками, инструментами и вызовами, с которыми сталкиваются Team и Tech Leads, а также расскажу, как справляться с трудностями и добиваться успеха в этих ролях.

Читать далее

Как я получил $5000 за Out-of-Scope XSS

Reading time3 min
Views4.9K

Несколько месяцев назад я получил приглашение участвовать в частной программе bug bounty на платформе HackerOne. Сначала я провел свои обычные тесты и обнаружил различные уязвимости, такие как недостаток управления доступом (BAC), утечка авторизационных токенов других пользователей и т.д.

После того как я сообщил об этих уязвимостях программе, я заметил, что XSS считается вне области покрытия согласно их политике. Бизнес программы заключался в том, чтобы предоставлять услуги по созданию систем управления контентом и конструкторов веб-сайтов. При создании аккаунта, пользователи получают уникальный поддомен вида <YOUR-SUB>.target.com, который они могут настраивать.

Учитывая структуру приложения, XSS был ограничен возможностью воздействия только на собственный поддомен, и программа исключила XSS на <YOUR-SUB>.target.com из области покрытия. Это подтолкнуло меня к поиску уязвимости self-XSS и попытке связать ее с другой уязвимостью, чтобы показать более серьезные последствия.

Мне удалось найти несколько цепочек XSS, которые увеличивали ее воздействие. Поскольку на данный момент только одна цепочка была подтверждена, я напишу отчет только о ней. Когда остальные отчеты будут решены, я планирую опубликовать отдельные материалы для каждой из них. Теперь давайте перейдем к самой истории.

Найти self-XSS не заняло много времени.

Читать далее

Как мы обучили Mistral 7B русскому языку и адаптировали для объявлений Авито

Level of difficultyMedium
Reading time7 min
Views11K

Привет! Я Настя Рысьмятова, руковожу командой LLM в Авито. Эта статья — про то, какие задачи мы решаем с помощью языковых моделей и как адаптируем их под себя. Мой опыт будет интересен прежде всего тем, кто тоже занимается большими языковыми моделями в крупных продуктовых компаниях. А всем остальным любопытно будет узнать, как модели учатся и решают конкретные задачи Авито — например, помогают пользователям писать тексты объявлений.

Читать далее

Как сделать React Server Components в Electron с помощью Next.js и без открытых портов

Level of difficultyMedium
Reading time8 min
Views1.4K

Статья про то как заставить работать React Server Components внутри Electron приложения с помощью Next.js при этом не запуская локальный сервер и не открывая порты. С возможностью публикации стандартными инструментами. А также исследование зачем все это надо.

Читать далее

Забудьте про терминал! Как я избавлялся от рутинных ADB команды с помощью Shortcuts

Level of difficultyEasy
Reading time8 min
Views3.8K

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

А ведь кроме установки, есть множество других команд ADB, которые приходится использовать время от времени. Например, отправка фалов на устройство или выгрузка последних логов из logcat на компьютер, для чего тоже нужно было прописывать путь для сохранения файла — очень неудобно и отнимает драгоценное время.

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

В конце статьи ссылки на готовые команды 🌚

Читать далее

PinkHash: Незабываемые розовые хеши

Level of difficultyEasy
Reading time4 min
Views2.5K

Розовый хеш — это как розовый слон, только хеш.

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

К эндокринологам и многомерным антихристам

Как мы внедрили генеративную модель в объявления на Авто.ру. Доклад Яндекса

Reading time6 min
Views1.9K

Фронтенд‑разработчики из Авто.ру Максим Алмаев и Дмитрий Размолодин рассказали на внутреннем митапе, как их команда запустила генерацию описаний машин в помощь тем, кто публикует объявления на сервисе. Вы узнаете, зачем разработчики лимитировали нагрузку, как победили проблему галлюцинаций и что помогло убедиться в корректной работе решения.

Переложили выступление ребят в текст для удобства читателей Хабра.

Читать далее

Сервис для обхода блокировки OpenAI API в России или ваш первый API

Level of difficultyEasy
Reading time5 min
Views14K

Всем привет! Сегодня я расскажу вам, как я сделал сервис для обхода блокировки OpenAI в россии со стороны OpenAI (не Роскомнадзор даже) с использованием FastAPI и Docker. Мотивация проста. У меня в РФ есть сервер на котором работают сервисы и я хочу подключить к ним OpenAI, но они не дают доступ, распознавая IP из россии. Подумал что напишу сервер для пересылки запроса. Если вам интересно, как за несколько шагов запаковать работу с ИИ в красивую и простую оболочку, то устраивайтесь поудобнее. Мы вместе погрузимся в этот увлекательный процесс!

Читать далее

Почему GitHub на самом деле победил: история глазами сооснователя

Level of difficultyEasy
Reading time17 min
Views12K

Недавно мы опубликовали в блоге перевод статьи о том, как GitHub заменил SourceForge в роли доминирующей платформы для хостинга кода. Но, как справедливо отметил автор оригинала, его мнение основано на открытых источниках и интервью с коллегами. А потом своим ви́дением поделился один из сооснователей GitHub, Скотт Чакон, который «действительно был там». Под катом — перевод его ответной статьи о реальных причинах победы GitHub. 

Читать далее

Postgres, как настроить запросы между разными БД

Level of difficultyEasy
Reading time3 min
Views7.9K

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

Ниже речь будет идти о чтении данных одной БД из другой БД. В частности я решал такую проблему:

В нашей Системе данные о пользователях записаны в одной БД, а данные об их торгах в другой, без дополнительных настроек Postgres не позволяет использовать в одном запросе данные из разных БД.

То есть запрос вида:

select a.id from auth.public.user a join trade.public.tenders t on a.id = t.user_id;

Вызовет ошибку "[0A000] ERROR: cross-database references are not implemented".

Что делать ?

Читать далее

SoundCloud Api или как пример «плохой» документации

Level of difficultyEasy
Reading time2 min
Views2.4K

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

Но, сегодня статья не совсем об этом. На этапе требований к технической составляющей проекта я решил, что нужно какой-то место откуда можно "подтаскивать" мелодии. Пересмотрел я много api и остановился на SoundCloud из-за ряда преимуществ:

Читать далее

Я ускорил генерацию blurhash в 3̶6̶ 8̶7̶ 128 раз

Level of difficultyMedium
Reading time15 min
Views10K

Старую собаку новым трюкам не обучишь, вот и я взялся за старое. Blurhash — это компактный способ представления размытой превьюшки изображения в виде ASCII-строки. Разработан финской компанией Wolt (аналог Delivery Club). Давно хотелось внедрить такое к себе в API, чтобы любой клиент мог более плавно и изящно делать загрузку контент на своем сайте. Но сколько я на него смотрел — всегда не давала покоя скорость работы, уж больно медленно и «в лоб» он был написан. Но вот время пришло наконец-то разобраться, что же он так медленно работает.

Читать далее

Веб-доступность. Бесконечная лента

Level of difficultyMedium
Reading time6 min
Views2.2K

Про то, что такое бесконечная лента (Infinity Scroll, Feed) - есть много статей, постов, гайдов по реализации самого функционала, и, кажется, рассказывать про то, как именно ее реализовать и что это такое - не идея этой статьи. Так же, как и рассказывать о плюсах и минусах этого подхода. Если Вы все же не знаете, что это за чудо инженерной мысли - можно ознакомиться тут.

Лично я хочу сосредоточиться на доступности такой ленты, а в конце - пример реализации на простом HTML/CSS/JS с поддержкой альтернативного управления, однако такой пример легко портировать на любой другой фреймворк/библиотеку.

Читать далее

Inertia 2.0: Новые возможности для разработчиков

Level of difficultyMedium
Reading time4 min
Views6.2K

На конференции Laracon Тэйлор Отвел, создатель популярного PHP-фреймворка Laravel, представил Inertia.js версии 2.0 — самое крупное обновление с момента запуска этого пакета. Новая версия приносит множество полезных функций, которые значительно упростят разработку приложений на Laravel и Inertia.js.

Читать далее

Information

Rating
4,394-th
Registered
Activity