Miranda NG
Старый 25.09.2012, 01:25   #1
йож
 
Аватар для dikobraz


Обратиться по нику

Инфо
Регистрация: 09.06.2011
Сообщений: 1,929
Благодарностей: 3938
ICQ: 1О298 :)
Arrow Miranda NG

Сегодня я хочу рассказать вам о выходе второго stable-релиза IM-мессенджера Miranda NG, форка Miranda IM, созданного бывшими разработчиками ядра и ряда плагинов.



Стабильная сборка:[Ссылки видны только зарегистрированным пользователям. Зарегистрироваться], [Ссылки видны только зарегистрированным пользователям. Зарегистрироваться]

[Ссылки видны только зарегистрированным пользователям. Зарегистрироваться]
[Ссылки видны только зарегистрированным пользователям. Зарегистрироваться]
[Ссылки видны только зарегистрированным пользователям. Зарегистрироваться]

[Ссылки видны только зарегистрированным пользователям. Зарегистрироваться]



Зачем понадобилось делать форк?

К весне 2012 года в разработке Miranda IM сложилась патовая ситуация, так как принятая (и по сегодняшний день существующая) модель разработки Миранды оказалась полностью нежизнеспособной по следующим причинам:

Код:
-Изменениям в ядре требовалось порядка полутора лет, чтобы быть подхваченными разработчиками плагинов и быть, наконец-то, доведенными до конечных пользователей. В результате возникающие задержки получались огромными.
-Во-вторых, исходный код плагинов был раскидан по десяткам репозиториев, а для многих плагинов (актуальный) исходный код был вообще недоступен. Это ограничивало или вообще делало невозможным аудит кода плагинов со стороны участником команды. Соответственно, код некоторых плагинов содержит нерабочий, неэффективный или откровенно ошибочный код, и никто не может на это повлиять.
-В-третьих, существовал огромный воз проблем с совместимостью между различными версиями ядра миранды и даже между версиями отдельных плагинов. Особенно это касалось поддержки Unicode, которая в Miranda IM так и не доведена до конца.

К тому же, сложился четко созревший конфликт между двумя оставшимися на тот момент активными разработчиками Миранды: Георгием Хазаном (ghazan) и Борисом Красновским (borkra), последней каплей которого стал откат Борисом фикса для совершенной им ошибки под тем предлогом, что в комментарии к коммиту был употреблен английское причастие “borkred”, изобретенное для сломанных им частей миранды одним из участников проекта (не Георгием).

В результате всего этого в начале апреля 2012 тогдашний куратор ядра Miranda IM Георгий Хазан принял решение покинуть проект, несмотря на наличие множества очевидных направлений развития Миранды.

Однако, в процессе переговоров между разными сторонами было принято решение организовать новый проект, под руководством ghazan, основанный на следующих принципах:

-В проект входит не только ядро, но и вообще все плагины, которые могут быть использованы. это открывает возможность любому члену команды проверить (и при необходимости исправить) код любого плагина;
-Каждая конкретная версия Miranda NG совместима только сама с собой (т.е. гарантируется, что все плагины в одной сборке совместимы друг с другом, но две соседние сборки могут быть полностью несовместимы). Это полностью решает все проблемы с совместимостью разных версий, позволяет избавиться от громоздкого кода во многих местах ядра и открывает широчайший простор для глобальной оптимизации как ядра -Миранды, так и соответствующих плагинов.
Прекращается поддержка версий ANSI, как полностью морально устаревших. Единственным поддерживаемым компилятором на момент написания статьи является Visual Studio 2010. Возможно, после выхода релиза VS2012, ее поддержка также будет включена в проект.
-Все члены команды имеют разный доступ: кто-то может исправлять только код плагинов, кто-то работает в трекере и вики, кто-то может исправлять любой код.

Т.о. 15 мая 2012 года исходный код ядра Миранды был залит в отдельный репозиторий, со временем в него было добавлено больше сотни плагинов. В последующем в исходные тексты было внесено более полутора тысяч изменений, после чего 30 августа 2012 года был выпущен первый релиз Miranda NG.

Сейчас в проекте зарегистрированы 15 человек, из них минимум половина активно участвуют в разработке.

Что нового?


Была произведена практически полная ревизия кода как ядра, так и портированных плагинов (основная их часть выбиралась по принципу частоты использования и популярности на сайте [Ссылки видны только зарегистрированным пользователям. Зарегистрироваться]). Однозначно исключались плагины, для которых не существовало актуального исходного кода., поэтому нет смысла описывать все мелкие изменения и багфиксы, с полным changelog'ом проще всего ознакомиться в [Ссылки видны только зарегистрированным пользователям. Зарегистрироваться]

В этой статье я перечислю лишь основные и принципиальные изменения.

Код:
Главные преимущества (на данный момент) Miranda NG перед Miranda IM

Подключение и отключение плагинов на лету, без перезапуска программы;
Повышена скорость запуска и работы программы;
Значительно уменьшено потребление ресурсов системы (GDI и оперативной памяти), в т.ч. за счет вынесения неиспользуемых кусков ядра в отдельные модули (папка .\Core)
Все плагины находятся в одном репозитории, при изменениях в ядре необходимые правки вносятся сразу, без ожидания реакции разработчиков, которая может длиться месяцами у Miranda IM.
Проведена достаточно большая работа по унификации — многое из того, что каждый плагин реализовывал самостоятельно, было перенесено в микроядро (mir_core.dll).
Избавление от многих старых “костылей” и багов, повышающее общую стабильность программы.
Возвращение в разработку Miranda NG кодеров, покинувших или бросивших по тем или иным причинам разработку плагинов под Miranda IM.
To be continued...
Особенности и отличия Miranda NG

Код:
В связи с серьезными изменениями в ядре программы, Miranda NG стала несовместима с плагинами от Miranda IM.
Папка Core в корне программы — вынесенные из ядра стандартные модули, которые не загружаются в память при наличии “замен” и автоматически подгружаются, если “замена” была отключена.
Вместо нескольких тулбаров, реализуемых в каждом плагине контакт-листа по-своему, приведен в порядок и доведен до ума плагин TopToolBar
DBtool стал плагином
Отказ от ANSI, ядро и все плагины полностью поддерживают Unicode.
Во второй стабильный релиз вошел полностью переработанный протокол MRA, полностью уникодный и с поддержкой учетных записей
To be continued...
Как “переехать” на Miranda NG с Miranda IM?

Цитата:
Нет ничего проще: достаточно лишь “подложить” старый профиль к Miranda NG (сохранив, конечно же, структуру папок) или заменить все плагины и ядро (не забыв про папку Core и библиотеку mir_core.dll в корне) на новые с[Ссылки видны только зарегистрированным пользователям. Зарегистрироваться].
Все старые настройки, внешний вид, история контактов и т.д. останутся нетронутыми и прежними. Профили IM и NG полностью совместимы.
Какие планы на будущее?

Код:
В ближайшем будущем планируется реализация:
Виртуальные контакты (погода, почта etc) + нативная поддержка МетаКонтактов ядром
Ядерная шифрация, взломоустойчивые профили на базе обычного dbx_mmap — драйвера
Приведение в порядок Jabber и всех его плагинов 2-го уровня
Отдельный плагин для Miranda IM, позволяющий «переехать» на Miranda NG в автоматическом режиме.
На все вопросы и замечания команда всегда готова ответить на форуме и jabber-конференции xmpp://miranda-ng@conference.jabber.ru.

За подготовку материала — огромное спасибо Георгию Хазану (ghazan).

[Ссылки видны только зарегистрированным пользователям. Зарегистрироваться]
  Ответить с цитированием
2 cпасибо от:
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Текущее время: 09:55. Часовой пояс GMT +4.



Powered by vBulletin
Copyright © 2009-2016 UinSell.Net
Лицензия зарегистрирована на: UinSell

Перевод: zCarot