Такое много где встречается в более‑менее толстых редакторах.
Тут ещё важна фишка, что в одних случаях выражение считается разово, а в других задает постоянную зависимость одной величины от другой.
Задание высоты картинки пропорционально от ширины (Photoshop)
Слева формула считается на каждый кадр, справа - один раз (AfterEffects)
Величина считается разово (CorelDraw)
Формула пересчитывается каждый кадр (Tesseract)
В САПРах (тот же Inventor) обычно система выражений самая навороченная, так как там часто поддерживаются единицы измерения, а не только безразмерные величины.
Очень интересно, хотелось бы взглянуть. Есть ли возможность где‑то посмотреть/скачать? Или хотя бы ссылки какие‑нибудь.
В своё я тоже напихал много новаторства, даже снабдил его 3ds maxовым роликом. Но с точки зрения рациональности эта штука скорее надругательство над ТРИЗ, ибо нафарширована просто всем, что мне тогда пришло в голову :P
Некоторые фичи
Заголовок окна является полем ввода
Экранную клавиатуру можно отделить/скрыть
Числа в поле ввода можно скроллить
Раскладка ввода всегда правильная (sin(x) вместо ышт(ч))
Знак умножения можно не писать: 5log(3;2)
Автокомплит, подсветка и подчёркивание ошибок
Светлая тема с подсветкой, историей и автокомплитом
Вызов по горячей клавише
Системы счисления через префиксы
Одно время работали константы $ и €, равные текущему курсу доллара и евро в рублях. Поскольку знак умножения писать не нужно, можно было просто писать 4$ или $4, и это переводилось в рубли, а обратное преобразование делалось делением, например 5000/$. На деле эти «константы» являются процедурами VB, которые каждый раз скачивают текущий курс. $ вводился через $hift+4, а €через €trl+4
Настройка скинов, звуков и прочего. Есть нативный стиль Win95 через WinAPI
Анимации можно отключить, если бесят
Одно время там работала система обратной связи. В целом, оно либо очень нравилось, либо наоборот, очень не нравилось, то есть была явная поляризация. Так что новаторство да, это та ещё рулетка :)
Надстройка над VBScript. Добавлен оператор Return + статические события + #define через оператор === + некоторые плюшки. Вообще там всё крутится вокруг скриптового движка.
Первоначально время было экспериментом, но потом вошло в релиз
А вот системы счисления парсятся нативно, т.к. слишком уж сложно получилось
Вычисляет оно так:
С помощью одного скрипта выражение подготавливается (замена констант, подмена тригонометрических функций для того чтобы работало переключение градусы/радианы, оператор модуля «|» и прочее)
Генерируется код объявления пользовательских констант и функций
Эти константы и функции + обработанное выражение вставляются в определенное место в другом скрипте, и этот скрипт запускается, выдавая ответ через callback
Это работает и при построении функции, и при простых расчётах. Поэтому получается довольно гибко — можно просто добавлять константы/функции через стандартный интерфейс, а можно вообще влезть в мозг и добавить собственный синтаксис.
Давно уже обновляю что‑либо только если у меня возникает потребность в каком‑то изменении в ПО и я точно знаю, что в обновлении ПО это нужное мне изменение есть + высоковероятно, что ничего другое не сломалось. В остальных случаях лучше не обновлять (если, конечно, дело не касается ИБ).
Вот, например, у софта от клавиатуры уже давненько висит вот этот вот баннер.
Угадайте что произойдёт, если я буду прогрессивным и современным, и обновлю ПО на новую, совершенную версию?
Клавиатура полностью перестаёт работать (не расширенные функции, а вообще вся целиком), ПО висит в автозагрузке, завязывает на себя все нажатия клавиш и тупо зависает. Чтобы восстановить работоспособность, нужно подключить отдельно проводную клавиатуру, загрузиться через безопасный режим, стереть в 0 новое стабильное высокотехнологичное современное совершенное ПО, вручную почистить реестр, почистить настройки в разных папках, потом перезагрузиться, потом долго‑долго искать где скачать никому ненужную нестабильную устаревшую версию ПО, установить его и настроить заново. Только для того, чтобы когда ты нажимаешь клавиши, вводились буквы. Ну, чтобы вернуться к тому, что было.
ПО для звуковой карты и видеокарты это тоже касается, но в меньшей степени.
Я помню как сделал в 11 классе калькулятор, и мне кто‑то сказал, что жрать для калькулятора 30 мб ОЗУ это чудовищный оверхед :) При том, что в эти 30 мб помещалась туча функционала, встроенная IDE, анимация и графика, там даже цифры с анимацией вводились.
Нам нужно, чтобы то, что хранит информацию, и то, что её обрабатывает, было одним и тем же, а не разными устройствами («память и процессор»). Мемристоры — это одна из форм технологий, на которых можно такое сделать
Интересно получилось, и довольно контринтуитивно. Кажется, что кодирование H264 аппаратно ускоряется, и проще его снимать и сразу стримить на серв, попутно впихивая в пакеты данных инфу с GPS и всяких акселерометров. Никогда бы не подумал, что сохранение фоток в jpeg будет оптимальнее. Но практика — критерий истины, как говорится.
Делал в своё время очень тяжелое ПО под реалтайм обработку видео, но на десктопе (кстати там есть возможность писать видео в PNG/JPG сиквенс). Работа с устройствами захвата видео/аудио всегда сопровождалась даже не танцами с бубном, а целым карнавалом. Особенно если это устройства из разных миров (какой‑нибудь SDI Blackmagic, вебкамера и 1394, и все, естественно, снимают в разных форматах — вообще туши свет).
И мне как‑то раньше казалось, что в мобильных ОС учли весь этот опыт, и там должно всё быть как‑то цивилизованнее. В конце концов, там камера является неотъемлемой частью системы.
Но прочитав статью, я понял, что там те же грабли, только потехнологичнее :)
непонятно связан ли HDR с цветом, ведь HDR расшифровывается как расширенные динамический диапазон, а ДД - это количество света (обычно измеряется в степенях двойки, 2⁸ - 8 стоп (steps) , 2¹⁰ - 10 стоп)
Ну, имхо, с технической стороны дисплея всё лаконично — у нас нет просто «света», у нас, как минимум, R, G и B. И мы можем одни компоненты ставить в расширенный диапазон, другие в обычный. А можем все. И за счёт этого у нас возможны соотношения между R, G и B, которые раньше на практике не использовались из‑за технических ограничений, даже не смотря на то, что эти соотношения формально входили в цветовое пространство. А отличия между R, G и B (линейные/нелинейные) — это и есть цвет.
Недавно мелькала инфа про опыты, где стимулировали лазером сетчатку глаза и заставили её в зрительную кору послать цвет, который при обычном использовании глаза увидеть невозможно.
У пяти добровольцев возникло ощущение цвета, который они никогда не видели ранее: описывали его как «сине‑зелётый (blue‑green) с беспрецедентной насыщенностью».
Авторы назвали этот цвет “olo”, из обозначения (0,1,0) в LMS-координатах (L=0, M=1, S=0) — то есть идеализированная активация только M-конусов.
По‑хорошему просится AI тонмаппер. Чтобы я на вход пихать 32бит/канал линейный оригинал, на выходе он выдаваёт либо LUT, либо карту преобразований каждого пикселя. Ещё можно на вход кушать, помимо линейного rgba вывода, буфер id объектов, буфер теней/бликов и вот это всё, чтобы точнее было.
То есть не мыльница «картинка → картинка», а корректор, сохраняющий данные о цвете и возможность вмешаться обработку. Сейчас вроде появляются модели с поддержкой 16бит/канал, но их мало.
Вишенкой на торте была бы возможность файнтюнинга модели под конкретный стиль автора и/или контента.
Я когда‑то гонял у себя софт Mandelbulb 3D, который позволет летать внутри 3D фракталов. Не всё так просто. Точность. Нам надо лететь внутри всё медленнее и всё точнее, и со все большей точностью различать всё меньшие детали — мы же во всё меньшие и меньшие закоулки закоулков закоулков фрактала забираемся.
И даже если положение камеры задаётся числами float64, мы, забираясь внутрь такого фрактала, очень быстро исчерпаем точность своего местоположения. И то что это числа с плавающей запятой нам не поможет. Камера начнёт дёргаться, из поверхностей полезут зубчатые артефакты. Бесконечно углубляться не получится.
Я думаю, тут надо юзать дроби на длинной арифметике. А это существенно всё усложняет, если мы хотим добиться вменяемой скорости.
Офигенно! Захотелось что‑то подобное с интерактивной отладкой прикрутить в своём поделии (тоже эксперимент :)), но боюсь тут работы будет на полгода, и оно точно превратится в IDE.
Если добавить все функции, интерфейс станет слишком перегружен, а без них пользоваться неудобно. Это явный признак, что надо переосмыслить подход.
Насколько я понял, весь эксперимент как раз и является сам по себе переосмыслением классического подхода не то что к отладке, а вообще к процессу разработки.
Имхо: все‑не все, но многие из классических функций сюда впихнуть можно без сваливания в «обычный IDE», просто нужно будет продолжать всё переосмысливать, и думать над каждой фичей отдельно и на свежую голову. Вполне вероятно, что некоторые функции просто отвалятся за ненадобностью, а другие сольются в одну.
Может быть здесь не будет лишним какой‑нибудь сопровождающий отладку AI‑ассистент. Он может быть даже невидимым, то есть это не тупо какой‑то очередной чат, а просто повышенная «умность» среды, когда она сама понимает, на что обратить внимание и какие значения куда вывести, какие действия ненавязчиво предложить в конкретно этой ситуации.
Есть такое. Насколько критично — дело вкуса, мне например даже стандартные настройки ClearType норм. Для интереса сфоткал обычное окно WinForms на микроскоп:
Segoe UI; 9pt на LG OLED C1 со стандартными настройками ClearType
Средний зум (сфоткано на телефон)
Мне лично не мешает, разницы с обычными мониторами в этом плане не увидел (до этого была тройка BenQ XL2410T — TN но с нормальными субпикселями RGB), но некоторым может не зайти — в этом случае нужно юзать софт, вправляющий мозг субпиксельному сглаживанию (MacType Wizard, например), но только если используется масштаб 100%, если больше — то уже некритично.
Имхо тут важно ещё чтобы был труъ ЭЛТ дисплей со смягчением‑заветкой и чересстрочной развёрткой, потому что ретроигры затачивались под неё и применялись разные приёмы, которые адекватно выглядят только на ЭЛТ.
И тут есть интересная мысль — а что если управление лучом полностью перенести на FPGA? То есть горизонтальная/вертикальная развёртка, фокус, интенсивность — всем можно управлять кастомно, не ограничивась классической горизонтально‑вертикальной чересстрочкой. Можно хоть фигуры Лиссажу вырисовывать. А можно чересстрочкой рисовать растровый фон а потом поверх вырисовывать лучом векторные спрайты. Маска цветных ЭЛТ конечно мешать будет, но всё равно получается интересно.
Если монитор SDR — лучше просто убавить яркость или сделать шрифт не белым, а светло‑серым. А если HDR, то включить HDR в настройках ОС и отрегулировать эту штуку
В Windows 11 оно выглядит так
Фокус в том, что если у Вас олед HDR, а в настройках ОС оно выключено, и с компа идёт SDR‑картинка, то экран может пытаться SDR‑контент с компа растянуть на весь HDR‑диапазон. От этого белые области в интерфейсах превращаются в прожекторы, что не нормально.
Такое много где встречается в более‑менее толстых редакторах.
Тут ещё важна фишка, что в одних случаях выражение считается разово, а в других задает постоянную зависимость одной величины от другой.
В САПРах (тот же Inventor) обычно система выражений самая навороченная, так как там часто поддерживаются единицы измерения, а не только безразмерные величины.
Т.е. рендеринг гипертекста тоже кастом? Круто! Есть ли возможность где‑то скачать и потыкать?
Очень интересно, хотелось бы взглянуть. Есть ли возможность где‑то посмотреть/скачать? Или хотя бы ссылки какие‑нибудь.
В своё я тоже напихал много новаторства, даже снабдил его 3ds maxовым роликом. Но с точки зрения рациональности эта штука скорее надругательство над ТРИЗ, ибо нафарширована просто всем, что мне тогда пришло в голову :P
Некоторые фичи
Заголовок окна является полем ввода
Экранную клавиатуру можно отделить/скрыть
Числа в поле ввода можно скроллить
Раскладка ввода всегда правильная (sin(x) вместо ышт(ч))
Знак умножения можно не писать: 5log(3;2)
Автокомплит, подсветка и подчёркивание ошибок
Вызов по горячей клавише
Системы счисления через префиксы
Одно время работали константы $ и €, равные текущему курсу доллара и евро в рублях. Поскольку знак умножения писать не нужно, можно было просто писать 4$ или $4, и это переводилось в рубли, а обратное преобразование делалось делением, например 5000/$. На деле эти «константы» являются процедурами VB, которые каждый раз скачивают текущий курс. $ вводился через $hift+4, а € через €trl+4
Настройка скинов, звуков и прочего. Есть нативный стиль Win95 через WinAPI
Анимации можно отключить, если бесят
Одно время там работала система обратной связи. В целом, оно либо очень нравилось, либо наоборот, очень не нравилось, то есть была явная поляризация. Так что новаторство да, это та ещё рулетка :)
Так или иначе, оно постепенно расползлось по разным каталогам софта.
Надстройка над VBScript. Добавлен оператор Return + статические события + #define через оператор === + некоторые плюшки. Вообще там всё крутится вокруг скриптового движка.
Вычисляет оно так:
С помощью одного скрипта выражение подготавливается (замена констант, подмена тригонометрических функций для того чтобы работало переключение градусы/радианы, оператор модуля «|» и прочее)
Генерируется код объявления пользовательских констант и функций
Эти константы и функции + обработанное выражение вставляются в определенное место в другом скрипте, и этот скрипт запускается, выдавая ответ через callback
Это работает и при построении функции, и при простых расчётах. Поэтому получается довольно гибко — можно просто добавлять константы/функции через стандартный интерфейс, а можно вообще влезть в мозг и добавить собственный синтаксис.
Ну он инженерный, графики функций, программирование‑интегрирование, кастомизация, вот это всё
Немного скринов
Давно уже обновляю что‑либо только если у меня возникает потребность в каком‑то изменении в ПО и я точно знаю, что в обновлении ПО это нужное мне изменение есть + высоковероятно, что ничего другое не сломалось. В остальных случаях лучше не обновлять (если, конечно, дело не касается ИБ).
Вот, например, у софта от клавиатуры уже давненько висит вот этот вот баннер.
Угадайте что произойдёт, если я буду прогрессивным и современным, и обновлю ПО на новую, совершенную версию?
Клавиатура полностью перестаёт работать (не расширенные функции, а вообще вся целиком), ПО висит в автозагрузке, завязывает на себя все нажатия клавиш и тупо зависает. Чтобы восстановить работоспособность, нужно подключить отдельно проводную клавиатуру, загрузиться через безопасный режим, стереть в 0 новое стабильное высокотехнологичное современное совершенное ПО, вручную почистить реестр, почистить настройки в разных папках, потом перезагрузиться, потом долго‑долго искать где скачать никому ненужную нестабильную устаревшую версию ПО, установить его и настроить заново. Только для того, чтобы когда ты нажимаешь клавиши, вводились буквы. Ну, чтобы вернуться к тому, что было.
ПО для звуковой карты и видеокарты это тоже касается, но в меньшей степени.
Я помню как сделал в 11 классе калькулятор, и мне кто‑то сказал, что жрать для калькулятора 30 мб ОЗУ это чудовищный оверхед :) При том, что в эти 30 мб помещалась туча функционала, встроенная IDE, анимация и графика, там даже цифры с анимацией вводились.
Нам нужно, чтобы то, что хранит информацию, и то, что её обрабатывает, было одним и тем же, а не разными устройствами («память и процессор»). Мемристоры — это одна из форм технологий, на которых можно такое сделать
Интересно получилось, и довольно контринтуитивно. Кажется, что кодирование H264 аппаратно ускоряется, и проще его снимать и сразу стримить на серв, попутно впихивая в пакеты данных инфу с GPS и всяких акселерометров. Никогда бы не подумал, что сохранение фоток в jpeg будет оптимальнее. Но практика — критерий истины, как говорится.
Делал в своё время очень тяжелое ПО под реалтайм обработку видео, но на десктопе (кстати там есть возможность писать видео в PNG/JPG сиквенс). Работа с устройствами захвата видео/аудио всегда сопровождалась даже не танцами с бубном, а целым карнавалом. Особенно если это устройства из разных миров (какой‑нибудь SDI Blackmagic, вебкамера и 1394, и все, естественно, снимают в разных форматах — вообще туши свет).
И мне как‑то раньше казалось, что в мобильных ОС учли весь этот опыт, и там должно всё быть как‑то цивилизованнее. В конце концов, там камера является неотъемлемой частью системы.
Но прочитав статью, я понял, что там те же грабли, только потехнологичнее :)
Ну, имхо, с технической стороны дисплея всё лаконично — у нас нет просто «света», у нас, как минимум, R, G и B. И мы можем одни компоненты ставить в расширенный диапазон, другие в обычный. А можем все. И за счёт этого у нас возможны соотношения между R, G и B, которые раньше на практике не использовались из‑за технических ограничений, даже не смотря на то, что эти соотношения формально входили в цветовое пространство. А отличия между R, G и B (линейные/нелинейные) — это и есть цвет.
Недавно мелькала инфа про опыты, где стимулировали лазером сетчатку глаза и заставили её в зрительную кору послать цвет, который при обычном использовании глаза увидеть невозможно.
По‑хорошему просится AI тонмаппер. Чтобы я на вход пихать 32бит/канал линейный оригинал, на выходе он выдаваёт либо LUT, либо карту преобразований каждого пикселя. Ещё можно на вход кушать, помимо линейного rgba вывода, буфер id объектов, буфер теней/бликов и вот это всё, чтобы точнее было.
То есть не мыльница «картинка → картинка», а корректор, сохраняющий данные о цвете и возможность вмешаться обработку. Сейчас вроде появляются модели с поддержкой 16бит/канал, но их мало.
Вишенкой на торте была бы возможность файнтюнинга модели под конкретный стиль автора и/или контента.
ЕМНИП этот фак предназначался Nvidia. Ну и что теперь?
Я когда‑то гонял у себя софт Mandelbulb 3D, который позволет летать внутри 3D фракталов. Не всё так просто. Точность. Нам надо лететь внутри всё медленнее и всё точнее, и со все большей точностью различать всё меньшие детали — мы же во всё меньшие и меньшие закоулки закоулков закоулков фрактала забираемся.
И даже если положение камеры задаётся числами float64, мы, забираясь внутрь такого фрактала, очень быстро исчерпаем точность своего местоположения. И то что это числа с плавающей запятой нам не поможет. Камера начнёт дёргаться, из поверхностей полезут зубчатые артефакты. Бесконечно углубляться не получится.
Я думаю, тут надо юзать дроби на длинной арифметике. А это существенно всё усложняет, если мы хотим добиться вменяемой скорости.
Офигенно! Захотелось что‑то подобное с интерактивной отладкой прикрутить в своём поделии (тоже эксперимент :)), но боюсь тут работы будет на полгода, и оно точно превратится в IDE.
Насколько я понял, весь эксперимент как раз и является сам по себе переосмыслением классического подхода не то что к отладке, а вообще к процессу разработки.
Имхо: все‑не все, но многие из классических функций сюда впихнуть можно без сваливания в «обычный IDE», просто нужно будет продолжать всё переосмысливать, и думать над каждой фичей отдельно и на свежую голову. Вполне вероятно, что некоторые функции просто отвалятся за ненадобностью, а другие сольются в одну.
Может быть здесь не будет лишним какой‑нибудь сопровождающий отладку AI‑ассистент. Он может быть даже невидимым, то есть это не тупо какой‑то очередной чат, а просто повышенная «умность» среды, когда она сама понимает, на что обратить внимание и какие значения куда вывести, какие действия ненавязчиво предложить в конкретно этой ситуации.
Да.
Легко.
Сгенерируют на LLM форумы где общаются LLM и модерируются LLM, статьи пишутся LLM и комментируются LLM
Повесят шильдик «не ИИ» ведь это же не ИИ, а статистический угадыватель слов :)
Есть такое. Насколько критично — дело вкуса, мне например даже стандартные настройки ClearType норм. Для интереса сфоткал обычное окно WinForms на микроскоп:
Средний зум (сфоткано на телефон)
Мне лично не мешает, разницы с обычными мониторами в этом плане не увидел (до этого была тройка BenQ XL2410T — TN но с нормальными субпикселями RGB), но некоторым может не зайти — в этом случае нужно юзать софт, вправляющий мозг субпиксельному сглаживанию (MacType Wizard, например), но только если используется масштаб 100%, если больше — то уже некритично.
Мода на ЭВМ уже проходит, это тупиковая ветвь © кое-кто в 1970х
Имхо тут важно ещё чтобы был труъ ЭЛТ дисплей со смягчением‑заветкой и чересстрочной развёрткой, потому что ретроигры затачивались под неё и применялись разные приёмы, которые адекватно выглядят только на ЭЛТ.
И тут есть интересная мысль — а что если управление лучом полностью перенести на FPGA? То есть горизонтальная/вертикальная развёртка, фокус, интенсивность — всем можно управлять кастомно, не ограничивась классической горизонтально‑вертикальной чересстрочкой. Можно хоть фигуры Лиссажу вырисовывать. А можно чересстрочкой рисовать растровый фон а потом поверх вырисовывать лучом векторные спрайты. Маска цветных ЭЛТ конечно мешать будет, но всё равно получается интересно.
А что у Вас с настройками HDR?
Если монитор SDR — лучше просто убавить яркость или сделать шрифт не белым, а светло‑серым. А если HDR, то включить HDR в настройках ОС и отрегулировать эту штуку
Фокус в том, что если у Вас олед HDR, а в настройках ОС оно выключено, и с компа идёт SDR‑картинка, то экран может пытаться SDR‑контент с компа растянуть на весь HDR‑диапазон. От этого белые области в интерфейсах превращаются в прожекторы, что не нормально.