Стандарт JDF простыми словами

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

Организация CIP4, или The International Cooperation for the Integration of Processes in Prepress, Press, and Postpress Organization, является некоммерческой организацией, занимающейся разработкой и поддержкой стандартов для автоматизации и интеграции процессов в печатной индустрии. Организация разработала стандарт JDF с которым можно ознакомиться на сайте cip4.org. Давайте подробнее рассмотрим историю, цели, сегодняшнее состояние, а также успехи и неудачи CIP4 и стандарта JDF.

История CIP4

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

Цели CIP4

  • Стандартизация: Целью CIP4 было создать единый стандарт (как JDF) для описания и управления заданиями и производственными процессами в печатной индустрии.

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

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

Сегодняшнее состояние CIP4

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

Успехи внедрения JDF

  • Увеличение эффективности: Внедрение стандарта JDF помогло многим компаниям в печатной индустрии повысить эффективность и скорость выполнения заказов. Автоматизация процессов снизила человеческие ошибки и уменьшила время на обработку заказов.

  • Улучшение качества: JDF помогает точнее контролировать производственные процессы, что в свою очередь способствует повышению качества продукции.

  • Интеграция: Стандарт JDF позволил разным системам, используемым в печатной индустрии, лучше взаимодействовать между собой, что облегчило интеграцию и обмен данными.

Проблемы

  • Сложность внедрения: Для некоторых компаний внедрение стандарта JDF может быть сложным и затратным процессом. Это требует изменений в производственных процессах и интеграции существующих систем.

  • Неоднородность: Не все компании в индустрии печати приняли JDF как стандарт, что создает проблемы при обмене информацией между разными участниками рынка.

  • Быстрые изменения: Печатная индустрия постоянно меняется, и некоторые аспекты стандарта JDF могут устаревать быстро, требуя постоянных обновлений и адаптаций.

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

Что такое JDF?

JDF - это XML-базированный стандарт, разработанный CIP4, который описывает задания и процессы в печатной индустрии. XML (eXtensible Markup Language) - это специальный язык разметки, который компьютеры понимают и который позволяет структурировать и описывать данные.

Пример процесса с JDF

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

Преимущества JDF

  1. Согласованность: JDF обеспечивает единый стандарт для обмена информацией между разными системами и устройствами.

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

  3. Гибкость: JDF позволяет описать разнообразные задания и требования, что делает его подходящим для разных видов печати и производственных процессов.

  4. Снижение ошибок: Опираясь на точное описание в JDF, снижается вероятность ошибок и несоответствий.

  5. Учет и отслеживание: JDF позволяет точно учесть выполнение каждого этапа задания и отслеживать статус производства.

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

Структура JDF

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

Пример простого JDF-документа:

 <JDF xmlns="http://www.CIP4.org/JDFSchema_1_1" Type="Product" ID="ID_12345" Status="Waiting">
  <AuditPool>
    <Created AgentName="John" TimeStamp="2023-07-11T10:00:00"/>
  </AuditPool>
  <ResourcePool>
    <Media ID="Media_1" Class="Consumable" Status="Available"/>
    <Component ID="Component_1" Class="Quantity" Status="Unavailable" Amount="500"/>
  </ResourcePool>
  <ProcessGroup ID="ProcessGroup_1">
    <ProcessRun ID="ProcessRun_1" Status="InProgress"/>
  </ProcessGroup>
</JDF>

Основные элементы JDF:

  1. JDF: Это корневой элемент документа, который содержит всю информацию о задании.

  2. AuditPool: Содержит информацию о событиях, произошедших с заданием, таких как создание, изменение и т.д.

  3. ResourcePool: Содержит описание ресурсов, используемых в производстве, таких как материалы, оборудование и т.д.

  4. ProcessGroup: Определяет группы процессов, которые выполняются над заданием.

  5. ProcessRun: Описывает конкретный процесс или шаг, который выполняется над заданием.

Рассмотрим подробнее элементы формата

AuditPool - это один из элементов в формате JDF, предназначенный для хранения информации о событиях, связанных с заданием (заказом), чтобы обеспечить прозрачность и отслеживаемость в производственных процессах. AuditPool может содержать записи о событиях, таких как создание задания, изменения в задании, временные метки и информацию о том, кто выполнял эти действия.

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

Примеры событий, которые могут быть записаны в AuditPool:

  1. Создание задания: Когда задание (например, заказ на печать) создается, в AuditPool добавляется запись о том, кто и когда создал это задание.

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

  3. Завершение этапов производства: Когда заказ проходит разные этапы производства, такие как печать, ламинирование, фальцевание и другие, в AuditPool можно добавить записи о завершении каждого этапа. Например, "Этап печати завершен 2023-07-15".

  4. Изменение статуса задания: Если статус задания меняется (например, из "В обработке" в "Завершено"), такое событие также может быть записано в AuditPool.

Пример XML-структуры AuditPool в JDF:

<AuditPool>
  <Created AgentName="John" TimeStamp="2023-07-11T10:00:00"/>
  <Modified AgentName="Jane" TimeStamp="2023-07-12T15:30:00"/>
  <ProcessStatus Status="InProgress" TimeStamp="2023-07-13T08:45:00"/>
  <!-- Другие записи о событиях... -->
</AuditPool>

Поле AgentName в AuditPool обозначает агента, который выполнил определенное действие или событие. Этот агент может быть как человеком (оператором или работником), так и оборудованием (принтером, машиной и т. д.), или даже программным обеспечением.

Примеры:

  1. Если задание было создано сотрудником типографии, то в поле AgentName может быть указано имя этого сотрудника, например, "John".

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

  3. Если было внесено изменение в заказ через интернет-портал, AgentName может содержать информацию о клиенте, который сделал это изменение.

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

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

Давайте рассмотрим более подробно, как работает ResourcePool с примерами:

Примеры ресурсов, которые можно описать в ResourcePool:

  1. Материалы: Это могут быть бумага, краска, клей, фольга и другие материалы, которые используются в производстве. Пример:

<ResourcePool>
  <Media ID="Paper_1" Class="Consumable" Status="Available">
    <!-- Описание бумаги: размер, тип, количество и т. д. -->
  </Media>
  <Ink ID="Ink_1" Class="Consumable" Status="Low">
    <!-- Описание чернил: цвет, объем и т. д. -->
  </Ink>
</ResourcePool>

Оборудование: Это могут быть принтеры, плоттеры, машины для ламинирования, режущие станки и другое оборудование, используемое в производстве. Пример:

<ResourcePool>
  <Device ID="Printer_1" Class="OutputDevice" Status="Available">
    <!-- Описание принтера: модель, скорость, состояние и т. д. -->
  </Device>
  <Machine ID="Cutter_1" Class="FinishingDevice" Status="Idle">
    <!-- Описание режущей машины: тип, настройки и т. д. -->
  </Machine>
</ResourcePool>

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

<ResourcePool>
  <Employee ID="Operator_1" Class="Labor" Status="Available">
    <!-- Информация о сотруднике: имя, квалификация и т. д. -->
  </Employee>
  <Technician ID="Technician_1" Class="Labor" Status="OnBreak">
    <!-- Информация о технике: имя, квалификация и статус -->
  </Technician>
</ResourcePool>

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

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

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

Добавление пользовательских атрибутов: Вы можете добавить свои собственные атрибуты к ресурсам в ResourcePool. Например, если вам нужно добавить дополнительные поля для описания ресурса, такие как "Серийный номер" или "Поставщик", вы можете создать собственные атрибуты и присвоить им значения в JDF-документе.

<ResourcePool>
  <Media ID="Paper_1" Class="Consumable" Status="Available" SerialNumber="12345" Supplier="ABC Paper Co">
    <!-- Описание бумаги с пользовательскими атрибутами -->
  </Media>
</ResourcePool

Добавление пользовательских элементов: Вы также можете включить собственные элементы в ResourcePool, чтобы более подробно описать ресурсы. Например, вы можете создать элемент <CustomResource> с собственными подэлементами для описания дополнительных характеристик ресурса.

<ResourcePool>
  <CustomResource ID="CustomResource_1">
    <CustomAttribute1>Значение1</CustomAttribute1>
    <CustomAttribute2>Значение2</CustomAttribute2>
  </CustomResource>
</ResourcePool>

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

Пользовательские атрибуты, если не используются осторожно, могут потенциально привести к нескольким видам конфликтов и проблем в JDF:

  1. Конфликты в именовании: Если ваш пользовательский атрибут имеет слишком общее или неуникальное имя, то существует риск конфликта имен с другими атрибутами в JDF. Например, если вы создадите атрибут с именем "Status", это может создать путаницу с уже существующими атрибутами "Status" в стандартном JDF.

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

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

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

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

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

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

Примеры использования ProcessGroup

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

<ProcessGroup ID="BookProduction">
  <!-- Здесь описываются этапы производства -->
</ProcessGroup>

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

<ProcessGroup ID="Printing">
  <ResourceLinkPool>
    <!-- Здесь описываются связи с ресурсами -->
  </ResourceLinkPool>
</ProcessGroup>

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

<ProcessGroup ID="Printing">
  <ParameterSet>
    <!-- Здесь описываются параметры и настройки -->
  </ParameterSet>
</ProcessGroup>

Управление событиями и сроками: ProcessGroup позволяет устанавливать события и сроки для выполнения задач в рамках конкретного процесса. Например, установите событие "Завершение печати" и укажите, что оно должно быть выполнено до определенной даты.

<ProcessGroup ID="Printing">
  <Event>
    <!-- Здесь описываются события и сроки -->
  </Event>
</ProcessGroup>

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

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

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

<ProcessGroup ID="BrochureProduction">
  <!-- Описание процесса создания брошюры -->

  <!-- Описание ресурсов -->
  <ResourceLinkPool>
    <ResourceLink Usage="Input" rRef="DesignFile_123"/>
    <ResourceLink Usage="Input" rRef="Printer_456"/>
    <ResourceLink Usage="Output" rRef="FinishedBrochures_789"/>
  </ResourceLinkPool>

  <!-- Описание параметров и настроек -->
  <ParameterSet Class="QualityControl">
    <Parameter Name="Resolution" Value="300 dpi"/>
    <Parameter Name="ColorMode" Value="CMYK"/>
  </ParameterSet>

  <!-- Установка событий и сроков -->
  <Event>
    <EventData Name="PrintStarted" TimeStamp="2023-07-20T09:00:00"/>
    <EventData Name="PrintFinished" TimeStamp="2023-07-20T13:00:00"/>
    <EventData Name="DeliveryDeadline" TimeStamp="2023-07-25T15:00:00"/>
  </Event>
</ProcessGroup>

В этом примере:

  • ProcessGroup с идентификатором "BrochureProduction" представляет собой контейнер для всего процесса создания брошюры.

  • ResourceLinkPool описывает, какие ресурсы используются в процессе. Например, мы связали файл дизайна (DesignFile_123), принтер (Printer_456) и ресурсы для готовых брошюр (FinishedBrochures_789).

  • ParameterSet содержит параметры и настройки, связанные с качеством контроля производства. Мы указали разрешение печати (Resolution) и цветовой режим (ColorMode).

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

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

Давайте рассмотрим ProcessRun более подробно с примерами:

Пример использования ProcessRun:

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

<JDF ID="Job_123" Type="Combined" JobPartID="BookPrinting_001">
  <!-- Другие элементы JDF... -->

  <!-- ProcessRun для печати книги -->
  <ProcessRun ProcessID="PrintBook" Status="InProgress" StartTime="2023-07-20T09:00:00" EndTime="2023-07-20T13:00:00">
    <ResourceLinkPool>
      <!-- Ссылки на ресурсы, необходимые для печати -->
    </ResourceLinkPool>
    <ParameterSet Class="QualityControl">
      <Parameter Name="Resolution" Value="2400 dpi"/>
      <Parameter Name="ColorMode" Value="CMYK"/>
    </ParameterSet>
    <Event>
      <EventData Name="PrintingStarted" TimeStamp="2023-07-20T09:00:00"/>
      <EventData Name="PrintingFinished" TimeStamp="2023-07-20T13:00:00"/>
    </Event>
  </ProcessRun>
</JDF>

В этом примере:

  • Мы создали ProcessRun с ProcessID "PrintBook" для описания этапа печати книги.

  • Status установлен в "InProgress", что означает, что этап печати находится в процессе выполнения.

  • Указаны StartTime (время начала) и EndTime (время окончания) этапа печати.

  • Внутри ProcessRun мы можем ссылаться на ресурсы, такие как принтеры, и указывать параметры, такие как разрешение и цветовой режим.

  • Event определяет события, такие как начало и завершение этапа печати.

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

Новый формат XJDF 

XJDF (Extended Job Definition Format) был разработан для расширения возможностей JDF (Job Definition Format) и улучшения обмена данными в области графической и печатной индустрии.
XJDF был разработан и внедрен в начале 2010-х годов как следующий этап развития стандарта JDF.

  1. Цель:

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

    • Совместимость с современными технологиями: XJDF обеспечивает совместимость с современными технологиями, такими как веб-службы (web services) и JSON, что упрощает интеграцию с современными системами и облачными решениями.

    • Улучшение обмена данными: XJDF предоставляет более удобные и современные средства обмена данными между разными системами и участниками производственных процессов.

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

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

XJDF (Extended Job Definition Format) и JDF (Job Definition Format) оба представляют собой форматы для описания производственных задач и процессов, но есть несколько принципиальных различий между ними. Давайте рассмотрим эти различия подробнее с примерами:

  1. Гибкость и расширяемость:

    • JDF: JDF имеет фиксированную структуру и определенный набор элементов. Это ограничивает гибкость формата и требует определенной структуры данных.

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

  2. Совместимость с современными технологиями:

    • JDF: JDF был разработан в начале 2000-х и не всегда совместим с современными технологиями, такими как веб-службы (web services) или JSON.

    • XJDF: XJDF ориентирован на совместимость с современными технологиями, такими как JSON, что облегчает интеграцию с современными системами.

  3. Простота чтения и написания:

    • JDF: JDF может быть сложным и тяжело читаемым из-за большого количества деталей и элементов.

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

  4. Интеграция с современными системами:

    • JDF: JDF не всегда легко интегрировать с современными облачными и мобильными системами из-за его сложной структуры.

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

Вот пример XJDF:

<XJDF ID="Job_123">
  <JobInfo>
    <JobID>12345</JobID>
    <CustomerInfo>
      <CustomerName>Имя Заказчика</CustomerName>
      <Address>Адрес Заказчика</Address>
    </CustomerInfo>
  </JobInfo>
  <!-- Другие элементы XJDF... -->
</XJDF>

И вот пример JDF:

<JDF ID="Job_123" Type="Combined" JobPartID="JobPart_001">
  <JobInfo>
    <JobID>12345</JobID>
    <CustomerInfo>
      <CustomerName>Имя Заказчика</CustomerName>
      <Address>Адрес Заказчика</Address>
    </CustomerInfo>
  </JobInfo>
  <!-- Другие элементы JDF... -->
</JDF>

В этом примере видно, что структура XJDF более проста и гибка, чем у JDF, что делает его более удобным для работы с различными видами данных и производственных задач.

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

Источник: https://habr.com/ru/articles/761582/


Интересные статьи

Интересные статьи

В жизни наши желания часто расходятся с нашими возможностями. Приходится искать компромисс. Так происходит и при интеграции интернет-магазинов с 1С. Хочется реалтайма, интеграции с программой лоя...
Разработка сервера для real-time онлайн игры - дело неочевидное, но очень интересное. В данной статье я постараюсь провести вас от банальной теории и базовых вещей до динамического автомасштабиро...
Устав от многочисленных отказов разработчица ПО из США Анджелина Ли опубликовала фейковое резюме с опытом работы в глобальных компаниях. Ей перезвонили из 90% компаний. В резюме Анджелины никто не вчи...
25 февраля автор курса «Разработчик C++» в Яндекс.Практикуме Георгий Осипов рассказал о новом этапе языка C++ — Стандарте C++20. В лекции сделан обзор всех основных нововведений Станд...
27 марта мы в Mozilla объявили о начале стандартизации WASI, системного интерфейса WebAssembly (WebAssembly system interface). Зачем: разработчики начали применять WebAssembly за пределам брау...