Format read что означает: «Что такое format read pioneer?» – Яндекс.Кью

Содержание

Формат Fortran, что означает символ «1»?



Пожалуйста, рассмотрите это заявление:

           *
format(2i4,1 12(f4.1,1x,a2,1x,a5))

Насколько я понимаю, эта строка гласит : 2 целых числа из 4 цифр и 12 групп цифр.:

- a 4 digits float with one decimal
- one format space
- an alphabetic string of two chars
- one format space
- an alphabetic string of five chars

Но я не понимаю ту, что посередине (отмечена звездочкой сверху), может кто-нибудь объяснить, что это значит?

Данное выражение предполагается разобрать:

59 229 7.2 Ms HRV   7.3 Mw P&S   7.3 Ms P&S   7.1 Ms ISC   7.2 Ms PAS   7.4 Ms BRK   6.3 mb ISC   6.2 mb NEIS

спасибо

fortran
Поделиться Источник Prefijo Sustantivo     26 февраля 2014 в 19:04

2 ответа


  • Формат PGI Fortran число

    У меня есть входной текстовый файл, который содержит целочисленную запись типа: 1 который читается в коде Fortran как: read(iunit,'(i4)’) int_var который отлично работает с Gfortran, но тот же код, скомпилированный с компилятором PGI Fortran, ожидает поле шириной 4 символа (фактическая запись.

    ..

  • Что означает двоеточие в fortran?

    Я пытаюсь преобразовать код fortran в matlab, мне было интересно, может ли кто-нибудь помочь мне с этой подпрограммой. Я специально спрашиваю, Что означает двоеточие в этих строках? SUB Taper (a(), co(), Re(), Im()) FOR nd = 0 TO 31 n1 = 8 * nd: n2 = a(n1 + 4): n1 = a(n1): n0 = 255 — nd a = .5 *…



2

Компилятор распознает «1 12», что, вероятно, является опечаткой, как «112». Компилятор игнорирует пробел и не замечает ошибки, потому что оператор format синтаксически корректен.

Пример ввода, который вы предоставили, будет правильно проанализирован с «8» вместо «1 12». «12» также будет работать, и я предполагаю, что именно это и имел в виду автор.

Если ваш соответствующий оператор «read» запрашивает только 26 элементов, он все равно будет работать OK с 112, потому что он прекращает синтаксический анализ, когда получает все элементы, которые вы просили.

Поделиться Glenn Randers-Pehrson     26 февраля 2014 в 20:02



1

нашел: символ «1», не являющийся частью указанного символа, означает новую строку. Это просто странный и, если вы спросите меня, противоестественный способ сказать \n.

спасибо всем за помощь.

Поделиться

Prefijo Sustantivo     27 февраля 2014 в 21:01


Похожие вопросы:


Что означает символ»⊇»?

На прилагаемой картинке есть символ, который я не понимаю. Чтобы понять аддитивную функциональную зависимость, мне нужно знать, что означает этот символ. Пожалуйста, совет? Это символ, где написано:…


Что делает DATA INF/1.D+300/ значит, в Fortran?

Я перевожу некоторые Fortran в наше приложение C# и пытаюсь понять, что означает бит Fortran в верхней части функции. DOUBLE PRECISION INF, DMIN, D12 DATA INF/1.D+300/ Какова будет ценность INF?


PHP: что означает символ ‘&’ означает?

Возможный Дубликат : Ссылка-Что означает этот символ в PHP? Что означает добавление ‘&’ в этом фрагменте, который я нашел? $i = 10; if($i&1){ echo $i is odd; } else { echo $i is even; }


Формат PGI Fortran число

У меня есть входной текстовый файл, который содержит целочисленную запись типа: 1 который читается в коде Fortran как: read(iunit,'(i4)’) int_var который отлично работает с Gfortran, но тот же код,…


Что означает двоеточие в fortran?

Я пытаюсь преобразовать код fortran в matlab, мне было интересно, может ли кто-нибудь помочь мне с этой подпрограммой. Я специально спрашиваю, Что означает двоеточие в этих строках? SUB Taper (a(),…


Fortran формат 1P10E11.3

Кто-нибудь знает, что означает эта строка формата в fortran: FORMAT(1x,F7.0,2x,1P10E11.

3) Я знаю, что первая часть — это одно повторение числа с плавающей запятой, но я не понимаю, сколько…


Что означает 10** в Fortran?

Мне нужно преобразовать код из Fortran в R, и я не знаю, как это означает KB = 10.0**(-(1030.5/(273.15 + T) + 5.5076 — 0.015469*S + 1.5339D-4*S**2))


Что означает = > (равно больше, чем) в Fortran?

Я просматриваю какой-то старый код Fortran 90 и наткнулся на символ => : var => item Похоже, его используют для какого-то задания. Поиск в Google для arrow symbol Fortran или equals greater…


Что означает символ»<>»?

Я прочитал руководство Laravel и нашел этот символ в приведенном ниже коде: select * from users where name = ‘John’ or (votes > 100 and title <> ‘Admin’) Так что же означает <>??


Что означает этот синтаксис в fortran?

Я работаю над проектом, и поскольку раньше я не кодировал с помощью Fortran, мне очень трудно. Мой профессор дал мне файл кода, который мне нужно исправить, но я не понимаю синтаксиса. Итак, в досье…

Нативная видеореклама: форматы и перспективы | by Adnetic

За последние два года рекламодатели на 114% увеличили свои бюджеты на создание и размещение видеорекламы в digital. И в ближайшее время они планируют потратить ещё больше.

Видео-натив составляет 32% от бюджетов, потраченных брендами на видеорекламу. Это обосновано в первую очередь тем, что пользователи любят видеоформаты. Они кликают по видеотизерам чаще по сравнению с любыми другими рекламными форматами.

Если вы ещё не размещаете нативную видеорекламу, начните с обзора форматов и тенденций 2017 года:

In-read формат нативной видеорекламы подразумевает, что рекламный видеоролик появляется прямо в статье, обычно ближе к середине и автоматически проигрывается, когда пользователь скроллит стриницу. Если ролик привлек внимание, пользователь может прервать чтение и посмотреть рекламу.

Этот формат довольно требователен к содержанию видеоролика, ведь пользователь увидит его в тот момент, когда потребляет другой контент. Это означает, что содержание нативного ролика должно соответствовать содержанию статьи, внутри которой он появится. Как минимум тематика ролика и статьи должны быть схожими.

У этого формата есть значительный минус: читатель хочет читать статью, и рекламодателю гораздо труднее привлечь его внимание, поэтому содержание ролика должно быть по-настоящему захватывающим с первых секунд.

В то же время рекламодатели могут более точно попасть в свою целевую аудиторию, ведь они точно знают содержание статьи, в которой будет размещена их реклама и могут прогнозировать, какую аудиторию они смогут заинтересовать.

IAB определили in-feed видеорекламу как видео, которое выглядит как часть ленты новостей социальной сети и расположено на месте поста.

In-feed видео — это самый эффективный способ размещения нативной видеорекламы. IPG Media Lab сравнили отклики пользователей на обычные видео пре-роллы и in-feed рекламу: люди воспринимают in-feed рекламу как более релевантную (на 10% выше).

Благодаря релевантности реклама стала менее раздражающей. Ощущение навязчивости рекламы стало ниже на 8%, а вовлечение повысилось также на 8%.

При этом на запоминание бренда и самого объявления повлияли пометки о том, что это рекламный материал, и использование изображения бренда в пометке. Интересные ролики с ярким брендингом способствовали росту вовлечения и узнаваемости.

Еще одно преимущество in-feed роликов — возможность сегментировать аудиторию. Хотя эта сегментация будет менее выборочной по сравнению с in-read размещением, социальные сети постоянно совершенствуют свои алгоритмы, открывая новые возможности для рекламодателей.

Исследование Google ещё год назад опровергло стереотип о том, что нативная видеореклама должна быть короткой, чтобы пользователи досмотрели её до конца. Google сравнили количественные и качественные показатели просмотров 15-секундного, 30-секундного роликов и ролика длиной более двух минут.

Оказалось, что чаще всего пользователи досматривали до конца 30-секундный ролик.

Но на втором месте оказался ролик длиной больше 2 минут, а короткий ролик пользователи пропускали чаще других. Исследователи связали это с тем, что в более длинных форматах есть больше возможностей создать драматическое напряжение и захватить внимание зрителя.

Однако из тех, кто посмотрел ролики, лучше всего запомнили название бренда, который там появляется зрители 15-секундного ролика. Поэтому если вам нужно повысить узнаваемость, то короткий формат может быть удачным выбором.

Последний вывод, к которому пришли исследователи, — бренд должен появиться в кадре в течение первых секунд, так есть наибольшая вероятность, что зрители заметят его раньше, чем решат пропустить ролик.

В ленте Фейсбука 85% пользователей смотрят видео без звука. Такие данные опубликовал портал DIgiday UK. Фейсбук рассчитывает на трехсекундный показ видео при скролле ленты, поэтому перед рекламодателями стоит задача захватить внимание зрителя в течение этих первых трех секунд, при этом не используя звук.

Чтобы захватить внимание зрителя, рекламодатели используют яркий заголовок и первые кадры, а затем поясняют титрами всё, что происходит на экране, чтобы пользователь мог понять без звука. Если вы включите звук, то услышите фоновую музыку или голос диктора, который дублирует текст титров.

В феврале 2017 года Фейсбук анонсировал новые варианты просмотра видео в ленте новостей и объявил, что теперь видео будет автоматически проигрываться со звуком.

Пользователи смогут отключить эту функцию в персональных настройках, а если они листают ленту на телефоне, то Фейсбук будет учитывать настройки беззвучного режима телефона.

Больше половины маркетологов считают, что в ближайшие 3 года цифровой видеоконтент будет также важен, как и телевидение, а к 2020 году мобильное видео будет составлять 75% мобильного трафика.

Сегодня большинство социальных сетей меняют алгоритмы выдачи новостей в ленте пользователя, и все они повышают приоритет для видеоформатов. Рекламодатели получают двойную выгоду: пользователи чаще видят их видеоролики и воспринимают их лучше, чем любой другой брендированный контент.

Длинные, короткие, немые и озвученные — видеоформаты пришли всерьёз и, в чем вряд ли кто-то сегодня сомневается, надолго.

Формат схемного файла — Документация Qucs Help 0.0.18

В этом документе описывается формат схемного файла Qucs. Этот формат используется для схем (обычно с расширением .sch) и для просмотров данных (обычно с расширением .dpl). В следующем тексте приводится краткий пример схемного файла.

<Qucs Schematic 0.0.6>
<Properties>
  <View=0,0,800,800,1,0,0>
</Properties>
<Symbol>
  <.ID -20 14 SUB>
</Symbol>
<Components>
  <R R1 1 180 150 15 -26 0 1 "50 Ohm" 1 "26.85" 0 "european" 0>
  <GND * 1 180 180 0 0 0 0>
</Components>
<Wires>
  <180 100 180 120 "" 0 0 0 "">
  <120 100 180 100 "Input" 170 70 21 "">
</Wires>
<Diagrams>
  <Polar 300 250 200 200 1 #c0c0c0 1 00 1 0 1 1 1 0 5 15 1 0 1 1 315 0 225 "" "" "">
  <"acnoise2:S[2,1]" #0000ff 0 3 0 0 0>
  <Mkr 6e+09 118 -195 3 0 0>
</Polar>
</Diagrams>
<Paintings>
  <Arrow 210 320 50 -100 20 8 #000000 0 1>
</Paintings>

В файле несколько разделов. Все они объясняются ниже. Каждая линия состоит из не более чем одного информационного блока, начинающегося знаком меньше (<) и заканчивающегося знаком больше (>).

Properties

Первый раздел начинается с <Properties> и заканчивается </Properties>. Он содержит свойства документа, находящегося в файле. Каждая строка необязательна. Поддерживаются следующие свойства:

  • <View=x1,y1,x2,y2,scale,xpos,ypos> содержит положение в пикселах окна схемы (первые четыре числа), его текущий масштаб и текущее положение верхнего левого угла (два последних числа).

  • <Grid=x,y,on> содержит шаг сетки в пикселах (первые два числа) и включена сетка (последнее число = 1) или выключена (последнее число = 0).

  • <DataSet=name.dat> содержит имя файла набора данных, связанного с этой схемой.

  • <DataDisplay=name.dpl> содержит имя файла со страницей просмотра данных, связанной с этой схемой (или имя схемного файла, если этот документ является просмотром данных).

  • <OpenDisplay=yes> содержит 1, если страница показа данных открывается автоматически после моделирования, в противном случае — 0.

Symbol

Этот раздел начинается с <Symbol> и заканчивается </Symbol>. Он содержит элементы рисования, составляющие схемное обозначение для файла. Это обычно используется только для схемных файлов, которые считаются подсхемой.

Components

Этот раздел начинается с <Components> и заканчивается </Components>. Он содержит компоненты цепей схемы. Формат строки:

<type name active x y xtext ytext mirrorX rotate "Value1" visible "Value2" visible ...>
  • type (“тип”) означает компонент, например, R для резистора, C для конденсатора.

  • name (“имя”) — уникальное обозначение компонента на схеме, например, R1 для первого резистора.

  • 1 в поле active (“активный”) показывает, что этот компонент активный, то есть используется в моделировании. 0 показывает, что он неактивный.

  • Следующие два числа являются x и y координатами центра компонента.

  • Следующие два числа являются x и y координатами верхнего левого угла текста компонента. Они отсчитываются от центра компонента.

  • Следующие два числа указывают на зеркальное отображение относительно оси x (1 — зеркальное отображение, 0 — нет зеркального отображения) и вращение против часовой стрелки (кратно 90 градусам, то есть 0…3).

  • Следующие параметры являются значениями свойств компонента (в кавычках), за которыми следует 1, если это свойство видимо на схеме (в противном случае 0).

Wires

Этот раздел начинается с <Wires> и заканчивается </Wires>. Он содержит проводники (электрическое соединение между компонентами цепи), их метки и узлы. Формат строки:

<x1 y1 x2 y2 "label" xlabel ylabel dlabel "node set">
  • Первые четыре числа являются координаиами проводника в пикселах: x-координата начальной точки, y-координата начальной точкиt, x-координата конечной точки и y-координата конечной точки. Все проводники должны быть либо горизонтальными (обе x-координаты равны), либо вертикальными (обе y-координаты равны).

  • Первая строка в кавычках — имя метки. Она пустая, если пользователь не установил метку на этот проводник.

  • Следующие два числа — x- и y-координаты метки или ноль, если метки не существует.

  • Следующее число является расстоянием между начальной точкой проводника и точкой, где на проводнике установлена метка.

  • Последняя строка в кавычках — параметры цепи проводника, то есть начальное напряжение узла, используемое ядром симулятора для поиска решения. Эта строка пустая, если пользователь не установил параметры узла цепи для этого проводника.

Diagrams

Этот раздел начинается с <Diagrams> и заканчивается </Diagrams>. Он содержит диаграммы с их графиками и маркерами.” The line format is as follows (line break not allowed):

<x y width height grid gridcolor gridstyle log xAutoscale xmin xstep
 xmax yAutoscale ymin ystep ymax zAutoscale zmin zstep zmax xrotate
 yrotate zrotate "xlabel" "ylabel" "zlabel">
  • Первые два числа — это x- и y-координаты нижнего левого угла.

  • Следующие два числа — ширина и высота границ диаграммы.

  • Пятое число равно 1, если сетка включена, и 0, если сетка выключена.

  • Дальше идет цвет сетки в виде 24-битного шестнадцатиричного RGB значения, например, #FF0000 — красный.

  • Следующее число определяет стиль сетки.

  • Следующее число определяет, какие оси имеют логарифмический масштаб.

Paintings

Этот раздел начинается с <Paintings> и заканчивается </Paintings>. Он содержит элементы рисования, которые используются в схеме.

back to the top

жесткие диски, какими вы их не знали. Часть 2 / Offсянка

Первую часть этого материала можно прочитать здесь.

Технология S.M.A.R.T. родилась в далеком 1995 году, так что возраст у нее почтенный. Предполагалось, что атрибуты SMART (давайте для простоты писать аббревиатуру без точек), формируемые микропрограммой жесткого диска, позволят программно оценивать состояние накопителя, а также дадут механизм для предсказания выхода его из строя. Последнее в те времена было достаточно актуально: срок жизни дисков в серверах, например, исчислялся годом-полутора, и знать, когда готовить замену, было нелишним.

Со временем многое поменялось: что-то отмерло, какие-то стороны развились сильнее (например, контроль механики диска). Первоначальный набор из десятка простейших атрибутов усложнился и разросся в несколько раз, порой менялся их смысл, многие производители ввели собственные атрибуты с не всегда ясным функционалом. Появилась масса программ для анализа SMART (как правило, невысокого качества, но с эффектным интерфейсом, да еще и за деньги) и т.п.

Так что не мешает описать современное состояние SMART. Начнем с критически важных атрибутов, ухудшение которых почти всегда свидетельствует о проблемах с накопителем. Именно их первым делом смотрят ремонтники при диагностике HDD.

  • #01 Raw Read Error Rate — частота ошибок при чтении данных с диска, происхождение которых обусловлено аппаратной частью диска. Для всех дисков Seagate, Samsung (семейства F1 и более новые) и Fujitsu 2,5″ это — число внутренних коррекций данных, проведенных ДО выдачи в интерфейс; на пугающе огромные цифры можно не обращать внимания.

  • #03 Spin-Up Time — время раскрутки пакета пластин из состояния покоя до рабочей скорости. Растет при износе механики (повышенное трение в подшипнике и т.п.), также может свидетельствовать о некачественном питании (например, просадке напряжения при старте диска).

  • #05 Reallocated Sectors Count — число операций переназначения секторов. Когда диск обнаруживает ошибку чтения/записи, он помечает сектор переназначенным и переносит данные в резервную область. Вот почему на современных HDD нельзя увидеть bad-блоки — все они спрятаны в переназначенных секторах. Этот процесс называют remapping, на жаргоне — ремап. Поле Raw Value атрибута содержит общее количество переназначенных секторов. Чем оно больше, тем хуже состояние поверхности диска.

  • #07 Seek Error Rate — частота ошибок при позиционировании блока магнитных головок (БМГ). Рост этого атрибута свидетельствует о низком качестве поверхности или о поврежденной механике накопителя. Также может повлиять перегрев и внешние вибрации (например, от соседних дисков в корзине).

  • #10 Spin-Up Retry Count — число повторных попыток раскрутки дисков до рабочей скорости в случае, если первая попытка была неудачной. Если значение атрибута растет, то велика вероятность проблем с механикой.

  • #196 Reallocation Event Count — число операций переназначения. В поле Raw Value атрибута хранится общее число попыток переноса информации со сбойных секторов в резервную область диска (она, как правило, не слишком велика — несколько тысяч секторов). Учитываются как успешные, так и неудачные операции.

  • #197 Current Pending Sector Count — текущее число нестабильных секторов. Здесь хранится число секторов, являющихся кандидатами на замену. Они не были еще определены как плохие, но считывание с них происходит с затруднениями (например, не с первого раза). Если «подозрительный» сектор будет в дальнейшем считываться успешно, то он исключается из числа кандидатов. В случае же повторных ошибочных чтений накопитель попытается восстановить его и выполнить ремап.

  • #198 Uncorrectable Sector Count — число секторов, при чтении которых возникают неисправимые (внутренними средствами) ошибки. Рост этого атрибута указывает на серьезные дефекты поверхности или на проблемы с механикой накопителя.

  • #220 Disk Shift — сдвиг пакета пластин относительно оси шпинделя. В основном возникает из-за сильного удара или падения диска. Единица измерения неизвестна, но при сильном росте атрибута диск не жилец.

    Также следует принимать во внимание и информационные атрибуты, способные много чего поведать об «истории» диска.

  •  #02 Throughput Performance — средняя производительность диска. Если значение атрибута уменьшается, то велика вероятность, что у накопителя есть проблемы.

  • #04 Start/Stop Count — число циклов запуск-остановка шпинделя. У дисков некоторых производителей (например, Seagate) — счетчик включения режима энергосбережения.

  • #08 Seek Time Performance — средняя производительность операции позиционирования головок. Снижение значения этого атрибута свидетельствует о неполадках в механике привода головок (в первую очередь о замедленном позиционировании).

  • #09 Power-On Hours (POH) — время, проведённое во включенном состоянии. Показывает общее время работы диска, единица измерения зависит от модели (не только 1 час, но и 30 мин, и даже 1 минута).

  • #11 Recalibration Retries — число повторов рекалибровки в случае, если первая попытка была неудачной. Рост этого атрибута указывает на проблемы с механикой диска.

  • #12 Device Power Cycle Count — число полных циклов включения-выключения диска.

  • #13 Soft Read Error Rate — частота появления «программных» ошибок при чтении данных. Сюда можно отнести ошибки программного обеспечения, драйверов, файловой системы, неверную разметку диска — в общем, почти все, что не относится к аппаратной части.

  • #190 Airflow Temperature — температура воздуха внутри корпуса HDD. Для дисков Seagate атрибут выдается в нормировке 100º минус температура (тем самым критический нагрев соответствует значению 45), а модели Western Digital используют нормировку 125º минус температура.

  • #191 Gsense error rate — число ошибок, возникших из-за внешних нагрузок. Атрибут хранит показания встроенного акселерометра, который фиксирует все удары, толчки, падения и даже неаккуратную установку диска в корпус компьютера.

  • #192 Poweroff retract count — число зафиксированных повторов включения/выключения питания накопителя.

  • #193 Load/Unload Cycle Count — число циклов перемещения БМГ в специальную парковочную зону/в рабочее положение.

  • #194 HDA temperature — температура механической части диска, в просторечии банки (HDA — Hard Disk Assembly). Информация снимается со встроенного термодатчика, которым служит одна из магнитных головок, обычно нижняя в банке. В битовых полях атрибута фиксируются текущая, минимальная и максимальная температура. Не все программы, работающие со SMART, правильно разбирают эти поля, так что к их показаниям стоит относиться критично.

  • #195 Hardware ECC Recovered — число ошибок, скорректированных аппаратной частью диска. Сюда входят ошибки чтения, ошибки позиционирования, ошибки передачи по внешнему интерфейсу. На дисках с SATA-интерфейсом значение нередко ухудшается при повышении частоты системной шины — SATA очень чувствителен к разгону.

  • #199 UltraDMA (Ultra ATA) CRC Error Count — число ошибок, возникающих при передаче данных по внешнему интерфейсу в режиме UltraDMA (нарушения целостности пакетов и т.п.). Рост этого атрибута свидетельствует о плохом (мятом, перекрученном) кабеле и плохих контактах. Также подобные ошибки появляются при разгоне шины PCI, сбоях питания, сильных электромагнитных наводках, а иногда и по вине драйвера.

  • #200 Write Error Rate/ Multi-Zone Error Rate — частота появления ошибок при записи данных. Показывает общее число ошибок записи на диск. Чем больше значение атрибута, тем хуже состояние поверхности и механики накопителя.

Как видим, большинство «интересных» атрибутов отражает функционирование механики накопителя. Технология SMART действительно позволяет предсказывать выход диска из строя в результате механических неисправностей, что, по статистике, составляет около 60% всех отказов. Полезен и мониторинг температур: перегрев головок резко ускоряет их деградацию, так что превышение опасного порога (45-55º в зависимости от модели) — сигнал срочно улучшить охлаждение диска.

Вместе с тем не следует переоценивать возможности SMART. Современные диски нередко «дохнут» на фоне отличных атрибутов, что связано с тонкими процессами дефект-менеджмента в условиях высокой плотности записи и не всегда, мягко говоря, качественных компонентов (разнобой в отдаче головок сегодня — обычное дело). Тем более SMART не способен предсказать последствия таких «форс-мажоров», как скачок напряжения, перегрев платы электроники или повреждение накопителя от удара.

Практически у всех атрибутов наибольший интерес представляет поле Raw Value: «сырые» значения наиболее информативны. Их нормировка (степень приближения к абстрактному порогу) часто ничего не дает и только запутывает дело. Поэтому и программы, полагающиеся на эти проценты, нельзя считать вполне надежными. Типичный случай для них — ложные тревоги. Программа сообщает, что новый, недавно установленный накопитель того и гляди «склеит ласты». А все дело в том, что в начале эксплуатации некоторые атрибуты SMART быстро меняются и примитивная экстраполяция приводит к пугающим пользователя прогнозам.

Я советую бесплатную программу HDDScan — она корректно понимает все атрибуты, в том числе и новые, правильно разбирает температурные показатели. Отчет выводится в виде аккуратной xml-таблицы с цветовой индикацией, которую можно сохранить или распечатать.

SMART диска WD пятилетнего возраста. О его близкой кончине свидетельствуют ненулевые значения атрибутов 1 и 200 (для WD они особенно чреваты), а также тот факт, что после ремапа атрибут 197 снова растет. Это значит, что возможности исправления дефектов исчерпаны

Крайне полезна у HDDScan возможность считывать SMART у внешних накопителей, столь распространенных сегодня. Практически ни одна другая программа этого не умеет, ведь на пути данных стоит контроллер, преобразующий интерфейс PATA/SATA в USB или FireWire. Автор целенаправленно работал в этом направлении, и ему удалось охватить широкий спектр контроллеров. Не забыты и диски с интерфейсом SCSI, до сих пор широко применяемые в серверах (атрибуты у них особые — например, выводится общее число записанных или считанных байтов за всю жизнь накопителя).

Функционал HDDScan полностью отвечает потребностям ремонтника. Когда первичную диагностику принесенного внешнего диска можно провести, не разбирая корпус, — это удобно, экономит время, а порой и сохраняет гарантию.

SMART, снятый со SCSI-диска. Здесь исторически сложились совсем другие атрибуты

⇡#Барьеры HDD

Механика давно стала ахиллесовой пятой HDD, и даже не столько из-за чувствительности к ударам и вибрации (это еще можно компенсировать), сколько из-за медлительности. Самые быстрые «дерганья» блоком магнитных головок (2-3 мс у лучших серверных моделей) в тысячи раз уступают скоростям электроники.

И принципиально ничего тут не улучшишь. Поднимать скорость вращения пакета дисков некуда, 15000 об./мин уже предел. Японцы несколько лет назад подступались к 20000 об./мин (вполне гироскопная скорость), но в итоге отказались — не выдерживают материалы, конструкция получается слишком дорогая и для массового производства слабо пригодная. В малых же сериях винчестеры выйдут золотыми, такие никто не купит — это не гироскопы, которые заменить нечем.

Выходит, уткнулись в барьер. Механику на кривой козе не объедешь. Единственный выход — поднимать плотность записи, поперечную и продольную. Продольная плотность (вдоль дорожки) влияет на производительность накопителя, т.е. на поток данных к остальным узлам компьютера. Но все равно, даже достигнутые 100-130 Мбайт/с — это для нынешних компьютеров слишком мало. Например, рядовая оперативная память (DRAM) имеет реальную производительность около 3 Гбайт/с, а кеш процессора — еще больше. Разница на порядки, и она сильно сказывается на общем быстродействии. Конечно, никто не требует от энергонезависимого накопителя, емкость которого в сотни раз превышает DRAM, такой же производительности. Но даже простое удвоение было бы заметно любому пользователю.

Поперечная плотность записи — это густота дорожек на пластине, в современных HDD она превышает 10000 на 1 миллиметр. Получается, что сама дорожка имеет ширину менее 100 нм (между прочим, нанотехнологии в чистом виде). Это позволяет резко поднять емкость в расчете на одну поверхность, а также ускоряет позиционирование за счет изощренных алгоритмов (их разработка потянула бы на пару докторских диссертаций).

Как итог, за последние годы емкость и производительность HDD значительно выросли. Все это стало возможным благодаря технологии перпендикулярной записи, которая существует уже более 20 лет, но до массового внедрения дозрела только в 2007 году. Причем емкость тогда выросла даже сильнее, чем требуется: первые терабайтные диски встретили вялый отклик пользователей. Народ просто не понимал, куда приспособить таких монстров, тем более что они поначалу строились на пяти пластинах, были капризными, шумными и горячими (речь о тогдашних флагманах Hitachi).

Потом, конечно, люди разобрались, торренты заработали в полную силу, да и количество пластин поуменьшилось. В то же время плотность записи выросла до 500-750 Гбайт на пластину (имеются в виду диски настольного сегмента с форм-фактором 3,5″). Вот-вот в массовое производство пойдут терабайтные пластины, что даст возможность выпустить винчестеры объемом до 4 Тбайт (больше четырех пластин в стандартном корпусе высотой 26,1 мм не уместить; хитачевские пятипластинные первенцы большого развития не получили).

Трехтерабайтный диск WD Caviar Green WD30EZRX, наиболее емкий на сегодня. Имеет четырехпластинный дизайн, выпускается ровно год (с 20 октября 2010 г.). Как полагается, весной и летом дешевел, но в последние дни резко подорожал из-за наводнения в Таиланде (там расположены сборочные заводы WD, и стихия блокировала подвоз комплектующих)

Увы, скорость позиционирования выросла, мягко говоря, несильно, а у массовых моделей так вообще осталась на прежнем уровне, а то и упала в угоду… тишине. Маркетологи доказали, что потребитель голосует кошельком за гигабайты в расчете на один доллар, а не за миллисекунды доступа. Поэтому и небыстры дешевые диски по сравнению с породистыми серверными собратьями. Медлительность хорошо проявляется в скорости загрузки ОС, когда надо читать с диска большое количество мелких файлов, разбросанных по пластинам. Здесь главную роль играет скорость вращения шпинделя и мощный привод БМГ, дающий возможность больших ускорений.

Между прочим, «быстрые» диски легко отличить даже на вес — они заметно тяжелее «медленных». Полноразмерная банка с утолщенными стенками, способствующая геометрической стабильности и подавлению вибраций, скоростной шпиндельный двигатель, мощные магниты позиционера, двухслойная крышка повышенной жесткости — все это прибавляет такому накопителю десятки и сотни граммов. Еще больше отрыв в серверных моделях на 15000 об./мин, где пластины уменьшенного размера окружены внушительным объемом литого алюминия, а общий вес «харда» доходит до килограмма.

Высокопроизводительный диск WD Raptor со скоростью вращения шпинделя 10 000 об./мин. При емкости 150 Гбайт весит 740 г (массовые модели той же емкости — 400-500 г). Обратите внимание на размер магнитов и толщину стенок

С удешевлением твердотельных SSD, использующихся, в первую очередь, под операционную систему, нужда в высокопроизводительных HDD стала снижаться, а сами они постепенно выделяются в особый сегмент рынка (такова, например, «черная» серия у WD). Подобными дисками комплектуются профессиональные рабочие станции с ресурсоемкими приложениями, критичными к скорости доступа. Рядовые же пользователи брать достаточно дорогие накопители не торопятся, предпочитая объем производительности.

На другом конце спектра — популярные «зеленые» модели с намеренно замедленным вращением шпинделя (5400-5900 об./мин вместо 7200) и небыстрым позиционированием головок. Дешевые, тихие, холодные и достаточно надежные, эти винчестеры идеально подходят для хранения мультимедийных данных в домашних компьютерах, внешних корпусах и сетевых хранилищах. На наших прилавках все эти Green и LP сильно потеснили другие линейки, так что в мелких «точках» порой ничего больше и не найдешь.

⇡#Расточительность магнитной записи

Намагниченность доменов жесткого диска, как и в середине двадцатого века, меняют с помощью магнитной головки, поле которой возбуждается переменным электрическим током и действует на магнитный слой через зазор. Также эта технология требует быстрого вращения пластин, прецизионного контроля положения головки и т.д. Двигатель и позиционер жесткого диска, а также управляющая ими электроника потребляют заметную мощность, да и стоят немало. Но главное — на само возбуждение магнитного поля тратится очень много энергии. 

Расточительность стандартного метода магнитной записи трудно оценить, работая на персональном компьютере. Жесткие диски массовых серий даже при активной работе потребляют менее 10 Вт, что на фоне прочих комплектующих (100 Вт и более) почти незаметно. Но ваши взгляды сразу переменятся после посещения серверной комнаты какого-нибудь крупного банка, а чтобы получить впечатлений на всю оставшуюся жизнь, достаточно подойти к дисковой стойке суперкомпьютера. В шуме сотен и тысяч жестких дисков, обдувающих их вентиляторов и прецизионных кондиционеров становится понятно, сколько энергии в глобальном масштабе тратится на такую работу.

Недаром для систем хранения данных энергоэффективность в списке характеристик выходит на первый план. Вот уже и Google переводит свои дата-центры на баржи в море (вот где настоящие офшоры!). Оказывается, охлаждение СХД забортной водой радикально сокращает операционные затраты, в первую очередь за счет экономии на кондиционерах.

⇡#О питании жестких дисков

Будет ли работать обычная 220-вольтовая лампочка от 230 В? Конечно, будет. А от 240 В? Тоже. Вопрос — сколько она протянет? Понятно, что меньше или существенно меньше — это зависит от конкретной лампочки. Ей суждена яркая, но короткая жизнь.

Примерно та же ситуация и с жесткими дисками. Наивные производители проектировали их, полагаясь на стандартные +5 В и +12 В. Однако в типичном компьютерном блоке питания (БП) стабилизируется лишь линия 5 В. К чему же это приводит?

При высокой нагрузке на процессор (а современные «камни» потребляют немало) и недостаточной мощности БП линия 5 В проседает, и система стабилизации отрабатывает это дело, повышая напряжение до номинального значения. Одновременно повышается и напряжение 12 В (из-за отсутствия стабилизации по нему). В результате и так нестойкий к нагреву HDD работает еще и при повышенном напряжении, которое подается на самые греющиеся узлы — микросхему управления двигателем (на жаргоне ремонтников — «крутилка») и привод головок (т.н. «звуковая катушка»). Итог — смотри рассуждение о лампочке.

Сгоревшая «крутилка» на плате как результат повышенного напряжения и плохого охлаждения. Нередко микросхема сгорает в буквальном смысле, с пиротехническими эффектами и выгоранием дорожек на плате. Такое ремонту не подлежит

Отсюда советы по блоку питания. Чем больше его мощность, тем лучше (в разумных пределах: запас более 30-35% по отношению к реальному потреблению снижает КПД блока, так что вы будете греть комнату). Менее мощный, но фирменный БП лучше более мощного, но безродно-китайского. Помните — разгоняют не только процессоры. В первом приближении, 420 «китайских» ватт эквивалентны 300 «правильным».

По-хорошему, надо бы еще учитывать возраст БП: после 2-3 лет эксплуатации его реальная мощность заметно снижается, а выходные напряжения дрейфуют. Разумеется, в некачественных изделиях, работающих на честном китайском слове, процессы старения выражены гораздо резче. Хорошо еще, если подобный блок тихо умрет сам, а не утащит за собой в агонии половину системного блока!

Максимально допустимым считается 12,6 В (+5% от номинала). Однако у многих дисков c ростом напряжения наблюдается нелинейно-резкий нагрев упомянутых выше узлов — «крутилки» и «катушки». Поэтому я рекомендую строже контролировать БП с помощью внешнего вольтметра (датчики на материнской плате, измеряющие напряжение для BIOS и программ типа AIDA, могут быть весьма неточны).

Измерять напряжение лучше всего на разъемах Molex и обязательно под полной нагрузкой: процессор занят вычислениями с плавающей точкой, видеокарта — выводом динамичной трехмерной графики, а диск — дефрагментацией. При 12,2-12,4 В стоит призадуматься, 12,4-12,6 В — поволноваться, 12,6-13 В — бить тревогу, а в случае 13 В и выше — копить деньги на новый диск или положить гарантийный талон на видное место…

Конденсаторы (2200 мкФ, 25 В), напаянные на цепи питания HDD (желтый провод — +12 В, красный — +5 В, черный — земля). В данном случае они уменьшают пульсации напряжения, от которых блок питания издает раздражающий высокочастотный писк

Если напряжение по линии 12 В сильно завышено, а вы не боитесь паяльника и способны отличить транзистор от диода, то можете включить последний в разрыв питания HDD (напомню, линии 12 В соответствует желтый провод). Диод сыграет роль ограничителя — на его p-n переходе упадут «лишние» 0,2-0,7 В (в зависимости от типа диода), и диску станет полегче. Только диод надо брать достаточно мощный, чтобы он выдерживал пусковой ток в 2-3 А.

И без фанатизма: результирующее напряжение не должно опускаться ниже 11,7 В. В противном случае возможна неустойчивая работа диска (множественные рестарты) и даже порча данных. А некоторые модели (в частности, Seagate 7200.10 и 7200.11) могут вообще не запуститься.

⇡#Миграция с флеш

Память NAND Flash появилась много позднее, чем HDD, и переняла ряд его технологий — взять хотя бы коды ECC. Далее оба направления развивались параллельно и сравнительно независимо. Но в последнее время наметился и обратный процесс: миграция технологий с флеш-памяти на жесткие диски. Конкретно речь идет о выравнивании износа.

Как известно, любой флеш-чип имеет ограниченный ресурс по числу стираний-записей в одну ячейку. В какой-то момент стереть ее уже не удается, и она навсегда застывает с последним записанным значением. Поэтому контроллер считает количество записей в каждую страницу и в случае превышения копирует ее на менее изношенное место. В дальнейшем вся работа ведется с новым участком (этим заведует транслятор), а старая страница остается как есть и не используется. Данная технология получила название Wear Leveling. Так вот, износ есть и в жестких дисках, но там он механический и температурный. Если магнитная головка все время висит над одной дорожкой (скажем, постоянно изменяется тот или иной файл), то растет вероятность повреждения дорожки при случайных толчках или вибрации диска (например, от соседних накопителей в корзине). Головка может коснуться пластины и повредить магнитный слой со всеми вытекающими печальными последствиями. Даже если вредного контакта нет, неподвижная головка локально нагревается и пусть обратимо, но деградирует. Запись в данное место происходит менее надежно, растет вероятность последующего неустойчивого считывания (а при современных огромных плотностях записи любое отклонение параметров губительно).

Эти соображения достаточно очевидны, и прошивка серверных дисков с интерфейсом SCSI/SAS (а они весьма горячи) давно научилась перемещать головки в простое, дабы они не перегревались. Но еще лучше вместе с головкой «перебрасывать» и информацию по пластине — в этом случае описанные эффекты подавляются максимально, а надежность накопителя растет. Вот Western Digital и ввел подобный механизм в новых моделях VelociRaptor. Это дорогие высокопроизводительные диски со скоростью вращения шпинделя 10000 об./мин и пятилетней гарантией, так что Wear Leveling там уместен.

VelociRaptor снаружи и внутри. Привлекает внимание мощный радиатор. Пластины же имеют уменьшенный диаметр — это характерно для современных скоростных дисков.

Кроме того, вся линейка VelociRaptor нацелена на использование в высоконагруженных системах, в первую очередь серверах, где запись на диск ведется очень интенсивно и зачастую в одни и те же файлы (типичный пример — логи транзакций). Массовым «ширпотребным» дискам высокие нагрузки не грозят, греются они тоже умеренно, так что подобный изыск там вряд ли появится. Впрочем, поживем — увидим.

⇡#Аdvanced Format и его применение

Вот уже более 20 лет все жесткие диски имеют одинаковый размер физического сектора: 512 байт. Это минимальная порция записи на диск, позволяющая гибко управлять распределением дискового пространства. Однако с ростом объема HDD все сильнее стали проявляться недостатки такого подхода — в первую очередь неэффективное использование емкости магнитной пластины, а также высокие накладные расходы при организации потока данных.

Поэтому диски большой емкости (терабайт и выше) стали производиться по технологии Advanced Format, которая оперирует «длинными» физическими секторами в 4096 байт. Разметка магнитных пластин под AF весьма выгодна для производителя: меньше межсекторных промежутков, выше полезная емкость дорожки и всей пластины (а это, наряду с магнитными головками, самый дорогой компонент HDD). Именно Advanced Format позволил выпустить на рынок недорогие винчестеры, столь популярные ныне у потребителей аудио- и видеоконтента. AF-дисками емкостью 1-3 Тбайт комплектуются не только компьютеры, но и масса внешних накопителей, сетевых хранилищ и медиаплееров.

Один из первых дисков 3,5″ с Advanced Format, выпущенный в 2009 г

Но даром ничего не дается, новые диски уже начинают приносить в ремонт. Похоже, надежность все-таки просела. Ведь единичный сбой диска или дефект поверхности портит теперь в 8 раз больше данных пользователя, чем обычно. При физическом секторе в 4 Кбайт и эмуляции «коротких» секторов в 512 байт не будет читаться от 1 до 8 секторов. Операционная система на это реагирует понятно как: авария, все пропало! В итоге мелкая проблема на пластинах вырастает для пользователя в зависание или чего еще хуже.

Я считаю, на дисках с AF не стоит держать ОС, прикладные программы и базы данных со множеством мелких файлов. Пока что их удел — мультимедийные данные, некритичные к выпадениям.

⇡#Что стоит почитать о жестких дисках

В первую очередь рекомендую заглянуть на форум HARDW.net. Его раздел «Накопители информации» посещает множество профессиональных ремонтников и энтузиастов (почти 40 тыс. участников). Там можно найти ответы практически по любой теме, связанной с HDD, за исключением самых новых «нераскопанных» моделей. Начните с подраздела «Песочница»: на простые (в понимании профессионалов) вопросы там отвечают подробно и содержательно, а не отшивают, как в других местах, — «несите к ремонтнику».

Еще больше информации, правда, на английском языке, можно найти на портале HDDGURU. Помимо ремонтно-диагностического ПО и статей по отдельным вопросам (например, как поменять головки у диска), там есть международный форум ремонтников, а также огромный архив ресурсов по HDD (firmware, документация, фото и т.п.). Портал прививает широкий взгляд на вещи, он будет интересен подготовленным и мотивированным людям. Во всяком случае, в закрытых конференциях ремонтников ссылки на него пробегают постоянно.

Сошлюсь и на свою статью «Как продлить жизнь жестким дискам» в трех частях. Она дает начальные сведения по обращению с HDD, и хотя написана более трех лет назад, устарела мало — диски за это время принципиально не изменились, разве что стали еще менее надежными из-за свирепой экономии. Производители, застигнутые мировым кризисом, снижали свои затраты по всем направлениям, что и послужило причиной ряда громких провалов 2008-2009 гг. Об одном из них речь пойдет в продолжении этого материала, которое выйдет в ближайшее время.

Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

Малиновый Прог против Интернета Кирпичей, или Raspberry Pi с графикой на read-only microSD

Запуск Raspberry Pi с полной поддержкой графики на microSD, навсегда остающейся в режиме read-only после установки системы. Отсутствие какой-либо записи данных на флэш-память повышает надёжность устройства, приближая его к промышленному классу изделий. Пошаговая инструкция. Небольшой театр инженерного абсурда для развлечения аудитории.

Мне понадобилось сетевое устройство с открытым кодом и выходом HDMI, и я решил попробовать Малиновый Прог. Да, я именно так предлагаю переводить Pi: Прог. Понятное дело, даже одноплатнику нужна операционка. И вот, захожу я на официальный сайт, ожидая встретить там подробное руководство по созданию суровой, неломаемой Вещи à la turnkey box. Но народ, как ни в чём не бывало, устанавливает Ubuntu (т.е. Raspbian Jessie) прямо на microSD, размещая и swap там же. Как обычный десктоп, face palm.

Но то цветочки. Малиновые ягодки — это проекты фоторамок из МалинПрога, требующие обязательного выключения кнопкой. Иначе фоторамка после сбоя питания может не заработать, вместо картинок предлагая воспользоваться fsck. Но и это не предел, под катом читателя ждёт настоящий шедевр инженерного абсурда, найденный автором на просторах сети.

Итак, по стандартной инструкции нормальный одноплатник превращается в раздутый десктоп со средним временем жизни год-полтора, пока изношенная флэшка не сдохнет, превратив в общем-то хороший девайс в кирпич. И большинство людей, похоже, это вполне устраивает. Меня — нет.

Куда мир катится

Прежде чем открывать спойлер, оденьте защитную маску, либо заранее возьмитесь руками за голову. Неплохой проект, который испортила одна рекомендацияПредставьте себе большой телевизор и демонстратор слайд-шоу на базе RPi, но с нейтрализацией скринсейвера аппаратным (!) имитатором ёрзающей мыши. Дескать, в оконном интерфейсе Raspbian тайм-аут скринсейвера больше 720 минут не выставляется. Поэтому, дабы каждые 12 часов не шевелить мышь вручную, народ автоматизирует процесс микроконтроллером, создающим виртуальные «ползки» USB-мыши каждые 4 минуты. Я не шучу, вот реальный проект на RPi, там же ссылка на микроконтроллер ECIO28P, и прошивка взбадривателя имеется.
Ладно, не буду отрицать самостоятельной полезности аппаратного взбадривателя: это реальный лайф-хак для тех, у кого почасовая оплата идёт за сидение перед монитором. Или для поддержания в тонусе какого-нибудь особо тупого сурового промышленного терминала, из-под антивандальной брони которого торчит один разъём для мыши (для PS/2 должен подойти зелёный переходник). Да, если втиснуть раздутый десктоп в одноплатный компьютер, то в руках über-умельцев это грозное оружие, особенно с брутально торчащей из разъёма платой МК. Сразу видно: человек умеет работать руками. Но если нужен вечно включённый экран, на линуксе достаточно головы, резиденты данного ресурса прекрасно это знают. Для гостей портала я всё-таки дам инструкцию, мало ли чего. Отключение DPMS, скринсейвера и заодно всех GUI-элементовДля начала примем, что используется минималистичная оболочка LightDM, и отключим X-серверу DPMS в файле /etc/lightdm/lightdm.conf:
...
xserver-command=X -s 0 -dpms -nocursor
...

Флажок -nocursor убирает долой из центра экрана неподвижную стрелку курсора. А вместо нейтрализации скринсейвера можно просто закомментировать его запуск в файле ~/.config/lxsession/LXDE/autostart. Если это не помогает, можно повесить по cron(8) с интервалом 718 минут команду xscreensaver-command -deactivate (это уже стёб, дорогие читатели 😉
Я поступил просто: принял LightDM с автовходом, но оставил в файле ~/.config/lxsession/LXDE/autostart лишь вызов feh с префиксом ‘@’ для перезапуска в случае аварии и соотв. параметрами. Т.е. как бы обычная графика, но без lxpanel, без pcmanfm, без xscreensaver, с отключённым DPMS и скрытым курсором несуществующей мыши.

Минимальную графику очень легко получить командами apt-get и правкой файла autostart, причём в системе будет всё необходимое для жизнедеятельности стандартных приложений, включая X-сервер, менеджер окон, менеджер сеансов и менеджер дисплея с автовходом пользователя. Но пока это ещё не Вещь, а всего лишь одноплатный десктоп.

UPD
Пользователь Jaromir предлагает вообще отказаться от менеджера дисплея и использовать unclutter в тех случаях, когда мышь изредка требуется. Эта утилита скрывает курсор, если мышь находится в покое достаточно долго.
Пользователь Spider55 рекомендует вместо LightDM использовать noDM. Считаю весьма разумным, но тогда пошаговая инструкция чуть меняется.

Задача

Сферический одноплатник в вакууме — это скучно. Не для того на Малиновом Проге целая гребёнка GPIO с I2C/PWM, а также всякие CSI-DSI и сторожевой таймер. Но я в качестве практического примера использую всё-таки сетевой демонстратор с HDMI-выходом, добавив возможность нескольким пользователям по очереди «захватывать» общий экран-табло и транслировать на него свой рабочий стол, не вставая с кресла. Экран повёрнут лицом в сторону гостей, в состоянии покоя тихонечко перебирает случайным образом картинки, выложенные в сети. Если надо показать гостю продукт, один из сидящих за стойкой администраторов временно превращает табло в «зеркало» своего монитора, но потом освобождает его для другого админинистратора. В моём случае это реальный бизнес-инструмент, висящий в реальном торговом зале. Кстати, благодарю пользователя Sauron за подсказку.

Однако, глянув на размер этой публикации, я решил отложить описание прикладного решения (т.е. собственно видеомодуля) в отдельную статью. Пока позвольте сфокусироваться на изначальной задаче: заставить Raspberry Pi загружаться и работать с microSD в режиме read-only, не боясь отключения питания и не запиливая флэш-память мусором.

Теория вопроса

Даже очень серьёзная файловая система с журналом в конечном итоге не может проконтролировать процессы, происходящие внутри SD-носителя при отключении питания. Например, серьёзные SSD-накопители для использования в ЦОД имеют конденсаторы, разряда которых как раз хватает на закрытие последней транзакции записи, и даже остаётся ещё немного. А что с отключением питания в microSD? Я уверен, там конденсаторов достаточной ёмкости нет, зато есть ненулевая вероятность того, что запись страницы NAND-памяти не успеет завершиться. И потом драйвер файловой системы от прочитанного придёт в такое недоумение, что потребуется ручное вмешательство оператора. Вот вам и фоторамка с fsck.

Насколько сложно перевести microSD Raspberry Pi в режим read-only методом Микеланджело, т.е. убирая лишние службы и пакеты? Достаточно просто, если нет графики (ссылка). Но стоит пустить в систему иксы с этими их многочисленными менеджерами всего, начинается долгий и нудный поединок с непредсказуемым результатом. Это вам не иголка в стоге сена, её хотя бы магнитом можно вытянуть. Представьте, что неизвестное количество иголок спрятаны в клубке из колючей проволоки, да ещё обильно присыпаны гвоздями. Какой там поиск иголок, не убиться бы насмерть.

Лемма: для выполнения даже самой элементарной новой функции линукс-система всегда подтянет кучу ненужных зависимостей, причём даже с «лёгкой» графикой рост системной энтропии получается кратный.

Теорема: в любом конечном наборе программных пакетов всегда найдётся бесконечно малый кусок кода, который попытается записать один бесконечно бесполезный бит на файловую систему, смонтированную в read-only, чем вызовет фатальную ошибку, повалит всю систему и перечеркнёт многочасовые усилия оператора.

Решение: UnionFS

Один немец несколько лет назад придумал очень красивый способ собрать все эти иголки в корыто с помощью UnionFS и просто сжигать их в печи при каждой перезагрузке. К сожалению, оригинальный пост уже погиб вместе с хостившим его доменом, но немец точно не одинок. Благодарные читатели сохранили идею, я считаю просто необходимым опубликовать её здесь.

Суть в том, что поверх постоянной «подложки» (read-only файловой системы на microSD) при каждом включении создаётся временная «нашлёпка» в ОЗУ, поглощающая всю ненужную энтропию и «сгорающая» при выключении питания устройства. Файловая система на microSD всё время остаётся read-only, и потому риск её повреждения снижается почти до нуля, как и риск преждевременного износа флэшки. Почему не строго до нуля? Знатоки EXT4, поправьте меня, но драйвер файловой системы всё-таки что-то записывает на носитель при каждом монтировании-демонтировании файловой системы, даже если она монтируется в read-only. И noatime не поможет, нужен аппаратный ключ на microSD. Иначе как объяснить тот факт, что по /sys/block/mmcblk0/stat у меня оказалось считано 282612 секторов, а записано аж 96, и это в режиме read-only? Ладно, хоть соотношение почти 3000:1, на обычной системе оно 5:1. (виноват, соврал, но сути это не меняет)

UPD:
Пользователь gattopazzo83 указал мне на промышленную память Flash Media Kit производства известной фирмы Харлампий-Панкрат (теперь уже Эдуардович). Раз у неё 100,000 циклов записи, это точно SLC-память в формате microSD. Даже если уважаемый читатель использует файловую систему в read-only, для серьёзных проектов я настоятельно рекомендую потратиться на промышленную память, это практика крепсондо («до» по-японски означает «путь» 😉
UPD:
В комментариях достаточно длинная дискуссия вышла у меня с пользователем doga, в результате которой я «открыл» для себя простой способ получать внутреннюю информацию об используемой SD-карточке прямо из командной строки RPi. Пользователь doga в долгу не остался и указал на пакет mmc-utils, который тоже читает внутренности SD-карточки, но готового порта для Raspbian я не увидел. Что-то помещаю в спойлер, который, видимо, будет пополняться и раздуваться.
SD-внутренностиКоманда:
udevadm info -a -n /dev/mmcblk0

Можно увидеть «сырые» регистры CID и CSD, из них код изделия (name), серийный номер (serial), дату производства (date), идентификаторы производителя (hwrev, fwrev, oemid, manfid). Расшифровку можно найти на сайте www.sdcard.org в разделе загрузок «упрощённых» спецификаций (Simplified Specifications), см. Part 1 Simplified, Physical Layer Simplified Specification.
Очень интересный объект stat, структура которого описана прямо на kernel.org. Эта информация сбрасывается при перезагрузке, но по ней можно оценить среднесуточную нагрузку на чтение и запись.
Коды производителей где-то точно лежат, но я их нашёл только в исходниках lsmmc. c.
«Пробить по базе» карточку можно хотя бы в разделе RPi SD cards на сайте Embedded Linux, это просто отзывы пользователей.
Самое интересное — данных износа — пока не увидел, хотя утилиту mmc-utils собрал, но пока запустить её не удалось.
Недостатки

Какие минусы, помимо «сгорания» логов? Устройства без аппаратных часов при старте всегда считают, что на дворе 1 января 1970 года, и пребывают в этом заблуждении вплоть до подъёма сетевого стэка и доступности NTP. Поэтому на момент данной публикации целый ряд файловых объектов «нашлёпки» будут примерно на 46 лет моложе, чем им кажется. С другой стороны, несколько секунд от начала эпохи — уже не ноль.
UPD: часы реального времени
Пользователь st1373 в комментариях напомнил о наличии I2C-совместимых часов реального времени DS3231 (стоимостью примерно в полтора рулона туалетной бумаги). Есть и нехитрая инструкция на русском: Подключение RTC (часов реального времени) к Raspberry Pi.
Безопасность

Обновления безопасности накатывать на такую систему довольно неудобно. Но, опять же, взломать такую Вещь несколько сложнее, чем эксплуатировать уязвимость Adobe Flash в браузере обычного десктопа. Вредоносный код должен открыть файловую систему на запись, чтобы закрепиться в ней, иначе он «сгорит» при перезагрузке вместе с логами и мусором. Упомянутая ниже SquashFS усложняет изменения ещё больше. Однако все эти преимущества справедливы ровно до того момента, пока вся выпоняемая масса кода «замкнута» в read-only зонах, т.е. когда защищённая «подложка» не делает вызовов команд, расположенных в записываемых областях: именно это и есть (будет?) приоритетным вектором заражения в Интернете Вещей. Будьте внимательны со стартовыми скриптами, они выполняются с правами root, одно неверное движение — и это критическая уязвимость инфраструктуры домашнего очага, постоянно подключённой к Интернету.
Пошаговая инструкция

Поскольку я впервые в жизни установил Rasbian Jessie и особо не верю в долговечность microSD даже в read-only, то решил записать все шаги подробно. Вдруг понадобится повторить.
DISCLAIMER
Извините за переносы строк. Все команды запускаются с правами root, но аккуратный читатель может использовать каждый раз sudo. Честно говоря, я не понимаю, зачем каждую команду запускать через sudo, будто это защитит от чего-то. Вот скажите, когда вы в последний раз *не были* уверены, что хотите удалить данный файл в корзину? Это как выпить пять бокалов пива по пол-литра, но на дорожку ещё налейте один 0.33, пожалуйста, а то мне уже хватит… Я дам неправильный совет: если уж взялись за эти игрушки, выходите на root командой sudo bash, не занимайтесь самообманом.

1. Инициализация

Установите Raspbian Jessie Lite. Утилитой raspi-config задайте региональные настройки и пароль пользователя pi. Подключите сеть, Debian — дитя широкополосного доступа. Загрузку в графику пока не включайте.
apt-key update
apt-get update

2.
Установка и удаление программ
С графикой, установка:
apt-get install --no-install-recommends tightvncserver xtightvncviewer xserver-xorg xinit lxde-core lxappearance lightdm feh xprintidle policykit-1 busybox-syslogd ntpdate watchdog unionfs-fuse

Удаление:
dpkg --purge rsyslog
apt-get remove --purge wolfram-engine triggerhappy cron anacron logrotate dphys-swapfile fake-hwclock
apt-get autoremove --purge

Пакеты tightvncserver, xtightvncviewer, xprintidle и feh понадобились мне для частной задачи, можете обойтись без них.

Если без графики, вам *не* понадобятся также: xserver-xorg xinit lxde-core lxappearance lightdm policykit-1.

3. Создание графического окружения

Теперь утилитой raspi-config можно включить автозапуск в графическом режиме с автовходом, который будет с правами пользователя pi. Чем зацикливаться на sudo, лучше поставить сильный пароль пользователю pi, и не использовать pi для автоматического входа в графический интерфейс. #\?autologin-user=.*$/autologin-user=pu/’ /etc/lightdm/lightdm.conf
Вместо двух последних команд можете открыть редактором /etc/lightdm/lightdm.conf и задать значения двух параметров, первый я уже упоминал выше, второй говорит сам за себя:
...
xserver-command=X -s 0 -dpms -nocursor
...
autologin-user=pu
...

4. Сторожевой таймер (по желанию)

У меня Raspberry Pi 3 Model B, поэтому ядерный модуль сторожевого таймера зовут так:
modprobe bcm2835_wdt
echo "bcm2835_wdt " | sudo tee -a /etc/modules

Затем добавляем следующую строку в секцию [Install] в конце файла /lib/systemd/system/watchdog.service:
[Install]
WantedBy=multi-user.target

После этого включаем службу:
systemctl enable watchdog.service

Сторожевой таймер в минимальной конфигурации должен сработать, если зависло ядро. Но есть ещё много других вариантов, например, по чрезмерной нагрузке на систему, по истечению памяти, по перегреву системы, по отсутствию сигнального файла и т. д. См. также watchdog(8) и watchdog.conf(5)
5. Параметры старта

Я отключил отображение малинового лого и swap-файл, включил быструю загрузку. Для этого добавил в /boot/cmdline.txt буквально три слова logo.nologo fastboot noswap. У меня в итоге получилось так:
logo.nologo dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait fastboot noswap

6. Запечатывание корневой файловой системы Raspberry Pi в read-only

Вот теперь мы добрались, наконец, до главного.

Ниже скрипт, который следует расположить под именем mount_unionfs где-нибудь в /usr/local/bin. Не забудьте включить биты выполнимости +x (chmod 755 или 555). Обратите внимание на суффиксы .orig и .rw, они должны совпадать с подготовкой (далее):

#!/bin/sh
DIR=$1
ROOT_MOUNT=$(awk '$2=="/" {print substr($4,1,2)}' < /etc/fstab)
if [ $ROOT_MOUNT = "rw" ]; then
	/bin/mount --bind ${DIR}. orig ${DIR}
else
	/bin/mount -t tmpfs ramdisk ${DIR}.rw
	/usr/bin/unionfs-fuse -o cow,allow_other,suid,dev,nonempty ${DIR}.rw=RW:${DIR}.orig=RO ${DIR}
fi

Из других инструкций я решил воспользоваться советом и сделать следующее:
insserv -r bootlogs
insserv -r alsa-utils

rm -rf /var/lib/dhcp/
ln -s /tmp /var/lib/dhcp

Графические приложения очень любят записывать в /home что-нибудь ненужное, поэтому в дополнение к /etc и /var я включил ещё и /home. Подготовим разделы к переключению в режим UnionFS (внимание на суффиксы .orig и .rw):

cp -al /etc /etc.orig
mv /var /var.orig
mv /home /home.orig
mkdir /etc.rw /var /var.rw /home /home.rw

Наконец, файл fstab(5)
proc            /proc           proc    defaults        0       0
/dev/mmcblk0p1  /boot           vfat    ro              0       2
/dev/mmcblk0p2  /               ext4    ro              0       1
mount_unionfs   /etc            fuse    defaults        0       0
mount_unionfs   /var            fuse    defaults        0       0
mount_unionfs   /home           fuse    defaults        0       0
none            /tmp            tmpfs   defaults        0       0

7.
Аудит системы и тест
Окиньте взглядом систему, уберите за собой .bash_history, всякие лог-файлы и т.д. Учтите, что они сейчас могут находиться не там, где обычно (например, в /var.orig вместо var).

Перезагрузите систему и посмотрите, что получилось. Если была допущена ошибка, есть большие шансы, что система уйдёт в single user и просто запустит консоль root. Если файловая система цела, перемонтировать её из read-only в read-write довольно просто:

mount -o rw,remount /

Если же система загрузилась нормально в read-only и выполняет все функции, поздравляю!
Это родилась Интернет-Вещь.
8. Распечатывание файловой системы

Если нужно распечатать систему, сперва верните коневую систему в состояние read-write (см. выше). Затем закомментируйте в fstab(5) строки, начинающиеся со слова mount_unionfs, после чего *обязательно* верните на место каталог /var. orig со всем содержимым (и желательно /home.orig тоже). Если не восстановить /var, потеряете базу установленных пакетов, но ведь именно ради установки обновлений безопасности командой apt-get вы только что распечатали систему, не так ли? Перед apt-get перезагрузите систему и убедитесь в её адекватности. Как запечатывать обратно, знаете;)
Альтернативы

Уважаемых читателей, которые знают готовые промышленные образы операционных систем (с поддержкой read-only) для Raspberry Pi и других одноплатных компьютеров, приглашаю делиться в комментариях. Надеюсь, с вашей помощью я смогу информационно обогатить этот раздел и других читаталей, резидентов и гостей уважаемого портала:)

Что касается аппаратных альтернатив самому Малиновому Прогу в контексте прикладной задачи (сетевой HDMI-свисток), то я случайно наткнулся на один обзор, который, впрочем, можно обсудить отдельно. Чисто экономически Raspberry Pi весьма выгоден, это пока главное:)

Итак, поехали.

UPD: OverlayFS
Уважаемый ValdikSS упомянул проект OverlayFS, который вошёл в ядро Linux в 2014г, уже после оригинального немецкого поста, а также initramfs. А спустя некоторое время art_gl прислал ссылку на пошаговую инструкцию: Raspbian with Read-only Root.
Кстати, проект Domoticz, у которого есть и готовый образ для Малинового Прога, может использовать OverlayFS. И заодно ещё раз поблагодарю Sauron за комментарий про Domoticz.
UPD: SquashFS
Пользователи Vooon, Vcoderlab, av_in et al справедливо упомянули в комментариях SquashFS. И даже википедия отмечает, что данная система удачно ложится «под» union mount, также аккумулируя энтропию записи исключительно в ОЗУ для последующего уничтожения. Однако не стоит забывать, что SquashFS by-design всегда остаётся read-only, т.е. речь идёт скорее о серийном изготовлении firmware-прошивки, с соответствующим (длинным) циклом тестирования, но это не главное. Обновление критических уязвимостей, особенно на раздутых системах, очень сильно удорожает подобные проекты. И не только я считаю, что именно критические уязвимости в IoT будут определять ландшафт информационной безопасности в ближайшие лет десять. Нет ничего невозможного, но даже если уважаемый читатель настолько подкован, что может изготовить стабильный образ системы на SquashFS, стоит ли он двух-трёх Малиновых Прогов? Впрочем, это всего лишь вопрос времени, и мы с вами скоро увидим больше удачных community-проектов для Интернета Вещей на базе SquashFS, в т.ч. и для Raspberry Pi. Например, OpenELEC.
UPD: F2FS
Пользователь nlykl упомянул F2FS aka «Flash-Friendly File System», и на тему МалинПрога есть даже HOWTO: Replace the micro SD card’s ext4 root partition by f2fs on the Raspberry PI. DISCLAIMER: мною не проверялось. См. также обзор F2FS в одном онлайн-журнале.
UPD: Загрузка по сети
Пользователь ilmarin77 указал на официальную возможность загружать Прог по сети: Network booting. Появляется зависимость от сервера. Пожалуй, интересно для группы устройств, например, та же система видеотабло на объекте, либо (не очень критичная к отказам) система распределённых датчиков. Диапазон работы проводного модуля USB-Ethernet LAN9514 составляет 0..70°C
UPD: Загрузка с USB-накопителя
Снова ilmarin77 указал на загрузку с USB: How to boot from a USB Mass Storage Device on a Raspberry Pi 3. Если загружаться и работать с SSD, подключённого по USB, это будет надёжнее, чем microSD, но со скоростью USB 2.0 (где-то 30-40Мбайт/с, да ещё и в полудуплексе). Мне такая идея не очень нравится, потому что превращает устройство в медленный десктоп. Возможно, лучше загружаться с read-only microSD, но логи и СУБД держать на SSD повышенной надёжности и небольшой ёмкости, чтобы не стоило как деталь самолёта. USB-флэшка потенциально обладает теми же проблемами, что и microSD, и принципиально ничего не меняет.
UPD: Сторожевой таймер (watchdog)
Пользователь homecreate указал на более простой способ включения сторожевого таймера через systemd, правда, с некоторыми ограничениями. См. также комментарий.
UPD:
Находится ли моя система в зоне риска?

Именно этот вопрос и задаёт себе рациональный читатель. К сожалению, индустрия флэш-памяти для Интернета Вещей только начинает вырабатывать аппаратные механизмы, аналогичные S.M.A.R.T для HDD и SSD. SanDisk, кстати, уже пошёл по этому пути, встроив метрики износа в структуры EXTCSD. И когда нужные стандарты более-менее устаканятся, появится поддержка в ядре Linux и утилиты командной строки. А там, глядишь, и аналог smartd(8) для встраиваемых систем появится.

Но получить ответ на вопрос «сколько моя Linux-система записывает на SD-карточку в сутки/неделю» можно уже сейчас, нужно только продержать систему включённой достаточно долго, чтобы статистика получилась точнее (т.е. желателен uptime порядка месяца, или хотя бы 10 дней). Итак, заходим в систему и делаем две команды (без sudo и root):

uptime
cat /sys/block/mmcblk0/stat | awk '{printf "Uptime read: %. 3fMiB (%.1f%% I/Os merged) written: %.3f MiB (%.1f%% I/Os merged)\n", $3*512/1048576, $2/$1*100, $7*512/1048576, $6/$5*100}'

Первая в комментариях не нуждается, а вторая напишет объёмы считанных и записанных данных с момента старта системы, в мегабайтах, а также «кучность» запросов. Например, пользователь Meklon в комментариях весьма любезно поделился цифрами медиа-центра, работающего на базе openELEC / KODI. Примерно за 6 дней система считала порядка 72Мб и записала менее 66Мб. Примечательно соотношение чтение/запись близкое к 1:1, что я связываю с использованием SquashFS (она распаковывает файловую систему в ОЗУ и потому SD-карточку почти не трогает даже на чтение). Классические же системы имеют показатель чтение/запись от 5:1 до 10:1, но он может сильно варьироваться. Однако главное в том, что 10Мб в сутки — это существенно меньше автомобильного регистратора, система с такими параметрами весьма долговечна.
Но помимо статистического подвоха, в такой методике есть ещё один чисто технологический изъян: запись на флэшку производится не блоками по 512 байт, а страницами неизвестного размера, либо даже целыми erase-блоками мегабайтных размеров. В докладе Optimizations for Cheap Flash Media автора Arnd Bergmann (ссылка, англ.) сказано довольно много интересного по поводу внутренней «кухни» флэшек, в т.ч. упомянут размер страницы 32КБайт, размер erase-блока 4..8МБайт. И если принять самый неудачный сценарий «кучности» записи, то каждый блок 512 байт вынудит записать одну страницу целый erase-блок, т.е. объём фактически записанных данных получится в 64 раза тысячекратно больше, чем говорит stat. Пользователи в комментариях описывали систему с интенсивностью записи порядка 6ГБайт/мес, которая изнашивает microSD-карточку всего за несколько месяцев.
Как только автор наберёт достаточно материала, будет продолжение в отдельной публикации.
Ссылки

Make Raspbian System Read-Only
blog.pi3g.com/2014/04/make-raspbian-system-read-only
(источник)

How to make RaspberryPi truly read-only, reliable and trouble-free
k3a.me/how-to-make-raspberrypi-truly-read-only-reliable-and-trouble-free
(без графики)

Protect your Raspberry PI SD card, use Read-Only filesystem
hallard. me/raspberry-pi-read-only
(прислал sisaenkov, улучшенная версия, но тоже без графики)

Stopping SD Card Corruption on Raspberry Pi’s Raspbian
ideaheap.com/2013/07/stopping-sd-card-corruption-on-a-raspberry-pi
(без графики)

Raspberry Pi как информационное табло — с помощью VNC на localhost
habrahabr.ru/post/212661

Подключение RTC (часы реального времени) к Raspberry Pi
raspberrypi.ru/blog/598.html
(использует I2C-совместимые часы DS3231)

How to boot from a USB Mass Storage Device on a Raspberry Pi 3
www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md

Network booting
www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/net.md

ECIO(TM), a powerful USB programmable single chip computer based on PICmicro microcontroller technology
www.matrixtsl.com/product.php?Prod=ECIO28P

Easy Raspberry Pi Based Screensaver/Slideshow for Exhibitions/Store Front
www.instructables. com/id/Easy-Raspberry-Pi-Based-ScreensaverSlideshow-for-E
(у меня вызвал искреннее недоумение шаг 6)

Flash memory card design (2013)
wiki.linaro.org/WorkingGroups/KernelArchived/Projects/FlashCardSurvey
(почему флэшка накрывается гораздо раньше, чем мы ожидаем? польза и вред от оптимизации внутренней логики под FAT; классификация контрафактных продуктов; каталог флэшек 2013г)

Optimizing Linux with cheap flash drives, Arnd Bergmann, 2011
lwn.net/Articles/428584
(иллюстрированная статья)

Optimizations for Cheap Flash Media, Arnd Bergmann, 2011
free-electrons.com/blog/elce-2011-videos
(видео выступления на английском, запись любительская, но интересная)

SD Association, Simplified Specifications, Part 1 Simplified: Physical Layer Simplified Specification
www.sdcard.org/downloads/pls/index.html

Block layer statistics in /sys/block/<dev>/stat
www.kernel.org/doc/Documentation/block/stat.txt
(как оценить износ SD-карточки с момента запуска системы: запустите cat /sys/block/mmcblk0/stat и потом сразу uptime)

Программирование на Python: Часть 8.

Файловая система

Программирование на Python

Сергей Яковлев
Опубликовано 02.09.2010

Серия контента:

Этот контент является частью # из серии # статей: Программирование на Python

https://www.ibm.com/developerworks/ru/library/?series_title_by=**auto**

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Программирование на Python

Следите за выходом новых статей этой серии.

После изучения классов в Python мы перейдем к работе с файлами и файловой системой. Функции и объекты, описанные в этой главе, позволят вам сохранять данные между вызовами программы, а также обмениваться данными между программами.

Сегодня мы рассмотрим следующие темы.

  1. Как открыть файл.
  2. Базовые файловые методы.
  3. Стандартный ввод/вывод.
  4. Произвольный доступ.
  5. Построчная работа с файлами.
  6. Закрытие файла.
  7. Итерация.
  8. Pickling.
  9. Бинарные файлы – модуль struct.
  10. Работа с файловой системой.

1. Как открыть файл

Открыть файл можно с помощью функции open:

  open(name[, mode[, buffering]])

Функция возвращает файловый объект. Обязателен только первый аргумент. Если остальные параметры отсутствуют, файл будет доступен на чтение. Таблица режимов (mode) функции open:

‘r’ – чтение.

‘w’ – запись.

‘a’ – добавление.

‘b’ – бинарный режим.

‘+’ – чтение/запись.

Режим ‘+’ может быть добавлен к остальным режимам. По умолчанию питон открывает файлы в текстовом режиме. Для открытия файла в бинарном режиме на чтение можно добавить ‘rb’. Третий параметр устанавливает размер буферизации при работе с файлом. По умолчанию он выключен, и чтение/запись идет напрямую с диска на диск. Для включения буфера третий параметр должен быть отличным от нуля.

2. Базовые файловые методы

В питоне многие объекты являются файлами: стандартный ввод sys.stdin, стандартный вывод sys.stdout, объекты, открываемые функцией urllib.urlopen и т.д.

Запись в файл:

>>> f = open('my_file', 'w')
>>> f.write('Hello, ')
>>> f.write('World!')
>>> f.close()

Чтение:

>>> f = open('my_file', 'r')
>>> f. read(5)
'Hello'
>>> f.read()
', World!'

3. Стандартный ввод/вывод

В командной строке можно записать подряд несколько команд, передавая результат работы от одной команды к другой по конвейеру – или по каналу (pipe):

  cat my_file | python test.py

Первая команда – cat – пишет содержимое текстового файла my_file на стандартный вывод sys.stdout . Вторая команда запускает питоновский файл, который читает стандартный ввод sys.stdin , подсчитывает в нем количество слов и выводит результат:

test.py:
import sys
text = sys.stdin.read()
words = text.split()
wordcount = len(words)
print 'Wordcount:', wordcount

Канал – или пайп (pipe) – это конструкция, объединяющая стандартный вывод со стандартным вводом и позволяющая обмениваться данными между двумя командами.

4. Произвольный доступ

По умолчанию метод read() читает данные последовательно по порядку, от начала и до конца файла. Для произвольного доступа к файлу есть функция seek:

  seek(offset[, whence])

offset – смещение в байтах относительно начала файла;

whence – по умолчанию равен нулю, указывает на то, что смещение берется относительно начала файла.

Пример:

>>> f = open(r'my_file', 'w')
>>> f.write('01234567890123456789')
>>> f.seek(5)
>>> f.write('Hello, World!')
>>> f.close()
>>> f = open(r'my_file')
>>> f.read()
'01234Hello, World!89'

Функция tell() возвращает текущую позицию файла.

5. Построчная работа с файлами

Обычно мы имеем дело с текстовыми файлами. Прочитать одну строку:

  file.readline()

Функция readline() без параметра читает всю строку, наличие параметра указывает функции максимальное число символов строки, которое будет прочитано. Прочитать все строки и вернуть список строк:

  file. readlines()

Записать строки в файл:

  file.writelines()

Пример. Прочитать файл и записать его содержимое в другой файл:

f = open(r'my_file')
lines = f.readlines()
f.close()
lines[0] = "This is a my_file2 \n" # изменяем 1-ю строку
f = open(r'my_file2','w')
f.writelines(lines)
f.close()

6. Закрытие файла

Для закрытия файла есть метод close(). Обычно файл закрывается сам после того, как вы выходите из программы, но файлы нужно закрывать вручную по нескольким причинам.

  1. Питон может буферизировать запись в файл ваших данных, что может привести к неожиданным эффектам и возникновению ошибок.
  2. У операционной системы есть ограничение на число одновременно открытых файлов.
  3. При доступе к файлу из разных мест одновременно и на чтение, и на запись необходимо синхронизировать файловые операции. Буферизация записи может привести к тому, что запись уже произошла, а данных в файле еще нет.

Для полной уверенности в закрытии файла можно использовать блок try/finally:

  try:
     # Тут идет запись в файл
  finally:
     file.close()

Можно также использовать менеджер контекста, который в любом случае закроет файл:

 with open("my_file") as somefile:
    do_something(somefile)

Если вы все же не хотите закрывать файл, то синхронизировать многопользовательский доступ к файлу на чтение/запись можно с помощью функции flush(), которая актуализирует все операции записи на диск. При этом возможна блокировка файла на чтение.

7. Итерация

Итерация по файлу является базовой операцией и имеет множество вариантов. Использование функции read() для байтового чтения:

f = open(filename)
while True:
  char = f.read(1)
  if not char: break
  process(char)
f.close()

Построчное чтение текстовых файлов и функция readline():

f = open(filename)
while True:
  line = f. readline()
  if not line: break
  process(line)
f.close()

Файл сам может выступать в роли итератора:

for line in open(filename):
  process(line)

8. Pickling

Практически любой тип объекта может быть сохранен на диске в любой момент его жизни, а позже прочитан с диска. Для этого есть модуль pickle:

import pickle
t1 = [1, 2, 3]
s = pickle.dumps(t1)
t2 = pickle.loads(s)
print t2
[1, 2, 3]

Здесь есть небольшой нюанс: t1 и t2 будут двумя разными объектами, хотя и идентичными.

9. Бинарные файлы

Стандартный модуль struct позволяет преобразовывать объекты в структуры C в виде строк в бинарном формате и обратно. Данные в строке располагаются в соответствии со строкой формата. Эти возможности могут быть использованы для чтения и сохранения в двоичном формате.

Функции этого модуля:

   pack(format, value1, value2 ...)

Возвращает строку, содержащую значения value1 . .., упакованные в соответствии с форматом. Количество и тип аргументов должны соответствовать значениям, которые требует строка формата format.

   unpack(format, string)

Распаковывает строку string в соответствии с форматом format и возвращает кортеж объектов.

   calcsize(format)

Возвращает размер структуры (т.е. длину строки), соответствующей формату format.

Таблица основных форматов
===========================
Format      C Type          Python 	
===========================
c             char               string of length 1 	 
?             Bool              bool 	
i 	   int                  integer 	 
l 	   long               integer 	 
f 	   float               float 	 
d 	   double           float 	 
s 	   char[]            string

Перед символом формата может идти число, обозначающее количество повторений. Например, строка формата ‘4h’ полностью эквивалентна строке ‘hhhh’. Символы пропуска между символами формата игнорируются, однако символы пропуска между числом и символом формата не допускаются.

Число перед символом формата ‘s’ интерпретируется как длина строки, а не число повторений. То есть ’10s’ обозначает строку из 10 символов, в то время как ’10c’ – 10 раз по одному символу.

Можно изменить порядок следования байтов вручную:

  < - little-endian
  > - big-endian

В следующем примере мы упаковываем в структуру два числа – целое и float, строку из пяти символов, сохраняем в бинарный файл, а потом извлекаем из файла:

from struct import *
out = open("123.bin", "wb")    
format = "if5s"                
data   = pack(format, 24,12.48,'12345')
out.write(data)
out.close()
input = open("123.bin", "rb")
data = input.read()
input.close()
format = "if5s"                   # one integer
value,value2,value3 = unpack(format, data) # note the ',' in 'value,': 
	unpack apparently returns a n-uple
print value
print value2
print value3
print calcsize(format)

>>> 24
>>> 12. 4799995422
>>> 12345
>>> 13

10. Работа с файловой системой

Стандартный модуль os имеет интерфейс работы с файловой системой. Каждая программа имеет текущий каталог. Функция os.getcwd возвращает текущий каталог:

import os
cwd = os.getcwd()
print cwd

Проверить наличие файла в текущем каталоге:

  os.path.exists('my_file')

Вывести список файлов и подкаталогов для данного каталога:

  os.listdir(path)

Следующий пример рекурсивно выводит список всех файлов и подкаталогов для данного каталога:

import os
def walk(dir):
  for name in os.listdir(dir):
    path = os.path.join(dir, name)
    if os.path.isfile(path):
        print path
    else:
        walk(path)
walk(path)

В следующем примере мы получим статистическую информацию о текущем каталоге: общий размер каталога в байтах, число файлов, число подкаталогов. Стандартная функция os.path.walk имеет три параметра: каталог, пользовательская функция, список для подсчета:

import os, sys
def getlocaldata(sms,dr,flst):
   for f in flst:
      fullf = os.path.join(dr,f)
      if os.path.islink(fullf): continue # don't count linked files
      if os.path.isfile(fullf):
          sms[0] += os.path.getsize(fullf)
          sms[1] += 1
      else:
          sms[2] += 1
def dtstat(dtroot):
   sums = [0,0,1] # 0 bytes, 0 files, 1 directory so far
   os.path.walk(dtroot,getlocaldata,sums)
   return sums

report = dtstat('.')
print report

В следующем примере сделана интерпретация системной утилиты grep. В текущем каталоге будут найдены файлы с питоновским расширением, в которых будет найдена поисковая строка ‘import os’:

import os, sys, fnmatch

mask = '*.py'
pattern = 'import os'

def walk(arg,dir,files):
   for file in files:
     if fnmatch.fnmatch(file,mask):
        name = os. path.join(dir,file)
        try:
          data = open(name,'rb').read()
          if data.find(pattern) != -1:
            print name
        except:
            pass    
os.path.walk('.',walk,[])

Заключение

Сегодня мы узнали, что файловые объекты поддерживают чтение/запись. Для корректной работы с данными файл нужно программно закрывать. Файлы можно открывать в различных режимах. Стандартный ввод/вывод – это тоже файлы. Можно построчно читать и писать в файл. К файлам можно применять байтовую и построчную итерацию. Любые объекты могут быть сохранены на диске в произвольный момент времени в произвольном состоянии и позже восстановлены путем считывания с диска. Чтение/запись можно выполнять в бинарном режиме, соблюдая совместимость со структурами на языке си. Интерфейс с операционной системой позволяет писать компактные программы, дополняющие стандартные утилиты операционной системы.

Приведенные примеры проверены на версии питона 2.6.

< Предыдущая статья. Следующая статья >

Ресурсы для скачивания

Что такое файлы «read-only» и для чего они используются?

Вернуться в раздел Вопросы и ответы

Ответ: Файлы «только для чтения» («read-only») могут быть открыты, но не могут быть отредактированы. Они обычно используются в качестве шаблонов для создания новых файлов. Так как файлы «только для чтения» не могут быть изменены, они часто выступают в качестве модели или основы для создания нескольких похожих файлов. И Windows и Mac OS X поддерживают файлы «только для чтения».

ОС Windows

Чтобы сделать файл «только для чтения» («read-only») в Windows, сперва нужно щелкнуть правой кнопкой мыши по файлу, а затем выбрать пункт «Свойства» («Properties»). Затем в нижней части окна Свойства в разделе «Атрибуты» («Attributes») следует просто установить флажок «Только для чтения» (как показано ниже) и нажать кнопку Применить («Apply»).

Как только свойство файла установлено как «только для чтения», его нельзя перезаписать. Хотя, открыв файл, можно сохранить его с другим именем файла. Открытие файла только для чтения похоже на использование функции «Открыть как копию» («Open as a copy»), которую предлагают некоторые программы. Однако, в отличие от открытия файла с признаком «только для чтения», функция «Открыть как копию» создает копию файла при его открытии, а не при его сохранении.

Примечание: Если попытаться отредактировать и сохранить файл с атрибутом «только для чтения», то появится ошибка при сохранении «Не удается создать файл (путь к файлу). Проверьте правильность пути и имени файла.»

Mac OS X

Пользователи ОС Mac также могут создавать документы «только для чтения». Чтобы сделать файл «только для чтения» в Mac OS X, нужно щелкнуть правой кнопкой мыши (или Control-клик) по файлу и затем выбрать пункт меню «Получение информации» («Get Info»). В верхней части Информационного окна имеется флажок «Блокнот» («Stationery Pad») (см. ниже). Установка этого флажка, преобразует файл в шаблон «только для чтения». Всякий раз, когда открывается файл с установленным флажком «Блокнот», создается копия файла.

Опции «Блокнот» в Mac OS X служат полезным средством создания нескольких похожих документов на основе одного стандартного документа. Тем не менее, «блокноты» могут быть перезаписаны, если файл с таким же именем сохраняется на документ-«блокнот». Таким образом, рекомендуется для хранения документов-«блокнотов» использовать отдельный каталог, в котором не хранить редактируемые документы.

В Mac OS X для предотвращения от случайного удаления важных документы или заменены их новыми документами, пользователи могут выбрать флажок «Заблокированные» («Locked») в Информационном окно файла (см. выше).

Вернуться в раздел Вопросы и ответы

Определение формата Merriam-Webster

для · мата | \ ˈFȯr-ˌmat \

1 : форма, размер и общий вид (как что-то напечатанное)

2 : общий план организации, расстановки или выбора материала (как для телешоу)

3 : метод организации данных (как для хранения) различные форматы файлов

переходный глагол

1 : для упорядочивания (чего-либо, например, материала для печати или сохраненных данных) в определенном формате.

2 : для подготовки (чего-либо, например, компьютерного диска) для хранения данных в определенном формате.

Определение и значение формата | Словарь английского языка Коллинза

Примеры «формата» в предложении

формат

Эти примеры были выбраны автоматически и могут содержать конфиденциальный контент. Прочитайте больше… Также может быть проще экспериментировать с новыми форматами и продвигать успехи во всем мире.

Times, Sunday Times (2016)

Компания тестирует новые форматы, которые проигрывают фотографии пользователей.

Times, Sunday Times (2016)

Он сказал: «Я лично считаю, что им нужно найти другой формат.

Солнце (2017)

Что вам нравится в формате рассказа?

Солнце (2013)

Нет ничего постыдного в том, чтобы найти публикации в других форматах, которые вообще не должны быть книгами.

Times, Sunday Times (2006)

Как работает формат этого произведения?

Гошгарян, Гэри Исследуя язык (6-е изд.) (1995)

Есть так много разных проектов, так много разных форматов и так много разных вещей.

Times, Sunday Times (2013)

Формат программы был прост.

Джон Фут Кальчио: История итальянского футбола (2006)

Самый короткий формат игры снова заслуживает самой высокой оценки.

Times, Sunday Times (2010)

Это совершенно другой формат, и вы должны спланировать его.

Times, Sunday Times (2009)

Подробнее …

В более коротком формате он — автоматический выбор, установивший самые высокие стандарты.

Times, Sunday Times (2011)

Служба также делала изображения и информацию доступными в мобильном формате для оперативников полиции.

Times, Sunday Times (2007)

Именно так работает этот формат викторины.

Times, Sunday Times (2013)

Но действительно приятно, когда они говорят, что им нравится новый формат.

Солнце (2014)

Единственная придирка — теснота книги.

The Times Literary Supplement (2013)

Они выглядят по-разному и имеют разные форматы, но все они имеют одинаковый объем.

Times, Sunday Times (2010)

Новый формат действительно помогает им, но они также выиграли не меньше игр, чем Англия.

The Sun (2016)

Формат программы: гости выбирают восемь пластинок, которые они взяли бы с собой на необитаемый остров.

Солнце (2006)

Мы не искали новый формат; мы искали способы улучшить наш собственный стиль и формат.

Христианство сегодня (2000)

Это хороший пример того, как суды принимают изменение форматов СМИ и новые способы получения информации общественностью.

Times, Sunday Times (2011)

Когда компьютер форматирует диск, он разбивает его на большое количество кластеров, в которых хранятся ваши данные.

Times, Sunday Times (2012)

Формат обеспечивает дополнительный выбор в середине диапазона между 35 мм и более крупными форматами, доступными для рулонной пленки.

Freeman, Michael Photographers Handbook (1993)

Но он может получить доступ к меньшему количеству форматов книг, чем его конкуренты, включая систему, которая позволяет вам бесплатно получать книги из местных библиотек.

Солнце (2012)

Ему доступны и другие форматы крикета, чего 50 лет назад не было для игроков.

Times, Sunday Times (2009)

Но мне нравится смотреть с нетерпением, и для меня формат трибуны исчерпал себя.

The Sun (2007)

Тем не менее, давайте не будем сбрасывать со счетов способ, которым формат позволяет нам проводить время с некоторыми из менее громких названий дартс.

Times, Sunday Times (2010)

Что означает формат (Подробное руководство) (ДОЛЖЕН ПРОЧИТАТЬ! • ДЕКАБРЬ 2020)

Определение формата Что это означает и руководства, показывающие, как форматировать

Когда мы говорим о форматировании диска, будь то дискета, жесткий диск или флэш-накопитель, мы имеем в виду подготовить выбранный раздел жесткого диска для использования нашей операционной системой Windows или любой другой ОС после удаления всех файлов и данные на нем, а затем настроить файловую систему.Наиболее часто используемой файловой системой, поддерживаемой Windows, является NTFS, в редких случаях вы также видели FAT32.

Форматирование в окнах выполняется с помощью их Disk Management Tool. Кроме того, вы можете отформатировать жесткий диск через интерфейс командной строки (командную строку) с помощью команды форматирования.

Что означает формат

Примечание: вы должны знать, что раздел обычно охватывает весь физический жесткий диск. Это причина, по которой мы говорим «форматировать диск», в то время как на самом деле мы просто форматируем раздел на диске.Также возможно, что раздел может занимать весь размер диска.

У вас лучший жесткий диск? Посмотрите наш список из лучших внешних жестких дисков, чтобы купить сейчас.

Ресурсы по форматированию

Процесс форматирования обычно не происходит случайно, поэтому не о чем беспокоиться, так как вы можете удалить все свои файлы и данные по ошибке. В то же время, выполняя процесс форматирования, вы должны быть осторожны и быть уверены, что действительно знаете, что вы из себя представляете. делает.

Иногда устройства, такие как камеры, позволяют форматировать хранилище через них. Это похоже на процесс форматирования жесткого диска через компьютер, также это возможно со многими цифровыми камерами, игровыми консолями или любыми другими устройствами, которым требуется форматирование жесткого диска.

Дополнительная информация о форматировании

Форматирование диска C: или любого буквенного раздела, где установлены окна, должно выполняться за пределами окон, потому что вы не можете удалить файлы, которые вы используете в данный момент. Таким образом, выполнение этого извне означает, что файлы не используются или не работают и, следовательно, могут быть удалены.

Если вы хотите отформатировать существующий жесткий диск, чтобы вы могли установить на него окна, не беспокойтесь, нет необходимости вручную форматировать жесткий диск для этой цели, потому что когда вы выполняете «чистую установку» окон форматирование становится его частью во время установки.

Но у вас есть файловая система FAT32, и вы хотите отформатировать устройство, чтобы изменить файловую систему на NTFS. Во-первых, вам нужно полностью очистить этот диск, сохранив данные путем копирования с диска в другое место.Вы также можете восстановить данные с раздела, даже если он отформатирован. Для этого существует множество бесплатных и платных инструментов восстановления, в зависимости от ваших потребностей.

Существует два типа форматирования: низкий уровень и высокий уровень. При высокоуровневом форматировании файловая система записывается на диск, так что данные могут быть поняты и организованы программным обеспечением, которое читает с них и записывает на них. При низкоуровневом форматировании на диске выделяются сектора и дорожки.Но имейте в виду, что это делает производитель еще до продажи накопителя.

Примечание. Формат слова также означает тип данных, например изображения и текст. Такие программы, как MS Word, могут форматировать текст, чтобы выровнять его со страницей, изменить шрифт и так далее. Этот процесс может относиться как к внутреннему, так и к внешнему жесткому диску вашего ПК.

Другие диски

Что означает формат (подробное руководство) Обновлено

[Спрятать] [/Спрятать]

Вот и все. Надеюсь, мы рассмотрели для вас все аспекты.Продолжайте посещать наш блог, чтобы получить более информативные технические статьи.

Статьи по теме Как сделать резервную копию вашего Gmail Подробное руководство Как перенести данные на новый жесткий диск Xbox 360

Что ваш выбор формата значит для читателей? — Профи пишут

Хёнджин Сон и Норберт Шварц так резюмируют значение некоторых недавних психологических исследований формата:

Любая переменная, которая облегчает или затрудняет плавную обработку информации, может серьезно повлиять на суждения и решения людей. Поэтому [писателям] рекомендуется представлять информацию в форме, облегчающей ее обработку: если ее легко читать, то кажется, что это легко сделать, красиво, хорошо и правдиво.

Давайте рассмотрим это на примере памятки с простым планом снижения затрат на электроэнергию в офисе.

Memo A

Простота шрифта определяет воспринимаемую простоту содержания

Фактическое содержание — каждое слово — и его расположение одинаковы в Memo A и Memo B.

Memo B

Но мы можем предсказать, что читатели Memo B сочтут, что содержание трудно понять или рекомендацию трудно реализовать из-за выбранных шрифтов.

  • Memo A использует старые настройки MS Word по умолчанию: Arial для заголовков и Times New Roman для основного текста.
  • Memo B использует Forte для заголовков и Mistral для основного текста.

Если бы читатели, рассматривающие предложенную рекомендацию, могли выбирать между чтением памятки A или памятки B, памятка A выигрывала бы почти каждый раз. Это потому, что гарнитура влияет на то, насколько быстро информация может быть обработана. Мы приравниваем легкость чтения к легкости понимания или выполнения.

Знакомство шрифта и слов определяет предполагаемый риск в контенте

Memo C

Другая проблема использования шрифтов в Memo B связана с их незнакомостью.Оказывается, мы ассоциируем риск с незнакомым.

Вот еще один пример этого принципа. Содержание Memo A и Memo C идентично, за исключением того, что Memo A использует слово «уменьшить», а Memo C заменяет это слово словом «свернуть». Между двумя служебными записками нет ничего другого.

Тем не менее, мы можем предсказать, что читатели Memo C сочтут рекомендацию более рискованной, чем читатели Memo A, из-за использования менее привычного «сокращения». В данном случае речь идет о разнице в стиле, а не в формате.Дело в том, что мы приравниваем легкость чтения — будь то из-за знакомого шрифта или выбора слов — с безопасностью.

Разборчивость определяет воспринимаемую правдивость содержания

Memo D

Memo D точно такая же, как Memo A, за исключением того, что она менее разборчива из-за низкого цветового контраста между черным текстом на синем фоне. Мы можем предсказать, что читатели Memo D будут меньше поверить в истинность его содержания, чем читатели Memo A. Мы приравниваем легкость чтения к правде.

В целом, ваш выбор формата влияет на то, что читатели думают о вашем контенте.Это сложно или легко использовать и понять? То, о чем вы говорите, рискованно или безопасно? Это правда? Все отличные причины изучить несколько принципов выбора удачного формата для ваших документов. В моем видеоуроке (см. Ссылку ниже) рассматриваются основы использования шрифтов, макета страницы и списков.

Спасибо Шерил Стивенс за то, что ознакомила меня с этой статьей в Психолог . Оригинал стоит прочитать, чтобы узнать больше об исследованиях, лежащих в основе успешного выбора форматирования.

Статьи по теме
  • Видеоурок по формату (proswrite.com)

Нравится:

Нравится Загрузка …

6 примеров форматирования контента для активизации вашего блога Формат

Примеры форматирования контента, которые вы собираетесь увидеть, могут изменить страницы вашего веб-сайта.

Звучит как смелое обещание, не так ли?

Вот в чем дело…

Вы тратите часы на исследование, написание, полировку и продвижение своего контента.

Но если вы хотите, чтобы люди на самом деле читали и поглощали те слова, которые вы написали, вы должны освоить форматирование контента.

Вам нужен формат блога, который легко просматривать и радовать глаз.

Как произвести сенсационное первое впечатление с помощью формата вашего блога

В момент их прибытия пальцы посетителя вашего сайта все еще находятся над клавишами, готовые щелкнуть мышью.

Как вы их там будете держать?

Как вы предложите им задержаться и немного почитать?

Мой друг, это проще, чем вы думаете.

Сегодня я собираюсь показать вам, как несколько простых примеров форматирования онлайн-контента помогут вам создать сообщение в блоге или страницу веб-сайта, которые выглядят привлекательно, увлекательно и авторитетно.

Форматирование содержания блога таким образом не займет много времени, особенно если вы сделаете это привычкой.

Давайте научим вас форматировать свой веб-сайт и содержимое блога как профессионал.

Почему форматирование содержимого для Интернета отличается от форматирования текста для печати

Форматирование веб-содержимого отличается от форматирования для печати почти каждым способом из-за того, как пользователи читают в Интернете.

Вместо того, чтобы держать в руках осязаемую страницу, они скользят по гладкой поверхности без начала и (иногда) без конца.

Это может затруднить захват и удержание внимания.

Печатный дизайн ориентирован на экономию бумаги — вы хотите разместить на каждой странице как можно больше информации, не делая ее слишком переполненной. Бумага и чернила стоят денег!

Онлайн у нас есть две суперспособности — неограниченное количество «бумаги» (экранов) и «чернил» (пикселей) в нашем распоряжении.

Давайте поговорим о том, как использовать эти мощные элементы, чтобы мы могли использовать ваш ясный, чистый формат блога, чтобы люди оставались на вашей странице.

6 примеров форматирования контента, которые побуждают читать в Интернете

Вот как сделать ваши слова удобными для чтения в Интернете. Вы найдете каждый из этих примеров форматирования содержимого в отдельном разделе ниже:

  1. Добавьте пробел на свою страницу, написав более короткие абзацы
  2. Включите подзаголовки , чтобы упростить просмотр формата блога
  3. Добавить маркированный перечисляет везде, где вы делитесь последовательной информацией
  4. Плетите цитатами , чтобы подчеркнуть запоминающиеся идеи
  5. Добавьте ссылки как для визуального интереса, так и для поисковой оптимизации
  6. Используйте хотя бы одно изображение , чтобы придать смысл вашим словам

Давайте рассмотрим каждый из них по отдельности — см. Примеры в каждом разделе.

1. Добавьте пустое пространство на страницу, написав более короткие абзацы.

В Интернете люди просматривают текст — они не читают слово в слово.

Из-за обилия информации, доступной в Интернете, если формат вашего блога выглядит слишком плотным и трудным для чтения, посетитель вашего сайта перейдет на страницу, которая кажется более простой.

Вот где белое пространство становится важным.

Добавление пробелов между мыслями на странице позволяет быстрее просматривать и усваивать их. Это делает вашу страницу более дружелюбной.

Ваш ключ возврата — ваш союзник в этой битве.

Вот пример без
многих возвратов:

Еще в 2017 году я разработал подход к построению онлайн-бизнеса, который я тестировал на моих частных коучинговых клиентах. Им это понравилось. Собственно говоря, поскольку я тренирую по видео, я смог стать свидетелем того момента, когда тяжесть была снята с их плеч. Они выглядели светлее. С облегчением. Счастливый. Именно тогда я понял, что кое-что нахожу.

Итак, я разработал концепции и начал преподавать их всем, кто готов был их слушать.Созданный мной подход называется Plan & Grow BIG. Plan & Grow BIG признает важную истину. Создание успешного онлайн-бизнеса происходит в несколько этапов. И — сюрприз! — вам нужно только сосредоточиться на той стадии, на которой вы находитесь.

Чтобы помочь вам сократить список дел до размера, я создал свое «одностраничное чудо» — Дорожную карту онлайн-бизнеса. На этой единственной странице показаны точные шаги по созданию мощного онлайн-бизнеса с использованием моего подхода Plan & Grow BIG. Распечатайте его и держите под рукой — это поможет вам сосредоточиться на том, что должно произойти прямо сейчас.Что еще более важно, это поможет вам игнорировать то, что не важно на этапе, на котором вы находитесь. Добро пожаловать в гораздо более короткий список дел, мой друг. Как вы будете использовать все дополнительное время, которое у вас будет?

Вот тот же текст с большим количеством возвратов (и с небольшим дополнительным форматированием):

Еще в 2017 году я разработал подход к построению бизнеса в Интернете, который я тестировал с моими частными клиентами-консультантами.

Они любили это.

На самом деле, поскольку я тренирую по видео, я смог стать свидетелем того момента, когда вес был снят с их плеч.

Они выглядели светлее. С облегчением. Счастливый.

Вот тогда я понял, что кое-что натолкнул.

Итак, я разработал концепции и начал преподавать их всем, кто готов был их слушать.

Созданный мной подход называется Plan & Grow BIG.

Plan & Grow BIG признает важную истину.

Создание успешного онлайн-бизнеса происходит в несколько этапов. И — сюрприз! — вам нужно только сосредоточиться на той стадии, на которой вы находитесь.

Чтобы помочь вам сократить свой список дел до размера, я создал свое «одностраничное чудо» — Дорожную карту онлайн-бизнеса.На этой единственной странице показаны точные шаги по созданию мощного онлайн-бизнеса с использованием моего подхода Plan & Grow BIG.

Распечатайте и держите под рукой — это поможет вам сосредоточиться на том, что должно произойти прямо сейчас.

Что еще более важно, это поможет вам игнорировать то, что не важно на этапе, в котором вы находитесь.

Добро пожаловать в гораздо более короткий список дел, мой друг.

Как вы будете использовать все дополнительное время, которое у вас будет?

Начинайте новый абзац с каждой новой идеей

Если вы не привыкли писать короткие абзацы или вам трудно нарушить «Официальные правила написания английского текста», которые вы выучили в гимназии, используйте это правило thumb:

Каждый раз, когда ваши идеи «поворачивают за угол» и движутся в другом направлении, пытаясь нажать клавишу возврата и начать новый абзац.

Если вы это читаете, то с большой вероятностью Интернета не было, когда вы учились в гимназии! Это означает, что вы научились писать для печати, а не для Интернета.

Найдите время, чтобы адаптировать свой стиль письма к новой среде, и не бойтесь отказываться от правил, которые не работают.

2. Включите подзаголовки, чтобы облегчить просмотр страниц.

В Интернете читатели, как правило, просматривают страницу, часто сразу решая, будут они читать всю страницу или нет.

Ваши подзаголовки — если они сделаны правильно — могут быть откровенными союзниками для вашей статьи в этот решающий момент.

Лучшие подзаголовки:

  • Умные и многообещающие: доставляют информацию и пробуждают любопытство
  • Появляются через каждые несколько абзацев: Используйте подзаголовки, чтобы изложить идею статьи, шаг за шагом
  • Используйте числа, если вы написали сообщение в виде списка: пронумерованных подзаголовка помогают читателю почувствовать удовлетворение по мере продвижения по вашему контенту (см. пример в этой статье)

В моей книге Master Content Marketing , I научите, как подзаголовки играют важную роль в создании приятного формата блога.Подзаголовки предназначены не только для читателей . Подзаголовки помогут вам как создателю контента , тоже.

Подзаголовки — важный шаг в «4-дневной системе создания контента», которую я преподаю.

Хорошо продуманные подзаголовки помогают создателям контента структурировать свои идеи. Это пример метода форматирования блога, который помогает на нескольких уровнях.

Возьмите Master Content Marketing , чтобы узнать больше о том, как создавать контент с помощью 4-дневной системы создания контента.Он содержит множество примеров форматирования контента — сама книга отформатирована так, чтобы ее было легко просматривать и читать!

Нужен пример подзаголовков в действии? См. Пронумерованные подзаголовки в этой статье. Они обеспечивают структуру и информируют читателя о ходе выполнения каждый раз, когда они переходят от одного подзаголовка к другому.

3. Добавляйте маркированные списки в любое место, где вы делитесь последовательной информацией.

Маркированные списки запугивают людей! Может, они думают, что являются единственной территорией копирайтеров?

Я рад сообщить, что писатели с любыми способностями могут легко использовать возможности маркированных списков.Первый шаг — понять, где имеет смысл добавлять маркированный список.

Мое эмпирическое правило?

Каждый раз, когда я пишу предложение или абзац, которые содержат последовательную информацию, я составляю маркированный список.

Вот как это выглядит:

Мне очень нравится сорбет, особенно когда на улице тепло. Мои любимые вкусы напоминают мне о моих любимых тропических фруктах, таких как сладкое манго, спелый ананас, терпкая маракуйя и пикантный лимон.

Обратите внимание, что предыдущее предложение содержит список элементов, разделенных запятыми? Это сигнал к созданию маркированного списка.Вот пример того, как отформатировать тот же текст:

Мне очень нравится сорбет, особенно когда на улице тепло. Мои любимые вкусы напоминают мне мои любимые тропические фрукты, например:

  • Сладкое манго
  • Спелый ананас
  • Пирог из маракуйи
  • Пикантный лимон

При добавлении этого короткого маркированного списка вокруг текста появляется достаточно свободного пространства. Это привлекательно, и его очень легко просмотреть.

Несколько дополнительных советов для маркированных списков (в форме маркированного списка!):

  • Начинайте маркированные списки с той же части речи. Это помогает создать симметрию и плавность, что облегчает их чтение.
  • Цельтесь не более 6-7 пуль. Более того, и вы рискуете составить утомительный список.
  • Подумайте о добавлении форматирования, чтобы придать маркерам дополнительный стиль. Обратите внимание, как я выделил первую часть маркеров в этом списке жирным шрифтом? Это делает их быстрее и легче снимать.

Если возможно, возьмите в привычку использовать маркированный список хотя бы один раз в каждой создаваемой вами части письменного контента.Чем больше вы их используете, тем легче их собрать.

4. Используйте цитаты для выделения и визуального интереса.

Не знаете, что такое цитата? Взгляните:

Это цитата. Превращение части вашего текста в цитату — простой способ выделить важные части вашего контента, чтобы люди обратили на это дополнительное внимание.

Одна из лучших особенностей цитат — это то, что они созданы с пространством сверху, снизу и по бокам.Таким образом, добавление цитаты автоматически добавляет лишнее пустое пространство в формат вашего блога.

Сохраняйте цитаты для отдельных мыслей или идей, которые вы хотите, чтобы люди запомнили.

Когда вы освоите их, вы начнете писать запоминающиеся строчки с цитатами!

5. Добавьте ссылки как для визуального интереса, так и для поисковой оптимизации.

Ссылки на вашей странице представляют потенциал — каждая ссылка дает посетителю вашего сайта возможность узнать больше о вашей теме.

Они также добавляют визуальный интерес к вашей странице, поскольку имеют другой цвет или стиль.

И, конечно же, они важны для поисковой оптимизации! Для каждого создаваемого вами письменного контента:

  • Добавьте обратные ссылки на ранее опубликованный контент, который поддерживает тему, о которой вы пишете сейчас.
  • Добавьте ссылки на переадресации с ранее опубликованного контента на вашу текущую страницу или сообщение. Это один из способов, которым ваш хорошо ранжируемый существующий контент может поддерживать ваш новый контент.
  • Добавьте внешние ссылки на авторитетный онлайн-контент, который вы нашли, который поддерживает информацию в вашем сообщении или на странице

Люди не часто думают о ссылках как о методе форматирования блога, но они добавляют визуальный интерес и имеют мощный поиск преимущества движка, поэтому обязательно добавляйте их при форматировании контента.

Примеры форматирования контента: ссылки отсутствуют

BIG Brand System — это веб-сайт, посвященный помощи людям в создании онлайн-бизнеса, который им нравится.Здесь вы найдете информацию для каждого этапа роста вашего бизнеса, от планирования вашего бренда на основе его индивидуальности до запуска вашего веб-сайта и создания вашего первого предложения.

Вот тот же текст с привлекательными ссылками, которые приглашают вас перейти по ним:

BIG Brand System — это веб-сайт, посвященный помощи людям в создании онлайн-бизнеса, который им нравится. Здесь вы найдете информацию для каждого этапа роста вашего бизнеса, от планирования вашего бренда на основе его индивидуальности до запуска вашего веб-сайта и создания вашего первого предложения.

6. Используйте хотя бы одно изображение, чтобы добавить смысла своим словам

Изображения передаются через часть нашего мозга, которая полностью отделена от того, где обрабатываются слова.

И они общаются быстро — изображения обретают смысл примерно за 13 миллисекунд.

Это 13/1000 секунды…

Это, друг мой, серьезная огневая мощь!

Это одна из причин, по которой вы видите, что так много создателей онлайн-контента используют мощные изображения вместе с контентом.В сочетании с заголовком изображения — отличный способ привлечь внимание в верхней части страницы.

Вы только посмотрите на разницу. Вот эта информация словами:

«… группа нейробиологов из Массачусетского технологического института обнаружила, что человеческий мозг может обрабатывать целые изображения, которые видит глаз, всего за 13 миллисекунд — первое свидетельство такой высокой скорости обработки».

Вот та же информация в графической форме:

Какую из них вы запомните? Слова или синяя круговая диаграмма с крошечным срезом размером в миллисекунду?

Найдите время, чтобы попотеть над форматированием контента

По большей части я придерживаюсь подхода «не парьтесь о мелочах» в бизнесе.

За прошедшие годы я встретил слишком много людей, которых сдерживает потребность сделать свой блог «идеальным» до того, как они его опубликуют.

Но когда дело доходит до того, чтобы потратить несколько дополнительных минут на полировку веб-страницы или сообщения в блоге с форматированием?

Подумайте о форматировании.

Используйте приведенные здесь примеры форматирования контента, чтобы вдохновить вас на то, чтобы выделить немного дополнительного времени в свой график создания контента, чтобы вы могли:

  1. Добавьте пустое пространство на свою страницу, написав более короткие абзацы
  2. Добавьте подзаголовки , чтобы формат вашего блога легко просматривать
  3. Добавляйте маркированные списки везде, где вы делитесь последовательной информацией
  4. Плетите цитатами , чтобы подчеркнуть запоминающиеся идеи
  5. Добавьте ссылки как для визуального интереса, так и для поисковой оптимизации
  6. Используйте хотя бы одну image , чтобы добавить смысла вашим словам

Это может показаться сложной задачей, но как только вы начнете последовательно форматировать свой контент для удобства чтения, вы не сможете публиковать страницы без этого дополнительного шага.

Используйте здесь примеры форматирования контента, вперед и сделайте свои страницы красивыми!

8 невероятно простых способов привлечь больше людей к прочтению ваших материалов

Твои драгоценные слова. Вы знаете, что они должны быть правы, чтобы привлечь нужную вам аудиторию.

Вы тщательно продумали каждую фразу. Наконец вы нажимаете «опубликовать», и что происходит?

Никто их не читает. Без комментариев, без твитов, без публикации в Facebook.

Этого достаточно, чтобы погрузить писателя в глубокую депрессию и уничтожить мотивацию, чтобы продолжать создавать отличный контент.

Думаете, вам нужно потратить еще 10 000 часов на совершенствование навыков письма? Возможно нет.

На самом деле решение может быть намного проще, чем вы ожидаете. Написание минус и оформление текста так, чтобы его было легко читать — это все, что вам нужно сделать, чтобы привлечь и удержать внимание.

Нетерпеливые искатели

Основополагающее исследование юзабилити Интернета, проведенное Якобом Нильсеном в 1997 году, показало, что 79 процентов веб-пользователей сканируют, а не читают.

Подумайте, как вы используете Интернет.Вы ищете информацию. А если вы не находите его на просматриваемой странице, вы щелкаете мышью и смотрите в другом месте.

Интернет — это среда, в которой «наклоняйся вперед и участвуй». Телевидение, напротив, — это средство «откиньтесь назад и позвольте ему омыть меня».

Что вы можете сделать, чтобы заинтересовать своих читателей, чтобы они читали ваш контент, оставались на ваших страницах и взаимодействовали с вашей информацией?

Сделай это быстро

Чтобы успешно писать для Интернета, вам нужно забыть кое-что из того, что вы выучили на уроках композиции на английском языке.

Примите тот факт, что люди сканируют веб-страницы, а не читают их подробно, и работают с этой реальностью, а не борются с ней.

Если вы хотите охватить сложную тему, подумайте о том, чтобы разбить ее на серию сообщений.

Это отличный способ побудить людей возвращаться за новыми материалами, и вашему читателю будет легче усвоить ваш контент, если он получит его в порционных размерах.

Структурируйте абзацы в стиле перевернутой пирамиды.

Это означает, что сначала сформулируйте свой вывод, а затем подкрепите его следующими предложениями.Это помогает сканерам перемещаться от точки к точке и решать, куда они хотели бы погрузиться глубже.

Как только вы это сделаете, используйте следующие простые методы дизайна, чтобы сделать ваш контент более удобным для чтения.

Требуется всего несколько минут, чтобы превратить огромную массу текста в сообщение, которое привлекает читателя и привлекает ее.

1. Обнимите разрыв строки

Есть несколько более простых способов сделать ваш контент более читабельным.

Даже сложный контент можно сделать более удобным для чтения, просто добавив много пустого пространства.

Предлагайте по одной идее в абзаце и делайте их краткими — максимум три-четыре предложения.

И попробуйте написать несколько абзацев одним предложением.

2. Разбейте свой контент привлекательными подзаголовками

Сильный заголовок (и, следовательно, сильная посылка) жизненно важен для того, чтобы читатели в первую очередь посмотрели на вас.

А твердые подзаголовки удерживают читателей, выступая в роли «мини-заголовков», чтобы они могли перемещаться по остальной части вашего контента.

Сделайте ваши подзаголовки не только информативными, но и интригующими. Интернет-читатели имеют отточенные BS-метры, так что не преувеличивайте, иначе вы потеряете доверие. «Принуждение» — это не то же самое, что «шумиха».

После того, как вы напишете подзаголовки, просмотрите их, чтобы увидеть, что читатели / сканеры поймут, если они прочитают только эту часть вашей статьи.

Есть интересная история? Получат ли они суть вашей информации?

3. Создание маркированных списков

  • Они вызывают восхищение, которому ваши читатели не могут устоять.
  • Это удобный способ показать несколько точек.
  • Они выглядят иначе, чем остальной текст, поэтому служат визуальным перерывом для вашего читателя.

4. Используйте «глубокие подписи»

Исследования показали, что подписи к изображениям являются одними из самых читаемых копий на странице.

Попробуйте совместить яркое изображение с «глубоким заголовком».

Глубокие титры состоят из двух-трех предложений. Этого времени достаточно, чтобы заинтересовать читателя вникнуть в статью целиком.

5. Добавьте релевантные и полезные ссылки

Внутренние ссылки на ваш собственный краеугольный контент будут держать людей на вашем сайте и читать ваши лучшие материалы.

Внешние ссылки демонстрируют, что вы изучили тему и хотите цитировать других экспертов.

Хороший контент использует как для расширения понимания читателем, так и для повышения ценности.

Еще одним преимуществом внутренних ссылок является то, что они делают менее неприятным, когда какой-нибудь мусорный мешок очищает ваш контент (вырезает и вставляет его на свой сайт без указания авторства).

6. Стратегическое выделение контента

Когда вы выделите важные понятия жирным шрифтом, ваш читатель сможет просмотреть и сразу выделить самую важную информацию.

Не выделять все (это будет иметь тот же эффект, что и ничего).

Вместо этого выделите ключевые моменты, чтобы сканер мог их быстро выделить.

7. Используйте силу чисел

Думаете, эти посты с пронумерованными списками устали? Подумай еще раз.

Числа — невероятно эффективный способ сделать сообщение более привлекательным, привлечь внимание и удержать ориентацию читателя.

Часто можно сделать сообщение более привлекательным, просто пронумеровав основные моменты. Попробуйте.

8. Проверьте форматирование, чтобы сканеры превращались в считыватели.

После того, как вы использовали подзаголовки, числа, маркированные списки и другое форматирование, чтобы выделить ключевые элементы вашего сообщения, прочтите его еще раз, глядя только на на текст, на который вы обратили особое внимание.

Читатель уловил суть?

Вытащите самые интересные и актуальные слова — слова, которые потянут ваш сканер и превратят его в читалку.

Примечание: для этого содержимого требуется JavaScript.

Форматирование статьи

Существует почти столько же различных форматов для написания статьи, сколько и преподавателей. Единственный способ узнать, что ваши документы будут точно соответствовать тому, что ищут ваши инструкторы, — это спросить, чего они хотят! Попросите взглянуть на образец бумаги.Если бы все преподаватели смогли прийти к единому простому формату, это было бы хорошо, и этот стиль, вероятно, можно было бы легко запомнить, например, стиль, рекомендованный Ассоциацией современного языка. Руководство колледжа по написанию исследовательских работ содержит раздел о форматировании статей в стиле MLA, который может оказаться полезным.

Вот несколько общих предложений по форматированию вашей статьи, попытки ответа на неизбежный вопрос: «Как должна выглядеть эта статья?» Но помните, если у вас есть сомнения или вопросы, спросите своего инструктора!

  1. Обработка текста — это не просто хорошая вещь, это хитроумное технологическое устройство, позволяющее улучшить внешний вид вашего письма; это делает процессы создания и редактирования намного проще и (некоторые люди утверждают) даже забавными; это технология, которую вы игнорируете на свой страх и риск!
  2. Двойной интервал при вводе текста во всех документах.Следует использовать шрифт с засечками, например Times, Times Roman или Times New Roman с размером шрифта 12 пунктов. Не используйте ничего необычного и избегайте шрифтов без засечек (кроме заголовков, если они у вас есть), так как через некоторое время их становится трудно читать; Курсивные скрипты запрещены. Никогда не смешивайте стили шрифтов.

    Используйте поля в один дюйм (или немного больше, никогда не меньше) по всему краю текста. Не используйте выровненные поля (даже правые), даже если ваш текстовый процессор делает это действительно изящным.Выровненные по ширине поля, как правило, создают неправильное разделение слов и интервалы.

    Используйте обычную черную печать на хорошем лазерном или струйном принтере. Точечно-матричная печать допустима, если копия прочная и темная; в противном случае принесите дискету в компьютерную лабораторию, где вы сможете распечатать на бумаге более качественный принтер. Используйте обычную белую бумагу размером 20 фунтов и размером 8 1/2 на 11 дюймов. Если вы используете бумагу, подаваемую из трактора, используйте только бумагу, вырезанную лазером, и аккуратно удаляйте бахрому. (Но определенно настало время для нового принтера!)

  3. Интервал: В современных текстовых редакторах неплохо выработать привычку использовать только один пробел после точки, вопросительного знака, точки с запятой, двоеточия и т. Д.Текстовые редакторы позволят использовать соответствующий интервал. Двойной пробел может на самом деле делать странные вещи, особенно если ваша маржа оправдана (что, вероятно, не очень хорошая идея). Если у вас есть какие-либо вопросы по этому поводу, спросите своего инструктора (некоторые из них научились ставить интервалы при печати на древних пишущих машинках и до сих пор используют двойной интервал после точек).

    Использование пробелов в кавычках и скобках может вызвать вопросы. Щелкните ЗДЕСЬ , чтобы получить справку по кавычкам; щелкните ЗДЕСЬ , чтобы получить справку по круглым скобкам.Самое важное правило, которое вы должны помнить о кавычках, заключается в том, что в Соединенных Штатах точки и запятые должны быть внутри кавычек независимо от логики. (При оценке работ, написанных студентами, выросшими в регионах, на которые влияет британское образование, преподаватели будут любезны помнить, что это правило , а не правило за пределами Соединенных Штатов.)

  4. Заголовки могут быть важны. Если вы не можете придумать хорошее название, это может означать, что ваша статья не имеет реальной цели.Сделайте первые, последние и важные слова в заголовке с заглавной буквы. Заголовок может заканчиваться вопросительным или восклицательным знаком, но не может заканчиваться точкой. (Это отличается от использования в других языках.) Вы можете использовать кавычки в заголовке, если он относится к чьему-то другому заголовку (скажем, стихотворения), но не ставьте кавычки вокруг своего собственного заголовка (например, «Роберт Фрост» » «Дизайн» может быть вашим названием, но не «Дизайн Роберта Фроста»).

    Титульный лист, вероятно, не нужен, но вы должны спросить об этом своего инструктора.Необычная графика или жирный или курсивный шрифт на титульном листе, если вы его используете, не являются обязательными и, вероятно, их следует избегать.

  5. Поместите свое имя, дату и номер курса вверху первой страницы. Ваш инструктор может попросить вас написать свое имя на каждом листе бумаги.
  6. Никогда не используйте обратную сторону листа бумаги; сшивайте дополнительные листы в верхнем левом углу. Предубеждение этого профессора гласит, что студенты , а не используют пластиковые переплеты; они громоздкие и пустая трата денег.Вашим инструкторам обычно нужна хорошая плоская стопка бумаг, которую они могут запихнуть в атташе или рюкзак, а эти пластиковые папки просто мешают, когда пришло время выставлять оценки.
  7. В зависимости от вашего преподавателя и уровня, на котором вы пишете, допустимо свидетельство тщательного перечитывания и редактирования здесь и там (исправление в последнюю минуту, аккуратно сделанное ручкой); разгильдяйства нет. В последнюю минуту можно внести исправления в текстовом редакторе, и ваша статья должна быть почти идеальной, когда вы ее сдадите.

ВНИМАНИЕ: Не ждите до последней минуты, чтобы распечатать свою бумагу! Злые, веселые гремлины обитают в каждом когда-либо созданном принтере, просто ожидая, чтобы обнаружить последнюю бумагу, чтобы они могли замяться, съесть бумагу, создать хаос и сделать вашу жизнь несчастной. Ваш инструктор извинился как демонический принтер вместе с чумой, поражающей миллионы бабушек (иногда бабушек, умерших в предыдущем семестре) ближе к концу каждого семестра.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *