Обновить

Разработка

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

Сама не разберётся: мои 7 принципов генерации кода с LLM

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

Всем привет! Меня зовут Виктор, и более трёх лет я работаю с языковыми моделями – от проприетарных решений вроде ChatGPT до open-source систем, которые можно разворачивать локально и встраивать в собственные продукты. Я застал времена жутких галлюцинаций GPT-3.5 и ждал обещанного GPT-5 – того самого почти AGI, которое, казалось, вот-вот появится.

За это время многое изменилось: появились десятки моделей, которые можно запустить даже на слабом ноутбуке, и мощные коммерческие системы, способные понимать с полуслова. Но одно остаётся неизменным – AGI так и не случилось.
Если два года назад нам уверенно обещали, что «всё уже близко», то теперь даже крупнейшие компании признают: ждать придётся долго.

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

За годы работы с моделями я выработал ряд принципов, которые помогают получать стабильные и читаемые результаты. На первый взгляд – ничего нового: это те же инженерные практики, которые мы применяем в обычном программировании.
Но в контексте LLM они начинают работать совсем иначе.

Читать далее

Кому нужен Graphviz, если можно написать его самому?

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

Недавно мы переделали наши внутренние инструменты, визуализирующие компиляцию JavaScript и WebAssembly. При работе оптимизирующего компилятора Ion мы теперь можем генерировать интерактивные графы, демонстрирующие, как конкретно обрабатываются и оптимизируются функции.

Вы можете сами поэкспериментировать с этими графами в оригинале статьи. Просто введите какой-нибудь код на JavaScript в функцию test, и наблюдайте за созданием графа. Также там можно щёлкать и перетаскивать граф, менять масштаб при помощи колеса мыши с зажатым Ctrl и перетаскивать ползунок вниз, чтобы изучить процесс оптимизации.

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

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

Читать далее

MapStruct: как безобидный метод портит весь маппинг

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

При работе с MapStruct возникает соблазн добавлять небольшие вспомогательные методы прямо в ваш mapper и вызывать их через expression. Однако если такой метод оперирует довольно общими типами (например, String -> String), MapStruct может обнаружить его и применить к другим полям того же типа — даже если вы этого не планировали.

Читать далее

Скрытые пасхалки в компьютерных программах, кто их придумал и почему сегодня так почти не делают

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

Пасхалки на системных платах наших устройств, – история, прямо скажем, весьма специфическая. Ну, какова вероятность, что обычный человек – не схемотехник – вдруг полезет внутрь и чего-то там разглядит? Наверное, не очень высока. С другой стороны, эти послания там оставляют и не для обывателей, а для таких же инженеров, которые не просто увидят, но и поймут, что к чему. Хотя пасхалки имеют и другую природу. Они бывают еще и софтверные, скрываясь в неожиданных разделах приложений, которыми все мы пользуемся. Но как вообще зародилась идея оставлять в ПО “приветы” для пользователей? Об этом и поговорим.

Читать далее

Java Digest #30

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

Всем привет! 👋👋👋👋👋

Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

Октябрь выдался интересным: JDK 26 приносит поддержку HTTP/3, Vector API снова в инкубации, а Swing внезапно обзаводится своим DatePicker — да, 2025-й, а Swing жив! Разработчики обсуждают Leyden и GPU-ускорение для Java-ИИ, а Oracle чинит 15 уязвимостей. В статьях свежие оптимизации ZGC, разбор виртуальных потоков, Jackson 3, Kafka Queues и немного философии про «хороший вкус» в разработке. А под конец релизы, от JUnit 6 до Spring 6.2.12. Заваривайте кофе, обновляйтесь до JDK 25 и читайте. Поехали 🚀

Читать далее

Реставрация, которая меня сломала: Почему убрать смех из Скуби-Ду сложнее, чем сделать ремастер Тома и Джерри в 2к

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

Наверняка многие из вас с теплотой из детства вспоминают «Скуби-Ду, где ты!» 1969 года. Я тоже был в вашем ряду, однако я решился пересмотреть. И внезапно закадровый смех, который и сейчас то даже в ситкомах считается «артефактом древности», налеплен на детективный, комедийный мультик. Мне это очень сильно начало ломать впечатление от просмотра, — невозможно выстоять, когда каждые полминуты из 20 минут серии по поводу и без повода тебе указывают «где смеяться».

Так и начался мой личный ад на целый месяц, сподвигнутый наивным, но сильным желанием — сделать идеальную версию Скуби-Ду, такую, какую я помнил из детства.
История же эта обернулась гораздо серьёзнее, чем нажать на кнопку «удалить закадровый смех» в Adobe Premiere Pro.

Узнать, что пошло не так

Эмуляция «тетриса» Apollo из 90-х и запуск кода на оригинальном железе

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

В этой статье я расскажу о микроконтроллерах Sunplus с ядром 6502 которые использовались в популярных в 90-е «тетрисах» Apollo, а также об их эмуляции. Отдельно опишу способ запуска своего кода на этих играх и в частности проигрыватель «Bad Apple!!», крупнопиксельный кадр из которого показан на КПДВ.

Читать далее

Зал Славы видеоигр: зачем мы это делаем

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

История отечественного геймдева – это история энтузиастов, инженеров и художников. Она полна блистательных побед и горьких неудач, гениальных прорывов и забытых провалов. И эта история заслуживает того, чтобы ее не просто помнили, но и чествовали. Для этого в 2023 году был создан Зал Славы видеоигровой индустрии России – проект, который помогает сохранить наше цифровое наследие и отдать дань уважения тем, кто геймдев создавал. 

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

Читать далее

А кто у вас отвечает за kube-api? Безопасность Kubernetes при помощи CIS Benchmark

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

Kubernetes в IT-инфраструктуре — это не просто про удобство деплоя. Это критическая часть сервиса. Одна неправильная настройка kube-apiserver или etcd — и вместо кластера вы получите бублик с дыркой, через который утекут и данные, и бизнес-процессы.

В этой статье разберем, какие стандарты защищают контейнерные среды, почему CIS-бенчмарк часто становится первой точкой опоры, какие практики дополняют его и как Managed Kubernetes превращается в автоматизированный рабочий процесс. Детали внутри.

Читать далее

Почему я отказался от ORM в пользу чистого SQL

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

Во время выполнения очередного проекта мне пришлось работать с Битрикс ORM, при этом параллельно в системе был инстанс Laravel. Две разные ORM работали с единой базой данных. Не буду вдаваться в причины, по которым был выбран такой подход, и воздержусь от его оценки. Суть в том, что мне приходилось одновременно работать с двумя принципиально разными системами. Этот опыт привел меня к фундаментальному выводу: ORM — не для меня.

Почитать мнение

Почему операционный усилитель — плохой компаратор

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

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

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

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

Погрузиться в мир аналоговой схемотехники

История опенсорс-проекта LUWRAIN: как эксперименты с LLM помогают создавать невизуальные интерфейсы для незрячих

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

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

Проект LUWRAIN — пример именно такой истории. Это платформа для разработки невизуальных приложений, которая тринадцать лет создаётся усилиями энтузиастов. Сегодня у неё появляется шанс сделать рывок — с помощью LLM и инженерных подходов, основанных на открытых технологиях. В случае LUWRAIN, как и в случае многих похожих инициатив, существует поиск правильного соотношения смысла и усилий. Поэкспериментировать и найти баланс в том числе помогла программа грантов Yandex Open Source.

Меня зовут Михаил Пожидаев, я работаю доцентом теоретической информатики в Томском государственном университете. Читаю такие предметы как обработка естественного языка, ОС UNIX, анализ социальных сетей и введение в программную инженерию. В этой статье расскажу о своём опыте создания программных продуктов, которые должны казаться странными и нелогичными в привычных обстоятельствах, но обстоятельства нестандартны.

Читать далее

Как мы доработали фреймворк Rasa, чтобы сделать своего ИИ-секретаря для ответа на звонки

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

Привет, Хабр! Меня зовут Игорь Козлов и я — ведущий разработчик в команде «Membrana Голос» от МТС. Наш продукт — это сервис, который принимает звонки, когда вы заняты, и общается со звонящими почти как живой человек. Он основан на полноценном диалоговом фреймворке, десятках моделей машинного обучения и тщательно продуманной логики обработки интентов. Мы взяли за основу open source-фреймворк Rasa, но сильно его доработали, чтобы превратить в гибкую платформу для управления голосовыми диалогами.

В этом материале я покажу, как мы переписали Action Server и обучили DIETClassifier, а также расскажу, как нам удалось обойти ограничения Rasa и сделать умного, настраиваемого и устойчивого к ошибкам телефонного ассистента.

Читать далее

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

Домашняя векторная БД + RAG

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

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

Читать далее

Нейросеть — это хорошо, но дайте выбор. Как я убрал «Алису» из поиска Яндекса

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

Привет, Хабр! Нейросети стремительно входят в нашу жизнь, и вот уже Яндекс встроил свою «Алису» прямо в поисковую выдачу. Иногда это удобно, но часто хочется видеть классический список ссылок, а не огромный блок сгенерированного текста, который отодвигает всё остальное вниз.

Я решил вернуть себе контроль над поиском и написал простое браузерное расширение, которое убирает всё лишнее, например когда пишешь олимпиаду с проктором. Назвал его «Bye Bye Alice AI». В этой короткой статье я покажу, как оно устроено.

Читать далее

Особенности Python, о которых вас точно спросят на техническом собеседовании. Часть 2

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

Привет, Хабр! Меня зовут Бартенев Евгений, я автор курса «Python-разработчик» в Яндекс Практикуме и практикующий разработчик. Я прособеседовал сотни кандидатов и сам неоднократно побывал в роли собеседуемого, поэтому хорошо представляю, какие именно знания проверяют на интервью и где чаще всего «проваливаются» не только джуны, но и опытные разработчики.

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

Как и раньше, я не буду разбирать заезженные вопросы вроде «чем отличается список от кортежа». Вместо этого — разберём реальные особенности Python, на которых строятся самые коварные задачи и вопросы.

Читать далее

Основы аналитики и ML простым языком ч.1

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

Книга «Бизнес-аналитика: от данных к знаниям» впервые увидела свет в 2009 году, но это всё ещё классика для начинающих специалистов. Ниже представлен конспект первой главы книги, посвящённый введению в анализ данных и ML.

Читать далее

Как изготовить корпус из листового металла

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

Разработать электронную начинку радиоэлектронного прибора — половина дела. Вторая половина — корпус.

Освоить CAD на минимальном уровне реально за выходные; еще за выходные спроектировать простой корпус и выгрузить развертки и чертежи. Чтобы произвести детали, потребуются длинная воля, твердость, самообладание, время, знакомства и удача.

Подробности

Библиотека Python для доступа к данным ЦБ: cbrapi

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

cbrapi - бесплатная библиотека с открытым исходным кодом на Python, которая превращает сложное взаимодействие с SOAP API Центрального банка Российской Федерации в простой и понятный инструмент.

Читать далее

Сравнительный анализ эффективности планировщиков СУБД при выполнении различных запросов

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

Когда мы пишем запрос, СУБД делает гораздо больше, чем просто ищет данные. Она оценивает десятки сценариев выполнения, сравнивает стоимость операций и выбирает оптимальный путь к результату. От этого выбора зависит, будет ли запрос выполняться секунду или минуту. Почему одни системы находят лучший план, а другие выстраивают менее эффективный алгоритм? Попробуем разобраться, как планировщики СУБД принимают решения и что определяет их эффективность.

Читать далее