Синхронизация атрибутов элемента с DOM-свойствами
Очевидно, что нашему компоненту потребуются атрибуты, через которые пользователь сможет контролировать его поведение. Наш компонент должен вести себя как стандартный элемент ввода типа «input», поэтому обязательно должен поддерживать такие атрибуты как disabled и required – и это самый минимум. Поэтому важно разобраться (ну или вспомнить) что такое «content vs IDL attributes», и как с этим работать.
Документация по веб-компонентам мало говорит об атрибутах, разве что рекомендует использовать attributeChangedCallback() для наблюдения за ними, но этого недостаточно. Хотя это полезное API, нам оно не подходит, потому что оно уведомляет нас о уже совершенном действии (изменении атрибута), а нам нужно контролировать этот процесс, то есть – синхронизировать атрибуты и свойства с нормализацией значений.
Так как наш компонент наследует базовый класс HTMLElement, а в нем уже реализовано большое количество разных методов, то мы можем переопределить некоторые из них чтобы получить нужный нам результат. Для начала определим наши свойства в виде пар get/set и значения в приватном поле:
Читать далееНу что ж, вот и вышла долгожданная Resident Evil: Requiem. Я уже успел пройти её, впереди теперь ждёт самый хардовый уровень сложности. Да, я пройду её дважды, и да - оно того стоит.
В соц. сетях игру уже успели окрестить чуть ли не «лучшей в серии» и она вполне способна побороться за такое звание. Почему и чем способна удивить новая часть Резика я и хотел бы сегодня рассказать, плюс очень хотел бы обсудить крышесносные сюжетные моменты, НО сегодня эта статья — своеобразный «save room», где можно не опасаться спойлеров, ознакомиться с деталями геймплея и узнать — сдержали ли Capcom свои обещания.
Читать далееКраткий итог нашего изучения рынка и создания собственного бота (почему это так - читайте ниже):
Промпт-бот (500 ₽ фриланс + 50 000 ₽/месяц API):
Используйте, если нужно простое FAQ-покрытие, вся база знаний умещается в короткий промпт, нет регуляторного риска и вы понимаете, что принимаете риск галлюцинаций и нарушений ограничений. Хорошо для демонстрации возможностей. Не подходит для финансовых услуг, медицины, юридических вопросов или любой области, где неверный ответ бота имеет последствия.
SaaS-платформа (3 000–100 000+ ₽/месяц):
Используйте, если главным образом нужно FAQ-отклонение и маршрутизация обращений, каталог продуктов стабилен и прост, есть команда поддержки, которая хочет единый inbox, и вы хотите запуститься за несколько дней. Aimylogic и BotHelp достаточно хороши для своего предназначения. Российские платформы решают вопрос 152-ФЗ лучше западных аналогов.
Open-source-фреймворк (Rasa/Botpress, $0 ПО + инфра + программисты):
Rasa даёт полный контроль с локальным NLU и управлением диалогом. Требует Python-инженера и реальных обучающих данных. Корпоративное лицензирование начинается от $35 000/год. Подходит для ML-тяжёлых сценариев, где нужен полный контроль. Требует постоянной поддержки, которую SaaS берёт на себя.
Кастомный гибрид (инвестиции в код + ~5 000 ₽/месяц API):
Используйте, если нужны управляемые многошаговые квалификационные потоки, данные о продуктах синхронизированы с существующей системой, есть требования к локализации данных или соответствию 152-ФЗ, нестандартная интеграция с каналами или предсказуемость затрат на долгий срок. Не проект выходного дня, но при масштабировании экономика очевидна. По данным рынка, полная разработка «под ключ» в России стоит 70 000–1 000 000 ₽ единоразово (медиана 227 000 ₽ по исследованию Aimylogic).
Я — довольно нетипичный пользователь хабра. Не играю по правилам, не подчиняюсь мнению большинства, не считаю программистов — умными людьми априори, никогда не ставлю минусы, потому что охранка и вертухайство меня никогда не привлекали. Меня предупреждали, банили, мои тексты в песочницу (тут я играю по правилам, ударили исподтишка — встал, отряхнулся, снова попытался войти через парадный вход) — заворачивали со смешной формулировкой «кажется, это написала LLM». Третий текст я справился пропихнуть в песочницу (у местных вахтеров закончились аргументы, наверное), и спустя месяц с лишним — нашелся человек, которому он понравился. Спасибо, @oeditus, надеюсь, я не подставлю вас этим текстом.
Я хотел бы рассказать, как развивались мои взаимоотношения с модераторами на этом ресурсе. Возможно, кому-то будет интересно. Я не тешу себя иллюзиями на предмет последствий, поэтому я просто понаделаю скриншотов и сохраню этот текст в другом месте.
Вводные: у меня зелёная карма, как говорят в недружественных странах — always has been, положительные рейтинги у всех тестов (статьями пусть их называют недотыкомки с напыщенными щеками), ничтожно мало заминусованных комментариев. Я не скрываю свои гитхаб и прочие интернет-аватары. Я не ожидал, что найдутся люди, которые решат (безуспешно, разумеется) тратить своё время, чтобы нагадить мне повсеместно. (Спойлер — они нашлись, и модераторы соответствующих форумов даже помогли мне их вычислить.)
Я пишу технические тексты, показываю пути решения задач, которые показались мне нетривиальными, рассказываю о собственных библиотеках в OSS (не прошедший модерацию в песочнице текст — был как раз таким), но я получил предсказуемый отлуп:
Какой еще отлуп?Вообще, я большой любитель экзотических гаджетов и разной диковинки. Порой мониторю барахолки в поисках чего-то такого, что не продавалось в условной «Евросети», а если гаджет попадается нерабочий, то стараюсь его восстановить. Особый кайф мне приносит ремонт материнских плат — объём дофамина от чувства того, что ты только что восстановил устройство, на котором поставили крест более 10 лет назад, просто невероятный!
Недавно мне в руки попал уникальный смартфон-игровая консоль JXD S5800, который при внешней целостности не подавал никаких признаков жизни. После короткой диагностики виновник нашелся быстро. В этой статье расскажу не только о ремонте и о том, причем здесь Samsung, но и детально разберу аппаратную платформу типичного смартфона тех лет. Если интересно — жду под катом.
Читать далееСтатья для PM и тимлидов, которые работают в арт‑аутсорсе или других креативных командах с высокой вариативностью задач.
Я разбираю систему из четырёх метрик — estimation accuracy, task complexity, variability и volatility — которая помогает видеть устойчивость проекта, прогнозировать перегрев и принимать управленческие решения без усиления контроля над командой.
Внутри: как считать каждую метрику, как читать их вместе, как внедрить без потери доверия художников и тимлидов, и какие ошибки я совершила на старте.
Читать далееЗа почти десять лет существования «Overwatch» стала столпом мультиплеерного игростроения и прочно обосновалась в умах геймеров. Несмотря на все взлёты и падения, детище Blizzard — это феномен, который невозможно отделить из современной интернет-культуры: многочисленные клоны от других разработчиков, бесконечные мемы про саму игру и тех, кто в неё играет, стабильный поток фанатского творчества разной степени приличия.
Несколько лет назад из производственного ада выбрался не то сиквел, не то перерождение «Overwatch 2». Двойка здесь должна быть в кавычках, ибо она являла собой не новую базу или даже надстройку над оригинальной игрой, а изменение приоритетов разработчиков. Были обещания по поводу долгожданного расширения истории и лора франшизы, выпуска нового PvE контента. Сегодня, спустя две недели после релиза уже нового глобального переосмысления, которое выкинуло цифру из названия, самое время подумать над тем, чем были эти странные три года в жизни одной из важнейших для индустрии, игр и какую стратегию готовит Blizzard на будущее.
«Игра началась!»Раньше ИТ и атомная энергетика почти не пересекались. Сейчас нейросетям нужно столько электричества, что обычных мощностей дата-центрам не хватает. Для десятилетий бесперебойной работы мало закупить «железо» — требуется надежный источник гигаватт. Все упирается в топливо, а именно — в уран. О том, как этот металл стал критически важным для цифрового мира, мы и поговорим.
Читать далееВсем привет! Я пытаюсь реализовать свою систему анализа металлов и сплавов. Занимаюсь своим проектом уже год. В составе системы уже около 15 модулей. И хочу представить один из них. Если кому-то интересно или есть изображения, которые нужно измерить, верифицировать с другими системами я только - за.
Немного теории из мира металловедения, который чем-то схож с миром биологии. Главное различие мира металлов, пластиков и других материалов, что это неживая материя.
Определение чугуна
Чугун представляет собой сплав железа с углеродом, где содержание углерода превышает 2,14% (обычно от 2,5% до 4,5%). Благодаря своей жидкотекучести, малой усадке и относительно низкой стоимости, чугун является одним из основных конструкционных материалов в машиностроении, энергетике и строительстве.
При анализе чугуны разделяют по состоянию углерода и форме графитовых включений, что определяет их физико-механические свойства:
Читать далееСтатья рассматривает инвестиционную стратегию, основанную на эффекте ценового импульса (price momentum): акции, сильно выросшие за последние месяцы, как правило, продолжают расти, и наоборот. Автор разбирает ключевые параметры стратегии, опирается на данные исследований Fama и French, а также воспроизводит их результаты в собственном бэктесте. Стратегия статистически обгоняет рынок на длинной дистанции, однако чувствительна к резким медвежьим разворотам.
Читать далееВ этой статье мы рассмотрим создание микросервиса обработки изображений на golang с использованием технологии gRPC. Цель статьи - показать как может выглядеть такой сервис и что он может в себя включать.
Читать далееВ одной своей давней статье я писал о череде кризисов, которые мне пришлось пережить за последние четыре десятилетия. Недавно я решил перечитать её (в свете того, что уже из каждого утюга кричат об очередном кризисе - на этот раз ИИ) и с ужасом понял, что сегодня ситуация выглядит намного хуже, чем всё с чем я когда-либо сталкивался в жизни.
Но так как я цифровой агностик, то решил копнуть поглубже, отписался от кучи новостных каналов, чтобы не мешали, зарылся в несколько интересных книг, а также в кучу статей в совокупности с глубоким поиском и постепенно пришёл к мысли, что возможно мы приближаемся к точке сингулярности.
Ниже я попытаюсь объяснить, почему эта мысль растёт и усиливается во мне с каждым днём.
Если вы готовы к долгому чтению с размышлением, то прошу под кат.
Читать далееПошаговое руководство по развёртыванию блога с нуля: Strapi CMS (админка и API) и Nuxt.js (фронтенд) на VPS Ubuntu. В итоге — работающий блог за Nginx с возможностью включить SSL по отдельной инструкции.
Узнать подробнееЯ не разработчик, но теперь у меня есть своё приложение в App Store, которое помогло мне больше ходить и в прошлом месяце я прошёл 500 000 шагов. В этой статье рассказываю как я к этому пришёл и какие инструменты помогли ускорить путь.
Читать далееПочему ваша Java-система буксует там, где должна летать? Мы привыкли доверять магии JVM, но в мире Java 21 и Native Image правила игры изменились. От микро-оптимизаций байт-кода до радикальной смены парадигмы с Scoped Values – разбираем 11 “золотых правил”, которые заставят JIT петь, а ваш бинарник – стартовать за миллисекунды. Никакой “воды”, только хардкор, регистры процессора и “голоса” компиляторов внутри вашего кода.
Работая с кодом, я не раз ловил азарт: а как этот метод можно ускорить ещё? Какую гайку подкрутить, чтобы JVM не просто работала, а буквально летела? Что изменить в архитектуре, чтобы Native Image стал ещё компактнее, а холодный старт – ещё быстрее?
Испытав этот азарт оптимизации не раз, я хочу поделиться им с вами. Я собрал квинтэссенцию своего опыта в конкретный чек-лист.
Это не просто советы по стилю кода. Это “10+1 Золотых правил оптимизации Java 21+”.
Это те рычаги, которые заставляют JIT-компилятор петь, а GraalVM – генерировать бинарники с хирургической точностью.
Приготовьтесь! Мы начинаем оптимизировать!
Начать оптимизацию!REST API на Symfony писать удобно, но есть одна скучная особенность: контроллеры быстро начинают обрастать повторяющимся кодом. Парсинг запроса, валидация, однотипная JSON‑обёртка, try/catch с преобразованием исключений в HTTP‑ответы. Всё это несложно, но со временем размазывается по десяткам эндпоинтов и отвлекает от основной задачи.
Ниже - способ привести все в порядок с помощью небольшого бандла, который я использую в своих проектах.
Читать далееЛабиринты использовались в видеоиграх с момента их появления. Первой видеоигрой с процедурно генерируемым лабиринтом была Beneath Apple Manor, выпущенная в 1978 году. Лабиринт в ней генерировался методом деления на комнаты и коридоры, из-за этого лабиринт часто выглядел однообразным и предсказуемым, что портило впечатление от игры. Для того, чтобы лабиринт выглядел естественнее разработчики стали использовать различные алгоритмы на графах. В этой статье мы рассмотрим реализации генерации идеального лабиринта с помощью алгоритма Прима.
Читать далее— С метаданных картинок мы уже разобрались, теперь же давайте посмотрим, что за душой у обычных pdf или word документов
Читать далееOpenAI Five потратила 45 000 лет в симуляции, чтобы научиться играть в Dota 2. Это не интеллект, а просто зубрёжка. Почему скоро перестанет помогать простое масштабирование и какие современные архитектуры есть, которые в перспективе будут намного лучше трансформеров и других методов.
Читать далее