XVI конференция разработчиков свободных программ или где взять бесплатных контрибьютеров

    Недавно в славном городе Калуге проходила XVI конференция разработчиков свободных программ. Конференцию организовывала компания “Базальт-СПО”. Embox, являясь свободным проектом, также выступал на конференции. Я, традиционно, не буду делать обзора всех докладов, а расскажу о тех вопросах, поднятых на конференции, которые были интересны мне лично.


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

    Выгод же, на мой взгляд, больше. Во-первых, Калуга — красивый город, там есть где погулять, на что посмотреть. Например, музей космонавтики. Во-вторых, это повод посмотреть что-нибудь кроме Москвы, где большинство бывает достаточно часто, а многие просто живут. Ну и такой неочевидный момент как тусовка по вечерам. В Москве народ быстренько расползается по своим домам, а тут народ общался в барах, кафе, или просто гулял по городу. Для общения и не только был заведен телеграм-чат, из него я не только узнал, где тусуется народ, но и, например, почему у конференции такая эмблема. Оказывается, эмблема является модификацией универсальной эмблемы сообщества всех хакеров, которая представляет из себя планер “Игры в Жизнь”.

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

    Доклады


    Первый доклад был посвящен очень важной теме — взаимодействию СМИ и свободного проекта. Доклад назывался “Как свободному проекту организовать работу со СМИ”, автор Сергей Голубев. В докладе было предложено в качестве альтернативы публикациям в традиционных профильных СМИ создавать собственные блоги, чтобы рассказывать о проекте.

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

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

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

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

    Я процитирую тезис о простой документации на Embox. У нас проблема публикаций и документации стоит очень даже остро. И скажу честно, мы пробовали исправить ситуацию с помощью подхода через зачет студентам. Однако это не работало, в поисках решения я и написал статью “Как мы разрабатываем документацию в открытом проекте Embox” . В чём я согласен с автором, так это в том что если хочется помочь свободному проекту, то это можно сделать не только через разработку кода! Очень ценны пользователи, которые используют проект, еще более ценны те, кто оставляют фидбек, а уж ценность тех, кто делает документацию и публикации, трудно переоценить. Но все-таки мотивом должен являться не зачет, а своего рода “карма”. То есть публикуя грамотные технические статьи, вы создаете себе авторитет в данной области, улучшаете резюме, так сказать. К тому же это может быть путь в разработку кода, ведь для того чтобы что-то описать, необходимо самому разобраться в том о чем рассказываешь.

    С главной идеей доклада, что студентов нужно привлекать к участию в проектах СПО, будь то публикации или исходный код, я безусловно согласен. Это взаимовыгодное сотрудничество, ведь студенты получают опыт в интересной им сфере, практические навыки работы в команде, причем распределенной, ну и конечно, поднимают свой авторитет, а следовательно и статус на рынке труда. В этом плане был показателен доклад студентов МИЭТ “Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами для внедрения в свободной системе RunaWFE”. Содержание доклада не столь важно, важно что и доклад, и разработку делали студенты. Кроме этого доклада были еще доклады от других университетов: ТГПУ им. Толстого, МТУСИ, Брестский государственный технический университет.

    Проблема привлечения студентов (участников) в проекты СПО была озвучена в уже упомянутом докладе “Модель развития PostgreSQL как международного свободного продукта и сообщества”. Автор высказал идею, что существует опасность для развития открытых сообществ в том, что слабо привлекаются новые участники. Ведь раньше считалось крутым быть контрибьютором в открытых проектах, и разработчики стремились к этому. Но сейчас студентам интересно быстро создать какой-нибудь стартап, поскольку именно у стартапов сейчас ореол успешности. А для создания стартапа, не нужно глубоко разбираться в технологиях, нужно их уметь использовать. Но наверное, всегда были те, кто создавал технологии, и кто их использовал. Может быть немного изменилась структура, сейчас разработка открытых проектов зачастую ведется с коммерческих компаниях.

    О том, как для свободного проекта важны пользователи, прозвучало в докладе Дениса Силакова “OpenVZ Customer Experience Program, или сбор данных о пользователях в OpenVZ 7”. Суть доклада в том, что очень важно получить обратную связь от пользователей в открытом проекте, но при этом, конечно, не нарушить законодательства стран где используется продукт и конфиденциальность данных пользователей.

    Целая серия докладов была посвящена процессорным архитектурам. Возможно, это связано с тем, что Базальт-СПО уделяет большое внимание переносу своего дистрибутива на “не-интеловские” архитектуры, как я уже отмечал в статье про OSDay. На данной конференции также было много различных “не-интеловских” железок. Эльбрус, RISC-V, RaPi4. Я, само собой, тоже не остался в стороне и показал Qt на STM32F747i-discovery .

    Самым частым развлечением на стенде с различными железками, на которых установлен Альт-Линукс, кроме игрушек, было сравнение производительности. Само собой современные Малинки хотя и уступают современным интелам, но всего в несколько раз, соответственно, вполне пригодны для использования как офисные, да и не только офисные, десктопы. Во время доклада Антона Мидюкова “Mkimage-profiles – гибкий инструмент сборки дистрибутивов для множества платформ.” к проектору была подключена NVIDIA Jetson Nano, естественно на Альте, и все прекрасно работало. А Алексей Новодворский сказал, что он заказал себе такую железку из Китая для использования в качестве домашнего десктопа. Сам же доклад был посвящен автоматизации создания дистрибутивов под различные платформы и архитектуры.

    Естественно, самой распространенной не-интеловской архитектурой был ARM. На конференции выступил Роман Ставцев из компании БАЙКАЛ ЭЛЕКТРОНИКС с докладом “Процессор Байкал-М. Программное и аппаратное окружение.“ и рассказал про их новый процессор Байкал-М на базе ARM Cortex-A57. К сожалению, платы так и не успели привезти на конференцию, но по моим данным, уже на следующей неделе они были представлены на конференции Микроэлектроника 2019. А поскольку архитектура стандартная, то и комплект ПО стандартный и, конечно, СПО. Компилятор gcc, эмулятор qemu, загрузчик U-Boot, ядро Linux, ….

    Сотрудники Базальт-СПО посвятили два доклада отечественным процессорам с архитектурой Эльбрус. Как известно, архитектура оригинальная, но к сожалению достаточно закрытая, отсюда свои достоинства и недостатки. Больше конечно недостатков. Из достоинств отмечу только, что в докладе Андрея Савченко “Особенности портирования СПО на платформу «Эльбрус».” прозвучало, что при портировании различного ПО на данную архитектуру они находили проблемы в этом ПО, которые редко проявлялись на распространенных архитектурах и даже были приняты патчи в некоторые проекты. Доклад Игоря Чудова “Проблемы портирования SBCL на новые аппаратные платформы.” был более пессимистичный. Речь шла о том же Эльбрусе, но в названии вместо “особенностей” звучит уже “проблемы”. Автор доклада жаловался, что не смог даже понятного описания ABI найти, я не удержался и предложил ему почитать нашу статью “Восхождение на Эльбрус — Разведка боем. Техническая Часть 1. Регистры, стеки и другие технические детали” . Правда автор первого доклада, также отметил, что какая-то информация о регистрах Эльбруса есть на wiki Альта. В общем, все сошлись на том, что архитектура безусловно интересная, но закрытость сильно препятствует освоению и затрудняет развитие. Все понадеялись что со временем ситуация изменится, и МЦСТ сделает свои продукты более открытыми, а мы (сообщество) окажем в этом посильную помощь.

    Еще одной очень быстро набирающей популярность архитектурой представленной на конференции была RISC-V. На демо стенде был представлен работающий довольно шустрый прототип. Доклад представил Никита Ермаков, он так и назывался “Архитектура RISC-V”. И был посвящен экосистеме вокруг этой открытой процессорной архитектуры.

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

    Комментарии 10

      +2

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


      Впрочем, HRы, если кто читает, может есть кто поддержит open-source митапы в своих конференц-залах? Понятное дело, что наверно они думают, что там собираются красноглазые фанатики… тогда перебрендируемся — на самом деле, там каждый второй — синиор девопс, хоть так и не называет себя.

        0
        Впрочем, HRы, если кто читает, может есть кто поддержит open-source митапы в своих конференц-залах?

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

          Антон, у меня off-topic вопрос. Меня попросили оценить возможность и трудоемкость поддержки Embox в libmdbx, но я не смог быстро найти информацию что именно и из какой версии POSIX у вас поддерживается.
          Можете по-быстрому подсказать что есть в наличии из списка: fork, mmap(MAP_SHARED), mutex(PTHREAD_PROCESS_SHARED), msync(MS_ASYNC/MS_ASYNC), fdatasync(), fcntl(F_OFD_SETLK или F_SETLK)? Как вариант — просто покажите список символов из libc, librt/libpthread.

            0
            прямо неожиданное место, для такого вопроса :)
            можно и здесь конечно, но если что у нас есть телеграм-чат (https://t.me/embox_chat), возможно это будет удобнее. он живой, мы там отвечаем :)

            fork, mmap(MAP_SHARED), mutex(PTHREAD_PROCESS_SHARED), msync(MS_ASYNC/MS_ASYNC), fdatasync(), fcntl(F_OFD_SETLK или F_SETLK)

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

            я бы ответил так:
            возможность есть, например аккуратно поменять fork() vfork() или аналог, но задача довольно трудоемкая. В смысле, за пару вечеров не решается.
              +1

              Понял, спасибо за ответ. Посредством git grep получил остальные ответы.


              • fork мне нужен только для тестов и может быть заменен на exec с передачей контекста через аргументы (как в Windows).
              • основной "блокер" видимо в отсутствии mmap(file) и msync(), соответственно требуется заменять mmap() на malloc() + read(), а запись в mmap-регион заменять на memcpy() + write().
              • реализуемо, но действительно не за пару вечеров.
                0
                fork мне нужен только для тестов и может быть заменен на exec

                ну да, такой сценарий vfork(); exec(); точно работает. можно еще posix_spawn() прикрутить

                основной «блокер» видимо в отсутствии mmap(file)

                mmap(file) точно работает, мы так рисуем напрямую в видео память.

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

                реализуемо, но действительно не за пару вечеров.

                Задавайте вопросы, будем рады помочь!
                  +1

                  Для mmap(file) я как-то не увидел в исходниках реализации. Т.е. mmap(/dev/framebuffer) это относительно простая вещь в сравнении с mmap(/mount/ext4/my_2gb_file.dat) и следующей из этого обработкой page-faults, отслеживанием активных workset-ов и paged-out на диск.


                  Тем не менее, уже понятно что запустить libmdbx в Embox возможно. Осталось понять нужно ли это кому-нибудь. Как будет время я попробую "допилить за пару вечеров".

                    0
                    Осталось понять нужно ли это кому-нибудь.

                    Да, это главный вопрос! :)

                    Как будет время я попробую «допилить за пару вечеров».

                    Круто, будем рады помочь если возникнут какие нибудь вопросы!
        +1

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


        ««« … подробности из-за чего МВД утверждает, что ТЗ на компы было нарушено, из-за чего компы нельзя было их принимать приемщику: В МВД посчитали, что «Т-Платформы» нарушили техническое задание по трем пунктам. Во-первых, поставили компьютеры с процессором, тактовая частота которого меньше, чем указано в техническом задании, — 1200 мегагерц. Во-вторых, в «Таволга Терминал» отсутствует возможность расширения оперативной памяти до восьми гигабайт, и в-третьих, в нем нет активного охлаждения, то есть вентилятора.


        В «Т-Платформах» рассказали, что все эти нарушения были подтверждены экспертным заключением, которое для следствия сделала компания ООО ЦЭКИ. Наверное, случайно название этой компании созвучно ФГБУ ЦЭКИ — Федерального государственного бюджетного учреждения «Центр экспертизы и координации информации», которое специализируется на проведении экспертиз в сфере вычислительной техники и, как указано на сайте организации, в ее портфеле более 25 тыс. исследований. Что же касается ООО ЦЭКИ, то, по данным информационного ресурса rusprofile, эта компания с уставным капиталом 20 тыс. рублей на 2018 год имела среднесписочное число работников два человека, а по итогам 2017 года ее оборот составил 1,2 млн рублей. Но для несведущего человека наличие в «шапке» официального отчета об экспертизе слова ЦЭКИ, наверное, добавляет представленному документу солидности и значимости.


        Впрочем, в своем отзыве на экспертизу специалисты «Т-Платформ» опровергли ее выводы по всем пунктам.


        Как указано в их отчете, «при определении тактовой частоты процессора “Байкал Т1” были сделаны ошибки методологического характера. Вместо измерения частоты проводилась оценка производительности системы». Как дополнительно пояснили в компании, суть этой методологической ошибки в том, что производительность системы зависит от того, каким программным обеспечением она «нагружается». Сравнивая «Таволга Терминал» с другим устройством на базе процессора «Байкал-Т1», эксперт ЦЭКИ использовал разное ПО, что в итоге и дало ошибочный результат.


        Что касается возможности расширения оперативной памяти, то здесь проблема решается весьма просто: нужно вынуть из слота на материнской плате модуль памяти на 2 Гб и установить вместо него модуль на 8 Гб. Да, конструкция не подразумевает установку двух слотов, как это иногда бывает, но даже если бы их было два, это не решило бы проблемы: расширить объем памяти с 2 Гб до 8 Гб без замены модуля невозможно, поскольку модулей на 6 Гб не существует.


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

          +2
          Ну в том то и дело, что непонятно как отвечать. С одной стороны, пункт наличие вентилятора записанный в ТЗ достаточно спорный, явно ищут формальные поводы придраться. С другой стороны факт наезда есть, получается он не лежит в технической области. И обсуждать причины этого наезада на конференции разработчиков как то тоже не особо имеет смысл.

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

        Самое читаемое