10 декабря 2014 г.

Пара фотографий за 2014-12-10

Доброго времени суток.

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

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

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

- Артём

2 декабря 2014 г.

[перевод] Миссия выполнена: 3D-печать в космосе

Нашёл на сайте h+ Magazine интересную статью от 2014-11-26 на тему 3D-печати в космосе, и решил сделать перевод. Статья является перепечаткой статьи от НАСА и находится в общественном состоянии (как указывает политика авторского права НАСА), поэтому данный перевод также находится в общественном достоянии.

- Артём


Под авторством: Билл Хабшер (aнгл. Bill Hubscher), International Space Station Program Science Office

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

"Первая распечатка -- это первый шаг к предоставлению 'машинного цеха по-требованию' вне Земли," -- сказала Ники Веркхайзер (англ. Niki Werkheiser), менеджер проекта "International Space Station 3-D Printer" в Космическом центре Маршалла в НАСА, в Хантсвилле, штат Алабама. "Космическая станция -- это единственная лаборатория, где мы можем полностью протестировать данную технологию в космосе."

Астронавт НАСА Бэрри "Батч" Вилмор (англ. Barry "Butch" Wilmore), командир 42-й экспедиции на борту Международной космической станции, установил принтер 17-го ноября и произвёл первую распечатку для тестирования калибровки. Основываясь на результатах тестовой распечатки, команда наземного центра управления отправила команды для перестройки принтера и распечатала второй калибровочный тест 20-го ноября. Эти тесты подтвердили, что принтер был готов для производственных операций. 24-го ноября наземный центр управления отправили принтеру команду создать первую распечатанную деталь: лицевую сторону корпуса экструдера. Это показало, что принтер может создавать запасные части для себя самого. 3D-принтер использует процесс формально известный, как послойное производство для разогрева относительно низкотемпературной пластиковой лески и выдавливания её послойно для создания части, описанной в модели, отправленной машине.

Утром 25-го ноября Вилмор удалил часть из принтера и изучил её. Адгезия части на столе была сильнее чем ожидалось, что могло означать, что сцепление слоёв отличается в условиях микрогравитации -- вопрос, который команда будет исследовать по мере того, как будущие части будут распечатаны. Вилмор установил новый стол для печати, и наземная команда отправила команду для тонкой настройки выравнивания принтера и распечатала третий калибровочный талон. Когда Вилмор уберёт калибровочный талон, наземная команда сможет распечатать второй объект. Наземная команда делает точные корректировки перед каждой распечаткой, и результаты от этой первой распечатки вносят вклад в лучшее понимание параметров для использования при 3D-печати на космической станции.

"Это первый раз, когда мы используем 3D-принтер в космосе, и мы учимся, даже из этих начальных операций," -- сказала Веркхайзер. "По мере того, как мы будем печатать больше частей, мы сможем понять, вызваны ли некоторые эффекты, которые мы видим, микрогравитацией, или они являются частью нормального [процесса] тонкой настройки процесса печати. Когда мы вернём [напечатанные] части на Землю, мы сможем провести более детальный анализ, чтобы понять, как они отличаются от частей, напечатанных на Земле."

"Демонстрация технологии 3D-печати в нулевой гравитации" (англ. 3-D Printing in Zero-G Technology Demonstration) на космической станции ставит целью показать, что технология послойной печати может создавать различные распечатанные 3D-части и инструменты в космосе. На первом 3D-объекте, распечатанном в космосе -- передней панели печатающей головки -- выгравлены имена и организации, которые участвовали в демонстрации данной технологии: НАСА и Made In Space, Inc., космическая производственная фирма, которая работала с НАСА для разработки, создания и тестирования 3D-принтера. Made In Space располагается в кампусе в Ames Research Center в НАСА, в Моффет Филд, Калифорния.

"Мы выбрали эту часть для печати потому, что, в конце-концов, мы собираемся иметь 3D-принтеры, которые создают запасные и заменные части для критических вещей в космосе; мы должны иметь возможность делать запасные части для принтеров," -- сказала Веркхайзер. "Если принтер является критичным для исследователей, он должен обладать возможностью копирования своих собственных частей, так что он может продолжать работать в течении длительных путешествий к местам вроде Марса, или астероидам. В конечном счёте, возможно однажды принтер даже сможет распечатать ещё один принтер."

Инженеры из Made In Space скомандовали принтеру распечатать первый объект во время работы с операторами в "Payload Operations Integration Center" в НАСА, в Хантсвилле. Как только первые объекты были распечатаны, инженеры из НАСА и Made In Space отслеживают процесс создания с помощью бортовых изображений и видео. Основная часть процесса печати управляется с Земли, чтобы ограничить время команды [МКС], необходимое для операций.

"Функционирование 3D-принтера является преобразующим моментом в развитии космической программы," -- сказал Аарон Кеммер, директор компании Made In Space. "Мы создали машину, которая предоставит нам данные, необходимые для разработки будущих 3D-принтеров для Международной космической станции и за её пределами, производя революцию в космическом производстве. Это может изменить подход, который мы используем для доставки инструментов и частей для команды космической станции, позволяя ей тем самым быть менее зависимой от поставочных миссий с Земли."

(В видео, приведённом ниже, Веркхайзер сказала: "[Я] думаю, мы творим историю, так как впервые мы можем делать то, что нам нужно, когда нам это нужно, в космосе. Даже если это звучит, как научная фантастика, мы на самом деле сможем отправлять аппаратуру по электронной почте, вместо её [физической] отправки [c поставочными миссиями]" -- прим. переводчика)

Первые объекты, созданные в космосе, будут возвращены на Землю в 2015-м году для детального анализа и сравнения с идентичными наземными контрольными образцами, созданными полётным принтером после окончательных лётных испытаний, раннее в этом году, в центре Маршалла в НАСА, перед запуском. Цель анализа -- проверить, работает ли процесс 3D-печати в микрогравитации также, как на Земле.


Ники Веркхайзер, менеджер проекта "International Space Station 3-D Printer" в Космическом центре Маршалла в НАСА, в Хантсвилле, штат Алабама, обсуждает установку принтера на орбите и первый тестовый запуск 3D-принтера Международной космической станции.


На заднем плане: Инженерный перчаточный ящик для исследования микрогравитации. Снимок сделан в апреле 2014-го года во время полётной сертификации и приёмо-сдаточных испытаний в Космическом центре Маршалла, в Хантсвилле, штат Алабама.

###
Авторство фотографий в статье:
NASA
NASA/Emmett Given

1 декабря 2014 г.

Сборка стеллажа в Нижегородском хакерспейсе CADR

Доброго времени суток.

В субботу купили, привезли, собрали и установили стеллаж в Нижегородском хакерспейсе CADR. Сборку и установку осуществляли через ./configure && make && make install, сверяясь периодически с документацией по сборке. Не обошлось без проблем, но в итоге все они были решены, и хакерспейс обзавёлся долгожданным стеллажом, на который мы тут же положили всё, что плохо лежало. Фотоотчёт по сборке здесь:

https://vk.com/cadrspace?w=wall-71311050_64

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

- Артём

30 ноября 2014 г.

Guile-DSV 0.1.0

Доброго времени суток.

Потребовалась мне как-то раз GNU Guile библиотека для работы с форматом DSV (delimiter-separated values). Когда это случилось в первый раз (в awget), то готового решения найти не удалось, и я написал решение "по месту", специально для проекта. Когда подобная библиотека потребовалась во второй раз (в cadrobot), то я скопировал код готового модуля из awget. В третий раз, когда разбор DSV потребовался для внутреннего проекта в компании Элсис (где я сейчас работаю), было опять скопировано существующее решение из ранних проектов.

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

Сегодня выпустил релиз Guile-DSV 0.1.0 -- первую версию библиотеки. Она довольно простая, и на данный момент поддерживает только Unix-стиль формата DSV, который описан Эриком Реймондом в книге "The Art of Unix Programming".

Кроме процедур для конвертации между DSV-строками и списками, и процедурами чтения/записи DSV, Guile-DSV предоставляет процедуру guess-delimiter для автоматического определения разделителя полей, которую я подсмотрел в python-dsv.

Guile-DSV распространяется на условиях лицензии GNU GPLv3+. Для процедур, предоставляемых библиотекой, написаны тесты. Библиотека ставится "классическим" способом через ./configure && make && make install, и снабжена документацией в Info формате, которая ставится вместе с GNU Guile модулем. В документации приведены примеры использования каждой из процедур.

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

Спасибо,

- Артём

6 сентября 2014 г.

Guile-SSH 0.7.0

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

В прошлые выходные выпустил релиз Guile-SSH 0.7.0, и, следуя принципу "лучше поздно, чем никогда", решил написать об этом здесь, на русском.

Напомню, что Guile-SSH представляет собой свободную (GNU GPLv3+) библиотеку для программ GNU Guile (свободного интерпретатора Scheme, диалекта Lisp), предоставляющую API для работы с протоколом SSH. Данная библиотека является обёрткой для libssh.

Используя процедуры, предоставляемые библиотекой, можно создать как клиентское, так и серверное приложение, работать с публичными и приватными ключами (RSA, DSA, ECDSA), выполнять удалённо команды в не-интерактивном режиме и пересылать данные по защищённым каналам.

Библиотека снабжена документацией в Info-формате (на английском), и примерами использования (в каталоге examples).

Вот список изменений в версии 0.7.0:

  • Произведена миграция на libssh 0.6.3
  • Теперь требуется GNU Guile 2.0 для сборки и работы библиотеки.
  • Исправлен баг со сборкой мусора: до этого объекты вроде SSH-сессий могли быть освобождены сборщиком мусора раньше, чем их "потомки" (вроде SSH-каналов), что приводило к ошибкам.
  • Исправлены ошибки сегментации в модуле (ssh channel): Теперь, если в процедуру передан освобождённый SSH-канал, то бросается исключение.
  • Исправлен баг в процедурах public-key? и private-key?: Данные предикаты теперь возвращают #f для объектов, не являющихся ключами, вместо бросания исключения.
  • Добавлен новый модуль (ssh log), предоставляющий процедуры для управления логированием библиотеки libssh. Как следствие, Guile-SSH теперь работает лучше с Emacs Scheme REPL режимом (проверял на Geiser), благодаря умолчальной процедуре печати логов, которая комментирует сообщения лога, добавляя в начало строки ";;; ". Таким образом, логи от libssh не смешиваются с выводом от процедур.
  • Добавлены новые процедуры: userauth-public-key/try, bytevector->hex-string, session-get, channel-get-session, message-get-session.
  • Некоторые процедуры были переименованы, дабы названия были благозвучнее и понятнее (см. NEWS-файл для более подробной информации).
  • Улучшена печать Guile-SSH объектов, в результате вы можете получить полезную информацию об объектах, просто взглянув на распечатку объекта. Пара примеров:
            (display session)
            => #<session avp@localhost:22 (disconnected) 8b2fff0>
            (display key)
            => #<key rsa (private) 8b2ffe0>
        
  • Добавлены новые тесты для лучшего багоулавливания.
  • Добавлены примеры использования Guile-SSH API в Info-документацию.

Замечу, что данный релиз ломает обратную совместимость, так что если вы использовали Guile-SSH 0.6.0 в приложении, то вам потребуется сделать некоторые изменения, чтобы заставить приложение работать с Guile-SSH 0.7.0. В то же время, я надеюсь, что улучшения являются полезными, поэтому нарушение обратной совместимости оправдано.

Для более подробной информации о видимых измененях в новой версии см. NEWS-файл.

Пользуясь возможностью, хочу сказать спасибо Людовику Кортесу (франц. Ludovic Courtès) за патч, улучшающий работу SSH-каналов (был включён в релиз 0.6.0, о котором я здесь не писал), за баг-репорты и за полезные советы по разработке. Список авторов всегда можно посмотреть в файле AUTHORS.

Спасибо,

- Артём

13 мая 2014 г.

10 апреля 2014 г.

Завтрак

Как-то утром, спозаранку,
Я сварил себе овсянку,
Взял клубничный джем
И ложку
Посолил еду немножко,
А потом за стол я сел
И в один присест всё съел.

2014-04-10

http://poptsov-artyom.narod.ru/texts/2014/2014-04-10.html

23 февраля 2014 г.

5 февраля 2014 г.

Guile-SSH 0.5.0

Выпустил релиз Guile-SSH 0.5.0. Вот краткий список наиболее заметных изменений:

  • Каналы (channels) Guile-SSH теперь представлены в виде обычных портов GNU Guile, что позволяет работать с ними, используя стандартные процедуры ввода-вывода, такие как display и read-line. Данное изменение позволило убрать несколько специфичных процедур для работы с каналами, что сделало API проще и понятнее.
  • Добавлена документация в формате Texinfo. При сборке докуменация конвертируется в формат справочной системы Info, и при установке сохраняется в стандартный каталог ${prefix}/share/info.
  • Добавлена поддержка аутентификации по открытым ключам с использованием SSH-агента. Для использования нового способа аутентификации предлагается использовать новую процедуру userauth-autopubkey!
  • session-set! и server-set! теперь принимают значение опции log-verbosity в виде символа, вместо числа.
  • Удалены дубликаты некоторых опций Guile-SSH сессий и сервера: port-str (опция дублировала port, только принимала значение в виде строки), log-verbosity-str (дублировала log-verbosity, только принимала значение в виде строки). Удалена опция add-identity (полностью дублировала identity).
  • Добавлены новые процедуры: channel-set-stream!, channel-get-stream, session?, server?, message?, userauth-autopubkey!
  • Обновлены примеры программ, написанных с использованием Guile-SSH (sssh и ssshd), добавлены новые примеры (эхо-клиент и эхо-сервер).
  • Добавлены автоматические тесты.

Исходый код нового релиза можно получить под лицензией GNU GPLv3+ на GitHub:

https://github.com/artyom-poptsov/libguile-ssh/releases/tag/v0.5.0

Напомню, что Guile-SSH предоставляет доступ к протоколу SSH для программ, написанных на языке Scheme (диалекте Lisp).

- Артём

4 февраля 2014 г.

David Helpling -- Sticks and Stones

Доброго времени суток.

Нашёл сегодня красивую видеозапись в сопровождении столь же красивой музыкальной композиции от Дэвида Хелплинга (англ. David Helpling) под названием "Sticks and Stones":

- Артём

12 января 2014 г.

Краски осени

В октябре прошлого года написал эти стихи:

http://poptsov-artyom.narod.ru/texts/2013/2013-10-04.html

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

http://foto.mail.ru/mail/nardina_lyuba/36

Спасибо.

- Артём