С профилированием, кажется, не все так просто. Время начала захватывается когда, когда лямбда создается? А создается она когда, когда мы pipeline описываем? А запустится он когда, если вообще запустится?
Что-то я не понял, а с какого перепугу LeaveCriticalSection внезапно стала затирать чужие локальные переменные? Кажется, что ошибка всё же в ней тоже есть.
В общем, суть в том, что: у нас есть внутренний инструмент, чтобы нарисовать стежки, внутренний инструмент, чтобы дать им объём, внутренний инструмент, чтобы их раскрасить, внутренний инструмент, чтобы их отрендерить. За пределами нашей студии это всё бесполезно. Но у нас получается круто. Расходимся.
Что-то как-то всё же не очень понятно в этой истории. Если легендой сбоя предполагалась некая неизвестная неисправность в плате, то каким образом её «героически» мог решать программист? Её бы «героически» решали электрики, отвечающие за оснащение ЭВМ.
Потом, насколько я понял из текста, Уртенбаев вообще не писал никакой код именно для управления производством. Его задачей был модуль чисто утилитарного назначения отладочной (или не очень) печати. Если каждый из программистов варился в собственном мирке и занимался лишь своим модулем (как опять утверждается по тексту), то вряд ли бы его позвали решать эту проблему — ведь его модуль работал исправно и вообще никакого отношения к производству не имел!
Так что схема с получением повышения/дополнительной премии как-то шатко выглядит. А вот по шапке получить, когда причина сбоев всё-таки выяснится — это как пить дать. Что, собственно, и произошло в реальности.
Если я правильно понял, цель защиты в том, чтобы при записи недостаточно намагнитить элемент, чтобы он читался неуверенно. Но разве при этом не должна возникать ошибка чтения? Почему читается случайное значение, если дисковод видит, что уровня сигнала недостаточно для однозначного определения, логический 0 там, или 1? А коды исправления ошибок? Разве их там нет?
Почему разные? Это записаться может что угодно, а считывается всегда что-то одно. Да, неизвестно что, но если сравнивать только результаты самих попыток, они одинаковые будут всегда. Эталона для сравнения то нет
Все-таки не очень понятно, на чем эта защита основывалась. Ну допустим, не заводе записали дискету таким макаром. Но в итоге же на ней будет записал либо 0, либо 1, завод этого не узнает. Как это знание поможет в проверке защиты на компьютере пользователя?
Согласен, что странно было выбрать нишу впритык. Но существующие Rust программы это не сломает: все программы собираются всегда статически, если появится стандарт, расширяющий диапазон и что-то использующий там, то ваша программа все равно не сможет это корректно прочитать еще до того, как вы к enum-у перейдете.
Для тех, кто знает только Qt и GTK в первую очередь нужно было написать, что половина (а может и все, не смотрел) из представленного в статье -- это immediate-mode gui. И вообще рассказать, что бывают 2 вида режима GUI:
retain -- Qt, GTK, WinAPI и прочее традиционное. Вы описываете в коде интерфейс, а рисуется он в цикле событий, вам явно не видимом. Рассылает вам события, в которых вы действия и обрабатываете
immediate -- вы пишите код, который буквально рисует. Все, что еще не нарисовано (т.е. по коду находится ниже) еще нет. Помню, подумал, на сайте egui ошибка, как увидел, что там написано
if button("click").clicked() {
...
}
Подумал, забыли в замыкание обернуть, как оно работать-то будет? На самом деле вы и пишите внутри цикла отрисовки, и сразу же проверяете наличие флагов от событий и "на лету" меняете то, что нужно отрисовать.
Соответственно, в immediate режиме вы все UI строите с нуля каждый кадр, можете представить, что будет с энергопотреблением, если не ухищряться это все кешировать.
Если все будут забивать на такую простейшую вещь, как калькулятор, то какое же впечатление должно будет сложиться о более сложных программах? Калькулятор должен считать любые вещи и делать это правильно. А не выдавать отмазки в духе: ой, купите DLC извините, вам это не надо, покупайте профессиональный инструмент, чтобы умножить ПИ на гугол.
А если оказывается, что на самом деле написать калькулятор не так то и просто, то что вы предлагаете? Чтобы что-то нормальное написал студент между прогулами пар?
И очень хорошо, что встроенный калькулятор вычисляет нормально, а не требуется ставить еще чего-то на 100 Мб, чтобы умножение работало
Просто фраза "сотворение мира" может означать вовсе не создание Земли, а, внезапно, установление мира после войны. Если в Японии с нового императора новое летоисчисление, то почему после большой войны нельзя начать считать по-новому?
А еще некоторые источники утверждают, что до этого еще календари были, с десятками тысяч лет.
Правильно. В ffmpeg уже давно бы пора решить проблему (например, сохраняя (можно по флагу, у него уже флагов столько, что от ещё одного хуже не станет) промежуточные вычисления куда-то на диск (все эти таблицы квантования/Хаффмана или что там ещё используется). Ну а пока приходится довольствоваться костылями (ИБП — это тоже костыль, кстати, физический).
Затем, что зачем мне её просто на паузу ставить? Чтобы что? Она ещё дольше бы выполнялась? Как правило, продолжать нужно по той причине, что она прервалась по не зависящим от тебя обстоятельствам (например, комп в перезагрузку ушёл или просто вырубился посреди процесса) и хотелось бы, чтобы работа не пропадала вхолостую.
Просто разница подходов -- пока одни скачут по верхам (тоже полезным), другие пишут фундамент.
Очередной свидетель солонки :)
С профилированием, кажется, не все так просто. Время начала захватывается когда, когда лямбда создается? А создается она когда, когда мы pipeline описываем? А запустится он когда, если вообще запустится?
Что-то я не понял, а с какого перепугу
LeaveCriticalSection
внезапно стала затирать чужие локальные переменные? Кажется, что ошибка всё же в ней тоже есть.Если обе панели на одном диске, то тоже работает. Если на разных дисках, то надо будет вручную выбрать диск в менюшке выбора дисков.
В общем, суть в том, что: у нас есть внутренний инструмент, чтобы нарисовать стежки, внутренний инструмент, чтобы дать им объём, внутренний инструмент, чтобы их раскрасить, внутренний инструмент, чтобы их отрендерить. За пределами нашей студии это всё бесполезно. Но у нас получается круто. Расходимся.
Что-то как-то всё же не очень понятно в этой истории. Если легендой сбоя предполагалась некая неизвестная неисправность в плате, то каким образом её «героически» мог решать программист? Её бы «героически» решали электрики, отвечающие за оснащение ЭВМ.
Потом, насколько я понял из текста, Уртенбаев вообще не писал никакой код именно для управления производством. Его задачей был модуль чисто утилитарного назначения отладочной (или не очень) печати. Если каждый из программистов варился в собственном мирке и занимался лишь своим модулем (как опять утверждается по тексту), то вряд ли бы его позвали решать эту проблему — ведь его модуль работал исправно и вообще никакого отношения к производству не имел!
Так что схема с получением повышения/дополнительной премии как-то шатко выглядит. А вот по шапке получить, когда причина сбоев всё-таки выяснится — это как пить дать. Что, собственно, и произошло в реальности.
Если я правильно понял, цель защиты в том, чтобы при записи недостаточно намагнитить элемент, чтобы он читался неуверенно. Но разве при этом не должна возникать ошибка чтения? Почему читается случайное значение, если дисковод видит, что уровня сигнала недостаточно для однозначного определения, логический 0 там, или 1? А коды исправления ошибок? Разве их там нет?
Почему разные? Это записаться может что угодно, а считывается всегда что-то одно. Да, неизвестно что, но если сравнивать только результаты самих попыток, они одинаковые будут всегда. Эталона для сравнения то нет
Все-таки не очень понятно, на чем эта защита основывалась. Ну допустим, не заводе записали дискету таким макаром. Но в итоге же на ней будет записал либо 0, либо 1, завод этого не узнает. Как это знание поможет в проверке защиты на компьютере пользователя?
Согласен, что странно было выбрать нишу впритык. Но существующие Rust программы это не сломает: все программы собираются всегда статически, если появится стандарт, расширяющий диапазон и что-то использующий там, то ваша программа все равно не сможет это корректно прочитать еще до того, как вы к enum-у перейдете.
А что, есть страны, где нужно?
Для тех, кто знает только Qt и GTK в первую очередь нужно было написать, что половина (а может и все, не смотрел) из представленного в статье -- это immediate-mode gui. И вообще рассказать, что бывают 2 вида режима GUI:
retain -- Qt, GTK, WinAPI и прочее традиционное. Вы описываете в коде интерфейс, а рисуется он в цикле событий, вам явно не видимом. Рассылает вам события, в которых вы действия и обрабатываете
immediate -- вы пишите код, который буквально рисует. Все, что еще не нарисовано (т.е. по коду находится ниже) еще нет. Помню, подумал, на сайте egui ошибка, как увидел, что там написано
Подумал, забыли в замыкание обернуть, как оно работать-то будет? На самом деле вы и пишите внутри цикла отрисовки, и сразу же проверяете наличие флагов от событий и "на лету" меняете то, что нужно отрисовать.
Соответственно, в immediate режиме вы все UI строите с нуля каждый кадр, можете представить, что будет с энергопотреблением, если не ухищряться это все кешировать.
При чём тут Ада, если это PL/SQL?
Если все будут забивать на такую простейшую вещь, как калькулятор, то какое же впечатление должно будет сложиться о более сложных программах? Калькулятор должен считать любые вещи и делать это правильно. А не выдавать отмазки в духе:
ой, купите DLCизвините, вам это не надо, покупайте профессиональный инструмент, чтобы умножить ПИ на гугол.А если оказывается, что на самом деле написать калькулятор не так то и просто, то что вы предлагаете? Чтобы что-то нормальное написал студент между прогулами пар?
И очень хорошо, что встроенный калькулятор вычисляет нормально, а не требуется ставить еще чего-то на 100 Мб, чтобы умножение работало
Просто фраза "сотворение мира" может означать вовсе не создание Земли, а, внезапно, установление мира после войны. Если в Японии с нового императора новое летоисчисление, то почему после большой войны нельзя начать считать по-новому?
А еще некоторые источники утверждают, что до этого еще календари были, с десятками тысяч лет.
Вероятно, экспонента от логарифма или наоборот
Надеюсь, в этой серии статей раскроют эти перипетии
Правильно. В ffmpeg уже давно бы пора решить проблему (например, сохраняя (можно по флагу, у него уже флагов столько, что от ещё одного хуже не станет) промежуточные вычисления куда-то на диск (все эти таблицы квантования/Хаффмана или что там ещё используется). Ну а пока приходится довольствоваться костылями (ИБП — это тоже костыль, кстати, физический).
Затем, что зачем мне её просто на паузу ставить? Чтобы что? Она ещё дольше бы выполнялась? Как правило, продолжать нужно по той причине, что она прервалась по не зависящим от тебя обстоятельствам (например, комп в перезагрузку ушёл или просто вырубился посреди процесса) и хотелось бы, чтобы работа не пропадала вхолостую.