The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск p2p-мессенджера Communist 1.4, opennews (??), 25-Июн-22, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


11. "Выпуск p2p-мессенджера Communist 1.4"  +1 +/
Сообщение от Аноним (7), 25-Июн-22, 09:54 
Ну или сразу текстовый интерфейс.
Ответить | Правка | Наверх | Cообщить модератору

41. "Выпуск p2p-мессенджера Communist 1.4"  +1 +/
Сообщение от Аноним (-), 25-Июн-22, 11:55 
Токсеры умнее сделали - засунули мессенжер в либу. Поэтому быает и в текстовом и в графическом и даже в мобилочном виде. А не так что одна программа где все прибито на гвозди.

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

Ответить | Правка | Наверх | Cообщить модератору

51. "Выпуск p2p-мессенджера Communist 1.4"  +2 +/
Сообщение от ProfessorNavigator (ok), 25-Июн-22, 12:15 
Автор один. При этом программирование отнюдь не является его основным занятием. И по образованию он тоже далеко не программист. Иными словами, будет время и возможность - всё сделаем. И текстовый интерфейс, и оформление в виде библиотеки.
Ответить | Правка | Наверх | Cообщить модератору

73. "Выпуск p2p-мессенджера Communist 1.4"  +/
Сообщение от Аноним (-), 25-Июн-22, 13:14 
> Автор один. При этом программирование отнюдь не является его основным занятием. И
> по образованию он тоже далеко не программист. Иными словами, будет время
> и возможность - всё сделаем. И текстовый интерфейс, и оформление в виде библиотеки.

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

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

Лично мне понравилось как токсеры сделали. Идеи протокола как сделать чтобы лезло вещде кажется стащены с старого скайпа. А кто апи либы придумал не знаю, но получилось получше чем у других. Весь месенджер в либе, а UI - обвес либы. И боты - тоже. При том либа довольно минималистична по зависимостям. Не надо ставить мезоны-питоны-электроны и, ктулху меня упаси, icu, а собирается даже совсем без билдсистемы по минимуму как gcc ... *.c.

И как я понял токсеры сделали очень забавное крипто: 32-байтовый DHT ID сразу же и публичный ключ, годный для защищенных коммуникаций с назначением. Это делает относительно секурный DHT вообще нахаляву. На 160-битном mainline торенте так не получится, сравнимые свойства будет получить сложно и криво. И даже с вон тем хитрым финтом оно такими наслояниями костылей оборсло что мало не покажется, я далеко не полностью разобрался.

Ответить | Правка | Наверх | Cообщить модератору

84. "Выпуск p2p-мессенджера Communist 1.4"  +1 +/
Сообщение от ProfessorNavigator (ok), 25-Июн-22, 13:43 
> Просто не в обиду автору до того как кодить что-то неплохо посмотреть
> что на эту тему есть, какие у них подходы, во что
> им это отлилось по итогам, достоинства и недостатки.

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

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

Когда проект задумывался, то я даже приблизительно не представлял, какой будет конечный объём кода, и как это всё будет работать в принципе. Потому что о сетях и их работе я в то время имел самое смутное представление. Многое стало ясно уже в процессе разработки. Поэтому я исходил из принципа: "Сначала сделать, потом сделать, чтобы работало, затем - чтобы работало хорошо". Сейчас проект на этапе "чтобы работало", дальше будет - "чтобы работало хорошо".  

> и, ктулху меня упаси, icu, а собирается даже совсем без билдсистемы
> по минимуму как gcc ... *.c.

При работе с текстом от кодировок вы не уйдёте никак. Особенно в кроссплатформенном приложении. Поэтому какая-то замена icu в tox есть однозначно (например icu слинкован статически), какая именно - я не знаю. Было желание написать что-то своё (не потому что "моё лучше", а чтобы была альтернатива - монополизм почти всегда ничем хорошим не заканчивается), поэтому в код tox я не лазил принципиально. Хотя и в курсе, что такой проект есть.

> И как я понял токсеры сделали очень забавное крипто: 32-байтовый DHT ID
> сразу же и публичный ключ, годный для защищенных коммуникаций с назначением.

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


Ответить | Правка | Наверх | Cообщить модератору

116. "Выпуск p2p-мессенджера Communist 1.4"  +/
Сообщение от Аноним (-), 25-Июн-22, 14:50 
> Не говоря уж о времени разбирать чужие решения и вникать в чужой код.
> Это не есть хорошо, но пока ситуация именно такова.

Я конечно понимаю что NIH штука кусачая, но вы и правда надеетесь дойти своим ходом до удачных идей быстрее чем суммарный общепланетарный интеллект по тематике?

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

А как он тогда задумывался? И что продумывалось?

> "Сначала сделать, потом сделать, чтобы работало, затем - чтобы работало хорошо".
> Сейчас проект на этапе "чтобы работало", дальше будет - "чтобы работало хорошо".

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

> При работе с текстом от кодировок вы не уйдёте никак. Особенно
> в кроссплатформенном приложении.

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

И нет, icu там таки не линкуется. Просто это мои проблемы что делать с пришедшим мсг. Если продвинутый лингвизм, может и icu поюзать. А в простых случаях можно и забить на это. Зачем боту понимающему пяток команд типа !help сдался icu?

Это называется разделение функциональности. Название libtoxcore намекает что это core месенжера. А ui уже другой уровень абстракций. Вот он и займется этим - если вообще есть и оно ему надо.

> Только в Коммунисте использован ещё один трюк - "сложение" ключей, чтобы даже сам
> пользователь не знал, через какие ключи идёт обмен данными.

У токса на самом деле ключи разные быают. Есть ключ транспортного уровня, DHT ID. Чтобы послать сообщение между системами в DHT, надо знать DHT ID назначения. Знание IP:port недостаточно, надо знать еще DHT ID. Оно там походу ключ 25519, а ширина DHT специально 256 битов, как ключи 25519. У торента DHT 160 битов, как SHA1. Этого мало чтобы адрес DHT был ключом публичного крипто "напрямую".

Есть другой ключ, долговременный. DHT'шный ключ чисто технический и зачастую временный. У бутстрапов он постоянный, это несколько портит их приваси но они ж и так публичные. Однако они равноправны с юзерами, просто юзеры иногда меняют "технический" ключ DHT для улучшения приваси.

Долговременный ключ который юзеры дают как идентификатор для поиска - не есть DHT ID и в DHT нет никого с таким "адресом".

А почему оно на самом деле такое? А потому что https://nacl.cr.yp.to/box.html - основано на вот этой штуке. В более попсовом, быстром и портабельном виде это известно как libsodium.

Ответить | Правка | Наверх | Cообщить модератору

128. "Выпуск p2p-мессенджера Communist 1.4"  +2 +/
Сообщение от ProfessorNavigator (ok), 25-Июн-22, 15:50 
> Я конечно понимаю что NIH штука кусачая, но вы и правда надеетесь
> дойти своим ходом до удачных идей быстрее чем суммарный общепланетарный интеллект
> по тематике?

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

> А как он тогда задумывался? И что продумывалось?

В основном - сама концепция. P2P мессенджер, с использованием UDP hole punch и DHT для обмена адресами. При этом изначально я даже не знал - взлетит ли вообще. Это стало ясно сильно потом, когда уже появился более менее рабочий код с точки зрения тестов на реальном железе. Было несколько моментов, когда я уже хотел плюнуть на всё, и заниматься другими вещами.

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

Вы думаете, у меня было время хоть что-то нормально обдумывать?)) Хотите - я вам расскажу, в каких условиях всё это писалось? Я сидел в деревне, один. Вокруг - зима. Отопление - на дровах, которые нужно самому пилить и колоть, до ближайшего магазина 2 километра по никем не очищаемым от снега тропинкам. После снегопада - двое суток на расчистку снега, чтобы можно было нормально перемещаться по участку. Самому, лопатой. В курятнике - 8 кур. Снесут яйца - значит сегодня будет прибавка к каше, нет - значит нет. В доме утром температура +13 по Цельсию. Часа через три протопки (т.е. постоянной беготни на улицу и обратно за дровами) - +20. При том, что "за бортом" регулярно -20 и ниже. Из оборудования - ноутбук и мобильный модем. И, если что, я не жалуюсь - я объясняю почему всё выглядит так, как выглядит. Будет кому-то полезно - отлично. Нет - ну значит нет.  


Ответить | Правка | Наверх | Cообщить модератору

193. "Выпуск p2p-мессенджера Communist 1.4"  +1 +/
Сообщение от Аноним (-), 26-Июн-22, 05:52 
> NIH тут совершенно не причём (до вашего комментария я даже не знал,
> что это такое - пришлось лезть читать).

Это месенджер на основе DHT. Распределенный. Шифрованый. Опенсорсный. С протоколом получше иных открытых потуг на тему (e.g. Jami). До них дошло сделать его как либу. EPIC WIN относительно остальных: так появились довольно разные клиенты и боты.

Судя по протоколу те кто его делал посмотрели вокруг и сначала немного подумали что они делают и зачем. Все не предусмотришь, но у них сразу эквивалент STUN был прямо в их DHT, его не надо конфигурировать, любой узел так умеет. Если конфиг позволяет, клиент может быть TCP-релеем слегка похожим на TURN. Бутстрапы обычно предоставляют это, остальные по желанию, оно умеет аудио-видео так что трафик может быть солидный. Типа суперноды скайпа. TCP делали позже и он базовый и более кривой но лучше чем ничего. По факту TCP и UDP части самодостаточны. Можно гонять узел UDP-only, TCP-only или TCP+UDP. Они реюзают структуру пакетов но в принципе могут по отдельности существовать. А то что не будет прямого конекта - оно умеет минимальный туннелинг, это не tor конечно по приваси, но конект "не напрямую" все же в итоге сможет.

Так что с одной стороны у казуального юзера все как правило просто работает. С другой эксперты могут сконфигурить с весьма кастомными запросами под нестандартную сеть. У меня это стало локалочно-впнным интеркомом живым даже и без интернета, вплоть до того что вон те виртуалки не имеют выхода в инет но могут ботика крутить. Он всегда доступен в LAN, а если интернет есть то и остальным.

Аудио и видео - опция. В либе выбираемо с AV билдить или минимальную, оно даже gcc *.c собирается так то. А если либа собрана с AV, например, системная, с точки зрения программы все определяется повесил кодер handler событие или нет и возиться с аудио можно, но не обязательно. Так что минимальный текстовый бот - даже на си менее страницы кода! Поэтому через 15 минут я пустил основательно пропатченый пример с вики. Через пару дней ботик узнавал мастера и слал в UART микроконтроллера пакеты, щелкая нагрузками. Такой себе IOT. Просто целиком мой. А неплохо для распределенного чата то. В этом месте я все же немного вспоминаю что-то про способности и потребности.

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

Мне оказалось сложно приглядеться к коду из-за его структуры и отсутствия док. Как я знакомлюсь с программой? Понимаю макроуровень, общую структуру, как это концептуально взаимодействует в общем виде. А потом при интересе к той или иной части и желании поменять что-то лезу в микроуровень, поняв по макро-сетке координат куда идти. Деление на core lib и UI этому тоже нехило помогает. Но тут все это не сложилось.

> о работе друг друга. А потом сравнивают результаты. Тут был примерно
> такой же принцип. Получится сделать лучше - отлично. Не получится -
> ну значит либо это невозможно, либо нужен принципиально другой подход к
> решению задачи.

У меня на этот счет есть странная теория: имея X ресурсов может быть эффективнее сделать основу 1 раз и 10 раз улучшить нежели 10 раз сделать основу и не иметь ресурсов на ее улучшение, получив 10 паршивых программ. Конечно это утрированное упрощение.

А то что нормальная архитектура протокола, core и апи может появиться сама, сначала накодим, потом подумаем, я не верю. Это как войнаимир vs миллион обезьян примерно. И джун отличается от синьора тем что не понимает это. Иногда даже полный чайник может срубить EPIC WIN, но догадаться о всех нюансах проигнорив чужой опыт все же "очень маловероятно".

> В основном - сама концепция. P2P мессенджер, с использованием UDP hole punch
> и DHT для обмена адресами.

Tox... чем-то похожим и является. Только чуть умнее сделан. DHT более секурный чем майнлайновый torrent: DHT коммуникации шифрованы, основано на том что cryptobox() работает так: shared secret(our privkey, their pubkey) == shared secret(their privkey, our pubkey). Они и сделали DHT по ширине pubkey: DHT ID заодно в лоб "their pubkey". Если мы его знаем, это достаточно для начала защищенных коммуникаций с ними, обмен ключами УЖЕ случился. Это не очень сильная защита если узлы рандомные, от левого вредителя не поможет, он расшифрует но потом может сделать что-то вредное. Но если оба узла мои - ВРЕДИТЕЛИ ПРОЛЕТАЮТ. Прелесть этой схемы в том что key exchange халявен. Если мы знаем DHT ID мы знаем их публичный ключ. С 160-битным DHT ID это не получится, короткий слишком. А такая интеграция крипто и DHT делает комбо с полезными свойствами сильно проще чем это могло бы быть при полной развязке их друг от друга. Тот же bitmessage делает это сильно более дурацки, у них ключи большие и они явно getpubkey протоколом делают. Это дольше, сложнее в коде, кривее и менее надежно. Из минусов - схема шифрования все же прибита на гвозди. С другой стороны, вы все-равно хотите одинаковое крипто по всей сети. Почему-то. Иначе как они комумницировать будут? Полурабочие уродцы юзерам не очень нужны. Туда же выбор крипто алгоритмов и проч.

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

У токса DHT ID сам по себе НЕ используется ими как долговременный ключ даваемый в линке. Это "транспортная" сущность, клиенты кроме бутстрапов иногда рандомно меняют для улучшения приваси как я понял (минус: лимитирует годность нестабильных клиентов как бутстрапов). Сам по себе долговременный ключ используется для того чтобы искать нужные ремоты в DHT.

Что еще интереснее, при этом не обязан быть direct connect. Он может быть. А может и не быть. Они сделали минимальные туннели. Не tor конечно, но айпишник малость скрывает и работает даже в ситуациях "оба за файрволом/прокси". Оба юзера при этом "нанизывают" себе ремоты у которых интернет нормальный, и вон те уже между собой стыкуются в нормальном инете.

Disclaimer: я очень приблизительно врубился в азы их протокола, это довольно большая и продвинутая штука с неглупыми фичами. Возможны неточности. Большая впрочем относительно: если сделать те же фичи иначе, у большинства кодеров это выйдет сильно жирнее и страшнее.

И все же, видите сколько всего можно узнать просто посмотрев как другие это делают? Я бы до половины таких трюков сам не допер, N голов лучше 1.

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

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

> Вы думаете, у меня было время хоть что-то нормально обдумывать?)) Хотите -
> я вам расскажу, в каких условиях всё это писалось? Я сидел
> в деревне, один. Вокруг - зима. Отопление - на дровах, которые
> нужно самому пилить и колоть, до ближайшего магазина 2 километра по
> никем не очищаемым от снега тропинкам.

Да это кажется типично для многих проектов. Торвальдс писал Linux в свободное время, коментя "wouldn't be as big and professional as hurd". А фултайм занятием он стал как-то сильно потом, когда другие увидели в этом некую ценность.

> температура +13 по Цельсию. Часа через три протопки (т.е. постоянной беготни
> на улицу и обратно за дровами) - +20.

Такое ощущение что дому просто не хватает утепления, если честно.

> почему всё выглядит так, как выглядит. Будет кому-то полезно - отлично.
> Нет - ну значит нет.

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

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

Ответить | Правка | Наверх | Cообщить модератору

229. "Выпуск p2p-мессенджера Communist 1.4"  +/
Сообщение от ProfessorNavigator (ok), 26-Июн-22, 15:21 
> Это месенджер на основе DHT. Распределенный. Шифрованый. Опенсорсный. С протоколом получше
> иных открытых потуг на тему (e.g. Jami). До них дошло сделать
> его как либу. EPIC WIN относительно остальных: так появились довольно разные
> клиенты и боты.

Я не про tox, я про nih)

> А то что нормальная архитектура протокола, core и апи может появиться сама,
> сначала накодим, потом подумаем, я не верю. Это как войнаимир vs
> миллион обезьян примерно. И джун отличается от синьора тем что не
> понимает это. Иногда даже полный чайник может срубить EPIC WIN, но
> догадаться о всех нюансах проигнорив чужой опыт все же "очень маловероятно".

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

> Что еще интереснее, при этом не обязан быть direct connect. Он может
> быть. А может и не быть. Они сделали минимальные туннели. Не
> tor конечно, но айпишник малость скрывает и работает даже в ситуациях
> "оба за файрволом/прокси". Оба юзера при этом "нанизывают" себе ремоты у
> которых интернет нормальный, и вон те уже между собой стыкуются в
> нормальном инете.

Насчёт непрямого соединения подумаю. Но скорее всего это будет нечто, напоминающее обычный TURN сервер.

> И все же, видите сколько всего можно узнать просто посмотрев как другие
> это делают? Я бы до половины таких трюков сам не допер,
> N голов лучше 1.

Так никто и не спорит. Я не говорил, что не хочу изучать чужой опыт. Я говорил, что у меня тупо нет на это времени. Потому что данная программа не является основным приоритетом. Да и программированием как таковым я занялся в своё время потому что нужно было обрабатывать большие объёмы цифр, а через Excel это делать, мягко говоря, не удобно.

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

Да, будущее. Только наступит оно, когда повсеместно перейдут на ipv6 или нечто подобное. Потому что связь через ipv4 из-за NAT пока что больше напоминает бег с препятствиями.

> Такое ощущение что дому просто не хватает утепления, если честно.

И это тоже. Но вариантов особо не было. И это ещё не самый плохой случай. Некоторым соседям приходилось куда "веселее". Ну и особенность печного отопления. Печке нужен приток воздуха, иначе она не будет гореть. А воздух идёт с улицы, где температура сильно ниже нуля.

> Да вы не воспринимайте это как наезд.

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


Ответить | Правка | Наверх | Cообщить модератору

262. "Выпуск p2p-мессенджера Communist 1.4"  +/
Сообщение от Аноним (-), 28-Июн-22, 12:02 
> Я не про tox, я про nih)

:)))

> Нормальная архитектура и не может появится из просто "накодим". Кое-что я продумывал,

Такое логично документить. Чтобы не забыть при копании в деталях и донести до других.

> просто многое стало ясно уже после практических тестов.

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

> В том числе и то, что структуру кода нужно менять.

Видно по паре технических фактов. Если проект встречает файлом 280 кил кода, 95% что момент рефактора прошляпили. Еще 5% особые случаи типа AMDGPU, где 500 кил 1 сущность "регистры этой железки" и в разные файлы их и правда криво. Это же и функций на 1000+ LOC касается. В идеале функции должны бы быть атомарными и лезть на среднестатистический экран, чтобы схватываться на лету. Реально это не получится конечно, но стремиться надо. Это же насчет сложной логики, дофига вложенности и непонятных констант, их "говорящими названиями" делать стоит.

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

> Насчёт непрямого соединения подумаю. Но скорее всего это будет нечто, напоминающее обычный
> TURN сервер.

Технически если вы умеете одно то по сути умеете и другое. Некая маскировка IP как минимум спасает юзера от прицельных "нуков" совсем уж нахаляву. Это не совсем халявно для p2p сети в целом но... продвинутым юзерам нравится, а они полезны по многим причинам.

> времени. Потому что данная программа не является основным приоритетом.

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

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

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

У меня чуть более логичный бэкграунд, с ним проще быть с компьютерами "на ты", но...
1) Я не учился на программиста.
2) Технологиям которые я умею не особо то кто и научит, особенно в ex-ussr.

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

> Да, будущее. Только наступит оно, когда повсеместно перейдут на ipv6 или нечто
> подобное. Потому что связь через ipv4 из-за NAT пока что больше напоминает
> бег с препятствиями.

Я тоже не жалую v4 и NAT. Тем не менее, этого д@рьма много и это означает что с этим надо уметь жить. Откуда и идея конекта к обладателю белого IP и пусть он для нас послушает. Это примерно то что TURN и токс делает и заодно именно НАШ айпи может ремоте и не светить. Главное чтобы это не катило как generic прокси использовать для посторонних протоколов, иначе ушлые типы будут рады халяве.

> печного отопления. Печке нужен приток воздуха, иначе она не будет гореть.

Люди совсем без кислорода тоже неважно себя ощущают. Но 100% герметичным домом является разве что космический корабль.

> достаточно жёстко общаться.

У опенсорсников вообще принцип что никто никому ничего не должен. Но может если захочет. И я очень в курсе этих парадигм. Какой-нибудь Торвальдс спокойно вынет фак из кармана, например. Однако если аргументировать, он его и обратно уберет точно так же. И я к этому отношусь совершенно нормально - если отсыл в пень не просто хамство а с пояснениями где я по мнению другой стороны не прав. А я лишь показал где у вас чисто технические косяки из-за которых даже при интересе к тематике въехать будет тяжко. Тут стоит понимать что есть еще моя личная вкусовщина (как то симпатии к делению на core и UI и считание что реюзабельные либы это хорошо). И это тоже не стоит воспринимать как истину в последней инстанции. Иногда и я могу свалиться в субоптимальщину, все мы люди.

Ответить | Правка | Наверх | Cообщить модератору

222. "Выпуск p2p-мессенджера Communist 1.4"  +/
Сообщение от Ан (??), 26-Июн-22, 14:08 
Приветствую, автор. Но почему мессенджер? Ведь их десятки разного фасона и калибра. Какова мотивация?
Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

233. "Выпуск p2p-мессенджера Communist 1.4"  +/
Сообщение от ProfessorNavigator (ok), 26-Июн-22, 15:51 
> Приветствую, автор. Но почему мессенджер? Ведь их десятки разного фасона и калибра.
> Какова мотивация?

А что нужно было?))

Ответить | Правка | Наверх | Cообщить модератору

246. "Выпуск p2p-мессенджера Communist 1.4"  +/
Сообщение от Аноним (246), 27-Июн-22, 16:17 
Аудиоплеер, конечно же.
Ответить | Правка | Наверх | Cообщить модератору

247. "Выпуск p2p-мессенджера Communist 1.4"  +/
Сообщение от ProfessorNavigator (ok), 27-Июн-22, 17:27 
> Аудиоплеер, конечно же.

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

Ответить | Правка | Наверх | Cообщить модератору

278. "Выпуск p2p-мессенджера Communist 1.4"  +/
Сообщение от Аноним (278), 29-Июн-22, 18:52 
Видимо это была обязательная шутка про обилие аудиоплееров под Линукс. ;-)
Ответить | Правка | Наверх | Cообщить модератору

64. "Выпуск p2p-мессенджера Communist 1.4"  +/
Сообщение от Аноним (64), 25-Июн-22, 12:48 
>Ну или сразу текстовый интерфейс.

TUI клиенты есть и джаббер и ирка и даже дискорд с телегой.

Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру