This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
❤7
This media is not supported in your browser
VIEW IN TELEGRAM
Интересный кейс с LumaLab
Изучаю возможность написать свой софт, который бы взаимодействовал с их API, и оказалось, что загрузка изображений возможна только с CDN. Проще говоря, с внешних серверов. Когда это останавливало? Зарегистрировал домен, поднял сервер, развернул S3-совместимое хранилище, добавил сертификат для https — возможно, часть шагов была излишней, но теперь система работает идеально.
В процессе понял, что подобные задачи решаю уже на автомате. Интерактивные приложения, работа с API, кастомные решения для бизнеса и индустрии развлечений — если у вас есть идея, но нет технического решения, можем обсудить.
Изучаю возможность написать свой софт, который бы взаимодействовал с их API, и оказалось, что загрузка изображений возможна только с CDN. Проще говоря, с внешних серверов. Когда это останавливало? Зарегистрировал домен, поднял сервер, развернул S3-совместимое хранилище, добавил сертификат для https — возможно, часть шагов была излишней, но теперь система работает идеально.
В процессе понял, что подобные задачи решаю уже на автомате. Интерактивные приложения, работа с API, кастомные решения для бизнеса и индустрии развлечений — если у вас есть идея, но нет технического решения, можем обсудить.
🔥6
Bright Brains
Интересный кейс с LumaLab Изучаю возможность написать свой софт, который бы взаимодействовал с их API, и оказалось, что загрузка изображений возможна только с CDN. Проще говоря, с внешних серверов. Когда это останавливало? Зарегистрировал домен, поднял сервер…
This media is not supported in your browser
VIEW IN TELEGRAM
Придумал на мой взгляд интересную схему для работы с LumaLab.
При генерации можно указать callback. Простыми словами, сервер при генерации будет сообщать о ходе выполнения работ по указанной ссылке (будет делать POST запросы по https). Так вот тело запроса, JSON с состоянием мой сервер автоматически складывает в S3 хранилище, где с этими состояниями удобно работать, если они потребуются при отображении, но в то же время происходит публикация через MQTT, что обеспечивает observable паттерн — я просто подписываюсь на процесс генерации и когда он будет закончен я узнаю об этом сразу. Кстати, когда видишь процесс генерации в прямом эфире — сервер сообщает о ходе генерации, а не только о результате — оказывается, это очень быстро происходит.
При генерации можно указать callback. Простыми словами, сервер при генерации будет сообщать о ходе выполнения работ по указанной ссылке (будет делать POST запросы по https). Так вот тело запроса, JSON с состоянием мой сервер автоматически складывает в S3 хранилище, где с этими состояниями удобно работать, если они потребуются при отображении, но в то же время происходит публикация через MQTT, что обеспечивает observable паттерн — я просто подписываюсь на процесс генерации и когда он будет закончен я узнаю об этом сразу. Кстати, когда видишь процесс генерации в прямом эфире — сервер сообщает о ходе генерации, а не только о результате — оказывается, это очень быстро происходит.
🔥2
Bright Brains
Интересный кейс с LumaLab Изучаю возможность написать свой софт, который бы взаимодействовал с их API, и оказалось, что загрузка изображений возможна только с CDN. Проще говоря, с внешних серверов. Когда это останавливало? Зарегистрировал домен, поднял сервер…
Инсайт с ComfyUI
Есть доступ к мощному серверу, но хочется генерировать изображения на планшете дома? Или нужен доступ к API ComfyUI? Просто создайте SSH-туннель! Это проще, чем VPN, и безопаснее — SSH есть на любом сервере, а подключение по ключам минимизирует риски. Теперь ваш сервер может работать где угодно, а доступ к ComfyUI будет возможен по доменному имени вроде myserver.com со всего мира. Там полно технических деталей, но в целом за пару вечеров разобраться можно.
Почему это удобно? Настроить проект с высокими требованиями к мощности можно практически на любом устройстве, главное — интернет и поддержка websocket. С телефона в метро или на ESP32. Мощный сервер может тихо работать в серверной, пока вы настраиваете пайплайн. А ещё, можно рендерить на нескольких машинах одновременно — эффективно и просто.
Есть доступ к мощному серверу, но хочется генерировать изображения на планшете дома? Или нужен доступ к API ComfyUI? Просто создайте SSH-туннель! Это проще, чем VPN, и безопаснее — SSH есть на любом сервере, а подключение по ключам минимизирует риски. Теперь ваш сервер может работать где угодно, а доступ к ComfyUI будет возможен по доменному имени вроде myserver.com со всего мира. Там полно технических деталей, но в целом за пару вечеров разобраться можно.
Почему это удобно? Настроить проект с высокими требованиями к мощности можно практически на любом устройстве, главное — интернет и поддержка websocket. С телефона в метро или на ESP32. Мощный сервер может тихо работать в серверной, пока вы настраиваете пайплайн. А ещё, можно рендерить на нескольких машинах одновременно — эффективно и просто.
❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Удивительно, что в электронные сигареты теперь встраивают полноценный микроконтроллер, зарядку и... экран! В принципе, должно быть несложно хакнуть и перепрошить, посмотрю на досуге.
🔥4🆒2
Bright Brains
Интересный кейс с LumaLab Изучаю возможность написать свой софт, который бы взаимодействовал с их API, и оказалось, что загрузка изображений возможна только с CDN. Проще говоря, с внешних серверов. Когда это останавливало? Зарегистрировал домен, поднял сервер…
скоро покажу прототип (или не покажу), но пока можно посмотреть на эффект Кулешова в действии — реклама SvetoCopy (хотя это просто планшет в кладовке)
❤2
Bright Brains
На фото успешный и популярный продукт у медиа-артистов по всему миру — прибор для управления лазерами по стандарту ILDA. Лазер в таком случае управляется с помощью гальванометров. Идея простая — положительное напряжение поворачивает зеркало в одну сторону, а отрицательное в другую. Это похоже на обычный звуковой динамик, кроме того, что в первом случае движение поворотное, а во втором — колебательное. Более того, в драйверах гальванометров часто используются обычные усилители звука.
Прибор устроен относительно просто. Отрицательное напряжение формируется с помощью зарядного насоса (charge pump), то есть отдельного блока питания просто нет — напряжение берется с USB и инвертируется. Это дешево и отлично работает с низкими токами (хотя у меня были проблемы с точностью луча, что связано с таким дизайном). Отклонение лазера XY формируется с помощью 16 битного DAC, выход которого уже преобразуется операционными усилителями в необходимые уровни ±5В. Интересно, что для экономии цвет лазера формируется встроенными в STM32H7 12 битными DAC. Такое решение значительно удешевляет конструкцию, используя развитую переферию микроконтроллера.
Интересно, что по сути это довольно замысловатый ЦАП с 5 каналами. Я всегда задавался вопросом – а что если все таки использовать 32 битные звуковые ЦАП, как это делает, например, Robert Henke в своих шоу?
Прибор устроен относительно просто. Отрицательное напряжение формируется с помощью зарядного насоса (charge pump), то есть отдельного блока питания просто нет — напряжение берется с USB и инвертируется. Это дешево и отлично работает с низкими токами (хотя у меня были проблемы с точностью луча, что связано с таким дизайном). Отклонение лазера XY формируется с помощью 16 битного DAC, выход которого уже преобразуется операционными усилителями в необходимые уровни ±5В. Интересно, что для экономии цвет лазера формируется встроенными в STM32H7 12 битными DAC. Такое решение значительно удешевляет конструкцию, используя развитую переферию микроконтроллера.
Интересно, что по сути это довольно замысловатый ЦАП с 5 каналами. Я всегда задавался вопросом – а что если все таки использовать 32 битные звуковые ЦАП, как это делает, например, Robert Henke в своих шоу?
✍3❤1🔥1🤔1
Пожалуй, это самый nerdy stuff, который я делал. Если программирование вам не интересно — пропустите это пост, позже выложу что-нибудь красивое.
Я начал вспоминать, что вообще-то умею писать на Rust, экспериментируя с ним на железе, Взял чип, который использовал ранее в своих миниатюрных устройствах. Это классный чип: Cortex-M0, бодрый 12-битный АЦП на мегасэмпл, периферия, цена — 60 центов. Задача — "помигать" светодиодом прошивкой на Rust, увидеть это на осциллографе.
Взял официальный SVD (system view description, выпускают вместе с arm-чипом), пропустил через svd2rust, далее пришлось помучаться и переписать иницализацию тактирования из CMSIS на Rust, для прошивки использовал probe-rs. Прошиться получилось не сразу, но в какой-то момент прошивка скомпилиролась и залилась! Это было удивительно само по себе. Отладив тактирование, оказалось, прошивка исполняется и не падает, но пины вообще ни в какую не поднимаются.
Кручу даташит не первую неделю, уже начинаю в себе сомневаться, как в друг чатгпт выдает: "А может SVDговно с ошибкой и там промахнулись со смещением? Запиши напрямую в память". Клацаю предложенный write_volatile, обходя кривой адрес — и вдруг осциллограф оживает) вау!
Какой вывод? Значительно углубив понимание arm чипов и в целом лучше поняв как устроена инфраструктура вокруг STM и ESP на Rust, убедился, что Rust и экзотическое железо совместимы и такое сочетание интересно. Это было сложно, но только в первый раз, хоть SVD файл и требует исправления. Китайские микроконтроллеры дешевы, устойчивы к проблемам рынка и открывают интересные возможности при правильном подходе. При этом Rust дает качественно иной опыт программирования на микроконтроллерах, что мне очень нравится.
Я начал вспоминать, что вообще-то умею писать на Rust, экспериментируя с ним на железе, Взял чип, который использовал ранее в своих миниатюрных устройствах. Это классный чип: Cortex-M0, бодрый 12-битный АЦП на мегасэмпл, периферия, цена — 60 центов. Задача — "помигать" светодиодом прошивкой на Rust, увидеть это на осциллографе.
Взял официальный SVD (system view description, выпускают вместе с arm-чипом), пропустил через svd2rust, далее пришлось помучаться и переписать иницализацию тактирования из CMSIS на Rust, для прошивки использовал probe-rs. Прошиться получилось не сразу, но в какой-то момент прошивка скомпилиролась и залилась! Это было удивительно само по себе. Отладив тактирование, оказалось, прошивка исполняется и не падает, но пины вообще ни в какую не поднимаются.
Кручу даташит не первую неделю, уже начинаю в себе сомневаться, как в друг чатгпт выдает: "А может SVD
Какой вывод? Значительно углубив понимание arm чипов и в целом лучше поняв как устроена инфраструктура вокруг STM и ESP на Rust, убедился, что Rust и экзотическое железо совместимы и такое сочетание интересно. Это было сложно, но только в первый раз, хоть SVD файл и требует исправления. Китайские микроконтроллеры дешевы, устойчивы к проблемам рынка и открывают интересные возможности при правильном подходе. При этом Rust дает качественно иной опыт программирования на микроконтроллерах, что мне очень нравится.
👍3❤2