LINUX.ORG.RU

Lenin.Blog 0.1

 , ,


5

6

Увидела свет первая версия простого легковесного блога, поддерживающая обмен сообщениями сервер-сервер и сервер-пользователь.

Проект написан на Python 2.7 и представляет собой запускаемое приложение, которое можно использовать даже без выделенного веб-сервера (например, в локальной сети). База данных не требуется.

Поддерживается базовая функциональность блога: сообщения, комментарии, тролли, тэги, карбонки, RSS, отображение картинок.

Блог может меняться трафиком с совместимыми с http://gk11.ru проектами, будь то другой блог, форум, эха или другое представление. Пользователи могут подключаться, загружать и писать сообщения с помощью совместимых оффлайн-клиентов.

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

Демонстрация блога: http://blog.51t.ru

>>> Подробности

★★★★★

Проверено: anonymous_incognito ()
Последнее исправление: cetjs2 (всего исправлений: 2)
Ответ на: комментарий от kirk_johnson

В любом случае, меня интересовало, как регистрация помогает отличить реального Васю Пупкина от поддельного.

Как в сабже — не знаю :) У меня же, в отношении пользователей ноды доверяют друг другу. Полноценные участники сети идентифицируют юзеров по md5 от e-mail при регистрации (это заодно позволяет прозрачно использовать Gravatar'ы) и зарегистрироваться на чужой e-mail невозможно. Т.е. простой пользователь не может отправить сообщение от чужого ID. Имена пользователей могут, конечно, совпадать, но тогда явно указывается нода, которой принадлежит «посторонний» пользователь. В общем, перепутать пользователей становится можно только при большом желании :) И всегда легко показать, что эти пользователи — разные.

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

Вот, например, реальная трансляция из Infonesy: http://forums.balancer.ru/2017/11/t100653--dajdzhest-ot-noyabrya-2017g.html

Тут все пользователи из Твиттера. Поэтому на моём форуме они числятся гостями.

А тут я весной экспериментировал с трансляцией такого же потока в ZeroBlog: https://proxy.zeronet.a0z.ru/1F3ggqq99yHzra2aEM6uRRbvbDMaj4EdpF/

Там юзеры вообще не идентифицируются, подразумевается, что блоги в ZeroNet однопользовательские :) Этот вопрос тоже надо бы как-то решать, но у меня там застопорилось в другом концептуальном вопросе, в объёмах. Для одного блога получается очень большой поток.

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

Фетчер — это сервер или пользователь?

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

Ну, вот, захочет фетчер подписаться на ЛОР. Вопрос, нужны ли ему архивы 20-летней давности?

как скрипт написан, так и будет. в любом случае, сисоп испытывает фетчер на своей ноде. и если он нагрёб 10 гб, то это его проблемы, никто на это подписываться не будет. и это уже его задача привести свой скрипт до приемлемого уровня. под такую вещь можно и отдельную станцию открыть. например, парсинг lorquotes у меня висит на http://iigate.gk11.ru - при этом на самом лорквотесе я забанен уже сто лет как, а тот, кто там забанен, не может даже читать данный сайт. выводить его в свои эхи я не вижу смысла, но если кто-то захочет подписаться - он добавляет строчку в фетчер и подписывается. или юзер, который собирает сообщения клиентом, прописывает эту эху с этого сервера, чтобы скачивать в офлайн

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

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

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

Честно говоря, ни разу такой не видел.

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

А вот сейчас очень активно такое используется в RetroShare. Надо же как-то защищаться от троллей и спаммеров :)

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

как скрипт написан, так и будет

Ясно.

и если он нагрёб 10 гб, то это его проблемы, никто на это подписываться не будет

О, кстати. А если на него уже подписаны и вдруг он вытягивает откуда-то 10Гб :) Подписчики это всё получат? Это всё тоже на совести их скриптов?

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

А разметка какая используется? Как картинки рассматриваются?

у меня никак не рассматриваются, кроме блога, где отображаются картинки в топиках по ссылке

разметка примитивная, ибо главное правило - текст идентичен тексту в plain-text :)

====
 1
   2
     3

подразумевает plain-text с сохранением форматирования, и рендер > и ссылок - всё. plain-text наше всё, фидо же :)

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

В данном же случае, я могу писать от имени Васи Пупкина вообще что угодно

Как пользователь — нет. Как нода — да. Но это в любом случае везде так в обычных решениях. На ЛОРе maxcom может что угодно написать от твоего имени, но это никого не беспокоит :)

Поэтому я не очень понимаю, зачем там вообще нужна регистрация, если честно.

Регистрация против PGP? Ну, например, обычная регистрация намного проще и понятнее для простого пользователя :) А так — в той же ZeroNet тоже нет регистрации в привычном понимании. Хотя там есть получение приватных ключей из централизованного ресурса (единственная условно уязвимая точка системы в текущем виде).

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

Жесть. Т.е. протокол привязан к порядку строк? :) Не надёжнее было сразу сделать YAML, JSON или хотя бы .ini-like?

да. изначально был json, но я отказался от него в пользу plain-text. такие сообщения можно читать даже глазами :) то есть, самый примитивный клиент состоит только из fetch/ftp/wget/curl и less. и это даже работоспособно :)

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

подразумевает plain-text с сохранением форматирования

Понятно. Я для обмена стараюсь приводить всё в Markdown, хотя в общем случае это не обязательно.

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

А если на него уже подписаны и вдруг он вытягивает откуда-то 10Гб :) Подписчики это всё получат?

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

но так, да - нод останавливает станцию/юзеры снимают фетч, потом это всё блеклистят, вычищают и дальше продолжают жить.

в принципе, всё как в фидо, только с учётом различий того, что у них аутбаунд-стайл, а у нас - фетч-стайл

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

да. изначально был json, но я отказался от него в пользу plain-text. такие сообщения можно читать даже глазами :)

YAML как раз обычно очень легко читается глазами :D При чём для Markdown уже есть устоявшийся формат (например, его понимает GitHub), когда в начале файла стоит YAML-шапка с метаданными. Т.е. у меня пакет обычно выглядит так:

---
UUID: com.twitter.tweet.936508006048632832
Node: ru.balancer.twitter.favorites
TopicUUID: ru.balancer.tt-rss.digest.201712
Author:
    Title: Nickro
    UUID: com.twitter.users.Nickro666
Date: 'Fri, 01 Dec 2017 11:11:22 +0300'
Modify: 'Fri, 01 Dec 2017 11:11:22 +0300'
Type: Post
Markup: Markdown
---

Мешки мяса и костей поплатятся, последний час близок.

[![](http://pbs.twimg.com/tweet_video_thumb/DP8k-utWkAA1U2D.jpg)](https://twitter.com/Nickro666/status/936508006048632832/photo/1)


Или так:
---
Title: 'Калининград и автобусы'
UUID: zeronet.1MaQ4W5D6G52TpBfPACU9k9QcB1DxvHZ5v.post_56
Author:
    Title: Balancer
    EmailMD5: b00aed2adf22fd02381d0bb6bb6a8483
    UUID: zeronet.1PniNzyi8fygvwyBaLpA9oBDVWZ5fXuJUw
Date: 'Thu, 03 Aug 2017 08:04:12 +0300'
Type: Blog
---

# Калининград и автобусы

После Москвы необычно выглядит насыщенность Калининграда автобусами и маршрутками. На окраине темп движения ещё с Москвой сравним, но в центре общественный транспорт на остановках, буквально, без преувеличений, в колонны собирается. Иногда до 4-5 автобусов и маршруток в ряд ждут очереди на остановку, уткнувшись один в другой. Яндекс.Транспорт показывает иногда маршруты с чуть ли не десятком подходящих автобусных номеров (а в Москве — единицы).

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

---

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

Понятно. Я для обмена стараюсь приводить всё в Markdown, хотя в общем случае это не обязательно.

изначальная идея была в том, что и клиент и сервер можно собрать с помощью циркуля, линейки и арифмометра, на худой конец системы только с busybox, поэтому всё было упрощено максимально. а сейчас просто *так всё исторически сложилось*. у нас и девочки в своё время заводились, и их тоже устраивает plain-text. и лор мне тоже нравится своей plain-text-овостью. и то, что сюда форматеры добавляют, мне очень не нравится

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

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

У меня также. Поэтому Markdown и YAML ;)

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

YAML

А вот это ништяк. Читать дампы сообщений в YAML несравненно проще.

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

дай, что почитать по теме. если твой формат будет легко реализуем, выкину поддержку своего протокола и приделаю поддержку твоего ;)

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

дай, что почитать по теме.

У меня документации ещё нет :) И потому что влом, и потому что ещё не всё утряслось в плане стандартизации. И в этом плане YAML/JSON тоже лучше, чем порядок строк — можно легко менять формат, практически не теряя обратную совместимость.

Точка входа, так сказать, http://www.infonesy.wrk.ru/ — но там в основном ссылки на подобные обсуждения :)

если твой формат будет легко реализуем, выкину поддержку своего протокола и приделаю поддержку твоего ;)

А я наоборот подумал, что мне не сложно и твой формат парсить :D Фишка-то Infonesy не в конкретном формате обмена, а в логике протоколов. YAML+Markdown в файлах и btsync/rslsync — это только конкретно используемый мной транспорт данных. Но транспорты могут быть разными. Главное, что каждое сообщение имеет определённый формат, позволяющий его однозначно идентифицировать и понять.

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

Python 4 может стать последним Python вообще

Да и хрен на него. Мало языков что-ли?

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

А для картинок/аттачей я планирую использовать IPFS, но пока до конца идея тоже не реализована. Тот же твиттеровский поток пока использует ссылки на картинки прямо в Twitter'е. И поэтому они уже не раз пропадали с удалением сообщений или аккаунтов. Сообщение на форуме осталось, а вот картинок уже нет.

При трансляции ZeroNet блогов я тоже показываю картинки прямо из ZeroNet через прокси.

А в идеале нода при трансляции сообщения в сеть должна положить картинку в IPFS и передать её хеш в сообщении.

Сейчас у меня есть IPFS-гейты с round-robbin для распределения нагрузки и с возможностью автогенерации превьюшек, но ещё нет RPC для лёгкой публикации с нод, где IPFS нет. Руки не доходят допилить :)

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

А я наоборот подумал, что мне не сложно и твой формат парсить :D

мой формат может парсить, что угодно, но унификация это всё равно хорошо - будет визуализатор для твоего формата :)

тем более, я только-только начал возрождение своегофидо, и могу менять формат достаточно безболезненно.

осталось разобраться, как делать из этого эхи :) где вообще берутся сообщения, есть ли источники, раздающие в этом формате? и как они их раздают?

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

Если бы они сделали обратную совместимость как у Java, то это бы ПРОСТО РАБОТАЛО везде, а не порождало кучу проблем из-за того, что в одних дистрах и OS — Python 2 и в репозиториях нет Python 3, а в других — ситуация «наоборот».

При этом портирование 2to3 видимо не является элементарным, раз жемчужину пайтоностроения — ртуть, которую юзают эти ваши фейспуки и мозиллы, так и не могут до сих пор спортировать на новые рельсы.

Стыд и срам.

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

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

buratino ★★★★★
() автор топика
Ответ на: комментарий от KRoN73
---
Title: 'Калининград и автобусы'
UUID: zeronet.1MaQ4W5D6G52TpBfPACU9k9QcB1DxvHZ5v.post_56
Author:
    Title: Balancer
    EmailMD5: b00aed2adf22fd02381d0bb6bb6a8483
    UUID: zeronet.1PniNzyi8fygvwyBaLpA9oBDVWZ5fXuJUw
Date: 'Thu, 03 Aug 2017 08:04:12 +0300'
Type: Blog
---

# Калининград и автобусы

После Москвы необычно выглядит насыщенность Калининграда автобусами и маршрутками. На окраине темп движения ещё с Москвой сравним, но в центре общественный транспорт на остановках, буквально, без преувеличений, в колонны собирается. Иногда до 4-5 автобусов и маршруток в ряд ждут очереди на остановку, уткнувшись один в другой. Яндекс.Транспорт показывает иногда маршруты с чуть ли не десятком подходящих автобусных номеров (а в Москве — единицы).

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

---

Да, кстати. Получив такое сообщение, что я должен с ним сделать? Тут не указано ни форума, ни того, к чему это сообщение привязано. Как вообще определить, что и где?

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

осталось разобраться, как делать из этого эхи :) где вообще берутся сообщения, есть ли источники, раздающие в этом формате? и как они их раздают?

Вообще, у меня сущности максимально разделены. Для иллюстрации, как идёт трансляция избранного из Твиттера на форум.

1. Есть отдельный скрипт, который дёргает Твиттер через API на предмет списка избранного. Полученные сообщения из Твиттер-JSON записываются в принятом в сети формате в YAML+Markdown и в таком виде кидаются в каталог, синхронизируемый через rslsync (бывший btsync). Это узел, отвечающий за передачу контента в Infonesy. Ключ R/O этого каталога открытый и им может пользоваться любой для чтения архива сообщений (но сейчас не полного, я одно время начал чистить его до глубины в месяц, потом перестал :D)

2. Есть машина, где на синхронизируемом в rslsync каталоге висит inotify-демон. Как только появляется новый пост из Твиттера, этот демон читает его, парсит и размещает на форуме в том формате, какой понимает форум. Практически они находятся на одном сервере, но в общем случае могут быть на разных. Например, inotify-демон может дёрнуть внешний сервис через API и разместить результат там.

Важно, чтобы точка публикации в конкретную систему, которая сама по себе не знает про Infonesy, была одна. Чтобы не возникло проблем с UUID. Не каждый движок может хранить в себе оригинальный UUID сообщения и тогда за соответствием внутренних ID и UUID должен следить этот самый драйвер. Иначе могут вылезать дубли — где-то потеряется оригинальный UUID и система отправит сообщение уже от своего имени со своим UUID.

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

в общем, я вникать буду ещё долго. перво наперво я переведу свои сообщения вот в этот вот yaml, а потом буду постепенно разбираться с остальным, реализовав хотя бы минимальный набор

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

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

вот я пришёл на твой форум и хочу стянуть тему - как оно мне отдастся в этом формате?

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

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

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

типа «дай список форумов», «дай список тем на форуме», «дай список постов в теме», «отдай такие-то посты». Ну, или сразу «залей целиком такой-то форум или топик».

и что оно получит? json? какие атрибуты, кроме msgid, там будут?

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

А уж как это сохранение совместимости отражается на объёме кода — я, пожалуй, промолчу.

Я тебя умоляю. Лучше иметь жирный дистрибутив Python cо слоями совместимости, чем кучу проблем со скриптами и нытьё 24/7 в Bug Tracker'ах на тему кросс-питонирования и прочей чехарды.

Сейчас ситуация ещё хуже: имеем два python'а, два pip'а, два набора батареек.

По этой проблеме даже Debian'овцы закопошились: https://www.opennet.ru/opennews/art.shtml?num=42057

И чего? Прошло два года. Много напортировали? Python 2 выкинут из дистрибутивов Debian вместе с Ansible и hg? Собственно тут и показана вся суть кричащих в треде «обновляйтесь, ибо грядёт» индивидуумов и прочих фанатиков.

Вместо «python 2.7 нинужно» лучше бы писали патчи для ртути и по настоящему закопали вторую ветку. Но всё что они могут — звонко кричать на форумах про раздутие зоопарков, которые создатели языков (а не прикладные программисты) сами же и сделали.

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

Полученные сообщения из Твиттер-JSON записываются в принятом в сети формате в YAML+Markdown и в таком виде кидаются в каталог, синхронизируемый через rslsync (бывший btsync).

то есть, это куча файлов в этом самом yaml, с произвольными именами файла?

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

и ещё, есть или поддерживается какой-нибудь клиентский софт? можно ли пользоваться форумом офлайн?

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

Да, кстати. Получив такое сообщение, что я должен с ним сделать? Тут не указано ни форума

Каждый раз, когда я публикую сообщение, я публикую и все объекты, с которыми оно связано. Но уже в JSON, так как текстового контента там нет :) Например:

{
    "UUID": "ru.balancer.tt-rss.digest.201712",
    "Node": "ru.balancer.twitter.favorites",
    "Title": "Дайджест от декабря 2017г",
    "Type": "Topic",
    "ForumUUID": "ru.balancer.tt-rss.balancer.published"
}


Это «топик» публикованного в Tiny Tiny RSS (такой источник у меня тоже есть).

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

Тут есть один тонкий момент. При файловом синке пост может прийти раньше, чем описание топика. А топика такого может в системе ещё не быть (самая первая публикация в нём). В этом случае публикация происходит в топик-«карантин», специальный топик, куда идут непривязанные посты. Но, естественно, сохраняется и UUID поста, и UUID оригинального топика. Как только следом придёт верное описание топика, он будет создан, а все посты, принадлежащие ему по UUID перенесены туда. Аналогично — форум-каратин.

Вот, например, у меня есть форум, куда в режиме теста валятся трансляции с основного форума: http://www.unlimit-talks.tk/ (ы. трансляция в октябре сломалась, надо починить и засинкать). Но там сделано так, что новые форумы автоматически не создаются, чтобы можно было вручную организовать иерархию. И поэтому все топики в несозданные форумы падают в форум-карантин: http://www.unlimit-talks.tk/forumdisplay.php?fid=4

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

После Москвы необычно выглядит насыщенность Калининграда автобусами и маршрутками. На окраине темп движения ещё с Москвой сравним, но в центре общественный транспорт на остановках, буквально, без преувеличений, в колонны собирается. Иногда до 4-5 автобусов и маршруток в ряд ждут очереди на остановку, уткнувшись один в другой. Яндекс.Транспорт показывает иногда маршруты с чуть ли не десятком подходящих автобусных номеров (а в Москве — единицы). Поэтому автобусы ходят без давки, стоять практически не приходится, почти всегда есть сидячие места.

Кто тебе это сказал.

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

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

Да хоть тут, я ЛОР постоянно мониторю :)

В ZeroNet есть подфорум по Infonesy в частности и p2p-системам вообще, но это надо ставить ZeroNet :) Трансляция форумов ZeroNet в обычные и обратно у меня среди приоритетных, но руки не доходят: http://127.0.0.1:43110/1F4WVHDpQYxuJL6xEY3EZTYkZds9TTjVHC/

В R/O посмотреть можно через прокси: https://proxy.zeronet.a0z.ru/1F4WVHDpQYxuJL6xEY3EZTYkZds9TTjVHC/

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

и что оно получит? json? какие атрибуты, кроме msgid, там будут?

По запросу придут такие же объекты, как при обычном обновлении. Т.е. посты в Markdown+YAML, описания топиков, форумов и самих нод — в JSON.

Ну, это конкретно в том транспорте, что я использую :) А так, повторюсь, транспорт может быть разным.

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

то есть, это куча файлов в этом самом yaml, с произвольными именами файла?

Сперва да, но потом я решил, что лучше, чтобы имя файла совпадало с UUID объекта + расширение :)

com.twitter.tweet.925446308663410688.md
ru.balancer.tt-rss.digest.201712.json


Типа такого.

Так нагляднее и можно сразу читать нужные объекты из репозитория по UUID, если понадобится :)

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

и ещё, есть или поддерживается какой-нибудь клиентский софт? можно ли пользоваться форумом офлайн?

Это уже уровень, которым Infonesy не занимается :) Её задача — доставить контент.

Для офлайна можно использовать ZeroNet (хотя и не так удобно), когда я допишу транспорты туда. Или твою систему :) Или какой-то обычный форум на локалхосте (такой вариант как раз тоже обкатываю).

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

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

Кто тебе это сказал.

Это я летом из Калининграда и писал :)

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

Это уже уровень, которым Infonesy не занимается :) Её задача — доставить контент.

Так, если предположим, что я не меняю никаких форматов, а просто хочу наладить обмен сообщениями ГК11 <-> ZeroNet, ГК11 <-> форум или ГК11 <-> Твиттер, то насколько это реально?

И как будет выглядеть, если я захочу меняться трафиком с форумом (с каким?). Все будут буратинами? (А папа Карло получит орден Отец-Герой и медаль заслуженного дровосека Сахары). Или они под своими именами будут.

Если это транспорт, чтобы чем-то с чем-то меняться, то как им вообще меняться? И с кем?

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

В ZeroNet есть подфорум по Infonesy в частности и p2p-системам вообще, но это надо ставить ZeroNet :) Т

Похоже этот ваш ZeroNet прикольная штука, поизучаем....

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

Если бы они сделали обратную совместимость как у Java, то это бы ПРОСТО РАБОТАЛО везде, а не порождало кучу проблем из-за того, что в одних дистрах и OS — Python 2 и в репозиториях нет Python 3, а в других — ситуация «наоборот».

В нормальных дистрах, я не знаю что за маргинальщиной Вы пользуетесь и зачем, python2/python3 нормально работают и никаких проблем с этим нет.

ugoday ★★★★★
()

за 13 часов после публикации новости тема попала на 7-е место в топ месяца :) вот что Ленин животворящий делает :)

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

RHEL/CentOS/Oracle Linux для вас уже маргинальщина? Ясно, понятно.

Впрочем, забавно, как ты здесь отстаиваешь ломание совместимости в Python 3 и при этом являешься активным противником Wayland, который старается сохранить совместимость с X.Org

Напомню, что последний проект представил практически полнофункциональную прослойку XWayland, которая по производительности не уступает настоящим иксам. Так вот, если бы Wayland разрабатывал Гвидо и его свита, то иксовые приложения в Wayland'е запустить просто не представлялось возможным, а сам Гвидо выпустил пару мануалов и рекомендаций для портирования кода, завязанного на иксы, на wayland-рельсы.

Но, к счастью, Wayland разрабатывают более адекватные люди и они понимают, что людям нужна «совместимость вниз».

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

у python 2 отличная совместимость с python 2.

py3k - это отдельный, самостоятельный проект. никто при этом не отбирает python 2. и не отберёт ещё долго. py2 и py3 так же существуют совместно, как py2 и ruby, как py2 и perl. наличие py3 никак не отменяет существование py2. а сам py2 ещё многих тут переживёт :)

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

Так, если предположим, что я не меняю никаких форматов, а просто хочу наладить обмен сообщениями ГК11 <-> ZeroNet, ГК11 <-> форум или ГК11 <-> Твиттер, то насколько это реально?

ZeroNet — это сеть, приложения там разные :) Плюс Infonesy как раз тем и хороша, что позволяет разбить обмен на компоненты.

ZeroBlog -> Infonesy — есть, работает.

ZeroTalk -> Infonesy — нет, реализовать очень легко, фактически в ZeroTalk (как и ZeroBlog) все данные лежат в кучках .json, нужно только распарсить и объединить (там на каждого участника свой файл, в котором все его сообщения во всех топиках).

Twitter -> Infonesy — есть, хотя реализован у меня только для избранного, для просто твитов делается также, только запрос будет чуть иной. Но пока не делал.

Теперь про ГК11 в Infonesy. Формат типа http://gk11.ru/m/XZYKRMGMUATLBEDEKNGX — уже почти готов. Только поля переформировать :)

Как писать в сам ГК11 не знаю ещё, но понял так, что не должно быть сложно.

Теперь недостающее.

Infonesy -> ZeroBlog. Я делал тесты, в общем, работает. Проблема в пользователях. ZeroBlog принципиально однопользовательская система. То есть для совсем полноценной многопользовательской работы нужно добавить ещё и создание этих блогов. Один пользователь — один блог. Для трансляции же одного юзера проблем быть не должно. Хотя на практике пока дальше тестов прошлой весной не продвигался.

Infonesy -> ZeroTalk. Не брался. Потенциально та же проблема с юзерами. В ZeroTalk нельзя писать гостям. Автоматизировать заведение пользователей тоже не получится. Как временная мера — один отдельный гостевой пользователь и писать всё от его имени, добавляя в сообщение оригинальные имя автора и источник.

Infonesy -> Twitter. Вот с этой фигнёй относительно грустно :) Хитрая твиттеровская аутентификация диктует реализацию полноценного Web-приложения. Пока лениво разбираться. Аналогичная фигня и с Facebook. Есть рабочие черновики Facebook -> Infonesy, но пока ещё не наоборот.

До кучи:

Telegram -> Infonesy. То, что сейчас как раз делаю. Собственно, бот сидит и пишет групповой чат в сыром виде. Достаточно сделать сохранение в виде Markdown+YAML и можно затягивать на форум архив чата. Обратная задача не сложнее, в Telegram очень легко публиковать.

Infonesy -> мои форумы (жёстко перепаханный самописный наследник punBB). Работает хорошо и используется активно.

мои форумы -> Infonesy — аналогично.

Infonesy -> MyBB 1.x. Одна из самых первых реализаций. В принципе, работает, но очень много уже устарело и можно сделать красивее :) Хотя всё это без аттачей и картинок.

MyBB 1.x -> Infonesy, вроде, работает. Но на практике пока не используется. Тоже без аттачей.

В планах по приоритету:

1. Telegram, ZeroTalk, ZeroBlog

2. Facebook, Twitter.

3. Форумные движки Vanilla и Flarum. Первый очень хочется, но там дебильная система, когда первый пост темы является не постом, а частью темы :) Резко усложняется идентификация, перемещение и т.п. А так движок очень привлекательный.

Ещё посматриваю на Twister (микроблог на блокчейне, есть API), теперь, вот, на сабж можно посмотреть :) Когда-то думал о Juick'е, но он почти умер, так что сейчас сильно отложено.

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

Похоже этот ваш ZeroNet прикольная штука, поизучаем....

Прикольная :) Его единственные существенные минусы — это мало народа и отсутствуют удобные и эффективные средства обмена большими файлами (кино пиратить). А вот по плюсам считаю его №1 в децентрализованных социальных системах и стараюсь всячески пиарить :)

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

Как писать в сам ГК11 не знаю ещё, но понял так, что не должно быть сложно.

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

а для нодообмена мне непременно надо что-то фетчить. :) какой-то сервер и какое-то апи.

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

а для нодообмена мне непременно надо что-то фетчить. :)

Так это не вопрос. Вон, Твиттер я тоже фетчу :)

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

py3k - это отдельный, самостоятельный проект. никто при этом не отбирает python 2.

Ну это только твоё ИМХО, мейнтейнеры того же Debian уже старались избавиться от Python 2, выше давал линк. Но Python 2 победил.

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

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

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