Pull to refresh
7
0
Nikolay Lebedenko @Lebnik

Пользователь

Send message

EasyAdmin и Mercure: реальный юзкейс

Reading time8 min
Views3K

EasyAdmin — один из самых популярных генераторов административных панелей, доступных для Symfony-приложений. Поскольку для аутентификации пользователей он использует стандартный компонент безопасности Symfony, он позволяет входить в систему и изменять данные множеству пользователей одновременно. Но есть одна проблема…

Читать далее
Total votes 9: ↑7 and ↓2+7
Comments2

Реализация REST API на Symfony2: правильный путь

Reading time18 min
Views57K
REST
Создание REST API это нелегкая задача. Нет, серьезно! Если вы хотите написать API правильно, вам придется о многом подумать, решить, быть прагматиком, или API маньяком. REST это не только GET, POST, PUT и Delete. На практике, у вас могут быть взаимодействия между ресурсами, нужно перемещать ресурсы куда-то еще (к примеру внутри дерева), или вы захотите получить конкретное значение ресурса.

В данной статье собрано все, чему я научился реализуя различные API сервисы, используя для этих целей Symfony2, FOSRestBundle, NelmioApiDocBundle и Propel. К примеру сделаем API для работы с пользователями.
Читать дальше →
Total votes 32: ↑29 and ↓3+26
Comments25

Откуда берется заголовок Content-Type: nginx + php-fpm

Reading time5 min
Views9.4K
Rocket science не будет. Если вы используете php-fpm, то скорее всего в связке с nginx. Простой вопрос: как в PHP получить значения HTTP заголовков запроса клиента?

  1. Например, стандартные Accept, Host или Referer?
  2. Знаете? Здорово! А как получить значение Content-Type, Content-Length?
  3. Ничем вас не удивить, а как получить значение произвольного заголовка, например X-Forwarded-For?

image
Читать дальше →
Total votes 21: ↑13 and ↓8+11
Comments10

Особенности проксирования через CDN/Websocket/gRPC для обхода блокировок

Level of difficultyMedium
Reading time15 min
Views62K

Эта статья — заключительная (наконец‑то!) из моего огромного цикла про недетектируемые инструменты для обхода блокировок. В предыдущих публикациях я упоминал, что клиенты и серверы XRay (форк V2Ray) и Sing‑box при использовании протоколов VLESS/VMess/Trojan могут работать через веб‑сокеты и gRPC, что позволяет подключаться к даже заблокированным Роскомнадзором прокси‑серверам через CDN (content delivery или content distribution network) и дает дополнительные преимущества. Сегодня мы поговорим об этом поподробнее.

Читать далее
Total votes 62: ↑60 and ↓2+76
Comments148

Как сделать из нейросети журналиста, или «Секреты сокращения текста на Хабре без лишних слов»

Reading time10 min
Views13K
Только не удивляйтесь, но второй заголовок к этому посту сгенерировала нейросеть, а точнее алгоритм саммаризации. А что такое саммаризация?

Это одна из ключевых и классических задач Natural Language Processing (NLP). Она заключается в создании алгоритма, который принимает на вход текст и на выходе выдаёт его сокращённую версию. Причем в ней сохраняется корректная структура (соответствующая нормам языка) и правильно передается основная мысль текста.

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

К моему удивлению, на Хабре оказалось совсем немного статей о саммаризации, поэтому я решил поделиться своими исследованиями и результатами в этом направлении. В этом году я участвовал в соревновательной дорожке на конференции «Диалог» и ставил эксперименты над генераторами заголовков для новостных заметок и для стихов с помощью нейронных сетей. В этом посте я вначале вкратце пробегусь по теоретической части саммаризации, а затем приведу примеры с генерацией заголовков, расскажу, какие трудности возникают у моделей при сокращении текста и как можно эти модели улучшить, чтобы добиться выдачи более качественных заголовков.
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments9

Auto-GPT — новое оружие ИИ в революции веб-разработки и маркетинга

Level of difficultyEasy
Reading time4 min
Views13K

Умы Силиконовой долины неустанно автоматизируют всё, что попадается им на глаза. На этот раз пьедестал их бессонных ночей занял Auto-GPT.

Auto-GPT — продвинутая система искусственного интеллекта, которая использует новейшие алгоритмы компании OpenAI для взаимодействия с программами и сервисами в Интернете. Она позволяет выполнять различные задачи в режиме автономности. 

Однако, несмотря на мощность этой системы, она все ещё находится в процессе обучения и развития, и её возможности не столь широки. Аналогично океану, алгоритм Auto-GPT обладает широкими возможностями, но его познания в некоторых областях могут быть ограничены, подобно небольшой луже. 

Отец-основатель и суперсила

Auto-GPT — открытый исходный код, написанный разработчиком игр Тораном Брюсом Ричардсом. Создатель совместил воедино GPT-3.5 и GPT-4 и приставил к ним бота-компаньона, который даёт им инструкции.

Торан Брюс Ричардс наделили Auto-GPT способностью взаимодействовать с другими приложениями, программным обеспечением и службами. Например, если вы отправите Auto-GPT запрос в духе «помоги мне развить мой бизнес в нише молодёжной одежды», он предоставит вам подробную рекламную стратегию и создаст веб-сайт для первого старта.

Вот, что пишет о Auto-GPT предприниматель Дэниел Крафт:

«AutoGPT  — это новый подрывной ребенок в блоке. Он может применять рассуждения ChatGPT к более широким, сложным проблемам, требующим планирования и множества шагов. 

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

Развернуть статью
Total votes 7: ↑4 and ↓3+3
Comments4

Метод Binoculars обещает высокую точность обнаружения текста от больших языковых моделей

Level of difficultyEasy
Reading time10 min
Views5.1K


ChatGPT пишет не хуже человека, но можно ли обнаружить «машинность» в тексте? Хотя некоторым компаниям было бы выгоднее представить всё так, будто результат работы языковых моделей неотличим от человеческого, исследования в этом направлении активно ведутся. Авторы научной статьи «Spotting LLMs With Binoculars: Zero-Shot Detection of Machine-Generated Text» (arXiv:2401.12070) утверждают, что их метод имеет низкий уровень ложноположительных срабатываний (0,01 %), правильно обнаруживает текст от языковых моделей в 90 % случаев и работает для нескольких семейств современных продуктов.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments15

Как мы в Just AI создавали и тестировали собственную LLM JustGPT — третью большую языковую модель в России

Level of difficultyMedium
Reading time8 min
Views10K

Хабр, привет! Это Just AI, и мы создали JustGPT – третью большую языковую модель, сопоставимую по качеству ответов с известными LLM для русского языка (GigaChat, YandexGPT). Наша история – про работу над моделью, ее обучение и тестирование по своей методике. Но в конечном итоге она о том, как получить свою LLM на русском языке без космических мощностей и огромных команд.

Читать далее
Total votes 15: ↑12 and ↓3+11
Comments15

Вас забанила нейросеть: как новый алгоритм Яндекса постепенно выкидывает из поиска региональные СМИ

Level of difficultyEasy
Reading time9 min
Views46K

Пару недель назад я совершенно случайно обнаружил в Яндекс Вебмастере плашку о фатальной ошибке. Там было написано, что мой сайт может угрожать безопасности пользователя, или на нём были обнаружены нарушения правил поисковой системы. Других ошибок не было: индекс качества даже немного подрос.

Удивительно было, что этот сайт — известное в регионе СМИ, и вопросов к нему со стороны Яндекса не было все восемь лет его существования. Потому что мы и на самом деле нарушениями правил поисковиков не занимаемся. Но сначала я, конечно, подумал, что проблема в нас самих — где‑то спрятался баг или, того хуже, взломали. Однако всё оказалось куда интереснее.

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

На КПДВ: «Региональный журналист пишет новость» глазами другой нейросети Яндекса — «Шедеврум».

Читать далее
Total votes 224: ↑218 and ↓6+252
Comments304

Обзор задач по алгоритмам для собеседований — генерация множеств

Reading time7 min
Views61K

Привет, Хабр!


Этим постом начинается разбор задачек по алгоритмам, которые крупные IT-компании (Mail.Ru Group, Google и т.п.) так любят давать кандидатам на собеседованиях (если плохо пройти собеседование по алгоритмам, то шансы устроиться на работу в компанию мечты, увы, стремятся к нулю). В первую очередь этот пост полезен для тех, кто не имеет опыта олимпиадного программирования или тяжеловесных курсов по типу ШАДа или ЛКШ, в которых тематика алгоритмов разобрана достаточно серьезно, или же для тех, кто хочет освежить свои знания в какой-то определенной области.


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



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

Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments15

Шпаргалка для алгособеса 2 — графовые и строковые алгоритмы

Level of difficultyMedium
Reading time22 min
Views21K

Привет, Хабр!

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

Самым прямым образом — алгоритмы прокачивают умение системно мыслить, искать нестандартные пути решения; человека, у которого эти скиллы на высоте, вряд ли заменит ИИ. Так что, тратя бесценное время на алгоритмы, вы занимаетесь очень полезным делом, расслабьтесь и получайте удовольствие) В качестве бонуса к прокачиванию серого вещества вы получите сверхспособность пройти любой алгособес в FAANG и удовлетворить любые потребности пирамиды Маслоу — довольно приятно)

В этой статье мы разберём графовые алгоритмы типо DFS, Флойда–Уоршелла и строковые наподобие Ахо-Корасик.

Читать далее
Total votes 34: ↑32 and ↓2+37
Comments35

Оптимизация запросов. Основы EXPLAIN в PostgreSQL (часть 2)

Reading time4 min
Views139K

Подолжаю публиковать авторскую переработку Understanding EXPLAIN от Guillaume Lelarge.
Ещё раз обращу внимание, что часть информации для краткости опущено, так что настоятельно рекомендую ознакомиться с оригиналом.
Предыдущие части:

Часть 1
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments4

Я решил 500 задач на LeetCode — и они действительно меня чему-то научили

Reading time5 min
Views233K

Много кто знает, что такое Leetcode. Это своего рода решебник — задачи, которые дают на технических собеседованиях в крупных компаниях (в том числе и из FAANG) и их решения.

Такие задания, заточенные на знание структур данных и алгоритмов, все чаще встречаются и на собеседованиях в небольших компаниях. Многим кандидатам это не нравится — они утверждают, что навыки «литкодинга» ничего не говорят о том, как человек справится с реальной работой. Согласен. Если вы не можете слёту решать задачи c LeetCode, это не значит, что вы плохой разработчик. Возможно, вам в реальной работе вообще никогда не понадобится, скажем, инвертировать бинарное дерево. Однако глупо отрицать, что на LeetCode можно изучить массу подходов и инструментов, которые окажутся полезными. В этой статье я расскажу о том, что вынес для себя из работы с платформой.

Уроки Литкода
Total votes 24: ↑16 and ↓8+15
Comments47

Brubeck — быстрый, statsd-совместимый агрегатор метрик от GitHub

Reading time3 min
Views19K


История появления


Одной из главных целей команды разработчиков GitHub всегда была высокая производительность. У них даже существует поговорка: «it's not fully shipped until it's fast» (продукт считается готовым только тогда, когда он работает быстро). А как понять, что что-то работает быстро или медленно? Нужно мерять. Измерять правильно, измерять надёжно, измерять всегда. Нужно следить за измерениями, визуализировать всевозможные метрики, держать руку на пульсе, особенно, когда дело имеешь с высоконагруженными онлайн системами, такими как GitHub. Поэтому метрики — это инструмент, позволяющий команде предоставлять столь быстрые и доступные сервисы, почти без даунтаймов.

В своё время GitHub одними из первых внедрили у себя инструмент под названием statsd от разработчиков из Etsy. statsd — это агрегатор метрик, написанный на Node.js. Его суть состояла в том, чтобы собирать всевозможные метрики и агрегировать их в сервере, для последующего сохранения в любом формате, например, в Graphite в виде данных на графике. statsd — это хороший инструмент, построенный на UDP сокетах, удобный в использовании как на основном Rails приложении, так и для сбора простейших метрик, наподобие вызова nc -u. Проблема с ним начала проявляться позже, по мере роста количества серверов и метрик, отправляемых в statsd.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments11

Elastic под замком: включаем опции безопасности кластера Elasticsearch для доступа изнутри и снаружи

Reading time7 min
Views28K
image

Elastic Stack — известный инструмент на рынке SIEM-систем (вообще-то, не только их). Может собирать в себя много разнокалиберных данных, как чувствительных, так и не очень. Не совсем правильно, если доступ к самим элементам Elastic Stack не будет защищён. По умолчанию все коробочные элементы Elastic (Elasticsearch, Logstash, Kibana и коллекторы Beats) работают по открытым протоколам. А в самой Kibana отключена аутентификация. Все эти взаимодействия можно обезопасить и в этой статье мы расскажем как это сделать. Для удобства разделили повествование на 3 смысловых блока:

  • Ролевая модель доступа к данным
  • Безопасность данных внутри кластера Elasticsearch
  • Безопасность данных вне кластера Elasticsearch

Подробности под катом.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments9

Логи из docker compose / docker swarm в Grafana / Loki быстро и просто

Level of difficultyMedium
Reading time19 min
Views21K

Хочу показать как развернуть готовый и полностью работающий стек мониторинга Grafana + Loki + Prometheus + Pushgateway + Promtail за пару минут (в прямом смысле этого слова), без необходимости устанавливать на машину дополнительное ПО (плагины docker и плагины логирования) и собирать логи со всех контейнеров машины (или сразу со всех нод, в случае с swarm).

Читать далее
Total votes 24: ↑24 and ↓0+24
Comments21

Сайзинг Elasticsearch

Reading time6 min
Views29K


— How big a cluster do I need?
— Well, it depends… (злобное хихиканье)

Elasticsearch — сердце Elastic Stack, в котором происходит вся магия с документами: выдача, приём, обработка и хранение. От правильного количества нод и архитектуры решения зависит его производительность. И цена, кстати, тоже, если ваша подписка Gold или Platinum.

Основные характеристики аппаратного обеспечения — это диск (storage), память (memory), процессоры (compute) и сеть (network). Каждый из этих компонентов в ответе за действие, которое Elasticsearch выполняет над документами, это, соответственно, хранение, чтение, вычисления и приём/передача. Поговорим об общих принципах сайзинга и раскроем то самое «it depends». А в конце статьи ссылки на вебинары и статьи по теме. Поехали!
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments16

С чего начинается Elasticsearch

Reading time14 min
Views225K

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


Самое первое и главное заблуждение — "нужен поиск, так бери эластик!". Но в действительности, если вам нужен шустрый поиск для небольшого или даже вполне себе крупного проекта, вам стоит разобраться в теме поподробней и вы откажетесь от использования именно этой системы.

Читать дальше →
Total votes 39: ↑38 and ↓1+49
Comments44

SAFe или Scaled Agile Framework

Reading time5 min
Views113K

Что такое SAFe?


Что такое Agile многие знают. Еще большее количество людей, причастных к IT используют терминологию. Еще больше тех, кто слышал об Agile.


Далеко не все, кто уверенно использует термин Agile для общения, критики, для того; чтобы представить свою комманду или компанию в лучшем свете понимают, например, в чем отличие между SCRUM и Agile; и часто ставят между этими двумя разными понятиями знак равенства. Но вот не так давно в 2015 году появился еще и SAFe. Что это и зачем он нужен?

Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments9
1
23 ...

Information

Rating
Does not participate
Location
Россия
Registered
Activity