dev optozorax
4.4K subscribers
358 photos
53 videos
10 files
284 links
По деловым предложениям: optozorax.work@gmail.com.

Связь с админом через личку канала (кнопка в канале слева снизу).

Ютуб: https://www.youtube.com/@optozorax

Бусти: https://boosty.to/optozorax
Патреон: https://www.patreon.com

Сайт: optozorax.github.io
Download Telegram
dev optozorax
Я обязан был это сделать https://youtu.be/Zaq-aWlAgFk
Achievement unlocked: тот самый Justin Y. написал коммент под моим видео!!!

UPD: для тех кто не знает - это самый популярный коментатор на ютубе без единого видео. Комментит под английскими видео. Просто вводите в поиске его имя и увидите кучу видео про него.
💘118🔥48🤔95🥰5👍4🤯4🤩3👀2👎1🤡1
В моём последнем видео помните 4ю "аксиому" о том что маленький портал должен всё меньше и меньше влиять на гравитацию. Но мои эксперименты показывали, как будто это не происходит.

Очень много людей написали комментарии по этому поводу, утверждая что я не прав, потому что потенциал зависит от разницы высот, поэтому даже микроскопические порталы будут выдавать одинаковую гравитацию, для одинаковой высоты.

Так вот, мне на почту написал математик finegeometer, который сделал аналитические расчёты гравитации с порталами, используя комплексный анализ!

И согласно его расчётам моя "аксиома" верна! Порталы будут всё меньше влиять на гравитацию, и в пределе это будет 0. Но особенность в том что влияние на гравитацию убывает логарифмически (то есть если уменьшу портал в 10^5 раз, то его влияние уменьшится в ~5 раз), поэтому я не замечал эффекта в своих симуляциях (которые ограничены уменьшением максимум в 10^6 раз).

Я не знаю комплексный анализ и пока не очень понимаю всех деталей как он смог это рассчитать. Но расчёты валидные, его результаты совпадают с моими.

В комментариях приложу pdf-ки с описанием метода.
9🔥203👀3127👍143😨3❤‍🔥2🆒2🥰1
dev optozorax
Portal Explorer теперь поддерживает рендеринг стереоизображений (3D)! Это когда рендерится сразу для левого и правого глаза. А отображать это можно миллионом способов. Самый простой способ - это отображать картинку для левого глаза справа, а картинку для…
Продолжая тему 3D стереовидео, я отрендерил самые графонистые и интересные моменты из моих видео про карманное пространство в 3D, и опубликовал это на специальном хостинге 3D видео, который работает в VR:

https://deovr.com/rz24tb

Видео длится 3 минуты, так что если у вас есть VR шлем, рекомендую заценить. А далее будут мои впечатления по поводу поддержки 3D видео ютубом, этим видеохостингом и вообще про рендеринг 3D видео.

Спасибо моим подписчикам со шлемами, которые протестировали прошлое видео! Благодаря вам я узнал что это видео работает в VR на Oculus Quest, только если открыть его в браузере, затем сделать на весь экран и затем нажать какую-то секретную кнопочку в меню на троеточие, которая превращает видео в 3D из Side-by-Side. И то не всегда, иногда видео имеет неправильный aspect ratio (слишком широкое). Это неприемлемо сложно и ненадёжно по моему мнению. Плюс ютуб невероятно шакалит видео, не важно в каком качестве, разрешении и формате я его загружаю. Так что ютуб совершенно не подходит для 3D видео.

Далее я устроил ресёрч и обнаружил хорошую платформу для 3D видео - deovr.com . У него есть свои приложения для всех шлемов виртуальной реальности, и там он сразу поддерживает все форматы: 3D стерео, VR180, VR360 итд. Битрейт там хороший, есть возможность выбора даже 4096p (возможно есть и больше разрешение...), видео не шакалится, и на Quest открывается сразу хорошо (у меня появился доступ к Quest 2, я проверил). Правда эта платформа немного сомнительна, потому что если вы зайдёте на главную страницу, то увидите что 90% контента - это полуголые девушки с декольте в 3D. Что, несомненно, в шлеме выглядит впечатляюще и создаёт эффект присутствия. Но жаль что на платформе доминирует именно это. И у них есть подписка, которая даёт доступ в большинстве своём к таким видео. Ну что поделать, как известно, именно подобный контент ускоряет развитие новой технологии и является их early adopter.

По поводу самого 3D видео - части 3D видео выглядят прикольно, а части нет. Я не очень впечатлён тем как карманное пространство выглядит в 3D. Видимо из-за того что там большие расстояния и вокруг темнота, оно выглядит плоским. Плюс на поверхности порталов не хватает какой-то текстуры, чтобы глаз зацепился за 3D-шность сцены.

А вот когда показываю сцены без порталов, вот там 3D-шность заметна и это классно выглядит. Плюс каждую сцену надо выверять в плане того чтобы всегда были какие-то объекты на переднем плане, чтобы это выглядело иммерсивно. Или когда имеется сцена где мы находимся далеко и большие масштабы, надо настраивать другое расстояние между глазами (сделать больше), чтобы выглядело объёмно.

А для этого надо добавить поддержку OpenXR в Portal Explorer, чтобы прямо во время создания анимаций можно было всё это видеть в шлеме и настраивать. Просто так схалявить и отрендерить в 3D, как я сделал с текущим видео - не получится, местами будет выглядеть плоско и не будет оправдывать человеку то что он надел VR шлем ради просмотра моего видео.

А ещё некоторые конфигурации порталов (те, у которых вход не равен выходу) в VR выглядят очень проклято и глазам больно. Так что всякие червоточины или такие порталы надо делать аккуратно.

Я всё ещё думаю над тем чтобы делать будущие видео ещё и в 3D, но предоставлять доступ к ним через Patreon. Может буду первым серьёзным математическим 3D видеоблоггером)))0). Пока что это прощупывание почвы.
61🔥22👍8🥰3💯3
У меня в проекте есть один файлик на 16 тысяч строк, на Rust. Думаю наконец настало время разделить его на множество файликов)))) А весь проект на 33к строк, так что этот один файлик представлял половину проекта))))0) Благо сам я это делать не буду, отправил на такую работу нейронку)

Кстати, лично я считаю что люди немного посходили с ума с этим кодстайлом и разделением на файлики. Они разделяют на файлики раньше времени (преждевременная оптимизация), когда это ещё не имеет смысла, когда файлики получаются уж слишком маленькими (типо всего 100-200 строк), и нет гарантий что они будут расти и создавать реальное удобство в будущем. Например, в моём файле на 16к строк я сначала писал всё в одном, ибо так было удобнее редактировать связанный код, просто делаю Ctrl+F в одном файле и всё. И кликать мышкой меньше надо. А сейчас просто стало понятно как должна выглядеть структура, и только сейчас стало удобнее разносить всё по разным файлам. И эти файлы будут каждый на нормальное количество строк (не менее 500).

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

Особенно ужасно это в Java, где на каждый класс создаётся отдельный файл и миллион вложенностей папок (и вроде по-другому нельзя делать). Я один раз в жизни посмотрел на такой код и меня чуть инфаркт не схватил.

А вы как любите организовывать код? Сильно любите всякие кодстайл-гайдлайны?
75😱16👍12🤡6🔥5💯4🥰3😁2👀1
This media is not supported in your browser
VIEW IN TELEGRAM
Зацените какую классную анимацию я нашёл! Автор ещё в 2017 году задался вопросом как порталы будут телепортировать гравитацию и нарисовал эту анимацию.

Источник: https://x.com/NickSazani/status/969324296890826752
💘8848👍22🔥16🆒4🥰2😁1
dev optozorax
Идея алгоритма диффа, умеющего понимать копипасту Не очень серьёзный пост, пока никаких результатов, только сырая идея, пишу просто чтобы поболтать с вами. Много кто тут программирует и регулярно пользуется git'ом и отображением диффа в коммитах, Pull Request'ах…
Помните я грозился сделать свой алгоритм git diff с детектом переноса текста? Я потихоньку начал исследовать эту тему и вайбкодить прототип. Решил начать с ручного контроля для обычного алгоритма diff, пока что без переноса. Вот ссылка:

https://optozorax.github.io/hand_diff/

Там можно указать для каждой строки что о ней должен думать дифф: она должна быть удалена, добавлена или оставаться неизменной. Это можно размечать небольшими кнопочками +/-/= рядом со строкой в диффе. И при нажатии этой кнопочки дифф пересчитывается. Прямо сейчас уже есть пример когда стандартный алгоритм диффа показывает неадекватный вариант изменения (рис. 1) - выглядит так как будто .someblock расширился, и внутри него он же закрылся и затем ещё .someotherblock начался. Ну вообще неудобно смотреть.

А теперь как это можно поправить в редакторе диффа, двумя способами: нажать плюсик на 19 строке справа или равно на 12 строке справа (рис. 2). Видно что после ручной разметки дифф стал выглядеть намного более логично: добавилось свойство в .someblock и добавился новый .someotherblock. А раньше не было видно что в .someblock что-то поменялось, дифф вводил в заблуждение, так что дифф стал объективно лучше.

Пока выглядит обнадёживающе, надеюсь с переносом получится так же хорошо.

Теперь у меня просьба к вам: пожалуйста пробегитесь по вашим последним коммитам и посмотрите есть ли случаи когда алгоритм диффа показывает ваш дифф неадекватно (как на рис. 1), и его потенциально можно исправить таким инструментом. Но пожалуйста, не учитывайте случаи переноса текста, здесь пока ничего не поможет. Если такое есть, огромная просьба - скиньте в комментарии (в виде текста). И попробуйте поиграться с сайтом чтобы получить адекватный дифф.
7👍49🔥175🤔2❤‍🔥1🥰1🗿1🆒1💘1👾1
Друзья, я наконец разобрался с налогами и прочей бюрократией и смог завести Бусти!

Там уже лежит новое видео (для 400р/мес подписки), и новая версия программы Portal Lab (для 100р/мес подписки).

А само видео на ютубе выйдет уже в ближайшие пару дней!

https://boosty.to/optozorax
762🔥26👍13🎉4🤬2👀2👎1🥰1🐳1🆒1👾1
Новое видео уже на канале!

В этот раз рассматриваю гравитацию на замкнутых фигурах (тор, бутылка Клейна) и гравитацию в карманном пространство!

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

https://youtu.be/uRAnm7HKzlA
17🔥8216👍7🤩2🥰1🤨1🆒1
Админ решил сделать себе подарочек
1173🔥96😱19🎉11😍10👍8🥰4🍌4🆒4🐳2💘2
Я сделал платформу для задания вопросов стримерам.

На этой платформе можно задавать вопросы, лайкать/дизлайкать чужие. Стример может видеть как новые вопросы, так и самые залайканные. Он может нажимать кнопку "отвергнуть" или "ответить", и это видят все зрители и меняется интерфейс у вопроса. В конце можно получить таймкоды каждого отвеченного вопроса, чтобы вставить в описание стрима на ютубе.

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

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

Я придумал концепцию такой платформы очень давно когда увидел какой-то стрим и как там задаются вопросы в комментариях.

Написал я её конечно же не сам, а полностью, от начала и до конца навайбкодил (основной код писал codex, но я использовал claude для красивого фронтенда). Да, я даже не знаю как там устроена база данных, но мне это и не нужно, как минимум я не собираюсь продавать её за деньги. Вроде сделал чтобы на этой платформе были вообще все фичи которые хотел, а так же потвикал фронтенд и прочее, чтобы по всяким мелочам она вела себя удобно и приятно.

Исходный код полностью открыт: https://github.com/optozorax/qstream

Приглашаю вас к тестированию: https://qstream.unasanu.xyz/s/d55c78facc

Пишите свои вопросы, лайкате/дизлайкайте, можете даже создавать свои сессии и звать туда людей, банить их и модерировать вопросы.

Домен нормальный потом куплю, наверное.

А в комментариях к этому посту пишите фидбэк по поводу платформы: фичреквесты, что улучшить, где ошибки/баги.

PS: кстати да, я планирую стрим в ближайшую неделю провести. Вместе с этой платформой, конечно же.
🤔57🔥3920👍11👎6🆒2❤‍🔥1🥰1🐳1😐1💘1
dev optozorax
Я сделал платформу для задания вопросов стримерам. На этой платформе можно задавать вопросы, лайкать/дизлайкать чужие. Стример может видеть как новые вопросы, так и самые залайканные. Он может нажимать кнопку "отвергнуть" или "ответить", и это видят все зрители…
Решил вчера добавить поддержку Donation Alerts в свой сервис, чтобы когда приходили донаты, они были как вопросы, на них так же можно было отвечать, отвергать, но зрители не могли за них голосовать, и они были выше обычных вопросов в сортировке по топу. Чтобы была единая система.

Значит нашёл API спеку у Donation Alerts, выдал её codex'у и говорю, распланируй, затем тот же промт выдал claude code, почитал оба их ответа, объединил, добавил своих комментов и отправил codex реализовывать на стороне бэкенда и базы данных. А затем отправил claude code реализовывать на стороне фронтенда.

В Donation Alerts создал приложение, всё указал, запускаю, пытаюсь авторизоваться, и оно не работает. Просто таймаутится и запрос не проходит.

Не понимаю в чём проблема, говорю codex'у чтобы он разобрался и пофиксил, он что-то делал, снова не работает. Думаю ладно, задеплою на сервер в продакшен, может там заработает, ибо у меня локально ssh-туннель, WSL и прочая фигня накладывается. Деплою, там тоже не работает точно таким же образом! Я около часа или больше просидел, самыми разными способами пытался раздебажить почему API не работает, и нашёл причину.

Значит, если делать запрос в API через curl или python, то всё работает. НО, если сделать запрос из rust, то всё ломается и теперь любой запрос в donationalerts.com начинает таймаутиться! Не только API через curl, а даже на сайт в браузере! Помогает только смена айпишника через КВН. Я как это понял, так офигел! Это чего такого rust делает что серверу donation alerts не нравится что он меня таймаутит???

Рассказываю это codex'у и говорю чтобы он воспроизвёл, он воспроизвёл и сначала не верит что так может быть, говорит "да не, это наверняка просто их сервер нестабильный и всё". Но когда он повторил и воспроизвёл второй раз, то уверовал.

Как я выяснил, у библиотеки запросов для rust есть два бэкенда: rustls и native-tls, это низкоуровневые библиотеки для какой-то сетевой штуки. И значит когда используется бэкенд rustls, то сервер начинает меня гхостить, а когда бэкенд native-tls, то запрос проходит нормально! Это и оказался фикс.

Я пытался гуглить, чтобы найти похожую проблему, но ничего такого не нашёл. Там есть что-то про кастомный ClientHello или что-то такое, но не уверен насколько это подходит.

Ну а после уже я наконец смог отлаживать API, благо в Donation Alerts есть возможность создавать тестовые донаты без отправки денег! И потом уже закончил и отладил фичу и отправил её в продакшен. Может воспользуюсь.
🤯47👍1510🔥6😁2👎1🥰1💩1💋1👀1