Greatmatis


Музыкант и арт-директор в red_mad_robot
МузыкаЮтубИнстаграм𝕏

Муравей и спираль

Я не могу точно сказать, зачем я это сделал (что является моей любимой категорией своих поделий). В общем это рисование спиралей муравьем на вращающемся диске:

https://files.greatmatis.com/spiral/

Ну ладно, небольшая предыстория таки есть. У нас на работе, в столовой, есть маркерная доска, куда, так уж повелось, пишут какие-нибудь около-математические, рядом-геометрические задачки. Эту доску надо почаще обновлять, а то если долго её не стирать, маркер прочно застынет и потом только моющим средством.

Смотрю на доску и думаю, сегодня точно пора что-нибудь новое написать, но что?… Так вот, спираль.

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

Да и хороший повод расчехлить p5.js.

ChatGPT

Последние два месяца хорошенечко подсел на ChatGPT. Сделал с помощью него (неё?) два пет-проекта: теле-чат для столовой на работе и расширение для Unity. Оба раза это был удивительный опыт и не потому что «о вау, AI пишет код». Небольшие скрипты я и раньше делал с ChatGPT, что оно пишет работоспособный код — это понятно. Меня удивил весь пользовательский опыт вокруг.

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

Сейчас я плачу за подписку. До того, после превышения какого-то лимита, ChatGPT переходил на предыдущую версию модели, которая поглупее. Тогда-то и проступает разница. Предыдущая модель как раз-таки неудивительная: не понимает контекст, отвечает сухо — всё ощущение работы с настоящим разработчиком улетучивается. Код-то всё ещё рабочий, а вот опыт уже не тот.

Мой диалог в ChatGPT в среднем выглядит вот так.

Здесь нет фокусов с промптами — я просто общаюсь так, как общался бы с коллегой. Более того, эпольная вежливость ChatGPT настраивает на аналогичное настроение. Кайфую от того, что этот специалист резюмирует твой запрос в начале сообщение и только потом пишет код. Оно тебя сразу подкупает: да да, как бы косноязыко ты не выражался, я тебя понимаю, вот, смотри, что ты хочешь на самом деле…

Так вот, те два проекта, для которых я нанял ChatGPT. Первый — теле-чат для столовой. Я хотел, чтобы коллеги могли писать боту в Телеграм и эти сообщения отображались бы на телевизоре. Что-то типа полуночных чатов на ТВ. Вот оно, внизу.

Тут почти весь код написан ChatGPT. Бот принимает сообщение и складывает в Гугл Таблицу. Около ников видно ранг (у всех пока «1») и лайки. Ранг зависит от количества написанных сообщений и лайков к ним. Писать формулы в Гугл Таблице для подсчёта такого уж точно стоит доверить AI, а то там больно своеобразный синтаксис.

В этой работе я увидел главное преимущество ChatGPT для себя. У меня есть какой-никакой опыт в программировании: само по себе составление алгоритма и написание кода — не такая уж и проблема. Проблема — это всё что до этого. Настройка среды для бота, работа с OAuth, автоматизация запуска скриптов при включении сервера… Вот эта вся бюрократия, которая не является программированием как таковым — вот она встаёт блокером для создания продукта. Я рад бы писать код, я просто не знаю куда. И именно эту рутину ChatGPT прекрасно закрывает. Оно подскажет все промежуточные шаги, чтобы ты уже мог наконец открыть заветный файл, куда будешь писать скрипт. А уж писать код самим или с помощью AI это уже проза — и то, и то весело.

Второй пет-проект — расширение для Unity.

Лонг-стори-шорт: я сейчас увлёкся прототипированием интерфейсов под VR. Это удобнее всего делать в Unity, но в нём тяжело делать именно интерфейсные анимации. Там есть работа со стейт-машиной через Animator, но это больно уж суровый комбайн для моих простых нужд: плавно скрыть или увеличить кнопочку.

У Unity есть моя любимая черта хороших редакторов — он станок, готовый для допилки под нужды мастера. Можно написать скрипт, самим сделать ему интерфейс и просто закидывать как модуль к другим объектам. Мне нужен был инструмент, который позволяет указать начальное и конечное состояние для базовых модификаций элементов интерфейса: двигать, прозрачить, масштабировать и крутить. Конечно же можно управлять длительностью анимации и кривой ускорения.

Запрос достаточно нестандартный. Я не был уверен, что ChatGPT справится. Тут и C#, и всякая внутрянка Unity как среды разработки. Лучше всего работа с AI спорится, когда просишь какую-то простую функцию и потом, шаг за шагом, усложняешь этот код. Так был сделан тот теле-чат. В случае с Unity таки решил пойти ва-банк: прям вот сразу написал ChatGPT весь требуемый функционал. Словно я менеджер, который просто рассказывает лиду, как-что должно работать и в каком виде. В общем — всё сработало с первого раза.

Тогда я понял, что если ты человек с хорошей идеей и базовыми навыками кода (это всё ещё нужно, чтобы нормально объяснить требования и понять результат), у тебя больше нет лимитов — ты можешь собрать любой проект.

Литература в школе

Есть частый разговор, мол, школьная литература на самом деле слишком сложна для подростков. «Преступление и наказание» или «Войну и мир» рановато давать в шестнадцать, там и взрослые не всё понимают.

А я считаю, что нормально.

Разве что учителю литературы на старте произведения стоит произнести заклинание: «Всё понимать необязательно». Это был главный лайфхак моего папы, когда в детстве я жаловался на слишком взрослую и непонятную книгу. «Ничего страшного, просто продолжай». Конечно, что-то пройдёт мимо. Но что-то отложится. Что-то ляжет деталью в фундаменте характера. Монолог пленного Пьера регулярно всплывает в моей жизни в разном контексте. В школе — понял так. В 32 — эдак.

Можно подумать (можно) Евангелион не нужен в четырнадцать, раз его не понять целиком ;)

Целиком и не надо. Да и неинтересно так. Круто, когда есть глубина глубже. Круто знать, что с тобой не нянчатся. Здесь место для какой-то удачной аналогии с физ. нагрузкой, типа, хорошо, когда слегка сверх.

На месте учителя литературы я бы проговаривал: «Всё понимать необязательно. Давайте вместе поймём, что можем».

Истина

Я люблю поспорить. Я просто добавляю «т» к слову «спор»: когда азартно, даже на повышенных тонах, но так, по-спортивному :) Совсем хорошо, если демагоги на одной волне и при чувстве юмора.

Истина в таких спорах меня не особо интересует. Мне нравится процесс. Если так интереснее, я запросто выступлю от лица плоскоземельщика или буду на серьёзных щах доказывать, почему Властелин Колец — плохое кино. Это, конечно, если темы безобидные. Ни в каком самом ироничном споре я не встану на сторону z-патриота или антипрививочника.

Так вот истина. Приятно оказаться в кругу понимающих собеседников: истина известна, на неё никто не нападает. Просто сейчас нужно накатить слой абстракции, чтобы разговор получился интереснее. Мы как бы прикинемся, что геоидность Земли пока не доказана.

Иногда на шум приходят ребята, которые не любят эту игру. Это понимаемо: я хорошо представляю, как соревнования в остроумии могут раздражать. Есть темы, где истина важна и не должна быть попираема. А есть темы, где правдоруб напоминает скучных взрослых, завалившихся на подростковую вечеринку.

Рейтрейсинг

Когда в темноте включаешь фонарик, вокруг начинается особенно заметный рейтрейсинг. Динамические тени без всякой задержки и графических компромиссов реагируют на движения фонарика. В такие моменты я представляю, что сейчас злостно эксплуатирую графический процессор нашего мира. Где-то за пределами вселенной находится гигантская рендер-ферма, и я сейчас хорошенечко насел на ресурсы. Стараюсь, конечно, побыстрее справиться со своими тёмными делами и освободить мощности мирового компьютера.

Ранее Ctrl + ↓