Можно ли в 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
#HARD/USDT analysis :
#HARD is currently moving within a bullish channel. The price has retraced and tested the channel's support, indicating a potential rebound soon, with a target to test previous highs. Traders should wait for a breakout above the $0.1627 level to consider a long entry.
TF : 1D
Entry : $0.1627
Target : $0.2400
SL : $0.1264
#HARD/USDT analysis :
#HARD is currently in an uptrend, trading above the 200-period exponential moving average (EMA) and forming new highs. The price is now retracing toward a significant support zone. It is expected that the price will test this support area before resuming its bullish momentum. Following this, previous highs are likely to be tested.
TF : 2h
Entry : $0.1578
Target : $0.2005
SL : $0.1358
#HARD/USDT analysis :
#HARD is currently encountering resistance at the daily TF 200ema. The price is expected to break below the 200ema on the 4h TF and likely test the previous swing low. For a confirmed entry, wait for the break of the $0.1229 level.
TF : 4h
Entry : $0.1229
Target : $0.1013
SL : $0.1370
#HARD result
1st target achieved in just 1 Hour ✅
One more quick profit 7%+💰🤑
👉 More quick profit signals available in premium channel. Hurry up 🏃♂👇
☎️ Contact @MichaelStrategiesVip
Эпик фейл нового iPhone 16: устройства сами перезагружаются по несколько раз в день.
О проблеме с телефонами iPhone 16 Pro или iPhone 16 Pro Max пишут на многочисленных форумах и в сообществах поддержки Apple. Проблема у всех одна и та же: телефоны неожиданно зависают, а потом перезапускаются. Подобная ситуация происходит до 20 раз в день. Установка обновлений проблему не устраняет.
В Apple экстренно меняют неисправные телефоны, но и новые устройства выдают такую же ошибку.
Репутация Apple стремительно рушится.
#apple#iphone#hard
Российские процессоры "Baikal M": это провал или отступление?
В октябре 2019 года компания "Байкал Электроникс" представила российский инновационный процессор Baikal-M — восьмиядерный чип на архитектуре ARM, ориентированный на серверы и рабочие станции. Этот процессор, с частотой до одного с половиной гигагерц и энергопотреблением менее тридцати пяти ватт, позиционировался как решительный шаг к российской независимости в производстве электроники.
Хотя техпроцесс в двадцать восемь нанометров отставал от глобальных стандартов — три нанометра в смартфонах и ноутбуках, — но позволял как минимум решать задачи в госсекторе. Изначально чипы планировали выпускать на фабриках тайваньской TSMC, что обеспечивало достаточное качество. Однако в 2022 году, после введения санкций, сотрудничество с TSMC прервалось, и Россия оказалась перед необходимостью локализации производства.
Предыстория Baikal-M уходит корнями в 2014 год, когда "Байкал Электроникс" создали как совместное предприятие с участием "Т-Платформ" и Института физики полупроводников. Цель — разработка отечественных чипов для замены импортных, то есть пресловутое импортозамещение.
К 2021 году компания получила первые партии Baikal-M от TSMC — около пяти тысяч штук, с планами на десять тысяч ежемесячно. В августе того же года iRU начала сборку ПК и моноблоков на этих процессорах. В 2025 году ввезли восемьдесят пять тысяч чипов семейства Baikal, включая M и S, а также запустили серийное производство микроконтроллера Baikal-MCU. К лету консорциум систем хранения данных анонсировал поставки десятков тысяч Baikal-M и Baikal-L к концу года.
Однако на днях "Байкал Электроникс" объявила о завершении трёхлетнего эксперимента по корпусированию Baikal-M — финальному этапу, когда кристалл помещают в защитный корпус с выводами для платы. Работы вели на заводе GS Nanotech в Гусеве Калининградской области.
По словам гендиректора Андрея Евдокимова, проект в целом оценивают позитивно как шаг вперёд, но развивать его не стали из-за нехватки кристаллов и других компонентов на рынке. В месяц собирали лишь десятки штук, с выходом годных изделий в диапазоне 74%-85%.
Это стало неожиданностью, но зависимость от импортных материалов тормозит масштабирование российских разработок. Baikal-M остаётся нишевым продуктом для госструктур, где его цена (втрое выше Intel или AMD) не критична,. Однако на реальном рынке спрос на такие дорогие процессоры практически отсутствует. Очевидно, что без господдержки и консолидации мощностей отечественные чипы не выйдут за пределы ниши.
Компания, однако, остаётся на плаву. В будущем ожидается запуск процессора Baikal-L на ядрах Cortex-A710 для ноутбуков, с поставками свыше ста тысяч штук в 2026 году. Параллельно разрабатывается серверный Baikal-S2. Но их судьба пока остаётся в тумане и в теории может повторить судьбу "Baikal M".
#hard#железо#байкал
Технология 5D оптического хранения данных в кварцевом стекле зародилась ещё в девяностых годах прошлого века. Но настоящий прорыв случился в 2013 году в лаборатории Оптоэлектронного исследовательского центра Университета Саутгемптона.
Профессор Питер Казанский и его команда впервые продемонстрировали запись и чтение цифровых данных с помощью фемтосекундного лазера, создающего наноструктуры внутри fused silica — особо чистого кварцевого стекла.
В 2025 году стартап SPhotonix, основанный профессором Казанским и его сыном Ильёй, вывел эту разработку на коммерческий уровень. Компания представила 5D Memory Crystal — носитель, способный хранить до 360 терабайт данных на пластине диаметром пять дюймов. Это эквивалентно примерно пяти тысячам дисков Blu-ray.
Подробнее — по ссылке
#железо#hard#технологии#инновации#стартапы