The Bat -> Opera M2

Apr 13, 2006 06:04

Закончил перевод всей почтовой базы с TheBat на встроенный почтовик Оперы, М2. В целом - доволен. Но расскажу по порядку, начиная с концепции M2.
Традиционные почтовые клиенты, как просто MUA (в Unix), так и "частично комбинированные" с MTA (обычные клиенты для Windows), хранят почту в папках (folders), по аналогии c файловой системой. Бывают стандартные папки - "Входящие", "Исходящие", "Отправленные", "Черновики", "Корзина". Через какое-то время писем становится много, и все они свалены в одну кучу. Тогда можно организовать свои папки, даже целую их иерархию, и настроить фильтры для входящей почты, которые будут класть эти письма куда надо.
С годами писем становится много - тысячи или даже десятки тысяч. Сортировка писем (настройка фильтров) по папкам при большом объеме корреспонденции, а потом ориентирование в десятках папок начинает занимать всё больше времени. Чтобы найти какое-то письмо, может потребоваться много времени, потому что оно подходит под тематику нескольких папок, так что в результате придется устроить поиск по всей базе размеров в сотню-другую мегабайт. Еще больше запутает картину наличие нескольких почтовых ящиков, особенно если между ними в разное время были редиректы.
Разработчики 7-ой версии Оперы придумали другой вариант. Вместо буквального копирования расположения писем в папках как файлов в каталогах сделано иначе. Все письма, со всех ящиков, кладутся в единую базу. Далее, при отображении пользователю, создаются так называемые Views (виды, представления). Что такое представление, можно хорошо пояснить на примере аналогии с SQL: пусть все письма лежат в таблице, тогда представление делает SELECT из этой таблицы по некоторому критерию, и показывает отобранные таким образом письма. Причем, аналогия идет и дальше, представления могут образовывать иерархию, в которой дочерние элементы могут отбирать письма только из родительских (хотя могут и напрямую из полной базы).
Из идеи представлений следует, что одно письмо может присутствовать одновременно в нескольких представлениях - хранится одна физическая копия, а показываются отобранные экземпляры. Более точной является аналогия с хард-линками на юниксовых файловых системах (и NTFS) - виды-каталоги хранят лишь ссылки на иноды, а уж те - информацию о самих письмах. Физически примерно так оно и есть - письма хранятся в простых текстовых файлах, точнее, в формате unix mailbox, по одному файлу на каждый месяц, по дате написания (у меня эти файлы не превосходят в размере пары мегабайт, что делает простым процесс физического удаления - не нужно пуржить базу, проще перепаковать файл сразу, он небольшой, и это будет быстро). Рядом хранится обширная база индексов - для моей 170-метровой базы 38 Мб занимают индексы (просто файлы с фиксированным размером, растут медленно - зарезервированные пустые места).
Из-за индексации работает всё это хозяйство очень быстро. Если The Bat (2.10) у меня тормозил при отображении папки с двумя тысячами сообщений (да, на моем P233/80 очень хорошо сравнивать производительность ;)), то Опера 10000 мессаг в одном виде мне показала быстрее. Причем оперативной памяти Opera с M2 сожрала меньше, чем ранее было Opera без M2 + запущенный достаточно длительное время The Bat.
Индексация дает и другие плюсы. Например, если делать поиск по всей базе, сообщения будут найдены гораздо быстрее, потому что шерстить все мегабайты не нужно. Более того, поиск автоматически создает новый вид, так что как-нибудь потом, если обратиться к этому виду, вновь пришедшие письма, удовлетворяющие условию поиска, автоматически уже будут там. Кроме того, Опера автоматически создает новые виды, когда видит, что письмо пришло в какой-то из списков рассылки. У меня в The Bat'е в общей сложности было 80 папок: все стандартные всех аккаунтов + созданные вручную, причем некоторые "ручные" дублировались в разных аккаунтах (эти я объединил в один в Опере). При переходе на Оперу мне пришлось создать вручную менее 20 своих видов (фильтров), все списки рассылки она увидела сама (причем, больше, чем было папок, так как по каждому чиху папку в TheBat мне заводить было лень :)). Кроме того, Опера умеет автоматически обучаться при добавлении и удалении писем в вид (да, виды ведь можно создавать и полностью свои, как папки, не только по фильтрам). По умолчанию обучение включено для спама (и пока больше ни для чего я его не использую). Обучилось оно довольно быстро, так что я сейчас наблюдаю ложные срабатывания и пропуски редко.
Новые виды создаются и для контактов, с которыми ведется переписка, то есть можно посмотреть с каждым отдельно (письма к нему и от него), можно выделить группу контактов (произвольные, щелчки с Ctrl, как обычно), и посмотреть объединенный вид с их письмами. Причем Опера автоматически создаст в адресной книге новый контакт, если надо.
Помимо видов, имеются и другие средства фильтрации, например, отобразить (настраивабельно для каждого вида) письма только из определенного аккаунта, а не всех сразу, показать письма, пришедшие за определенный интервал времени - сегодня, за неделю, месяц, etc., а также управление показом писем из встроенных видов в других видах.
Вообще, это комбинирование всех писем, удовлетворяющих признаку, в одном виде, действительно очень удобно. Если в The Bat'е по приходу почты бывало эдак по десятку папок, в паре аккаунтов, светятся в непрочитанных. Сейчас же они все в одном виде "Непрочитанные", в котором к тому же настроен показ только непрочитанных - после пометки письмо из него исчезает. Похоже на юниксовые news-клиенты (Опера, кстати, ньюсы тоже умеет, и RSS тоже сделан средствами M2). Причем однокнопочные команды в юниксовом стиле тоже удобны, особенно пробел, листающий на экран вниз, и переходящий на следующее непрочитанное с пометкой этого прочитанным. Ребята из команды Оперы знают толк в интерфейсах, да.
Идеи, конечно, заложены отличные, и реализовано много на хорошем уровне. Но на практике не всё так безоблачно. Ниша М2, по всей видимости, "для домохозяек". Потому что не хватает многих фич. Например, шаблоны поддерживается в ограниченном количестве одна штука на аккаунт, причем не для новых сообщений (ну хоть сигнатура одна и та же). Рекомендуют обходить созданием заметок как шаблонов, а потом из них делать новые письма. Письма в html она отправлять не умеет, впрочем, мне и не надо, главное, что показывает она их шустро, гораздо быстрее Бата. Фидошный квотинг оно не умеет, впрочем для e-mail это пожалуй и к лучшему. Редактор сообщений квотинг цветом не подсвечивает. Адресная книга в своем формате, довольно бедном. Пришлось переносить ее из Бата руками (VCF не умеет). Импорт сообщений из нескольких форматов чужих прог, но Бата среди них нет, так что пришлось экспортировать в Бате письма в unix mailbox'ы, а их импорт в Опере всегда добавляет сообщения во входящие, в результате в видах контактов есть только входящие от них письма, без своих ответов. Пришлось оставить автоматически созданные виды импорта папок Sent из The Bat'а. Что ж, по крайней мере не хуже - там оно всё было тоже в разных местах, в отправленных и "Входящие - известные". После импорта всех сообщений начались глюки с сортировкой - часть видов пропала, хотя поиском находилось (в базе письма есть). Пришлось переиндексировать базу (перелопатила мои 13 с половиной тысяч сообщений примерно за час), после чего всё нашлось. В некоторых видах почему-то линкуются не все треды. Возможно, это глюк моей версии (7.54), но придется с этим мириться.
Многие ушли с Бата на Оперу и не хотят возвращаться. Есть, впрочем, и такие, чьи потребности велики. Буквально сегодня Alex Mogilnikov, давний пользователь M2, в RU.UNIX.BSD сказал, чем он ему не нравится:

Hедостаточной, скажем так, функциональностью и годами неисправляемыми
глюками. Hапример тем, что на письмо можно поставить не более одной метки, что
в условиях фильтров нельзя использовать дату, что снять с письма флаг
удаленности (сделать undelete) можно только находясь в виде Trash, а в любом
другом виде undelete не работает, что можно выделить все письма от известных
контактов, но нельзя наоборот, выделить все письма от неизвестных контактов,
что не поддерживается PGP, что нельзя вставить в редактируемое письмо
содержимое файла (кроме как через буфер обмена), что при разрыве квоты в
редакторе вторая половина теряет знак квотинга, что нельзя задать mime-type
приаттаченного файла, а сам M2 догадывается не всегда правильно, что день
недели на русском языке в списке писем и некоторых других местах отображается
белибердой (они utf-16 преобразуют в 8-битный символ простым отбрасыванием
старшего байта, поэтому и проверка орфографии не работает), что нельзя
приаттачить файл, если в его названии (или в пути) использована кириллица, и
что нельзя сохранить любой аттач, если в пути, куда хочу его сохранить есть
кириллица, что в SMTP HELO M2 предъявляет не имя своего хоста, а имя того
релея, которому хочет отдать письмо, что периодически "слетает" индексация, в
результате чего не все письма попадают в нужные виды, что по команде export
экспортируются не все письма, отображаемые в экспортируемом виде, наконец
отсутствием достаточно полной и актуальной для текущей версии документации...

Хорошо ли, плохо ли будет - посмотрим. Главное, ради чего я переходил на почтовик Оперы, достигнуто - кроссплатформенность. Я смогу со своей почтой работать из любой ОС, в которой работает Опера. Одно из основных препятствий на пути миграции из Windows в мир Unix - почта - устранено ;)

техническое, лытдыбр, internet

Previous post Next post
Up