Comments 55
Как собрать под другие платформы?
+2
Что всё-таки сподвигло открыть код? Да ещё и под GPLv3?
+3
Для этого должна быть особая веская причина?
0
Вроде нет, но если изначально не планировалось, значит были какие-то свои соображения. Поделитесь?
0
Думаю ответ вас разочарует. Просто хотел избежать критики моего стиля программирования. Это ведь мой первый opensource проект, до этого весь мой код был доступен ограниченному кругу лиц. Но потом понял — нечего тут стесняться. Работает? Стабильно работает? Значит всё хорошо. А если что-то не нравится — милости просим всё исправить и сделать еще лучше. На то он и opensource.
+3
Если руки дойдут, в феврале возьму. На wxWidgets-порт или Qt-обёртку обижаться не будете?
0
Нет, не буду. Просто мне кажется, что это излишне. У меня UI движок порождает готовую картинку, которую просто нужно выплюнуть на экран, а с этим, как я понимаю, неплохо справляется голый X11. Впрочем, в вопросах программирования под никсы я полный профан.
0
Профиль в своём формате? Стандартный от токса не подойдет?
0
Профиль в своем формате — sqlite база. Стандартный формат токса не предусматривает возможности хранения истории, а я хотел сделать все в одном файле, т.к. это удобнее. Однако, Isotoxin понимает стандартный профиль. В диалоге добавлении tox соединения, можно выбрать tox-save файл и из него будет импортирован ToxID и список друзей.
+1
В tox так и не появилась поддержка множества устройств с одним аккаунтом?
+2
Глупо пренебрегать этим опытом, поэтому разработка была начата на C++ и под Windows. Однако, понимая всю важность поддержки разных платформ, я сразу решил минимизировать зависимость от winapi и других windows-only возможностей. У меня даже рендеринг текста не использует GDI, а написан свой. Для чтения шрифтов используется библиотека FreeType. Весь GUI, все контролы — всё написано с нуля и не привязано к системе.С нуля? Но зачем? Почему не тот же Qt?
P.S. Сказать по правде, интерфейс выглядит плохо, напоминает эксперименты 15 летней давности.
+26
Такая же мысль возникла… только про wxWidgets
+3
Поддерживаю на счёт wxWidgets, применить его для GUI, а для всего остального уже есть связка C++ STL + Boost (который фактически расширение STL и с каждым новым стандартом из него многое приходит). Самое главное это то, что wxWidgets выглядит «как родной», по сути им и являясь на всех платформах, чего нельзя сказать про тот же Qt, который на всех платформах выглядит как Qt и идеально вписывается только в KDE окружение.
0
Вы поверите, если я скажу, что люблю программировать? Я ж не ради денег это делаю.
А что касается внешнего вида — это просто из меня плохой дизайнер — сделал как смог. С технической стороны нет никаких ограничений — все контролы формируются из полноценных RGBA изображений и их внешний вид ограничен только фантазией дизайнера.
Ну и это вопрос вкуса. Мне, например, интерфейс Windows 10 не нравится. Как раз «напоминает эксперименты 15 летней давности», а это вроде как самое лучшее, что есть.
А что касается внешнего вида — это просто из меня плохой дизайнер — сделал как смог. С технической стороны нет никаких ограничений — все контролы формируются из полноценных RGBA изображений и их внешний вид ограничен только фантазией дизайнера.
Ну и это вопрос вкуса. Мне, например, интерфейс Windows 10 не нравится. Как раз «напоминает эксперименты 15 летней давности», а это вроде как самое лучшее, что есть.
+1
Вам как бы намекают, что хорошим тоном является использование нативных виджетов. Опять же не привязано к системе, но собрать не под windows никак. И смысл?
+8
Дело не только во внешнем виде. Вот попробовал я прожку и сразу же напоролся на многочисленные недоделки в поведении окон Isotoxin, когда отсутствует стандартная функциональность, а все рефлексы, накопленные годами, оказываются не при делах, и только бессильно материшься, когда очередное привычное действие не срабатывает. Начиная от чисто стилистических несостыковок (типа коряво-размытых шрифтов или неожиданной смены указателя мыши при перетаскивании окна) и заканчивая незакрывающимися по Esc диалогами, неработающим значком системного меню и тому подобными проблемами.
Сторонние библиотеки тем и хороши, что разрабатываются отдельным коллективом, который вылизывает все эти мелочи, в то время как вы получаете возможность не изобретать велосипед, а направить любовь к программированию на создание действительно уникальной функциональности. Плюсом идёт готовая кроссплатформенность из коробки.
Сторонние библиотеки тем и хороши, что разрабатываются отдельным коллективом, который вылизывает все эти мелочи, в то время как вы получаете возможность не изобретать велосипед, а направить любовь к программированию на создание действительно уникальной функциональности. Плюсом идёт готовая кроссплатформенность из коробки.
+2
некоторые вещи 15-ти летней давности НАМНОГО лучше современных.
+1
При этом их поддержка для разработчиков на пару порядков сложнее и дороже либо уже вообще закончилась. Т.е. я к тому, что с клиентом для Tox так сейчас не получится ибо, с наибольшей вероятностью, просто приведёт к закапыванию проекта в очень скором времени ибо его поддержка станет причинять БОООЛЬ.
0
А можно пример?
0
А вы не пробовали Clang под Windows? Или Clang/C2?
0
Однако, имелось противоречие с лицензией GPL3, под которой предлагалось ядро tox. В чем противоречие? Если коротко, то эта лицензия требует открывать исходный текст программы, которая использует библиотеку под этой лицензией. Очевидное решение этой дилеммы — вынести реализацию протокола в отдельную динамическую библиотеку (dll) и открыть исходники этой dll.На самом деле GPL требует, чтобы открывался весь код, который динамически связывается в процессе выполнения (за исключением системных компонентов). Поэтому DLL не помогла бы: exe-файл, который грузит GPL-библиотеку, всё равно пришлось бы открывать. DLL спасла бы положение лишь при лицензии LGPL, которая такое позволяет.
В текущей архитектуре проекта открытая и закрытая (потенциально) части разнесены по двум разным процессам, так что тут GPL не нарушается, но на всякий случай решил уточнить, чтобы кто-нибудь не наступил на грабли, прочтя процитированный текст.
+9
У меня один вопрос с точки зрения не радости программирования, а реальной применимости. Я понимаю вы очень гордитесь своим творением и упоминаете, что пишете его в одиночку и уже очень давно и вложили в проект много сил и времени.
Но простите, а для чего это? Зачем мне ваш p2p мессенджер с возможностью видеосвязи? Почему мне не подходит скайп. К тому же сейчас скайп выпустил веб-версию, что даёт прямо в браузере звонить. Ну хорошо, у вас p2p связь и как бы это надежно и безопастно для клиентов. Но, а что если я просто обыватель и не видел исходников, как вы меня убедите, что сервер не читает и не хранит переписку и не пишет видео? Мало кто поверит вам наслово.
Я считаю это игрушкой, школьным проектом или проектом на 1 курсе для ознакомления с плюсами и возможностью p2p передачи.
Вообще кто-то кроме вас пользуется этим мессенджером. Всё, что я вижу сейчас, это как талантливый программист занимается непонятно чем.
Но простите, а для чего это? Зачем мне ваш p2p мессенджер с возможностью видеосвязи? Почему мне не подходит скайп. К тому же сейчас скайп выпустил веб-версию, что даёт прямо в браузере звонить. Ну хорошо, у вас p2p связь и как бы это надежно и безопастно для клиентов. Но, а что если я просто обыватель и не видел исходников, как вы меня убедите, что сервер не читает и не хранит переписку и не пишет видео? Мало кто поверит вам наслово.
Я считаю это игрушкой, школьным проектом или проектом на 1 курсе для ознакомления с плюсами и возможностью p2p передачи.
Вообще кто-то кроме вас пользуется этим мессенджером. Всё, что я вижу сейчас, это как талантливый программист занимается непонятно чем.
-22
Там же написано что открытый протокол
+2
Почему мне не подходит скайп
Так то вообще всем наплевать подходит он вам или нет. Автору вот не подходит. И он написал свой. Уважуха. Я так не могу, но хотел бы.
Но, а что если я просто обыватель и не видел исходников, как вы меня убедите, что сервер не читает и не хранит переписку и не пишет видео? Мало кто поверит вам наслово.
На что простите вы предлагаете верить? Или просто априори верить нельзя никому?
+12
Автор вообще-то воспользовался существующим протоколом (Tox), а не изобрел свой.
+6
Почему мне не подходит скайп.
как вы меня убедите, что сервер не читает и не хранит переписку и не пишет видео
Скайп делает и то и другое и (потенциально) третье, но вас вроде это вроде как не смущает.
+3
Есть люди, в том числе и за рубежом, которые прямо сейчас используют Isotoxin и он их устраивает внешним видом и функциональностью. Ну или они просят меня что-то поменять и я с радостью иду им на встречу. Даже если бы это был всего один человек (кроме меня), я был бы рад.
Я занимаюсь тем, чем мне нравится заниматься — программированием. Кому-то это приносит пользу и меня это устраивает. Я не зарабатываю на этом денег и видимо поэтому вы решили, что я занимаюсь «непонятно чем». Чем же, по вашему, я должен заниматься?
Я занимаюсь тем, чем мне нравится заниматься — программированием. Кому-то это приносит пользу и меня это устраивает. Я не зарабатываю на этом денег и видимо поэтому вы решили, что я занимаюсь «непонятно чем». Чем же, по вашему, я должен заниматься?
+3
А что плохого в неконстантности sizeof для динамических массивов?
Вроде есть alloca() можно ее использовать, но массивы это тоже самое только лучше. Мне вообще не понятно как писать на С без динамических массивов на стеке, либо уродливую alloca() использовать, либо malloc на каждый чих, но тогда можно и на перле/Java и остальном писать.
Вроде есть alloca() можно ее использовать, но массивы это тоже самое только лучше. Мне вообще не понятно как писать на С без динамических массивов на стеке, либо уродливую alloca() использовать, либо malloc на каждый чих, но тогда можно и на перле/Java и остальном писать.
0
Я сужу с точки зрения C++. Возможно для C неконстантный sizeof и не является проблемой.
Если более предметно — toxcore. Там динамические массивы используются в основном для генерации пакета, который имеет максимальный размер, что то порядка 1.4kb (чуть меньше). И я не вижу причин не создавать на стеке эти самые 1.4 килобайта, и просто использовать из них не всё. Это бы даже быстрее работало, т.к. выделить на стеке константное количество байт всяко быстрее, чем неконстантное.
Если более предметно — toxcore. Там динамические массивы используются в основном для генерации пакета, который имеет максимальный размер, что то порядка 1.4kb (чуть меньше). И я не вижу причин не создавать на стеке эти самые 1.4 килобайта, и просто использовать из них не всё. Это бы даже быстрее работало, т.к. выделить на стеке константное количество байт всяко быстрее, чем неконстантное.
0
UFO just landed and posted this here
константным sizeof'ом можно, например, инстанцировать шаблоны. Понятно, что на неконстантный компилятор мог бы и ругнуться, но, мне кажется, сущность языка, которая может быть константной и неконстантной в зависимости от контекста — это плохо. Больше путаницы, сложнее компилятор. Я просто уверен, что C и C++ строится одним и тем же компилятором msvc. И делать поддержку неконстантного sizeof, чтобы уметь собирать код стандарта, которого на самом деле не так и много, при том, что всегда можно выкрутиться при помощи alloca, в ms просто сочли экономически нецелесообразным.
0
А вообще, мне кажется, что в архитектуре компилятора msvc есть какая-то беда с константностью. Т.е. им отчего-то трудно обеспечивать поддержку стандарта в этой области. Думаю, не случайно constexpr появился только в 2015-й студии, хотя мог бы еще в 2010-й, когда стали делать поддержку C++11. Но это исключительно мое мнение на основе ощущений.
0
UFO just landed and posted this here
Ничего себе! Я поражен. Когда-то, во времена распространенности ICQ, мне очень нравилась Miranda — простой, но чрезвычайно расширяемый клиент. Ваши скрины и описание прямо-таки ностальгию вызвали.
(Посмотрел, оказывается, она уже тоже Tox умеет. Мир развивается. Круто же)
Желаю вам найти единомышленников и запилить большой проект с плагинами, скинами и радостным сообществом.
(Посмотрел, оказывается, она уже тоже Tox умеет. Мир развивается. Круто же)
Желаю вам найти единомышленников и запилить большой проект с плагинами, скинами и радостным сообществом.
+1
qTox у меня падал, даже без активного использования
У меня работает с утра до вечера и не падает (18 контактов и 3 чата на 40 человек в сумме). toxic вообще вторые сутки работает с логированием.
Собственный протокол для общения внутри локальной сети
Зачем было оставлять собственный протокол? Интереса ради спрашиваю.
исключая смену nospam
Очень полезная вещь, когда айди написан везде, со временем появятся и спам боты.
0
У меня работает с утра до вечера и не падает (18 контактов и 3 чата на 40 человек в сумме). toxic вообще вторые сутки работает с логированием.
*Нервный смех*
qtox как и utox два самых глючных и недоработанных приложения на моем компьютере
И это абсолютно все версии, я их обновляю постоянно в надежде и с мыслью — «ну ребята ну вы уже несколько лет разрабатываете это приложение, сделайте хотя бы чтобы оно просто не крэшилось каждый час я уж не говорю про качество звука».
0
вроде бы новость отличная, но… Собственный протокол для общения внутри локальной сети — вот от этого надо бы уйти — либо переносите плюшки в основной протокол расширяя его, либо плюшки почти никто не сможет использовать если ваш клиент не станет самым популярным. Ну и над внешним видом поработайте — это одна из причин почему я не захотел ставить ваше «чудо» вместо qtox.
+2
Собственный протокол для общения внутри локальной сети — вот от этого надо бы уйти
Этот протокол создавался для отладочных целей. Понимаете, в текущей архитектуре нужно иметь хотя бы два работающих протокола, чтобы как следует все отладить. Так-то я никому этот протокол не навязываю. А если вы удалите proto.lan.dll, так он даже места на вашем диске занимать не будет.
Но, может быть вы имеете в виду нечто другое — то что я вношу в tox изменения, которые задействованы только в Isotoxin'е? Но, во первых, эти изменения никак не влияют на работу Isotoxin'а с другими tox-клиентами, т.е. соблюден принцип полной обратной совместимости. Во вторых, кто ж мне позволит внести эти плюшки в основной код протокола? Для этого нужно быть своим в среде разработчиков, а я там никто. Мне так кажется. Может я и ошибаюсь. В любом случае, нужно обосновать эти изменения, чтобы их приняли. А с английским у меня плохо.
По внешнему виду — тут я пас. Я, конечно, продолжу улучшать движок интерфейса и приводить внешний вид к современным канонам красоты. Но это всё очень субъективно. И я понятия не имею, чем именно для вас внешний вид qTox'а более привлекателен. Может цветами? В следующей версии я сделаю возможность выбирать цвета.
+1
Но, может быть вы имеете в виду нечто другое — то что я вношу в tox изменения, которые задействованы только в Isotoxin'е? Но, во первых, эти изменения никак не влияют на работу Isotoxin'а с другими tox-клиентами, т.е. соблюден принцип полной обратной совместимости. Во вторых, кто ж мне позволит внести эти плюшки в основной код протокола? Для этого нужно быть своим в среде разработчиков, а я там никто. Мне так кажется. Может я и ошибаюсь. В любом случае, нужно обосновать эти изменения, чтобы их приняли. А с английским у меня плохо.
Если плюшки хорошие, то может все же имеет смысл попробовать внести их в toxcore?
Думаю, у меня с английским получше, могу поспрашивать и помочь оформить. Что там еще есть, кроме неограниченной длины сообщения?
Можно на d@dvor.me отвечать.
0
UFO just landed and posted this here
«Так что я вполне понимаю разработчиков компилятора msvc и их нежелание связываться с динамическими массивами.»
Это скорее их недоработка, зато другого, не поддерживаемого иными компиляторами, они понапихали и дальше пихают наплевав на все стандарты…
Это скорее их недоработка, зато другого, не поддерживаемого иными компиляторами, они понапихали и дальше пихают наплевав на все стандарты…
0
Как мне запустить 2 версии одновременно на одном компьютере?
0
хотелось бы чтобы видео двойным кликом мыши открывалось на весь экран. И чтобы масштабировать было можно…
В целом очень понравилось.
В целом очень понравилось.
0
Интересный проект. С нетерпением буду ждать порта на linux.
0
Надо бы такой под линукс, и чтобы без скинов со времен винампа, то есть вообще без скинов.
Сейчас похоже qTox самый толковый клиент, кто-то может оценить?
Сейчас похоже qTox самый толковый клиент, кто-то может оценить?
0
Спасибо. Буду пользоваться. Небольшой недочет: если окно программы не помещается в экран — например, включена экранная клавиатура — то интерфейс постоянно перерисовывается.
0
Sign up to leave a comment.
Isotoxin: свободный мультипротокольный мессенджер с поддержкой Tox