Можно ли в Python создавать бинарные файлы? Конечно можно.
Для этого в Python есть следующие инструменты:
▫️ тип данных bytes и bytearray
▫️ открытие файла в режиме wb (write binary) или rb (read binary)
▫️ модуль struct
Про модуль struct поговорим в первую очередь.
Файл в формате JSON или Yaml внутри себя содержит разметку данных. Всегда можно определить где список начался а где закончился. Где записана строка а где словарь. То есть формат записи данных содержит в себе элементы разметки данных.
В binary-файле данные не имеют визуальной разметки. Это просто байты, записанные один за другим. Правила записи и чтения находятся вне файла.
Модуль struct как раз и помогает с организацией данных в таком файле с помощью определения форматов записи для разных частей файла.
Модуль struct преобразует Python-объекты в массив байт, готовый к записи в файл и имеющий определённый вид.
Для этого всегда следует указывать формат преобразования (или, как оно здесь называется - запаковки).
Формат нужен для того, чтобы выделить достаточное количество байт для записи конкретного типа объекта. В последствии с помощью того же формата будет производиться чтение.
При этом следует помнить что мы говорим о типах языка С а не Python.
Именно формат определяет, что записано в конкретном месте файла, число, строка или что-то еще.
Вот какие токены формата у нас есть.
Помимо этого, первым символом можно указать порядок байтов. На разных системах одни и те же типы данных могут записываться по-разному, поэтому желательно указать конкретный способ из доступных. Если этого не сделать, то используется символ '@', то есть нативный для текущей системы.
В строке формата мы пишем в каком порядке и какие типы собираемся преобразовать в байты.
Запакуем в байты простое число, токен "i".
>>> import struct
>>> struct.pack('=i', 10)
b'\n\x00\x00\x00'
Теперь несколько float, при этом нужно передавать элементы не массивом а последовательностью аргументов.
>>> struct.pack('=fff', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Вместо нескольких токенов можно просто указать нужное количество элементов перед одним токеном, результат будет тот же.
>>> struct.pack('=3f', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Теперь запакуем разные типы
>>> data = struct.pack('=fiQ', 1.0, 4, 100500)
я запаковал типы float, int и unsigned long long (очень большой int, на 8 байт)
b'\x00\x00\x80?\x04\x00\x00...'
Распаковка происходит аналогично, но нужно указать тот же формат, который использовался при запаковке. Результат возвращается всегда в виде кортежа.
>>> struct.unpack('=fiQ', data)
(1.0, 4, 100500)
Как видите, ничего страшного!
#lib#basic
Rules of neuroplasticity
N4 Repetition matters
Повторение имеет значение - пожалуй, самое простое и фундаментальное!
⠀
Если вы хотите добиться успеха в любом типе движения или активности, ключом к успеху является повторение, или как говорится простым языком «повторение-мать учения». Когда изначально выполняется определенная задача, мозг становится очень любопытным. Это любопытство повышает определенные уровни нейротрансмиттеров, которые закладывают основу для нейропластичности ( выстраиваете новых нейронных связей). Чем больше повторяется деятельность, тем больше мозг критикует и строит пластичность в определенных путях ( в процессе повторения вокруг аксонов образуется всё более прочная миелиновая оболочка ( белое вещество), за счёт чего импульс, переходящий от одних нейронов к другим, «усиливается и ускоряется»).
Повторение создает инграмму (ансамбль нейронов), делая деятельность все легче и легче, пока она не станет автоматической.
⠀
Продуктивных вам тренировок!
⠀
#trainyourbrain#нейропластичность
Продолжаем тему принципов нейропластичности ( предидущие посты можно прочитать по хэштегу #10принциповнейропластичностивтренировках )
10 принципов нейропластичности
N8 Возраст имеет значение
⠀
Наш мозг наиболее гибкий и адаптивный, когда мы молоды. Но связи в нашем мозгу могут расти и меняться в любом возрасте! Эффекты, как правило, лучше у людей с большей физической и умственной активностью.
⠀
Не так давно общее мнение среди
нейробиологов было то, что взрослый мозг не может измениться. Теперь мы знаем, что это неправда! Ваш мозг может меняться в ЛЮБОМ возрасте и не просто может -он меняется постоянно!
И только от нас зависит, в какую сторону происходят эти изменения!
⠀
Говоря языком тренировочного процесса, это значит, что начинать и продолжать тренировать, в целом, любые навыки можно в любом возрасте! Лично для меня отдельная гордость и безмерное уважение заниматься с учениками «за 50», с людьми, у которых огромный жизненный опыт, много других навыков и которые и дальше пробуют и учатся новому, и от которых я и сам многому учусь! А таких уже было несколько! И их результаты - лучшее доказательство научных теорий! И пускай технические скиллы может и не так быстро нарабатываются, но главное - очевидный прогресс! Один из ярких примеров - мой уже друг и участник одного из первых онлайн-курсов - Mr Pasquale Ricci🙏🏻 50 лет, 20 лет служил в полиции в Неаполе ( Италия) и выйдя на пенсию, решил встать за стойку! В прошлом году проходил онлайн-курс и это был один из самых благодарных учеников! И для него стало огромным открытием, что в свои 50 лет он может так умело пользоваться левой рукой👍
⠀
И ещё момент - у взрослого ( уместнее даже сказать, у зрелого) человека обычно более четкие цели и понимание «зачем и для чего», что даёт свои преимущества в тренировочном процессе и понимание, что «не всё сразу»!
⠀
Тренируйтесь.. в любом возрасте! А чем раньше начнёте, тем больше шансов достичь значительного прогресса ( насчёт успеха вопрос, так как тут ещё зависит, как эти навыки каждый сумеет применить)!
⠀
#trainyourbrain#10принциповнейропластичностивтренировках
10 principals of neuroplasticity
N5 Intensity matters
⠀
Интенсивность имеет значение
При попытке вызвать нейропластические изменения в нервной системе важна интенсивность желаемого упражнения, мысли, движения и т. д. Чем интенсивнее программа тренировок, тем больше вероятность того, что человек не только достигнет результатов, но и создаст долгосрочные изменения в нервной системе.
⠀
«Индукция пластичности требует достаточной интенсивности». Вопрос о надлежащей интенсивности тренировок также следует этой концепции повторения: «Какова необходимая правильная дозировка тренировки? Сколько раз в неделю? Как долго должны длиться эти тренировки?» Исследования показывают, что чем интенсивнее программа тренировок в сочетании с достаточным временем для восстановления, тем больше вероятность того, что человек достигнет результатов, и тем больше вероятность того, что эти изменения будут сохраняться с течением времени.
⠀
Отсюда напрашиваются несколько выводов относительно тренировок с барным инвентарём, что для достижения более быстрых и качественных результатов эффективнее заниматься:
во-первых, достаточно часто ( или каждый день, или хотя бы 2 дня через один) в течение достаточного количества времени, чтоб не переутомиться и в то же время устать (1,5-2 часа вполне может быть достаточно);
Во-вторых, интенсивно, то есть полностью отдаваясь процессу и постоянно развивая скорость до предельной для себя в разных упражнениях. Сначала учимся понимать, что происходит и как это работает, а дальше -начинаем развивать скорость.
⠀
Если вы тренируете разные движения каждый день и какое-то не очень хорошо получается, сделайте на нем особый акцент и посвятите часть времени ( например, 20-30 минут из 1,5 часовой тренировки) только этому движению на каждой тренировке в течение нескольких дней ( минимум, дней 10) и посмотрите на результат.
Да, бывает это скучно и нудно, но когда почувствуете скорость - невозможно остановиться!
⠀
Интенсивных вам тренировок!
⠀
#trainyourbrain#craftbarskills#craftbarskillsonline#craftbarskillsonlineeng#bartendersbrain#practiceeverywhere
10 principals of neuroplasticity
N6 Time matters 🧠⌛️
⠀
Продолжаем тему нейропластичности и эффективного использования основных принципов в подходе к тренировкам.
Время имеет значение. Этот аспект особенно важен в отношении восстановления каких-либо повреждений мозга - чем раньше, тем лучше. Различные формы пластичности проявляются в разное время во время тренировки. Чем раньше вы сможете начать терапию после травмы нервной системы, тем лучше. Исследования показывают, что вы всегда можете что-то улучшить, но самые большие возможности для изменений в мозгу открываются на раннем этапе. Фактор времени может быть даже более важным после повреждения головного мозга, учитывая динамические изменения в нервной среде, которые происходят независимо от какой-либо реабилитации.
⠀
Но этот аспект также можно и применить к построению тренировочного процесса.
⠀
1️⃣Во-первых, тренировки будут эффективнее, и мозг будет быстрее формировать движения ( навыки), если тренироваться примерно в один часовой промежуток изо дня в день.
2️⃣Во-вторых, гораздо эффективнее тренироваться на «свежую голову», когда мозг ещё свеж, и психический ресурс не истощён, то есть в первой половине дня после пробуждения. Особенно когда речь идёт о каких-то новых для вас движениях и навыках. Понятно, что не всегда можно для себя организовать такой график. И порой приходится тренироваться тогда, когда есть на это время. И в этом случае будет эффект. Суть в том, что в случае тренировки на «свежую голову», этот эффект значительно сильнее и навыки нарабатываются быстрее. Этот принцип также используется и в планировании других задач, сначала решать самое необходимое, важное и сложное, а дальше - попроще, так как в любом случае от нагрузки мозг устаёт, и просто может не хватить сил и психических резервов на сложные задачи.
3️⃣Третье, выбирайте подходящее для себя время, когда вы сами чувствуете, что тренировки становятся наиболее эффективными. И если ваш график устроен так, что есть время только глубокой ночью, то и забудем про все предыдущие правила -главное, что оно вообще есть!
⠀
Своевременных вам тренировок!
⠀
#trainyourbrain#10принциповнейропластичностивтренировках#craftbarskills#craftbarskillsonline#craftbarskillsonlineeng#bartendersbrain#practiceeverywhere