Перезапись хороша, если будет кому этим заниматься. А этим будет кому заниматься, если речь о данных, имеющих долгосрочную ценность для неограниченного круга лиц (например, порно-фильмы).
А вот если речь о семейном фото-архиве, то можно, конечно, воспитывать детей и внуков в собственной семейной коммуне так, чтобы хранение и перезапись семейного архива стали своего рода культом, но… хм...
Я бы сконцентрировался на разработке дешевого метода производства мелких стеклянных шариков с записью в них инфы лазером формируя пузырьки. Схема такая:
Берём песочек и делаем полностью автоматический завод по производству из него стеклянных бусин с данными внутри, закодированными положением пузырей от лазера внутри.
В каждую такую гранулу поместится немного данных, но мы же делаем действительно "холодное" хранилище и вопрос лишь в аккуратной индексации.
Размер и инертность гранул позволит им быть механически и химически устойчивыми к повреждениям. Слой стекла на поверхности позволит им пережить полировку. Запись осуществляется лазерами, а фокусировать их человечество умеет неплохо. Чтение можно делать многоракурсной фотосъёмкой через микроскоп. Можно добиться огромной избыточности. Легко делать конвейерные линии для автоматической обработки таких гранул. Легко параллелить любые процессы с ними.
Можно даже делать автоматические репликаторы таких данных, которые на входе принимают песочек (или стеклотару) и солнышко (всего этого полно на пляжах или в пустыне), а на выходе несметное число гранул с данными, которые даже экологию не портят.
Действительно, избыточность и регулярное восстановление утерянного — это очевидный подход.
Однако многие забывают (хотя, пардон, вот Vaitek упомянул), что резервировать нужно и самого себя, в чьей голове хранится информация о том, что где лежит и как это обслуживать.
Это я к тому, что в первую очередь нужно разрабатывать стандарты хранения и регулярного восстановления и данных. Стандарты и алгоритмы следует публиковать в научных журналах и патентовать под открытой лицензией.
Лично я вижу пути решения вопроса долгосрочного хранения данных в первую очередь в программной плоскости. Аппаратные носители постоянно совершенствуются (иногда не в сторону увеличения надежности) и теряют обратную совместимость, но концепции потока цифровых данных, файловой системы, инкрементального хранения изменений, мне кажется, переживут нашу цивилизацию.
Нужно формировать стандарты хранения метаданных, стандарты версионирования, стандарты документирования и самодокументирования форматов, стандарты репрезентации данных (это когда мы формируем новую структуру хранения и представления данных, но при этом сохраняем старую и описываем в метаданных все связи и методы преобразования старой структуры в новую).
Придётся, блин, писать-таки на эту тему статью. Эх. Давно в загашниках тема статьи о вариантах реализации правильного Датахранилища Судного Дня.
try:
import RPi.GPIO as GPIO
except ModuleNotFoundError:
pass
можно использовать куда более элегантные конструкции из стандартной библиотеки:
with contextlib.suppress(ModuleNotFoundError):
import RPi.GPIO as GPIO
def rasperrypi_cleanup():
with contextlib.suppress(Exception):
GPIO.cleanup()
Хотя я бы, конечно, сделал класс-адаптер для работы с аппаратной частью и при ошибке инициализации создавал экземпляр мокапа для отладочных целей с соответствующим ворнингом:
Так и правильно. На кой леший роботу на борту GUI?
а заморачиваться командной строкой ну такое себе для пользователя.
А вот тут вы совершенно напрасно пренебрегаете командной строкой.
С ней новичку даже проще, поскольку легко явно описать набор команд и ожидаемый результат. С GUI придётся что. скринкаст записывать? Легко промахнуться или что-то забыть.
Прелесть командной строки в том что можно сделать скрипты для всего и всё сведётся к запуску пары команд.
Да точно так же можно пробрасывать UART через малинку. Какая разница? Просто указываться будет IP малинки, а один из её портов будет перенаправлен на ногу GPIO чтобы дёргать Мегу.
Ну вполне верное утверждение. Некоторые тролли были выпилены с ресурса, кто-то попробовал клей в юном возрасте, а willyd, вот вошел в сонм альфа-интеллектуалов, способных вести оживлённую интересную дискуссию на этом ресурсе.
Каждый такой компромисс сам по себе, возможно, оправдан и, наверно, не критичен, но в целом привлекательность и универсальность платформы понижает, а порог вхождения чуточку повышает.
На тех же соревнованиях наличие автоматизированной или вовсе автоматической прошивки по воздуху — это большое дело. В таких вопросах любая автоматизация деплоя бортового ПО и его обновлений — это, иногда, вопрос жизнеспособности проекта, если речь идёт об обучении неопытных и еще не до конца определившихся в своём энтузиазме юниоров. Не Rocket Science прошивка по воздуху. Такие вещи и отличают серьёзные платформы от кустарных поделок.
Вот, кстати, задался тем же вопросом, но в статье не увидел внятного объяснения.
Почему бы вообще не задействовать GPIO RPi для подключения неосновной периферии, а на долю ESP оставить только контроль аккумулятора, управления драйверами двигателей, одометры и самые базовые неотключаемые сенсоры, плюс низкоуровневый веб-интерфейс и канал для связи.
Вообще эволюционный процесс более менее угадывается, если учесть, что RPi изначально не было. Всё таки сделать on-board самопрошивку ESP по вайфай — это, видимо, очень непростая задача, если вообще возможная.
Раз уж вы не слабо так заморочились на стандартизации модулей, что, в общем-то, имеет смысл, наверно полезно было бы найти подходящую симуляционную платформу и сделать для неё модель вашего робота для отладки алгоритмов, так сказать, in vitro.
Если удастся сделать достаточно адекватную модель, то к развитию программной составляющей проекта сможет подключиться гораздо больше народу.
Можно даже организовать своеобразные соревнования алгоритмов на вашей платформе. Разрабатывается несложная полоса препятствий, публикуется её модель и полный SDK с симулятором в комплекте, разрабатывается регламент турнира и устраиваются отборочные соревнования с очным финалом на реальном полигоне в каком-нибудь спортзале.
Участвовать в таком мероприятии можно даже удалённо, если сделать процесс загрузки прошивки в робота максимально дружественным и автоматизированным.
Мне кажется это бы здорово позволило популяризировать как платформу, так и направление в целом. Может быть и спонсоры на такой замечательный проект подтянутся.
Интересно, кто-нибудь додумался выпускать Ковёр Серпинского IRL, чтобы можно было его на стену повесить или как буржуи у кроватки или камина положить...
Присоединюсь к вопросу. Какова получается примерная себестоимость робота включая и не включая 3d-печать. Для печати можно взять средние цены в fab-lab'ах.
Не думали адаптировать свою платформу под что-то утилитарное, вроде пылесоса. Уж очень форм-фактор располагает.
Странный вывод. Ну и открытые вопросы остаются: настоящее пополнение или просто смс "якобы от банка"? Имя и отчество получить вообще не проблема, просто по номеру делаешь перевод и прежде чем согласиться на его отправку увидишь "Имя Отчество Ф." Этого достаточно, чтобы обратиться к человеку от имени сотрудника банка и запудрить ему мозги. Смотря что за человек. А если человек еще и занят окажется и не готов вникать в проблему...
UPD. Ой… не понял сразу. Пополнение не от мошенников. Ок. Да, тут вопрос. Может быть жулики просто в корзине с чеками около банкомата покопались?
А я не предлагаю ничего ни на кого перекладывать. Каждый должен делать своё дело: чиновники правильно делегировать проектные и управленческие задачи, пешеходы заботиться о своей жизни, автомобилисты осознавать, что управляют опасной штукой и грамотно оценивать риски. Пешеход может и мудак, что полез через забор и разулся попав под колёса, но сидеть то водителю всё равно, ведь сбивать пешеходов запрещается даже вне зебры, а чиновники обычно очень легко отделываются, хотя правильно спроектировать городскую среду сделав ее более безопасной — это их работа и где по-вашему прописана ответственность за бездарно продуманную городскую инфраструктуру? Эта ответственность уже размазана по сотне некомпетентных бездарей, сидящих у власти.
И какая в итоге разница кто виноват в первую очередь, а кто в последнюю, если пешеход виноват только в своей смерти, водитель чуть меньше, но в чужой, а наворотивший херни чиновник виноват в сотнях смертей, но немножечко, вместе с коллегами. Хрен посчитаешь и разгребёшь эту энтропию.
А вы что же считаете, что чиновники совсем не виноваты, а только пешеходы? Какая-то однобокая позиция.
Я не знаю что там за конкретная ситуация, но часто вижу такие решения "в лоб":
Часто давят на переходе? — убрать переход;
Лезут через дорогу без перехода? — влупить забор.
Забор даёт водителям лишнюю уверенность и те разгоняются и чаще давят на следующем переходе? — построить 6-метровый переход с трёхпролётными лестницами.
Бабки всё равно лезут через заборчик, поскольку по обледенелой крутой лестнице просто не в силах ходить? — усилить забор, вскопать полосу, развести грязь, штрафовать бабок, еще сильнее спровоцировать разгон потока в городе...
Разогнанный поток начинает биться, нанизываться на забор, создавать огромные пробки? — отлично, давайте расширять проезжую часть за счет тротуаров, заодно по улице не будут ходить пешеходы и не полезут через заборы, и не нужен больше переход… город разделён на гетто, район становится неинтересным, кафешки исчезают, молодёжь не селится...
А как можно было по-другому? Приподнять переход над проезжей частью (это тебе автоматом и лежачий полицейский сразу и способ сохранить ноги пешеходов сухими и чистыми в ливень), хорошо освети (нет, не освяти, а фонарь повесь), сделай сужение проезжей части, чтобы машинам не комфортно было разгоняться, чтобы улица, часто пересекаемая пешеходами стала немного менее интересной для транзитных автомобилистов, чтобы транзитники с бОльшим желанием пользовались объездными...
Понятно. что это не универсальные меры и всё нужно делать по обстоятельствам, но складывается такое ощущение, что какие-то дилетанты начинают принимать решения на основе не пойми чего и виноваты у них только пешеходы, которые лезут под колёса и не хотят пройти лишние 200 метров, да перелезть через подземный переход. В городе пешеходы должны быть главнее водителей, иначе получится Челябинск.
Я по-прежнему считаю, что пример с телеграммом неподходящий, поскольку он про другое. Этот запрет не для граждан, а для Дурова. Граждане не нарушают запрет, поскольку пользоваться телегой не запрещается. Телеге запрещается работать в России, но мало ли что и кем ей запрещается=).
А насчет того, как бороться с нарушением правил… хм…
А целесообразно ли вообще бороться с нарушениями, ведь главное — это не формальное соблюдение каких-то там правил, а уменьшение числа жертв ДТП. Очевидно, простыми наивными правилами этого не добиться, требуются комплексные меры. А это значит, что либо у этих мер вырисовывается действительная и мнимая части (как нынче модно решать проблемы в нашей стране), либо придётся засучить рукава и кроме этой решать сразу массу других нужных задач: доступность городской среды, нивелирование сегрегации населения, расширения зоны комфорта и ответственности горожан за своё окружение… Это не мгновенные процессы, но их нужно продвигать шаг за шагом.
Да всё мне понятно, сударь. Я же пошутил! Причем поддержал ваше недоумение в связи с предполагаемым появлением трупов. Мне тоже не понятно откуда им взяться, кроме как из-за зомби-апокалипсиса.
Капельки легче делать, они прочнее, позиционировать слишком точно не нужно, нужно просто снимать с кучи ракурсов и все делать программно
Перезапись хороша, если будет кому этим заниматься. А этим будет кому заниматься, если речь о данных, имеющих долгосрочную ценность для неограниченного круга лиц (например, порно-фильмы).
А вот если речь о семейном фото-архиве, то можно, конечно, воспитывать детей и внуков в собственной семейной коммуне так, чтобы хранение и перезапись семейного архива стали своего рода культом, но… хм...
Я бы сконцентрировался на разработке дешевого метода производства мелких стеклянных шариков с записью в них инфы лазером формируя пузырьки. Схема такая:
Берём песочек и делаем полностью автоматический завод по производству из него стеклянных бусин с данными внутри, закодированными положением пузырей от лазера внутри.
В каждую такую гранулу поместится немного данных, но мы же делаем действительно "холодное" хранилище и вопрос лишь в аккуратной индексации.
Размер и инертность гранул позволит им быть механически и химически устойчивыми к повреждениям. Слой стекла на поверхности позволит им пережить полировку. Запись осуществляется лазерами, а фокусировать их человечество умеет неплохо. Чтение можно делать многоракурсной фотосъёмкой через микроскоп. Можно добиться огромной избыточности. Легко делать конвейерные линии для автоматической обработки таких гранул. Легко параллелить любые процессы с ними.
Можно даже делать автоматические репликаторы таких данных, которые на входе принимают песочек (или стеклотару) и солнышко (всего этого полно на пляжах или в пустыне), а на выходе несметное число гранул с данными, которые даже экологию не портят.
Действительно, избыточность и регулярное восстановление утерянного — это очевидный подход.
Однако многие забывают (хотя, пардон, вот Vaitek упомянул), что резервировать нужно и самого себя, в чьей голове хранится информация о том, что где лежит и как это обслуживать.
Это я к тому, что в первую очередь нужно разрабатывать стандарты хранения и регулярного восстановления и данных. Стандарты и алгоритмы следует публиковать в научных журналах и патентовать под открытой лицензией.
Лично я вижу пути решения вопроса долгосрочного хранения данных в первую очередь в программной плоскости. Аппаратные носители постоянно совершенствуются (иногда не в сторону увеличения надежности) и теряют обратную совместимость, но концепции потока цифровых данных, файловой системы, инкрементального хранения изменений, мне кажется, переживут нашу цивилизацию.
Нужно формировать стандарты хранения метаданных, стандарты версионирования, стандарты документирования и самодокументирования форматов, стандарты репрезентации данных (это когда мы формируем новую структуру хранения и представления данных, но при этом сохраняем старую и описываем в метаданных все связи и методы преобразования старой структуры в новую).
Придётся, блин, писать-таки на эту тему статью. Эх. Давно в загашниках тема статьи о вариантах реализации правильного Датахранилища Судного Дня.
Вместо ваших подавляющих ошибки try-except'ов
можно использовать куда более элегантные конструкции из стандартной библиотеки:
Хотя я бы, конечно, сделал класс-адаптер для работы с аппаратной частью и при ошибке инициализации создавал экземпляр мокапа для отладочных целей с соответствующим ворнингом:
Там автор про асинхронность затеял… Тогда aiohttp уж надо было брать. Уж куда компактнее и прозрачнее получилось бы.
Так и правильно. На кой леший роботу на борту GUI?
А вот тут вы совершенно напрасно пренебрегаете командной строкой.
С ней новичку даже проще, поскольку легко явно описать набор команд и ожидаемый результат. С GUI придётся что. скринкаст записывать? Легко промахнуться или что-то забыть.
Прелесть командной строки в том что можно сделать скрипты для всего и всё сведётся к запуску пары команд.
Да точно так же можно пробрасывать UART через малинку. Какая разница? Просто указываться будет IP малинки, а один из её портов будет перенаправлен на ногу GPIO чтобы дёргать Мегу.
О, еще можно вот прекрасную лекцию Савватеева послушать: https://www.youtube.com/watch?v=hkhaipY3JmU
Ну вполне верное утверждение. Некоторые тролли были выпилены с ресурса, кто-то попробовал клей в юном возрасте, а willyd, вот вошел в сонм альфа-интеллектуалов, способных вести оживлённую интересную дискуссию на этом ресурсе.
Да! Класс. Дайтедва! И Бутылку Клейна обмыть приобретение.
Каждый такой компромисс сам по себе, возможно, оправдан и, наверно, не критичен, но в целом привлекательность и универсальность платформы понижает, а порог вхождения чуточку повышает.
На тех же соревнованиях наличие автоматизированной или вовсе автоматической прошивки по воздуху — это большое дело. В таких вопросах любая автоматизация деплоя бортового ПО и его обновлений — это, иногда, вопрос жизнеспособности проекта, если речь идёт об обучении неопытных и еще не до конца определившихся в своём энтузиазме юниоров. Не Rocket Science прошивка по воздуху. Такие вещи и отличают серьёзные платформы от кустарных поделок.
Вот, кстати, задался тем же вопросом, но в статье не увидел внятного объяснения.
Почему бы вообще не задействовать GPIO RPi для подключения неосновной периферии, а на долю ESP оставить только контроль аккумулятора, управления драйверами двигателей, одометры и самые базовые неотключаемые сенсоры, плюс низкоуровневый веб-интерфейс и канал для связи.
Вообще эволюционный процесс более менее угадывается, если учесть, что RPi изначально не было. Всё таки сделать on-board самопрошивку ESP по вайфай — это, видимо, очень непростая задача, если вообще возможная.
Раз уж вы не слабо так заморочились на стандартизации модулей, что, в общем-то, имеет смысл, наверно полезно было бы найти подходящую симуляционную платформу и сделать для неё модель вашего робота для отладки алгоритмов, так сказать, in vitro.
Если удастся сделать достаточно адекватную модель, то к развитию программной составляющей проекта сможет подключиться гораздо больше народу.
Можно даже организовать своеобразные соревнования алгоритмов на вашей платформе. Разрабатывается несложная полоса препятствий, публикуется её модель и полный SDK с симулятором в комплекте, разрабатывается регламент турнира и устраиваются отборочные соревнования с очным финалом на реальном полигоне в каком-нибудь спортзале.
Участвовать в таком мероприятии можно даже удалённо, если сделать процесс загрузки прошивки в робота максимально дружественным и автоматизированным.
Мне кажется это бы здорово позволило популяризировать как платформу, так и направление в целом. Может быть и спонсоры на такой замечательный проект подтянутся.
Интересно, кто-нибудь додумался выпускать Ковёр Серпинского IRL, чтобы можно было его на стену повесить или как буржуи у кроватки или камина положить...
Присоединюсь к вопросу. Какова получается примерная себестоимость робота включая и не включая 3d-печать. Для печати можно взять средние цены в fab-lab'ах.
Не думали адаптировать свою платформу под что-то утилитарное, вроде пылесоса. Уж очень форм-фактор располагает.
Странный вывод. Ну и открытые вопросы остаются: настоящее пополнение или просто смс "якобы от банка"? Имя и отчество получить вообще не проблема, просто по номеру делаешь перевод и прежде чем согласиться на его отправку увидишь "Имя Отчество Ф." Этого достаточно, чтобы обратиться к человеку от имени сотрудника банка и запудрить ему мозги. Смотря что за человек. А если человек еще и занят окажется и не готов вникать в проблему...
UPD. Ой… не понял сразу. Пополнение не от мошенников. Ок. Да, тут вопрос. Может быть жулики просто в корзине с чеками около банкомата покопались?
А я не предлагаю ничего ни на кого перекладывать. Каждый должен делать своё дело: чиновники правильно делегировать проектные и управленческие задачи, пешеходы заботиться о своей жизни, автомобилисты осознавать, что управляют опасной штукой и грамотно оценивать риски. Пешеход может и мудак, что полез через забор и разулся попав под колёса, но сидеть то водителю всё равно, ведь сбивать пешеходов запрещается даже вне зебры, а чиновники обычно очень легко отделываются, хотя правильно спроектировать городскую среду сделав ее более безопасной — это их работа и где по-вашему прописана ответственность за бездарно продуманную городскую инфраструктуру? Эта ответственность уже размазана по сотне некомпетентных бездарей, сидящих у власти.
И какая в итоге разница кто виноват в первую очередь, а кто в последнюю, если пешеход виноват только в своей смерти, водитель чуть меньше, но в чужой, а наворотивший херни чиновник виноват в сотнях смертей, но немножечко, вместе с коллегами. Хрен посчитаешь и разгребёшь эту энтропию.
А вы что же считаете, что чиновники совсем не виноваты, а только пешеходы? Какая-то однобокая позиция.
Я не знаю что там за конкретная ситуация, но часто вижу такие решения "в лоб":
Часто давят на переходе? — убрать переход;
Лезут через дорогу без перехода? — влупить забор.
Забор даёт водителям лишнюю уверенность и те разгоняются и чаще давят на следующем переходе? — построить 6-метровый переход с трёхпролётными лестницами.
Бабки всё равно лезут через заборчик, поскольку по обледенелой крутой лестнице просто не в силах ходить? — усилить забор, вскопать полосу, развести грязь, штрафовать бабок, еще сильнее спровоцировать разгон потока в городе...
Разогнанный поток начинает биться, нанизываться на забор, создавать огромные пробки? — отлично, давайте расширять проезжую часть за счет тротуаров, заодно по улице не будут ходить пешеходы и не полезут через заборы, и не нужен больше переход… город разделён на гетто, район становится неинтересным, кафешки исчезают, молодёжь не селится...
А как можно было по-другому? Приподнять переход над проезжей частью (это тебе автоматом и лежачий полицейский сразу и способ сохранить ноги пешеходов сухими и чистыми в ливень), хорошо освети (нет, не освяти, а фонарь повесь), сделай сужение проезжей части, чтобы машинам не комфортно было разгоняться, чтобы улица, часто пересекаемая пешеходами стала немного менее интересной для транзитных автомобилистов, чтобы транзитники с бОльшим желанием пользовались объездными...
Понятно. что это не универсальные меры и всё нужно делать по обстоятельствам, но складывается такое ощущение, что какие-то дилетанты начинают принимать решения на основе не пойми чего и виноваты у них только пешеходы, которые лезут под колёса и не хотят пройти лишние 200 метров, да перелезть через подземный переход. В городе пешеходы должны быть главнее водителей, иначе получится Челябинск.
Я по-прежнему считаю, что пример с телеграммом неподходящий, поскольку он про другое. Этот запрет не для граждан, а для Дурова. Граждане не нарушают запрет, поскольку пользоваться телегой не запрещается. Телеге запрещается работать в России, но мало ли что и кем ей запрещается=).
А насчет того, как бороться с нарушением правил… хм…
А целесообразно ли вообще бороться с нарушениями, ведь главное — это не формальное соблюдение каких-то там правил, а уменьшение числа жертв ДТП. Очевидно, простыми наивными правилами этого не добиться, требуются комплексные меры. А это значит, что либо у этих мер вырисовывается действительная и мнимая части (как нынче модно решать проблемы в нашей стране), либо придётся засучить рукава и кроме этой решать сразу массу других нужных задач: доступность городской среды, нивелирование сегрегации населения, расширения зоны комфорта и ответственности горожан за своё окружение… Это не мгновенные процессы, но их нужно продвигать шаг за шагом.
Да всё мне понятно, сударь. Я же пошутил! Причем поддержал ваше недоумение в связи с предполагаемым появлением трупов. Мне тоже не понятно откуда им взяться, кроме как из-за зомби-апокалипсиса.