LINUX.ORG.RU
ФорумTalks

Что вообще значит свободный софт?

 


1

1

В рамках подготовки к длинным европейским выходным, давайте обсудим.

Что вкладывается в это понятие? Только лицензия?

Правильно ли называть свободным всё что выпущено под одобренными FOSS-лицензиями? Достаточно ли одной только лицензии для того чтобы софт считался свободным, этичным, и т.п.? Должна ли это быть copyleft-лицензия?

Как вписать сюда встраиваемые устройства, приватность, облака и микросервисы?

★★★★★
Ответ на: комментарий от alpha

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

Речь идёт о затратах людских ресурсов на эти операции. Её нужно снижать на уровне внедрения более эффективных технологий.

Обслуживает не код, обслуживают люди.

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

Когда я говорю сервис нельзя скопировать я имею в виду прежде всего людей которые его держат. Ну и ресурсы которые он потребляет.

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

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

wandrien ★★
()
Ответ на: комментарий от alpha

То есть ты можешь поменять одного поставщика на другого. Но чем этот второй будет лучше первого?

Если я могу на практике, а не просто в теории, поменять поставщика, это означает конкурентный рынок.

Конкурентный рынок в конечном счёте означает реальное повышение качества продукта у всех поставщиков, потому что им придётся либо вкладываться в реальный R&D, либо вымереть.

wandrien ★★
()
Ответ на: комментарий от wandrien

Обслуживает код, который обслуживают люди.

Нет. Обслуживание кода - это разработка, исправление багов и т.п.

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

Это 24/7 мониторинг, отслеживание сообщений о проблемах безопасности, построение планов на развитие системы, и даже поддержка пользователей и модерация.

От качества кода зависит стоимость обслуживания.

Да. Но ещё она зависит от качества и количества обслуживающих людей.

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

Конечная цель любого разработчика задекларировать что ops-люди не нужны :)

Хорошая цель.

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

Но до этого ещё очень далеко.

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

alpha ★★★★★
() автор топика
Последнее исправление: alpha (всего исправлений: 1)
Ответ на: комментарий от wandrien

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

В общем, не знаю, как объяснить.

Ты делаешь акцент на людях, а я на неэффективности процессов, которая ведёт к необходимости увеличивать количество людских и финансовых ресурсов.

wandrien ★★
()
Ответ на: комментарий от wandrien

Если я могу на практике, а не просто в теории, поменять поставщика, это означает конкурентный рынок.

Конкурентный рынок в конечном счёте означает реальное повышение качества продукта у всех поставщиков, потому что им придётся либо вкладываться в реальный R&D, либо вымереть.

Да. Так вот я о критериях качества и говорю. Что в них надо внести кроме скорости, красивости и т.п. ещё и «свободность», которую и нужно определить.

alpha ★★★★★
() автор топика
Ответ на: комментарий от alpha

Конечная цель любого разработчика задекларировать что ops-люди не нужны :)

«Поэтому свои рабочие места мы вам так просто не отдадим.»

Тут можно вставить какой-нибудь несмешной боян про RH. Будем считать, что вставил.

wandrien ★★
()
Ответ на: комментарий от alpha

Да. Так вот я о критериях качества и говорю. Что в них надо внести кроме скорости, красивости и т.п. ещё и «свободность», которую и нужно определить.

А свобода смены поставщика – не свобода что ли?

wandrien ★★
()
Ответ на: комментарий от alpha

Хорошая цель.

Ну кстати ты сама её сформулировала в начале темы.

dev тут были ни при делах.

wandrien ★★
()
Ответ на: комментарий от wandrien

Это один из критериев, и он хороший. Из него вырастает техническое требование открытых стандартов на API.

Но можно пойти дальше.

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

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

alpha ★★★★★
() автор топика
Ответ на: комментарий от alpha

Ну и потом можно и модель управления добавить.

Вот Debian Project - это ведь тоже уникальный некопируемый проект. Ты теоретически можешь скопировать его код и получить какой-нибудь devuan, но толку не будет потому что люди туда не пойдут.

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

Если это работает для проекта, почему это не может работать для сервиса, или для ноды в федеративной сети?

alpha ★★★★★
() автор топика
Ответ на: комментарий от alpha

Какой-нибудь Microsoft Office 2010 требует преимущественно Dev в сравнении с Ops. (В значительно меньшей степени.)

А Google Docs требует много Ops, и при этом часто удобнее конечному пользователю.

Но никакой логической связи «востребован на рынке, поэтому и нужно много Ops – нет». Это просто текущая ситуация вот так сложилась.

О чём я говорю – речь идёт о том, чтобы вытащить условный «Google Docs» по стоимости сопровождения с уровня сервиса обратно на уровень приложения, при этом сохранив все ключевые фишки сетевого сервиса.

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

wandrien ★★
()
Ответ на: комментарий от alpha

Сообщество невозможно скопировать. О чем тогда говорить?

Сообщество ценно тем, какие задачи оно решает, которые не может решить индивид.

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

То есть если на дворе условный 1990-й, и никакого gcc не существует, то придётся его разработать. Другое дело, если он уже есть.

Глядя на Debian Project я могу спросить себя: почему вообще машина не может собрать и сконфиругировать операционную систему себе сама? Ну типа как тут:

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

wandrien ★★
()
Ответ на: комментарий от wandrien

Развитие ostree-подобных технологий может сделать «дебианы» ненужными.

wandrien ★★
()
Ответ на: комментарий от alpha

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

Как это должно выглядеть?

wandrien ★★
()
Ответ на: комментарий от wandrien

Сообщество невозможно скопировать. О чем тогда говорить?

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

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

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

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

Поэтому мне не кажется что независимость и самообеспечение - это главная всеобщая цель. И цель свобод софта не в том чтобы каждый мог владеть своей маленькой копией всего.

Я могу скопировать википедию на диск, но зачем я буду это делать?

Я могу в одиночку собрать собственный линукс-дистрибутив но опять же зачем?

alpha ★★★★★
() автор топика
Ответ на: комментарий от alpha

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

Да. Ну это вроде очевидно…

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

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

Я могу скопировать википедию на диск, но зачем я буду это делать?

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

Вот типичная картина из реальной жизни:

Есть тематический форум. У форума есть хостинг картинок на отдельном движке и есть какой-то справочник на вики-движке, наполняемый энтузиастами. Типичная ядерная аудитория 40-50 человек.

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

Наверное, ядерная аудитория могла бы скинуться и заплатить каждый рублей по 500 админу на оплату хостинга и на пиво. А может быть бы даже хватило, чтобы нанять фрилансера на решение каких-то мелких задач. Но аудитория уже 10 лет привыкла всё получать нахаляву, и все разговоры про сам сайт обычно ведутся только вокруг того «а хорошо бы вот это, а хорошо бы вот то».

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

Одно из применений P2P — это достижение максимальной прозрачности стека для вот таких небольших сообществ. Это снижение непроизводственных издержек на порядок. Тогда ты как специалист можешь действовать методом малых шагов, помогая то тут, то там, и совместными усилиями вы можете сделать очень многое. Админ больше не будет тащить на себе всё, 5 человек это уже небольшая команда, даже если они заходят на 3 часа раз в неделю.

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

Это одна сторона. Есть еще одна, связанная с надежностью. Сервер не ляжет, если сервера нет. Все члены сообщества являются распределённым сервером. Резервирование с многократным запасом.

Я могу в одиночку собрать собственный линукс-дистрибутив но опять же зачем?

Не можешь (:

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 3)
Ответ на: комментарий от wandrien

Например как в инфре openstack:

вот у них есть репозитории дизайн-спеками https://specs.openstack.org/openstack-infra/infra-specs

Спеки - это change-request в публичный репозиторий. Прежде чем начать реализацию, спека проходит ревью, в котором может поучаствовать кто угодно.

https://review.opendev.org/c/opendev/infra-specs/+/198884

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

alpha ★★★★★
() автор топика
Ответ на: комментарий от wandrien

Одно из применений P2P — это достижение максимальной прозрачности стека для вот таких небольших сообществ. Это снижение непроизводственных издержек на порядок. Тогда ты как специалист можешь действовать методом малых шагов, помогая то тут, то там, и совместными усилиями вы можете сделать очень многое. Админ больше не будет тащить на себе всё, 5 человек это уже небольшая команда, даже если они заходят на 3 часа раз в неделю.

Мне непонятно почему ты считаешь что это свойство именно P2P. Это совершенно классическая проблема решаемая практически любым сообществом.

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

alpha ★★★★★
() автор топика
Ответ на: комментарий от alpha

Мне непонятно почему ты считаешь что это свойство именно P2P.

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

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

Давай так:

Для совместной работы над чем-то не обязательно каждому владеть независимой копией. Но git победил svn.

Для совместной работы над чем-то не обязательно каждому владеть независимой копией. Но docker победил на коленке написанные мануалы «как поднять отладочный экземпляр приложения из тарбола».

Всё еще не понятно?

  • Автономность процедур.
  • Воспроизводимость процедур.
  • Нулевая ручная конфигурация.
  • Формализованный воркфлоу.
  • Полнота имеющихся данных.
wandrien ★★
()
Ответ на: комментарий от wandrien

Для совместной работы над чем-то не обязательно каждому владеть независимой копией. Но git победил svn.

Или GitHub?

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

Для совместной работы над чем-то не обязательно каждому владеть независимой копией. Но docker победил на коленке написанные мануалы «как поднять отладочный экземпляр приложения из тарбола».

И DockerHub?

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

Автономность процедур. Воспроизводимость процедур. Нулевая ручная конфигурация. Формализованный воркфлоу. Полнота имеющихся данных.

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

alpha ★★★★★
() автор топика
Ответ на: комментарий от alpha

Уж если в такие примеры играть - надо ansible в пример приводить, а не вот это вот всё.

Вот где прямота и отсутствие централизации.

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

alpha ★★★★★
() автор топика
Ответ на: комментарий от alpha

Или GitHub?

Хм. А ты думаешь, почему мы вообще говорим про GitHub, а не про SvnHub? Разных хостингов кода были десятки.

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

Проектом владеет тот, кто имеет математическую возможность вносить правки в сервис.

Никак не могу эту мысль донести. Ты наверное привыкла «обслуживать сервера», и идея «обслуживать приложения» никак не ложится.

«Проект» — это адрес в сети. Вот как github.com. Кто владеет адресом, тот владеет проектом. Кто не владеет адресом, тот просто посетитель. Посетитель может только исполнять код проекта.

Сервис как приложение, приложение как сервис. Как тебе еще объяснить?

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

Все «непрозрачные процедуры» лежат в репозитории на гитхабе и прекрасно воспроизводятся локально.

Точно так же открывая страницу форума в ZeroNet, посетитель обычно не идёт проверять, что там лежит в папке js/, и совпадает ли оно с тем кодом, который лежит под GPL в репе. Но имеет такую возможность.

Но если ему нужно запустить копию этого форума для отладки, он просто берёт этот код под GPL и запускает. Здесь нет шага ручной конфигурации. Вообще никакой конфигурации не требуется. Не нужно инициализировать БД, поднимать инстансы микросервисов, настраивать cron и права доступа, заливать тестовые данные в базу. Тестовые данные можно прямо с форума содрать при помощи cp в терминале.

А еще можно прямо на существующем сайте включить режим разработчика и полезть отлаживать код. Даже если сайт чужой. И без ущерба для других нод.

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

Я тебе и говорю о снижении издержек именно этого человека путём оптимизации стека. Я говорю о том, что P2P подразумевает автоматическое снижение таких издержек. То, что для сообщества из 50 человек было трудным, станет менее трудным, а что было нереализуемым — возможным.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 2)
Ответ на: комментарий от praseodim

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

Я немного не в теме, уточняю: это действительно так работает и юридически нормально? Пример?

Brillenschlange
()
Ответ на: комментарий от Brillenschlange

Емнип разные кодеки и прочие вещи спокойно лежат на гитхабе.

Смотри вообще что такое патент. Патенты никогда не запрещали проектировать реализацию чего-то запатентованного.

praseodim ★★★★★
()
Ответ на: комментарий от praseodim

Мне про патенты не интересно, мне интересно про правоприменение.

готовые бинарники приходится распространять из разных сторонних юрисдикций.

Мне про это интересно. Т.е. можно написать что-то «не то», зааплоадить потом куда подальше и всем сказать «я сделал тут, но берите там» и это будет нормально с точки зрения права?

Или я вообще ничего не понял?

Brillenschlange
()
Ответ на: комментарий от Brillenschlange

Т.е. можно написать что-то «не то», зааплоадить потом куда подальше и всем сказать «я сделал тут, но берите там» и это будет нормально с точки зрения права?

Как я понимаю, делают вид, что они как бы не причем.

praseodim ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.