Возможно, там чисто юридические заморочки? Скажем, туя не лицензировала что-нибудь, а яндекс решил, что да и не больно-то и хотелось...
В случае с акарой, например, ситуация такая. Зигби-хаб и некоторые датчики акары не находятся в списке официально поддержанных устройств, и всё. Обе техподдержки говорят "не наше собачье дело". Поэтому оно работает на честном слове на половине возможностей.
Беда в том, что нейрослоп, во-первых, персонализирован, а во-вторых, персонализирован непойми для кого.
По дефолту иишница способна наврать на самых серьёзных щах, и если ты не эксперт, то хрен поймёшь. (А если ты эксперт, то зачем тебе иишница?)
К сожалению, сейчас и гугл и яндекс активно подменяют И ПОДМЕНИЛИ поиск генерацией. Теперь вместо умного библиографа там сидит девачка-референт.
Причём, если гугл ещё можно наругать и потребовать ссылки на каждый факт (при этом всё равно треть окажется нерелевантной, а ещё четверть - неправильно пересказанной), - то яндекс будет упорствовать в ереси, а то и вовсе перейдёт в режим болталки.
Раньше гугл-фу состояло в том, чтобы правильно указывать ключевые слова, расставлять операторы +, - и т.п., избегать всяких (в)водных слов, - чтобы библиограф не отвлекался.
Сейчас надо знать, как расставлять водные слова, чтобы смещать фокус иишницы в нужную сторону. Хоть прямо заводи файл со скиллами и копипасть каждый раз в строку поиска! Чтобы он перебил базовые скиллы на той стороне.
Точность там страдает дай боже, когда находишь обратное преобразование. Сам наблюдал такое и сам фиксил.
Дотошно не воспроизведу сейчас, но было вот такое.
Есть задача восстановления лидарного облака с движущегося лидара кругового обзора, находящегося на автомобиле.
Лидар каждую точку снимает в конкретный момент времени. Получаем облако точек в пространстве-времени в координатах лидара. Зная положение лидара на автомобиле и траекторию автомобиля в пространстве-времени в координатах неподвижного мира, пересчитываем точки в пространство-время мира. Приводим к единому времени (для простоты, считаем объекты неподвижными). Восстанавливаем в пространство автомобиля.
Если ноль координат мира очень далеко (сотня километров) от положения автомобиля, то траектория - это не только и не столько прямолинейное движение на расстояние 1-2 метра, но и поворот на очень маленький угол (стотысячные доли радиана).
Соответственно, поворот всех этих точек облака - это тоже стотысячные радиана на сотню километров, плюс поворот лидарного луча на сотые радиана и десяток метров. Сначала в одну сторону, потом в другую.
И вот это шараханье на сотню километров туда и обратно на разные микрорадианы - радикально умножает.
У меня не сохранился юпитер-ноутбук с иллюстрацией, - если будет час та натхнення, попробую воспроизвести, но не обещаю.
Простая фигура (окружность равноудалённых от лидара точек) превращалась в расходящуюся спираль.
Решение "быстренько проверить вхождение суррогатной пары и затем дефолтиться к константному или линейному забегу"...
Начнём с того, что если подсунуть гигантский текст, в котором в самом конце будет суррогатная пара, - то этот код всё равно задефолтится к линейному забегу. Ну, да, isPlain при аккуратном (очень!!! очень аккуратном!!!) использовании будет кешироваться. Но она же нужна не просто так, а для выбора способа произвольного доступа.
Так что квадратный маляр Шлемюэль никуда не делся, только спрятался поглубже.
Код, который проходил тесты на маленьких датасетах, затем на большущих датасетах, а потом в продакшен залетел одинокий дятел, подклеил флажочек к полному собранию сочинений, и бабах.
Почему бы для длинных текстов не использовать не голую строку, а специальный класс, который эффективно решает задачи прямого доступа (хотя бы за логарифмическое время, с помощью интервальных деревьев и ленивости). И кешировать-ленивить исключительно саму эту обёрнутую строку, а не делать глобальный кеш из двух элементов!!!
Собственно, задача быстрого доступа к фрагментам текста (разбивка на страницы, абзацы и слова) - это типичная задача любых текстовых редакторов. А тут всего лишь добавился ещё один уровень иерархии, композитные буковки.
Понятно, что для программиста это шок. Работал с "просто строкой", и вдруг понадобилось сделать полноценный вьювер. (Эмм, а зачем надо было работать со строкой с прямым доступом к ней? Похоже, изначально вьювер нужен был).
Но все эти велосипеды были изобретены ещё в далёких 1970-х, наверное.
Тогда проблема - как развернуть в новой сессии нужный комплект окон с командами, а в существующей - просто присоединиться и ничего сверх того не добавлять.
Чем дальше от начала координат, тем... дело даже не в ошибках конечной разрядности плавающей арифметики, а в ошибках вообще.
Преобразования систем координат делаются на матрицах, в одну сторону - на прямых, в обратную - на обратных. Если матрица плохо обусловлена, оператор преобразования становится люто чувствителен к малым изменениям (в том числе, к погрешностям любой природы - хоть из младших разрядов, хоть из физики).
И хотя с позиций чистой математики любое аффинное преобразование можно представить как матричное умножение в N+1-мерном пространстве (вектор-точка аугментирован единичкой, вектор-длина - ноликом), или же, что то же самое, как последовательность из вращения-масштабирования - матричного умножения в N-мерном пространстве - и затем параллельного переноса,
вот специально для таких ситуаций лучше не умничать, а разложить преобразование как последовательность произвольных вращений и переносов, - а обратное преобразование сыграть ровно в обратном порядке: отрицательный перенос, обратное вращение, отрицательный перенос, обратное вращение...
Отдельный ад возникает при интер- и экстраполяции движения. Там получается набор интерполированных преобразований, которые надо применять к исходной точке. А интерполяция - это всегда те самые малые изменения. Которые с плохо обусловленными матрицами делают очень больно!
Поэтому интерполировать нужно в какой-то локальной системе координат.
Интерполяция, опять же, бывает разная. Самые очевидные схемы - это линейная (слерп кватернионов и лерп положения) или матричная экспонента (движение по дуге).
Но вот беда, матричная экспонента вычисляется через матричный ряд Тейлора. С ограниченной точностью. То есть, с заданной погрешностью. Поэтому те самые малые изменения у нас зашумлены по определению!
И это не только геймдева касается, но и моделирования движения в реальном географическом пространстве.
Хорошо промышленному роботу: прикручен к станине или, максимум, катается по цеху. А вот беспилотный автомобиль или летательный аппарат отхватывает все эти нюансы вычислительной математики полной ложкой!
Так уже было, и ещё до ИИ. Всевозможные объявления "частный электрик-сантехник-компукторщик, приду и наслесарю вам!" или "куплю квартиру в вашем доме".
Если слежка - вид загрязнения, то загрязняет не тот, за кем следят, а тот, кто следит.
А если в смысле "наследил" (хотя в английском эти слова не однокоренные, и вряд ли Столлман играл в слова), - то - невозможно жить и не следить. Выдохнул - уже наследил. До какой степени скрытности надо дойти, чтобы вообще никто ничего не заметил?
Аскеза освобождает от одного и ограничивает в другом. Мысль нетрудная для осознания, но вы тоже попробуйте.
Ещё одна полезная настройка, помимо мыши - это set -g set-clipboard on
Чтобы интегрироваться с системным буфером обмена, особенно, на запись. На вставку из системного - проблем-то не возникнет, а вот на проброс выделения в систему, а не во встроенный тмуксовский буфер...
Можно ли взорвать этот калькулятор, подсунув какое-нибудь очень плохо сходящееся выражение?
Возможно, там чисто юридические заморочки? Скажем, туя не лицензировала что-нибудь, а яндекс решил, что да и не больно-то и хотелось...
В случае с акарой, например, ситуация такая. Зигби-хаб и некоторые датчики акары не находятся в списке официально поддержанных устройств, и всё. Обе техподдержки говорят "не наше собачье дело". Поэтому оно работает на честном слове на половине возможностей.
Беда в том, что нейрослоп, во-первых, персонализирован, а во-вторых, персонализирован непойми для кого.
По дефолту иишница способна наврать на самых серьёзных щах, и если ты не эксперт, то хрен поймёшь. (А если ты эксперт, то зачем тебе иишница?)
К сожалению, сейчас и гугл и яндекс активно подменяют И ПОДМЕНИЛИ поиск генерацией. Теперь вместо умного библиографа там сидит девачка-референт.
Причём, если гугл ещё можно наругать и потребовать ссылки на каждый факт (при этом всё равно треть окажется нерелевантной, а ещё четверть - неправильно пересказанной), - то яндекс будет упорствовать в ереси, а то и вовсе перейдёт в режим болталки.
Раньше гугл-фу состояло в том, чтобы правильно указывать ключевые слова, расставлять операторы +, - и т.п., избегать всяких (в)водных слов, - чтобы библиограф не отвлекался.
Сейчас надо знать, как расставлять водные слова, чтобы смещать фокус иишницы в нужную сторону. Хоть прямо заводи файл со скиллами и копипасть каждый раз в строку поиска! Чтобы он перебил базовые скиллы на той стороне.
Точность там страдает дай боже, когда находишь обратное преобразование. Сам наблюдал такое и сам фиксил.
Дотошно не воспроизведу сейчас, но было вот такое.
Есть задача восстановления лидарного облака с движущегося лидара кругового обзора, находящегося на автомобиле.
Лидар каждую точку снимает в конкретный момент времени. Получаем облако точек в пространстве-времени в координатах лидара. Зная положение лидара на автомобиле и траекторию автомобиля в пространстве-времени в координатах неподвижного мира, пересчитываем точки в пространство-время мира. Приводим к единому времени (для простоты, считаем объекты неподвижными). Восстанавливаем в пространство автомобиля.
Если ноль координат мира очень далеко (сотня километров) от положения автомобиля, то траектория - это не только и не столько прямолинейное движение на расстояние 1-2 метра, но и поворот на очень маленький угол (стотысячные доли радиана).
Соответственно, поворот всех этих точек облака - это тоже стотысячные радиана на сотню километров, плюс поворот лидарного луча на сотые радиана и десяток метров. Сначала в одну сторону, потом в другую.
И вот это шараханье на сотню километров туда и обратно на разные микрорадианы - радикально умножает.
У меня не сохранился юпитер-ноутбук с иллюстрацией, - если будет час та натхнення, попробую воспроизвести, но не обещаю.
Простая фигура (окружность равноудалённых от лидара точек) превращалась в расходящуюся спираль.
Решение "быстренько проверить вхождение суррогатной пары и затем дефолтиться к константному или линейному забегу"...
Начнём с того, что если подсунуть гигантский текст, в котором в самом конце будет суррогатная пара, - то этот код всё равно задефолтится к линейному забегу. Ну, да, isPlain при аккуратном (очень!!! очень аккуратном!!!) использовании будет кешироваться. Но она же нужна не просто так, а для выбора способа произвольного доступа.
Так что квадратный маляр Шлемюэль никуда не делся, только спрятался поглубже.
Код, который проходил тесты на маленьких датасетах, затем на большущих датасетах, а потом в продакшен залетел одинокий дятел, подклеил флажочек к полному собранию сочинений, и бабах.
Почему бы для длинных текстов не использовать не голую строку, а специальный класс, который эффективно решает задачи прямого доступа (хотя бы за логарифмическое время, с помощью интервальных деревьев и ленивости). И кешировать-ленивить исключительно саму эту обёрнутую строку, а не делать глобальный кеш из двух элементов!!!
Собственно, задача быстрого доступа к фрагментам текста (разбивка на страницы, абзацы и слова) - это типичная задача любых текстовых редакторов. А тут всего лишь добавился ещё один уровень иерархии, композитные буковки.
Понятно, что для программиста это шок. Работал с "просто строкой", и вдруг понадобилось сделать полноценный вьювер. (Эмм, а зачем надо было работать со строкой с прямым доступом к ней? Похоже, изначально вьювер нужен был).
Но все эти велосипеды были изобретены ещё в далёких 1970-х, наверное.
Тогда проблема - как развернуть в новой сессии нужный комплект окон с командами, а в существующей - просто присоединиться и ничего сверх того не добавлять.
Парижской. Бого... матери.
Чем дальше от начала координат, тем... дело даже не в ошибках конечной разрядности плавающей арифметики, а в ошибках вообще.
Преобразования систем координат делаются на матрицах, в одну сторону - на прямых, в обратную - на обратных. Если матрица плохо обусловлена, оператор преобразования становится люто чувствителен к малым изменениям (в том числе, к погрешностям любой природы - хоть из младших разрядов, хоть из физики).
И хотя с позиций чистой математики любое аффинное преобразование можно представить как матричное умножение в N+1-мерном пространстве (вектор-точка аугментирован единичкой, вектор-длина - ноликом), или же, что то же самое, как последовательность из вращения-масштабирования - матричного умножения в N-мерном пространстве - и затем параллельного переноса,
вот специально для таких ситуаций лучше не умничать, а разложить преобразование как последовательность произвольных вращений и переносов, - а обратное преобразование сыграть ровно в обратном порядке: отрицательный перенос, обратное вращение, отрицательный перенос, обратное вращение...
Отдельный ад возникает при интер- и экстраполяции движения. Там получается набор интерполированных преобразований, которые надо применять к исходной точке. А интерполяция - это всегда те самые малые изменения. Которые с плохо обусловленными матрицами делают очень больно!
Поэтому интерполировать нужно в какой-то локальной системе координат.
Интерполяция, опять же, бывает разная. Самые очевидные схемы - это линейная (слерп кватернионов и лерп положения) или матричная экспонента (движение по дуге).
Но вот беда, матричная экспонента вычисляется через матричный ряд Тейлора. С ограниченной точностью. То есть, с заданной погрешностью. Поэтому те самые малые изменения у нас зашумлены по определению!
И это не только геймдева касается, но и моделирования движения в реальном географическом пространстве.
Хорошо промышленному роботу: прикручен к станине или, максимум, катается по цеху. А вот беспилотный автомобиль или летательный аппарат отхватывает все эти нюансы вычислительной математики полной ложкой!
Многопоточные гонки, кстати, отчасти диагностируются thread sanitizer'ом.
Иногда тсан даёт ложноположительные срабатывания, но каждое из них нужно убедительно доказывать, что оно именно ложно положительное.
Так уже было, и ещё до ИИ. Всевозможные объявления "частный электрик-сантехник-компукторщик, приду и наслесарю вам!" или "куплю квартиру в вашем доме".
Если слежка - вид загрязнения, то загрязняет не тот, за кем следят, а тот, кто следит.
А если в смысле "наследил" (хотя в английском эти слова не однокоренные, и вряд ли Столлман играл в слова), - то - невозможно жить и не следить. Выдохнул - уже наследил. До какой степени скрытности надо дойти, чтобы вообще никто ничего не заметил?
Аскеза освобождает от одного и ограничивает в другом. Мысль нетрудная для осознания, но вы тоже попробуйте.
Голосовое управление - это супер фича, но в пробке я постоянно звоню маме.
functools.partial
</душнила>
Это потому, что изначально было поставлено условие от балды. Сказали бы "давайте напишем игру в 100 строк", и вжух, у нас куча места для манёвра )))
Скрин супротив тмукса - всё равно что плотник супротив столяра.
Странная логика!
Кококо tmux не переживает ребут хоста, очень неудобно, не хочу пользоваться! И другим буду всячески отсоветовывать.
Хочу пользоваться ttyd - который тоже не переживает ребут хоста, да и с сессиями и с обрывом связи там тоже отдельный секс!
По факту, просто заменил одно терминальное приложение на другое.
А то, что в браузере многооконность есть - это не смущает? Просто окна переехали с серверной стороны на клиентскую.
Во-первых, напрашивается
Во-вторых, \033 и \x1B - это один и тот же ESC. Опять же, напрашивается
Можно ещё добавить фичу - сохранить результаты опроса в конфиг. Чтобы не руками редактировать в nano/vim/..., а пошагово.
Ещё одна полезная настройка, помимо мыши - это
set -g set-clipboard onЧтобы интегрироваться с системным буфером обмена, особенно, на запись. На вставку из системного - проблем-то не возникнет, а вот на проброс выделения в систему, а не во встроенный тмуксовский буфер...