Pull to refresh
-1
0.1
Send message

История создания идеального Docker для Laravel

Level of difficultyEasy
Reading time13 min
Views8.7K

Казалось бы, упаковать PHP в контейнер и настроить GitHub Actions - дело пяти минут. Но как часто бывает, реальность оказалась сложнее. Это история о том, как я вернулся к разработке на PHP и решал накопившиеся проблемы с деплоем Laravel-проекта. О том, как готовил Docker-образ, несколько раз переписывал процесс деплоя, находил компромиссы там, где это было возможно, и полностью перестраивал архитектуру там, где компромиссы были неприемлемы.

Читать далее

Как LangChain и LangGraph упрощают жизнь разработчика ИИ-Агентов

Level of difficultyMedium
Reading time12 min
Views4K

При разработке приложений на основе больших языковых моделей (LLM, Large Language Model) встает вопрос: вызывать ли модель напрямую через API (например, OpenAI) или использовать специализированные фреймворки вроде LangChain или LangGraph. Ниже мы рассмотрим, с какими сложностями сталкивается разработчик при прямом использовании LLM, и как LangChain и LangGraph помогают упростить создание сложных диалоговых и агентных систем. Также приведем примеры кода, сравнивая прямые вызовы с использованием этих фреймворков, и обсудим, когда их применение оправдано.

Читать далее

Ежегодный опрос PHP-сообщества: итоги 2024 года

Level of difficultyEasy
Reading time8 min
Views6.5K

2024 стал насыщенным годом для русскоязычного сообщества PHP-разработки. PHP Russia 2024, релизы PHP 8.4, Symfony 7.2 и Laravel 11.

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

Читать далее

Почему измерять ≠ управлять: как KPI искажают реальность и какой инструмент использовать осознанному руководителю

Reading time8 min
Views7.3K

Если бы все популярные цитаты действительно принадлежали тем людям, которым мы их приписываем, то фраза «если вы это не  измеряете, то значит вы этим не управляете» стояла бы в списке мудростей Питера Друкера. Однако Друкер никогда не произносил этих слов и не поддерживал такой подход. И самое главное, эта идея сама по себе неверна.

В этом материале расскажем к чему это приводит и какой инструмент использовать осознанному руководителю.

Читать далее

Как я объединил перевод и суммаризацию текстов, и что из этого вышло

Level of difficultyMedium
Reading time8 min
Views1.6K

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

Однако при ближайшем рассмотрении эти задачи имеют много общего...

Читать далее

Perforator: новая система непрерывного профилирования теперь в опенсорсе

Level of difficultyMedium
Reading time21 min
Views35K

Привет! Сегодня мы выложили в опенсорс Perforator — систему непрерывного профилирования (continuous profiling), которую используем внутри Яндекса для анализа производительности большинства сервисов.

В Github-репозитории доступен исходный код системы и инфраструктура для развёртывания своей инсталляции Perforator на кластере Kubernetes. Кроме того, Perforator можно использовать на своём компьютере как более простую замену perf record: профили получаются точнее, а оверхед меньше. Исходный код доступен под лицензией MIT (и GPL для eBPF-программ) и запускается под x86-64 Linux.

При помощи Perforator и прошлых подходов к задаче профилирования мы регулярно оптимизируем самые крупные сервисы в Яндексе, например Баннерную крутилку или Поиск, на десятки процентов. Кроме того, Perforator реализует недостающий в опенсорсе компонент профилирования для простой автоматической оптимизации программ с использованием profile-guided optimization. Наши тесты показывают, что использование PGO даёт ускорение около 10% в разных сценариях.

Под катом поговорим про профилирование под Linux, опишем вызовы и сложности, возникающие при профилировании, изучим, как устроен Perforator внутри, и обсудим, как можно использовать полученную систему.

Читать далее

Как с помощью deep learning мы построили Геокодер, масштабируемый для разных стран

Reading time11 min
Views10K

Давным‑давно, когда мир ML состоял из бустингов, линейных моделей и статистических подходов, перед нашей командой API Яндекс Карт стояла задача сделать качественный Геокодер. Это алгоритм, который конвертирует текстовые запросы пользователей в поисковой строке карт в координаты и обратно. Он нужен, когда люди вводят адреса с ошибками, опечатками или народными наименованиями, например «Мяснитская 8». Геокодер должен понять, что имелось в виду «улица Мясницкая, дом 8/2», и вернуть на карте отметку с точной локацией и координатами.

Разработанный для России Геокодер отлично справлялся, но мы хотели найти способ быстро адаптировать это решение к адресным системам других стран. Технологические ограничения не позволяли быстро адаптировать решение, поскольку для каждой страны требовалась разработка собственных правил геокодирования, которые бы учитывали различия и языковые особенности. Однако появление и развитие алгоритмов deep learning открыло новые горизонты: методы active learning, аугментации данных и contrastive learning позволяют значительно улучшить итоговое качество геокодирования и учитывать нюансы различных адресных систем.

В этой статье мы рассмотрим основные этапы и методы построения нового Геокодера, который быстро масштабируется на адресные системы разных стран. Расскажем, что у него под капотом, как именно использовались механизмы deep learning при его создании, с какими проблемами мы столкнулись и как научили его понимать адреса с ошибками и опечатками.

Читать далее

Используем HTTP API Gemini 2.0 thinking бесплатно

Level of difficultyMedium
Reading time4 min
Views12K

Давно не писал статей на хабр, потому что редко находится что-то такое полезное.

Недавно обнаружил, что гугл даёт делать 1500 бесплатных в сутки на свою модель gemini. Что вполне достаточно для создания прототипа или даже небольшого пет-проекта. Как по мне так это не плохой способ начать эксперементировать с gpt-моделями и при этом ничего не платить.

На ai.google.dev видно, что можно использовать 1500 запросов на gemini 1.5 flash и 1500 на gemini 1.5 flash 8b. Размер контекста - 1 миллион токенов.
Карту привязывать не надо. Я вообще создал под это дело новый гугловый аккаунт, чтобы не париться, что могу не уложиться в бесплатные лимиты.
Чего не написано в прайсе так это то, что помимо моделей 1.5 flash также доступны бесплатно ещё и топовые модели gemini 2.0 flash и gemini 2.0 flash thinking. С теми же ограничениями - не более 1500 запросов в сутки на каждую.

А теперь посмотрим как обойти блокировки

Agile умер: из-за своего сострадания к product- и project-менеджерам (с) Фридрих Ницше

Level of difficultyEasy
Reading time8 min
Views41K

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

Читать далее

Заменяем хабраюзеров ИИ-агентами. Гайд по browser-use

Level of difficultyEasy
Reading time4 min
Views13K

TLDR: видео с результатом в конце статьи

Библиотека browser-use невероятно стрельнула практически в день релиза, на текущий момент это около 16 тысяч звезд на Гитхабе, и сотни восторженных отзывов на Reddit, в Твиттере, и так далее. Команду, создавшую browser-use даже приняли в YC. У неё революционная точность по сравнению с другими "ИИ агентами использующий браузер" (89% против Runner H с 67%).

Я очень удивился, что на Хабре всё ещё нет статьи с описание того, что это, и как это использовать. Сегодня мы это исправим: мы сделаем ИИ, который будет читать статьи на Хабре, и писать комментарии о том, почему продукт, описанный в статье, никому не нужен.

Добро пожаловать в мир ИИ-агентов!

Open-source альтернативы Operator от OpenAI

Level of difficultyEasy
Reading time3 min
Views4.6K

Ну вот, буквально позавчера я написал статью про Browser Use, и уже на следующий день OpenAI объявил о выпуске Operator — ИИ-агента, который может работать в браузере вместо вас.

Мало того, что OpenAI открыто манипулируют данными, не включая Browser Use в свой бенчмарк (потому что Browser Use лучше Operator — 89% против 87% в тестах Web Voyager), так ещё и работа идет в браузере на удаленном сервере (уже дико по отношению к приватности), то ещё и скрины всего, что происходит OpenAI будут хранить 3 месяца.

В общем, let's make AI open again: вот подборка альтернатив Operator, которые работают локально и не требуют ни денег, ни делиться своими данными.

Поехали!

Реальная эффективность Qwen 2.5 Coder против ChatGPT (или можно ли сэкономить 20$?)

Level of difficultyEasy
Reading time8 min
Views17K

Можно ли сэкономить 20$ и заменить ChatGPT локальным Qwen 2.5 Coder? Попробуем проверить логику моделей!

Читать далее

PGlite — полноценный Postgres-сервер на WASM. Работает прямо в браузере и Node.js

Level of difficultyEasy
Reading time4 min
Views5.2K

Безумные штуки иногда можно найти в интернете. Листая 2024 JavaScript rising stars (https://risingstars.js.org/2024/en#section-all) обнаружил там удивительного зверя - Postgres скомпилированный через emcc в WASM версию, и допиленный до состояния, когда его можно запустить внутри JS-процесса (браузер/Node.js/Bun/etc).

Как он устроен, как им пользоваться, и, самое главное, зачем? Добро пожаловать под кат :)

Поехали!

pg_auto_embeddings — считаем эмбеддинги для текста прямо в Postgres, без экстеншенов

Level of difficultyEasy
Reading time4 min
Views1.9K

У вас есть Postgres, где хранится множество текстовых данных. Вы хотите использовать векторные представления (embeddings), к примеру, от OpenAI/Anthropic, чтобы построить систему рекомендаций, улучшенный поиск или реализовать RAG для работы с LLM. Но при этом ставить расширения (extensions) не хочется, а может, и вовсе нельзя — например, в облачных Managed PostgreSQL зачастую нет нужных прав.

Под катом описание open-source решения pg_auto_embeddings, которое вам поможет.

Скорее под кат!

Геолокация по теням: как определить место съёмки исторической фотографии

Level of difficultyEasy
Reading time4 min
Views4.9K

В этой статье я расскажу о том, как можно определить географическое местоположение объекта на фотографии, используя только длину тени и время съёмки. Мы рассмотрим конкретный пример - историческую фотографию 1963 года из Сайгона (ныне Хошимин), и напишем Python-скрипт для анализа возможных локаций.

Читать далее

Извлекаем почтовые индексы из ФИАС

Level of difficultyMedium
Reading time10 min
Views835

Казалось бы если ФИАС содержит эти данные, то просто выгрузи их ? Но не тут то было, дело в том что почтовые индексы есть у домов, но почтовых индексов нет у населённых пунктов, при этом населённые пункты через произвольное количество своёв "абстракции" связаны с домами. Эта связь записана в таблицу ADM_HIERARCHY - группировка по административному делению.

Собственно задача состоит в том что бы сгруппировать почтовые индексы всех домов и взять минимальный индекс как индекс собственно населённого пункта (индекс населённого пункта обычно заканчивается нолями, у "подчинённых" почтовых отделений индексы заканчиваются цифрами от 1 до 9).

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

О том как это сделать и решить проблему с выборкой будет эта статья-инструкция.

Читать далее

RAG в действии: актуальные инструменты и возможности их применения

Level of difficultyEasy
Reading time18 min
Views6.3K

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

Читать далее

Индекс галерности и удержание сотрудников

Level of difficultyEasy
Reading time5 min
Views10K

Галеры - это компании, которым плевать на сотрудников. Это естественным образом приводит к высокой текучке кадров. На мой взгляд, на аутстафе такое встречается чаще, чем на аутсорсе или в продуктовой компании. Потому что на аутстафе увеличение твоей полезности на проекте влияет на оплату примерно никак.

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

Читать далее

Cовмещаем Haproxy, Vless, WebSocket, VPN и сайт на одном порту

Level of difficultyHard
Reading time13 min
Views20K

Cовмещаем Vless, WebSocket, VPN и сайт на одном порту средствами Haproxy, создаем альтернативу VPN на основе WebSocket.

Читать далее

pg-index-health – статический анализ структуры PostgreSQL баз данных

Level of difficultyHard
Reading time19 min
Views6.1K

С 2019 года я занимаюсь разработкой open source инструмента под названием pg-index-health, который позволяет анализировать структуру БД и находить потенциальные проблемы.

Все эти годы pg-index-health эволюционировал и развивался. За 2024 год мне при поддержке нескольких контрибьюторов удалось решить большинство остававшихся «детских болячек» и довести проект до состояния, когда он готов к масштабной экспансии.

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

Читать далее

Information

Rating
Does not participate
Registered
Activity