Долго гуглил, но так и не смог понять: какой из вариантов корутин обсуждается? Было два: бустовый и microsoft'овский, и точно были холивары, который лучше и правильнее. Будут у нас слова co_async, co_await или нет?
Если вам нужна глубина в сцене, то забудьте о батчинге.
Вот за это я и не люблю Unity (и все подобные комбаины «для простого старта»). Нет никакой проблемы батчить изометрию. Знаю проект, где вообще за 2 draw call'а сцена на 10 000 изометрических спрайтов с анимацией рисуется. Там безумное перекрытие объектов друг другом (over draw > 70). Но это всё оптимизируется и выпиливается, в итоге нет никакого over draw, нет тысяч вызовов. Одна проблема — этот подход требует скилов и очень гибкого движка. В случае с юнити единственный выход — уйти в C++, получить контекст и нарисовать всё самому. Но если так рисовать всю игру, то зачем вообще фреймвёрк?
Ну как бы уже не остался.
Задачи «на логику» сами должны быть чёткими и логичными. Потому что без внесения достаточного уровня абстракции они просто не работают. Невозможно идти постоянно на северо-восток: кроме гор и морей мы упрёмся ещё и в дискретность шага. Если корректировки очень редки, то можно вообще никогда не остановиться. Математика это не влезание в голову к спрашивающему, а работа только своей.
Общение с заказчиком это не головоломка, не математическая задача, это совершенно ортогональный навык. Там как раз наоборот требования нелогичны и противоречивы и часто вообще не соотносятся с тем, что действительно удовлетворит потребности. И безполезно лезть в голову к кому-либо, там всё равно ответа нет. Его надо создать.
А «кодер» как раз ищет наиболее простое логичное решение в задаче. Например, (A, B) = (B, A), потому что «в моём языке так можно».
1) 5 литров на 80 квадратов
2) датчик влажности на самом увлажнителе *facepalm* Он стабильно на 30-40% больше показывает. Так можно термометр на батарею вешать и по нему регулировать.
Это не увлажнитель, это красивая коробка для продажи. Ему нужен бак минимум втрое больше (заправлять раз в день), вентилятор для сдувания тумана (иначе оседает вокруг и ничего не увлажняет), нормальный протокол, по которому можно подключиться к действительно умному дому. Тогда может быть будет юзабельно.
Формулировка задач страдает от недосказанности и неточности. Что такое переменная и «классическая математика»? В математической нотации все значения неизменяемы. Может вы хотели ограничиться простыми арифметическими операторами +-*/ и императивным ЯП?
Что такое идти на северо-восток? У этого понятия есть 2 трактовки: выбрать направление и идти, не сворачивая; и ваш вариант с непрерывной корректировкой. Про магнитный полюс тоже уже написали выше.
Вы не исправили основную проблему коммунизма — стабильность. Её нет. Небольшое количество хитрых и наглых будут всё так же добиваться своих целей. Партийный аппарат и состав номенклатуры в СССР это превосходно демонстрирует. Любую утопию надо строить с вопроса, а устойчива ли она (по Ляпунову), что будет если её расшатывать? Современное общество (капитализм, как вы называете) безумно устойчиво в плане структуры. Это не удивительно, ведь динамические системы часто стремятся к равновесию (циклы и автоколебания вокруг сложный вопрос, требующий детального анализа).
Он не такой и сложный. По крайней мере читать научиться можно быстро. Про разговор не знаю, я только читал и писал :), что всё это значило понятия не имею. Мы, между прочим, их цифрами пользуемся. Видоизменёнными кончено, но вот как выглядят их цифры сейчас: ० १ २ ३ ४ ५ ६ ७ ८ ९
Кое-что вывернуто, но вполне читаемо.
Занимался как-то тем же самым. Только у нас ещё и bitmap шрифты были. То есть надо было все возможные графемы затолкать, а потом рендерер научить их мёржить. Как до, так и после этой работы, считал, что никогда не надо писать свои рендереры шрифтов. Да, мы добились успеха и многие подтвердили, что рисуем правильно, но невозможно забыть тот месяц, когда хинди стоял третьей раскладкой клавиатуры в системы на равне с RU и ENG. Там же каждая гласная может модифицировать написание предыдущей согласной, (и) меняет порядок, (р) хоть и согласная, но умеет сливаться с другими согласнымии и с самой собой. Как оказалось, word неправильно рисует длинные последовательности из этой (р), да и вообще ошибки много где нашлись, видимо потому, что в языке не встречается.
По этой причине мне кажется, что подход с фиксированной таблицей в статье не может работать. Общее количество возможных лигатур в деванагари колоссально, их надо уметь рисовать на ходу. Та же шапочка у (и) вообще-то имеет очень много разных длин, так как она относится к слогу, и между ней и согласной может быть ещё пачка графем. Хотя на это обычно забивают.
Вариативность у (р) с отсечением матры (|) вообще безумная и часто своя для каждой пары.
Это, кстати, оказалось даже рентабельно. Индусов много.
Решите уравнение теплопроводности в обратном времени для начала. Без физики, без машин времени, без вообще ограничений физического мира. Простейшая мат. модель — стержень с некоторым распределением температур. Задача — описать распределение температур 1 секунду/минуту/год назад. Это принципиально невозможно, это некорректно поставленная задача.
Не стоит считать производительность по количеству инструкций. Одна инструкция div (divq) требует десятки тактов, тогда как большинство битовых — 1 такт.
Огромное спасибо за перевод. Собирался переводить эту статью для хабра, но вы опередили.
Что касается темы, то удивительно, что в этой области ещё столько простора для исследований и оптимизаций. Казалось бы структура данных, старая как мир, уже не может быть улучшена. Не сказал бы, что использованные в статье техники очень сложные или тянут на докторскую. Просто оптимизации, а значит есть куда расти дальше.
взять JS код, распарсить его с помощью D при компиляции
Где-то на этом месте ничего не получится :)
Это кончено возможно, но применимо только для ненормального программирования. AOT оптимизации в JS почти невозможны без изменения поведения кода. Парсинг в D превратится в ещё одну виртуальную машину. Слишком уж он динамичный и многое себе позволяет. Если же ввести ограничения на код, не давать менять типы в рантайме, добавлять свойства и тд, то может и получится. Только с такими ограничениями проще сразу на D писать.
Не зависят. С концептами лучше, но работают и без них. Достаточно брать с гитхаба. Там всё макросами завёрнуто, поэтому работает даже на старых компилерах. Так что ranges-v3 однозначно лучше того, что предложено в статье. И судя по моим бенчмаркам очень резво работает.
Во-первых, измерить иррациональную величину невозможно. Измерение — процесс сверения с эталоном. Сколько эталонов помещается, такова и величина. Поэтому результат измерений всегда рационален. Вы можете ввести иррациональный эталон (иррационален он относительнодругого, например гипотенуза относительно катета), но количество эталонов в измеряемой величине будет рациональным. А как уже ответили, плотность множества рациональных позволяет сколь угодно точно измерить что-угодно.
Во-вторых, по поводу интуитивности. Попробуйте описать множество иррациональных чисел, не вводя определение предела или других контринтуитивных идей. Даже через геометрические интерпретации + корни рациональных уравнений вы не опишете всех. А предел — довольно сложная идея, которая решила всевозможные апории Зенона и им подобные.
С этой точки зрения оно мало чем отличается от бесконечной дроби 0.(3).
В том-то и дело, что отличается. Любое рациональное число представимо обыкновенной дробью. 0.3(3) — не более чем запись числа 1/3. Одна из многих. Так же как 0.9(9) — другая запись 1. Я всё ещё могу сказать, что 1 карандаш — треть от пачки из 3-х карандашей.
Рациональное число — всегда количество долей чего-то в чём-то. Оно интуитивно, потому что люди осознают только целые, а это просто способ на пальцах посчитать доли. Иррациональные числа не представимы никакой дробью. Нельзя сказать, что это доля чего-то. Считалось, что рациональных чисел достаточно для оперирования геометрии, а оказалось, что нет. Абстракция отрезка и описывающего его числа развалилась, они перестали быть тождественны.
Сомнительной выглядит статистика по времени жизни веганов и вегетарианцев. Точнее мне не нравится её интерпретация. Я склонен считать, что дольше подобные группы живут не благодаря ограничениям, а скорее вопреки. То есть они вынуждены более тщательно относиться к выбору еды, поэтому их диета более сбалансирована. Но это не значит, что нельзя сбалансировать диету мясоеда так же или даже лучше.
Интересно было бы посмотреть на подобную статистику, где разбивка будет по вопросу «Следите-ли вы за своим рационом? Сидите-ли на диете».
Вы очень сильно недооцениваете влияние философии. Понятно, что большинство современных философов сильно отстали от науки и не в состоянии что-либо объяснять. Однако, существует множество вопросов, поставленных точными дисциплинами, ответы на которые выходят за их рамки. Например, проблема корня из 2 и появления иррациональных чисел в математике. У математики нет проблем с иррациональностью, она с ней работает. А вот интерпретация и осознание этих величин — вопрос скорее философский. Когда-то он переворачивал мировоззрение и представления об устройстве мира.
Точно так же квантовая физика и подтверждение неравенства Белла перевернуло мировоззрение в ХХ веке. Детерминизм как идея мироздания умер. Сейчас мы сталкиваемся с ещё более запутанными свойствами мира в физике и сложной сущностью ИИ в технике. И вопрос осознания явлений — всё ещё вотчина философии. Просто она становится всё сложнее и сложнее.
Ожидал увидеть что-то вроде https://github.com/libffcall/libffcall
Там в рантайме генерируется код для каждого использования, что позволяет передать замыкание туда, где ожидается обычная сишная функция, не предусматривающая пользовательских данных. Руки чешутся начать использовать, но уровень шаманства отпугивает.
Вот за это я и не люблю Unity (и все подобные комбаины «для простого старта»). Нет никакой проблемы батчить изометрию. Знаю проект, где вообще за 2 draw call'а сцена на 10 000 изометрических спрайтов с анимацией рисуется. Там безумное перекрытие объектов друг другом (over draw > 70). Но это всё оптимизируется и выпиливается, в итоге нет никакого over draw, нет тысяч вызовов. Одна проблема — этот подход требует скилов и очень гибкого движка. В случае с юнити единственный выход — уйти в C++, получить контекст и нарисовать всё самому. Но если так рисовать всю игру, то зачем вообще фреймвёрк?
Задачи «на логику» сами должны быть чёткими и логичными. Потому что без внесения достаточного уровня абстракции они просто не работают. Невозможно идти постоянно на северо-восток: кроме гор и морей мы упрёмся ещё и в дискретность шага. Если корректировки очень редки, то можно вообще никогда не остановиться. Математика это не влезание в голову к спрашивающему, а работа только своей.
Общение с заказчиком это не головоломка, не математическая задача, это совершенно ортогональный навык. Там как раз наоборот требования нелогичны и противоречивы и часто вообще не соотносятся с тем, что действительно удовлетворит потребности. И безполезно лезть в голову к кому-либо, там всё равно ответа нет. Его надо создать.
А «кодер» как раз ищет наиболее простое логичное решение в задаче. Например, (A, B) = (B, A), потому что «в моём языке так можно».
2) датчик влажности на самом увлажнителе *facepalm* Он стабильно на 30-40% больше показывает. Так можно термометр на батарею вешать и по нему регулировать.
Это не увлажнитель, это красивая коробка для продажи. Ему нужен бак минимум втрое больше (заправлять раз в день), вентилятор для сдувания тумана (иначе оседает вокруг и ничего не увлажняет), нормальный протокол, по которому можно подключиться к действительно умному дому. Тогда может быть будет юзабельно.
Что такое идти на северо-восток? У этого понятия есть 2 трактовки: выбрать направление и идти, не сворачивая; и ваш вариант с непрерывной корректировкой. Про магнитный полюс тоже уже написали выше.
Кое-что вывернуто, но вполне читаемо.
По этой причине мне кажется, что подход с фиксированной таблицей в статье не может работать. Общее количество возможных лигатур в деванагари колоссально, их надо уметь рисовать на ходу. Та же шапочка у (и) вообще-то имеет очень много разных длин, так как она относится к слогу, и между ней и согласной может быть ещё пачка графем. Хотя на это обычно забивают.
Вариативность у (р) с отсечением матры (|) вообще безумная и часто своя для каждой пары.
Это, кстати, оказалось даже рентабельно. Индусов много.
Что касается темы, то удивительно, что в этой области ещё столько простора для исследований и оптимизаций. Казалось бы структура данных, старая как мир, уже не может быть улучшена. Не сказал бы, что использованные в статье техники очень сложные или тянут на докторскую. Просто оптимизации, а значит есть куда расти дальше.
Где-то на этом месте ничего не получится :)
Это кончено возможно, но применимо только для ненормального программирования. AOT оптимизации в JS почти невозможны без изменения поведения кода. Парсинг в D превратится в ещё одну виртуальную машину. Слишком уж он динамичный и многое себе позволяет. Если же ввести ограничения на код, не давать менять типы в рантайме, добавлять свойства и тд, то может и получится. Только с такими ограничениями проще сразу на D писать.
Во-вторых, по поводу интуитивности. Попробуйте описать множество иррациональных чисел, не вводя определение предела или других контринтуитивных идей. Даже через геометрические интерпретации + корни рациональных уравнений вы не опишете всех. А предел — довольно сложная идея, которая решила всевозможные апории Зенона и им подобные.
В том-то и дело, что отличается. Любое рациональное число представимо обыкновенной дробью. 0.3(3) — не более чем запись числа 1/3. Одна из многих. Так же как 0.9(9) — другая запись 1. Я всё ещё могу сказать, что 1 карандаш — треть от пачки из 3-х карандашей.
Рациональное число — всегда количество долей чего-то в чём-то. Оно интуитивно, потому что люди осознают только целые, а это просто способ на пальцах посчитать доли. Иррациональные числа не представимы никакой дробью. Нельзя сказать, что это доля чего-то. Считалось, что рациональных чисел достаточно для оперирования геометрии, а оказалось, что нет. Абстракция отрезка и описывающего его числа развалилась, они перестали быть тождественны.
Интересно было бы посмотреть на подобную статистику, где разбивка будет по вопросу «Следите-ли вы за своим рационом? Сидите-ли на диете».
Точно так же квантовая физика и подтверждение неравенства Белла перевернуло мировоззрение в ХХ веке. Детерминизм как идея мироздания умер. Сейчас мы сталкиваемся с ещё более запутанными свойствами мира в физике и сложной сущностью ИИ в технике. И вопрос осознания явлений — всё ещё вотчина философии. Просто она становится всё сложнее и сложнее.
Там в рантайме генерируется код для каждого использования, что позволяет передать замыкание туда, где ожидается обычная сишная функция, не предусматривающая пользовательских данных. Руки чешутся начать использовать, но уровень шаманства отпугивает.