• Основные понятия

AnkiWeb — в поисках смысла

Весь смысл, почему Дамьен Элмс сделал эту программу и раздаёт её по большей части бесплатно, состоит в том, чтобы на постоянной основе выгружать свой прогресс в изучении своих колод на сервер AnkiWeb.

На основе полученной общей статистической информации Дамьен надеется обрести новое знание о работе человеческой памяти: в какое время суток лучше запоминается информация, с какими интервалами, в каком количестве за один присест и тому подобное.

Поэтому в благодарность автору за столь щедрый подарок будет правильно зарегистрироваться на сайте ankiweb.net/ и включить в программе Anki синхронизацию с ним.

Дополнительным бонусом от этого действия вы получите возможность
  • учить свои колоды карточек просто через веб-браузер
    с устройств, которые не поддерживают программу Anki

  • опубликовать свои колоды на сайте ankiweb.net/shared/decks/

  • на короткое время у вас появляется что-то вроде ещё одной резервной копии своих изучаемых колод

Осторожно!
Почему только на короткое время?
Потому что если у вас не будет доступа к интернету три-четыре месяца подряд, то ваш профиль с AnkiWeb будет удалён, а вся его информация безвозвратно утеряна. Такова особенность лицензионного соглашения.

Оно и понятно. Зачем Дамиену хранить информацию, с которой уже сняты статистические показатели,
и которой к тому же никто и не пользуется?

 { Пример, как выглядит простейшая карточка на сайте AnkiWeb }

Карточки через сайт выглядят намного проще, чем в самой программе.
Да и многих возможностей по работе с ними, что есть в программе,
на сайте просто нет.

Регистрация на сайте

Итак, идём на ankiweb.net/account/login

Там клик по ссылке кнопочке Sign Up

Указываете свою электронную почту и придумываете себе пароль для доступа.

Баден-Баден

Для тех, кто не понял, сайт просит повторить:

Дальше вам будет предложено ознакомиться и подписать
Terms and Conditions ankiweb.net/account/terms
в смысле поставить галочку слева внизу длиннющей страницы:

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

Дальше вам придёт письмо, в котором надо кликнуть по ссылке,
чтобы подтвердить, что с адресом почты вы не соврамши.

Настройка программы

Клик по иконке в правом верхнем углу:

Или клац по кнопочке Y на клавиатуре,
чтобы повторно указать всё то, что вы только что придумали:

Внезапно

Сообщение об ошибке
Синхронизация не удалась:
Антивирус или межсетевой экран не даёт Anki подключиться к Интернету.

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

Настройки синхронизации

Инструменты → Настройки…​ или Ctrl+P на клавиатуре,
дальше вкладка Синхронизация

Сейчас выключена; для включения кликните кнопку синхронизации в главном окне.
С точки зрения юзабилити такое поведение программы — просто запредельное зло.

Надеюсь, у Дамьена Элмеса возникли очень серьёзные трудности в том,
чтобы поставить здесь ещё одну иконку синхронизации, помимо основного окна.
Иначе нет оправдания.

Строго говоря, команду синхронизации хотелось бы видеть и в меню.
Но без дополнения Colorful toobar ankiweb.net/shared/info/388296573 её там нет.

И да, подключаться к серверу надо на тулбаре,
а отключаться от него в окне настроек.
Логично, чо.

Синхронизировать также звуки и изображения
Обычно эта галочка должна стоять, и это нормально.

Снимать её имеет смысл только тогда, когда объём медиафайлов
крайне велик, и у вас есть более быстрый и дешёвый способ
передать их с одного своего устройства на другое,
чем гнать интернет-трафик через сайт AnkiWeb
(а с сайта вы карточки не у́чите).

Дело в том, что автору программы медиафайлы неинтересны
от слова совсем, ему интересны только карточки.
Сами карточки весят совсем немного, поэтому и скорость у сервера крайне небольшая.

Автоматически синхронизировать при открытии и закрытии профиля

Если у вас постоянное подключение к интернету, то это удобно.
Не будет накладок, когда учили одно и тоже на разных устройствах,
а синхронизовать забыли.

 При следующей синхронизации перезаписать в одном направлении

Изредка вознакает такая необходимость, когда произошла путаница между устройствами и надо одну из версий коллекции признать самой правильной и именно её передать на телефон, например, хоть бы самой Anki и хотелось сделать обратное.

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

В одном направлении

Это такая критическая точка, тут пользователи нередко путаются,
в каком именно направлении надо передавать информацию,
и кликают по неправильной кнопочке.

Как результат — вместо того, чтобы сохранить изменения на AnkiWeb,
они наоборот оказываются утрачены. Да, перед синхронизацией создаётся
локальный бэкап и с него можно восстановиться и синхронизироваться
в правильном направлении, но это уже больше напоминает танцы с бубном.

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

 

Название колоды

В какой колоде карточка?

Попутно возник интересный вопрос:

Как понять, в какой колоде теперь находится карточка?

Вот эти карточки — из разных колод:

при изучении русского языка
при изучении английского языка
Тут есть два решения:
  1. Добавить в шаблон карточек специальное поле {{Deck}} или {{Subdeck}}

  2. Установить дополнение, которое показывает название текущей колоды в заголовке окна.

С учётом регистра

В шаблон карточки можно добавить специальное поле {{Deck}}
с именем колоды, в которой находится данная карточка.

В окне редактирования ярко и красноречиво цветом подсвечено,
что нельзя допускать появления дубликатов:

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

Тут не видно, чем попарно различаются карточки.
Имеет смысл вернуть колонку с названием колоды и скрыть колонку с названием типа записей, ведь очевидно, что в данном случае тип записей совпадает, иначе бы и ситуации такой не возникло.

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

Примечание
Причём
изменение значения поля под одной просматриваемой карточкой
влияет на все карточки её записи.

Спец.поле {{Deck}}

Итак, спец. поле {{Deck}} в шаблоне карточек.

Крайне желательно, чтобы это поле оформлением отличалось от текста вопроса — ответа.

В данном случае пусть хотя бы будет поменьше размер шрифта.

Двоеточие вот только это бестолковое…​

HTML + CSS + JavaScript

Для описания шаблона карточек используется стандартный фронтенд (знатокам: Anki сделан на ядре KHTML), то есть доступны возможности языков HTML5, CSS3 и JavaScript.

В HTML5 считается хорошим стилем уходить от использования тега <br>, поэтому

в шаблонах лицевой стороны (вопроса)
<div id=Deck>{{Deck}}</div>
<script>
  document.getElementById('Deck').innerHTML =
  document.getElementById('Deck').innerHTML.replace("::", " &minus; ");
</script>
в таблице стилей
#Deck {
    position: absolute;
    top: 7px;
    left: 0px;
    width: 100%;
    font-size: 8pt;
    vertical-align: top;
    line-height: 10pt;
}
Примечание Изменения в таблицы стилей вносятся только один раз,
при переключении на Карточку 2 они сразу же видны:
Осторожно! Изменения надо внести в оба шаблона HTML, для Карточки 1 и для Карточки 2:

Ну вот, так уже намного лучше.

И надпись по размерам читаемая,
и в глаза не бросается, не мешает восприятию основной информации.
И двоеточие глаза более не мозолит, заменено на благородный минус.

Разные стили карточек

Но как быть, если один и тот же элемент требуется на разных карточках оформить по-разному?

Для этого существуют классы с номером карточек.

Например, чтобы показывать имя колоды красным на первой карточке и синим на второй, надо добавить в таблицу стилей:

.card1 #Deck {
    color: red;
}
.card2 #Deck {
    color: blue;
}
Результат, как говорится, на лице :-)

Дополнение

Заголовок основного окна крайне малоинформативен.
Он содержит только название программы (Anki) и название профиля.
Хотелось бы видеть в заголовке в первую очередь название той колоды,
карточка из которой показывается в данный момент.

Поэтому Инструменты - Дополнения - Обзор и установка…​

Обзор

В интернет-браузере откроется страница ankiweb.net/shared/addons/ со списком дополнений (аддонов или плагинов)

В нём надо найти Deck name in title
и кликнуть по кнопке Info слева от имени.

Deck name in title

Название колоды — в заголовок

Дальше предлагается скопипастить номер этого дополнения

3895972296

и вставить его в поле Код:

Итак, что видим после перезапуска Anki?

Если профиль единственный, его имя больше не показывается в заголовке окна:

Логично. Если профиль единственный, то пользователь Anki, скорее всего,
вообще не догадывается о существовании профилей.
Зачем тогда показывать ему безликое 1-й пользователь?

Если профилей несколько, то в заголовке окна со списком колод показывается название профиля:

Почти то, что и требовалось. Двоеточие вот только это бестолковое в заголовке окна…​

Переименование карточек

Можно пойти на маленькую хитрость (лайфхак), чтобы не переключаться постоянно в Обозревателе Anki между колонкой с именем колоды и колонкой с именем типа записи.

Владельцев больших и широких экранов это, понятное дело, не беспокоит.
Они могут позволить себе включить обе колонки одновременно.

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

Например:
  • в основном типе записей оставить имя как есть, Карточка 1.

  • в основном+обратные назвать с нулём, Карточка 01 и Карточка 02.

  • в основном(обратные по выбору) назвать с двумя нулями, Карточка 001 и Карточка 002.

Как это сделать? Зайти в Редактирование шаблонов карточек,
справа в центре нижней части окна клик по кнопке Ещё
откроется выпадающий список, в нём первая строка Переименовать

Всё мне ясно стало теперь

Профили

Итак, вы научились импортировать колоды Anki.

Сразу же хочется накачать расшаренных колод с сайта AnkiWeb

Не спешите

Лучше сразу приучите себя к хорошему:
  • разделите колоды, созданные своими руками,

  • и колоды, скачанные из интернета, по разным профилям.

Почему это так важно?
  1. Разрастается коллекция — падает быстродействие Anki. Это касается всех действий, но особенно — синхронизации с AnkiWeb, экспорта и проверки медиа-файлов…​

  2. Часто имя apkg-файла совершенно не совпадает с именем колоды, которую он содержит. Если в коллекции уже есть пара-тройка десятков колод, найти только что добавленную колоду с заранее неизвестным именем — может оказаться очень дискомфортным занятием. И слегка демотивирующим.

  3. Но это ещё полбеды. Гораздо хуже, что новая колода может оказаться одноимённой с уже имеющейся, тогда карточки двух разных колод окажутся в одной куче и спутают весь порядок изучения. Но тут хотя бы можно расцепить карточки через Обозреватель Anki по типу записей и растащить вручную по разным колодам. Но надо ли тратить на это время своей жизни?

  4. Есть ещё более стрёмная ситуация. Когда колода, которую вы добавляете, сделана другим пользователем из колоды, которая у вас уже есть. Тогда у них может оказаться внешне одинаковый тип записей, в то же самое время с совершенно различной структурой внутри — имеющиеся записи и их карточки могут быть просто исковерканы, а новые окажутся импортированы неполностью или покорёженными.

И ещё такая засада:

_Картинки.jpg и _Аудио.mp3

Медиа-файлы, имена которых начинаются с подчёркивания,
Anki считает специальными и не удаляет никогда.

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

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

Такие дела.

Как избавиться?

Начиная с версии 2.0.35 это стало очень просто:

  • достаточно экспортировать все колоды с расписанием и медиа-файлами;

  • удалить профиль;

  • создать профиль вновь;

  • импортировать во вновь созданный профиль только что экспортированные колоды.

Что такое профиль?

Это небо. Плачущее небо под ногами…​

— Нет
не так

Это совершенно независимая от соседей среда обитания карточек :-)

Для неё создаётся свой подкаталог в пользовательском каталоге Anki,
для неё поддерживаются свои типы записей и свои настройки.
Всё своё, никто не мешается и никому не мешаешь.

Единственное, что общее — это дополнения.

Для разделения и по набору дополнений, и по списку пользователей
существует параметр -b, но о нём в другое время и в другом месте.

Подсказка
Собственно, в этом и есть основной смысл существования профилей:

Когда разным колодам нужные разные настройки резервного копирования (одним нужно большее количество резервных копий, другим меньшее), разные настройки карточек (у одних колод новые карточки учить сначала, у других - после повторения пройденных, у третьих - вперемешку); когда разные колоды требуют разного подхода к внеочередному изучению, разных лимитов времени и т.п.

Один профиль = один аккаунт AnkiWeb

Да, это небольшое неудобство. Преодолимое, если учесть, что количество аккаунтов на AnkiWeb ничем не ограничено.

Если учесть, что в Ankidroid нет профилей, возникает ограничение 1 аккаунт = 1 телефон
Придётся все колоды, которые надо учить и на телефоне, собрать в один профиль.

Примечание Если у пользователя всего один профиль,
Anki при запуске программы сразу открывает этот профиль.
Если профилей — два или больше,
то при запуске Anki будет показано окно выбора профиля.

Профиль при запуске

Подсказка Есть возможность через параметры командной строки
указать, какой профиль следует сразу открывать при запуске.

Например, мне надо каждый сеанс заучивания начинать с карточек курса,
для которого создан профиль SmartStep English - Paul Nation

  • правой кнопкой мыши по ярлыку Anki на рабочем столе Windows

  • в контекстном меню Свойства

  • вкладка Ярлык

  • выбираешь поле Объект

  • курсор в конец поля

  • и далее набираешь пробел -p пробел "SmartStep English - Paul Nation"

  • и кнопку Применить

  • открываешь Anki, проверяешь.

Если вы удалите такой профиль в Anki, а в ярлыке у вас останется параметр, требующий открытия этого профиля при запуске Anki, то вы получите вот такое невнятное сообщение:

 { Exception: Provided profile does not exist. }
Исключение: предусмотренный профиль не существует.

 

Файл → Сменить профиль…​

Чтобы переключиться на другой профиль, надо кликнуть по строке меню Файл → Сменить профиль…​

При установке Anki создаётся профиль под именем 1-й пользователь.

Хотя бы один профиль в Anki должен быть всегда.

Имя текущего профиля всегда видно в заголовке окна программы

Конечно же, кроме случаев, когда установлено дополнение Deck name in title
и профиль единственный.

Добавить

Поскольку изначально автор программы Anki придумал профили для разных пользователей,
которые работают под одной учётной записью Windows,

Подсказка
предлагаю использовать такой принцип именования профилей:
имя пользователя - назначение профиля
Ли Си Цин - Цю Зы Е

Поскольку ни в каком таком руководстве или библии пользователя Anki не указано,
что профиль у пользователя может быть только один и только с его именем,
предлагаю дальнейшие варианты:

  • Лёшик - Таблицы умножения

  • Лену́шка - Английский язык

и так далее и тому подобное…​

Переименовать

Anki при установке создаёт профиль с совершенно нечеловеческим именем 1-й пользователь,
поэтому его надо переименовать в что-то более информативное.

А у меня — свои!
Осторожно! Важно, чтобы при переименовании профиля его каталог collection.media не был открыт в Проводнике Windows
или каком-нибудь файловом менеджере, иначе Anki не сможет переименовать его.

При занятом каталоге медиа-файлов вылетит вот такое грозное сообщение об ошибке:

но пугаться не надо. И кидаться кому-то что-то сообщать тоже :-)

Достаточно просто закрыть это сообщение и окно, которое держит папку, затем повторить попытку.

Удалить

Было бы гораздо лучше, если бы в предупреждении об удалении указывалось имя удаляемого профиля:

Осторожно! Важно, чтобы при удалении профиля его каталог collection.media не был открыт в Проводнике Windows
или каком-нибудь файловом менеджере, иначе Anki не сможет удалить его.

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

Подсказка
поэтому практичнее
удалить профиль с огромной чужой колодой
(которая после ознакомления с ней оказалась не нужна),
а затем вновь создать с таким же именем.

Пароль профиля

Инструменты → Настройки…​

Важно!

Поскольку Anki при установке пароля не скрывает набираемые символы,
задавайте его только тогда, когда никто не видит ваш экран!

Важно!

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

Переименование с паролем

Поле для ввода пароля в нижней части окна появляется
только для профилей, которым установлен пароль.
Это логично :-)

Ввод пароля потребуется и при переименовании,
и при удалении запароленного профиля.
И это логично ;-)

Но тут кроется некоторый

Изъян в безопасности

Засада в том, что после переименования (или удаления) профиля поле для ввода пароля не очищается. И если пользователь сразу после переименования отвлёкся и отошёл от компьютера, не закрыв окна выбора профиля (я, конечно, понимаю, мол, сам и виноват), то другой пользователь сможет воспользоваться сложившейся ситуацией и зайти в его профиль.

Предупреждение
Вывод:
Если используете пароль, то всегда закрывайте программу Anki, прежде чем отойти от компьютера.

Типы записей

Записи и карточки

О различиях между записями и карточками.

Тип записи – это описание набора полей и шаблоны карточек для этих полей.
Исходных данных в нём нет, это только описание.

Запись - это набор полей с конкретными исходными данными,
подходящими под описание этого типа записей.

Карточка - это некоторые (возможно, не все) поля из записи с указаниями,
как они должны быть оформлены при показе пользователю.

Карточки формируются по шаблонам данной записи подстановкой значений полей.

У каждой карточки есть запись, из которой она создана.
Карточек без записи не существует.

Из одной записи могут быть созданы несколько карточек.
Карточка создаётся на основе одной и только одной записи.

Когда в окне Добавить данные заносятся в поля,
не просто карточка создаётся —
в первую очередь создаётся её запись.

Запись удаляется, когда удалены все карточки, которые были созданы из её шаблонов.

Колоды и карточки

Записи сами по себе не относятся ни к какой колоде.
К колоде относятся только карточки данной записи.
Записи же относятся только к типам записей.

В одной колоде совершенно свободно могут находиться вместе карточки от записей разного типа.

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

Примечание Активное непродуманное использование такой чехарды
может значительно снизить эффективность запоминания.

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

Собственные

Так как же правильно поступить с запоминанием дней недели на английском и русском языках
в ситуации, когда первые поля записей совпадают?

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

Но это частное локальное решение, другие записи по жизни могут оказаться гораздо сложнее и не допустят такой простой перестановки.

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

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

Казалось бы: выделил 14 карточек, а удалены оказались 7 записей.
И такая дребедень целый день…​
вечный пинг пинг-понг: карточка - запись, запись - карточка, …​
Заяц - Волк - Заяц - Волк - Заяц - Волк…​
уууу тоска без начала уууу тоска без конца

Ну вот, с англо-русскими полный порядок.

Теперь создать отдельный тип записей для русского языка.

Добавить

Инструменты - Управление типами записей…​ или Ctrl+Shift+N на клавиатуре.

Добавить:
Баден-Баден

Так, стоп, это что ещё за масло масляное?

Вроде было всего 4 типа записей, почему их здесь 8?

В чём разница между Добавить и Клонировать?

Ладно, попробуем сначало одно, затем другое.

Примечание Запрошенное действие потребует полной выгрузки данных при следующей
синхронизации коллекции. Просмотры и другие изменения на ваших устройствах,
которые не были синхронизированы, будут потеряны. Продолжить?
Подсказка Загрузка — это когда на наш компьютер,
Выгрузка — это когда с нашего компьютера.

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

Хорошо, попробуем добавить запись нового типа:

на латинской раскладке клавиатуры A
и Ctrl+Enter
Примечание Ну понятно, Добавить — это самое базовое представление записей,
такое, каким его задумал автор программы.
Никаких пользовательских изменений и украшательств.

В этом легко убедиться, заглянув в шаблон карточек:
имена у карточек без лидирующих нулей:

Клонировать

Теперь клонируем:

Ну вот, все благоприобритённые фишки на месте:

Примечание То есть добавить можно только 4 встроенных типа,
придуманных Дамиеном Элмсом, в чистом виде.
А клонировать можно любой тип записей, в том числе и созданный самостоятельно.
Ладно, закинем дни недели большими буквами