В данной статье речь пойдёт о разработке многофункционального терминального интерфейса для МК (на примере МК Atmega32 и терминала HyperTerminal. Многофункциональность в моём случае будет заключаться в обработке управляющих символов и управляющих последовательностей с целью реализации не только командного функционала, но и истории вводимых команд. Я постараюсь максимально приблизить свой интерфейс к интерфейсу командной строки Windows. Большая часть статьи - подробный комментарий программного кода, который может быть доступен даже начинающим в программировании. Никакого ООП нет - только элементы языка Си.
Дизайн
Дизайн: ожидание vs реальность
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/173/5bf/3d1/1735bf3d15c894d4f834c4921786807e.png)
Когда работа над визуальной частью проекта закончена, и все макеты готовы, приходит время передать их в разработку. А чтобы после “связи с движком” все осталось так же красиво как и в макете, необходимо добиться полной гармонии между дизайнером и разработчиком.
Игры с новогодним настроением
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/d8b/8b0/3c5/d8b8b03c5ec94b79be6c258b3bc9e05f.png)
Если реальный мир пока не приносит праздничного настроения, поможет мир виртуальный. Здесь время останавливается, а любимые сюжеты можно проходить снова и снова, радуясь увлекательным зимним приключениям. Поговорим о лучших компьютерных играх с новогодним вайбом. Делитесь в комментариях своими любимыми играми :)
Ужасный огонь: почему даже в самых дорогих фильмах возникают проблемы со съёмкой простого пламени?
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/getpro/habr/upload_files/489/1c9/bed/4891c9bed549ba9d0ca93255bd1228cd.gif)
В фильме «Без обид» с Дженнифер Лоуренс есть сцена, где её одежда загорается. Она держится на капоте автомобиля, который на скорости въезжает на переполненный пляж и врезается в барбекю, после чего из него вылетают горящие угли. Однако пламя выглядит совершенно непохоже на то, что мы видим в жизни. Оно кажется пластмассовым и неоново-жёлтым, направленным прямо вверх. Даже в подобной халтурной комедии этот эффект выглядит раздражающе неубедительным.
И это не единственный пример. Сгенерированный компьютером огонь можно часто увидеть в фильмах, и повсюду он выглядит ужасно. Пожары в домах из прошлогодних «Банши Инишерина» и «Достать ножи: Стеклянная луковица» выглядят так, как будто их вручную нарисовали поверх кадров фильма. То же самое справедливо для сериала «Медведь» и нескольких пожаров в «Стране пожаров». В «Игре престолов» дыхание драконов было реализовано при помощи настоящих огнемётов на подъёмных кранах; в спинофе этого сериала «Дом Дракона» магические существа извергали цифровой огонь. Из всех очевидных спецэффектов в последних фильмах франшиз «Тор» и «Стражи Галактики» сильнее всего выделялось пламя — плоское, пересыщенное и подвергнутое motion smoothing.
Истории
Пора делать нормальных телеграм-ботов #2
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/285/118/d9d/285118d9d7a61af95958aa8137541fcc.png)
Уверен, многие даже не задумываются над тем, как поведёт себя разрабатываемый бот в случае неправильного его использования. Самое время вскрыть своих ботов и исправить часто допускаемые недочёты, которые я здесь опишу. Снова их 5, снова никакого кода, снова только описание. Добро пожаловать под кат.
Танец на граблях или тонкости UX-исследований в узких B2B-направлениях
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/c0f/1db/a87/c0f1dba8738e00ab8a167c75794cf6a2.jpeg)
Наша проектная команда взялась наладить логистику в крупной агрокомпании: заменить старую систему и внедрить новый веб-интерфейс и мобильные приложения для организации работы сотрудников. Сначала нужно было пересобрать сервис, который оптимизирует процесс сбора урожая...
Мы прошли весь исследовательский путь и, кажется, собрали на нем все возможные грабли: заваливали телефонные интервью и в результате много переделывали, исправляли нестыковки и разруливали косяки. Но главное — провели полевые исследования в прямом смысле слова и получили-таки годный результат. Возможно, наш опыт пригодится и поможет другим избежать подобных ошибок.
Ребят, у нас тут робот-хирург операцию делает
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/69f/1fa/648/69f1fa6485f97504cad83ad7c4c95799.png)
Если лягушку опустить в кипяток, она резко выпрыгнет, но если температуру поднимать постепенно, она не заметит подвоха и сварится. С проектами у меня так же.
И вот неожиданно для себя самого я организую видеосъемку хирургической операции в прямом эфире. Оперирует робот-хирург. Разрез делает на тканевом уровне, так точно, как не может сделать человек. Управляют им два хирурга с помощью VR-шлема и джойстиков. А мы транслируем изображение с камер в щупальцах робота-осьминога в конференц-зал.
Как мы перевернули подход к созданию интерфейсов ОС
При этом у всех таких героев есть свои артефакты: планирование, бэклог, роадмап, технические ограничения, дедлайны, лимит ресурсов, рутинные задачи. И когда, с одной стороны, поджимают сроки очередного релиза, а с другой, есть естественный лимит емкости разработки, то дизайнеру бывает непросто сфокусироваться и придумать ТУ САМУЮ идею.
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/webt/4f/jv/vj/4fjvvjw_e4xllw6_ilrr9l5vci8.jpeg)
В «Лаборатории Касперского» дизайн-мышление встроено на уровне ДНК компании, оно полноценно используется для решения различных рабочих задач. А началось это с того, что мы, Никита Черемисинов (nikitadizer), руководитель группы дизайна в команде KasperskyOS, и Федор Раклов (Raklov), старший UX-исследователь, и вся наша остальная команда попробовали нестандартно подойти к решению креативных задач и провели сессию по генерации идей Playing the Future. В этой статье раскроем закулисье этого ивента — как мы его готовили, какой был процесс и какой получили профит.
Прогулка по 3D улицам
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/d3e/440/359/d3e4403595e7b5f710fb8bd785eb565f.jpg)
Много лет существуют Google Earth + Street View и в свое время они вызвали восторг, когда можно виртуально погулять в заморских странах, в Гималая или же по двору детства. Это было очень необычно для тех времен, когда еще кругом щебетали dial-up модемы.
С тех пор прошло 20 лет: теперь трассировка лучей в играх это реальность и видеокарты нагревают воздух не только из-за трехмерной графики в UE5 или Unity, но и майнят крипту/запускают нейросети. Новомодные метавселенные - это хорошо забытое старое, когда маркетинг пытается донести потребителям что без взаимодействия в дополненной реальности общаться и вести бизнес в социальных сетях несовременно. А визуализация геоданных не так далеко ушла от изначальной идеи из Earth. Если вдруг эти сервисы окажутся недоступны, то с чем мы останемся вместо?
В мае этого года вышла первая версия streets-gl - отображение 3D карт OpenStreetMap в браузере. По качеству картинки и поддерживаемым тегам, на мой взгляд, это лучший проект!
Улучшаем взаимодействие пользователя с интерфейсами
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/d61/f32/3d5/d61f323d5b140abdb3c24e93de12d668.png)
Всем привет! Мы ИТ-компания BSL– технологический партнер в продуктовой разработке и интеграции. В данной статье наш Team Lead Frontend Developer – Андрей рассказал о типичных ошибках при разработке интерфейсов по уе отрисованным макетам, способах их решения и, в целом, о правильном подходе при проектировании. Как мы знаем, не всегда дизайн-макеты идеальны, где-то могли упустить состояния, где-то не описано поведение анимаций, где-то дизайнер не знает вашу ui-библиотеку и так далее. Обо всём этом ниже.
Собираем объёмный дисплей на Raspberry Pi
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/webt/sk/_u/xs/sk_uxstr6cg0ncjzvjh7tqfby60.jpeg)
Недавно мне посчастливилось очутиться в пабе с очень творческими и талантливыми людьми. Обсуждение затронуло тему светодиодных свечей и того, как можно создать нечто, под любым углом напоминающее мерцающую свечу. Я предложил дисплей на основе эффекта инерции зрения, но большинство сошлось на том, что для этого понадобится слишком много механики: подшипники, возможно, контактные кольца и так далее.
После беседы я подумал, что если двигатель и батарея будут достаточно маленькими, то вращаться может устройство целиком. На следующий день я заказал несколько печатных плат, поэтому я добавил к заказам простую матрицу светодиодов. Маленькие платы из Китая, по сути, бесплатны, единственное, что важно — это скорость доставки.
Как мы (не) вкатились в геймдев. Часть 2
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/7d1/65d/966/7d165d96608e7cec5710e2015fa7d9f4.jpg)
Привет, Хабр! Эта статья продолжает рассказ о разработке нашей игры, начатой в рамках моего дипломного проекта. В этот раз — про страницы главного меню, иконки интеракции и логотипы.
Как создать эффективную посадочную страницу в 2023: всего 3 фактора, от которых зависит конверсионность лендинга
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/031/46e/68a/03146e68a7d78c61fbb4b071cfbe5c06.png)
Показываю, почему стандартные формулы для оформления лендингов работают не всегда и почему у сайта может быть мало конверсий. В конце — 6 советов о том, как увеличить отдачу от запуска рекламы на лендинг.
Ближайшие события
![](https://webcf.waybackmachine.org/web/20231223102957/https://habrastorage.org/webt/oa/qj/0w/oaqj0wu68tcgfnhqgsqdzvinqdy.jpeg)
![](https://webcf.waybackmachine.org/web/20231223102957/https://habrastorage.org/webt/zy/io/tz/zyiotznfvatualdwv9ddn_5zwl8.jpeg)
![](https://webcf.waybackmachine.org/web/20231223102957/https://habrastorage.org/webt/lc/sl/vo/lcslvod1yh9swghkp6kskvy05vg.png)
![](https://webcf.waybackmachine.org/web/20231223102957/https://habrastorage.org/webt/pb/1w/ob/pb1wobpfv_crqwdsb6eqiho4co0.jpeg)
Почему 4 базовых правила дизайна нужно знать всем, будь ты разработчик, верстальщик или копирайтер
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/r/w780/getpro/habr/upload_files/8da/aff/a84/8daaffa8487710f731c6ac52ff43469d.jpg)
Есть на свете особо ценные приёмы и инструменты, применимые почти к любой профессии. И речь не о пресловутых софт-скилах, с ними всё достаточно очевидно. Куда интереснее поговорить о «жёстких» навыках, которые, за счёт своей универсальности, здорово прокачивают профессиональную эрудицию и не только.
Эмоциональное восприятие шрифтов. Метод семантического дифференциала
Я занимаюсь в Иви UX-исследованиями. Однажды ко мне пришел директор по дизайну с запросом: “Разрабатываем новый шрифт для внешних коммуникаций. Хотим, чтобы вызывал у людей эмоции, соответствующие новой платформе бренда. Сделали несколько вариантов. Помоги понять, действительно ли люди будут испытывать больше эмоций по сравнению с нашим нейтральным шрифтом для интерфейсов, и выбрать наиболее подходящий”.
С подобной задачей я никогда раньше не сталкивалась, поэтому первая моя мысль была: “Да ладно, эмоции и шрифты? Люди вообще не заметят разницу”. Вторая — про семантический дифференциал.
В этой статье я поделюсь методикой и результатами исследования шрифтов с точки зрения эмоций методом семантического дифференциала.
Как автоматизировать использование дизайн токенов с помощью Stylelint и PostCSS
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/f49/989/e89/f49989e8963305b4da3ad4e8023e866c.png)
Привет, Хабр!
Меня зовут Саша и вот уже 7 лет я работаю фулстек разработчиком и пишу на C# и TypeScript/React.
Сегодня я хотел бы поделиться своим небольшим успехом в автоматизации. В какой-то момент я понял, что во время код ревью я указываю разработчикам на одни и те же ошибки. Но, что ещё хуже, я сам время от времени допускаю эти ошибки. Сегодня хочу рассказать об одной из таких проблем, которую я решил с помощью PostCSS + Stylelint, и о том, как я это сделал.
Статья будет полезна для разработчиков, которые уже используют или собираются использовать дизайн токены.
Коллажи умерли, да здравствует монохром! Кейс: редизайн сайта для Breaking Trends
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/1b9/f3d/5b2/1b9f3d5b206007eb3327f6717a84af81.png)
«Минимализм против ярких цветов» — это не название батла, а запрос клиента. «Заставили» монохромные кнопки привлекать внимание, «отжали» ⅓ экрана на огромное меню и буквально добавили на лендинг ДНК бренда. Почему заказчик вернулся на редизайн сайта спустя 2 года, и что из этого вышло — в статье.
Вам не нужен для этого JavaScript
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/webt/ms/no/rn/msnorndrtqcant5ddfrud82ofjk.gif)
Прошу вас не возмущаться названием статьи. Я не ненавижу JavaScript, я люблю его. Ежедневно я пишу на нём кучу кода. Но ещё я люблю CSS и даже люблю
▍ Правило наименьших полномочий
Это один из базовых принципов веб-разработки, означающий, что следует выбирать наименее мощный язык, подходящий для решения задачи.
В случае веба это означает, что нужно по возможности выбирать HTML вместо CSS, а затем CSS вместо JS. JS — самый универсальный язык из всех трёх, потому что на нём вы описываете, как должен вести себя браузер; но также он может ломаться, отказываться загружаться, требует дополнительных ресурсов для скачивания, парсинга и исполнения. Кроме того, при его использовании очень легко ограничить доступ пользователей, выполняющих браузинг при помощи клавиатуры или специальных возможностей.
В отличие от JS с его императивностью, HTML и CSS декларативны. Вы говорите браузеру, что делать, а не как это делать. Это значит, что браузер сам выбирает, как это делать, и может сделать это наиболее эффективным образом.
Так как функции HTML и CSS обрабатываются браузером, они могут быть более производительными, более нативными, более адаптируемыми к предпочтениям пользователя и в общем случае иметь бОльшую accessibility. Это не значит, что так будет всегда (особенно когда дело касается accessibility), но когда все сложные задачи берёт на себя браузер, от этого обычно выигрывают конечные пользователи.
Графические оболочки FFmpeg
![](https://webcf.waybackmachine.org/web/20231223102957im_/https://habrastorage.org/webt/sq/-r/y5/sq-ry5plpxabgkztrkj01cw99hm.jpeg)
Считается, что работа в консоли эффективнее GUI по нескольким причинам. Во-первых, там быстрее набирать команды, чем двигать курсором. Во-вторых, на CPU, память и GPU не ложится лишнее бремя графической оболочки, так что любые процессы быстрее выполняются в консоли.
Но есть люди, которые всегда предпочтут GUI. Они считают графический интерфейс «наиболее эффективным и удобным способом работы на десктопе». На самом деле они во многом правы, в том числе для специфических задач видеообработки важно сразу видеть результат.
FFmpeg — изначально консольная утилита. Но её популярность крайне высока. Поэтому появляются всё новые варианты графических оболочек для FFmpeg, чтобы доступ к инструменту получили абсолютно все пользователи.