Разработчики начинающие писать приложения под Android TV часто сталкиваются с непониманием того, как работает фокус. По моему опыту, и по опыту коллег часто приходится сталкиваться с непонятными костылями в Android TV проектах, результатом которых является поломанный фокус, потому что ребята не осознают, как изящно решать проблемы. К сожалению разбираться в таком случае приходится самостоятельно, т.к. погуглив вы вряд ли найдете инфу на эту тему.
В данной статье мы рассмотрим как работает фокус в Android, по какому принципу он передается, какие существуют методы для работы с ним, и другие нюансы. Фокус будем рассматривать в рамках Android View, по компоузу статью возможно напишу позже.
Появление трансформеров, а впоследствии LLM (Large Language Models) привело к активному распространению чат-ботов и различных ассистентов помогающих в получении информации или генерации контента. Но несмотря на то что LLM способны по запросу генерировать человекоподобные тексты, они подвержены галлюцинациям. Естественным кажется желание уменьшить количество не достоверных ответов. Для этого мы можем либо дообучить LLM на наших данных, либо использовать Retrieval Augmented Generation (RAG).
RAG - это способ генерации текстов на новых данных без дообучения модели, с помощью добавления релевантных документов в промпт модели. Документы для генерации ищутся с помощью retrieval системы, после чего объединяются в один промпт и подаются в LLM для последующей обработки. В этой статье я решил собрать информацию о всех наиболее известных и применяемых алгоритмах поиска, с описаниями и материалами для более глубокого изучения.
Попалась на Stack Overflow интересная задачка: написать программу как можно короче и в одну строку. Что подразумевается под одной строкой? Это значит использовать только один оператор (statement) верхнего уровня с точкой с запятой в конце и не использовать блоки кода. Вложенные операторы допускаются.
Сидишь бывало, записываешь всякие штукуёвины, которые сам вечно забываешь и вдруг кааак захотелось начать наносить людям добро и причинять радость вопреки их желаниям, а тут ещё и народ периодически спрашивает, стало быть надо завести блох, но не в свитере, а который будет удобный, быстрый, защищённый, красивый и не будет зависеть от модных веяний на очередной платформе-однодневке, не будет обмазан странными всплывашками, баннерами, пропагандой...
Будет обмазан Markdown, Hugo, GitHub (в качестве CD и халявного хостинга) и Obsidian
Привет, меня зовут Александр Читалкин, и я руководитель офиса архитектуры в небольшом российском банке. Хочу рассказать об архитектуре «Платёжного сервиса» – системы оркестрации и проведения платежей. Разработка архитектуры велась в рамках проекта по модернизации существующего в банке решения. Работы были начаты в конце 2022 года и успешно завершились год спустя. Сейчас система находится в промышленной эксплуатации.
Враппер Yandex MapKit SDK для работы в Kotlin Multiplatform. Опыт написания враппера для SDK и адаптация работы с Compose Multiplatform. Рассказывается про интересные кейсы в процессе разработки враппера для MapKit SDK и способы адаптации библиотек для KMP проектов.
Если вы полный ноль в интернет-технологиях, и хотите получить общее понимание Интернета, прочитав всего одну статью, то эта статья - для вас.
Здесь вы узнаете о 4 уровнях модели TCP/IP. О том, что такое MAC-адрес и IP-адрес, и зачем нам 2 типа цифровых адресов. Как работает DNS. Зачем нужны коммутаторы и роутеры. Как работает NAT. Как устанавливается защищённое соединение. Что такое инфраструктура открытых ключей, и зачем нужны TLS-сертификаты. Чем отличаются три версии протокола HTTP. Как происходит HTTP-аутентификация. И в конце будет несколько слов о VPN.
Недавно я поехал на море с другом. Во время пути мы узнали, что YouTube собираются блокировать (или замедлять). Тут в моей голове родилась идея: почему бы не сделать видеохостинг в Telegram? Я поспорил с другом, что сделаю его по дороге, но ноутбук сел. Поэтому мы договорились, что я сделаю это за день (спойлер: получилось, но кривовато).
Автоматизация работы с JSON в Swift с помощью Codable
Когда вы работаете с данными в Swift, особенно при взаимодействии с API, вам часто приходится разбирать JSON-ответы и преобразовывать их в структуры данных. Это может быть утомительной и повторяющейся задачей, особенно если у вас есть сложные или вложенные JSON-структуры. Для решения этой проблемы в Swift существует мощная и удобная библиотека — Codable.
Каждый раз, когда начинаешь новый проект, никогда не знаешь, какие сюрпризы он может принести. На первый взгляд, простая задача по настройке Google Формы может превратиться в увлекательное путешествие с неожиданными поворотами. Сегодня я хочу рассказать вам историю одного такого заказа, в котором мы не только справились с вызовами, но и нашли оригинальное решение.
Знаете, я никогда не задумывался, насколько плоха или хороша инициализация переменных в языке C++. Я просто использовал ее. И не имел никаких проблем. Но недавно я посмотрел пару видео, пролистал несколько статей и да, я должен признать… она действительно ужасна. Один очень серьезный человек даже сказал, что мы, как сообщество программистов, виновны в том, что C++ не настолько хорош, насколько он мог бы быть.
Ну ладно, давайте включим воображение и посмотрим, что мы могли бы изменить, чтобы улучшить данную ситуацию. Тех, кто уже понял о чем речь, сразу хочу успокоить. Слишком глубоко в эту кроличью нору мы не полезем. Разберем лишь то, с чем сталкивается каждый, а также гипотетические способы наведения во всем этом какого-то минимального порядка.
На связи Никита Скирдин, программист 1С компании «Белый код».
Одна из проблем механизма Истории данных в 1С – это значительное увеличение объема базы данных. При этом старые версии истории данных, даже если настроено хранение истории данных в течение 3 месяцев, могут оставаться в базе и занимать место. В статье рассказываю пошагово алгоритм действий.
Всем привет! Иногда бывает так, что учиться очень сложно и мотивацию надо поднять, а дженерики и лямбда выражения совсем высосали силы. Поэтому я, пару дней назад, залипая в мобильную игру, внезапно поймал себя на мысли, что могу упростить себе и еще нескольким сотням человек жизнь. Поэтому было принято решение сделать свое приложение.
Без лишних слов, если вы захотели запустить свой minecraft сервер, с полным доступом, кастомизацией, чтобы ни от кого не зависеть, в этой статье я подробно расскажу как это сделать.
🔹В статье приведен краткий обзор термина «среда общих данных» (СОД) и история развития этого понятия. В основной части дается информация об имеющихся вариантах организации СОД, исторически сформировавшихся в строительной отрасли и получивших свое развитие.
🔹Автором предлагается теория уровней развития СОД, какими они были ранее и что ждет их в будущем. Показаны общие требования со стороны отрасли, предъявляемые к СОД и что необходимо делать для приближения, и достижения успешного результата применения СОД – повышение эффективности работ в строительных проектах на всех стадиях.
Как работают шейдеры в GMS2? Как их писать и использовать? Что означают термины attribute, varying и uniform? Какой тип шейдера выбрать? Почему шейдер всегда состоит из двух файлов? Чем отличается вершинный шейдер от фрагментного? И причём здесь треугольники?
В данной статье я делюсь своим опытом планирования и декомпозиции задач и рассказываю, как инструмент планирования и управления проектами помог мне и моим коллегам улучшить свою работу.
Данная статья скорее написана мной для самого себя что бы помочь разобраться в книге Вона Вернона. По моему скудному мнению хоть в названии книги и фигурирует "Реализация" она не полностью поясняет все детали и понятия которыми оперирует автор. По сути эта статья рецензия + собственные заметки. Отчасти это одна из причин почему я решил написать статью именно тут а не в Notion исключительно для себя, возможно это может помочь следующему читателю более понятно погрузится в прочтение этой книги или более опытные читатели смогут поделится своими замечаниями касательно моих наблюдений.
P.S. Возможно, конечно, такая статья уже и существует но в ходе моего знакомства чего-то подобного я не нашёл, поэтому ссылки на похожие статьи тоже приветствуются.