Русский
Русский
English
Статистика
Реклама

Дешевые серверы

Шпаргалка по JS-методам для работы с DOM

15.05.2021 10:13:08 | Автор: admin

Основные источники



Введение


JavaScript предоставляет множество методов для работы с Document Object Model или сокращенно DOM (объектной моделью документа): одни из них являются более полезными, чем другие; одни используются часто, другие почти никогда; одни являются относительно новыми, другие признаны устаревшими.


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


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


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


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


Вот как будет выглядеть наша начальная разметка:


<ul id="list" class="list">  <li id="item1" class="item">1</li>  <li id="item2" class="item">2</li>  <li id="item3" class="item">3</li></ul>

У нас есть список (ul) с тремя элементами (li). Список и каждый элемент имеют идентификатор (id) и CSS-класс (class). id и class это атрибуты элемента. Существует множество других атрибутов: одни из них являются глобальными, т.е. могут добавляться к любому элементу, другие локальными, т.е. могут добавляться только к определенным элементам.


Мы часто будем выводить данные в консоль, поэтому создадим такую "утилиту":


const log = console.log

Миксин NonElementParentNode


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


В чем разница между узлами (nodes) и элементами (elements)? Если кратко, то "узлы" это более общее понятие, чем "элементы". Узел может быть представлен элементом, текстом, комментарием и т.д. Элемент это узел, представленный разметкой (HTML-тегами (открывающим и закрывающим) или, соответственно, одним тегом).


У рассматриваемого миксина есть метод, наследуемый от объекта Document, с которого удобно начать разговор.


Небольшая оговорка: разумеется, мы могли бы создать список и элементы программным способом.


Для создания элементов используется метод createElement(tag) объекта Document:


const listEl = document.createElement('ul')

Такой способ создания элементов называется императивным. Он является не очень удобным и слишком многословным: создаем родительский элемент, добавляет к нему атрибуты по одному, внедряем его в DOM, создаем первый дочерний элемент и т.д. Следует отметить, что существует и другой, более изысканный способ создания элементов шаблонные или строковые литералы (template literals), но о них мы поговорим позже.


Одним из основных способов получения элемента (точнее, ссылки на элемент) является метод getElementById(id) объекта Document:


// получаем ссылку на наш списокconst listEl = document.getElementById('list')log(listEl)// ul#list.list - такая запись означает "элемент `ul` с `id === list`" и таким же `class`

Почему идентификаторы должны быть уникальными в пределах приложения (страницы)? Потому что элемент с id становится значением одноименного свойства глобального объекта window:


log(listEl === window.list) // true

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


log(list) // ul#list.list

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


Миксин ParentNode


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


  • children потомки элемента

const { children } = list // list.childrenlog(children)/*HTMLCollection(3)  0: li#item1.item  1: li#item2.item  2: li#item3.item  length: 3*/

Такая структура называется коллекцией HTML и представляет собой массивоподобный объект (псевдомассив). Существует еще одна похожая структура список узлов (NodeList).


Массивоподобные объекты имеют свойство length с количеством потомков, метод forEach() (NodeList), позволяющий перебирать узлы (делать по ним итерацию). Такие объекты позволяют получать элементы по индексу, по названию (HTMLCollection) и т.д. Однако, у них отсутствуют методы настоящих массивов, такие как map(), filter(), reduce() и др., что делает работу с ними не очень удобной. Поэтому массивоподобные объекты рекомендуется преобразовывать в массивы с помощью метода Array.from() или spread-оператора:


const children = Array.from(list.children)// илиconst children = [...list.children]log(children) // [li#item1.item, li#item2.item, li#item3.item] - обычный массив

  • firstElementChild первый потомок элемент
  • lastElementChild последний потомок элемент

log(list.firstElementChild) // li#item1.itemlog(list.lastElementChild) // li#item2.item

Для дальнейших манипуляций нам потребуется периодически создавать новые элементы, поэтому создадим еще одну утилиту:


const createEl = (id, text, tag = 'li', _class = 'item') => {  const el = document.createElement(tag)  el.id = id  el.className = _class  el.textContent = text  return el}

Наша утилита принимает 4 аргумента: идентификатор, текст, название тега и CSS-класс. 2 аргумента (тег и класс) имеют значения по умолчанию. Функция возвращает готовый к работе элемент. Впоследствии, мы реализует более универсальный вариант данной утилиты.


  • prepend(newNode) добавляет элемент в начало списка
  • append(newNode) добавляет элемент в конец списка

// создаем новый элементconst newItem = createEl('item0', 0)// и добавляем его в начало спискаlist.prepend(newItem)// создаем еще один элементconst newItem2 = createEl('item4', 4)// и добавляем его в конец спискаlist.append(newItem2)log(children)/*HTMLCollection(5)  0: li#item0.item  1: li#item1.item  2: li#item2.item  3: li#item3.item  4: li#item4.item*/

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


  • replaceChildren(nodes) заменяет потомков новыми элементами

const newItems = [newItem, newItem2]// заменяем потомков новыми элементамиlist.replaceChildren(...newItems) // list.replaceChildren(newItem, newItem2)log(children) // 2

Наиболее универсальными способами получения ссылок на элементы являются методы querySelector(selector) и querySelectorAll(selector). Причем, в отличие от getElementById(), они могут вызываться на любом родительском элементе, а не только на document. В качестве аргумента названным методам передается любой валидный CSS-селектор (id, class, tag и т.д.):


// получаем элемент `li` с `id === item0`const itemWithId0 = list.querySelector('#item0')log(itemWithId0) // li#item0.item// получаем все элементы `li` с `class === item`const allItems = list.querySelectorAll('.item')log(allItems) // массивоподобный объект/*NodeList(2)  0: li#item0.item  1: li#item4.item  length: 2*/

Создадим универсальную утилиту для получения элементов:


const getEl = (selector, parent = document, single = true) => single ? parent.querySelector(selector) : [...parent.querySelectorAll(selector)]

Наша утилита принимает 3 аргумента: CSS-селектор, родительский элемент и индикатор количества элементов (один или все). 2 аргумента (предок и индикатор) имеют значения по умолчанию. Функция возвращает либо один, либо все элементы (в виде обычного массива), совпадающие с селектором, в зависимости от значения индикатора:


const itemWithId0 = getEl('#item0', list)log(itemWithId0) // li#item0.itemconst allItems = getEl('.item', list, false)log(allItems) // [li#item0.item, li#item4.item]

Миксин NonDocumentTypeChildNode


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


  • previousElementSibling предыдущий элемент
  • nextElementSibling следующий элемент

log(itemWithId0.previousElementSibling) // nulllog(itemWithId0.nextElementSibling) // #item4

Миксин ChildNode


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


  • before(newNode) вставляет новый элемент перед текущим
  • after(newNode) вставляет новый элемент после текущего

// получаем `li` с `id === item4`const itemWithId4 = getEl('#item4', list)// создаем новый элементconst newItem3 = createEl('item3', 3)// и вставляем его перед `itemWithId4`itemWithId4.before(newItem3)// создаем еще один элементconst newItem4 = createEl('item2', 2)// и вставляем его после `itemWithId0`itemWithId0.after(newItem4)

  • replaceWith(newNode) заменяет текущий элемент новым

// создаем новый элементconst newItem5 = createEl('item1', 1)// и заменяем им `itemWithId0`itemWithId0.replaceWith(newItem5)

  • remove() удаляет текущий элемент

itemWithId4.remove()

Интерфейс Node


Данный интерфейс предназначен для обработки узлов.


  • nodeType тип узла

log(list.nodeType) // 1// другие варианты/* 1 -> ELEMENT_NODE (элемент) 3 -> TEXT_NODE (текст) 8 -> COMMENT_NODE (комментарий) 9 -> DOCUMENT_NODE (document) 10 -> DOCUMENT_TYPE_NODE (doctype) 11 -> DOCUMENT_FRAGMENT_NODE (фрагмент) и т.д.*/

  • nodeName название узла

log(list.nodeName) // UL// другие варианты/*  - квалифицированное название HTML-элемента прописными (заглавными) буквами  - квалифицированное название атрибута  - #text  - #comment  - #document  - название doctype  - #document-fragment*/

  • baseURI основной путь

log(list.baseURI) // .../dom/index.html

  • parentNode родительский узел
  • parentElement родительский элемент

const itemWithId1 = getEl('#item1', list)log(itemWithId1.parentNode) // #listlog(itemWithId1.parentElement) // #list

  • hasChildNodes() возвращает true, если элемент имеет хотя бы одного потомка
  • childNodes дочерние узлы

log(list.hasChildNodes()) // truelog(list.childNodes)/*NodeList(3)  0: li#item1.item  1: li#item2.item  2: li#item3.item*/

  • firstChild первый потомок узел
  • lastChild последний потомок узел

log(list.firstChild) // #item1log(list.lastChild) // #item3

  • nextSibling следующий узел
  • previousSibling предыдущий узел

log(itemWithId1.nextSibling) // #item2log(itemWithId1.previousSibling) // null

  • textContent геттер/сеттер для извлечения/записи текста

// получаем текстlog(itemWithId1.textContent) // 1// меняем текстitemWithId1.textContent = 'item1'log(itemWithId1.textContent) // item1// получаем текстовое содержимое всех потомковlog(list.textContent) // item123

Для извлечения/записи текста существует еще один (устаревший) геттер/сеттер innerText.


  • cloneNode(deep) копирует узел. Принимает логическое значение, определяющее характер копирования: поверхностное копируется только сам узел, глубокое копируется сам узел и все его потомки

// создаем новый список посредством копирования существующегоconst newList = list.cloneNode(false)// удаляем у него `id` во избежание коллизийnewList.removeAttribute('id')// меняем его текстовое содержимоеnewList.textContent = 'new list'// и вставляем его после существующего спискаlist.after(newList)// создаем еще один списокconst newList2 = newList.cloneNode(true)newList.after(newList2)

  • isEqualNode(node) сравнивает узлы
  • isSameNode(node) определяет идентичность узлов

log(newList.isEqualNode(newList2)) // truelog(newList.isSameNode(newList2)) // false

  • contains(node) возвращает true, если элемент содержит указанный узел

log(list.contains(itemWithId1)) // true

  • insertBefore(newNode, existingNode) добавляет новый узел (newNode) перед существующим (existingNode)

// создаем новый элементconst itemWithIdA = createEl('#item_a', 'a')// и вставляем его перед `itemWithId1`list.insertBefore(itemWithIdA, itemWithId1)

  • appendChild(node) добавляет узел в конец списка

// создаем новый элементconst itemWithIdC = createEl('#item_c', 'c')// и добавляем его в конец спискаlist.appendChild(itemWithIdC)

  • replaceChild(newNode, existingNode) заменяет существующий узел (existingNode) новым (newNode):

// создаем новый элементconst itemWithIdB = createEl('item_b', 'b')// и заменяем им `itemWithId1`list.replaceChild(itemWithIdB, itemWithId1)

  • removeChild(node) удаляет указанный дочерний узел

// получаем `li` с `id === item2`const itemWithId2 = getEl('#item2', list)// и удаляем егоlist.removeChild(itemWithId2)

Интерфейс Document


Данный интерфейс предназначен для обработки объекта Document.


  • URL и documentURI адрес документа

log(document.URL) // .../dom/index.htmllog(document.documentURI) // ^

  • documentElement:

log(document.documentElement) // html

  • getElementsByTagName(tag) возвращает все элементы с указанным тегом

const itemsByTagName = document.getElementsByTagName('li')log(itemsByTagName)/*HTMLCollection(4)  0: li##item_a.item  1: li#item_b.item  2: li#item3.item  3: li##item_c.item*/

  • getElementsByClassName(className) возвращает все элементы с указанным CSS-классом

const itemsByClassName = list.getElementsByClassName('item')log(itemsByClassName) // ^

  • createDocumentFragment() возвращает фрагмент документа:

// создаем фрагментconst fragment = document.createDocumentFragment()// создаем новый элементconst itemWithIdD = createEl('item_d', 'd')// добавляем элемент во фрагментfragment.append(itemWithIdD)// добавляем фрагмент в списокlist.append(fragment)

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


  • createTextNode(data) создает текст


  • createComment(data) создает комментарий


  • importNode(existingNode, deep) создает новый узел на основе существующего



// создаем новый список на основе существующегоconst newList3 = document.importNode(list, true)// вставляем его перед существующим спискомlist.before(newList3)// и удаляем во избежание коллизийnewList3.remove()

  • createAttribute(attr) создает указанный атрибут

Интерфейсы NodeIterator и TreeWalker


Интерфейсы NodeIterator и TreeWalker предназначены для обхода (traverse) деревьев узлов. Я не сталкивался с примерами их практического использования, поэтому ограничусь парочкой примеров:


// createNodeIterator(root, referenceNode, pointerBeforeReferenceNode, whatToShow, filter)const iterator = document.createNodeIterator(list)log(iterator)log(iterator.nextNode()) // #listlog(iterator.nextNode()) // #item_alog(iterator.previousNode()) // #item_alog(iterator.previousNode()) // #listlog(iterator.previousNode()) // null// createTreeWalker(root, whatToShow, filter)// применяем фильтры - https://dom.spec.whatwg.org/#interface-nodefilterconst walker = document.createTreeWalker(list, '0x1', { acceptNode: () => 1 })log(walker)log(walker.parentNode()) // nulllog(walker.firstChild()) // #item_alog(walker.lastChild()) // nulllog(walker.previousSibling()) // nulllog(walker.nextSibling()) // #item_blog(walker.nextNode()) // #item3log(walker.previousNode()) // #item_b

Интерфейс Element


Данный интерфейс предназначен для обработки элементов.


  • localName и tagName название тега

log(list.localName) // ullog(list.tagName) // UL

  • id геттер/сеттер для идентификатора
  • className геттер/сеттер для CSS-класса

log(list.id) // listlist.id = 'LIST'log(LIST.className) // list

  • classList все CSS-классы элемента (объект DOMTokenList)

const button = createEl('button', 'Click me', 'my_button', 'btn btn-primary')log(button.classList)/*DOMTokenList(2)  0: "btn"  1: "btn-primary"  length: 2  value: "btn btn-primary"*/

Работа с classList


  • classList.add(newClass) добавляет новый класс к существующим
  • classList.remove(existingClass) удаляет указанный класс
  • classList.toggle(className, force?) удаляет существующий класс или добавляет новый. Если опциональный аргумент force имеет значение true, данный метод только добавляет новый класс при отсутствии, но не удаляет существующий класс (в этом случае toggle() === add()). Если force имеет значение false, данный метод только удаляет существующий класс при наличии, но не добавляет отсутствующий класс (в этом случае toggle() === remove())
  • classList.replace(existingClass, newClass) заменяет существующий класс (existingClass) на новый (newClass)
  • classList.contains(className) возвращает true, если указанный класс обнаружен в списке классов элемента (данный метод идентичен className.includes(className))

// добавляем к кнопке новый классbutton.classList.add('btn-lg')// удаляем существующий классbutton.classList.remove('btn-primary')// у кнопки есть класс `btn-lg`, поэтому он удаляетсяbutton.classList.toggle('btn-lg')// заменяем существующий класс на новыйbutton.classList.replace('btn', 'btn-success')log(button.className) // btn-successlog(button.classList.contains('btn')) // falselog(button.className.includes('btn-success')) // true

Работа с атрибутами


  • hasAttributes() возвращает true, если у элемента имеются какие-либо атрибуты
  • getAttributesNames() возвращает названия атрибутов элемента
  • getAttribute(attrName) возвращает значение указанного атрибута
  • setAttribute(name, value) добавляет указанные атрибут и его значение к элементу
  • removeAttribute(attrName) удаляет указанный атрибут
  • hasAttribute(attrName) возвращает true при наличии у элемента указанного атрибута
  • toggleAttribute(name, force) добавляет новый атрибут при отсутствии или удаляет существующий атрибут. Аргумент force аналогичен одноименному атрибуту classList.toggle()

log(button.hasAttributes()) // truelog(button.getAttributeNames()) // ['id', 'class']log(button.getAttribute('id')) // buttonbutton.setAttribute('type', 'button')button.removeAttribute('class')log(button.hasAttribute('class')) // false

В использовании перечисленных методов для работы с атрибутами нет особой необходимости, поскольку многие атрибуты являются геттерами/сеттерами, т.е. позволяют извлекать/записывать значения напрямую. Единственным исключением является метод removeAttribute(), поскольку существуют атрибуты без значений: например, если кнопка имеет атрибут disabled, установка значения данного атрибута в false не приведет к снятию блокировки для этого нужно полностью удалить атрибут disabled с помощью removeAttribute().


Отдельного упоминания заслуживает атрибут data-*, где символ * означает любую строку. Он предназначен для определения пользовательских атрибутов. Например, в нашей начальной разметке для уникальной идентификации элементов используется атрибут id. Однако, это приводит к загрязнению глобального пространства имен, что чревато коллизиями между нашими переменными и, например, переменными используемой нами библиотеки когда какой-либо объект библиотеки пытается записаться в свойство window, которое уже занято нашим id.


Вместо этого, мы могли бы использовать атрибут data-id и получать ссылки на элементы с помощью getEl('[data-id="id"]').


Название data-атрибута после символа - становится одноименным свойством объекта dataset. Например, значение атрибута data-id можно получить через свойство dataset.id.


  • closest(selectors) возвращает первый родительский элемент, совпавший с селекторами

LIST.append(button)log(button.closest('#LIST', 'document.body')) // #LIST

  • matches(selectors) возвращает true, если элемент совпадает хотя бы с одним селектором

log(button.matches('.btn', '[type="button"]'))// у кнопки нет класса `btn`, но есть атрибут `type` со значением `button`,// поэтому возвращается `true`

  • insertAdjacentElement(where, newElement) универсальный метод для вставки новых элементов перед/в начало/в конец/после текущего элемента. Аргумент where определяет место вставки. Возможные значения:


    • beforebegin перед открывающим тегом
    • afterbegin после открывающего тега
    • beforeend перед закрывающим тегом
    • afterend после закрывающего тега

  • insertAdjacentText(where, data) универсальный метод для вставки текста


  • Text конструктор для создания текста


  • Comment конструктор для создания комментария



const text = new Text('JavaScript')log(text) // "JavaScript"const part = text.splitText(4)log(part) // "Script"log(part.wholeText()) // Scriptconst comment = new Comment('TODO')log(comment) // <!--TODO-->

Объект Document


  • location объект с информацией о текущей локации документа

log(document.location)

Свойства объекта location:


  • hash хэш-часть URL (символ # и все, что следует за ним), например, #top
  • host название хоста и порт, например, localhost:3000
  • hostname название хоста, например, localhost
  • href полный путь
  • origin protocol + host
  • pathname путь без протокола
  • port порт, например, 3000
  • protocol протокол, например, https
  • search строка запроса (символ ? и все, что следует за ним), например, ?name=John&age=30

Методы location:


  • reload() перезагружает текущую локацию


  • replace() заменяет текущую локацию на новую


  • title заголовок документа



log(document.title) // DOM

  • head метаданные документа


  • body тело документа


  • images псевдомассив (HTMLCollection), содержащий все изображения, имеющиеся в документе



const image = document.createElement('img')image.className = 'my_image'image.src = 'https://miro.medium.com/max/875/1*ZIH_wjqDfZn6NRKsDi9mvA.png'image.alt = "V8's compiler pipeline"image.width = 480document.body.append(image)log(document.images[0]) // .my_image

  • links псевдомассив, содержащий все ссылки, имеющиеся в документе

const link = document.createElement('a')link.className = 'my_link'link.href = 'https://github.com/azat-io/you-dont-know-js-ru'link.target = '_blank'link.rel = 'noopener noreferrer'link.textContent = 'Вы не знаете JS'document.body.append(link)log(document.links[0]) // .my_link

  • forms псевдомассив, содержащий все формы, имеющиеся в документе

const form = document.createElement('form')form.className = 'my_form'document.body.append(form)log(document.forms[0]) // .my_form

Следующие методы и свойство считаются устаревшими:


  • open() открывает документ для записи. При этом документ полностью очищается
  • close() закрывает документ для записи
  • write() записывает данные (текст, разметку) в документ
  • writeln() записывает данные в документ с переносом на новую строку
  • designMode управление режимом редактирования документа. Возможные значения: on и off. Наберите document.designMode = 'on' в консоли DevTools и нажмите Enter. Вуаля, страница стала редактируемой: можно удалять/добавлять текст, перетаскивать изображения и т.д.
  • execCommand() выполняет переданные команды. Со списоком доступных команд можно ознакомиться здесь. Раньше этот метод активно использовался для записи/извлечения данных из буфера обмена (команды copy и paste). Сейчас для этого используются методы navigator.clipboard.writeText(), navigator.clipboard.readText() и др.

Миксин InnerHTML


Геттер/сеттер innerHTML позволяет извлекать/записывать разметку в элемент. Для подготовки разметки удобно пользоваться шаблонными литералами:


const itemsTemplate = `  <li data-id="item1" class="item">1</li>  <li data-id="item2" class="item">2</li>  <li data-id="item3" class="item">3</li>`LIST.innerHTML = itemsTemplatelog(LIST.innerHTML)/*<li data-id="item1" class="item">1</li><li data-id="item2" class="item">2</li><li data-id="item3" class="item">3</li>*/

Расширения интерфейса Element


  • outerHTML геттер/сеттер для извлечения/записи внешней разметки элемента: то, что возвращает innerHTML + разметка самого элемента

log(LIST.outerHTML)/*<ul id="LIST" class="list">  <li data-id="item1" class="item">1</li>  <li data-id="item2" class="item">2</li>  <li data-id="item3" class="item">3</li></ul>*/

  • insertAdjacentHTML(where, string) универсальный метод для вставки разметки в виде строки. Аргумент where аналогичен одноименному аргументу метода insertAdjacentElement()

Метод insertAdjacentHTML() в сочетании с шаблонными литералами и их продвинутой версией тегированными шаблонными литералами (tagged template literals) предоставляет много интересных возможностей по манипулированию разметкой документа. По сути, данный метод представляет собой движок шаблонов (template engine) на стороне клиента, похожий на Pug, Handlebars и др. серверные движки. С его помощью (при участии History API) можно, например, реализовать полноценное одностраничное приложение (Single Page Application или сокращенно SPA). Разумеется, для этого придется написать чуть больше кода, чем при использовании какого-либо фронтенд-фреймворка.


Вот несколько полезных ссылок, с которых можно начать изучение этих замечательных инструментов:



Иногда требуется создать элемент на основе шаблонной строки. Как это можно сделать? Вот соответствующая утилита:


const createElFromStr = (str) => {  // создаем временный элемент  const el = document.createElement('div')  // записываем в него переданную строку - разметку  el.innerHTML = str  // извлекаем наш элемент  // если мы используем здесь метод `firstChild()`, может вернуться `#text`  // одна из проблем шаблонных строк заключается в большом количестве лишних пробелов  const child = el.fisrtElementChild  // удаляем временный элемент  el.remove()  // и возвращаем наш элемент  return child}// шаблон спискаconst listTemplate = `<ul id="list">  <li data-id="item1" class="item">1</li>  <li data-id="item2" class="item">2</li>  <li data-id="item3" class="item">3</li></ul>`// создаем список на основе шаблонаconst listEl = createElFromStr(listTemplate)// и вставляем его в тело документаdocument.body.append(listEl)

Существует более экзотический способ создания элемента на основе шаблонной строки. Он предполагает использование конструктора DOMParser():


const createElFromStr = (str) => {  // создаем новый парсер  const parser = new DOMParser()  // парсер возвращает новый документ  const {    body: { children }  } = parser.parseFromString(str, 'text/html')  // нас интересует первый дочерний элемент тела нового документа  return children[0]}const listTemplate = `<ul id="list">  <li data-id="item1" class="item">1</li>  <li data-id="item2" class="item">2</li>  <li data-id="item3" class="item">3</li></ul>`const listEl = createElFromStr(listTemplate)document.body.append(listEl)

Еще более экзотический, но при этом самый короткий способ предполагает использование расширения для объекта Range метода createContextualFragment():


const createElFromStr = (str) => {  // создаем новый диапазон  const range = new Range()  // создаем фрагмент  const fragment = range.createContextualFragment(str)  // и возвращаем его  return fragment}// или в одну строкуconst createFragment = (str) => new Range().createContextualFragment(str)const listTemplate = `<ul id="list">  <li data-id="item1" class="item">1</li>  <li data-id="item2" class="item">2</li>  <li data-id="item3" class="item">3</li></ul>`document.body.append(createFragment(listTemplate))

В завершение, как и обещал, универсальная утилита для создания элементов:


// функция принимает название тега и объект с настройкамиconst createEl = (tag, opts) => {  const el = document.createElement(tag)  // перебираем ключи объекта и записывает соответствующие свойства в элемент  for (const key in opts) {    el[key] = opts[key]  }  // возвращаем готовый элемент  return el}const button = createEl('button', {  // настройками могут быть атрибуты  id: 'my_button',  className: 'btn btn-primary',  textContent: 'Click me',  title: 'My button',  autofocus: true,  // стили  style: 'color: red; cursor: pointer;',  // обработчики и т.д.  onmouseenter: function () {    this.style.color = 'green'  },  onmouseout: function () {    this.style.color = 'blue'  },  onclick: () => alert('Привет!')})document.body.append(button)

Заключение


Современный JS предоставляет богатый арсенал методов для работы с DOM. Данных методов вполне достаточно для решения всего спектра задач, возникающих при разработке веб-приложений. Хорошее знание этих методов, а также умение их правильно применять гарантируют не только высокое качество (чистоту) кода, но также избавляют от необходимости использовать DOM-библиотеки (такие как jQuery), что в совокупности обусловливает производительность приложения, его поддерживаемость и масштабируемость.


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




VDS от Маклауд быстрые и безопасные.


Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!


Подробнее..

Перевод Немного о том, как работает виртуальный DOM в React

22.05.2021 14:05:19 | Автор: admin

image


Настоящий или реальный (real) DOM


DOM расшифровывается как Document Object Model (объектная модель документа). Проще говоря, DOM это представление пользовательского интерфейса (user interface, UI) в приложении. При каждом изменении UI, DOM также обновляется для отображения этих изменений. Частые манипуляции с DOM негативно влияют на производительность.


Что делает манипуляции с DOM медленными?


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


Манипуляции с DOM являются сердцем современного интерактивного веба. К сожалению, они намного медленнее большинства JavaScript-операций. Ситуация усугубляется тем, что многие JavaScript-фреймворки обновляют DOM чаще, чем необходимо.


Допустим, у нас имеется список из 10 элементов. Мы изменяем первый элемент. Большинство фреймворков перестроят весь список. Это в 10 раз больше работы, чем требуется! Только 1 элемент изменился, остальные 9 остались прежними.


Перестроение списка это легкая задача для браузера, но современные веб-сайты могут осуществлять огромное количество манипуляций с DOM. Поэтому неэффективное обновление часто становится серьезной проблемой. Для решения данной проблемы команда React популяризовала нечто под названием виртуальный (virtual) DOM (VDOM).


Виртуальный DOM


В React для каждого объекта настоящего DOM (далее RDOM) существует соответствующий объект VDOM. VDOM это объектное представление RDOM, его легковесная копия. VDOM содержит те же свойства, что и RDOM, но не может напрямую влиять на то, что отображается на экране.


Виртуальный DOM (VDOM) это концепция программирования, где идеальное или виртуальное представление UI хранится в памяти и синхронизируется с реальным DOM, используемая такими библиотеками, как ReactDOM. Данный процесс называется согласованием (reconcilation).

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


Почему VDOM является более быстрым?


Когда в UI добавляются новые элементы, создается VDOM в виде дерева. Каждый элемент является узлом этого дерева. При изменении состояния любого элемента, создается новое дерево. Затем это новое дерево сравнивается (diffed) со старым.


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


На изображениях ниже представлено виртуальное DOM-дерево и процесс согласования.



Красным цветом обозначены узлы, которые были обновлены. Эти узлы представляют элементы UI, состояние которых изменилось. После этого вычисляется разница между предыдущей и текущей версиями виртуального DOM-дерева. Затем все родительское поддерево подвергается повторному рендерингу для представления обновленного UI. Наконец, это обновленное дерево используется для обновления RDOM.



Как React использует VDOM?


После того, как мы рассмотрели, что такое VDOM, настало время поговорить о том, как он используется в React.


1. React использует паттерн проектирования Наблюдатель (observer) и реагирует на изменения состояния


В React каждая часть UI является компонентом и почти каждый компонент имеет состояние (state). При изменении состояния компонента, React обновляет VDOM. После обновления VDOM, React сравнивает его текущую версию с предыдущей. Этот процесс называется поиском различий (diffing).


После обнаружения объектов, изменившихся в VDOM, React обновляет соответствующие объекты в RDOM. Это существенно повышает производительность по сравнению с прямыми манипуляциями DOM. Именно это делает React высокопроизводительной библиотекой JavaScript.


2. React использует механизм пакетного (batch) обновления RDOM


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


Повторная отрисовка UI самая затратная часть, React обеспечивает точечную и групповую перерисовку RDOM.


3. React использует эффективный алгоритм поиска различий


React использует эвристический O(n) (линейный) алгоритм, основываясь на двух предположениях:


  1. Два элемента разных типов приводят к построению разных деревьев


  2. Разработчик может обеспечить стабильность элементов между рендерингами посредством пропа key (ключ)



На практике эти предположения являются верными почти во всех случаях.


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


Элементы разных типов


  • Если корневые элементы имеют разные типы, React уничтожает старое дерево и строит новое с нуля


  • Вместе со старым деревом уничтожаются все старые узлы DOM. Экземпляры компонента получают componentWillUnmount(). При построении нового дерева, новые узлы DOM встраиваются в DOM. Экземпляры компонента получают сначала UNSAFE_componentWillMount(), затем componentDidMount(). Любое состояние, связанное со старым деревом, утрачивается


  • Любые компоненты, являющиеся дочерними по отношению к корневому, размонтируются, их состояние уничтожается. Например, при сравнении:



<div><Counter /></div><span><Counter /></span>

Старый Counter будет уничтожен и создан заново.


Элементы одинакового типа


При сравнении двух элементов одинакового типа, React смотрит на атрибуты этих элементов. Узлы DOM сохраняются, изменяются только их атрибуты. Например:


<div className="before" title="stuff" /><div className="after" title="stuff" />

После сравнения этих элементов будет обновлен только атрибут className.


После обработки узла DOM, React рекурсивно перебирает всех его потомков.


Рекурсивный перебор дочерних элементов


По умолчанию React перебирает два списка дочерних элементов DOM-узла и генерирует мутацию при обнаружении различий.


Например, при добавлении элемента в конец списка дочерних элементов, преобразование одного дерева в другое работает хорошо:


<ul><li>первый</li><li>второй</li></ul><ul><li>первый</li><li>второй</li><li>третий</li></ul>

React "видит", что в обоих деревьях имеются <li>первый</li> и <li>второй</li>, пропускает их и вставляет в конец <li>третий</li>.


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


<ul><li>первый</li><li>второй</li></ul><ul><li>нулевой</li><li>первый</li><li>второй</li></ul>

React не сможет понять, что <li>первый</li> и <li>второй</li> остались прежними и мутирует каждый элемент.


Использование ключей


Для решения данной проблемы React предоставляет атрибут (проп) key. Когда дочерние элементы имеют ключи, React использует их для сравнения потомков текущего и предыдущего узлов. Например, добавление ключей к элементам из последнего примера сделает преобразование деревьев намного более эффективным:


<ul><li key="1">первый</li><li key="2">второй</li></ul><ul><li key="0">нулевой</li><li key="1">первый</li><li key="2">второй</li></ul>

Теперь React знает, что элемент с ключом 0 является новым, а элементы с ключами 1 и 2 старыми.


На практике в качестве ключей, как правило, используются идентификаторы:


<li key={item.id}>{item.name}</li>

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


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


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




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


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


Поскольку виртуальный DOM это в большей степени паттерн, нежели конкретная технология, данное понятие может означать разные вещи. В мире React виртуальный DOM, обычно, ассоциируется с React-элементами, которые являются объектами, представляющими пользовательский интерфейс. Тем не менее, React также использует внутренние объекты, которые называются волокнами (fibers). В этих объектах хранится дополнительная информация о дереве компонентов. Fiber это новый движок согласования, появившийся в React 16. Его основная цель заключается в обеспечении инкрементального рендеринга VDOM.


Как выглядит VDOM?


Название виртуальный DOM делает концепцию немного магической (мистической). На самом деле, VDOM это обычный JavaScript-объект.


Представим, что у нас имеется такое DOM-дерево:



Это дерево может быть представлено в виде такого объекта:


const vdom = {tagName: 'html',children: [{ tagName: 'head' },{tagName: 'body',children: [{tagName: 'ul',attributes: { class: 'list' },children: [{tagName: 'li',attributes: { class: 'list_item' },textContent: 'Элемент списка',}, // конец li],}, // конец ul],}, // конец body],} // конец html

Это наш VDOM. Как и RDOM, он является объектным представлением HTML-документа (разметки). Однако, поскольку он представляет собой всего лишь объект, мы можем свободно и часто им манипулировать, не прикасаясь к RDOM без крайней необходимости.


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


const list = {tagName: 'ul',attributes: { class: 'list' },children: [{tagName: 'li',attributes: { class: 'list_item' },textContent: 'Элемент списка',},],}

VDOM под капотом


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


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


Первым делом, нам нужна копия VDOM с изменениями, которые мы хотим осуществить. Поскольку нам не нужно использовать DOM API, мы можем просто создать новый объект.


const copy = {tagName: 'ul',attributes: { class: 'list' },children: [{tagName: 'li',attributes: { class: 'list_item' },textContent: 'Первый элемент списка',},{tagName: 'li',attributes: { class: 'list_item' },textContent: 'Второй элемент списка',},],}

Данная копия используется для создания различия (diff) между оригинальным VDOM (list) и его обновленной версией. Diff может выглядеть следующим образом:


const diffs = [{newNode: {/* новая версия первого элемента списка */},oldNode: {/* оригинальная версия первого элемента списка */},index: {/* индекс элемента в родительском списке */},},{newNode: {/* второй элемент списка */},index: {/* ... */},},]

Данный diff содержит инструкции по обновлению RDOM. После определения всех различий мы можем отправить их в DOM для выполнения необходимых обновлений.


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


const domElement = document.quesrySelector('list')diffs.forEach((diff) => {const newElement = document.createElement(diff.newNode.tagName)/* Добавляем атрибуты ... */if (diff.oldNode) {// Если имеется старая версия, заменяем ее новойdomElement.replaceChild(diff.newNode, diff.oldNode)} else {// Если старая версия отсутствует, создаем новый узелdomElement.append(diff.newNode)}})

Обратите внимание, что это очень упрощенная версия того, как может работать VDOM.


VDOM и фреймворки


Обычно, мы имеем дело с VDOM при использовании фреймворков.


Копцепция VDOM используется такими фреймворками, как React и Vue для повышения производительности обновления DOM. Например, с помощью React наш компонент list может быть реализован следующим образом:


import React from 'react'import ReactDOM from 'react-dom'const list = React.createElement('ul',{ className: 'list' },React.createElement('li', { className: 'list_item' }, 'Элемент списка'))// для создания элементов в React обычно используется специальный синтаксис под названием JSX// const list = <ul className="list"><li className="list_item">Элемент списка</li></ul>ReactDOM.render(list, document.body)

Для обновления списка достаточно создать новый шаблон и снова передать его ReactDOM.render():


const newList = React.createElement('ul',{ className: 'list' },React.createElement('li',{ className: 'list_item' },'Первый элемент списка'),React.createElement('li', { className: 'list_item' }, 'Второй элемент списка'))const timerId = setTimeout(() => {ReactDOM.render(newList, document.body)clearTimeout(timerId)}, 5000)

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



Заключение


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


Подход, используемый Angular, который является фреймворком, благодаря которому одностраничные приложения (single page applications, SPA) обрели столь широкую известность, называется Dirty Model Checking (грязной проверкой моделей). Следует отметить, что DMC и VDOM не исключают друг друга. MVC-фреймворк вполне может использовать оба подхода. В случае с React это не имеет особого смысла, поскольку React это, в конце концов, всего лишь библиотека для слоя представления (view).




Облачные VDS от Маклауд быстрые и безопасные.


Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!


Подробнее..

Тетрис, который максимально бесит

08.05.2021 16:18:41 | Автор: admin
Сможет ли коллективный интеллект Хабра побить мировой рекорд?



Тетрис. Ну, казалось бы, что можно тут сделатть нового? Был уже и трёхмерный тетрис, и четырёхмерный тетрис.

Сделали тетрис, который каждый раз подсовывает тебе самую ненужную фигуру. Сначала прикольно, а потом бесит. БЕСИТ!!!

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

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

В этом тетрисе даже нет гравитации, то есть нет давления времени, но это вам мало поможет.

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


В этой игре Hatetris нет случайностей, алгоритм детерминирован, поэтому есть вызов придумать лучшую стартегию. Авторское решение 5 строк. Моё, за 10 минут игры 4 строки.

Пишите в комментариях ваш результат. (не подглядывая в сохранялки)

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

Поиграть тут.
Исходники тут

Проивоядие: Tetreasy тетрис, который дает вам самую лучшую фигуру.

сохранение на 6 линий

1)suKuUU

2)ИбsяНЖПСVS

сохранение на 7 линий


ЩЩ

сохранение на 8 линий


KJSГuюC

Мировой рекорд на 31


WsaZZНeuаesФуGVНGl


Исследования:




Философские размышления с HackerNews, что жизнь это тетрис:




На Хабре про тетрис:






Облачные серверы от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

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

05.05.2021 14:10:44 | Автор: admin


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

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

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

image

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

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

Образ жизни
Быть викингом стоит 4 года жизни.
Жить в Дели стоит 3 года жизни.
Постоянно ездить на поезде из Ньюарка в Нью-Йорк стоит 6 месяцев жизни
Проживание в средней части США стоит 3 месяца жизни
(Вдыхать дым от чьего-то вейпа около 0?)

Отдельно взятое событие
Если вы жили рядом с лесными пожарами на западном побережье США 2020 года, то это стоило вам 2,4 дня жизни.
Разжечь дома по-настоящему дымный огонь стоит 1 день жизни
Жечь конусное благовоние 2,3 часа жизни
Одну ночь использовать ультразвуковой увлажнитель воздуха 50 минут жизни
Жарить рыбу при закрытых окнах 45 минут жизни
Жечь благовония-палочки 27 минут жизни
Использование лака для волос 14 минут жизни
Выкурить одну сигарету 11 минут жизни
Задуть свечу перед сном 10 минут жизни

Это хорошие новости вы можете купить дополнительную жизнь с минимальными затратами денег, времени, усилий или силы воли!

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

Что я рекомендую


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

  • Если у вас есть ультразвуковой увлажнитель воздуха, уничтожте его.
  • Следите за качеством местного воздуха, как за погодой.
  • Никаких благовоний.
  • Свечи гасите только крышкой.
  • Будьте осторожны с дымом при приготовлении пищи.
  • Заведите себе счетчик частиц.
  • Все время используйте дома очиститель воздуха. (Это пункт 1, если в наружном воздухе, где вы живете, много твердых частиц.)
  • Установите в свой автомобиль салонный воздушный фильтр HEPA.
  • Избегайте использования аэрозолей.
  • При нахождении в грязном воздухе используйте маску очень осторожно.


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

Частицы и проблемы, которые они вызывают


Что мы измеряем



image

Мы измеряем частицы в единицах PM2,5. Теоретически это можно измерить следующим образом:

Возьмите кубометр воздуха.
Отфильтруйте все твердые частицы.
Оставьте только частицы размером 2,5 микрометра/микрона (мкм) или меньше.
Взвесьте оставшиеся частицы в микрограммах (мкг).
Единицы измерения мкг/м, поскольку вы взвешиваете частицы (в мкг) в одном м воздуха.
Для справки: человеческие волосы имеют ширину около 70 микрометров, бактерии от 1 до 10, а вирусы от 0,02 до 0,4. Агентство по охране окружающей среды дает полезную визуализацию:

image

Вы можете спросить: все ли химические вещества равны? Одинаково ли вредны 50 мкг/м3 при сжигании угля, производстве цемента или природной пыли? Ответ нет (слышали об асбесте?). Но мы действительно не знаем, насколько эти различия имеют значение на практике.

Количественная оценка вреда


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

image

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

Как частицы вредят тебе


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

Эти частицы действительно вызывают рак легких, но это одно из меньших зол. Они также вызывают хронические респираторные проблемы. Тем не менее, более половины вреда исходит вовсе не от легких, а от диабета и сердечно-сосудистых заболеваний. Вот вред, нанесенный США в 2019 году:
Вред от мелких частиц:

image

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

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

image

Эвристика для количественной оценки вреда


Насколько сильно Вам вредят частицы? Хотя это сложно сказать точно, в этом разделе будут представлены две простые эвристики:

  • Длительное воздействие 33,3 PM2,5 стоит 1 года жизни, скорректированные по нетрудоспособности. Это лучше всего подходит для изменения образа жизни. Например, перемещение из места, где нет твердых частиц, в место с уровнем 100 PM2,5 стоит 3 года жизни, скорректированные по нетрудоспособности.
  • При 2500 PM2,5 вы теряете годы жизни, скорректированные по нетрудоспособности в реальном времени. Это лучше всего для разовых мероприятий. Например, если вы подвергаетесь воздействию уровня 5000 PM2,5 в течение 3 часов, вы теряете 6 часов жизни, скорректированных по нетрудоспособности.


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

В статье 2013 года рассматривалась продолжительность жизни и уровни частиц в 545 округах США, при этом учитывались смешанные переменные, такие как благосостояние, курение и демография. Они обнаружили, что каждые 28,5 мкг/м3 твердых частиц стоят 1 год (без учета нетрудоспособности).

Стоит ли доверять этому числу? Большинство статей посвящено вопросам общественного здравоохранения, но мы можем извлечь некие оценки. Во всеобъемлющем документе 2017 года оценивается среднее значение PM2,5 для населения в разных странах, а также затраты на здоровье, связанные с частицами в окружающем воздухе. Я взял их оценки и умножил их на цифры ожидаемой продолжительности жизни ВОЗ, чтобы получить оценку общего количества годов жизни, скорректированных по нетрудоспособности, которые каждый человек теряет за свою жизнь. Вот уровни частиц в зависимости от общего потерянного количества годов жизни, скорректированных по нетрудоспособности.

image

Прямая линия показывает соотношение. График говорит о том, что если вы подвергаетесь воздействию 33,3 PM2,5 в течение всей жизни, в результате вы потеряете около 1 года жизни, скорректированного по нетрудоспособности. Я бы не стал слишком полагаться на это точное число. Оно варьируется от страны к стране, и все это основано на очень сложной статистике. Тем не менее, обнадеживает тот факт, что разные данные и методы приводят к цифре, близкой к статье 2013 года.

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

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

image

Другими словами, если вы вдыхаете частицы с концентрацией 2500 PM2,5, вы удваиваете скорость, с которой вы движетесь к своей судьбе (с поправкой на нетрудоспособность). Если вы подвергаетесь воздействию уровня X 2500 в течение H часов, вы теряете XH часов жизни с поправкой на нетрудоспособность.

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

Личное воздействие


Итак, мы можем оценить, какой вред наносят твердые частицы. Следующий естественный вопрос: какому количеству частиц вы подвергаетесь? Вероятно, ответ это частицы из окружающей среды плюс некоторое дополнительное количество в помещении, но трудно сказать, насколько велико это количество.

Где люди проводят время


Есть хорошие записи об уровнях частиц на открытом воздухе, но большинство людей не очень много времени проводят на открытом воздухе. Вот обзор НNHAPS о том, как американцы проводили свое время с 1992 по 1994 год.

image

Время, проведенное в помещении (86,9%). На месте проживания (68,7%), офис/производство (5,4%), бар/ресторан (1,8%), другие помещения (1,8%), в транспорте (5,5%), на открытом воздухе (7,6%).

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

image

Личное VS наружное воздействие


Уровни частиц в помещении такие же, как и на открытом воздухе?

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

image

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

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

Я не нашел хорошего анализа, поэтому сделал свой. Вот сравнение среднего личного и уличного уровней во всех исследованиях, которые я нашел:

image

*Вы можете развернуть таблицу с подробностями обо всех исследованиях здесь, если хотите.
Личное воздействие сильно коррелирует с уровнями на открытом воздухе, но обычно оно немного выше. Если вы доверяете линии на графике, она предсказывает, что у кого-то с наружным уровнем 50 будет личное воздействие 62,5.

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

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

Частицы на открытом воздухе


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

Разница по городу/региону большая: уровни сильно различаются по всему миру. Исчисления различаются, но у некоторые стран показатели действительно низкие (Новая Зеландия, Канада), а у некоторых на порядок выше (Индия, Катар). Различные местоположения внутри стран связаны частично из-за того, что вокруг дует один и тот же воздух, а частично из-за совместного контроля выбросов. Тем не менее, если в вашем городе нет ветра и много заводов и машин, уровни будут выше.

Различия относительно местоположения в пределах города/региона маленькие: насколько различаются те или иные места в одном и том же городе? Ответ: вроде бы как-то различаются. Массовое исследование, проведенное в различных местах Европы, показало, что уровни частиц вблизи улиц были примерно на 20% выше, чем в городах, которые, в свою очередь, были примерно на 20% выше, чем в регионах.

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

image

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

Кстатм, какое значение имели эти пожары? Во многих областях их уровень поднялся примерно до 100 за несколько недель, а в некоторых поднялся до 200-500. В качестве пессимистической оценки предположим, что ваши уровни выросли на 200 за полный месяц. Это увеличивает ваш средний годовой показатель на 16,67, что будет стоить 6 месяцев от года жизни, скорректированного по нетрудоспособности, если это будет происходить каждый год. Если бы это произошло всего один раз, вы бы потеряли 200/2500 = 0,08 месяца или 2,4 скорректированных жизненных дня.

Различия, обусловленные временем суток небольшое: в одном месте и в один и тот же день уровни меняются по часам. Manning (2018) объединил измерения с 3110 объектов по всему миру, чтобы получить следующий график.

image

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

Я думаю, это означает следующее: солнце нагревает землю по утрам. Это заставляет воздух у земли подниматься, смешивая различные слои воздуха. Это притягивает множество частиц от земли к небу, уменьшая их плотность. После того, как земля остынет, воздух перестает так сильно перемешиваться. Кроме того, возможно, это как-то связано с тем, когда люди ездят на работу и так далее.

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

Частицы в пути


Вождение: автомобили генерируют множество частиц. Если вы едете рядом с множеством других автомобилей, уровень частиц, вероятно, выше, чем в окружающем воздухе. В нескольких исследованиях, которые я видел, были обнаружены уровни в диапазоне от 50 до 100 в автомобилях. Другие предполагают, что это не так уж и плохо и схоже с обычным нахождением на улице. Вероятно, это зависит от вашего автомобиля, трафика, местных средств контроля выбросов и погоды.

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

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

Езда в метро: Luglio (2020) измерил частицы для всех основных систем поездов на северо-востоке США. Делали измерения на надземных станциях, но всегда выходило мало (10-25).

image

Для самой опасной системы поездов поездка из Ньюарка, штат Нью-Джерси, до Всемирного торгового центра в Нью-Йорке должна стоить 7,5 минут жизни. Поездка пять дней в неделю будет стоить 0,56 годов жизни, скорректированных по нетрудоспособности.

Поездка занимает 25 минут. Предположим, вы проводите по 10 минут на двух станциях. Ваше воздействие за час, который вы проводите в этой поездке, составляет 779 10/60 + 449 25/60 = 316,9, что приводит к затратам 316,9 / 2500 = 0,126 часа.

Всего есть 10 поездок, каждая из которых увеличивает воздействие на 316,9 за один час. Это увеличивает ваше среднее недельное воздействие на 316,9 10 / (7 24) = 18,86 при затратах 18,86 / 33,33 = 0,56 годов жизни, скорректированных по нетрудоспособности.

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

Martins (2015) рассматривает многие предыдущие исследования с обнаруженными уровнями более 100 в Лондоне, Буэнос-Айресе, Париже, Пекине, Нью-Йорке, Стокгольме, Шанхае, Барселоне и Сеуле. Более низкие уровни были в Будапеште, Гуанчжоу, Хельсинки, Лос-Анджелесе, Мехико, Тайбэе и Сиднее.

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

  • Проблема в том, что частицы медленно накапливаются в туннелях, откуда им некуда деться. Мы можем решить проблему в источнике, медленно убирая частицы.
  • Установить статические очистители на станции несложно. Вы можете использовать стандартные компоненты.
  • Частицы в поездах поступают со станций и туннелей.
  • Люди тоже дышат воздухом на станциях.


Очистители воздуха слишком дороги? Ну, в метро Нью-Йорка (MTA) 275 станций метро. Предположим пессимистично, что каждой станции нужно 50 очистителей, а их эксплуатация стоит 1000 долларов в год. (MTA любит сильно переплачивать.) Стоимость составит 13,75 миллиона в год, что составляет менее 0,1% бюджета MTA. Кажется, это стоит того, чтобы не подвергать миллионы людей воздействию воздуха, в пять раз более опасного, чем самые загрязненные города мира.

Частицы в помещении


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

  • Уровни твердых частиц на открытом воздухе.
  • Как долго частицы висят в воздухе в помещении.
  • Скорость обмена между внутренним и наружным воздухом.
  • Вы совершаете действия, которые создают частицы в помещении (приготовление пищи, свечи).
  • Вещи, которые вы делаете для удаления частиц в помещении (работает очиститель).
  • Мы уже рассмотрели 1. Давай рассмотрим все остальное.


Как долго частицы висят в воздухе


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

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

image

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

Период полураспада воздуха в домах


Даже при закрытых окнах воздух постоянно проходит через щели в здании. Давайте определим это как период полураспада при вентиляции, количество времени, по истечении которого половина воздуха в помещении заменяется извне. В обычных домах это время составляет от 1 до 5 часов. Он длиннее в более энергоэффективных домах и (намного) короче, если окна открыты.

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

Воздействие с уменьшающейся концентрацией


Чтобы рассчитать влияние конкретных вещей, которые генерируют частицы, нам понадобится быстрый расчет. Если вы создадите клуб дыма с пиковой концентрацией c и периодом полураспада h, уровни со временем будут медленно падать. Какое у вас общее воздействие?
На следующем графике показана пиковая концентрация c = 1000, которая распадается с периодом полураспада h = 0,2 часа. Оказывается, это эквивалентно (такая же площадь под кривой) выдержке с константой 288 в течение 1 часа.

image

Откуда взялось 288? Общая формула 1.44 c h. Это вполне естественно: по математике это пиковая концентрация, умноженная на период полураспада, умноженная на дополнительную константу. Как и следовало ожидать, удвоение пиковой концентрации или периода полураспада удваивает общее воздействие.

Общая формула происходит от простого интеграла.
По прошествии некоторого времени t частицы претерпели период полураспада t/h, что означает, что общая концентрация уменьшится в (1/2) ^ (t / h) раз, и, таким образом, текущий уровень в момент времени t равен c (1/2) ^ (т / ч). Если мы проинтегрируем это, чтобы получить общее воздействие, это будет c (1/2) ^ (- t / h) dt = c h / ln (2). Бывает, что 1 / ln (2) 1,44.

Вещи, которые создают частицы в помещении


Курение: Вы слышали? Курение вредно для Вас. Shaw (2000) оценивает, что одна сигарета сокращает продолжительность жизни (без поправки на трудоспособность) на 11 минут, и указывает, что этого времени достаточно для довольно безумного полового акта. Давайте двигаться дальше.

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

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

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

Многие люди измерили частицы около вейпинга и обнаружили высокие уровни. Soule (2017) обнаружил уровень частиц около 1000 на конференции по электронным сигаретам. Li (2021) обнаружил, что в шести вейп-шопах в Южной Калифорнии средний уровень составляет 276. Protano (2020) обнаружил, что один человек, пользующийся вейпом, может достичь уровня от 1000 до 10000. Множество случайных людей измеряют частицы и сообщают числа вроде 600, 546 или 1000. Некоторые сообщают, что их заставляли делать это их родители (хорошая работа, родители).

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

Я предварительно называю это Team Vape. В горах работ, в которых измеряется содержание вейп-дыма с высоким содержанием частиц, мало кто даже признает утверждение, что все это вода и глицерин. Может я что-то упускаю? Мое представление о заговоре против вейпинга не отступило.

Камины и твердое топливо

. В различных исследованиях было обнаружено, что обычный день из жизни фермера 18 века, викинга или приготовление пищи на открытом огне в Гватемале может привести к среднесуточной концентрации частиц около 200. Эти исследования всегда находят безумные уровни частиц около огня (около 1000), но в этих зданиях хорошая вентиляция, и люди не проводят так много времени возле самого сильного дыма. Это предполагает потерю примерно 6 годов жизни, скорректированных по нетрудоспособности, несмотря на то, что настоящие викинги могли снизить количество дыма после многих поколений практики использования огня.

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

Насколько сильно может повредить огонь в камине? Это зависит от многих факторов: насколько велик огонь? Хорошо ли горит? Насколько хорошо вентилируется ваш дом? У вас есть стеклянная панель перед огнем? Насколько хорошо дымоход для камина втягивает воздух?
Давайте будем по-настоящему пессимистичными и представим, что у вас есть огонь с концентрацией 25000, который горит пять часов. Это будет стоить вам около 25 часов жизни с поправкой на трудоспособность. Если все сделать правильно, это, вероятно, уменьшится в 23 раза. Современная дровяная печь с плотными уплотнениями могла бы стать еще лучше.

Кулинария: А как насчет других способов приготовления? Опять же, все зависит от обстоятельств. Kang (2019) пробовал готовить разные блюда в 30 разных зданиях Кореи. В среднем суп давал пиковую концентрацию 65, жарка на масле 424 и жарка на огне 1256. И жарка на масле, и жарка на огне всегда сильно различались.

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

И как долго частицы остаются? Без вытяжки или вентиляции средний период полураспада составлял около часа. (На самом деле это более быстрый период полураспада посредством вентиляции, о котором мы говорили выше.) С вытяжкой период полураспада составлял около 20 минут. При открытых окнах это было около 6-7 минут (независимо от вытяжки).

Эти цифры показывают, что приготовление рыбы при закрытых окнах приводит к потере около 45 минут.

Свечи: Свечи образуют некоторые частицы во время горения, но подавляющее большинство их частиц появляются в тот момент, когда свеча гаснет. (Это подтверждается другими исследованиями.) Задувание свечи вызывает всплеск примерно 50-200, при этом частицы остаются в воздухе в течение 3-5 часов.

Если принять средние значения, то каждое задувание свечи будет стоить вам 10 минут. Если делать это ежедневно, то это будет стоить вам полгода.

Давайте возьмем пиковое значение в 100 и предположим, что частицы висят в воздухе 4 часа. Тогда это будет стоить 100 4/2500 = 0,16 часа или 9,6 минуты в день.

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

Благовония: одна статья предполагает, что при сжигании ароматической палочки пиковая концентрация может составлять около 800, а в конусе более 4000, а период полураспада составляет около 1,6 часа.

Это предполагает, что сжигание конуса благовоний стоит 3,68 часа жизни.

Используя нашу формулу полураспада, общее воздействие составляет 4000 1,6 1,44 = 9216 часов частиц. Таким образом, общая стоимость составляет 9216/2500 = 3,68 часа с поправкой на нетрудоспособность.

Не используйте благовония.

Аэрозоли: некоторые чистящие средства образуют тонны частиц. В одной статье было описано, что использование Febreze вызывает всплеск частиц на 50-75. Они также обнаружили, что лак для волос может вызвать всплеск до 200 с периодом полураспада 2 часа. Они также являются исключительно мелкими частицами, которые очень долго висят в воздухе.

Это говорит о том, что использование лака для волос (в помещении) стоит около 14 минут.
Предположим увеличение на 200 с периодом полувыведения 2 часа. Тогда общая стоимость составит 200 2 1,44 / 2500 = 0,23 часа.

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

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

  • Минеральная вода: ~ 265
  • Водопроводная вода (Сеул): ~ 260
  • Очищенная вода: ~ 50
  • Дистиллированная вода: ~ 0


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

Это говорит о том, что использование ультразвукового увлажнителя с водопроводной водой в ночное время в течение 8 часов стоит 50 минут. Делая это каждую ночь, вы теряете 2,6 года.
(Поскольку мы смотрим на стационарные концентрации, а не на пик, мы не рассматриваем периоды полураспада.) Ваше общее воздействие за одну ночь составляет 260 8 = 2080, при стоимости 2080/2500 = 0,832 часа = 50 минут. Если вы будете делать это каждую ночь, это повысит ваше среднее дневное воздействие на 260 8/24 = 86,66 с затратами на 86,66 / 33,33 = 2,6 года.

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

  • Для наполнения резервуара для воды используйте только чистую прохладную воду из-под крана (рекомендуется использовать фильтрованную или дистиллированную воду, чтобы избежать образования белой пыли, если вода из-под крана слишком жесткая).
  • Лучший способ минимизировать накопление минералов использовать дистиллированную или деминерализованную воду.
  • ВАЖНО: использование водопроводной воды с высоким содержанием минералов, известной какжесткая вода, с любым увлажнителем может привести к выделению мелкой белой пыли. Чтобы этого избежать, используйте дистиллированную или деминерализованную воду .


В качестве дополнительного доказательства Агентство по охране окружающей среды опубликовало отчет, в котором говорится: Недавние исследования [] показали, что ультразвуковые и импеллерные (или холодный туман) увлажнители могут рассеивать материалы, такие как микроорганизмы и минералы, из резервуаров для воды в воздух в помещении. Они рекомендуют осушать и очищать резервуар каждый день, а также использовать дистиллированную воду.

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

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

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

Другие случайные вещи


Оказывается, пылесос приводит к увеличению количества частиц на 50. Сушилка для чистки ворса вызывает всплеск PM10, но не PM2,5. Вы можете получить небольшой подъем уровня частиц, застелив постель!

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

Что делать


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

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

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

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

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

Используйте в помещении очиститель воздуха


Очиститель воздуха нужен вашему дому по двум причинам:

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


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

  • Период полураспада вашей вентиляции равен t, что означает, что по прошествии этого времени половина воздуха в вашем доме была заменена наружным воздухом. (Обычно это от одного до пяти часов.)
  • Период полураспада вашего очищения равен s, что означает, что по прошествии этого времени ваш очиститель удаляет половину частиц из воздуха (при условии отсутствия вентиляции).


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

с/(с+т).

Это интуитивно понятно: вы хотите, чтобы очистка была быстрее, чем вентиляция, т.е. вы хотите, чтобы s <t. В этом случае ваше общее воздействие умножается на небольшое число.
Например, предположим, что в вашем доме средний период полураспада вентиляции составляет 120 минут, а кубовидный очиститель воздуха работает на низком уровне, что означает период полураспада очистки 15 минут в комнате объемом 31 м. Затем этот очиститель снижает ваше воздействие на долю = 15 / (15 + 120) от того, что было бы в противном случае.

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

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

Если уровни наружного воздуха равны L, оказывается, что устойчивое состояние для уровней внутри помещений равно L s / (s + t).

Например, предположим, что уровни на открытом воздухе равны 100, средний период полураспада вентиляции в вашем доме составляет 120 минут, и что вы используете кубовидный очиститель воздуха на высокой скорости в комнате среднего размера, что означает период полураспада очистки 7 минут. Тогда установившаяся концентрация будет 5,5 = 100 7 / (7 + 120).

Теперь поговорим о частицах, созданных в помещении. Допустим, вы генерируете клубок дыма и получаете максимальную концентрацию c. Если частицы уходят только из-за вентиляции, ваше общее воздействие в конечном итоге составит 1,44 ct. Теперь предположим, что у вас есть воздушный фильтр с периодом полураспада s без вентиляции. Комбинированный период полураспада составляет st / (s + t), поэтому ваше новое воздействие составляет 1,44 c s t / (s + t). Соотношение нового и старого воздействия снова s / (s + t).

Установите в машину салонный воздушный фильтр HEPA


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

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

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

Маски действительно ненадежные


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

  1. Можно использовать маску, чтобы исключить большую часть воздействия частиц (уменьшение> 90%).
  2. Многие широко продаваемые маски просто не работают так, как говорится в рекламе, независимо от того, как они используются.
  3. Для успешного использования маски крайне важно иметь такую, которая подходит вашему лицу, и необходимо проверять ее соответствие.


Во время лабораторных испытаний исследователи покупают кучу масок n95, затем осторожно прикрепляют их либо к манекенам, либо к настоящим человеческим головам, а затем проверяют, насколько хорошо они работают. С оптимизмом Shakya (2016) обнаружил, что две маски n95 работали хорошо, и даже тканевые маски что-то делали. Ричард Сен-Сир попробовал несколько масок в Китае, очень осторожно подходя к подгонке, и получил числа от 56% до 99%. В некоторых работах (Cherrie, 2018; Pacitto, 2019) было протестировано несколько различных масок и было обнаружено, что одна или две работают хорошо, но большинство удаляют половину частиц или меньше. К сожалению, Faridi 2020 попробовал 50 различных масок, доступных в Иране, и обнаружил, что ни одна из них не работает лучше 40%, а большинство из них намного хуже.

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

Что вы можете сделать? Две вещи:

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


Распространенный метод настоящих тестов сделать аэрозоль с сахарином (да, искусственный подсластитель) и проверить, блокирует ли маска запах. Provenzano (2020) дает некоторые предварительные доказательства того, что это можно сделать с небольшими затратами.

Пока нет проверенного рецепта, сделанного своими руками, но это кажется возможным. Может быть, мы сможем использовать эти чертовы ультразвуковые увлажнители воздуха, чтобы сделать аэрозоль сахарина. Кто знает, может, появится какая-то не связанная с этим причина для интереса к маскам.



Облачные серверы от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

История советских ядов состав, кто их разрабатывал и зачем

08.05.2021 14:13:54 | Автор: admin

Яд оружие женщин? Да, это оружие женщин, трусов и евнухов.

История разработки ядов и их использования окутаны ореолом мифов и легенд. Сейчас мы уже не можем досконально разобраться в устройстве токсинов, которые пускали в ход Александр Борджиа или чем пропитывала перчатки Екатрина Медичи.

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

Токсикологическая лаборатория


Истоки


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


Генрих Ягода

Все изменилось в начале тридцатых годов: к руководству спецслужбами фактически пришел Генрих Ягода (его начальник, председатель ОГПУ Вячеслав Менжинский тяжело болел и в работе участия не принимал), очень интересовавшийся отравляющими веществами. Ленинский спецкабинет перешел под крыло спецслужб, превратившись в специальную лабораторию ОГПУ. Руководить ею поставили одну интересную личность, доктора Игнатия Казакова, прославившегося своим нестандартным лечением Сталина и партийной номенклатуры с помощью лизатов. После смерти Менжинского и преобразования ОГПУ в НКВД лаборатория перешла в полное распоряжение Ягоды. Для отвода глаз проекты для лаборатории разрабатывались учеными института биохимии Академии Наук. Возможно дьявольская кухня токсикологов работала в тени и дальше, если бы Ягода не попал в немилость Сталина. О существовании лаборатории громогласно объявили в 1938 году на Большом московском процессе. Ягоду, Казакова и других лиц обвинили в убийстве председателя ОГПУ Вячеслава Менжинского, председателя ВСНХ Валериана Куйбышева, писателя Максима Горького и его сына Максима Пешкова. И хотя материалы этого процесса признаны чудовищной фальсификацией, существует вероятность, что лаборатория действительно причастна к некоторым указанным смертям.

Доктор Кошмарная Смерть


Начиная с 1937 года токсикологическая лаборатория, числящаяся в составе института биохимии Академии Наук, была формально переведена в НКВД и поставлена в подчинение начальнику специального отдела оперативной техники при лубянской комендатуре. На этот раз она получила название Лаборатория X. Во главе поставили, на первый взгляд, благообразного человека, профессора Григория Майрановского, считавашегося одним из крупнейших борцов с онкологией и уважаемым ученым. Однако на деле, Майрановский в своей работе ничуть не уступал своим коллегам: Менгеле, Ариберту Хайму и Сиро Иссии.


Профессор Григорий Майрановский

Лаборатория располагалась рядом с основным блоком НКВД, в Варсонофьевском переулке (дом номер 11), по соседству с комендатурой и расстрельным подвалом (дом номер 6). Здания соединялись друг с другом подземными ходами. В таком тесном соседстве лаборатории ядов и расстрельных подвалов несомненна была логика. Не так давно выяснилось, что помимо основной лубянской тюрьмы, существовала еще одна в дачном поселке Кучино. Для удобства ей передали филиал лаборатории, чтобы объекты для экспериментов всегда были под рукой.


Варсонофьевский переулок 11

Особо деятельность Майрановского развернулась в послевоенный период. Для иллюзии собственного оправдания, лабораторным профессорам сообщали, что подопытные приговорены к высшей мере наказания, но исполнение приговора дескать может быть любым (что конечно же не так). Впоследствии осужденный, Майрановский привел один из случаев. В 1949 году в лабораторию привели человека. Судоплатов и Эйтингон (руководители управления, в которое входила лаборатория) сообщили что, нужно сделать профилактический укол в ходе медосмотра. Майрановский сделал укол куранина, смерть наступила через 10-11 минут. Причем сам профессор вместе с Эйтингоном и соучастниками внимательно наблюдали за процессом правда через глазок наглухо закрытой металлической двери (потому что жертва испытывала адскую агонию). В случаях если испытуемый поправлялся, на нем же испытывали другой яд. Если жертва не умирала с трех попыток, ее пристреливали.

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


Лаборатория готовила различные яды как быстродействующие, так и приводящие к смерти через определенное время. Одним из главных критериев пригодности яда являлось невозможность опознать вещества ни жертвой, ни экспертами. Например, начальство не было удовлетворено действием дигитоксина (токсический эффект: анорексия, тошнота, рвота, диарея, спутанность сознания, нарушение зрения и сердечная аритмия): смерть в страшных муках наступала через 3-4, а то и 10 дней. Затем перешли на карбиломинхолинхлорид (препарат К-2): под его действием жертва буквально высыхала (слабела, уменьшалась в росте). Для проведения операций за границей изобрели облегченные пули с ядовитым аконитином. Интенсивно разрабатывались новые, не применявшиеся ранее, яды: рицин, таллий, колхицин. Бурно совершенствовалась техника убийств. Были разработаны различные устройства карманных размеров, загримированные под спичечные коробки, портсигары, портмоне, бонбоньерки, парфюмерные флакончики и прочее, стреляющие отравленными пулями дум-дум или стеклянными ампулами с синильной кислотой: в последнем варианте смерть наступала как бы от инфаркта миокарда.


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

Что такое Аконитин
Аконитин содержится в различных видах аконита, например, Aconitum rotundifolium или Aconitum lamarkii. Это одни из сильнейших растительных ядов известных на сегодняшнее время. Аконитин пластинчатые кристаллы без цвета и запаха. Малорастворим в воде, зато хорошо растворим в органических растворителях. Очень неустойчивое соединение, разлагается при температуре, а также под воздействием щелочей и кислот. Зато после гидролиза в растворах он перестает быть ядовитым. Действие аконитина заключается в том, что сначала дыхание учащается, но затем постепенно замедляется вплоть до полного прекращения. После резорбции (то есть усвоении) яда все тело начинает чесаться, затем появляются озноб и обильное потоотделение, усиление двигательного возбуждения, рвота, а также паралич скелетных мышц. Смерть наступает либо от остановки сердца, либо от остановки дыхания.


Действие Колхицина
Колхицин представляет собой капиллярный яд; он вызывает сильное нарушение кровообращения, в частности сильную гиперемию слизистой оболочки желудка и кишок, обусловливая повышение возбудимости ее и бурные перистальтические движения кишечника (холероподобный понос). Слабительное действие наступает при дозах 0,25 мг на 1 кг веса. Колхицин поражает также почки, вызывая полиурию, альбуминурию, гематурию, даже анурию; парализует центральную нервную систему, обусловливая смерть от паралича дыхания. Внешние клинические проявления при отравлении колхицином наступают не сразу, а по истечении нескольких часов.


По некоторым данным, число жертв лаборатории доходит до 250 человек. В их число входили не только советские граждане, но и немцы, поляки, американцы, японцы, корейцы и китайцы. После войны отравлению в лаборатории подверглась большая группа переживших Большой Террор и спасшихся в подполье антифашистов (деятели Коминтерна). По некоторым рассекреченным в 90-ых досье в потенциальные жертвы отравлений входили Гитлер, Муссолини и Уинстон Черчилль (только не понятно, как лубянские умельцы собирались это сделать). Скорее всего, в лубянских застенках сгинул и знаменитый шведский дипломат Рауль Валленберг, спасший в Будапеште от уничтожения и депортации множество евреев.


Рауль Валленберг

Впоследствии в 50-ых на лабораторщиков и их шефов начались гонения. Арестовали Судоплатова, Эйтингона, самого Майрановского и других лиц. Причем Майрановскому вынесли максимально странный приговор 10 лет тюрьмы за хранение отравляющих веществ в домашних условиях. В 1961 году он вышел на свободу. Ему запретили жить в Москве и сослали в какую-то небольшую химическую лабораторию в Дагестане. В 1964 году Майрановский отправился в Москву на встречу с академиком Блохином, чтобы просить амнистии. На обследовании в элитном московском госпитале он неожиданно скончался прямо в больничном коридоре. Диагноз был таким же, как и у Рауля Валленберга, и у сотен других его жертв: сердечная недостаточность. Конечно же, вряд ли лабораторию окончательно расформировали. Утверждается, что в 196070-х годах разработкой ядов занималась Специальная лаборатория 12 Института специальных и новых технологий КГБ. Увы, рассекреченных данных по этой теме довольно мало, но возможно приемник зловещей лаборатории существует и сегодня

Использовать на E


Представим себя в роли элитного агента КГБ теперь мы Foma Kiniaev (ну или на русский лад Ащьф Лштшфум). Нам поручают серьезное партийное задание устранить человека, стоящего на пути к светлому социализму. Поддельные документы у нас есть, цель есть. Теперь будем выбирать средство оружие. Можно было бы взять парочку АК-47 и танк Т-34 (на фоне играющего гимна СССР) и пойти крушить недругов режима. Но как-то всё слишком не по-секретному что ли, да и шума многовато. В нашем комплекте идеального убийцы среди лазерных кусачек( прародителя лазерных мечей) и масок лиц разных людей выделяться будет наш супер секретный яд. Именно им мы воспользуемся для устранения. Почему яд? Ну, нам не хочется лишнего внимания. Пусть всё выглядит так, как будто жертва погибла естественной смертью. Конечно, если подключатся правоохранительные органы, то всё скорее всего вскроется, но не использовать эту возможность грех.


Наш паспорт

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

Дело 1. Смертельный зонтик


В сентябре 1978 года в Лондоне был убит Георгий Марков писатель и журналист и болгарский диссидент. В 69 году, спасаясь от преследований на родине, он эмигрировал в Англию и начал работать на BBC. Заочно, в конце 1972 года был осужден на 6.5 лет лишения свободы болгарским судом как невозвращенец. Спецслужбы Болгарии, опасаясь, что Марков обладает компроматом на главу коммунистического движения в Болгарии Тодора Живкова, решили ликвидировать его. Разумеется, с разрешения Тодора Живкова.

7 сентября, проходя через автобусную остановку, Георгий спотыкается о чей-то зонт и чувствует легкий укол, но не придаёт этому значения. На следующий день Маркова госпитализируют с высокой температурой и рвотой. К сожалению, спасти его не удалось, но перед смертью он вспоминает о случае с зонтиком и рассказывает о нём спецслужбам. В его ноге нашли маленькую металлическую капсулу с рицином. 11 сентября Георгий Марков скончался.

Рицин
Рицин белковый яд природного происхождения. Он добывается из семян клещевины. Для человека средняя смертельная доза 0.3 мг на кг веса, при приеме перорально.). При попадании в организм, рицин не дает клеткам вырабатывать необходимые белки. Без этого синтеза они умирают. Действие на организм следующее (цитата с сайта управления по обеспечению готовности и реагированию Департамента здравоохранения Мэриленда):

Если рицин был проглочен, первоначальные симптомы обычно наступают менее чем через 6-12 часов. Скорее всего эти первоначальные симптомы отразятся на желудочно-кишечном тракте и вызовут тошноту, рвоту и боли в животе. Затем, симптомы отравления рицином, вероятно, будут быстро прогрессировать (как правило, спустя 12-24 часа) и имеют такие признаки, как серьезное обезвоживание организма и проблемы с почками и печенью. Если рицин поступил внутрь через дыхательные пути, первоначальные симптомы могут проявиться через 4-6 часов после воздействия, а серьезные симптомы могут возникнуть даже 24 часа спустя воздействия. Первоначальные симптомы, вероятно, отразятся на органах дыхания и могут включать в себя трудности с дыханием, одышку, сдавленность в груди и кашель. Затем, симптомы отравления рицином, вероятно, будут быстро прогрессировать (как правило, спустя 12-24 часа) и включать в себя такие признаки, как усиление респираторных симптомов, отек легких (скопление жидкости в легких), и в конечном итоге, дыхательную недостаточность. Смерть в результате отравления рицином может наступить в течение 36 72 часов после воздействия, в зависимости от способа попадания в организм (путем вдыхания, проглатывания или инъекции) и полученной дозы.




Семена клещевины


По утверждению бывшего генерал-майора КГБ СССР Олега Калугина, данная операция была результатом сотрудничества КГБ двух стран: СССР и Болгарии. В 1978 именно через Калугина передавались сведения о том, как именно провести операцию. Изначально планировалось нанести яд на дверную ручку машины Маркова, но побоялись, что может пострадать посторонний человек (какая гуманность). В итоге додумались до стреляющего зонтика.

Рицин, которым отравили Маркова был изготовлен в СССР в уже знакомой 12-й лаборатории КГБ. По словам Олега Гордиевского, бывшего резидента КГБ СССР в Лондоне, операцию по устранению Георгия Маркова курировал генерал Сергей Голубев, который лично повез яд, заложенный в острие специального зонтика. Основной подозреваемый по этому делу итальянский арт-дилер Франческо Гуллино так и не был осужден за неимением доказательств.


Георгий Марков

Дело 2. Степан Бандера


Степан Бандера очень противоречивая личность. Он был лидером наиболее влиятельной фракции Организации украинских националов ОУН(б). В 1934 Степан организовал убийство польского министра внутренних дел Бронислава Перацкого. После этого суд приговорил Бандеру к пожизненному заключению. В сентябре 1939 года он был освобожден немцами из Брестской тюрьмы. В течении войны был арестован и заключен в концлагерь Заксенхаузен до 1944 года. После войны он поселился в Мюнхене и продолжал руководить ОУН(б)

15 октября 1959 года Степан Бандера был убит на лестнице своего дома. Первоначальной причиной смерти была трещина в черепе в результате падения. Врачи предположили, что причина падения заключается в параличе сердца. Однако полицейская экспертиза показала, что причиной смерти стало отравление цианистым калием. Рассматривалась версия о самоубийстве, но как полиция, так и сторонники Бандеры считали, что это было убийство. Сразу раскрыть дело не удалось.

Цианистый калий
Цианистый калий или цианид калия это калиевая соль синильной кислоты, химическая формула KCN. Представляет собой белый порошок. При гидролизе выделяет циановодород, который имеет специфичный запах горького миндаля. При пероральном приёме среднесмертельная доза 1.7 мг на кг веса. В результате употребления клетки теряют способность усваивать кислород из крови и организм погибает от внутритканевого кислородного голодания. В качестве антидотов могут использоваться сахара (в основном глюкоза), тиосульфат натрия, метгемоглобинообразователи.

При дозе в 150 250 мг человек через 30 секунд падает в судорогах, через 90 секунд теряет сознание, а через 120-150 секунд погибает. По причине появления в тканях синильной кислоты.




12 августа 1961 года в западный Берлин бежали сотрудник КГБ Богдан Сташинский и его жена, гражданка ГДР Инге Поль. Сташинский пришел в отдел полиции и заявил о двух совершенных им убийствах. Первое убийство произошло за два года до смерти Степана Бандеры тогда убили, точно так же, как и Бандеру, украинского националиста Льва Ребета. Тогда полиция посчитала причиной смерти Ребета сердечный приступ. Вторым убитым на счету Сташинского был Степан Бандера. Исходя из показаний Богдана, его завербовала МГБ в 1950 году. Оба убийства были выполнены с помощью пистолета, заряженного ампулами с цианидом. По итогу расследования, Богдан Сташинский был осужден на 8 лет тюрьмы как пособник в убийстве, а убийцами признали руководство КГБ. В итоге Богдан отсидел 4 года.

Считается, что распоряжение об устранении украинских националистов отдал лично Хрущев на фоне возрождения повстанческого движения в Украине в период 1956-1957 годов.


Дело 3. Телефон


В августе 1995 от нервно-паралитического вещества типа зарин погибли банкир Иван Кивелиди и его секретарь Зара Исмаилова. 1 августа Кивелиди впал в кому из-за отказа почек и был госпитализирован в Центральную клиническую больницу. В целом, Кивелиди был довольно болезненным человеком у него были больные почки и хроническая гипертония, потому врачи изначально подозревали у него инсульт. Неожиданно пациенту стало лучше после того, как ему закапали атропин для того, что посмотреть глазное дно. Суть в том, что атропин является частичным антидотом к фосфорорганическим соединениям. К сожалению, 4 августа Иван Харлампиевич Кивелиди скончался, не приходя в сознание.

Зарин
Зарин это фосфорорганическое отравляющее вещество нервно-паралитического действия, хим. Формула C4H10FO2P. Представляет собой изопропиловый эфир фторангидрида метилфосфоновой кислоты, жидкость без цвета и запаха. Среднесмертельная доза при контакте с кожей 24 мг/кг, при пероральном попадании в организм 0,14 мг/кг. Зарин поражает нервную систему человека. При нормальной работе нервная система создает сигнал и прекращает его. Зарин нарушает работу, блокируя прекращения сигнала, в результате чего органы находятся в гиперактивном состоянии, до полного их истощения.




2 августа, через день после госпитализации начальника, в больницу им Н.И. Пирогова доставили секретаря Кивелиди Зару Исмаилову с похожими симптомами: судорогами, нарушением кровообращения и потерей сознания. В 6 часов утра Зара умерла, перед этим сообщив, что с ней произошло то же самое, что и с Кивелиди. Её тело отправили в морг, но патологоанатом Иосиф Ласкавый отказался производить вскрытие и сделал следующий вывод: Имеются признаки отравления неизвестным ядом. В таких случаях вскрытие должна проводить судебно-медицинская экспертиза. По итогу эксперты обнаружили тот же яд, что и у Кивелиди.

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

По итогу расследования в отравлении Кивелиди и её секретаря был обвинен Владимир Георгиевич Хуцишвили, и в 2007 году его осудили на 9 лет лишения свободы. Согласно приговору, он устранил Кивелиди из-за личной неприязни. Но есть и противоположное мнение. Адвокат Хуцишвли в 2013 году заявил:

Для меня очевидно, что убийство Ивана Кивелиди совершили сотрудники ФСБ или люди с их подачи.

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

Там был экзотический способ убийства. Боевым отравляющим веществом была якобы смазана трубка телефона в кабинете Кивелиди. Но вот, например, врач скорой помощи пользовался этой трубкой и с ним ничего не случилось. Вещество на трубке обнаружили спустя 10 дней после убийства. В итоге осудили партнёра Кивелиди Владимира Хуцишвили, у которого даже мотивов не было. Кивелиди был для него царь и бог, и со смертью Кивелиди он потерял всё.

Также имеется и ряд других интересных деталей. Так, например на патологоанатома Иосифа Ласкавого оказывалось давление со стороны московской прокуратуры, а именно требование провести вскрытие Зары Исмаиловой. А адвокат Хуцишвили отмечал следующий факт:

В деле об убийстве Кивелиди есть ещё одна любопытная фигура это охранник предпринимателя. 1 августа, когда произошло ЧП, впервые вышел на работу. На следующий день он уволился. На суде же выяснилось, что этот охранник являлся сослуживцем небезызвестного Андрея Лугового. Были ли они знакомы, я не знаю. Но точно могу утверждать, что оба из 9 Управления КГБ СССР.




Похороны Кивелиди

Неудачные операции


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

Я должен был умереть от новоизобретенного яда, так закамуфлированного, что результаты вскрытия показали бы гибель от промышленного яда, используемого для уничтожения грызунов. Однако этот яд таллий мог убить человека только с очень подорванным здоровьем. В Москве специалисты из секретной лаборатории КГБ крупинку таллия превратили в радиоактивный изотоп. Агентам же удалось подбросить ее мне в чашку кофе. Замысел был в том, что крупинка поразит меня изнутри лучевой болезнью, а потом быстро исчезнет. Эффект талия, однако, останется и должен был сбить с толку докторов. Так и случилось. Фактически я был приговорен к смерти и, несмотря на то, что американские доктора во Франкфуртском военном госпитале многие недели трудились над моим спасением, почему я все-таки выжил, так и осталось неясным

Что из себя представляет Таллий
Таллий серебристо-белый металл с сероватым оттенком, не имеет вкуса и запаха, что может быть использовано в криминальных целях его совершенно невозможно распознать.Таллий относится к высокотоксичным ядам, и отравление им нередко заканчивается летальным исходом. Отравления таллием и его соединениями возможны при их получении и практическом использовании. Таллий проникает в организм через органы дыхания, неповрежденную кожу и пищеварительный тракт. Выводится из организма в течение длительного времени. Острые, подострые и хронические отравления имеют сходную клиническую картину, различаясь выраженностью и быстротой возникновения симптомов. В острых случаях через 1-2 суток появляются признаки поражения желудочно-кишечного тракта (тошнота, рвота, боли в животе, понос, запор) и дыхательных путей. Через 2-3 недели наблюдаются выпадение волос, явления авитаминоза (сглаживание слизистой оболочки языка, трещины в углах рта и т. д.). В тяжёлых случаях могут развиться полиневриты, психические расстройства, поражения зрения и др. Для сульфата таллия летальная доза при пероральном приеме составляет для людей около 1 г. Известны случаи, когда смертельными оказывались дозы в 8 мг/кг, а также в 10-15 мг/кг.


Ещё одно неудачное покушение было совершено на А. Солженицына. В 1971 году во время поездки в Ростовскую область его отравили, предположительно рицином. На протяжении 3 месяцев он проходил лечение, и не ясно, хотели ли в КГБ убить его или просто вывести на некоторое время из игры.

В целом, стоит понимать, что любой известный случай отравления является неудачным. Яд выбирают тогда, когда не хотят, чтобы убийство выглядело таковым. А удачным покушение можно считать, если только о нем никто не узнает. Наверняка в истории КГБ есть страницы, о которых мы никогда не узнаем.



Облачные серверы от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Чем опасен космический мусор и как его уничтожают

29.05.2021 10:08:42 | Автор: admin


По разным оценкам, количество космического мусора на орбите Земли варьируется от 220 до 300 тысяч объектов. При этом, объекты, размером в поперечнике более 1 см, составляют от 20 до 33% (от 60 тыс. до 100 тыс) всего космического мусора. Только представьте, какой эффект может оказать астрономическая пуля на пролетающий мимо космический корабль. Конечно, в масштабах нашей орбиты это кажется несущественным, но по мнению ученых, после 2055, в результате взаимного саморазрушения уже имеющегося на орбите мусора, проблема космического мусора станет серьезным препятствием для дальнейшего освоения космоса. Теперь подробнее об этом и других возможных последствиях.

Суть проблемы


Угроза физического столкновения


Собственно, самая очевидная угроза, исходящая от космического мусора, это угроза физического столкновения. На текущем уровне развития технологий не существует какого-либо способа защитить космические аппараты от небольшого объекта, размером с пулю, движущегося со скоростью 10 км/с. Ну а про защиту от более крупных объектов и заикаться не приходиться, хотя на орбите их существенно меньше. Помимо угрозы повреждения и уничтожения объектов, стартующих с Земли, на орбите находится огромное количество различных спутников, необходимые для работы разных служб. GPS, метеорология, да куча всего в общем. Уничтожение одного из них не сделает всю систему нежизнеспособной, но в условиях увеличения количества мусора в будущем это может серьёзно повлиять на работоспособность этих систем. Помимо прогнозов на будущее, в настоящем и прошлом есть примеры столкновения космических аппаратов с мусором:


За всё время программы шаттлов, на них было обнаружено порядка 170 следов на иллюминаторах от столкновения, к счастью с микрочастицами (0,2 мм в диаметре). Около 70 иллюминаторов пошли под замену. На изображении слева кратер шириной 2.5 мм от частицы краски.

  • В июле 1996 года французский спутник столкнулся с третью ступенью французской ракеты Arian, запущенной намного раньше;


Французская ракета Arian. Источник ESA

  • 29 марта 2006 года российский спутник Экспресс АМ11 столкнулся с космическим мусором. В результате столкновения, был разгерметизирована система терморегулирования, спутник, потерял ориентацию и начал неконтролируемое вращение.

  • 10 февраля 2009 года российский спутник Космос-2251, выведенный из эксплуатации в 1995 году, столкнулся с американским коммерческим спутником Iridium 33.


Столкновение Космос-2251 и Iridium 33. Источник vermarushabh.blogspot.com

Для контроля мусора космическими агентствами ведутся соответствующие реестры, отслеживающие относительно крупные (от нескольких сантиметров) объекты. Так, например. основываясь на имеющихся данных, МКС несколько раз в год корректирует своё положение на орбите, дабы избежать столкновения.

Синдром Кесслера


Помимо угрозы физического уничтожения, космический мусор может являться причиной полной непригодности ближнего космоса для практического использования. Данную теорию описывает так называемый синдром Кесслера, описанный консультантом НАСА Дональдом Кесслером в 1978 году. Суть данной теории заключается в эффекте домино. По мере увеличения количества объектов на орбите увеличивается и количество потенциальных источников мусора. При столкновении двух крупных объектов приведет к появлению большого количества новых, более мелких объектов. В свою очередь, каждый из них может столкнуться с другим объектом. Таким образом возникает цепная реакция, ведущая к появлению всё новых и новых обломков. По итогу, при достаточно большом количестве столкновений, количество образовавшегося мусора на орбите сделает невозможным её использование.

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

Падение космического мусора на Землю


Объекты, находящиеся на низкой орбите, еще находятся под влиянием атмосферы земли и постепенно замедляются, в результате через какое-то время начинают снижаться и входить в более плотные слои атмосферы. Многие объекты сгорают в атмосфере, но есть и те, что достигают поверхности планеты. Так, по данным НАСА, почти ежегодно отдельные фрагменты космических аппаратов достигают поверхности Земли.


Источник oyla.xyz

Кладбище космических кораблей


Точка Немо это самая удаленная от суши место на Земле, также называемая океанической полюсом недоступности. Полюс недоступности это место, которое наиболее сложно достигнуть из-за её удалённости, обычно от береговой линии. Ближайшая суша находиться в 2688 километрах от Точки Немо, а ближайшим населенным местом периодически становится МКС, орбита которой проходит над этим местом. Низкое содержание питательных веществ (круговорот в южной части Тихого океана блокирует попадание питательных веществ в этот район) и удаленность от прибрежных вод делают это место практически безжизненным, поэтому Точка Немо идеальное место для захоронения космических аппаратов. Периодически этот район называют кладбищем космических кораблей. Некоторые русскоязычные источники называют этот район закрытым для судоходства, но судя по отсутствию нормативных документов и регламента процедуры захоронения (о которой чуть ниже) данный запрет носит рекомендательный характер. Ответственность за движение судов в этом регионе разделяют Чили и Новая Зеландия. За несколько дней до спуска космического аппарата, космические агентства предупреждают службы этих стран, которые в свою очередь доносят соответствующие предупреждения избегать этот район до летчиков и капитанов морских судов.


Источник gizmodo.com

Похороны космического аппарата


Как и при любой другой космической операции, захоронение космического аппарата требует соответствующей подготовки. После проведения необходимых расчетов и предупреждения местных властей, аппарат, достигнув необходимого местоположения, начинает снижение. Как упоминалось выше, небольшие и компактные спутник, как правило, не достигают поверхности земли и сгорают за счет трения. Поверхности воды же достигают различные тугоплавкие конструкции. Так, например, данный участок используется российским Центром управления полетов для утилизации космических беспилотных грузовиков серии Прогресс. Кстати, в результате захоронения части космического аппарата могут разлетаться на большой площади. Так, например, останки станции Мир, затопленной в 2001 году, разлетелись на участок протяженностью 3000 километров. Подобная характерность несколько раз становилась причиной ЧП. В 1979 году часть американской станции Скайлэб упала на территории Австралии, в 1991 году обломки станции Салют-7 упали на территории Аргентины. Также в 1997 году недогоревшая часть ракеты упала на женщину в Оклахоме. К счастью, все эти случаи произошли без жертв. Сейчас, ежегодно на кладбище космических кораблей свой последний приют находят несколько десятков кораблей, которые находясь на орбите являются источником большей угрозы.


Инфографика ТАСС. Источник tass.ru

Орбита захоронения


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

Геостационарная орбита это орбита, расположенная над экватором земли, находясь на которой, искусственный спутник имеет такую же угловую скорость, как и Земля, т.е. находится всегда над одним и тем же местом на Земле. Эта орбита используется для размещения коммуникационных, телетрансляционных спутников и находиться на высоте 35786 километров над уровнем моря. После отработки, спутник примерно на 200 км (для каждого спутника расстояние рассчитывается индивидуально).




Увеличение количества искусственных спутников Земли. Источник Европейское космическое агентство.

Другая орбита захоронения находится на высоте от 600 до 1000 километров. На эту орбиты отправляют военные спутники с ядерной энергетической установкой. Ориентировочно, эти спутники будут находиться на орбите порядка 2 тысяч лет, после чего гравитация Земли притянет их.

Пути решения


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

Снижение создаваемого мусора


Как говорится, Чисто не там где убирают, а там где не мусорят!. Собственно, в этом и суть. К основным направлением снижения создаваемого мусора относят следующие меры:

  • Снижение массы запускаемого аппарата:

Меньше масса меньше потенциального мусора. Всё просто.

  • Увеличение срока эксплуатации космических аппаратов:

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

  • Минимизация количества остающихся в космическом пространстве частей КА:

Утилизация отработавших частей и самого космического аппарата либо возвращение частей обратно на Землю.

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

Второй способ это возвращение частей КА на Землю. Самый очевидные примеры это многоразовые ступени SpaceX и программа Space Shuttle.

Утилизация уже имеющегося мусора


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

  • Лазеры

Суть в том, что уничтожать мусор с помощью лазера. Что ж, звучит фантастично.

  • Захват

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

  • Воздушные шары

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

  • Буксир с солнечным парусом

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

  • Облако вольфрама

По задумке, облако вольфрама будет медленно опускаться к Земле, попутно замедляя мусор.

  • Аппараты-самоубийцы

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

  • Орбитальные мусоровозы

Аппарат будет собирать мусор на орбите и перерабатывать его.


Российский сборщик космического мусора, перерабатывающий космический мусор в топливо. Источник russianspacesystems.ru



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

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

SDR приёмник SoftRock Ensemble RX II

10.06.2021 16:07:13 | Автор: admin


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

В этой публикации я хочу рассказать об удивительной конструкции, которая изменила моё представление об аппаратуре для любительской радиосвязи и положила начало моему увлечению SDR (Software Defined Radio).

Речь идёт о SoftRock Ensemble RX II, который я использую в качестве контрольного радиоприёмника уже седьмой год.

На официальном сайте SoftRock Ensemble RX II продаётся или за $65 в виде набора, или за $85 собранным. При такой цене больше хочется говорить о достоинствах, чем о недостатках.

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

Мной используется HF-версия SoftRock Ensemble RX II, которая работает в диапазоне частот 1,830 МГц. Этот диапазон разбит полосовыми фильтрами на четыре поддиапазона: 1,84 МГц; 48 МГц; 816 МГц и 1630 МГц.

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

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

Аппаратная часть


Как понятно из названия, SoftRock Ensemble RX II был не первым в линейке. Видимая простота схемотехнического решения приёмника отрабатывалась американским радиолюбителем Tony Parks (KB9YIG) годами.

Принцип действия малосигнального тракта проще объяснить на схеме радиоприёмника SoftRock Lite II младшего брата SoftRock Ensemble RX II. Схема взята из инструкции по монтажу и наладке:


Из схемы видно, что это гетеродинный приёмник с квадратурным детектором (QSD).

Схема источника питания (1 Power Supply) стандартная схема включения микросхемы линейного стабилизатора 78L05.

Принимаемый сигнал радиочастоты (РЧ) через диапазонный полосовой фильтр (ДПФ) C3, L1, C4 подаётся на первичную обмотку трансформатора T1. На выводе 2 трансформатора присутствует сигнал РЧ, синфазный принимаемому, а на выводе 4 противофазный. На среднюю точку вторичной обмотки T1 (выводы 3, 5) подаётся напряжение смещения, равное половине напряжения питания. Напряжение формируется делителем на резисторах R3, R4 и фильтруется конденсаторами C7, C14, C16. Смещение нужно для правильной работы ключей и операционных усилителей (ОУ).

Ключи из состава мультиплексора-демультиплексора U3 переключаются сигналами со счётчика Джонсона, собранного на U2. В любой момент времени открыт только один ключ.

Сигнал I (Inphase) формируется на конденсаторе C5 подачей на него через R1 напряжения с вывода 2 трансформатора T1 через открытый ключ 1B4 (фаза сигнала гетеродина 0), а также подачей через резистор R2 и открытый ключ 1B1 напряжения с вывода 4 трансформатора T1 (фаза 180).

Сигнал Q (Quadrature) формируется на конденсаторе C6 подачей на него через R1 напряжения с вывода 2 трансформатора T1 через открытый ключ 2B3 (фаза сигнала гетеродина 90), а также подачей через резистор R2 и открытый ключ 2B2 напряжения с вывода 4 трансформатора T1 (фаза 270).

Резисторы R1 и R2 нужны для выравнивания разницы сопротивления открытых ключей мультиплексора-демультиплексора FST3253.

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

От простого к сложному


SoftRock Lite II предназначен для приёма сигналов на участке какого-либо одного радиолюбительского диапазона. Параметры участка определяются частотой кварцевого резонатора X1 (см. 2 Local Oscillator) и частотой дискретизации звуковой карты.

При резонансной частоте кварца 28224 кГц и частоте дискретизации 96 кГц SoftRock Lite II будет принимать сигналы в диапазоне от 7008 до 7104 кГц. Диапазонный полосовой фильтр (C3, L1, C4), соответственно, должен иметь точно такую же полосу пропускания.

На рисунке ниже показан экран программы HDSDR. Выход приёмника подключен к линейному входу звуковой карты компьютера. Частота дискретизации звуковой карты 96 кГц. Центральная частота приёма 7056 кГц. На панорамном индикаторе безмятежное спокойствие, царящее на любительском диапазоне 40 м воскресным утром 6 июня 2021 года:


В отличие от SoftRock Lite II приёмник SoftRock Ensemble RX II имеет плавную настройку в диапазоне частот от 1800 кГц до 30 МГц, поэтому схема устройства дополнена синтезатором частоты Si570, управляемым через USB контроллером ATTiny85, и переключаемым четырёхдиапазонным ДПФ.

Схема ДПФ приёмника SoftRock Ensemble RX II взята из инструкции по монтажу и наладке:


ДПФ состоит из четырёх фильтров с полосой пропускания: 1,84 МГц; 48 МГц; 816 МГц и 1630 МГц. Фильтры переключаются сигналами SEL 0 и SEL 1 силами двух мультиплексоров-демультиплексоров FST3253 U8 и U9. Аттенюаторы R17, R18, R19 и R20, R21, R22 в цепях ДПФ Band 0 и Band 1 ослабляют на 14 dB входной сигнал на низкочастотных КВ-диапазонах, которые традиционно отличаются высоким уровнем помех.

Трансформатор T2 служит для гальванической развязки ДПФ и антенны. Первичная обмотка трансформатора T3 является входом QSD.

Схема управления и синтезатора частоты показана ниже:


Схема питается от разъема USB. Подключенный к шине USB микроконтроллер U1 управляет синтезатором частоты U3 по интерфейсу I2C. Выходной сигнал синтезатора через трансформатор T1 подаётся на вход счётчика Джонсона. В зависимости от частоты приёма микроконтроллер через оптроны U4 и U5 формирует сигналы SEL 0 и SEL 1 для переключения полосовых фильтров в ДПФ.

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


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

Программная часть


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

Для управления приёмником и его конфигурирования применяется программа CFGSR, созданная радиолюбителем из Нидерландов F.W. Krom (PE0FKO):


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

Для правильной работы схемы управления нужно выбрать тип устройства. В нашем случае это SoftRock Ensemble RX II LF/HF(HF):


Для работы с SoftRock Ensemble RX II обычно используется программа HDSDR. Для связи HDSDR с CFGSR служит библиотека ExtIO_Si570.dll, которую после установки конфигуратора надо скопировать из папки, куда установлен конфигуратор, в папку, куда установлена HDSDR.

Выход приёмника подключен к линейному входу звуковой карты компьютера. Запускаем HDSDR. Выбираем источник сигнала SoftRock Si570. Устанавливаем рабочую частоту дискретизации звуковой карты. Пытаемся принять сигналы точного времени, которые передаются на частоте 9996 кГц:


Как видно по панорамному индикатору, сигналы точного времени мы принимаем на частоте 9994,18 кГц. Это нужно исправить!

Калибровка частоты


Опорный кварцевый генератор находится внутри корпуса синтезатора Si570. Калибровка опорной частоты производится прямо из конфигуратора вводом частоты настройки на радиостанцию и её фактической частоты вещания:


После проведения процедуры калибровки мы начинаем принимать сигналы точного времени, как и положено, на частоте 9996 кГц:


Теперь наш маленький аппаратно-программный комплекс можно смело использовать в качестве контрольного радиоприёмника с калиброванной шкалой.

Unfinished Sympathy


До знакомства с SoftRock Ensemble RX II такие вещи как синтезатор частоты, панорамный индикатор и управление радиостанцией с помощью компьютера были для меня атрибутами профессиональной связной техники, которая стоит отнюдь не $85.

Сборка приёмника оказалась простой и приятной. Инструкции по монтажу и наладке написаны простым и понятным техническим английским языком.

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

Мне очень нравится SDR. Надеюсь, и вам тоже.



Облачные серверы от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Есть ли жизнь после CentOS?

28.04.2021 10:12:44 | Автор: admin

Под конец и без того нелегкого 2020 года Red Hat преподнесла всем поклонникам CentOS весьма неожиданный подарок, объявив о радикальном сокращении EOL восьмой версии дистрибутива и последующем отказе от дальнейшего развития проекта. Пользователи операционной системы, на протяжении многих лет занимавшей третье место по популярности в мире, оказались на распутье. Что выбрать в такой ситуации? Стать вечным бета-тестером, перейдя на CentOS Stream? Выделить бюджет на покупку лицензии Red Hat Enterprise Linux? Или быть может попробовать одно из конкурирующих решений?

Хроника пикирующего дистрибутива: зачем убили CentOS?


В июле 2019 года руководство Red Hat объявило об официальном урегулировании всех формальностей, связанных с продажей бизнеса корпорации IBM. Финальная сумма сделки составила около 34 миллиардов долларов США, или $190 за каждую проданную акцию (при том, что на момент объявления о сделке бумаги торговались по $116). Как обычно и бывает в таких случаях, Red Hat клятвенно заверили сообщество, что присоединение к знаменитому IT-гиганту поможет привлечь дополнительные инвестиции и ресурсы, что даст возможность компании достичь новых вершин, и донести технологии Red Hat до еще более широкой аудитории, чем прежде. В свою очередь, лидеры разработки Fedora и CentOS поспешили заявить, что цели и модель управления проектами останутся неизменными, а Red Hat, как и ранее, продолжит активно участвовать в их развитии. И компания действительно сдержала свое слово, но лишь наполовину.


Кто-то всерьез полагал, что после поглощения Red Hat ничего не изменится?

В начале декабря 2020 года компания объявила о прекращении поддержки CentOS операционной системы, фактически являющейся бесплатной альтернативой Red Hat Enterprise Linux, великодушно предложив всем пользователям данного дистрибутива перейти на CentOS Stream. Больше всего эта новость ошарашила тех, кто уже успел мигрировать на CentOS 8: хотя поддержка восьмой версии операционной системы должна была завершиться лишь 31 мая 2029 года, первоначальный EOL ограничили 31 декабря 2021 года (то есть, обещанные 10 лет волшебным образом превратились в 2 года). Тем, кто использует CentOS 7, повезло значительно больше: сроки поддержки семерки оставили неизменными, так что операционная система продолжит получать критически важные апдейты до 2024 года. Впрочем, кто знает, что придет в голову Red Hat в ближайшем будущем?

Согласно официальной позиции компании, модель взаимодействия между пользователями и разработчиками программного обеспечения, которую олицетворяет собой CentOS, в современных реалиях уже не актуальна. И CentOS Stream является на сегодняшний день наиболее оптимальным и сбалансированным дистрибутивом, сочетая в себе инновации Fedora и стабильность Red Hat Enterprise Linux. Именно стремясь удовлетворить потребности сообщества, Red Hat приняли решение всецело сосредоточиться на поддержке данной версии дистрибутива, сделав CentOS Stream основным центром инноваций экосистемы RHEL.

Однако сообщество подобную заботу не оценило: на фоне новостей о прекращении дальнейшего развития оригинального дистрибутива CentOS стал стремительно терять позиции, модераторы тематического сабреддита добавили к прежнему названию приписку Corporate-driven (вместо community-driven), Not suitable for Enterprise, закрепив тред RIP CentOS, 20042020, журнал ZDNet, принадлежащий CBS Interactive, открыто высказал мнение, что отказ от поддержки CentOS является ничем иным, как частью продвижения RHEL, в сети появился лэндинг довольно ехидного содержания centos.rip (создание которого, кстати, приписывают Oracle главному конкуренту Red Hat, разрабатывающему собственный RH-based дистрибутив), а на change.org была опубликована петиция, авторы которой обратились к Red Hat с просьбой продолжить разработку CentOS в прежнем формате.


Кем бы ни были авторы centos.rip, ехидства им не занимать

Реакция Red Hat не заставила себя долго ждать: компания прислушалась к мнению сообщества, изменив правила использования Red Hat Enterprise Linux для разработчиков. Ранее в рамках программы Red Hat Developer действовало правило один разработчик одна лицензия, а сам дистрибутив можно было разворачивать только в локальном окружении. С 1 февраля 2021 года в программе могут участвовать целые команды, количество лицензий увеличилось с 1 до 16, к тому же новые условия EULA допускают установку ОС в инстансах публичных cloud-сервисов. Но, разумеется, только в целях разработки программного обеспечения: использование дистрибутива в продакшене обновленная лицензия по-прежнему не предусматривает.

Таким образом Red Hat прозрачно намекнула, что не намерена отклоняться от ранее избранного курса, чего и следовало ожидать. Вполне очевидно, что несмотря на первоначальное обещание сохранить созданную компанией модель разработки и поддерживать сложившуюся вокруг ее проектов экосистему, IBM увидела в CentOS прямую угрозу продажам RHEL. Отказ же от старой доброй CentOS позволяет убить не то что двух, а сразу трех зайцев:

  1. Часть пользователей из числа представителей крупного бизнеса наверняка предпочтет перейти на RHEL, что обеспечит дополнительную прибыль;
  2. Те, кто рискнет мигрировать на CentOS Stream, пополнят ряды бета-тестеров, а это поможет эффективнее обкатывать новые технологии и быстрее выявлять уязвимости в новых версиях пакетов;
  3. Освободившиеся ресурсы можно использовать для дальнейшего развития Red Hat Enterprise Linux, оставаясь в рамках прежнего бюджета на разработку.

Мотивы IBM понятны: даже для такой крупной корпорации 34 миллиарда долларов очень серьезная сумма, а предпринятые шаги помогут частично компенсировать затраты на покупку Red Hat уже в обозримом будущем за счет крупных корпоративных заказчиков. Но что же делать небольшим компаниям, которые попросту не могут себе позволить приобретение коммерческой лицензии RHEL?

Куда пойти, куда податься?


Древняя народная мудрость гласит: Лучший Linux тот, в котором разбирается ваш системный администратор. И с этим действительно трудно поспорить: хотя в основе UNIX-подобных операционных систем лежат одни и те же принципы, каждый дистрибутив имеет свои особенности, сильные и слабые стороны, знание которых во многом определяет эффективность работы с созданной на их основе IT-инфраструктурой. Если же ваша компания использует определенную операционную систему достаточно долго, у вас наверняка написаны сотни, а то и тысячи скриптов, заточенных под выбранную программную среду и являющихся неотъемлемой частью внутренних корпоративных сервисов, полное переписывание которых чревато серьезными финансовыми и временными затратами, не говоря уже о потенциальных убытках в том случае, если что-то пойдет не так.

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

1. CentOS Stream



Пользователям CentOS 8 Red Hat предлагает мигрировать на CentOS Stream. Всерьез рассматривать перспективы использования данного дистрибутива в продакшене не получается, ведь если даже в релизные версии операционных систем периодически просачиваются баги и уязвимости, зачастую носящие критический характер, то что говорить о непрерывно обновляемой бете? Хотя чисто технически влиться в Поток предельно просто. Для этого достаточно выполнить в терминале всего три команды:

  1. Подключаем репозиторий CentOS Stream

# dnf install centos-release-stream

  1. Указываем новый репозиторий в качестве дефолтного

# dnf swap centos-{linux,stream}-repos

  1. Синхронизируем установленные пакеты

# dnf distro-sync

Поскольку отличия пакетной базы CentOS 8 и CentOS Stream на сегодняшний день минимальны, процедура миграции с вероятностью 99% пройдет безболезненно. Тем не менее, если речь идет не о нуждах разработки, а о комплексной IT-инфраструктуре, на которой завязана львиная доля бизнес-процессов предприятия, стоит присмотреться к чему-то более надежному. Например, к тому же Oracle Linux.

2. Oracle Linux



Фактически Oracle Linux представляет собой клон RHEL. Данная операционная система полностью совместима с CentOS на уровне двоичного кода. К тому же в декабре 2020 года компания Oracle представила удобный скрипт для миграции продакшн-систем, автоматически заменяющий специфичные для CentOS пакеты на эквивалентные из поставки Oracle Linux, и поддерживающий 6-ю, 7-ю и 8-ю версии ОС. Интересной особенностью данного скрипта является функция резервного копирования затронутых файлов, так что при возникновении любых проблем вы сможете откатить все внесенные изменения.

Разумеется, не могло обойтись и без некоторых ограничений:

  1. Скрипт обрабатывает только основные репозитории операционной системы. Подключение внешних репозиториев вроде EPEL для получения обновлений ранее установленных пакетов придется производить вручную;
  2. Совместимость с пакетами, полученными из сторонних репозиториев, не гарантируется. В частности, Oracle указывает на возможные конфликты, вызванные наличием файла /etc/oracle-release;
  3. После миграции могут перестать работать пакеты, использующие сторонние модули ядра и/или модули ядра с закрытым исходным кодом (к таковым относятся, например, коммерческие антивирусные приложения);
  4. Скрипт не поддерживает системы, в которых используются сторонние инструменты централизованного управления наподобие Foreman, Spacewalk или Uyni.

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

  1. Дистрибутив полностью бесплатен и может использоваться в коммерческих проектах без каких-либо ограничений или дополнительного лицензирования;
  2. Бесплатная и коммерческая версии Oracle Linux отличаются друг от друга только наличием технической поддержки от специалистов корпорации, сами же дистрибутивы полностью идентичны и используют единый репозиторий, одновременно получая все выходящие обновления;
  3. Изменения в ядре Unbreakable Enterprise Kernel публикуются в Git-репозитории с разделением на отдельные патчи и детализацией внесенных изменений, что повышает прозрачность и предсказуемость поведения системы при ее обновлении;
  4. Oracle Linux поддерживает высокопроизводительную сетевую файловую систему Oracle Cluster File System 2 (OCFS2), позволяющую создавать разделяемые хранилища, используемые одновременно несколькими Linux-системами, что делает Oracle Linux весьма удобной для построения масштабируемых веб-серверов, кластерных баз данных, виртуализации и других аналогичных сценариев.

В свете всего перечисленного переход на Oracle Linux кажется наиболее правильным и логичным шагом. Однако если рассматривать перспективы миграции на данный дистрибутив в историческом контексте, все становится уже совсем не так однозначно. Дело в том, что и Oracle Linux, и CentOS в их современном виде являются плодом ожесточенной конкуренции между Red Hat и Oracle.

Еще в октябре 2006 года, на фоне анонса инициативы Unbreakable Linux, в рамках которой Oracle фактически предложила пользователям копию RHEL за вдвое более низкую цену, акции Red Hat упали на 28%, что вынудило компанию перейти к активным действиям. Ответным шагом стал перевод RHEL 6 на монолитное ядро, что фактически блокировало возможность использования наработок компании в сторонних дистрибутивах, сделав анализ примененных патчей излишне трудоемким. Технический директор Red Hat, Брайан Стивенс, тогда заявил:

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

Реакция Oracle не заставила себя долго ждать: компания открыла неограниченный доступ ко всем обновлениям Oracle Linux, включая errata и оперативные патчи безопасности, сформировав Git-репозиторий для отслеживания всех изменений, и начав весьма успешно переманивать пользователей CentOS, агитируя их переходить на бесплатный продукт enterprise-класса.

После этого Red Hat не оставалось ничего, кроме как возглавить разработку CentOS: в январе 2014 года компания объявила о начале прямого финансирования проекта, получив права на владение всеми товарными знаками.


Данный шаг позволил устранить основной недостаток операционной системы непредсказуемость процесса разработки. Инциденты вроде неожиданной пропажи Лэнса Дэвиса, одного из основателей проекта, и многомесячные перерывы в выпуске обновлений не добавляли CentOS популярности, заставляя сообщество склоняться в сторону более надежной альтернативы. Устранив перечисленные риски, Red Hat поставила под сомнение целесообразность использования Oracle Linux: и правда, в чем смысл работать с клоном, если можно получить качественный, полностью бесплатный продукт от создателей оригинальной RHEL, что называется, из первых рук?

На протяжении последующих 6 лет в противостоянии Red Hat и Oracle сохранялся паритет. Теперь же, когда столь сильный конкурент сошел с дистанции, дальнейший вектор развития Oracle Linux становится непредсказуем. Можно с уверенностью утверждать, что ближайшие 46 лет политика компании в отношении лицензирования операционной системы останется неизменной: сейчас для Oracle куда важнее расширить инсталляционную базу за счет бывших пользователей CentOS, нежели получить сиюминутную прибыль. В отсутствие же сильного конкурента корпорация может начать, по примеру Red Hat, обкатывать обновления на пользователях бесплатной версии ОС. Подобный сценарий вполне реален, если только в ближайшие годы на рынке не появится достойная альтернатива.

3. AlmaLinux



И таковой вполне может оказаться AlmaLinux. Появление данного проекта стало ответной реакцией CloudLinux на преждевременное прекращение поддержки CentOS 8. Компания планирует выделять на разработку операционной системы по 1 миллиону долларов в год из собственных доходов.

AlmaLinux следует базовым принципам CentOS: дистрибутив формируется путем пересборки пакетной базы RHEL, сохраняя бинарную совместимость с оригинальной операционной системой, что позволяет пользователям CentOS 8 легко и безболезненно перевести IT-инфраструктуру на новые рельсы. В дальнейшем развивать проект планируется с привлечением сообщества, при этом будет использоваться модель управления, аналогичная той, что применяется при разработке Fedora. Для этих целей создана отдельная некоммерческая организация AlmaLinux OS Foundation.

Первый стабильный выпуск AlmaLinux увидел свет 30 марта этого года. Дистрибутив бесплатен для всех категорий пользователей, включая корпоративных. В настоящее время для загрузки доступны сборки для архитектуры x86_64, однако в скором времени разработчики обещают подготовить ARM-версии операционной системы. Дистрибутив полностью идентичен по функциональности с RHEL 8.3, которая лежит в его основе, за исключением отсутствия ряда специфических для Red Hat Enterprise Linux пакетов (например, redhat-*, insights-client и subscription-manager-migration*). CloudLinux обещает поддерживать текущую версию AlmaLinux до 2029 года. Как и в случае с Oracle Linux, для простой и прозрачной миграции с CentOS 8 разработчики операционной системы подготовили удобный автоматизированный скрипт.

Если рассуждать о перспективах данного проектах, то AlmaLinux имеет неплохие шансы занять вакантное место CentOS, благо команда CloudLinux, насчитывающая на сегодняшний день более сотни IT-специалистов, обладает вполне достаточным опытом разработки и сопровождения RH-based проектов, ведь флагманский продукт компании основан на пакетной базе RHEL. Ребята уже наглядно продемонстрировали, на что способны, представив первый стабильный билд операционной системы спустя всего 4 месяца после анонса, и если так пойдет и дальше, они вполне смогут составить достойную конкуренцию Oracle.

4. Rocky Linux



В нашем списке Rocky Linux является наиболее неоднозначным кандидатом на замену CentOS. Хотя бы потому, что сам по себе продукт все еще не добрался до релиза, а значит и судить о его перспективности можно лишь опираясь на факты, известные о самих авторах инициативы и их партнерах. С первого взгляда все выглядит достаточно вкусно:

  • Разработку Rocky Linux возглавляет компания Ctrl IQ стартап основателя CentOS Грегори Курцера;
  • Компания заручилась поддержкой инвесторов в лице венчурного фонда IAG Capital Partners и одного из крупнейших поставщиков гипермасштабируемых систем хранения данных OpenDrives, по итогам переговоров с которыми на разработку операционной системы удалось привлечь $4 млн;
  • В число ключевых спонсоров проекта входят корпорация Amazon, предоставившая команде Ctrl IQ необходимые для разработки и сборки дистрибутива вычислительные мощности в облаке AWS, и MontaVista Software, имеющая более, чем 20-летний опыт разработки программного обеспечения с открытым исходным кодом, ориентированного на нужды корпоративных клиентов.

Rocky Linux позиционируется, как полностью бесплатная RH-based операционная система, демонстрирующая уровень стабильности enterprise-класса и пригодная для использования в рабочих проектах. Согласно заявлению Курцера, новый дистрибутив, основанный на исходном коде RHEL, продолжит традиции оригинального CentOS, а его разработка останется полностью прозрачна для сообщества, которое и будет определять генеральный вектор развития проекта. При этом Ctrl IQ не рассматривает Rocky Linux в качестве источника дохода. Компания планирует зарабатывать на предоставлении корпоративным заказчикам инфраструктуры для высокопроизводительных вычислений под ключ, направляя часть вырученных средств на базовые расходы по разработке и юридической поддержке проекта.

Rocky Linux находится лишь в начале своего пути, поэтому говорить о надежности новой операционной системы пока еще рано. Как рано рассуждать и о том, насколько конкурентоспособным окажется бизнес Ctrl IQ, ведь из четырех компонентов технологического стека HPC в настоящее время можно пощупать лишь Warewulf набор инструментов для управления высокопроизводительными кластерами Linux. Впрочем, ждать осталось совсем недолго: выход первого релиз-кандидата Rocky Linux запланирован на 30 апреля 2021 года.


Время для принятия взвешенного решения все еще есть. Даже если вы используете CentOS 8, оставшиеся месяцы вполне достаточный срок для того, чтобы определиться с выбором дистрибутива и спланировать стратегию миграции IT-инфраструктуры на новую платформу. Те же, кто остался на CentOS 7, имеют отличную возможность оценить, на что в действительности способны команды разработчиков AlmaLinux и Rocky Linux и сделать осознанный выбор в пользу той или иной операционной системы, опираясь не на обещания, а на реальные кейсы.

Если же перечень используемого вами программного обеспечения ограничивается стандартными пакетами, входящими в состав практически каждого дистрибутива Linux, возможно есть смысл рассмотреть и иные альтернативы, например разрабатываемую сообществом Debian или Ubuntu, успешно развиваемую частной британской компанией Canonical на протяжении вот уже 16 лет и, на сегодняшний день являющуюся самой популярной UNIX-подобной операционной системой.



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

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Первое поколение компьютеров от Древнего Рима до Второй Мировой

05.05.2021 10:13:29 | Автор: admin


Лень двигатель прогресса. Стремление человечества хотя бы частично автоматизировать свою деятельность всегда выливалось в различные изобретения. Математические вычисления и подсчеты также не избежали научного прогресса. Ещё в Древнем Риме местные таксисты использовали аналог современного таксометра механическое устройство, которое определяло стоимость поездки в зависимости от длины маршрута. Время шло, и к середине прошлого века эволюция вычислительных систем привела к появлению нового типа устройств компьютеров. Тогда, конечно, их так никто не называл. Для этого использовался другой термин ЭВМ (электронно-вычислительная машина). Но время и прогресс стерли границы между этими определениями. Так как же прогресс дошел до первых ЭВМ и как они работали?

История развития


Арифмометр


Одно из главных событий в истории развития вычислительных систем является изобретение арифмометра. Арифмометр это механическая вычислительная машина, предназначенная для выполнения алгебраических операций. Первая схема такого устройства датируется 1500 годом за авторством Леонардо да Винчи. Вокруг его схемы в 60-х годах 20 века возникло много споров. Доктор Роберто Гуателли, работавший в IBM с 1951 года по проекту воссоздания машин Леонардо да Винчи, в 1968 году создал копию счетной машины по эскизам 16-го века.

Данная машина представляла собой 13-разрядную суммирующую машину.

В следующем году вокруг этой машины начали появляться различные возражения, а именно по поводу её механизма. Существовало мнение о том, что машина да Винчи представляет собой механизм пропорционирования, а не счетную машину. Также возникал вопрос и о её работе: по идее, 1 оборот первой оси вызывает 10 оборотов второй, 100 оборотов третьей и 10 в степени n оборотов n-ной оси. Работа такого механизма не могла осуществляться из-за огромной силы трения. По итогу голоса сторонников и противников счетной машины Леонардо да Винчи разделились, но, тем не менее, IBM решила убрать эту модель из коллекции

Но, оставим наработки Леонардо Да Винчи. Расцвет арифмометров пришелся на 17 век. Первой построенной моделью стал арифмометр Вильгельма Шиккарда в 1623 году. Его машина была 6-разрядной и состояла из 3 блоков множительного устройства, блока сложения-вычитания и блока записи промежуточных результатов.


Копия арифмометра Шиккарда

Также 17 век отметился ещё несколькими арифмометрами: паскалина за авторством Блеза Паскаля, арифмометр Лейбница и машина Сэмюэля Морленда. В промышленных масштабах арифмометры начали производиться в начале 19 века, а распространены были практически до конца 20-го.

Аналитическая и разностная машины Бэббиджа


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

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


Книга Иоганна Мюллера

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

В 1822 году Бэббидж построил модель разностной машины и заручился государственной поддержкой в размере 1500 фунтов стерлингов. Он планировал, что закончит машину в течение 3 лет, но по итогу работа была не завершена и через 9 лет. За это время он получил ещё 15500 фунтов стерлингов в виде субсидий от государства. Но всё же часть машины функционировала и производила довольно точные (>18 знаков после запятой) расчеты.


Созданная на основе работ Бэббиджа разностная машина

Во время работы над разностной машиной у Чарльза Бэббиджа возникла идея о создании аналитической машины универсальной вычислительной машины. Её называют прообразом современного цифрового компьютера, и не зря. Она состояла из арифметического устройства (мельницы), памяти (склада) и устройства ввода-вывода, реализованного с помощью перфокарт различного типа. К сожалению, данная идея осталась лишь на бумаге.


Схема аналитической машины Бэббиджа

Табулятор


История электромеханических машин начинается в 1888 году, когда американский инженер Герман Холлерит, основатель компании CTR (будущая IBM), изобрел электромеханическую счетную машину табулятор, который мог считывать и сортировать данные, закодированные на перфокартах. В аппарате использовались электромагнитные реле, известные еще с 1831 года и до Холлерита не применявшиеся в счетной технике. Управление механическими счетчиками и сортировкой осуществлялось электрическими импульсами, возникающими при замыкании электрической цепи при наличии отверстия в перфокарте. Импульсы использовались и для ввода чисел, и для управления работой машины. Поэтому табулятор Холлерита можно считать первой счетной электромеханической машиной с программным управлением. Машину полностью построили в 1890 году и использовали при переписи населения США в том же году. Впоследствии табуляторы использовались вплоть до 1960-х 1970-х годов в бухгалтерии, учете, обработке данных переписей и подобных работах. И даже если в учреждении имелась полноценная ЭВМ, табуляторы все равно использовали, чтобы не нагружать ЭВМ мелкими задачами.


Табулятор IBM

Электромеханические машины времен ВМВ


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

В 1937 году Клод Шеннон в своей работе A Symbolic Analysis of Relay and Switching Circuits показал, что электронные связи и переключатели могут представлять выражения булевой алгебры. Машины тех лет можно условно на два типа: электромеханические (основанные на электромагнитных переключателях) и электронные (полностью на электровакуумных лампах). К первым относились американский Harvard Mark I и компьютеры немецкого инженера Конрада Цузе.

Mark I


Работа над Mark I началась в 1939 году в Endicott laboratories по субподрядному договору с IBM. В качестве основы использовались наработки Чарльза Бэббиджа. Компьютер последовательно считывал инструкции с перфоленты, условного перехода не было, циклы организовывались в виде склеенных в кольцо кусков перфоленты. Принцип разделения данных и инструкций в Mark I получил известность как Гарвардская архитектура. Машину закончили в 1944 году и передали в ВМФ США. Характеристики:

  • 765 тысяч деталей (электромеханических реле, переключателей и т. п.)
  • Длина 17 м, высота 2.5 м, вес 4.5 тонн
  • Потребляемая мощность 4 кВт
  • Объем памяти 72 числа, состоящих из 23 разрядов (память на десятичных цифровых колесах)
  • Вычислительная мощность 3 операции сложения и вычитания в секунду, 1 операция умножения в 6 секунд, 1 операция деления в 15.3 секунды, логарифм и тригонометрические операции требовали больше минуты.


Mark 1

Z3-Z4


В 1936 немецкий инженер Конрад Цузе начал работу над своим первым вычислителем Z1. Первые две модели из серии Z были демонстративными. Следующий же компьютер, Z3, который закончили в 1941, имел практическое применение: с его помощью делали аэродинамические расчеты (стреловидные крылья самолетов, управляемые ракеты). Машина была выполнена на основе телефонных реле. Инструкции считывались с перфорированной пленки. Так же, как в Mark I, отсутствовали инструкции условного перехода, а циклы реализовывались закольцованной перфолентой. Z3 имел некоторые преимущества перед своими будущими собратьями (ENIAC, Mark I): вычисления производились в двоичной системе, устройство позволяло оперировать числами с плавающей точкой. Так как Цузе изначально исходил из гражданских интересов, его компьютеры более близки к современным, чем тогдашние аналоги. В 1944 году практически был завершен Z4, в котором уже присутствовали инструкции условного перехода. Характеристики Z3:

  • Арифметическое устройство: с плавающей точкой, 22 бита, +, , , /, квадратный корень.
  • Тактовая частота: 5,3 Гц.
  • Средняя скорость вычисления: операция сложения 0,8 секунды; умножения 3 секунды.
  • Хранение программ: внешний считыватель перфоленты.
  • Память: 64 слова с длиной в 22 бита.
  • Ввод: десятичные числа с плавающей запятой.
  • Вывод: десятичные числа с плавающей запятой.
  • Элементов: 2600 реле 600 в арифметическом устройстве и 2000 в устройстве памяти. Мультиплексор для выбора адресов памяти.
  • Потребление энергии: 4 кВт.
  • Масса: 1000 кг.

При постройке Z4 Цузе просил финансирование на замену электромагнитных реле полностью электронными схемами (лампами), но ему отказали. У электромеханических машин имелось два существенных недостатка низкое быстродействие и ограниченная износостойкость контактов (не более 10 млн переключений или 120 суток непрерывной работе при 1 переключении в секунду). Дальнейшая история показала, что перспективный путь это использование электровакуумных ламп.


Z3

Первые ламповые компьютеры


Однозначно определить первый в мире компьютер сложно. Многими учеными определение первого поколения основывается на вычислительной базе из электронных ламп. При этом первое поколение компьютеров разрабатывалось во время Второй мировой войны. Возможно, созданные в то время компьютеры засекречены и по сей день. В целом выделяют два возможных первенца ENIAC и Colossus

ENIAC


Electronic Numerical Integrator and Computer (Электронный числовой интегратор и вычислитель) или ENIAC создавался по заказу от армии США для расчета баллистических таблиц. Изначально, подобные расчеты производились людьми и их скорость не могла соотноситься с масштабом военных действий. Построен компьютер был лишь к осени 1945 года.

Характеристики ENIAC:

  • Вес 30 тонн.
  • Объем памяти 20 число-слов.
  • Потребляемая мощность 174 кВт.
  • Количество электронных ламп 17 468
  • Вычислительная мощность 357 операций умножения или 5000 операций сложения в секунду.
  • Тактовая частота 100 кГц
  • Устройство ввода-вывода данных табулятор перфокарт компании IBM: 125 карт/минуту на ввод, 100 карт/минуту на вывод.


Colossus


Colossus в отличие от ENIAC был очень узконаправленной машиной. Он создавался исключительно с одной целью декодирование немецких сообщений, зашифрованных с помощью Lorenz SZ. Эта машина было схожа с немецкой Enigma, но состояла из большего числа роторов. Для декодирования этих сообщений было решено создать Colossus. Он включал в себя 1500 электронных ламп, потреблял 8,5 КВт и обладал тактовой частотой в 5.8 МГц. Такое значение частоты достигалось за счет того, что Colossus был создан для решения только одной задачи и применяться в других областях не мог. К концу войны на вооружении Британии стояло 10 таких машин. После войны все они были уничтожены, а данные о них засекречены. Только в 2000 году эта информация была рассекречена.


Реконструированная модель Colossus

Принцип работы


Вакуумные лампы


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


Радиолампа и схема триггера на двух триодах

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

Запоминающее устройство


На первых порах развития ЭВМ использовались разные подходы к созданию запоминающих устройств. Помимо памяти на триггерах из радиоламп и на электромагнитных реле (как в Z3) имелись следующие виды:

  • Память на магнитных барабанах
  • Память на электронно-лучевых трубках
  • Память на линиях задержки

Линии задержки


Основная идея линий задержки возникла в ходе разработки радаров во время Второй мировой войны. В первых ЭВМ в качестве линий использовались трубки с ртутью (у нее очень низкое затухание ультразвуковых волн), на концах которой располагались передающий и принимающий пьезокристаллы. Информация подавалась с помощью импульсов, модулированных высокочастотным сигналом. Импульсы распространялись в ртути. Информационная емкость трубки в битах равнялась максимальному количеству одновременно передаваемых импульсов. Единица кодировалось присутствием импульса на определенном месте, ноль отсутствием импульса. Приемный пьезокристалл передавал импульс на передающий информация циркулировала по кругу. Для записи вместо регенерации импульсов вводились записываемые. Такой вид памяти использовался в компьютерах EDVAC, EDSAC и UNIVAC I.


Запоминающее устройство на ртутных акустических линиях задержки в UNIVAC I

Запоминающие электронно-лучевые трубки (трубки Уильямса)


При попадании электронного луча на точку на люминофорном экране происходит вторичная эмиссия и участок люминофора приобретает положительный заряд. Благодаря сопротивлению люминофорного слоя, точка долю секунды держится на экране. Однако, если не отключать луч сразу, а сдвинуть его в сторону от точки, рисуя тире, то электроны, испущенные во время эмиссии, поглощаются точкой, и та приобретает нейтральный заряд. Таким образом, если выделить N точек, то можно записать N бит информации (1 нейтральный заряд, 0 положительный заряд). Для считывания информации используется доска с электродами, прикрепленная к внешней стороне экрана. Электронный луч снова направляется в точку, и та приобретает положительный заряд независимо от изначального. С помощью электрода можно определить величину изначального заряда (значение бита), однако информация уничтожается (после каждого считывания нужна перезапись). Так как люминофор быстро теряет заряд, необходимо постоянно считывать и записывать информацию. Такой вид памяти использовался в Манчестерском Марк I и Ferranti Mark1; американских IBM 701 и 702


Трубка Уильямса

Магнитные барабаны


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


Архитектура фон Неймана


Архитектура фон Неймана строилась на следующих принципах:

  • Принцип двоичности:

Информация в компьютере представляется в виде двоичного кода.

  • Принцип программного управления:

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

  • Принцип однородности памяти:

Программы и данные хранятся вместе в памяти компьютера.

  • Принцип адресуемости памяти:

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

  • Принцип условного перехода:

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

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

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

Гарвардская архитектура


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

Гарвардская архитектура

Языки


В самых первых компьютерах программы считывались с перфоленты (как в Z3 и Mark I). Устройство чтения перфоленты предоставляло управляющему устройство код операции для каждой инструкции и адреса памяти. Затем управляющее устройство все это декодировало, посылало управляющие сигналы вычислительному блоку и памяти. Набор инструкций жестко задавался в схеме, каждая машинная инструкция (сложение, сдвиг, копирование) реализовывалась непосредственно в схеме. В ENIAC для изменения программы его нужно было перекоммутировать заново, на что уходило значительное время. Машинные коды считают первым поколением языков программирования.


Перфорированная лента с программой вычислений

Первые программисты всегда имели при себе блокнот, в который они записывали наиболее употребляемые подпрограммы независимые фрагменты программы, вызываемые из главной подпрограммы, например извлечение корня или вывод символа на дисплей. Проблема состояла в том, что адреса расположения переменных и команд менялись в зависимости от размещения в главной программе. Для решения этой проблемы кембриджские программисты разработали набор унифицированных подпрограмм (библиотеку), которая автоматически настраивали и размещали подпрограммы в памяти. Морис Уилкс, один из разработчиков EDSAC (первого практически реализованного компьютера с хранимой в памяти программой), назвал библиотеку подпрограмм собирающей системой (assembly system). Теперь не нужно было собирать программу вручную из машинных кодов, специальная программа (ассемблер) автоматически собирала программу. Первые ассемблеры спроектированы Кэтлин Бут в 1947 под ARC2 и Дэвидом Уилером в 1948 под EDSAC. При этом сам язык (мнемоники) называли просто множеством базовых команд или начальными командами. Использовать слово ассемблер для процесса объединения полей в командное слово начали в поздних отчетах по EDSAC. Ассемблер можно назвать вторым поколением языков.


Начальные команды для EDSAC

Компьютеры первого поколения в СССР


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

МЭСМ и БЭСМ


В 1948 году основоположник советской вычислительной техники С.А. Лебедев направил в Академию наук СССР докладную записку: в ней сообщалось о необходимости создания ЭВМ для практического использования и научного прогресса. Для разработки этой машины под Киевом, в Феофании институту отвели здание, ранее принадлежавшее монастырю. Через 2 года МЭСМ (малая электронная счетная машина) произвела первые вычисление нахождение корней дифференциального уравнения. В 1951 году инспекция из академии наук приняла работу Лебедева. МЭСМ имела сложную трехадресную систему команд и следующие характеристики:

  • Тактовая частота 5 КГц
  • Быстродействие 3000 операций в минуту
  • 6000 вакуумных ламп
  • Потребляемая мощность 25 КВт
  • Площадь 60 кв.м
  • Ввод данных: перфокарты или магнитная лента
  • Память на триггерных ячейках


МЭСМ

В 1950 году Лебедева перевели в Москву. Там он начал работать над БЭСМ-1 и к 1953 году построил опытный образец, отличавшийся отличной производительностью. Характеристики были следующими:

  • Быстродействие до 10000 операций в минуту
  • 5000 вакуумных ламп
  • Потребляемая мощность 35 КВт
  • Площадь 1000 кв.м

БЭСМ-1 получилась ЭВМ широкого профиля. Её планировали предоставлять ученым и инженерам для проведения различных работ.


Серия М и Стрела


В тоже время в Москве велась работа над М-1. М-1 была намного менее мощной, чем МЭСМ, но при этом занимала намного меньше места и тратила меньше энергии. Характеристики М-1:

  • 730 вакуумных ламп
  • Быстродействие 15-20 операций в секунду
  • Потребляемая мощность 8 КВт
  • Площадь 4 кв.м
  • Память электронно-лучевых трубках


М-1

В 1952 году на свет выпустили М-2. Её мощность увеличилась практически в 100 раз, при этом количество ламп увеличилось только вдвое. Подобный результат получился благодаря использованию управляющих полупроводниковых диодов. Характеристики М-2 были следующие:

  • 1676 вакуумных ламп
  • Быстродействие 2000-3000 операций в секунду
  • Потребляемая мощность 29 КВт
  • Площадь 22 кв.м
  • Память электронно-лучевых трубках


М-2

В массовое производство первой попала Стрела. Всего было произведено 7 штук. Характеристики Стрелы были следующие:

  • 6200 вакуумных ламп и 60 тыс. диодов.
  • Быстродействие 2000 операций в секунду
  • Потребляемая мощность 150 КВт
  • Площадь 300 кв.м
  • Память электронно-лучевых трубках


Стрела

Во многих смыслах Стрела была хуже М-2. Она выполняла всё те же 2 тысячи операций в секунду, но при этом занимала на порядок больше места и тратила в несколько раз больше электричества. М-2 не попала в массовое производство, поскольку её создатели не уложились в срок. М-1 не обладала хорошей производительностью и к моменту, когда М-2 была доведена до ума, Стрела была отдана в производство.

Следующий потомок серии М М-3 вышел в 1956 году и был в каком-то смысле урезанным вариантом. Она выполняла порядка 30 операций в секунду, но при этом занимала мало места, благодаря чему пошла в серийное производство. Характеристики М-3 были следующие:

  • 774 вакуумных ламп
  • Быстродействие 30 операций в секунду
  • Потребляемая мощность 10 КВт
  • Площадь 3 кв.м


Эпилог


Без технологического рывка, сделанного в 40-е годы, и четко сформированного вектора развития вычислительной техники, возможно, сегодня мы бы и не сидели в компьютерах и телефонах, читая статейки на хабре. Как показал опыт разных ученых, порой уникальные и революционные для своего времени образцы вычислительной техники не были востребованы как государством, так и обществом (например, машины серии Z Конрада Цузе). Переход ко второму поколению компьютеров во многом определился сменой вакуумных ламп на транзисторы и изобретением накопителей на ферритовых сердечниках. Но это уже другая история



Облачные серверы от Маклауд быстрые и надежные. Без древнего железа.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Снупп Догг и Голодные игры кто спасает книжную индустрию в период пандемии

09.05.2021 10:20:54 | Автор: admin
image

Когда прошлой весной по всей Америке закрылись книжные магазины, глава издательства Chronicle Books Тирелл Махони готовилась, что вот-вот наступит полная катастрофа: доходы компании стремительно падали. А спустя несколько месяцев выяснилось, что от разорения компанию спас не кто иной, как рэпер Снупп Догг со своей поваренной книгой From Crook to Cook, изданной еще два года назад. В 2020 году продажи книги подскочили в два раза до 205 000 экземпляров. Не новинки, а именно такие книги внезапно взяли на себя роль драйвера прибыли и в итоге дали книжной индустрии шанс выжить.


Несмотря на, казалось бы, непреодолимые препятствия, вставшие в прошлом году между читателями и книжными магазинами (включая локдаун, отмену встреч и мероприятий, перенос дат публикаций и т.д.), люди продолжали покупать книги. Походы в кино, спорт, театр всё исчезло, и чтение вдруг оказалось идеальным развлечением для человека в изоляции.
Но повезло далеко не всей индустрии. Пандемия изменила сам механизм поиска книг: читатели стали иначе искать и выбирать литературу. В выигрыше оказались книги популярных и уже известных авторов, в то время как новым именам, наоборот, пришлось очень нелегко. По признанию Махони, из двухсот с лишним новых изданий, выпущенных в 2020 году, многие так и не нашли своего читателя и, вероятно, уже никогда не найдут. По большей части, это книги начинающих или не широко известных авторов.
image

Вопрос теперь в том, насколько фундаментальными оказались эти изменения и останутся ли они с нами навсегда? Процесс покупки стал принципиально другим: поскольку теперь читатели приобретали книги в основном через интернет, выросла доля продаж Amazon и таких розничных сетей, как Target и Walmart. Конечно, миграция потребителей в онлайн шла и до этого, но то, как она ускорилась в период пандемии, может оказать на читательскую культуру глубокое влияние. В отличие от случайных открытий, которые покупатель делает находясь среди книжных полок офлайн-магазина, в интернете люди ищут литературу целенаправленно: по автору, по теме, ограничивая количество выбора. Часто они видят то, что подсовывает поисковая система или алгоритм, или же ориентируются на те позиции, которые продвигает сам магазин.
Отсюда и ситуация, в которой продавцы фокусируются на известных авторах, а покупатели на популярных изданиях. Самой продаваемой художественной книгой на Amazon в прошлом году стал роман Делии Оуэнс Там, где раки поют, вышедший еще в 2018 г. Также в топе оказались произведения Сьюзен Коллинз (автора Голодных игр) и Джеффа Кинни (Дневник Слабака). В целом, по данным NPD BookScan, девять из десяти бестселлеров книги уже хорошо знакомых читателям авторов. И, с другой стороны, около 98% книг, вышедших в 2020 г., продались тиражом менее 5000 экземпляров.
В онлайн-торговле мы продаем очень предсказуемые товары. Разумеется, в этом нет ничего плохого, но в конечном итоге именно книжные магазины были тем местом, которое помогало раскрываться новым талантам, Джеймс Даунт, сеть Barnes&Nobles.

Как оказалось, офлайн-магазины это критически важная часть литературной экосистемы, которая очень пострадала в период локдауна. Согласно данным Бюро переписи населения США, их продажи упали на 30%, а, как признается руководитель Ассоциации книжной торговли США Эллисон Хилл, большинство магазинов в прошлом году денег не заработали. Поэтому издатели теперь стали беспокоиться о долгосрочных перспективах существования книжных магазинов. Так, в качестве меры поддержки издательство Penguin Random House начнет предоставлять независимым книжным магазинам дополнительный месяц отсрочки по платежам.

В целом же, за пандемийный год рынок книготорговли показал небывалый за последние 10 лет рост: доходы издателей США выросли на 10% до $8,6 млрд.

  • Огромным спросом стал пользоваться нон-фикшн: книги о политике, расе и расизме, литература по домашнему хозяйству и приготовлению еды. Детский нон-фикшн вырос и вовсе на 23%.
  • Взрыв популярности пережила платформа Audible принадлежащий Amazon сервис дистрибуции аудиокниг: количество прослушиваний выросло на 500 миллионов часов (20%-ый рост).
  • Количество книг, которые пользователи сервиса Goodreads отметили как завершенные (прочитанные) в период с апреля по декабрь 2020 г. увеличилось на 40% по сравнению с аналогичным периодом годом ранее.
  • За первый квартал 2021 г. продажи печатной литературы достигли максимума с 2004 г.


Многие в индустрии задаются вопросом: может ли пандемия стать фактором постоянного бурного роста, как раньше произошло с феноменом книг о Гарри Поттере, которые привлекли многомиллионную читательскую аудиторию. А кто-то, напротив, ожидает скорого и неизбежного спада по мере того, как уставшие от локдауна люди вернутся на концерты, пляжи, спортивные площадки и в театры
image
Прошедший год для индустрии стал годом переоценки и переосмысления методов работы с талантами и читателями. Одним из новых форматов работы с аудиторией стал переход в онлайн встреч с авторами: традиционные мероприятия, выступления и автограф-сессии были перенесены из конференц-центров в Zoom. И это, в свою очередь, это уничтожило значительную часть дохода книжных магазинов. По словам совладелицы аризонской сети книжных магазинов Гейл Шенкс, если после офлайн-встреч автора с читателями продажи книги достигали 1000 экземпляров, то онлайн-формат приносит 150 продаж как максимум, а обычно и вообще около десятка. Альтернативой стали сделки с издателями, которые платили книжному магазину за организацию zoom-сессий с авторами, но и в этом случае речь шла о суммах в 200 500 долларов, что аналогично доходу от 20 50 книг. Да и сами онлайн-встречи, по мере того как пандемия продолжалась, становились все менее и менее эффективными сказывалась усталость от Zoom. Конечно, определенный всплеск продаж в период локдауна обеспечили онлайн-заказы, однако в независимых книжных он не был революционно высоким, да и сами офлайн-магазины не были готовы к перестройке бизнеса под интернет-торговлю. В конечном итоге их выручка все равно существенно снизилась.

Сдвиг продаж книг в онлайн привел к падению продаж новинок. Если 10 лет назад на них приходилась половина от объема проданных изданий, то в 2020 году лишь треть.
Среди 50 самых продаваемых книг на Amazon только 17 изданы в 2020 г., из которых десять изданий мемуары и публицистика: биографии Обамы, Трампа, Черчилля, Мэтью Макконахи, поваренные книги и т.д. Среди старых книг, чью популярность у читателей новинкам не удалось обойти, уже упомянутый роман Делии Оуэнс (2018), триллер Безмолвный пациент (2019) Алекса Михаэлидиса, экранизированный роман Селесты Энг И повсюду тлеют пожары (2017) и т.д., а также биографии знаменитостей, развивающая и детская литература, изданная в 1990-2010-ых гг.
Президент HarperCollins Брайан Мюррей считает, что в пандемию люди решили прочитать то, что давно хотели, но откладывали. Из-за этого целый ряд ожидаемых новинок, обещавших стать прорывными бестселлерами, так и не смог найти массового читателя, как это случилось с романами Enter the Aardvark Джессики Энтони, Under the Rainbow Селии Ласки и August Каллана Винка. Еще один пример роман Хилари Лейхтер Temporary, номинированный на множество литературных премий и, по отзывам критиков, одна из лучших книг года. Отмена пресс-туров и читательских конференций привела к тому, что в итоге Temporary продалась скромным тиражом в несколько тысяч. Впрочем, автор довольна и этим: На самом деле мне сильно повезло, что люди вообще нашли эту книгу.

Даже сейчас ситуация с продажами книг далека от стабильности. Согласно недавнему исследованию, вопреки широкому распространению цифровых изданий, бумажные книги по-прежнему опережают по объему продаж электронные. Так, в США в 2020 г. печатные книги приобрели 45% населения, в то время как электронные всего лишь 23%. Еще более высокий разрыв в европейских странах. К примеру, в Германии 58% респондентов покупали бумажные книги, а электронные лишь 10,4%.




Облачные серверы от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru