Т.е. в эпоху Web 2.0 вам нужно было арендовать сервер, делать сайт.
Это было в эпоху Web 1.0. В эпоху Web 2.0 появились Gmail, Facebook, Twitter и т.п. Телега со своими каналами - это тоже из эпохи Web 2.0. Если в первой версии веба вам нужно было самому держать свои ресурсы на своих или арендованных площадках (зато вы там были царь и бог - могли делать что угодно и все данные были ваши), то во второй вам давали площадку и задавали рамки дозволенного. Вся ваша информация стала находиться под контролем владельца площадки.
IMHO, Web 3.0 - это прежде всего децентрализация и попытка пользователей вывести свои данные из-под власти корпораций. Семантическая паутина - это как раз таки инструмент для достижения этих целей.
Кстати, телега (discord, slack, ...) с ботами так же представляет собой попытку децентрализации и приватизации данных. Каждый бот может структурировать и хранить обрабатываемую им информацию, как захочет, а с пользователем телеги обменивается текстом/медиа. Это уже ближе к Web 3.0.
Но это моя точка зрения, ваша же может отличаться от моей кардинально. Только мне кажется, что вы своей точкой зрения несколько недовольны:
Web 3.0 ранее нам обещали как "семантическую паутину", еще с 2008 помню. Верили, жали. Дуля.
Просто попробуйте поменять свою точку зрения, чтобы она приносила вам больше позитива и меньше негатива. Я, лично, всегда так делаю :)
Ну, не такой уж и лютый. Во-первых, это мой собственный код - я его знаю вдоль и поперёк. Гордиться там особо нечем - я его писал 5 лет назад, когда только начинал в nodejs по-взрослому, но он работает. Во-вторых, grammY не имеет собственной обвязки для node'овских http-серверов, её приходится делать, если хочешь запускаться и в режиме webhook (а не только в long polling). То же самое относится и к запуску в режиме командной строки с параметрами - нужен какой-то парсер аргументов (commander, в моём случае). И к конфигурации - нужно считывать локальную конфигурацию с токеном подлкючения к Telegram API.
Но в целом согласен - легкий оверинжениринг присутствует. Можно откинуть commander, упростить локальную конфигурацию (считывать порт, домен, пути к сертификату и ключам, токен из настроек окружения или того же файла ./cfg/local.json), самостоятельно обернуть http & https модули для поднятия веб-сервера (http - за прокси и https - как standalone). Суть модульного монолита - в переиспользовании модулей "монолита" в других "монолитах". @teqfw/di & @teqfw/core как раз и занимаются связыванием/развязыванием кода по модулям. Например, у меня есть ещё модуль @teqfw/db - занимается обработкой соединений с реляционными БД (обёртка на knexjs). В некоторых ботах он может использоваться, в некоторых нет. Модули подключения к различным API третьих сторон тоже могут использоваться спорадически.
В целом, количество оверинжинирига зависит от того, как дальше будет применяться общий пакет (@flancer32/teq-telegram-bot). Если для ботов, где все команды имплементируются в бот-приложениях - то да, можно сделать и попроще. Если же для ботов, которые будут шарить модули (npm-пакеты) между собой - то вот уже и не оверинжениринг вовсе :)
По поводу TypeScript - у меня это религиозное (написано 3 года назад, но пока что отношение не изменилось). Я пару лет писал на GWT (Java-to-JS) и считаю, что излишне заявлять о родственности (TS как суперсет от JS), раз уж всё равно нужна транспиляция. Так-то и C# можно в JS транспилировать, и Python, и brainfuck. Любая "накладка", "обёртка" на JS (тот же TS) добавляет что-то своё, но в то же самое время что-то и отнимает (экранирует). А по итогу всё равно всё сводит к JS после транспиляции. Вот и получается, что я усекаю свои возможности по использованию JS, применяя транспилируемые языки. Код после транспиляции не похож на оригинальный даже для суперсета - TypeScript'а. Я использую связывание кода через JSDoc'и. Мне этого достаточно. Зато у меня в работе тот же код, что и в разработке - очень помогает при отладке.
Я начал плотно погружаться в NodeJS в 2019-м году и сразу с import'ов. До этого я использовал JS только на фронте и там был RequireJS и require. Мне кажется, что документацию с import'ами пишут разработчики, которые более ориентируются на современные тенденции развития языка, чем те, кто использует в документации require.
Спасибо, исправляю... Походу у меня в голове наложилось pull на pool. А дальше всё просто: пушить - толкать, пулать - тянуть. Кстати, почему polling - непонятно, ведь poll - это "голосовать" :(
Ещё такой момент - сложные системы обладают свойствами, которые отсутствуют у их составляющих. Поэтому люди (составляющие) будут объединяться в группы (сложные системы) для получения этих самых отсутствующих свойств.
Другими словами, люди стремятся объединяться для получения "плюшек" и готовы мирится с определёнными неудобствами, пока польза перевешивает. Из менее требовательных людей получаются более крупные структуры. В то же самое время, крупные образования обладают большей инерционностью и хуже отвечают на изменения условий существования.
В условиях повышенной изменчивости окружающей среды нужны обе модели - централизованная и децентрализованная. Первая отвечает за стабилизацию, а вторая - за приспосабливаемость. В конечном итоге они обе отвечают за одно и то же - за выживание. Наверное, так и появились многоклеточные организмы. Хотя в природе до сих пор полно одноклеточных, радующихся своей свободе - что им не надо, как лейкоцитам, отдавать свои жизни за интересы "бездушной машины со своими интересами".
P.S.
спасибо за дискуссию, получилось интересно, как минимум для меня :)
Государство - это совокупность людей, признающих действие определённых законов в рамках каких-то границ. Либертарианство - совокупность политических философий и движений, поддерживающих свободу как основной принцип. В основе взаимодействия государства и либертарианца всегда лежит конфликт закона и свободы, т.к. закон - это прежде всего ограничение свободы.
ChatGPT ответил следующее на вопрос "Какие государства можно назвать либертарианскими по своему устройству?":
На данный момент в мире нет государств, которые можно было бы назвать полностью либертарианскими по своему устройству. Либертарианство как философия остаётся больше идеологическим ориентиром, нежели реализованной моделью государства.
Лучишими государствами, соответствующими либертарианской модели, он назвал Гонконг (до 2020-х годов), Сингапур, Швейцария, Эстония.
К каким выводам можно прийти?
либертарианец всегда будет противником государства
государство в принципе не может быть полностью либертарианским
у либертарианцев никогда не будет своего государства
В конце каждого пункта можно на автомате добавлять "в силу конфликта закона и свободы"
Либертарианцы очень полезны для ослабления любого государства и вредны для его усиления. Законы позволяют структурировать общество в некоторых границах (необязательно географических), а "порядок бъёт класс" - см. "бундесмашин".
Поэтому отдельным людям выгодно отдавать часть своих свобод и брать на себя дополнительные обязанности за "плюшки", которые даёт принадлежность к группе "сильных мира сего". И это необязательно "бюрократия" или "футбольная сборная", обычная "мафия" тоже подходит. Там тоже есть свои законы, пусть и неписанные.
Кстати, "сообщество единомышленников" тоже подходит под формулу "люди + границы + законы". Насколько строги законы (правила) в либертарианском сообществе (границы размыты - это понятно) и какие "плюшки" даёт членство в нём?
Когда у вас будет своё государство, которое вы контролируете, будут и люди, недовольные вашим контролем. Ну и чем это отличается от нынешней ситуации? Тем, что государство контролируете не вы?
Я согласен с @uhf и предпочту вместе с ним жить в его государстве, которое защищает интересы своих граждан, чем вместе с вами в вашем государстве, которое защищает интересы тех, кто его контролирует.
Похоже, вы противопоставляете интересы "гражданского общества" и "государства". Почему? Ведь государство состоит из граждан, которые образуют общество. Может быть лучше пытаться их интересы как-то объединять? Так-то декриминализация в интересах и гражданского общества тоже. Но, по вашим словам, заниматься этим процессом должно "государство", а не "гражданское общество".
Крауд-маркетинг — это метод продвижения, при котором размещаются комментарии, сообщения или ответы на тематических форумах, в социальных сетях, блогах и других онлайн-платформах с целью привлечения внимания к продвигаемому сайту, продукту или услуге. Часто такие сообщения содержат ссылки на основной сайт, который нужно продвигать в поисковых системах.
Главная идея заключается в том, чтобы создавать полезный контент и взаимодействовать с целевой аудиторией в рамках обсуждений, тем самым органично вставляя ссылки. Однако, если это делается без учета контекста и выглядит как спам, такие действия могут принести негативный эффект и повредить репутации компании или сайта.
Перефразируя известный афоризм про деньги - "неважно, о чём начинает говорить Карловский, Карловский всегда и всё сводит к hyoo".
Вы на стиле!! :))) Что "тут" и "тут"? Вы даёте ссылки на свои статьи, которые хоть каким-то боком относятся к дискутируемому вопросу и сваливаете в закат. Вы так рейтинг своего hyoo.ru в поисковиках поднимаете?
Вот так делается нормальное версионирование на нормальных платформах
Нажмите F12, скопируйте код в консоль браузера, запустИте, а затем походИте в отладчике по переменным и скоупам - посмотрИте, как выглядит в runtime код, спроектированный для работы с кодом других разрабов.
ОценИте кол-во элементов в импорте для Svelte (13 штук) и ваших добавлений в window с префиксом $mol_ (24 штуки). А ведь я подключил лишь одну вашу библиотеку по работе с датами. Представьте теперь, что будет в window, когда я подключу другие ваши библиотеки, свои модули, модули других разработчиков (подскажу - как все файлы на компьютере, если их собрать в одном каталоге).
В общем, ваш $mol - это аналог parser Студии Лебедева. Хороший инструмент для решения некоторого подмножества задач. Главное - не выходить за границы его применимости (студии).
Ваш подход к построению браузерного приложения мне кажется эгоцентричным до солиптичности. Это неплохо в одних некоторых случаях (когда вы самый главный в песочнице), но может сильно мешать в других некоторых случаях (когда каждый считает себя самым главным в песочнице).
Я как-то в Magento-магазине совмещал больше пяти jQuery-библиотек разных версий, которые тянулись различными Magento-плагинами, и пришёл в восторг, что это всё работает (я тогда только-только из Java вышел). А в вашем подходе я вижу регресс в этом вопросе:
Лично я предпочитаю держать свой global object Window в чистоте и иметь возможность пользоваться разными версиями одной и той же библиотеки. Так-то мне это обычно не надо, но иметь возможность лучше, чем её не иметь.
Я уже понял, что мы с вами по-разному понимаем "интеллект". А что касается "наконец", то - каюсь, не смог удержаться. Вы так забавно подставились, что я был вынужден обратить ваше внимание на этот ваш пассаж. Иногда слова передают совсем другой смысл, чем тот, который в них пытались вложить изначально (Майерсов закон письменной речи).
Вы почему-то БЯМ (LLM) называете ИИ. Это ваша фундаментальная ошибка. В итоге вы сравниваете "зелёное" и "твёрдое". Я не знаю, как работает естественный интеллект (и никто не знает на данный момент), но точно не как БЯМ (вопрос про братьев-сестер вам в помощь в осознании этого факта).
А как проверить уровень и верность/неверность утверждений, знаний, компетентности у того же профессора, на лекциях которого вы сидите, или книги, которую вы читаете?
Практикой.
Второе, как вы оцените глубину и количество?
Цифрами.
Простите за то, что краткость — не моя сестра!
Ничего страшного, я уже поял, что вам не повезло с учителями.
А как проверить уровень знаний, если модель (или человек) начинает придумывать?
Или вот как вы оценили, что "это ... значительно превосходит всех моих учителей как по количеству, так и по глубине знаний"? Для более-менее объективной оценки вам нужно было бы хотя бы дойти до конца количества и глубины знаний ваших учителей, чтобы убедиться, что "это" превосходит их. Если у вас такое случилось, то вам просто не повезло с учителями.
Хотя сдаётся мне, что здесь как раз тот случай, когда кто-то что-то придумывает. И я тоже добавлю в конце IMHO в качестве дисклаймера - IMHO.
Это было в эпоху Web 1.0. В эпоху Web 2.0 появились Gmail, Facebook, Twitter и т.п. Телега со своими каналами - это тоже из эпохи Web 2.0. Если в первой версии веба вам нужно было самому держать свои ресурсы на своих или арендованных площадках (зато вы там были царь и бог - могли делать что угодно и все данные были ваши), то во второй вам давали площадку и задавали рамки дозволенного. Вся ваша информация стала находиться под контролем владельца площадки.
IMHO, Web 3.0 - это прежде всего децентрализация и попытка пользователей вывести свои данные из-под власти корпораций. Семантическая паутина - это как раз таки инструмент для достижения этих целей.
Кстати, телега (discord, slack, ...) с ботами так же представляет собой попытку децентрализации и приватизации данных. Каждый бот может структурировать и хранить обрабатываемую им информацию, как захочет, а с пользователем телеги обменивается текстом/медиа. Это уже ближе к Web 3.0.
Но это моя точка зрения, ваша же может отличаться от моей кардинально. Только мне кажется, что вы своей точкой зрения несколько недовольны:
Просто попробуйте поменять свою точку зрения, чтобы она приносила вам больше позитива и меньше негатива. Я, лично, всегда так делаю :)
Web 3.0 !== Web3.
Как-то так:
И на фронте в бандле тоже ничего существенно не меняется?
TypeScript в сорцах => JavaScript в билде
Спасибо :)
Ну, не такой уж и лютый. Во-первых, это мой собственный код - я его знаю вдоль и поперёк. Гордиться там особо нечем - я его писал 5 лет назад, когда только начинал в nodejs по-взрослому, но он работает. Во-вторых, grammY не имеет собственной обвязки для node'овских http-серверов, её приходится делать, если хочешь запускаться и в режиме webhook (а не только в long polling). То же самое относится и к запуску в режиме командной строки с параметрами - нужен какой-то парсер аргументов (commander, в моём случае). И к конфигурации - нужно считывать локальную конфигурацию с токеном подлкючения к Telegram API.
Но в целом согласен - легкий оверинжениринг присутствует. Можно откинуть commander, упростить локальную конфигурацию (считывать порт, домен, пути к сертификату и ключам, токен из настроек окружения или того же файла
./cfg/local.json), самостоятельно обернуть http & https модули для поднятия веб-сервера (http - за прокси и https - как standalone). Суть модульного монолита - в переиспользовании модулей "монолита" в других "монолитах".@teqfw/di&@teqfw/coreкак раз и занимаются связыванием/развязыванием кода по модулям. Например, у меня есть ещё модуль@teqfw/db- занимается обработкой соединений с реляционными БД (обёртка на knexjs). В некоторых ботах он может использоваться, в некоторых нет. Модули подключения к различным API третьих сторон тоже могут использоваться спорадически.В целом, количество оверинжинирига зависит от того, как дальше будет применяться общий пакет (
@flancer32/teq-telegram-bot). Если для ботов, где все команды имплементируются в бот-приложениях - то да, можно сделать и попроще. Если же для ботов, которые будут шарить модули (npm-пакеты) между собой - то вот уже и не оверинжениринг вовсе :)По поводу TypeScript - у меня это религиозное (написано 3 года назад, но пока что отношение не изменилось). Я пару лет писал на GWT (Java-to-JS) и считаю, что излишне заявлять о родственности (TS как суперсет от JS), раз уж всё равно нужна транспиляция. Так-то и C# можно в JS транспилировать, и Python, и brainfuck. Любая "накладка", "обёртка" на JS (тот же TS) добавляет что-то своё, но в то же самое время что-то и отнимает (экранирует). А по итогу всё равно всё сводит к JS после транспиляции. Вот и получается, что я усекаю свои возможности по использованию JS, применяя транспилируемые языки. Код после транспиляции не похож на оригинальный даже для суперсета - TypeScript'а. Я использую связывание кода через JSDoc'и. Мне этого достаточно. Зато у меня в работе тот же код, что и в разработке - очень помогает при отладке.
GrammY тоже.
Я начал плотно погружаться в NodeJS в 2019-м году и сразу с
import'ов. До этого я использовал JS только на фронте и там был RequireJS иrequire. Мне кажется, что документацию сimport'ами пишут разработчики, которые более ориентируются на современные тенденции развития языка, чем те, кто использует в документацииrequire.Спасибо, исправляю... Походу у меня в голове наложилось pull на pool. А дальше всё просто: пушить - толкать, пулать - тянуть. Кстати, почему polling - непонятно, ведь poll - это "голосовать" :(
Ещё такой момент - сложные системы обладают свойствами, которые отсутствуют у их составляющих. Поэтому люди (составляющие) будут объединяться в группы (сложные системы) для получения этих самых отсутствующих свойств.
Другими словами, люди стремятся объединяться для получения "плюшек" и готовы мирится с определёнными неудобствами, пока польза перевешивает. Из менее требовательных людей получаются более крупные структуры. В то же самое время, крупные образования обладают большей инерционностью и хуже отвечают на изменения условий существования.
В условиях повышенной изменчивости окружающей среды нужны обе модели - централизованная и децентрализованная. Первая отвечает за стабилизацию, а вторая - за приспосабливаемость. В конечном итоге они обе отвечают за одно и то же - за выживание. Наверное, так и появились многоклеточные организмы. Хотя в природе до сих пор полно одноклеточных, радующихся своей свободе - что им не надо, как лейкоцитам, отдавать свои жизни за интересы "бездушной машины со своими интересами".
P.S.
спасибо за дискуссию, получилось интересно, как минимум для меня :)
Государство - это совокупность людей, признающих действие определённых законов в рамках каких-то границ. Либертарианство - совокупность политических философий и движений, поддерживающих свободу как основной принцип. В основе взаимодействия государства и либертарианца всегда лежит конфликт закона и свободы, т.к. закон - это прежде всего ограничение свободы.
ChatGPT ответил следующее на вопрос "Какие государства можно назвать либертарианскими по своему устройству?":
Лучишими государствами, соответствующими либертарианской модели, он назвал Гонконг (до 2020-х годов), Сингапур, Швейцария, Эстония.
К каким выводам можно прийти?
либертарианец всегда будет противником государства
государство в принципе не может быть полностью либертарианским
у либертарианцев никогда не будет своего государства
В конце каждого пункта можно на автомате добавлять "в силу конфликта закона и свободы"
Либертарианцы очень полезны для ослабления любого государства и вредны для его усиления. Законы позволяют структурировать общество в некоторых границах (необязательно географических), а "порядок бъёт класс" - см. "бундесмашин".
Поэтому отдельным людям выгодно отдавать часть своих свобод и брать на себя дополнительные обязанности за "плюшки", которые даёт принадлежность к группе "сильных мира сего". И это необязательно "бюрократия" или "футбольная сборная", обычная "мафия" тоже подходит. Там тоже есть свои законы, пусть и неписанные.
Кстати, "сообщество единомышленников" тоже подходит под формулу "люди + границы + законы". Насколько строги законы (правила) в либертарианском сообществе (границы размыты - это понятно) и какие "плюшки" даёт членство в нём?
Когда у вас будет своё государство, которое вы контролируете, будут и люди, недовольные вашим контролем. Ну и чем это отличается от нынешней ситуации? Тем, что государство контролируете не вы?
Я согласен с @uhf и предпочту вместе с ним жить в его государстве, которое защищает интересы своих граждан, чем вместе с вами в вашем государстве, которое защищает интересы тех, кто его контролирует.
Похоже, вы противопоставляете интересы "гражданского общества" и "государства". Почему? Ведь государство состоит из граждан, которые образуют общество. Может быть лучше пытаться их интересы как-то объединять? Так-то декриминализация в интересах и гражданского общества тоже. Но, по вашим словам, заниматься этим процессом должно "государство", а не "гражданское общество".
Анекдот №252363
Мне тут чат-гопота разложила по понятиям:
Перефразируя известный афоризм про деньги - "неважно, о чём начинает говорить Карловский, Карловский всегда и всё сводит к hyoo".
Вы на стиле!! :))) Что "тут" и "тут"? Вы даёте ссылки на свои статьи, которые хоть каким-то боком относятся к дискутируемому вопросу и сваливаете в закат. Вы так рейтинг своего hyoo.ru в поисковиках поднимаете?
Вот так делается нормальное версионирование на нормальных платформах
Код:
Нажмите F12, скопируйте код в консоль браузера, запустИте, а затем походИте в отладчике по переменным и скоупам - посмотрИте, как выглядит в runtime код, спроектированный для работы с кодом других разрабов.
ОценИте кол-во элементов в импорте для Svelte (13 штук) и ваших добавлений в
windowс префиксом$mol_(24 штуки). А ведь я подключил лишь одну вашу библиотеку по работе с датами. Представьте теперь, что будет вwindow, когда я подключу другие ваши библиотеки, свои модули, модули других разработчиков (подскажу - как все файлы на компьютере, если их собрать в одном каталоге).В общем, ваш $mol - это аналог parser Студии Лебедева. Хороший инструмент для решения некоторого подмножества задач. Главное - не выходить за границы его применимости (студии).
В моей секте этот тип IoC не считается кошерным.
Ваш подход к построению браузерного приложения мне кажется эгоцентричным до солиптичности. Это неплохо в одних некоторых случаях (когда вы самый главный в песочнице), но может сильно мешать в других некоторых случаях (когда каждый считает себя самым главным в песочнице).
Я как-то в Magento-магазине совмещал больше пяти jQuery-библиотек разных версий, которые тянулись различными Magento-плагинами, и пришёл в восторг, что это всё работает (я тогда только-только из Java вышел). А в вашем подходе я вижу регресс в этом вопросе:
Лично я предпочитаю держать свой global object Window в чистоте и иметь возможность пользоваться разными версиями одной и той же библиотеки. Так-то мне это обычно не надо, но иметь возможность лучше, чем её не иметь.
Стандартными, но довольно оригинально:
Default-экспорт es6-модуля для браузера представляет собой глобальный объект Window:
Наверное, в этом есть какой-то смысл, но явно неявный.
А у вас есть что-то более сильно приблизившееся с префиксом "искусственный"?
Я уже понял, что мы с вами по-разному понимаем "интеллект". А что касается "наконец", то - каюсь, не смог удержаться. Вы так забавно подставились, что я был вынужден обратить ваше внимание на этот ваш пассаж. Иногда слова передают совсем другой смысл, чем тот, который в них пытались вложить изначально (Майерсов закон письменной речи).
Вы почему-то БЯМ (LLM) называете ИИ. Это ваша фундаментальная ошибка. В итоге вы сравниваете "зелёное" и "твёрдое". Я не знаю, как работает естественный интеллект (и никто не знает на данный момент), но точно не как БЯМ (вопрос про братьев-сестер вам в помощь в осознании этого факта).
Практикой.
Цифрами.
Ничего страшного, я уже поял, что вам не повезло с учителями.
А как проверить уровень знаний, если модель (или человек) начинает придумывать?
Или вот как вы оценили, что "это ... значительно превосходит всех моих учителей как по количеству, так и по глубине знаний"? Для более-менее объективной оценки вам нужно было бы хотя бы дойти до конца количества и глубины знаний ваших учителей, чтобы убедиться, что "это" превосходит их. Если у вас такое случилось, то вам просто не повезло с учителями.
Хотя сдаётся мне, что здесь как раз тот случай, когда кто-то что-то придумывает. И я тоже добавлю в конце IMHO в качестве дисклаймера - IMHO.