3 октября 2016 г.

Борис Е. Штерн, экзопланеты и книга "Ковчег 47 Либра"

27-го сентября 2016-го года был на интереснейшей лекции Бориса Евгеньевича Штерна, "Экзопланеты". Запись лекции доступна на YouTube-канале Нижегородского радиотехнического колледжа (см. http://nntc.nnov.ru/node/3144)

Мысли в контексте лекции


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

Насколько мне известно, внеземной жизни, пусть даже самой простейшей, пока не нашли -- даже в нашей звёздной (Солнечной) системе -- не говоря уж о разумной жизни, способной к контакту.  Разумеется, у нас есть пример жизни -- а именно Земной жизни -- на котором мы можем основывать наши предположения в поиске иных примеров.  И мы видим, что жизнь на Земле неразрывно связана с жидкой водой -- поэтому встречая намёки на то, что на другой планете может быть жидкая вода, у нас разгорается надежда увидеть там и жизнь.  А где есть жизнь, там существует и шанс, что эволюция приведёт к "открытию" фотосинтеза -- по словам Бориса Евгеньевича, фотосинтез является очень эффективным источником энергии для всей жизни.  Ну а где фотосинтез, там и насыщение кислородом атмосферы планеты.  Таким образом наличие кислорода в атмосфере другого мира может служить достаточным основанием для предположения о наличии жизни, и своеобразным "маяком" для наших поисков.

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

С интересом наблюдаю за исследованиями Европы, спутника Юпитера в нашей Солнечной системе.  Данный спутник -- словно жемчужина среди других спутников газового гиганта.  Поверхность спутника (что размером меньше Луны) покрыта льдом, и почти наверняка под ним простирается огромный океан глубиной до 100 км -- воды может быть более, чем на Земле.  Если мы обнаружим в океане Европы какую-либо жизнь, то появится ещё один пример, который можно будет учитывать при поиске дополнительных "островков жизни".  Более того, если жизнь зародилась независимо на двух планетах в одной звёздной системе, то можно смело говорить, что наш, Земной, пример зарождения жизни -- не такой уж уникальный в своём роде.

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

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

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

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

"Ковчег 47 Либра"


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


Написана хорошо, читается легко, а главное -- чувствую какой-то внутренний резонанс с идеями автора. Считаю, что нам (да, всем нам, человечеству) надо больше писать и, самое главное, читать таких книг -- может да и сподвигнет нас этот общий "резонанс" идей на некое всеобъединяющее дело (как и напутствовал Айзек Азимов ещё в 1989-м году), вроде строительства солнечных электростанций на орбите Земли, исследовательской базы на Луне и марсианского поселения.  И хочется верить, что работа всем человечеством над глобальными, смелыми проектами, позволит нам подняться на новый уровень и оставить позади старые распри, нетерпимость и всяческое невежество, как тянущий вниз балласт.

Спасибо,

- Артём

1 августа 2015 г.

Роботизированные насекомые имитируют бологических собратьев

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

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

http://www.sciencedaily.com/releases/2015/07/150730162446.htm

Видео: https://player.vimeo.com/video/134758296 (можно скачать с помощью консольной утилиты youtube-dl)

Робоводомерка (авторство: Seoul National University)
Водомерка (фотография взята из Википедии, CC-BY-SA)

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

Искусственные водомерки -- лишь один из примеров подобного подхода. Относительно недавно компания Festo, работающая в области бионики, представила робомуравьёв, которые способны на кооперативные действия для решения задач, и робобабочек, летающих аналогично их биологическим собратьям. Каждая робобабочка весит 32 грамма (для сравнения -- одна 28-миллиметровая канцелярская скрепка весит ~1 грамм), и снабжена литий-полимерным аккумулятором, позволяющем ей проводить в полёте до 4-х минут, при времени перезарядки в 15 минут. Робомуравьи же используют для перемещения приводы, основанные на пьезо-эффекте, снабжены 3D стерео-камерой и оптическим сенсором, который позволяет им ориентироваться в пространстве. Два литий-полимерных аккумулятора позволяют робомуравью обходиться без подзарядки в течении 40 минут, при низком заряде робомуравей способен самостоятельно подключаться к док-станции "усиками" для подзарядки.

- Артём

25 апреля 2015 г.

[музыка, видео] Exxasens, "Eleven Miles"

Примечательное, на мой взгляд, исполнение группой Exxasens композиции "Eleven Miles", с одноимённого альбома.

Спасибо,

- Артём



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 г.

Lights Out Asia -- "Birds Sing Sun-Rising Hymns"

Нашёл красивое любительское видео на композицию "Birds Sing Sun-Rising Hymns" в исполнении группы Lights Out Asia.

Спасибо.

- Артём

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

Спасибо.

- Артём

22 декабря 2013 г.

Заяц в гостях у Волка

Нарисовал позавчера:

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

- Артём

4 декабря 2013 г.

Guile-SSH 0.4.0

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

На прошлой неделе выпустил релиз Guile-SSH 0.4.0. В новой версии добавлена поддержка GNU Guile 2.0.x, добавлен SSH Server API, улучшен SSH Client API, исправлены ошибки. Также добавлены примеры программ, написанных с использованием библиотечного API -- см. каталог examples в корне репозитория.

Готовых сборок пока нет. Исходный код Guile-SSH 0.4.0 можно взять на GitHub:
https://github.com/artyom-poptsov/libguile-ssh/releases/tag/v0.4.0

Вот краткий перечень изменений, взятый из NEWS-файла:

  • Добавлена поддержка новой стабильной версии GNU Guile 2.0. Сборка с GNU Guile 1.8 по-прежнему поддерживатеся.
  • Изменён API -- убран префикс "ssh:" из названий функций.
  • Добавлен базовый SSH Server API.
  • Исправлено повреждение памяти в функции channel-read.
  • Исправлено повреждение памяти при сборке неиспользуемых объектов сборщиком мусора.
  • Исправлен баг в функции session-set!, который приводил к невозможности установки корректного булева значения.
  • Добавлены новые функции: channel-write, channel-request-pty channel-request-shell, channel-set-pty-size!
  • Исправлено имя функции write-known-host! (по-ошибке была названа authenticate-server).
  • Изменена обработка ошибок в функциях: write-known-host!, channel-open-session, channel-request-exec, channel-request-env, close-channel!, server-set -- функции теперь бросают исключение при ошибке, вместо возврата #f. Возвращаемое значение теперь неопределено.
  • authenticate-server теперь так же бросает исключение при ошибке, вместо возврата #f.
  • Функция make-session переименована в %make-session.
  • Добавлена новая функция make-session, которая является обёрткой над %make-session и session-set!. Функция предоставляет удобный интерфейс, позволяя задавать опции сервера через ключевые слова.
  • connect переименована в connect!
  • Исправлена опечатка в названии символа: strcthostkeycheck переименована в stricthostkeycheck
  • Исправлена ошибка в public-key->string, приводившая к зацикливанию функции. Ошибка была обнаружена на Ubuntu GNU/Linux 10.04 LTS.
  • В репозиторий добавлены примеры программ -- см. каталог examples.
  • Улучшена распечатка SSH ключей, каналов и сообщений.

- Артём

22 октября 2013 г.

Московский хакерспейс Neuron

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

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

Найти хакерспейс в первый раз было непросто -- снаружи здания вывески нет, а в самом здании находится масса заведений, слабо связанных с IT и компьютерами вообще. Александр Чемерис, один из основателей Neuron'а, на эту тему пошутил, что поиск хакерспейса -- своего рода квест, который должны пройти настоящие хакеры, дабы попасть в хакерспейс. От себя могу добавить, что в поиске хакерспейса помогает миникарта Москвы, носимая в телефоне или планшете, а так же расспрос местного населения. К слову, во дворе здания есть охрана, у которой так же можно поинтересоваться о нахождении Neuron'а. Если вы выглядите, как гик, то можете не волноваться -- вас направят на верный путь без дальнейших расспросов. Далее остаётся следовать по указателям.

Первое, о чём хотелось бы сказать -- в хакерспейсе есть целая лаборатория трёхмерной печати. Отдельная большая комната хакерспейса заставлена 3D-принтерами, столами с различными инструментами и полками с примерами распечатанных объектов.

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

Как и обычному, двухмерному, принтеру, трёхмерному принтеру нужны расходные материалы. В данном случае -- это различные виды пластмасс в виде жгутов, намотанных на катушки.

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

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

А в другой день я обнаружил в лаборатории напечатанную на принтере руку, которой можно управлять благодаря тросам -- аналогам сухожилий. Говорят, напечатали для себя, just for fun. В общем, здесь явно готовится революция в робототехнике, которая (конечно же) сделает нашу жизнь лучше.

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

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

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

Кроме лаборатории трёхмерной печати, в Neuron'е обитают ещё несколько стартапов (англ. startup)

Один из стартапов связан с созданием компонента "умного дома". Достаточно минималистичный по виду куб понимает команды "на слух" и отвечает человеческим синтезированным голосом на вопросы вида "а какая сегодня погода?"

Сердцем (ну или разумом, кому как больше нравится) куба является плата вроде BeagleBoard (к сожалению, не спросил точно модель) с установленной ОС Android, которая и управляет всем действом. Заинтересовавшись, я поделился своим опытом участия в проекте по превращению Android'а в ОС реального времени.

За то время, пока я был в Москве, к кубу прикрутили (точнее вкрутили в него) экспериментальную возможность, которая добавляет тактильный отклик при касании верхней поверхности куба (вы должны быть знакомы с этим, если пользовались экранной клавиатурой на современном коммуникаторе/smart phone). Разработчик куба сказал, что рассматривается вариант включения его от касания (хотя, конечно же, его можно включить и простой фразой "кубик, проснись!"). Пока неизвестно, будет ли реализован тактильный отклик в первой версии куба -- но идея, на мой взгляд, выглядит интересно.

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

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

Остальные фотографии из хакерспейса Neuron можно посмотреть в этом альбоме:
https://picasaweb.google.com/114139409305362314356/Neuron

В целом, замечательное место. Я посещал хакерспейс каждый будний вечер во время командировки, порой засиживаясь там до полуночи. И могу сказать, что атмосфера, царящая в Neuron'е, помогает работать. Например, в один из вечеров мне удалось решить проблему с библиотекой Guile-SSH, над которой думал уже довольно давно.

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

- Артём

16 октября 2013 г.

Командировка в Москву

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

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

Однако я согласился.

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

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

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

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

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

Каждую из задач я рассматриваю, как квест (англ. quest, буквально -- "поиск"). Поездка в Москву -- последовательность квестов.

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

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

- Артём