ch
Feedback

不要被骗子欺骗!Telemetrio 会找到并标记这些频道 👉 如果想查看标记,请订阅 👈

optozorax

optozorax

前往频道在 Telegram

По деловым предложениям: optozorax.work@gmail.com. Связь с админом через личку канала (кнопка в канале слева снизу). Ютуб: https://www.youtube.com/@optozorax Бусти: https://boosty.to/optozorax Патреон: https://www.patreon.com Сайт: optozorax.github.io

显示更多
4 625
订阅者
无数据24 小时
-57 天
+230 天
吸引订阅者
10月 '26
十月 '26
+9
在0个频道中
九月 '26
+50
在0个频道中
Get PRO
八月 '26
+61
在0个频道中
Get PRO
七月 '26
+132
在3个频道中
Get PRO
六月 '26
+113
在0个频道中
Get PRO
五月 '26
+60
在2个频道中
Get PRO
四月 '26
+59
在0个频道中
Get PRO
三月 '26
+101
在0个频道中
Get PRO
二月 '26
+98
在0个频道中
Get PRO
一月 '26
+152
在0个频道中
Get PRO
十二月 '25
+566
在12个频道中
Get PRO
十一月 '25
+72
在2个频道中
Get PRO
十月 '25
+115
在1个频道中
Get PRO
九月 '25
+95
在3个频道中
Get PRO
八月 '25
+145
在0个频道中
Get PRO
七月 '25
+365
在1个频道中
Get PRO
六月 '25
+58
在2个频道中
Get PRO
五月 '25
+104
在0个频道中
Get PRO
四月 '25
+489
在3个频道中
Get PRO
三月 '25
+53
在1个频道中
Get PRO
二月 '25
+66
在0个频道中
Get PRO
一月 '25
+99
在0个频道中
Get PRO
十二月 '24
+57
在0个频道中
Get PRO
十一月 '24
+91
在2个频道中
Get PRO
十月 '24
+105
在1个频道中
Get PRO
九月 '24
+126
在0个频道中
Get PRO
八月 '24
+190
在0个频道中
Get PRO
七月 '24
+153
在4个频道中
Get PRO
六月 '24
+49
在1个频道中
Get PRO
五月 '24
+112
在0个频道中
Get PRO
四月 '24
+121
在4个频道中
Get PRO
三月 '24
+172
在3个频道中
Get PRO
二月 '24
+430
在2个频道中
Get PRO
一月 '24
+24
在1个频道中
Get PRO
十二月 '23
+22
在0个频道中
Get PRO
十一月 '23
+13
在1个频道中
Get PRO
十月 '23
+6
在0个频道中
Get PRO
九月 '23
+19
在0个频道中
Get PRO
八月 '23
+15
在0个频道中
Get PRO
七月 '23
+22
在0个频道中
Get PRO
六月 '23
+62
在0个频道中
Get PRO
五月 '23
+26
在0个频道中
Get PRO
四月 '23
+9
在0个频道中
Get PRO
三月 '23
+21
在0个频道中
Get PRO
二月 '23
+13
在0个频道中
Get PRO
一月 '23
+23
在0个频道中
Get PRO
十二月 '22
+28
在0个频道中
Get PRO
十一月 '22
+48
在0个频道中
Get PRO
十月 '22
+89
在0个频道中
Get PRO
九月 '22
+59
在0个频道中
Get PRO
八月 '22
+170
在0个频道中
Get PRO
七月 '22
+32
在0个频道中
Get PRO
六月 '22
+34
在0个频道中
Get PRO
五月 '22
+10
在0个频道中
Get PRO
四月 '22
+27
在0个频道中
Get PRO
三月 '22
+20
在0个频道中
Get PRO
二月 '22
+31
在0个频道中
Get PRO
一月 '22
+24
在0个频道中
Get PRO
十二月 '21
+20
在0个频道中
Get PRO
十一月 '21
+19
在0个频道中
Get PRO
十月 '21
+25
在0个频道中
Get PRO
九月 '21
+47
在0个频道中
Get PRO
八月 '21
+22
在0个频道中
Get PRO
七月 '21
+30
在0个频道中
Get PRO
六月 '21
+22
在0个频道中
Get PRO
五月 '21
+104
在0个频道中
Get PRO
四月 '21
+20
在0个频道中
Get PRO
三月 '21
+40
在0个频道中
Get PRO
二月 '21
+72
在0个频道中
Get PRO
一月 '21
+33
在0个频道中
Get PRO
十二月 '20
+396
在0个频道中
日期
订阅者增长
提及
频道
11 十月+2
10 十月0
09 十月0
08 十月0
07 十月+1
06 十月+2
05 十月0
04 十月+1
03 十月0
02 十月+1
01 十月+2
频道帖子
Как я замеряю время работы и новая программа. Где-то спустя полгода с момента как я уволился с работы и начал быть видеоблогг
+3
Как я замеряю время работы и новая программа. Где-то спустя полгода с момента как я уволился с работы и начал быть видеоблоггером, я узнал про такой сайт как clockify.me и услышал совет замерять время своей работы. Это реально помогло мне понимать на что я трачу время и меньше прокрастинировать при включённом трекере времени. Это выросло в привычку, и вот я уже 1.5 года пользуюсь этим clockify и замеряю время на нём. В нём есть куча фич, связанных с работой в команде, какими-то выплатами и прочим что мне не нужно. И хочет чтобы я купил подписку ради этих фич. А затем я подумал - а что это я пользуюсь каким-то чужим веб-сервисом для такой важной для меня штуки, которой я пользуюсь почти каждый день, и которая в любой день может умереть или потерять мои данные, сменить дизайн или требовать с меня деньги. Поэтому решил навайбкодить свою альтернативу. Начал с того что собрал все свои данные с этого сайта, просто с веб-страницы, и сохранил их в свой файлик, задизайнил модель данных в виде структур на расте и отправил агента писать код и матчить интерфейс clockify. И вот спустя много недель тестирования могу наконец поделиться этим с вами. Не уверен что хоть кто-то будет пользоваться (а если и будет - можете запрашивать фичи, у меня щас почти бесконечные токены на 200$ подписке Клода). Вот ссылка на программу: https://github.com/optozorax/optotracker (там же лежит скомпилированная версия для Windows) Я добавил много фич от себя, в том числе GitHub-like календарь, где можно увидеть над чем ты работал, что мне прям очень нравится и лично для меня окупает всё затраченное время на тестирование и промтинг. На картинках можете увидеть некоторые мои данные. Так же сегодня с Опусом 5.5 заметно переработал дизайн и добавил всякую прикольную статистику. Эта модель прям меняет вайбкодинг, не надо приглядывать за каждым её шагом, она делает красиво и принимает множество грамотных решений. Рекомендую. Это наталкивает на мысли о том что реально сейчас каждый может навайбкодить себе любое простое приложение и отказаться от какого-то сервиса в пользу своей альтернативы. Дальше вайбкодинг будет только лучше и всё больше сервисов и программ будет терять пользователей за счёт очень дешёвых и качественных альтернатив. Я не знаю как программисты и software-компании будут выживать в этом мире.

2
А вот и новое видео про червоточины! Но пока только на Boosty для подписчиков за 400р :( Видео: https://boosty.to/optozorax/p
А вот и новое видео про червоточины! Но пока только на Boosty для подписчиков за 400р :( Видео: https://boosty.to/optozorax/posts/d1f4a792-6c34-4ea0-af08-b54c5a385bec Пока ищу рекламодателя для английского видео, и как найду и сделаю рекламу, то опубликую всё на ютубе. Так же на бусти есть 3D VR-версия!!! Все кто думал купить - ваш черёд. Я очень старался сделать это настолько 3D-шным, насколько возможно. Пожалуйста пишите ваш фидбэк в комментах к посту или в чатике бустеров. Если что-то не получается, помогу разобраться. VR версия: https://boosty.to/optozorax/posts/e37291a4-77ef-44ac-9774-07573c139c27
2 612
3
Там в стиме вышло демо стрелочек! https://store.steampowered.com/app/5193870/Logic_Arrows_Demo/ Добавил более понятное обучение, персонажа, анимации, темную тему и многое другое. Демо пока больше для новых игроков и для тестов. Сами стрелочки еще добавлены не все. Но полную версию планирую выпустить уже через 2 месяца 🤬 Кстати, там в дискорде организовали конкурс по конструкциям из доступных стрелочек!
3 618
4
https://openai.com/index/collatz-conjecture-solution
3 578
5
Ожидание: сделаю видео в 3D, просто отрендерю сцены в стерео и дело в шоколаде, заработаю миллион денег, Джеймс Кэмерон посмо
Ожидание: сделаю видео в 3D, просто отрендерю сцены в стерео и дело в шоколаде, заработаю миллион денег, Джеймс Кэмерон посмотрит моё видео. Реальность: по сценарию щас кратко показываю код как делается червоточина. Так как видео 3D, то не очень хочется делать просто монтаж, поэтому... Я решил сделать чтобы блоки кода появлялись прямо в 3D сцене рядом со всем... И так с каждой анимацией... +100 лет к времени делания видео...
3 808
6
Недавно я навайбкодил VR-версию моей программы Portal Explorer. Скачать можно тут: https://github.com/optozorax/portal-vr-com+1
Недавно я навайбкодил VR-версию моей программы Portal Explorer. Скачать можно тут: https://github.com/optozorax/portal-vr-compositor/releases/tag/1 (файл portal-vr-windows-x64.zip) Работает к сожалению только для Windows. Запускаете START-PORTAL-VR.bat и у вас показывается "виртуальный экран", на котором видно только окно Portal Explorer, оно полностью дублирует как это окно выглядит на вашем основном мониторе, можете управлять им мышкой и клавиатурой, можете его перемещать, изменять размер, максимизировать. Управление через контроллеры отсутствует. Рендерится оно в стерео-формате, как 3D кино, и ваше положение головы не учитывается. Сделал я это чтобы для следующего видео отлаживать как анимации выглядят в VR шлеме. Да и вообще чтобы поиграться и посмотреть на свои порталы в 3D. Кто помнит, я уже давно сделал стерео-рендеринг в Portal Explorer (https://t.me/optozorax_dev/858), но тогда без VR приложения. А теперь почему я так сделал и в чём моя идея. Моя программа изначально заточена под мышь и клавиатуру. А в VR принято всё управление делать на контроллеры, и я этого не хотел, я хотел лишь минимальную версию 3D. Поэтому подумал что будет проще всего сделать такое управление чтобы выглядело как будто я смотрю на 3D монитор, который умеет показывать разные картинки для правого и левого глаз, которым так же можно управлять мышью и клавиатурой. Как выяснилось, не существует такого API, чтобы можно было рисовать две разные картинки под два разных глаза, и это работало одновременно для реальных 3D мониторов, и для виртуальных десктопов в VR шлеме. Так же не существует такого API чтобы в VR захватывать не всю зону рисования, а нарисовать только своё окно где-то висящим. Поэтому пришлось писать своё. Я сделал минимальную версию, где просто имитируется виртуальный экран, и на нём показывается окно Portal Explorer где оно расположено на реальном экране, и им можно управлять мышью. Я не стал делать чтобы остальная часть рабочего стола рисовалась, ибо это уже переусложнение, и моя цель не в том чтобы сделать свой композитор, а только в том чтобы показать Portal Explorer. Надеюсь в будущем появится хороший API для этого и все программы будут не только поддерживать 3D мониторы, но ещё и у нас появится полноценная VR операционная система, где каждое окно можно расположить в любом месте в пространстве, и каждое окно сможет рисоваться в 3D. Если у вас есть VR шлем, то пишите ваш фидбэк в комментах!
4 371
7
Есть шлем? Купите видео?
3 918
8
Следующее видео будет про червоточины! Вот вам кадры основной сцены. Очень сильно заморочился с миром с двух сторон, чтобы вы+1
Следующее видео будет про червоточины! Вот вам кадры основной сцены. Очень сильно заморочился с миром с двух сторон, чтобы выглядел интересно и было за что глазу ухватиться. Начал с облаков, а затем меня стало не остановить... Ах да, это ещё рисуется path tracing'ом. Помните, я о нём рассказывал? Сценарий уже написан, видео будет примерно на 15 минут, оч простое (по сравнению с моими обычными видео), такое введение в червоточины. С объяснениями и красивыми картинками.
2 944
9
У меня клавиатурная обновка - трекпад. Если вы олд, то наверняка помните что я печатаю на такой странной клавиатуре, про раск+3
У меня клавиатурная обновка - трекпад. Если вы олд, то наверняка помните что я печатаю на такой странной клавиатуре, про раскладку на которой написал большую статью. И вот недавно создатели этой клавиатуры выпустили трекпад, который подключается к клавиатуре и позволяет управлять мышью. К сожалению из коробки у них есть только корпус к их новейшей клавиатуре, а к моему старичку мунляндеру - нет. Поэтому я решил что задизайню свою держалку сам и распечатаю её на 3D принтере. И вот, спустя много дней мучений, задизайнил держалку в FreeCAD (господи, какая же кривая программа), и распечатал её на 3D принтере, это моя первая собственная деталь! Конечно, много ошибок совершил в дизайне, скоро буду их исправлять и напечатаю вторую версию. После этого и опубликую готовую версию куда-нибудь для других людей. А теперь, раз трекпад наконец-то хоть как-то держится рядом с клавиатурой, начну им пользоваться и потом отпишусь вам каково это, можно ли выкидывать мышь уже или нет.
4 675
10
И у ТехноШамана тоже сегодня видос вышел! https://youtu.be/nmduMrJkAwE
4 222
11
А вот и видос https://youtu.be/KKQ3e3B12Lw
5 381
12
Следующее видео на русском готово, осталось перевести на английский и можно выпускать
Следующее видео на русском готово, осталось перевести на английский и можно выпускать
4 181
13
Знаете, мы, программисты, регулярно замеряем ВРЕМЯ исполнения нашего кода. Но практически никогда не замеряем ПАМЯТЬ. За искл
Знаете, мы, программисты, регулярно замеряем ВРЕМЯ исполнения нашего кода. Но практически никогда не замеряем ПАМЯТЬ. За исключением когда мы аллоцируем её слишком много, или когда происходят утечки (и то не всегда замечаем этого). Да и вообще в стандартной библиотеке большинства языков нет никаких инструментов для того чтобы это делать. И вот я недавно задумался об этом и решил как-то начать замерять память, чтобы нарабатывать тут интуицию и находить инсайты по поводу того как оптимизировать код. (на эту мысль в том числе натолкнул кризис ОЗУ в мире 😅) Первый очевидный вариант - сделать штуку, которая обходит структуры данных рекурсивно и считает сколько места они занимают в памяти. Довольно хорошо ложится на мою систему компонентов чтобы знать сколько памяти занимает каждый компонент. Но это довольно дорого по рантайм ресурсам и надо написать много кода (или сложную автогенерацию кода) для каждой используемой структуры данных. Второй вариант я придумал вчера пока мылся в душе. Надо сделать кастомный аллокатор, который пишет в счётчик данные о том сколько байтов аллоцировано и сколько освобождено. Теоретически можно использовать это, чтобы считать сколько каждый компонент в моей программе держит памяти, но это слишком сложно и ненадёжно, всё-таки владение на некоторую память часто убегает в другие места и может оказаться вариант что компонент сейчас держит минус килобайт данных, что является абсурдом. Зато это можно очень надёжно использовать для других замеров: сколько каждый компонент производит аллокаций и какой поток памяти он аллоцирует и освобождает за единицу своего вычисления (просто какой-то временной памяти). Эти штуки вычисляются абсолютно надёжно и они могут что-то говорить про эффективность кода. Ну и я быстренько накодил такое окно (см. картинку), которое показывает эти обе вещи. А ещё показывает сколько программа нааллоцировала в принципе. Пока это 35мб и вполне мало, хотя мне не нравится что простая сцена уже занимает столько памяти. Глядя на окно я думал что моя softbody система вообще практически не производит аллокаций, за исключением начальной аллокации под все частицы итд. А оказывается там делается 4000 аллокаций/деаллокаций каждый кадр... Надо бы изучить что там такое происходит и оптимизировать, может быть это ускорит данный компонент. А вообще меня смущает что я за свою карьеру программистом практически не видел грамотного опыта трекинга памяти, будь то количество аллокаций/деаллокаций внутри какой-то функции, или будь то тупо слежение за тем сколько какой-то объект занимает памяти в ОЗУ. Вот эта идея с аллокатором пришла мне в душе из космоса, ни в статье, ни в твиттере я ничего такого не видел раньше. И ни у меня, ни у моих знакомых нет никакой интуиции что сколько памяти занимает. А вы хоть раз замеряли память своего кода, или количество аллокаций?
4 574
14
Симуляция жидкости с порталами и их искривлением гравитации
Симуляция жидкости с порталами и их искривлением гравитации
3 883
15
Про самосилу и чёрные дыры. В моём последнем видео я рассказывал о явлении само-силы, которое обнаружил совершенно случайно, когда считал как негативный портал телепортирует гравитацию. Само-сила - это явление, когда гравитация тела создаёт силу, которая толкает это же тело, за счёт искривления пространства. У меня в порталах есть точка сингулярности на границах порталов, где угол в точке равен не 360 градусов, а все 720. И именно от этой точки создавалась отталкивающая само-сила, потому что она вела себя как точка с большой кривизной пространства. Её можно сгладить, чтобы она не была сингулярностью, и эффект будет оставаться примерно такой же. И вот сегодня я задумался - а насколько реальна эта вещь? А то я всё думаю что мои портальчики - это лишь спекуляции и фиктивная физика, и никогда даже не задумывался о том чтобы это было применимо в реальности. Так вот, само-сила от искривления пространства существует в реальности. Она работает как для гравитации, так и для электромагнетизма. Последнее совершенно неожиданно, ведь я то рассчитывал гравитацию, и само-силу обнаружил для неё, но электромагнетизм работает по похожим принципам. Проблема в том что само-сила электромагнетизма настолько слаба, что она ни в каких ситуациях не может показать хоть какой-то значимый вклад. Разве что только рядом с червоточиной нанометрового размера само-сила электромагнетизма может хоть чуток влиять на химию. А вот гравитационная само-сила намного более сильна и наверное единственное место где её можно достоверно обнаружить - это при вращении массивных тел рядом с чёрной дырой. Даже в этом случае само-сила довольно слаба, но она оказывает измеримый эффект на тысячах и десятках тысяч оборотов. И это как раз исследуют люди, которые занимаются лазерным интерферометром (это тот что зафиксировал гравитационные волны), который будет в космосе - LISA. Вот даже есть такое чтиво на эту тему: https://the-center-of-gravity.com/documents/333/1805.10385v2.pdf (я прочитал только абстракт)
4 939
16
В качестве прокрастинации от монтажа видео я начал немного играться с path tracing'ом червоточин (!). И вот захотел сделать а+7
В качестве прокрастинации от монтажа видео я начал немного играться с path tracing'ом червоточин (!). И вот захотел сделать анимацию того как меняется фокусное расстояние камеры рядом с червоточиной, чтобы увидеть как бы она выглядела в реальности, когда мы своими глазами меняем фокусное расстояние. Такое 100% никто раньше не делал. И вот для этого нужно ОЧЕНЬ много сэмплов, потому что очень много размытия из-за расфокуса. Поэтому я навайбкодил программу, которая берёт мой Portal Lab и рендерит эту анимацию в сырые float буферы каждого цвета, и в этих буферах аккумулирует цвета. И работает она так что она по кругу бегает по этим буферам и добавляет и добавляет сэмплов чтобы я мог её запускать много-много ночей подряд чтобы получать менее шумную картинку. И вот я оставил эту программу работать в течении 20 часов (на моей 5080), пока скалолазался, гулял, спал. Но есть одна проблема... Сегодня я решил посмотреть превью этих буферов и поставил их отрисовку в png. Смотрю на кадры, а они как будто все одни и те же, как будто фокус не меняется. Дождался пока сырые буферы отрисуются в png (это было долго), смотрю и ВСЕ кадры одинаковые, с одним и те же фокусом, анимации никакой нет, все эти 20 часов я рендерил ПЕРВЫЙ КАДР! ААААА!! Начал грешить на кодекса что он неправильно написал код рендеринга и отправил его разбираться. Но как говорится, в расследовании преступления главное не выйти на самого себя. Что и прозошло, баг был в моей сцене, я забыл анимировать изменение фокуса... Ну ладно, чего уже добру пропадать, раз я рендерил ОДИН ГРЁБАНЫЙ КАДР целых 20 часов, давайте хоть проведу аналитику насколько количество сэмплов влияет на то как выглядит итоговый кадр. Объединю их все и построю графики. For your information: когда рендеришь path tracing'ом, то главная операция что ты делаешь - это просто берёшь рандомный луч и пускаешь его и записываешь цвет. Поэтому чем больше рандомных лучей, тем лучше. Поэтому если все мои кадры использовали независимый рандом, то их можно объединить и получить универсальный супер-пупер классный кадр. Значит я рендерил по 32 сэмпла каждый проход по всем 720 кадрам, и уже успело случиться 10 таких проходов, поэтому каждый кадр у меня имеет 320 сэмплов. Далее, когда я объединяю эти кадры, для аналитики, то шаг будет равен 320 сэмплов. Максимальное количество сэмплов - 223_200 😵‍💫 Картинка будет показывать очень размытую червоточину, потому что с этого кадра начиналась анимация, там должен был меняться фокус чтобы фокусироситься на червоточине и за ней. Вот вам картинки насколько шумно выглядит при размном количестве сэмплов (кадры без сжатия будут в комментариях). Я думаю остановлюсь где-то на 5к-10к сэмплов в своей анимации. И ещё в комментариях приложу прикольные графики!
4 690
17
Мне кажется что все эти споры про LLM не имеют смысла? Вроде как суть кодящих LLM-агентов (с точки зрения самих компаний) не в том чтобы заменить программистов, а в том, чтобы ускорить кодинг и ресёрч новых архитектур нейронок, которые станут настоящим AGI. OpenAI как раз высказывала что к сентябрю этого года они хотят сделать intern ML researcher на основе своих моделей, и они активно в этом направлении развиваются. А полноценного автоматизированного исследователя хотят к марту 2028. Я уверен на 90% что в ближайшие 5-10 лет найдут новую архитектуру искусственного интеллекта (тут я намеренно использую этот термин), который способен обучаться как человек: читая книгу, делая примеры, программируя; на собственном опыте, без поглощения всех данных интернета. И тогда все споры про LLM пойдут в топку, поскольку эта новая сущность будет принципиально другой, сможет на 100% заменить некоторых людей и не будет иметь тех спорных свойств, что имеют текущие LLM. Точно ли LLM - это то, на что нужно обращать столько внимания сейчас?
3 024
18
Что нового я узнал про GPU В своей программе я добавил замер времени над каждым компонентом (рис. 1). Это очень полезно не то+1
Что нового я узнал про GPU В своей программе я добавил замер времени над каждым компонентом (рис. 1). Это очень полезно не только для оптимизации кода компонента на Rust, но ещё и чтобы подобрать параметры когда симуляция/визуализация выглядят и работают ОК, но не тратят слишком много времени на вычисления. Среди этих параметров могут быть: точность, количество под-итераций за один фрейм, размер итд. Я очень рад что добавил это, так как теперь могу сразу видеть степень лага и уже пытаться оптимизировать сцены если лаг меня не устраивает. Но после недавнего рефакторинга системы рисования /885, у меня также появились компоненты, которые делают какую-то работу на GPU, и оказывается её не видно в обычном CPU-таймере, и я начал разбираться, почему. Если вы используете OpenGL, то его вызовы выглядят так, как будто они исполняются вот-прям-щас: glBindFramebuffer(GL_FRAMEBUFFER, framebuffer); glUseProgram(shader_program); glBindVertexArray(triangle_vao); glDrawArrays(GL_TRIANGLES, 0, 3); Как будто сейчас треугольник с шейдером и нарисовался в ваш фреймбуффер. И вот я узнал что на самом деле это не так, и это обман чтобы набрать классов. Когда вы вызываете эти методы, то они складываются в память и в памяти строится буфер команд. Делается это так, потому что связь CPU <-> GPU очень медленная. Поэтому лучше один раз отправить всю инфу, вместо того чтобы ждать. И происходят все вычисления на GPU обычно в конце фрейма, когда вам уже надо всё нарисовать на экране. И если поставить обычный CPU-таймер вокруг этих команд, то он покажет ничтожное время, когда на самом деле ваша программа может очень сильно лагать. Тогда как измерить время? Можно ли гранулярно измерять время работы каждого компонента, а не только FPS? На самом деле можно, и это вторая вещь про которую я узнал. Оказывается существуют особые GPU-таймеры, которые можно вставить посреди ваших команд и затем, на следующем кадре получить время их исполнения. Драйвер сам будет правильно замерять время на GPU. Главное ограничение - нельзя чтобы хоть один таймер пересекался с другим :(. Там надо использовать другой более муторный API glQueryCounter. Вот я реализовал это (рис. 2), и недавно добавил камеру, которая может бегать по поверхности, которая задаётся шейдером на GPU. Чтобы это работало, мне надо отправлять инфу про камеру в шейдер, затем вызывать его чтобы он спроецировал камеру на эту поверхность, и забирать эту инфу из шейдера. Делаю я это через рисование в текстуру 2x1 пикселей. Очень маленькая текстура, вычисления занимают очень мало времени. Но по недавно добавленному GPU-таймеру заметил что время в этой функции на GPU занимает около 2 миллисекунд (ЧТО ОЧЕНЬ МНОГО). Как такая простейшая операция может длиться так долго? И тут ещё одна вещь про которую я узнал. По сути в этом компоненте камеры мне нужно считать пиксели из фреймбуффера на процессор чтобы спроецировать CPU-камеру прям щас, но буфер исполнения на GPU у нас асинхронный, тогда что делать? Заблокировать всё нафиг и исполнить этот буфер команд, конечно же. Поэтому в этом компоненте происходит вся работа что зашедулили другие компоненты, и это отражается как на таймере CPU (потому что ждём), так и на таймере GPU. Так что нужно быть аккуратным когда вы вызываете блокирующие методы типо glReadPixels. Как вариант, можно получать эту инфу на следующем кадре, тогда будет совсем без ожидания, но и информация будет опаздывать на один кадр. Но я не стал так сильно заморачиваться. А ещё я замерил время переноса информации с GPU на CPU чтобы считать эту 2x1 текстуру, и это получается 20 микросекунд. Это очень много для такой простейшей операции. Так что если это возможно, то лучше все вычисления GPU-данных делать на GPU, и минимизировать их отправку на процессор. Я это испытал на себе.
3 849
19
Что делать с навайбкоженными Pull Request'ами? Представьте ситуацию - вы разработчик open-source кода и к вам прилетает PR, где автор заявляет что использовал какую-то нейросеть для написания этого кода. Что делать с таким PR? Отвергнуть просто из-за самого факта использования нейронки, или пытаться разобраться в нём и потратить на него такие же усилия, как будто его написал человек? Недавно я сформулировал какие-то критерии для себя, поскольку я сам пишу 99% кода с нейронками. Главный критерий для меня - это усилия: сколько ты их потратил чтобы сделать этот PR? Этот критерий показывает сколько тебе, автору кода, стоит примерно приложить усилий на этот PR. Если ты просто отправил в нейронку один промт и потом сразу создаёшь PR, то зачем мне это надо? Это слоп. Скинь мне этот промт, я лучше навайбкожу эту же функциональность, и у моей нейронки всё будет в контексте, чем когда я стартану с твоего PR. И ещё не факт что ты используешь самую лучшую нейронку. Если ты сначала отправил нейронку написать тест на твою проблему/фичу, затем убедился что проблема воспроизводится, и только затем отправил нейронку работать чтобы сделать фикс на основе этого теста - то это очень хорошо. Я с огромной вероятностью приму тест, а приму ли фикс уже зависит от кода, ибо нейронки любят фиксить вещи самым ленивым образом, который делает хуже в долгосрочной перспективе. Здесь чуть больше усилий принято. И тут мы подходим к ультимативному подходу - а что если ты сначала сделал тест, затем отправил несколько разных нейронок независимо фиксить эту проблему, затем ревьюить друг друга, выбрал лучшее из их решений, читал код, разбирался в нём, запускал, просил нейронки поправить код на более идиоматичный и красивый, спрашивал нейронок "действительно ли это лучший подход, или можно сделать ЕЩЁ лучше?"; то тогда этот PR имеет сильно больше ценности, чем самый первый пример из этого поста, даже если ни одна строчка кода не была написана человеком. Всегда можно заставлять нейронки думать, смотреть под разными углами, жечь токены, чтобы в итоге получить более качественный продукт. Особенно если быть human in the loop, который читает ответы нейронок и принимает итоговые решения. Последний пример - это то что я иногда сам стараюсь делать, когда мне прям очень надо поправить что-то в чужом коде. Без нейронок я бы наверное не добрался бы даже сделать PR. Конечно, прежде чем делать какую-то большую фичу всегда лучше поговорить с мейнтейнером, ибо у него есть своё видение насчёт долгосрочного развития проекта. Ещё мне кажется что было бы неплохо публиковать чаты сессий с кодинг агентами. Благодаря этому либо я могу от тебя научиться как пользоваться нейронками лучше, либо я могу научить тебя чему-то новому в промтинге. Так же я вижу отличную нишу для полностью навайбкоженных PR'ов в которых отвратительное качество кода. Это можно использовать как пример реализации. Скажем ты хочешь какую-то нетривиальную фичу в программе, и объяснять её в issues очень долго и сложно, может даже надо рисовать. Вместо этого ты можешь её навайбкодить и затем довести до нужного тебе рабочего состояния последующими промтами. Нейронки прекрасно справляются с тем чтобы сделать что-то рабочее, но не всегда справляются с тем чтобы написать хороший код. И можно показать этот PR со словами "зацени как я вижу", мейнтейнер может посмотреть, потыкаться и закрыть этот PR, так как такой слоп нельзя принимать (и автор этого слопа должен это понимать). Но в результате мейнтейнер будет лучше понимать эту фичу, как её видит пользователь, и у него уже будет прототип одной из реализаций, из которой он может черпать вдохновение, и теперь он может сделать эту фичу намного лучше. Я бы хотел видеть больше таких PR'ов у себя, где даже не-программист берёт и создаёт такой PR просто чтобы показать мне как может быть, и может ускорить появление такой фичи в моей программе.
3 154
20
Я в своем познании настолько преисполнился, что я как будто бы уже сто триллионов миллиардов лет проживаю на триллионах и три
Я в своем познании настолько преисполнился, что я как будто бы уже сто триллионов миллиардов лет проживаю на триллионах и триллионах таких же планет, как эта Земля, мне этот мир абсолютно понятен, и я здесь ищу только одного - покоя, умиротворения и вот этой гармонии, от слияния с бесконечно вечным, от созерцания великого фрактального подобия и от вот этого замечательного всеединства существа, бесконечно вечного, куда ни посмотри, хоть вглубь - бесконечно малое, хоть ввысь - бесконечное большое, понимаешь?
3 595
optozorax - Telegram 频道 @optozorax_dev 的统计与分析