вести из секретных лабораторий

а тем временем, в секретных лабораториях НТЦ Метротек полным ходом идёт тестирование очередного мега-дивайса. следите за новостями. …→

Релиз 0.0.6-43 для Bercut-ETX rev.D

Наконец вышел новый релиз 0.0.6-43 для Беркут-ETX rev.D (тот, у которого 10G и 1G на борту).

Основные изменения:

  • Исправлена ошибка, приводящая к зависанию прибора при проведении асимметричного rfc2544
  • При сохранении WWW отчетов файл теперь всегда имеет имя
  • Исправлена ошибка, приводящая к тому, что иногда не происходила синхронизация в BER тесте
  • При изменении уровня шлейфа теперь всегда сбрасывается статистика по переданным через петлю пакетам
  • В log’e нумерация месяцев велась с 0, теперь с 1
  • Количество принятых пакетов в статистике не совпадало с количеством пакетов в тесте распределение задержки (latency distribution)
  • Изменён алгоритм подсчёта пакетов, принятых не по порядку, согласно RFC4689 и ITU-T Y.1540
  • Результаты теста распределение задержки доступны и по WWW
  • Изменён алгорим подсчёта %PKTS в тесте распределение задержки, исправлена ошибка, приводящая к появлению отрицательных значений.
  • При проведении BER теста теперь есть возможность просмотреть настройки заголовка пакета
  • В тесте RFC2544 теперь есть отображение результатов на уровне L1
  • При проведении теста «сложный трафик» на неиспользуемые потоки теперь не отправляются arp-запросы.
  • Исправлена ошибка со сбоем при вынимании SFP+ модуля
  • Ускорена загрузка firmware в 10G трансивер (в 10 раз, т.е. примерно две секунды вместо двадцати)

Файл прошивки можно скачать тут

из чего сделаны инструкции

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

как это ни странно, для вёрстки документов мы не используем ни Word, ни QuarkXpress, ни Adobe FrameMaker. возможно, читатель нашего блога знаком с заметками Кати Саковской об особенностях и инструментах для создания руководств пользователя. они посвящены системе компьютерной вёрстки LaTeX, которая помогает нам сделать элегантные и, надеюсь, удобные для чтения документы. впрочем, рекламные материалы тоже удобно создавать в LaTeX’е.

итак, почему для создания инструкций по эксплуатации мы используем LaTeX?

во-первых, формат исходных файлов. он текстовый. да-да, обычный текст, или plain text, как говорят англоязычные товарищи. это значит, что нет проблем с редактированием и с системами контроля версий (svn). кроме того, легко находить и управлять измененими при помощи стандартных инструментов (diff).

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

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

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

btw, рекомендую полезную статью «Учите детей Groff’у»» про то, как и зачем отделять содержание текста от внешнего вида. правда, на английском. но есть похожая заметка на русском: «О вреде дружественных интерфейсов».
рекомендую к прочтению.

Беркут-ET/ETX. Обновление руководства пользователя

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

На самом деле, раздел не отсутствовал, а просто прятался в главе «Удалённое управление».

Теперь обновлению версий ПО посвящена отдельная глава и найти её совсем несложно. Скачать руководства можно здесь здесь (Беркут-ET, версия 3.0.0-0) и здесь (Беркут-ETX, версия 4.0.0-0).

gpio: опросом или по прерыванию?

вот и я добрался до блога. поделиться маленькой программистской радостью :)

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

для этих целей схемотехники завели GPIO pin на процессор. и первая реализация задачи была очень примитивной: опросом раз в 1 секунду читался файл /sys/class/gpio/gpio58/value. если в файле 1, то карта не подключена, а если 0 — подключена. инверсная логика, чтобы жизнь мёдом не казалась :)

да, совсем забыл сказать, что мы используем GPIO SYSFS. это такой интерфейс: из user-space виден файл, который можно писать и читать, а с другой — физическая ножка процессора. более подробно тут

а порадовало то, что pin, настроенный на вход, можно использовать как прерывание и при этом не залезать в kernel space! и вот как. в каталоге, соответствующем аппаратному GPIO (например /sys/class/gpio/gpio58/) лежит файл edge. этот файл позволяет настроить обработку прерывания: falling (по спаду сигнала), rising (по фронту), both (и по спаду, и по фронту). запись в этот файл none выключает обработчик.
я записал в этот файл «both», т.к. меня интересовало и подключение, и отключение.
дальше, используя системный вызов poll(), можно дождаться прерывания и прочитать значение из файла value.
то есть фактически реализуется блокирующее чтение.
механизм подробно описан в том же help’e

вполне рабочий пример кода есть тут

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

да, нужно упомянуть, что у нас используется ядро 2.6.35-9

роботизация и т.д.

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

вот, например, как робот устанавливает компоненты на плату проекта STeameR:

x10

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

LaTeX. Пакет calendar

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

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

Рассмотрим, …→

новый прибор: Беркут-MX

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

с низкими скоростями передачи проблем нет: настроил порт на mirror, подключил компьютер с wireshar’ком, настроил фильтрацию — и вперёд, analyze this. но, когда дело касается 10G ethernet, ситуация кардинально меняется. казалось бы, можно подключить мощный компьютер с 10-гигабитной картой и задача решена.

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

по этому поводу мы решили выпустить новый прибор — Беркут-MX. небольшая коробочка умеет обрабатывать два потока 10-гигабитного трафика одновременно, отбирать пакеты по нужным параметрам и перенаправлять их в гигабитный интерфейс для неспешного анализа тем же wireshark’ом.

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

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

update: на фотографии к этой записи и в буклете показан вариант компоновки прибора в 19″ стойку: в одном корпусе размещены четыре модуля, каждый из которых обрабатывает два 10-гигабитных потока (суммарно — восемь).

Разработка технической документации

Нашла недавно интересную статью Стива Колда, который некоторое время работал техническим писателем в Rational systems и GW Associates. Вот английский вариант статьи, а вот перевод на русский язык.

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

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

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

А вот ещё пара статей в нагрузку: раз и два.