Commit Diff


commit - f89b7471f50600b2d9918387aa06310356802e65
commit + 9c1f72c2bfd009a202e3dac78501a2c0d6a2c668
blob - 092b0a8d35e657615fcb710b87a2458d6ca1a795
blob + 73a5e4a3d8e9544039c130989073c424d0217dd9
--- README
+++ README
@@ -1,11 +1,10 @@
 Тривиальные Технологии
 
+=> gemini://any-key.press/tt
+
 Русский перевод, подготовленный для Gemini капсулы. Распространение, зеркалирвоание и модификации приветствуются.
 
-gemini://any-key.press/tt
-
 Trivial Technologies
 
-Sources:
-* https://trivial.technology/ (English source)
-* https://phreedom.club/tt/ (Russian translate)
+English source: https://trivial.technology/
+Russian translate: https://phreedom.club/tt/
blob - /dev/null
blob + 37dcf33a0537f6def9aab8dd6a160c03ad41a5d4 (mode 644)
--- /dev/null
+++ .gitignore
@@ -0,0 +1,2 @@
+syntax: glob
+generated/
blob - /dev/null
blob + fdddb29aa445bf3d6a5d843d6dd77e10a9f99657 (mode 644)
--- /dev/null
+++ UNLICENSE
@@ -0,0 +1,24 @@
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <https://unlicense.org>
blob - /dev/null
blob + 567342b52d9cfcf1f8c4b155042fbc6abb4f4ee8 (mode 755)
--- /dev/null
+++ build.sh
@@ -0,0 +1,25 @@
+toc_file=$(mktemp)
+
+for file_name in $(ls pages)
+do
+    echo "=> $file_name $(head -n 1 pages/$file_name | sed 's/^## *//')" >> $toc_file
+done
+echo "" >> $toc_file
+
+if [ ! -d generated ]
+then
+    mkdir generated
+fi
+
+for file_name in $(ls pages)
+do
+    cat template/header.gmi > generated/$file_name
+    cat $toc_file >> generated/$file_name
+    cat pages/$file_name >> generated/$file_name
+    cat template/footer.gmi >> generated/$file_name
+done
+
+echo "Files successfully generated"
+ls generated/
+
+rm $toc_file
blob - /dev/null
blob + eb3eef7d7b2b6190f8537ee8a3932524a7407cb0 (mode 644)
--- /dev/null
+++ pages/guidelines.gmi
@@ -0,0 +1,45 @@
+## Методические рекомендации
+
+Итак, допустим, вы убеждены и хотите дополнительных инструкций о том, как помочь движению. Это именно тот документ, что вам нужен. Первые два раздела — короткие и рассказывают о том, как вы можете помочь, не разрабатывая собственное ПО в рамках ТТ. Третий раздел содержит указания по максимальному упрощению ПО, в попытке сделать его Тривиальным.
+
+### Используйте ТТ, расскажите друзьям
+
+Новые возможности бесполезны, если люди ими не пользуются. Правда в том, что вы способны всё поменять. Если вас не устраивает положение дел в какой-то области попробуйте программу ТТ. Если вы всё ещё не удовлетворены — вам будет намного проще поменять всё под свои нужды, так попробуйте это сделать! Видите недовольство своих друзей — расскажите им о ТТ. Если вы знакомы с разработчиками — расскажите им о ТТ. Если вы знаете людей, чьи цели сходны с вашими — расскажите им о ТТ, пусть предложат свой вариант.
+
+### Держите Зеркала
+
+ТТ по своей сути Тривиальны. Они не могут быть централизованы. Например, этот экземпляр (оригинальный он или нет) всего лишь зеркало. Ваше зеркало может содержать изменения, делающие его более пригодными для ваших нужд или нужд вашего сообщества. Всё это доступно под Unlicense, так что вам нет нужды беспокоиться о том, что вы делаете с идеей. Вот ряд рекомендаций по процедуре зеркалирования:
+
+* Скопируйте исходники (через git или просто как текстовые файлы).
+* Измените template/footer.gmi, добавив туда ваши контактные данные в качестве сопровождающего.
+* Внесите изменения на своё усмотрение и разместите результат.
+
+Процесс сертификации прост: попросите человека, не имевшего дела с этим ПО, попользоваться им на протяжении выходных (суть требования про "два дня"), пусть попробует понять это ПО полностью, включая API зависимостей, всю лицензию и мета-знания (как собрать и запустить это ПО). Если вы не можете найти подобного человека, найдите технаря, но в этом случае требование по времени сокращается в 8 раз (до шести часов). Это гораздо более жёсткое требование. Ну и, разумеется, вы не можете сертифицировать собственные проекты.
+
+Людям, просматривающим список сертифицированных проектов, рекомендуется самостоятельно проверять эту сертификацию, и, возможно, добавить свой список. Варианты, когда кто-то просто сертифицирует всё, что пожелает, включая свои собственные проекты, должны быть очевидными — в этом случае зеркало стоит просто игнорировать, просто ввиду недобросовестности сопровождающего.
+
+### Создавайте Тривиальное ПО
+
+Первый шаг прост — вы должны пожелать, чтобы ваш проект был Тривиальным. Если у вас есть подобное желание, вставьте фразу об этом в README, заявляя миру, что ваш проект стремится достичь стандартов движения ТТ, и ссылку на зеркало по вашему выбору (ссылка должна вести на страницу "Добро пожаловать"). Всё остальное не имеет большого значения, если вам удастся достичь указанных стандартов. Ведь всё остальное — не более, чем рекомендации.
+
+1. Ваши коммиты должны быть минимальными и объяснять причину вносимых изменений.
+
+2. Оставляйте комментарии в местах существенных изменений.
+
+3. Всё, что объявлено глобально, должно быть read-only для всех модулей, в которых оно объявлено. Изменения вносятся в стиле библиотек или в main. В этом случае указывайте на это в комментариях.
+
+4. Функции и типы должны быть логичными и ограниченными. Ни в коем случае не создавайте функцию, делающую множество вещей.
+
+5. Минимизируйте количество аргументов. Если у функции 10 аргументов — проверьте, почему их столько и не стоит ли их перегруппировать в reusable type.
+
+6. Минимизируйте вложенность и потоковые функции. Поддерживайте несколько уровней отступов. Если вам нужно настраиваемое поведение, подумайте о map/reduce и о visitor pattern. Функции высшего порядка хороши, если их использование понятно.
+
+7. Поддерживайте файл NEWS. Он должен быть последовательным и содержать только изменения, видимые пользователю.
+
+8. Поддерживайте файл READING. Он должен содержать информацию о том, как читать исходники, в каком порядке и мягко помогать читателю разобраться в вашей программе.
+
+9. Минимизируйте объём и ограничения лицензии в файле LICENSE, так как полное понимание этого файла — часть понимания вашего проекта. Мы рекомендуем Unlicense и 0BSD.
+
+10. Минимизируйте количество "мета-работы". Проект, использующий CMake, требует от читателя понимания CMake. Это лишнее переключение контекста сильно увеличивает сложность понимания проекта, особенно, когда мета-работа разрастается до сотен строк. Предпочитайте либо очень малый объём мета-работы (простой Makefile или скрипт) или языки, не требующие оной (например Go, где вся дополнительная работа сводится к build-flags, число которых должно быть минимальным).
+
+11. Добавляйте только те функции, которые используете лично вы. Вместо добавления всех фишек — просто оставьте открытые места, где каждый сможет расширить функциональность под себя. Если вы не используете какую-то фичу сами, вы не знаете, как другой может захотеть её использовать, так что просто позвольте им сделать это самим, для их собственных нужд.
blob - /dev/null
blob + 22348b550f7f173566e88b3598bca551b39646b8 (mode 644)
--- /dev/null
+++ pages/index.gmi
@@ -0,0 +1,11 @@
+## Главная
+
+Тривиальные Технологии (ТТ) — это новый способ производства СПО, цель которого — максимально расширить возможности человека, предоставив средства для достижения любой цели.
+
+ТТ тривиальны. Любой новичок должен быть в состоянии полностью понять их за два дня. Профессионал должен быть в состоянии разобраться за чашкой чаю дождливым вечером. Они не должны представлять из себя чёрный ящик, вскрытие которого чревато навлечением на себя древнего проклятия.
+
+ТТ податливы. Есть очевидные места для добавления функций и точки расширения функциональности. Нет никакой необходимости танцевать с бубном вокруг особенностей реализации ради получения нужной функциональности.
+
+ТТ открыты. Настолько, насколько возможно. ТТ предлагаются без каких-либо условий. Они лицензируются под максимально пермиссивными лицензиями, которые мы можем найти (0BSD, Unlicence, CC0) и даже это представляется нам компромиссом. Никто не осудит вас за форк ТТ, не у кого спрашивать разрешения, нет никакого оригинального автора, которого необходимо вечно упоминать.
+
+ТТ принадлежат вам. Чтоб выяснить, откуда есть пошли ТТ, и какие принципы лежат в основе движения, прочитайте Манифест.
blob - /dev/null
blob + 35bb97ba923b7bec6abda4c075b27b7a5440ea55 (mode 644)
--- /dev/null
+++ pages/manifesto.gmi
@@ -0,0 +1,31 @@
+## Манифест
+
+Призрак бродит по техносфере — призрак Освобождения. Все мировые силы объединились в священный союз, чтобы изгнать призрака: Комиссии по Стандартам, Правительства и Суды, Медиа и IT-компании. Те, кто извлекает прибыль из ограничения доступа к знаниям — будь то в денежном выражении или в виде влияния. Те, кто извлекает прибыть из целых сфер деятельности, отгороженных от простых смертных бюрократическими барьерами, жаргоном и временными рамками.
+
+Открытые научные знания — высмеиваются. Люди, обучающие других изготавливать собственные лекарства, видя злоупотребления фармкомпаний, объявляются опасными преступниками. Движение за Открытый Исходный код принимается только в том виде, в котором приводит к централизации под крылом корпораций.
+
+Следующие инструменты: авторское право, патентное право, законы о торговых марках, все они служат одной цели — централизовать знания, держать их под контролем оригинального автора. Мы же, наоборот, стремимся к прямо противоположному — освобождению знания, где это только возможно. Это движение, хоть и относится в первую очередь к программному обеспечению, является часть более обширного философского течения.
+
+Чтобы сделать доступными знания о ПО, равно как и возможность изменять и распространять его, мы стремимся уничтожить все препятствия, которые нам по силам. Доступ к изменению и любому типу использования предоставляется путём перевода в Общественное Достояние (или лицензии без обязательств, если перевод в ОД невозможен). Программное обеспечение само по себе должно быть доступным — в идеале, неспециалист должен быть способен разобраться в нём за два дня. Следует принимать активные меры для поддержания его в таком состоянии, подстилая соломку, где придётся.
+
+Мы называем подобное понятное и свободное ПО "Тривиальным ПО", или как вариант "Тривиальными Технологиями". На них никто не может заявить свои права — как на колесо. Как с рычагом, любой может разобраться, как их использовать, объединять и модифицировать для создания чего-либо иного. Любой может получить выгоду от создания, но выгода сама по себе не должна вставать на пути знания.
+
+### Что должно быть сделано
+
+* Идея должна быть распространена. Всё, что вы здесь видите, свободно доступно для использования, изменения и распространения. Держите копии, зеркала, изменённые версии, рассказывайте друзьям. Если вы хотите внести существенные изменения, либо поменять сам манифест, пожалуйста, измените и название во избежание недопонимания, и чтобы вас не путали с нами.
+
+* Должны существовать проекты, стремящиеся стать Тривиальными. Это не всегда достижимо, но само намерение и усилия, в направлении разумного дизайна проектов, улучшат положение вещей сами по себе. Размещайте в README ваших проектов ссылки с декларацией ваших намерений, и ссылки на зеркало по вашему выбору. Не всё ПО должно быть Тривиальным, но в каждом направлении деятельности такая альтернатива должна существовать — тогда у любого, недовольного тем, как обстоят дела, будет точка для самостоятельного старта.
+
+* Люди должны быть проинформированы. Подавляющее большинство людей уверено, что не может ничего сделать, и это относится не только к ПО, но и к другим направлениям деятельности. Они считают, что слишком тупы, необучены, неспособны, чтобы хотя бы попытаться. Продемонстрируйте им, что это не так. Поощряйте их к действиям. Позвольте массам подняться выше того, что они считали пределом своих способностей.
+
+### Open Source сломан
+
+Вы можете спросить — почему бы просто не следовать существующей философии, такой как GNU или OSI. Да потому что Открытый Код принципиально поломан.
+
+Open Source всегда фокусировался на лицензировании, на использовании авторского права как инструмента для достижения своих целей. Чем это хорошо, само по себе? Представьте себе огромную кодовую базу, действительно огромную, с костылями через каждые 5 строк, исправляющими ошибки в совершенно другом источнике. Допустим, продукт, созданный на основе этого кода, широко используется. Пускай он выпущен под GPL, как много пользователей сможет доработать его под свои конкретные нужды? Лицензия сама по себе ничего не значит. Кроме того, эти движения по сути своей несовместимы с целями ТТ.
+
+Когда речь заходит о GNU, их обещания и цели быстренько рассыпаются на части. Их исходники быстро становятся всё сложнее и сложнее, увязая в обязательствах, которые они на себя взвалили. Они используют авторское право как основу для своих собственных ограничений, тем самым эффективно усиливая систему, с которой стремятся бороться. Они говорят о распространении программ как фундаментально дружественном акте, в то время как бесконечные форки GPL-программ приводят к нескончаемым распрям. GNU — фундаментальная сила централизации, а централизованные системы намного легче контролируются и разрушаются внешними силами, чем любые другие.
+
+Что же до OSI, они своему названию не соответствуют. По запросу FSF они сертифицировали AGPL, лицензию, нарушающую как минимум 6 пункт OSD. Спешное принятие, престижа ради, заставило пожалеть о последствиях. Когда же появилась очень похожая лицензия (SSPL от MongoDB Inc.), они её отвергли. Некоторые члены организации указывали на непоследовательность позиции руководства. OSI бежит от Общественного Достояния как от чумы, отказываясь сертифицировать CC0 и Unlicense, несмотря на то, что ни одна из них не нарушает ни один из пунктов OSD. Они утверждают, что это связано с тем, что перевод в Общественное Достояние требует пересмотра законов каждой страны, в тоже время упоминая некую резервную лицензию, которая соответствует требованиям. Вот только упоминание ведёт в никуда.
+
+Другие похожие движения (различные нео-лицензии, например) — просто подделки под GPL, страдающие теми же или худшими болячками.
blob - /dev/null
blob + 878965795535e0a8876ca77e7a03b2fa9eeef5aa (mode 644)
--- /dev/null
+++ pages/welcome.gmi
@@ -0,0 +1,9 @@
+## Добро пожаловать
+
+С большой вероятностью, вы попали сюда по ссылке из README какого-либо проекта. Это означает, что этот проект стремится быть тем, что мы называем "Тривиальными Технологиями". И вот что это означает.
+
+Закон об авторском праве был создан, чтоб гарантировать доступ и обеспечить распространение полезных произведений искусства и технологии. Однако сейчас он делает прямо противоположное. Горстка избранных контролирует каждую толику технологий, которые вы используете. В вы должны вымаливать, как нищие, чтобы любые вещи, нужные вам или вашему сообществу, были добавлены/исправлены/удалены в конечном продукте. Из-за "авторских прав" вы не можете самостоятельно вносить эти изменения. Либо можете, но на кабальных условиях. Кроме того, централизация контролирующих это органов увеличивает риски: горстка избранных владеет вашей информацией, контролирует то, как вы используете их продукт. И даже если сейчас они действуют в рамках разумного, их в любой момент могут перекупить и всё изменится.
+
+Тривиальные Технологии стремятся достичь прямо противоположных целей. Тривиальные Технологии отрицают авторское право, даже в качестве средства самовоспроизводства. Тривиальные Технологии стремятся к отсутствию ключевых владельцев; изменения и ремиксы приветствуются, и оригинальному автору совершенно необязательно даже знать о том, что вы используете его произведение. Тривиальные Технологии стремятся быть простыми — настолько простыми, чтобы сторонний человек мог разобраться в сути технологии за два дня, получив тем самым возможность изменять её под свои требования.
+
+Вкратце, проект, приведший вас сюда, не принадлежит сам себе. Он принадлежит всем. Вы должны быть в состоянии легко в нём разобраться и свободно делать с ним всё, что пожелаете независимо от мнения авторов — это знание, в его самой чистой и свободной форме.
blob - /dev/null
blob + 2f15faa91564bd0267a956793c62f312e18b23e7 (mode 644)
--- /dev/null
+++ template/footer.gmi
@@ -0,0 +1,10 @@
+
+Сгенерировано из репозитория:
+```
+ssh://anonymous@got.any-key.press/tt-ru-gem
+```
+=> https://got.any-key.press/?action=summary&path=tt-ru-gem.git
+
+Связаться со мной можно:
+* через электронную почту: continue@to.any-key.press
+* через ActivityPub (Fediverse): @continue@honk.any-key.press
blob - /dev/null
blob + 78395c6970625bfbe571d719a7412e302598b45c (mode 644)
--- /dev/null
+++ template/header.gmi
@@ -0,0 +1,2 @@
+# Тривиальные технологии
+