Ещё, получается, displayFrame() занимается переворачиванием транспонированием кадра, от которого особенно не захочется избавляться из-за возможности "рисовать кадр" двоичными литералами.
И от которого нельзя удачно избавиться изменением направления сканирования матрицы (не построчно, а по столбцам), потому что зажигая строку мы имеем резистор параллельно каждому светодиоду, а при зажигании столбца такой "гарантии равномерного свечения" на этой плате не будет - будет один резистор на все светодиоды.
Я бы в такую сторону думал (выделил русским временные комменты):
for (uint8_t rowIdx = 0; rowIdx < 8; rowIdx++) {
// 1. prepare columns (stored in transposed state)
for (uint8_t i = 0; i < 8; i++) {
// надо сделать указатель frame видимым отсюда
uint8_t val = pgm_read_byte(frame + i);
// viewed from software, val is bit-packed row of one frame
// viewed from hardware, val is one column of LED matrix
// and we need rowIdx'th bit from each column here
digitalWrite(col[i], val & (1 << rowIdx));
}
// 2. activate row
digitalWrite(row[rowIdx], 0);
// 3. delay in active state
delayMicroseconds(1000);
// итого частота обновления всей матрицы: до 1/(8*1000 мкс) = 125 Гц
// ещё добавить к знаменателю время на (8+2)*8 = 64 вызовов digitalWrite():
// до 1/(8*(1000 мкс) + 64*(5 мкс)) = 120 Гц
// 4. deactivate row
digitalWrite(row[rowIdx], 1);
// 5. delay in inactive state for brightness adjustment
// ...
}
Кажется, оно должно плохо работать из-за ошибок в алгоритме.
Динамическая индикация не даёт зажечь все светодиоды одновременно, из-за неё мы можем одновременно зажечь только 1 строку (или столбец). То есть одновременно может гореть только 1/8 часть матрицы.
Но из-за этого кода во внутреннем цикле получается сокращение до 1/64:
digitalWrite(col[thisCol], thisPixel);
if (thisPixel == HIGH) {
// <-- неявная задержка из-за медленности digitalWrite,
// благодаря которой матрица вообще светится.
digitalWrite(col[thisCol], LOW);
}
А из-за отсутствия задержек много времени будет потрачено на исполнение кода (обслуживающего индикацию), в это время матрица не горит.
Из delayWithRefresh() можно почти всё убрать.
void delayWithRefresh(unsigned long d) {
unsigned long prevTime = millis();
unsigned long duration = 0;
while (true) {
unsigned long time = millis();
unsigned long tmp = (time - prevTime);
prevTime = time;
duration += tmp;
if (duration > d) {
break;
}
refreshScreen();
}
}
Регулировка яркости если работает, то из-за аналогичной неявной задержки (на вызов milis() и т.д.) - у условия if (_pwm < _intensity) {<проводим здесь xxx времени>} нет ветки else с аналогичной задержкой.
В displayFrame() (который всё-таки не показывает, а загружает в SRAM) заранее упакованные (1 строка - 1 байт) значения из флеш-памяти распаковываются (8 проходов по каждому байту) и снова упаковываются, хотя их достаточно только прочитать из флеша. А читать их можно побайтово там, где они используются в коде - эта функция и массив _pixels оказываются не нужны[*].
Включить строку - подать лог.0 на строку (т.е. на катоды диодов, чтобы ток втекал в мк)
Задержка - такая, чтобы получить частоту обновления в 100..1000 Гц
Выключить строку - подать лог.1 на строку
<-- сюда можно перекинуть часть задержки для реализации регулировки яркости
[*] вообще, особое отношение к константам во флеше требуется из-за того, что AVR с его гарвардской архитектурой слишком старый с точки зрения C++ - расширение Named Address Spaces есть только для C.
[**] без Arduino-фреймворка это можно сократить до PORTB = _pixels(i); (вместо того внутреннего цикла), если развести плату так, чтобы выводы столбцов приходились на один порт. Но в любом случае, фреймворк здесь добавляет проблем - заставляет думать о тяжести восьми вызовов digitalWrite().
Исправление алгоритма повысит ток (как и уменьшение резисторов), надо подумать:
насколько просядет напряжение питания (=> стабильность микроконтроллера)
не станет ли яркость строки зависеть от количества включённых светодиодов из-за просадки напряжения (сейчас она не может зависеть, потому что одновременно горит только 1 светодиод)
Расстояние между цветами в пространстве OKLCH как считается?
Как евклидово расстояние в цилиндре - т.е. не надо OKLab переводить в его версию с полярными цилиндрическими координатами (OKLCH), надо остаться в OKLab
"Because Oklab is more perceptually uniform than CIE Lab, the color difference is a straightforward distance in 3D space (root sum of squares)" https://www.w3.org/TR/css-color-4/
Ну dE в CIELab тоже нифига не евклидово.
Этот вариант и в CIELab имеет право на жизнь, только CIELab хуже (неравномернее) и сильно стандартизирован, что, видимо, подкрепляло идею улучшать "perceptually uniformness" у вариантов вычисления расстояния, а не у пространства (не менять пространство). И с уклоном в науку, а не красивые градиенты - "Международная комиссия" может больше углубляться в измерение расстояния.
В них ничего не совпадает, кроме идеи кодировать тон (hue) одной компонентой.
HSV и HSL - это наивный подход к проблеме. Можно было бы сказать, вычислительно облегчённый, если бы не наивность в V=max(R,G,B) и L=0.5*(max(R,G,B)-min(R,G,B)).
Нет, вы в статье критикуете решение, а общеизвестной формулировке доверяете.
Скажу сам про первоисточники - есть ещё комментарии Симпликия к "Физике", которые оказываются не только комментариями, но и вторым первоисточником, потому что апория там описывается подробнее (т.е. видимо, Симпликий опирался на что-то ещё, дошедшее через 800 лет до него, но не дожившее до нас).
Апория показывает нам, что мы не можем отследить, где начинается шум.
Симпликий тоже так не считает.
Скрытый текст
Зенон утверждает, что между громкостями такая же пропорция, как между количеством:
мешок : 1 зерно : 1 / 10 000 зерна
‘Well, then, is there not a ratio [logos] of a medimnus of millet seeds to one [millet seed] and to a ten-thousandth of one?’ When [Protagoras] asserted that there was, Zeno said, ‘Well, then, will not the ratios of the sounds to one another be the same?
Hagen, Charles (1994). Simplicius: On Aristotle Physics 7
Аристотель возражает, что можно наблюдать, как при делении такая пропорция нарушается и имеет в виду появление нелинейности.
But when the force has been partitioned, he says, the proportion is not preserved, though it is preserved when it is combined
Симпликий приводит пример - говорит, что трибологии у них ещё нет, но отрицание нелинейности означало бы возможность сдвинуть массу горы силами одного человека, пусть и медленно.
Но пока не очевидно, почему эта пропорция не сохраняется вечно. Однако всякий, кто утверждает, что она сохраняется вечно, столкнётся с ещё более загадочным результатом, чем этот, [а именно] с тем, что один человек передвинул бы гору Афон, если бы она случайно отделилась от земли. Ведь если он сдвинет один камень, принадлежащий горе Афон, на такое-то расстояние за такое-то время, почему он не сдвинет всю гору на какую-то часть этого расстояния за многократно большее время? ... существует некий предел [horos], как для наименьшей силы ... так и для наибольшего перемещаемого веса (гуглоперевод Хагена)
Из статьи получается, что Аристотель Зенона не понял, Симпликий не понял, Фома Аквинский не понял и только сейчас поняли Зенона. А может, сейчас стали придумывать преемственность между древней философией (в современном значении слова) и современной наукой, чтобы извлекать из этого выгоду? Известные имена и заявления про плечи гигантов придают вес, привлекают внимание и работают на разных уровнях (приносят выгоду как одному философу, так и всей Западной цивилизации). Также удобно, что Зенон не может возразить и что философия в принципе достаточно размыта, чтобы скрыть негативные утверждения (Из правоты Зенона следует неправота Аристотеля? Ответим уклончиво...).
Мальчик записывает в соавторы профессора, муж ссылается на древних философов.
_____
Апория звучит следующим образом: "Каждое отдельное зерно падает на землю бесшумно <...>
По Аристотелю (а есть другие первоисточники?) Зенон, наоборот, утверждал, что любая часть зерна производит шум. Прошу ещё одну статью с учётом этого нового обстоятельства.
"Ведь из того, что целая сила продвинула [тело] на определенную длину, не следует, что половина силы продвинет [это же тело] на сколько-нибудь в какое бы то ни было время <...> Поэтому-то неправильно рассуждение Зенона, что любая часть просяного зерна произведет шум" - https://ru.wikisource.org/wiki/Физика_(Аристотель;_Карпов)/Книга_7/Глава_5#:~:text=Ведь из
Фома Аквинский Аристотеля трактует так - Зенон ошибался, считая, что из звучание одного зерна следует из звучания целого мешка (и где-то вокруг витают заблуждения насчёт трения покоя?).
"argument of Zeno who wished to prove that each grain of millet falling to the earth makes a sound, because an entire bushel of it, when poured to the earth, makes a sound ... it is not the part but the whole that acts" - https://isidore.co/aquinas/Physics7.htm#8:~:text=960. Then
Или, может, ну его, и лучше обсудить четвёртый том "Проблем" Аристотеля? Там затрагиваются вопросы секса в носках негативного влияния босоногости на половой акт (не шучу).
+1, надо было сказать, что риск кажется пренебрежимо малым, но вообще на MakeMKV есть с десяток историй о таких случаях с Blu-ray и про "зацарапывание" говорили:
The BU40N is currently the only known drive that has demonstrated it's ability to malfunction and leave the disc scratched to the point of usability
BW-16D1HT ... I've had mine scratch 2 or 3 blu-rays ... It ruined my Incredibles 2 blu-ray
Как человек без крыши сможет накопить кучу предупреждений и забить на этичное поведение? Ему объяснят, что даже этичное поведение - это правило, увидят упорное "мы ещё посмотрим, кто кого прогнёт" и накажут.
Давайте, попробуйте пообщаться там фразами "I have no idea who the fuck you are". Да и на хабре можете попробовать.
Запрос к администраторам на тему удаления обсуждений там закончился тем, что "There's no consensus for any action against Jorm here".
Выбывании из гонки. Гонки объёмов (чтобы снижать стоимость; скорости вместе с объёмом тоже часто растут). Выбывание из этой гонки не мешает ценить долговечность оптики.
Админша спрашивает мнение (cc Jorm) бывшего сотрудника, а удаляют они на пару вдвоём. Мнение Jorm'а можно угадать, потому что цитату из новости Phoronix он уже удалял из статьи со словами "None of this is sourced".
Власть у Jorm'а есть, раз он на многочисленные предупреждения на своей странице обсуждения без последствий отвечал "Cool story, bro".
Тысяча BD - это неуправляемый объём (даже для сотен бы какой-нибудь самодельный autoloader). А один HDD - очень управляемый и с быстрым доступом ко всему объёму.
Концепция та же, просто HDD и лента продолжили двигаться вперёд, а оптика выбыла из гонки. Если бы оптика на 5.5 ТБсмогла, вы бы не говорили про разницу концепций.
Пример ситуации, где налёт цивилизованности истончился: бывший сотрудник Wikimedia Foundation со словами "Not a forum" откатывает обсуждение, в которое принесли авторитетный источник (чтобы подкрепить им статью, которую тоже постоянно откатывают). Достойных противников для войны не нашлось, всё откатили.
Жизнь в википедии (чьи-то наблюдения за ней перетекают в wikireality.ru) с определённого уровня становится похожа на политику IRL.
Но польза всё равно сильно перевешивает. Там и надёжный хостинг исторических документов, и ключ к источникам, без которого не добраться до нужных книг или страниц вебархива, и много тем, которые большой политикой сложно испортить.
"Любой носитель может внезапно умереть => 1 копия принципиально ненадёжна" - это полезная эвристика, но надо признать, у BD-R тут ситуация необычно хороша.
Его можно украсть, изъять, сжечь, разбить, это общие риски. Но
он не может сломаться в процессе чтения
есть прямой доступ к показателям количества сырых ошибок* (raw bit error rate), то есть можно заглянуть глубже факта "ЕСС пока что справляется" и обойтись без косвенных оценок RBER по скорости чтения (как здесь в посте, под спойлером про эксперимент над MicroSD)
очень дружелюбен к варианту "прочитать целиком с ошибками и использовать свои коды коррекции (PAR2 и т.п.)", SSD здесь хуже всех (над LTO висит туман войны, но вроде тоже плох)
предсказуемость деградации примерно как у утечки заряда из ячеек ("can be shown to follow Arrhenius laws" - ECMA-413); деградация локальная, без "а из-за этой болезни нечитаемым станет весь диск" (но с многослойными BD-R может быть сложнее)
* Только вот стандарты оценивают время жизни по одним показателям (RSER и BE), а утилиты показывают другие (LDC и BIS) или требуют один специальный привод (BDR-PR1M).
А по удобству оптические диски проигрывают HDD.
Особенно впечатляет тысячекратная разница в ёмкости между однослойными BD-R (выгодные и потенциально самые надёжные) и современными HDD.
Говорю про фреймворк, IDE и официальные библиотеки (да, их создали для обучения), которые формируют сомнительную экосистему, подходящую для "застревания" в ней вместо дальнейшего развития.
Главное, что там не говорят о достаточности одной копии и отсутствии проверок.
Это хорошо, что у оптики меньше способов умереть, чем у HDD. Но завязываться на единственную копию всё равно рискованно (хоть риск и сложно сравнить с риском почти одновременного выхода из строя нескольких HDD).
но если носитель неспособен хранить 50 лет, то их хоть сколько сделай - не поможет
*Тяжело вздыхает*. Не надо этой агитации (*задумчиво смотрит в известную тему ixbt*). Нет, если твёрдо отказаться от ухода за архивом - как-нибудь неправильно умереть, например, то можно согласиться. С оговорками. Если архив дорастёт до сотни болванок, потомки на них будут очень скептически смотреть. Но если строить планы на 40 лет после внезапной смерти, то уж можно подумать, как передать дела.
Вы сейчас сидите за компом, на котором работает ОС, написанная и проверенная непонятно кем. Вместе с браузером.
Вопросы скорее не к авторам, а к цели и реализации.
Ардуиновский софт создали для обучения и он не менял свою парадигму. Но на этом этапе обучения остановилось огромное количество людей, сформировалось сообщество, которое стало пытаться приспосабливать фреймворк ко всё большему и большему, потому что это ленивый, дешёвый и рабочий путь. В общем, я не сижу на ОС и браузере, написанных на PascalABC.NET.
Робот у них прекрасный. И не бредят как канадцы. И понятно, что оптику не стоит недооценивать (если бы ещё ёмкость...). Но если это были ссылки в подтверждение слов
с этим с легкостью справится всего одна копия на многих бюджетные BD-R
а контроль вовсе не требуется
то они так не считают:
ЭЛАР: "Таким образом выполняется правило 3-2-1: ...".
Говорят про непростые диски (Archival Grade)
Росархив не испытывает удачу касательно проверок и условий хранения. "Проверка наличия электронных архивных документов на обособленных носителях осуществляется раз в 5 лет", температура такая-то, влажность такая-то, их колебания такие-то, проверка заключается в том-то (приказ Росархива 77), исключений для оптики не видно.
Также слова Sony про свои пост-блю-рейные диски: “3-2-1 Best Practice” as an archive industry standard. Follow the “3-2-1 rule” for safe, long-term data storage.
Также свежий стандарт ECMA про оптику ("fully aligned with ISO/IEC 18630:2023") делит диски на классы "10+, 30+, 100+ лет" (и предлагает periodic quality test). Не "многие бюджетные BD-R точно пролежат 40 лет", а "лучшие BD-R имеют estimate value of lifetime не меньше 40 лет".
Лазердиски, как и VHS, аналоговые (за исключением некоторых аудиодорожек)
Такого минуса нет, аналоговый сигнал не является точным, он снизу тоже ограничен шумами, а шумит каждый резистор. Чтобы цифровой шум (aka ошибка квантования) вёл себя как аналоговый, используют дизеринг.
Впрочем, цифра позволяет дёшево опускать уровень шумов, поднимая разрядность, и тогда вид шума теряет значение. Для видео нужно, чтобы разница между соседними ступенями яркости была не больше минимально различимого контраста (minimum detectable contrast, just noticeable difference), иначе в первую очередь градиенты пострадают.
Позволит, потому что статья исходит из того, что за архивом будут ухаживать - как минимум менять сломавшиеся диски (тема периодических проверок не раскрыта - частота scrub'ов и т.д.).
Оптика выигрывает* в варианте без нормального ухода, но из-за неудобства поощряет вредные привычки - не проверять сохранность, поверить в непогрешимость и забить на 3-2-1 ("всего одна копия").
Вообще, поведение HDD и SSD в варианте без нормального ухода не так просто рассмотреть. SSD слишком дорогие (иначе бы уже не в шутку говорили о заморозке ради замедления утечки в тыщу раз), а HDD развиваются, архивы постоянно переносились на более ёмкие диски.
* однако консервный институт Канады все BD-R оценил в 5-10 лет. Очень странно, но ведь аж институт.
Ещё, получается, displayFrame() занимается
переворачиваниемтранспонированием кадра, от которого особенно не захочется избавляться из-за возможности "рисовать кадр" двоичными литералами.И от которого нельзя удачно избавиться изменением направления сканирования матрицы (не построчно, а по столбцам), потому что зажигая строку мы имеем резистор параллельно каждому светодиоду, а при зажигании столбца такой "гарантии равномерного свечения" на этой плате не будет - будет один резистор на все светодиоды.
Я бы в такую сторону думал (выделил русским временные комменты):
Кажется, оно должно плохо работать из-за ошибок в алгоритме.
Динамическая индикация не даёт зажечь все светодиоды одновременно, из-за неё мы можем одновременно зажечь только 1 строку (или столбец). То есть одновременно может гореть только 1/8 часть матрицы.
Но из-за этого кода во внутреннем цикле получается сокращение до 1/64:
А из-за отсутствия задержек много времени будет потрачено на исполнение кода (обслуживающего индикацию), в это время матрица не горит.
Из delayWithRefresh() можно почти всё убрать.
Регулировка яркости если работает, то из-за аналогичной неявной задержки (на вызов milis() и т.д.) - у условия
if (_pwm < _intensity) {<проводим здесь xxx времени>}нет ветки else с аналогичной задержкой.В displayFrame() (который всё-таки не показывает, а загружает в SRAM) заранее упакованные (1 строка - 1 байт) значения из флеш-памяти распаковываются (8 проходов по каждому байту) и снова упаковываются, хотя их достаточно только прочитать из флеша. А читать их можно побайтово там, где они используются в коде - эта функция и массив _pixels оказываются не нужны[*].
Можно двоичные литералы применить здесь:
C++14 их даёт в таком виде: 0b0010'1111, но если компилятор старее, то библиотеки Arduino дают их в виде констант препроцессора типа B00101111.
Как видится полноценный алгоритм для матрицы:
Для каждой строки:
Подготовить столбцы - подать напряжение (логическую единицу) на нужные аноды диодов[**]
Включить строку - подать лог.0 на строку (т.е. на катоды диодов, чтобы ток втекал в мк)
Задержка - такая, чтобы получить частоту обновления в 100..1000 Гц
Выключить строку - подать лог.1 на строку
<-- сюда можно перекинуть часть задержки для реализации регулировки яркости
[*] вообще, особое отношение к константам во флеше требуется из-за того, что AVR с его гарвардской архитектурой слишком старый с точки зрения C++ - расширение Named Address Spaces есть только для C.
[**] без Arduino-фреймворка это можно сократить до
PORTB = _pixels(i);(вместо того внутреннего цикла), если развести плату так, чтобы выводы столбцов приходились на один порт. Но в любом случае, фреймворк здесь добавляет проблем - заставляет думать о тяжести восьми вызовов digitalWrite().___
Какая-то статья про динамическую индикацию с хорошим описанием алгоритма: https://microsin.net/programming/avr/led-matrix-dynamic-indication.html
___
Исправление алгоритма повысит ток (как и уменьшение резисторов), надо подумать:
насколько просядет напряжение питания (=> стабильность микроконтроллера)
не станет ли яркость строки зависеть от количества включённых светодиодов из-за просадки напряжения (сейчас она не может зависеть, потому что одновременно горит только 1 светодиод)
насколько безопасно для выходов микроконтроллера
Как евклидово расстояние в цилиндре - т.е. не надо OKLab переводить в его версию с
полярнымицилиндрическими координатами (OKLCH), надо остаться в OKLab"Because Oklab is more perceptually uniform than CIE Lab, the color difference is a straightforward distance in 3D space (root sum of squares)" https://www.w3.org/TR/css-color-4/
Этот вариант и в CIELab имеет право на жизнь, только CIELab хуже (неравномернее) и сильно стандартизирован, что, видимо, подкрепляло идею улучшать "perceptually uniformness" у вариантов вычисления расстояния, а не у пространства (не менять пространство). И с уклоном в науку, а не красивые градиенты - "Международная комиссия" может больше углубляться в измерение расстояния.
В них ничего не совпадает, кроме идеи кодировать тон (hue) одной компонентой.
HSV и HSL - это наивный подход к проблеме. Можно было бы сказать, вычислительно облегчённый, если бы не наивность в V=max(R,G,B) и L=0.5*(max(R,G,B)-min(R,G,B)).
OKLCH - современный (в плане вычислительной сложности - тоже...). Это новая вариация на тему CIELab (OKLab), только в полярных координатах (прямоугольные координаты a и b в радиус Chroma и угол Hue).
https://bottosson.github.io/posts/oklab/#motivation-and-derivation-of-oklab
Нет, вы в статье критикуете решение, а общеизвестной формулировке доверяете.
Скажу сам про первоисточники - есть ещё комментарии Симпликия к "Физике", которые оказываются не только комментариями, но и вторым первоисточником, потому что апория там описывается подробнее (т.е. видимо, Симпликий опирался на что-то ещё, дошедшее через 800 лет до него, но не дожившее до нас).
Симпликий тоже так не считает.
Скрытый текст
Зенон утверждает, что между громкостями такая же пропорция, как между количеством:
мешок : 1 зерно : 1 / 10 000 зерна
‘Well, then, is there not a ratio [logos] of a medimnus of millet seeds to one [millet seed] and to a ten-thousandth of one?’ When [Protagoras] asserted that there was, Zeno said, ‘Well, then, will not the ratios of the sounds to one another be the same?
Hagen, Charles (1994). Simplicius: On Aristotle Physics 7
Аристотель возражает, что можно наблюдать, как при делении такая пропорция нарушается и имеет в виду появление нелинейности.
But when the force has been partitioned, he says, the proportion is not preserved, though it is preserved when it is combined
Симпликий приводит пример - говорит, что трибологии у них ещё нет, но отрицание нелинейности означало бы возможность сдвинуть массу горы силами одного человека, пусть и медленно.
Но пока не очевидно, почему эта пропорция не сохраняется вечно. Однако всякий, кто утверждает, что она сохраняется вечно, столкнётся с ещё более загадочным результатом, чем этот, [а именно] с тем, что один человек передвинул бы гору Афон, если бы она случайно отделилась от земли. Ведь если он сдвинет один камень, принадлежащий горе Афон, на такое-то расстояние за такое-то время, почему он не сдвинет всю гору на какую-то часть этого расстояния за многократно большее время? ... существует некий предел [horos], как для наименьшей силы ... так и для наибольшего перемещаемого веса (гуглоперевод Хагена)
Из статьи получается, что Аристотель Зенона не понял, Симпликий не понял, Фома Аквинский не понял и только сейчас поняли Зенона. А может, сейчас стали придумывать преемственность между древней философией (в современном значении слова) и современной наукой, чтобы извлекать из этого выгоду? Известные имена и заявления про плечи гигантов придают вес, привлекают внимание и работают на разных уровнях (приносят выгоду как одному философу, так и всей Западной цивилизации). Также удобно, что Зенон не может возразить и что философия в принципе достаточно размыта, чтобы скрыть негативные утверждения (Из правоты Зенона следует неправота Аристотеля? Ответим уклончиво...).
Мальчик записывает в соавторы профессора, муж ссылается на древних философов.
_____
По Аристотелю (а есть другие первоисточники?) Зенон, наоборот, утверждал, что любая часть зерна производит шум. Прошу ещё одну статью с учётом этого нового обстоятельства.
"Ведь из того, что целая сила продвинула [тело] на определенную длину, не следует, что половина силы продвинет [это же тело] на сколько-нибудь в какое бы то ни было время <...> Поэтому-то неправильно рассуждение Зенона, что любая часть просяного зерна произведет шум" - https://ru.wikisource.org/wiki/Физика_(Аристотель;_Карпов)/Книга_7/Глава_5#:~:text=Ведь из
"Hence Zeno's reasoning is false when he argues that there is no part of the millet that does not make a sound" - https://isidore.co/aquinas/Physics7.htm#8:~:text=Hence Zeno
Фома Аквинский Аристотеля трактует так - Зенон ошибался, считая, что из звучание одного зерна следует из звучания целого мешка (и где-то вокруг витают заблуждения насчёт трения покоя?).
"argument of Zeno who wished to prove that each grain of millet falling to the earth makes a sound, because an entire bushel of it, when poured to the earth, makes a sound ... it is not the part but the whole that acts" - https://isidore.co/aquinas/Physics7.htm#8:~:text=960. Then
Или, может, ну его, и лучше обсудить четвёртый том "Проблем" Аристотеля? Там затрагиваются вопросы
секса в носкахнегативного влияния босоногости на половой акт (не шучу).+1, надо было сказать, что риск кажется пренебрежимо малым, но вообще на MakeMKV есть с десяток историй о таких случаях с Blu-ray и про "зацарапывание" говорили:
Как человек без крыши сможет накопить кучу предупреждений и забить на этичное поведение? Ему объяснят, что даже этичное поведение - это правило, увидят упорное "мы ещё посмотрим, кто кого прогнёт" и накажут.
Давайте, попробуйте пообщаться там фразами "I have no idea who the fuck you are". Да и на хабре можете попробовать.
Запрос к администраторам на тему удаления обсуждений там закончился тем, что "There's no consensus for any action against Jorm here".
Выбывании из гонки. Гонки объёмов (чтобы снижать стоимость; скорости вместе с объёмом тоже часто растут). Выбывание из этой гонки не мешает ценить долговечность оптики.
Админша спрашивает мнение (cc Jorm) бывшего сотрудника, а удаляют они на пару вдвоём. Мнение Jorm'а можно угадать, потому что цитату из новости Phoronix он уже удалял из статьи со словами "None of this is sourced".
Власть у Jorm'а есть, раз он на многочисленные предупреждения на своей странице обсуждения без последствий отвечал "Cool story, bro".
Тысяча BD - это неуправляемый объём (даже для сотен бы какой-нибудь самодельный autoloader). А один HDD - очень управляемый и с быстрым доступом ко всему объёму.
Концепция та же, просто HDD и лента продолжили двигаться вперёд, а оптика выбыла из гонки. Если бы оптика на 5.5 ТБ смогла, вы бы не говорили про разницу концепций.
А у вас разлетался BD? Рискованные скорости - это разве не пережиток прошлого (CD и возможно DVD)?
Диски с трещинами засунем в категорию "можно разбить, это общие риски" и постараемся не читать на большой скорости.
Пример ситуации, где налёт цивилизованности истончился: бывший сотрудник Wikimedia Foundation со словами "Not a forum" откатывает обсуждение, в которое принесли авторитетный источник (чтобы подкрепить им статью, которую тоже постоянно откатывают). Достойных противников для войны не нашлось, всё откатили.
Жизнь в википедии (чьи-то наблюдения за ней перетекают в wikireality.ru) с определённого уровня становится похожа на политику IRL.
Но польза всё равно сильно перевешивает. Там и надёжный хостинг исторических документов, и ключ к источникам, без которого не добраться до нужных книг или страниц вебархива, и много тем, которые большой политикой сложно испортить.
"Любой носитель может внезапно умереть => 1 копия принципиально ненадёжна" - это полезная эвристика, но надо признать, у BD-R тут ситуация необычно хороша.
Его можно украсть, изъять, сжечь, разбить, это общие риски. Но
он не может сломаться в процессе чтения
есть прямой доступ к показателям количества сырых ошибок* (raw bit error rate), то есть можно заглянуть глубже факта "ЕСС пока что справляется" и обойтись без косвенных оценок RBER по скорости чтения (как здесь в посте, под спойлером про эксперимент над MicroSD)
очень дружелюбен к варианту "прочитать целиком с ошибками и использовать свои коды коррекции (PAR2 и т.п.)", SSD здесь хуже всех (над LTO висит туман войны, но вроде тоже плох)
предсказуемость деградации примерно как у утечки заряда из ячеек ("can be shown to follow Arrhenius laws" - ECMA-413); деградация локальная, без "а из-за этой болезни нечитаемым станет весь диск" (но с многослойными BD-R может быть сложнее)
* Только вот стандарты оценивают время жизни по одним показателям (RSER и BE), а утилиты показывают другие (LDC и BIS) или требуют один специальный привод (BDR-PR1M).
Особенно впечатляет тысячекратная разница в ёмкости между однослойными BD-R (выгодные и потенциально самые надёжные) и современными HDD.
Говорю про фреймворк, IDE и официальные библиотеки (да, их создали для обучения), которые формируют сомнительную экосистему, подходящую для "застревания" в ней вместо дальнейшего развития.
А вы лихо называете GRBL, даже не открыв его код.
Как бы тут объяснить несогласие (особенно с учётом того, что мы не говорим про железо)... противоположностью MacOS является разве что ASIC.
Но к чему их повторять? Они были на скриншотах.
Главное, что там не говорят о достаточности одной копии и отсутствии проверок.
Это хорошо, что у оптики меньше способов умереть, чем у HDD. Но завязываться на единственную копию всё равно рискованно (хоть риск и сложно сравнить с риском почти одновременного выхода из строя нескольких HDD).
*Тяжело вздыхает*. Не надо этой агитации (*задумчиво смотрит в известную тему ixbt*). Нет, если твёрдо отказаться от ухода за архивом - как-нибудь неправильно умереть, например, то можно согласиться. С оговорками. Если архив дорастёт до сотни болванок, потомки на них будут очень скептически смотреть. Но если строить планы на 40 лет после внезапной смерти, то уж можно подумать, как передать дела.
Вопросы скорее не к авторам, а к цели и реализации.
Ардуиновский софт создали для обучения и он не менял свою парадигму. Но на этом этапе обучения остановилось огромное количество людей, сформировалось сообщество, которое стало пытаться приспосабливать фреймворк ко всё большему и большему, потому что это ленивый, дешёвый и рабочий путь. В общем, я не сижу на ОС и браузере, написанных на PascalABC.NET.
Робот у них прекрасный. И не бредят как канадцы. И понятно, что оптику не стоит недооценивать (если бы ещё ёмкость...). Но если это были ссылки в подтверждение слов
то они так не считают:
ЭЛАР: "Таким образом выполняется правило 3-2-1: ...".
Говорят про непростые диски (Archival Grade)
Росархив не испытывает удачу касательно проверок и условий хранения. "Проверка наличия электронных архивных документов на обособленных носителях осуществляется раз в 5 лет", температура такая-то, влажность такая-то, их колебания такие-то, проверка заключается в том-то (приказ Росархива 77), исключений для оптики не видно.
Также слова Sony про свои пост-блю-рейные диски: “3-2-1 Best Practice” as an archive industry standard. Follow the “3-2-1 rule” for safe, long-term data storage.
Также свежий стандарт ECMA про оптику ("fully aligned with ISO/IEC 18630:2023") делит диски на классы "10+, 30+, 100+ лет" (и предлагает periodic quality test). Не "многие бюджетные BD-R точно пролежат 40 лет", а "лучшие BD-R имеют estimate value of lifetime не меньше 40 лет".
Лазердиски, как и VHS, аналоговые (за исключением некоторых аудиодорожек)
Такого минуса нет, аналоговый сигнал не является точным, он снизу тоже ограничен шумами, а шумит каждый резистор. Чтобы цифровой шум (aka ошибка квантования) вёл себя как аналоговый, используют дизеринг.
Впрочем, цифра позволяет дёшево опускать уровень шумов, поднимая разрядность, и тогда вид шума теряет значение. Для видео нужно, чтобы разница между соседними ступенями яркости была не больше минимально различимого контраста (minimum detectable contrast, just noticeable difference), иначе в первую очередь градиенты пострадают.
Ну что за фанатизм.
Позволит, потому что статья исходит из того, что за архивом будут ухаживать - как минимум менять сломавшиеся диски (тема периодических проверок не раскрыта - частота scrub'ов и т.д.).
Оптика выигрывает* в варианте без нормального ухода, но из-за неудобства поощряет вредные привычки - не проверять сохранность, поверить в непогрешимость и забить на 3-2-1 ("всего одна копия").
Вообще, поведение HDD и SSD в варианте без нормального ухода не так просто рассмотреть. SSD слишком дорогие (иначе бы уже не в шутку говорили о заморозке ради замедления утечки в тыщу раз), а HDD развиваются, архивы постоянно переносились на более ёмкие диски.
* однако консервный институт Канады все BD-R оценил в 5-10 лет. Очень странно, но ведь аж институт.