Всем привет.
Пару дней назад появилось желание написать свой клиент, отличный от стронга и его клонов(в том числе визуально, по меню настроек, и даже в используемом языке программирования :-)). Немного урезанный по функциональности(в стронге достаточно функций которыми я не пользуюсь), но и со своими фишками.
И в общем, дело такое, что нужен второй разработчик - дизайнер-программер на Делфе который бы хотел поучавствовать в проекте, т.к. у меня совершенно нет вкуса - нужен человек который бы сделал оформление для программы и меню настроек.
Ну и прикладываю скриншот(на нем - законченная серверная часть(client<->hub)), чтобы показать, что разговор не на пустом месте, а есть определенные наработки.
Нет ли желания у автора сделать консольную версию клиента? В этом случае и дизайнера не нужно будет искать, и актуальная программа получится. Хотя можно сделать и консольную версию и версию с GUI.
Ну эм, консольную сделать так то не сложно, вот только не пойму зачем?
для работы как служба. на файловом сервенре. тут как бэ все ясно
Я в своё время написал на C некоторую консольную штуковину для линковки чатов двух хабов -- она подключается к двум хабам одновременно и перекидывает сообщения с одного на другой (и наоборот). В принципе, можно ее расширить и сделать полноценный консольный ДЦ-клиент.
Причем у меня она собирается и работает как под мастдаем, так и под Linux... у меня наверное времени на настоящий клиент сейчас не хватит, но все сырцы могу выдать) допиливайте ))
P.S. по теме: но почему на Delphi?! это же кхм... недоязык. к тому же автоматически лишаемся кросс-платформенности. Уж тогда на C++ и на каком-нить Qt...
Линковать хабы и справляться с функциями клиента - это очень разные вещи, поэтому для написания полноценного клиента не думаю, что код линковщика поможет, разве что итак известные механизмы обработки команд оттуда можно взять. Исходники выкладывай - посмотим)))
ну в общем да, не оригинальность тут никто и не претендует
сырцы тут:
там была сделана попытка написать библиотеку функций для работы с DC-хабом ( hubconn.{cpp,h} ). естественно, в ней есть только обработка команд, связанных с чатом + буферизация и разбор команд из сокета (в некотором приближении).
но уж что есть то есть, может кому пригодится -- вдруг кто саму идею разовьет и дополнит...
По части дизайна могу помочь. Тебя интересует сами иконки программы?
Ну как по мне то тут надо много единомышленников задействовать, потому что как не как новый движок ДС++ и он естественно довольно сырой
Самое главное, лично для меня, так это чтобы клиент был кросс-платформенным, быстрым (без всяких лишних наворотов), маленьким, консольным и с открытом С++ кодом.
Если бы данный клиент подходит по этим параметрам, то я бы посодействовал в его создании)))
Здравствуйте форучане, может мне кто-нибудь помочь?
Я хочу написать программу на С++, что-то похожее на DC++ клиента, но я не знаю как организовать процедуру "рукопожатия хаба с клиентом" ( какой посылать ответ на $lock ) .
Помогите кто чем может !!!
P.S не стал создавать новую тему, т.к. эта тема подходит по тематике
http://mydc.ru/topic915.html
Вообще на $Lock можно отправлять любой $Key ))
По крайней мере у меня это прокатывало
Да что ты говоришь? может быть ты на таком глупом хабе проверял, который это не контролирует?
вот кусочек преобразования Lock в Key. 100% работоспособен, выдран из исходников выложенного чуть выше в этой теме моего hublink.
Да, PtokaX, YnHub , VerliHub - очень глупые хабы да)
ахаха, dmvn, у него внешний бот от CS есть. Заходит на хаб как клиент. ДУмаю Романов знает кое в чем толк.
На некоторых хабах проверка ключа $lock может быть отключена, но, как говориться раз на раз не приходится. На одном хабе отключена, на другом включена, поэтому при написании клиента делать механизм отсылки хабу ключа $lock нужно обязательно!
>но почему на Delphi?!
1. Потому что мне его возможностей за глаза.
2. Он не популярен в сравнении с Си, от того чувствешь себя частью небольшой, но очень гордой семьи
3. На нем удобно делать визуальные компоненты и скиновые "движочки" с необходимой функциональностью для софтины.
>это же кхм... недоязык.
Ну что за детсад... базовые арифметические операции(+, -, /, *, целочисленное диление, остаток целочисленного деления, булевые операции, логические поразрядные операции), классы(с поддержкой наследования и полиморфизма, разумеется) и вариации объявления их методов(public, protected, private, property, перекрытие(override), конструкторы, деструкторы, помошники класса), for-while-repeat(плюс операторы прерывания циклов: break, continue, exit, abort)/if-else/switch-case-with/процедуры-функции(а так же вариации их объявления: предварительное, интерфейсное, внешнее, типовое, "перегрузочное"(overload), встраиваемое(inline), небезопасное(unsafe), анонимное), /основные типы(порядковые, булевые, символьные, неизвестные типы, структурные типы, целые типы, действительные типы(имеющие дробную часть), встроенные типы и типы определяемые пользователем)/приведение типов/ссылки-указатели/структуры(а так же перечисления, множества)/константы-типизированные константы/использование блоков ассемблера/try..except..finally/массивы(статические, динамические, одномерные, многомерные)/интерфейсы, перегрузка операций(операторов)/шаблоны(generics).
Возможно что-то забыл.
Считаете, выше перечисленного вам не хватит для создания полноценного Direct Connect клиента?
Лично мне - за глаза.
Но если есть претензии к IDE, а не к языку, то могу согласится что официальная борландовская/кодгировская ИДЕ - багнутая и её поведение не всегда предсказуемо.
>к тому же автоматически лишаемся кросс-платформенности.
А мне на неё пофик - я кроме виндоуса других операционок не признаю.
>на каком-нить Qt...
У меня свой скиновой движок - с теми функциями, которые мне нужны, и ничего лишнего. Просто потому что мне в этом плане проще написать своё, чем капатся в чужом.
>По части дизайна могу помочь. Тебя интересует сами иконки программы?
Не только иконки, но и в целом само оформление программы. Например... логотип, или "окно чата будет тут, такой расцевткой, такой формы, форма табов такая, список юзеров будет тут, форма у него будет этакая, табы у него будут там-то"
>Ну как по мне то тут надо много единомышленников задействовать,
Совсем не зачем, я с технической частью сам легко справлюсь, разве что потом надо будет собрать народ и дружно потестить клиент в разных условиях(в частности чтобы какой-нить админ хаба его потестил с разными настройками хабов, т.к. на хабах, которые у меня установлены локально для тестинга, стоят стандартные настройки, с которыми и тестирую клиент) и на разных хабах(я тестю тока на YnHub, и иногда на Ptokax). Для проекта, и всего задуманного мною для него функционала, двух человек достаточно. Один - отвечает за всё то, что связано с технической частью клиента, второй - с интерфейсом(визуальные компоненты(типа там - окошко чата с поддержкой табов) и картинки(лого, иконки, ...)). Но у меня ещё есть два кореша, которые по надобности помогут с внутренним тестингом и какой-нить мелкой функциональностью, так что программеры как таковые есть, но нету дизайнера
>потому что как не как новый движок ДС++ и он естественно довольно сырой
Разработка хоть и не второй год ведётся, но на данный момент у меня клиент очень даже стабилен, хотя и умеет не так много как стронг, но я просто основательно тестю у него каждую функцию. С ним уже сейчас можно спокойно бегать по хабам и общатцо. Плюс важнейшая часть ДЦ - высчитывание TTH - у меня реализовано на уровне стронга в плане скорости, причем судя по тестам, которые мне сделали по просьбе - высчитывает наровне со стронгом.
Правда, с другой стороны, мне не совсем понятны две вещи стронга - его функция сегментная закачка(а именно её технический аспект - каким образом работает эта функция), и каким образом стронг определяет пассивность/активность юзера(если только по галке на "Passive" в опциях Connection и невозможность открыть заданный порт - то вопрос отпадает).
>Вообще на $Lock можно отправлять любой $Key ))
>По крайней мере у меня это прокатывало
Не совсем так. Такое возможно тока в случае если, на примере YnHub'a, не стоит галка на "kick user if key invalid".
Исходники будут открыты?
>Исходники будут открыты?
Кому они будут нужны? Они ж на делфе будут написаны, на недоязыке
Ну а если по сути - это будет зависеть от популярности клиента. Если клиент будет не популярен - сорцы будут открыты, если популярен - то закрыты, чтобы предотвратить атаку клонов (основная причина по которой я делаю свой клиент - бесит монополия стронга и его "изменено только лого-название"-клонов).
>Не признавя другие ОСи ты страдаешь фимозом кругозора.
А вот тут ты ошибаешься, брат. Я начинаю разработку каждого своего проекта по принципу "меня бесит". Есть стронг и его клоны - меня бесят его клоны. Меня убогость его интерфейса и общее неудобство да и в целом дискомфорт который я получаю пользуясь им. Меня бесит что в нем есть много функций который мне нафик не нужны, и при этом нет нескольких которые мне очень нужны. Меня бесит что клоны на него основе - побольшому счету ничем не отличаются от него самого.
В плане кроссплатформености - аналогично. Меня винда - абсолютно устраивает. Меня она _ничем_ не бесит, в результате чего - я не заглядываюсь на альтернативы, и как следствие - не задаюсь вопросом кроссплатформенности.
>и хочешь (возможно) стать давольно известным
Ну, спорить не буду - для моего самолюбия осозновать себя в какой-то мере знаменитостью, если мой дц клиент будет успешным, будет приятно. Но это не самоцель - т.к. клиент я делаю в первую очередь для себя, чтобы мне было удобно сидеть на хабе локальной сети моего провайдера. А если он понравится другим - тоже будет приятно.
2Kinjal: Тут ты глубоко ошибаешься. Праотец всех клиентов как раз таки не стронг, а DC++. Стронг - это одна из ветвей DC++.
2mariner: ответ на ваше сообщение в конце первой страницы, я просто подредактировал ответ на сообщение Setuper'a (чтобы не флудить лишний раз).
>Праотец всех клиентов как раз таки не стронг, а DC++.
Который от Jacek Seika? Знаю, но так получилось, что я познакомился впервые именно со стронгом, и именно с ним я сравниваю остальные клиенты. Дело скорее привычки, чем объективности.
>о да, конечно в клиентах типо - Апекс Спид мод, флайлинк или Грейлинк тока сменили лого!
Ладно, по поводу лого я сутрировал, но суть не в этом, а в том что мне, например, как рядовому юзеру, совсем не очевидно что нового в Flylink(которым я в данный момент пользуюсь) по сравнению со стронгом. Аналогично Апекс(хотя тут я совру - в апекс в connection добавили кнопку "get ip address"(и update ip on startup), но это только единственное отличие которое я заметил, хотя это отчасти и потому что я предпочитаю в настройки в стронге не ползать - там всё слишком user-hostilely для меня).
поофтоплю: как по мне то закрытым код нужно делать только в тот момент когда ты считаешь что на этом можно заработать деньги ну или в крайнем случае что то является не этичным(или что то в этом духе)!
Так как на дц клиентах заработать невозможно и надеюсь что не появится ещё однин грейлинк, не понимаю смысл закрытия кода!
PS: чисто моё мнение)))
Так что ты хочешь сделать? Что-то чего нет в стронге или наоборот убрать лишнее? Какова основная цель написания клиента?
2wariner:
ну впринципе я сторонник открытых сорцов. так или иначе проблем к их зарелизыванию я в данный момент не вижу, но так или иначе об открытости сорцов судить пока рано, пока клиент не доведен до стадии полноценного, готового к использованию. А когда клиент раскрутится там и видно будет - стоит их релизить или нет.
А по поводу грейлинка - жадность, жааадность Ну или быть может автору грейлинка не хочется чтобы появлялись клоны на базе его клона
P.S. И по поводу моего предыдущего сообщения, забыл добавить: быть может я переоцениваю стронгдц? и его клоны в чем-то лучше, чем сам он?
А чем конкретно тебя не устраивает стронг?
Не думаю, что ты такой мозг, что можешь написать что-то лучше стронга, поэтому не думаю, что народ будет активно юзать твой клиент.
>А чем конкретно тебя не устраивает стронг?
На этот вопрос мне сложно ответить, когда клиент дойдет до стадии бета - он это скажет за меня
>Не думаю, что ты такой мозг, что можешь написать что-то лучше стронга
В этом то всё и дело - что мне будет абсолютно наплевать получится ли он лучше стронга или нет, главное что бы мой клиент меня устраивал. И лучше стронга он не будет уже хотя бы потому, что половины функций в стронге - в моем клиенте будет отсутствовать, а какая-то часть в изменённом виде(читай: "другой подход"), ну а другая - стандартная, типичная часть, ну и конечно же без заимствований каких-то функций из стронга не обойтись - например автоприоритет, помойму неплохая штука. Сегментная скачка тоже хороша, но я пока не пойму как она работает с технической точки зрения.
Люди давайте перестанем разбираться кому что и почему !! Это уже личное предпочтение и видение каждого.
Суть темы в поиске Программиста - Дизайнера. Кто готов помочь ? Забейте вы на все предубеждения и если готовы, хотите и можете то присоединятесь.
А ты откуда такой взялся?
Для того, чтобы помогать с дизайном вероятно сначала надо определить стоит ли оно того? Разве я не прав?
С неба я нарисовался.
>>Разве я не прав?
Логично, но тут начались какие то войны типа - этот клиента лучше, а чем тебя этот не устраивает.
Суть уже изложена, сделать клиент с достаточным минимумом под свои потребности, с реализацией функцией сделающих работу удобной.
Клиент задумался как Альтернатива. Потому что все клиенты базивруется на 1 и том же интерфейсе. И никакого удобства я лично не испытываю пользуясь ими. Есть много интересных задумок которые хотим реализовать.
Главное это юзабилити, а в этом направлении работы не початый край.
я мог бы сюда запостить как минимум 3 интерфейса еще (на выбор). Но мне лень. Если еще интерфейс mldonky, microdc2 (консолька, да), phpdc (ееще могу вспомнить)
PPS а ваще, всем кто хочет - разгребите ядро microdc2 - все будет у вас пахать в принципе. Ну иморду натянуть - дело 3е.