c.im is one of the many independent Mastodon servers you can use to participate in the fediverse.
C.IM is a general, mainly English-speaking Mastodon instance.

Server stats:

2.9K
active users

#программирование

11 posts7 participants0 posts today
Habr 25+<p>[Перевод] Недопонятый язык Lua</p><p>Lua — один из моих любимых языков программирования. Я использовал его для создания CMS на своём старом учебном сайте, для создания крутых IoT-устройств, для разработки мини-игр и экспериментов с децентрализацией сети. Однако экспертом по этому языку я нисколько себя не считаю. Разве что просто разбирающимся в нём пользователем. Я имею в виду, что работал с ним в различных контекстах и на протяжении многих лет, но не вникал глубоко в его реализацию или экосистему. Так что меня немного расстраивает, когда я читаю о нём статьи и посты, в которых сквозит абсолютным непониманием сути и контекста применения этого языка. Чаще всего такие статьи выглядят как набор неких требований. Из последних могу вспомнить пост на LWN , где автор жаловался на «недокомплект» Lua, и обсуждение этого поста на Hacker News , которое побудило меня написать встречную статью, чтобы ответить на некоторые прозвучавшие в нём комментарии.</p><p><a href="https://habr.com/ru/companies/ruvds/articles/895138/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ruvds/ar</span><span class="invisible">ticles/895138/</span></a></p><p><a href="https://zhub.link/tags/ruvds_%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ruvds_перевод</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>программирование</span></a> <a href="https://zhub.link/tags/lua" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>lua</span></a> <a href="https://zhub.link/tags/python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>python</span></a> <a href="https://zhub.link/tags/%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>скриптовый_язык</span></a> <a href="https://zhub.link/tags/%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>скрипты</span></a> <a href="https://zhub.link/tags/iot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>iot</span></a></p>
Habr<p>[Перевод] Недопонятый язык Lua</p><p>Lua — один из моих любимых языков программирования. Я использовал его для создания CMS на своём старом учебном сайте, для создания крутых IoT-устройств, для разработки мини-игр и экспериментов с децентрализацией сети. Однако экспертом по этому языку я нисколько себя не считаю. Разве что просто разбирающимся в нём пользователем. Я имею в виду, что работал с ним в различных контекстах и на протяжении многих лет, но не вникал глубоко в его реализацию или экосистему. Так что меня немного расстраивает, когда я читаю о нём статьи и посты, в которых сквозит абсолютным непониманием сути и контекста применения этого языка. Чаще всего такие статьи выглядят как набор неких требований. Из последних могу вспомнить пост на LWN , где автор жаловался на «недокомплект» Lua, и обсуждение этого поста на Hacker News , которое побудило меня написать встречную статью, чтобы ответить на некоторые прозвучавшие в нём комментарии.</p><p><a href="https://habr.com/ru/companies/ruvds/articles/895138/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ruvds/ar</span><span class="invisible">ticles/895138/</span></a></p><p><a href="https://zhub.link/tags/ruvds_%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ruvds_перевод</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>программирование</span></a> <a href="https://zhub.link/tags/lua" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>lua</span></a> <a href="https://zhub.link/tags/python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>python</span></a> <a href="https://zhub.link/tags/%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>скриптовый_язык</span></a> <a href="https://zhub.link/tags/%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>скрипты</span></a> <a href="https://zhub.link/tags/iot" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>iot</span></a></p>
Habr<p>[Перевод] Как правильно писать код с Cursor? Смотрим, как тот устроен внутри</p><p>Главная цель исследования — выяснить, как же писать промпт для получения наилучших результатов, а также понять, как правильно выстроить сам рабочий процесс. Чтобы найти ответы на эти вопросы, пришлось глубоко погрузился в то, что Cursor делает за кулисами, по ту сторону. Оказывается, сама структура промпта Cursor многое говорит и о том, как он работает, и о том, как настроить его для максимальной отдачи. Ниже — шаги, которые я предпринял для перехвата запросов и изучения их структуры. В конце — основные выводы о правильном составлении промпта.</p><p><a href="https://habr.com/ru/companies/selectel/articles/895344/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/selectel</span><span class="invisible">/articles/895344/</span></a></p><p><a href="https://zhub.link/tags/selectel" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>selectel</span></a> <a href="https://zhub.link/tags/%D0%B8%D0%B8" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ии</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%BC%D0%BF%D1%82%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>промпты</span></a> <a href="https://zhub.link/tags/cursor" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>cursor</span></a> <a href="https://zhub.link/tags/cursor_ai" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>cursor_ai</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>программирование</span></a></p>
Habr<p>[Перевод] Чем хорош Emacs, или Полезные советы современным приложениям от 50-летнего редактора</p><p>Когда я только начал использовать Emacs, то он мне показался довольно странным. У меня возникали вопросы вроде: «Почему окна в нём называются фреймами, а вкладки — окнами?» и «Что вообще значит C-x C-s ?» Но я всё же на него подсел, так как это внушало мне чувство индивидуальности, а уже со временем пришло понимание преимуществ и практичности архитектуры Emacs. Он прост, но невероятно удобен. И в современных реалиях мне кажется странным, что другие приложения не похожи на него, ведь у этого 50-летнего текстового редактора можно многому поучиться.</p><p><a href="https://habr.com/ru/companies/ruvds/articles/894134/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/ruvds/ar</span><span class="invisible">ticles/894134/</span></a></p><p><a href="https://zhub.link/tags/ruvds_%D0%BF%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B4" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ruvds_перевод</span></a> <a href="https://zhub.link/tags/emacs" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>emacs</span></a> <a href="https://zhub.link/tags/ide" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ide</span></a> <a href="https://zhub.link/tags/%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D1%8B" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>текстовые_редакторы</span></a> <a href="https://zhub.link/tags/godspeed" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>godspeed</span></a> <a href="https://zhub.link/tags/sublime" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>sublime</span></a> <a href="https://zhub.link/tags/superhuman" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>superhuman</span></a> <a href="https://zhub.link/tags/linear" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>linear</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>программирование</span></a></p>
Habr<p>Свои языки программирования: зачем компании изобретают колесо заново</p><p>Кажется, языков программирования уже предостаточно, но IT-гиганты продолжают плодить свои. Google, Apple, JetBrains — готовых решений хватает до отказа, а им все равно хочется иметь что-то свое, эксклюзивное. Дело в технологической необходимости, гордыне или «синдроме NIH», когда чужое не берут? Может, это попытка захватить контроль над всем технологическим стеком или хитрый маркетинговый ход для завоевания умов разработчиков? Давайте копнем глубже, чтобы разобраться.</p><p><a href="https://habr.com/ru/companies/selectel/articles/894360/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/selectel</span><span class="invisible">/articles/894360/</span></a></p><p><a href="https://zhub.link/tags/selectel" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>selectel</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>программирование</span></a> <a href="https://zhub.link/tags/go" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>go</span></a> <a href="https://zhub.link/tags/python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>python</span></a></p>
Habr<p>Безопасная работа с массивами? Нет, не слышали</p><p>Рано или поздно любому разработчику на С-подобном языке приходит в голову идея использовать двумерный массив как одномерный. Причины для этого всегда разные, а вот результат чаще всего один. В этой небольшой заметке разберём эту сомнительную технику и какие проблемы она может привнести в вашу программу.</p><p><a href="https://habr.com/ru/companies/pvs-studio/articles/895208/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/pvs-stud</span><span class="invisible">io/articles/895208/</span></a></p><p><a href="https://zhub.link/tags/c" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>c</span></a>++ <a href="https://zhub.link/tags/c" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>c</span></a> <a href="https://zhub.link/tags/array" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>array</span></a> <a href="https://zhub.link/tags/%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>массив</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>программирование</span></a> <a href="https://zhub.link/tags/assembler" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>assembler</span></a> <a href="https://zhub.link/tags/%D0%B0%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ассемблер</span></a> <a href="https://zhub.link/tags/c" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>c</span></a>++23 <a href="https://zhub.link/tags/c23" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>c23</span></a></p>
Habr<p>Имитатор касаний. Ч3: Программная часть</p><p>Цифры нажимались как бы сами собой, быстро следуя в чётком порядке. Это было очень круто! Кряк даже пустил слезу от умиления, а енот довольно потирал свои ловкие ручонки.) Наверняка ему не терпится сделать ещё один интересный проект. +++ Проанализировав данные, полученные с помощью обратной разработки в части 1 и части 2 , можем прикинуть алгоритм работы имитатора касаний, написать приложение и взломать пароль! Этим сегодня и займёмся. – Кто-нибудь, разбудите программиста!</p><p><a href="https://habr.com/ru/companies/timeweb/articles/891928/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/timeweb/</span><span class="invisible">articles/891928/</span></a></p><p><a href="https://zhub.link/tags/timeweb_%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>timeweb_статьи</span></a> <a href="https://zhub.link/tags/Python" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Python</span></a> <a href="https://zhub.link/tags/STM32" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>STM32</span></a> <a href="https://zhub.link/tags/%D0%B8%D0%BC%D0%B8%D1%82%D0%B0%D1%82%D0%BE%D1%80" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>имитатор</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>программирование</span></a> <a href="https://zhub.link/tags/HAL" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>HAL</span></a> <a href="https://zhub.link/tags/diy_%D0%B8%D0%BB%D0%B8_%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D0%B9_%D1%81%D0%B0%D0%BC" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>diy_или_сделай_сам</span></a></p>

Задумался о будущем языка #PHP. Слова “PHP умирает, у него нет перспектив” я слышал ещё, кажется, с 2009 года, и прежде ничего, кроме усмешки, это не вызывало. Но с появлением ИИ всё поменялось: всякие специализированные ИИ-решения типа CoPilot или того же Lovable его не поддерживают в принципе. Вот это уже может привести к тому, что язык реально утратит свою популярность даже в области “малого Web”, где его потеснит JavaScript/TypeScript. И это заставляет задаться вопросом, имеет ли смысл начинать на нём сейчас новые проекты или нет. (Уточню, что речь идёт скорее о pet projects, целевой аудиторией которых являются энтузиасты, делающие любительские некоммерческие сайты, сообщества по интересам и т.п.) #программирование #языки_программирования #small_web #pet_projects

idealists.suAkkoma

DIY-проект: гусеничная платформа с ИК-управлением на Arduino

В статье расскажу, как собрать гусеничную платформу, управляемую ИК-пультом. Платформа будет принимать команды с пульта через ИК-датчик, которые будут обрабатываться платой Iskra mini (российским аналогом Arduino mini). Также речь пойдет о том, как определить коды кнопок любого ИК-пульта, даже если это старый пульт от видеомагнитофона вашей бабушки. Я напишу код для Iskra mini, который будет принимать команды и управлять платформой. В конце вас ждет видеодемонстрация её возможностей. На создание этого проекта меня вдохновил интерес к DIY и электронике. Также я хочу поделиться своими знаниями в робототехнике с людьми, которые только начинают осваивать Arduino. Нет ничего лучше, чем начать с простого проекта, который в дальнейшем можно усложнить. Думаю, статья будет интересна начинающим робототехникам и любителям проектов DIY с микроконтроллерами Arduino. Я буду подробно описывать процесс, чтобы любой желающий мог повторить этот проект на аналогичных или похожих компонентах.

habr.com/ru/companies/first/ar

ХабрDIY-проект: гусеничная платформа с ИК-управлением на ArduinoВ статье расскажу, как собрать гусеничную платформу, управляемую ИК-пультом. Платформа будет принимать команды с пульта через ИК-датчик, которые будут обрабатываться платой Iskra mini (российским...

Нашёл ещё одну альтернативу C: язык Hare. Позиционируется как системный язык программирования, заточенный под написание компиляторов и сетевого ПО с ручным управлением памятью и статической типизацией (как раз то, что я искал). Глянул бегло примеры кода — сложилось впечатление, что кому-то пришло в голову скрестить Rust с серверным JavaScript (в основном, из-за того же механизма экспорта, что и в последнем). Но в целом синтаксис у него более легко читаемый и интуитивный, чем у Rust. В общем, если он доживёт до версии 1.x, буду рад! #программирование #языки_программирования

harelang.orgAn introduction to the Hare programming language

Какие проблемы создает использование ИИ программистами

Недавно посмотрел на ютубе видео, в котором поднимается проблема того, что на место классических программистов‑кодеров приходят «программисты»‑prompt‑инженеры. Само видео мне не очень понравилось — путанное и цикличное повествование, бессмысленная картинка большую часть времени. Но под конец автор высказал ряд мыслей, которые вдохновили меня на написание статьи. Сами мысли я повторяю в конце статьи, но вот вам таймкод . И рассуждения я начну с вопроса — «ну и в чем проблемы?» Перейти к статье

habr.com/ru/articles/894008/

ХабрКакие проблемы создает использование ИИ программистамиСтруктура статьи Введение Часть 1. Появился ИИ, ну и в чем проблемы? - Появились отличия в “программистах” Часть 2. Ну поменялись программисты и что? Важен же код. - Появились отличия в коде. Часть 3....

UI/UX: Учимся использовать настоящий MVC

В этой статье я расскажу о том, что такое MVC и об идеях, которые были заложены в этот шаблон его создателем. Мы рассмотрим, как MVC улучшит UI и UX ваших приложений, сделав их понятнее и прозрачнее для пользователей. Рассмотрим способы организации кода по этому шаблону, чтобы вы смогли сразу применить эти знания в своей работе. А так же посмотрим на несколько вариаций этого шаблона, которые улучшают тестирование и ускоряют разработку.

habr.com/ru/articles/893652/

ХабрUI/UX: Учимся использовать настоящий MVCВесь UI - это композиция MVC В 1972 году лаборатория Xerox PARC первой в мире изобрела компьютеры с графическим пользовательским интерфейсом (GUI). До этого момента все компьютеры управлялись через...
#MVC#MVP#MVVM

Хотя… проблем больше, чем позитива. В лучшем случае можно написать однопоточный, очень медленный клиент, который:
✔ Подключается к трекеру и получает список пиров
✔ Загружает файлы в порядке кусков
❌ Не поддерживает DHT
❌ Не умеет одновременно качать и раздавать
А ещё нет многозадачности, нет нормального асинхронного ввода-вывода, OpenSSL для Magnet-ссылок, zlib для сжатия просто не запустятся.
Короче, обидно прям. Жаль нет чего-то более свежего, что могло бы быть обратносовместимо с оригинальным MS-DOS, но при этом работать с новыми программами.

#FreeDOS #ретротех #торренты #программирование cr8r.gg/@rakhelele/11421605086

Идея была проста: а что, если запустить торрент-клиент на FreeDOS? Ведь TCP/IP-стек есть, сокеты работают, да и торрент-протокол в целом не слишком сложный.
Но на практике всё оказалось веселее. Отсутствие многозадачности, ограниченный доступ к современным библиотекам и возня с 16-битной средой быстро превратили проект в ад. Попытки портировать что-то готовое тоже провалились — даже самый лёгкий клиент требовал слишком многого.
Я вполне осознаю, что я не гений, но в итоге, можно написать торрент-клиент для FreeDOS или реально на нём только старые игры запускать? (Что тоже очень не плохо, но…)

Мои правила

Можно считать эту статью второй частью в неком цикле про мои принципы в работе. В первой части я писал про какие-то неважные для меня вещи на примере code-style . Теперь логично рассказать о том, что для меня важно, про некоторые правила, которые помогают мне в работе. Это не только про написание кода, но и про процесс разработки в целом.

habr.com/ru/companies/skbkontu

ХабрМои правилаМожно считать эту статью второй частью в неком цикле про мои принципы в работе. В первой части я писал про неважные для меня вещи на примере code-style . Теперь логично рассказать о том, что для меня...

**Vim** — это мощный текстовый редактор, известный своей скоростью и эффективностью при редактировании кода и текста. Он является улучшенной версией редактора **Vi**, который был разработан для Unix-подобных систем.

#Vim #Vi #ТекстовыйРедактор #Программирование #КомандныйРедактор #Кодинг #МодальныйРедактор #Автоматизация #Разработка #Linux

### 🔹 Основные особенности Vim:
- **Модальный редактор**: в Vim есть несколько режимов работы:
- **Normal mode** (обычный режим) – для навигации и редактирования.
- **Insert mode** (режим вставки) – для ввода текста.
- **Visual mode** (визуальный режим) – для выделения текста.
- **Command mode** (командный режим) – для выполнения команд.
- **Горячие клавиши и команды**: например, `dd` – удалить строку, `yy` – скопировать строку, `p` – вставить.
- **Гибкая настройка** через `.vimrc`.
- **Поддержка макросов, плагинов и автодополнения**.

Vim может показаться сложным для новичков из-за своей необычной системы управления, но опытные пользователи ценят его за **быстродействие и мощные возможности редактирования**.

Для выхода из Vim без сохранения используется команда:

```
:q!
```

А для выхода с сохранением:

```
:wq
```

Пришло время повысить сложность задачи.

Теперь спрайтами должны управлять не случайные сигналы, а магнитуда выбранного инструмента.

Мне приглянулась композиция от cynicmusic - November Snow (opengameart.org/content/novemb) из-за чётко звучащего фортепиано (назовём его условно так). Я изучил график спектра в Audacity и обнаружил пики на частотах ≈800Гц.

Там располагается несколько нот официального фортепиано, пробовал сужать и расширять диапазон фильтрации, оценивая нужный мне уровень магнитуды, но, увы, было много ложных срабатываний.

Тогда я решил поискать гармоники - кратные частоты основному тону. Если предположить, что основной тон мог быть в районе 800Гц, то следующая гармоника должна быть где-то в 2*800=1600Гц. И в диапазоне 1540-1630Гц там действительно есть более узкий и чёткий пик, оно кое-как, но заработало.

Снежинки - звёздчатые многоугольники и фракталы Коха ( 60°, аксиома F++F++F, правило F=F-F++F-F в системе Линденмайера.

Классическая жизнь фронтенд-приложений и их сопровождение

Рассмотрим типичный сценарий разработки фронтенд-приложений. Бизнес выдвигает требования, которые постепенно усложняют компоненты. Это приводит к проблемам сопровождения, особенно в больших проектах.

habr.com/ru/articles/893370/

ХабрКлассическая жизнь фронтенд-приложений и их сопровождениеПроблемы больших проектов: сопровождение компонентов и фанатичность принципу DRY Рассмотрим типичный сценарий разработки фронтенд-приложений. Бизнес выдвигает требования, которые постепенно усложняют...