Привет! Меня зовут Руслан. У меня за плечами 9 лет опыта в IT, из которых 5 я работаю на позиции Team Lead. Начинал как сервисный инженер, а сейчас руковожу командой разработки. За это время успешно запустил AR-приложение.В NtechLab я занимаюсь развитием пользовательских интерфейсов для видеоаналитики и руковожу процессами разработки мобильного приложения на Flutter, которое помогает в поиске злоумышленников.Основные задачи, которые можно решить с помощью этого подхода:Разработка в условиях отс…
Привет, друзья! В праздники я провел небольшое исследование представленных сегодня на рынке бесплатных инструментов с участием "искусственного интеллекта" для помощи в веб-разработке, результатами которого хочу с вами поделиться, авось кому-нибудь пригодится. Обратите внимание, что я акцентировал внимание на бесплатных решениях для написания кода клиентской части веб-приложений. Список протестированных инструментов: Сodeium Devv_ V0 ChatGPT GPT4All Cursor OpenHands Aider Cody Tabnine…
В комментах к статье "Синглтон - корень всех зол", который вообще-то про паттерн проектирования, я высказал мысль, что в функциональном программировании "все функции - синглтоны" (это уже в смысле lifestyle - больше одной функции на приложение не нужно). Тут же мне более опытные коллеги насовали в панамку, что "функции не синглтоны, потому что существуют замыкания". Я, конечно, "сварщик не настоящий" - в ФП серьёзно никогда не игрался, но основные идеи вроде как …
Не так давно стала задача создать персональный чат-бот ассистент для компании занимающейся разработкой ПО. Система должна была иметь как Backend, отвечающий за работу с локальной нейросетью, так и простой FrontEnd, виджет на JavaScript, который можно подключить на любой из страниц компании. Ресурсов описывающих работу RAG-систем полно, однако руководств, которые расскажут и поэтапно проведут разработчика через все необходимые шаги я не нашел. Тем самым, постараюсь восполнить пробел в данной ст…
Манипулирование деревом DOM, это альфа и омега любого фронтенд-разработчика, а это не возможно без селекторов позволяющих находить HTML элементы. Давайте подробно разберёмся как они работают.Основных методов селекторов в JavaScript всего 2 и оба они являются методами классов Document и Element:querySelector() - принимает строку с селектором в качестве аргумента и возвращает первое совпадение с ним или null, если ничего не найдено.querySelectorAll() - точно также принимает аргументом, строку с с…
Недавно, работая с компонентом ввода номера телефона в форме регистрации, я столкнулся с весьма неочевидной особенностью работы различных обработчиков событий. Связано это непосредственно с onChange, onPaste и onInput. Мне пришлось провести достаточно глубокий ресерч, чтобы разобраться в особенностях, которые я встретил. Начнем по порядку.Кейсы пользовательского взаимодействияДля начала разберемся, что же это был за инпут (потому что для обычного использования инпута в базовых ситуациях и видах…
Как вы уже, наверное, знаете, браузерные хранилища данных, такие как localStorage и sessionStorage, сильно ограничены в своих размерах и для хранения большого количества данных не подходят. В разных браузерах этот размер варьируется, но в среднем принято считать, что это около 5 МБ. Что же делать, если нужно больше ? Для этой ситуации в браузере предусмотрен другой Web API - IndexedDB. Его размеры и регулирование также сильно варьируются от браузера к браузеру, но обычно это около 50% доступног…
Манипулирование деревом DOM, это альфа и омега любого фронтенд-разработчика, а это не возможно без селекторов позволяющих находить HTML элементы. Давайте подробно разберёмся как они работают.Основных методов селекторов в JavaScript всего 2 и оба они являются методами классов Document и Element:querySelector() - принимает строку с селектором в качестве аргумента и возвращает первое совпадение с ним или null, если ничего не найдено.querySelectorAll() - точно так-же принимает аргументом, строку с …
Раз в несколько лет возвращаюсь к задаче создания алгоритма для наиболее вероятного прогноза на основании ошибок предыдущих прогнозов. В этот раз попробую обойтись минимумом текста (ссылка на демо в конце).Ссылка на оригинал статьи с объяснением принципа Доказательного Планирования (в оригинале Evidence Based Scheduling) - советую ознакомиться, чтоб быть в контексте: Joel Spolsky Evidence Based Scheduling / Перевод на русскийДля меня лично эта задача имеет небольшую историю:Версия 1.0 - При жел…