{"id":26403395,"url":"https://github.com/balta2ar/srs-toolbelt","last_synced_at":"2025-12-17T09:25:58.814Z","repository":{"id":25126061,"uuid":"28547855","full_name":"balta2ar/srs-toolbelt","owner":"balta2ar","description":"SRS (Anki/Memrise) toolbelt: automate conversion of a list of English/Korean/Norwegian words into Anki cards or course in Memrise, with pronunciation","archived":false,"fork":false,"pushed_at":"2024-04-13T08:43:50.000Z","size":14330,"stargazers_count":33,"open_issues_count":6,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-13T22:03:23.276Z","etag":null,"topics":["anki-card","anki-deck","anki-sync","ankiweb","decks","flash-cards","flashcards","korean","memrise","memrise-courses","norwegian","pronunciation","python","srs","srs-toolbelt"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/balta2ar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2014-12-27T22:28:59.000Z","updated_at":"2024-04-15T06:55:53.319Z","dependencies_parsed_at":"2023-10-15T17:37:30.718Z","dependency_job_id":"6febc39e-16c7-43c0-adab-d002961c06ef","html_url":"https://github.com/balta2ar/srs-toolbelt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/balta2ar%2Fsrs-toolbelt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/balta2ar%2Fsrs-toolbelt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/balta2ar%2Fsrs-toolbelt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/balta2ar%2Fsrs-toolbelt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/balta2ar","download_url":"https://codeload.github.com/balta2ar/srs-toolbelt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244058604,"owners_count":20391134,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anki-card","anki-deck","anki-sync","ankiweb","decks","flash-cards","flashcards","korean","memrise","memrise-courses","norwegian","pronunciation","python","srs","srs-toolbelt"],"created_at":"2025-03-17T15:33:31.607Z","updated_at":"2025-12-17T09:25:58.745Z","avatar_url":"https://github.com/balta2ar.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"srs-toolbelt (former yandex-slovari-tetradki)\n=============================================\n\n## Contents\n\n\u003c!-- TOC --\u003e\n\n- [srs-toolbelt (former yandex-slovari-tetradki)](#srs-toolbelt-former-yandex-slovari-tetradki)\n  - [Contents](#contents)\n  - [Intro](#intro)\n  - [1. Sync local Anki DB with ankiweb](#1-sync-local-anki-db-with-ankiweb)\n  - [2. Print recent hard cards from Anki DB](#2-print-recent-hard-cards-from-anki-db)\n  - [3. Convert a list of new English words into Anki flash cards.](#3-convert-a-list-of-new-english-words-into-anki-flash-cards)\n  - [4. Convert Korean sentences from Google Keep into Anki cards](#4-convert-korean-sentences-from-google-keep-into-anki-cards)\n  - [5. Easily add pronunciation to Korean words in Memrise](#5-easily-add-pronunciation-to-korean-words-in-memrise)\n  - [6. Convert Google Keep note with Korean words into Memrise course with pronunciation](#6-convert-google-keep-note-with-korean-words-into-memrise-course-with-pronunciation)\n  - [7. Do forced alignment for korean sentences from my Korean textbook and convert them to Memrise course (flash cards).](#7-do-forced-alignment-for-korean-sentences-from-my-korean-textbook-and-convert-them-to-memrise-course-flash-cards)\n  - [8. Multi-sourced UI for several norwegian dictionaries](#8-multi-sourced-ui-for-several-norwegian-dictionaries)\n  - [9. NRK news fetcher](#9-nrk-news-fetcher)\n  - [10. Mindmaps and digraphs](#10-mindmaps-and-digraphs)\n  - [My decks](#my-decks)\n    - [Anki](#anki)\n    - [Memrise](#memrise)\n  - [Screenshots of anki](#screenshots-of-anki)\n  - [Screenshots of conky](#screenshots-of-conky)\n    - [Translation \\\u0026 syn \\\u0026 ant](#translation--syn--ant)\n    - [Defs](#defs)\n  - [Related materials](#related-materials)\n  - [Theory and methods](#theory-and-methods)\n    - [SRS Flash Cards](#srs-flash-cards)\n    - [Method by Anastasia Kuznetsova](#method-by-anastasia-kuznetsova)\n    - [Method by Maru Kachko](#method-by-maru-kachko)\n    - [Goldlist method](#goldlist-method)\n  - [Author](#author)\n\n\u003c!-- /TOC --\u003e\n\n## Intro\n\nIn this repository I keep all kinds of useful scripts that I use to enhance\nmy SRS (Spaced Repetition Software, e.g. Anki, Memrise, Quizlet) experience.\n\nInitially this repo was named `yandex-slovari-tetradki` because that's what\nthe code here used to do. Few years later Yandex.Slovari server was shutdown\nand this code got outdated. I slightly adapted it, reworked and now it\nhelps me with the following reoccuring tasks.\n\n## 1. Sync local Anki DB with ankiweb\n\nScript [anki_sync.py](https://github.com/balta2ar/srs-toolbelt/blob/master/yatetradki/tools/anki_sync.py) syncronizes my local Anki DB with the remote version. Nothing extraordinary, I just looked at Anki internals and tried to come up with a minimal code that would automatically run the sync without starting the GUI manually.\n\n\n## 2. Print recent hard cards from Anki DB\n\nI find it occasionally useful to display Anki cards that I answered \"Hard\" on my desktop. To do that, I use script [recent.py](https://github.com/balta2ar/srs-toolbelt/blob/master/yatetradki/tools/recent.py) to print out recent cards. To squeeze more words into the space, words are printed in multiple columns.\n\n![Recent](https://i.imgur.com/9yDSeui.png)\n\nBecause I have many decks, not all of them are queried. I have the following file that contains the decks that I only want to see in the output of this script:\n\n``` text\n$ cat recent_queries.txt\ndeck:english::english-for-students rated:7:2    Word\ndeck:english::englishclub-phrasal-verbs rated:7:2       Word\ndeck:english::idiomconnection rated:7:2 Word\ndeck:english::jinja rated:7:2   Word\ndeck:english::lingvo-online rated:7:2   Word\ndeck:english::phrases-org-uk rated:7:2  Word\ndeck:english::sat-words rated:7:2       Word\ndeck:english::toefl-vocabulary rated:7:2        Word\ndeck:english::using-english rated:7:2   Word\n```\n\n## 3. Convert a list of new English words into Anki flash cards.\n\nI have two primary sources of new words: browser history (I use\nwww.lingvolive.com dicionary) and history in GoldenDict mobile dictionary (I use\n\"Save history\" feature along with synchronization of that file using BTSync or\nResilio Sync now). Every new word is looked up in several DSL dictionaries by\nscripts\n[dsl.sh](https://github.com/balta2ar/srs-toolbelt/blob/master/yatetradki/reader/dsl.sh)\nand\n[dsl.py](https://github.com/balta2ar/srs-toolbelt/blob/master/yatetradki/reader/dsl.py).\nOn top of that English pronunciation is added automatically using scripts\n[audio.py](https://github.com/balta2ar/srs-toolbelt/blob/master/yatetradki/tools/audio.py)\nand\n[load_from_csv.py](https://github.com/balta2ar/srs-toolbelt/blob/master/yatetradki/tools/load_from_csv.py).\nThe latter one is a universal CSV loader, it can load into any Anki deck.\n`audio.py` is another hack that composes several pieces together: it calls parts\nof AwesomeTTS Anki plugin with a hardcoded configuration to obtain english\npronunciation.\n\nThe resulting cards look as follows:\n\n![Automatic Card](https://i.imgur.com/af6UiMz.jpg)\n\nIf course it's a long screenshot. In Anki only a small parts is displayed but\nit's scrollable.\n\nSample usage: grab words from lingvo-online.ru and convert them into Anki cards\ntaking articles from DSL dictionaries:\n\n``` bash\ncd yatetradki/extract/lingvo-online.ru\npython lingvo-online.py \u003e history.txt\n\ncat yatetradki/extract/lingvo-online.ru/history.txt | python -m yatetradki.reader.dsl \\\n    --dsl '/mnt/big_ntfs/distrib/lang/dictionaries/ru-en/DSL UTF16LE/Ru-En_Mostitsky_Universal.dsl' \\\n    --dsl '/mnt/big_ntfs/distrib/lang/dictionaries/en-ru/LingvoUniversalEnRu/LingvoUniversalEnRu.dsl' \\\n    --dsl '/mnt/big_ntfs/distrib/lang/dictionaries/LDOCE5 for Lingvo/dsl/En-En-Longman_DOCE5.dsl' \\\n    \u003e data3/lingvo-online.tsv\n\n```\n\n## 4. Convert Korean sentences from Google Keep into Anki cards\n\nFor me it's convenient to use Google Keep as a source of my data for Anki. For\nexample, I have a note with the following structure:\n\n``` text\n# Глава 8, 공공 예절\n\n* 그러면 휴대 전화로 사진을 찍으면 안 됩니까?\n* 네, 안 됩니다. 휴대 전화는 전원을 꺼 주세요.\nТогда делать фотографии телефоном нельзя?\nДа, нельзя. Пожалуйста выключите питание телефона.\n\n— 여기서 휴대전화를 사용하면 안  돼요.\n— 네, 알겠습니다.\nЗдесь нельзя пользоваться мобильным телефоном.\nВас понял.\n```\n\nIt's convenient because when I do my Korean studies, I can easily dictate\nsentences in both languages into my phone and save it into Google Keep. Later\nGoogle Keep is syncronized onto my computer and I convert the received text file\ninto an Anki card that looks like this:\n\n![korean-sentences](https://i.imgur.com/2zXaqad.jpg)\n\n## 5. Easily add pronunciation to Korean words in Memrise\n\nUsing [memrise_client.js](https://github.com/balta2ar/srs-toolbelt/blob/master/yatetradki/korean/memrise_client.js) with Tampermonkey as a client and [memrise_server.py](https://github.com/balta2ar/srs-toolbelt/blob/master/yatetradki/korean/memrise_server.py) and [fill_audio.py](https://github.com/balta2ar/srs-toolbelt/blob/master/yatetradki/korean/fill_audio.py) as a server I managed to make it very easy to add Korean pronunciation to my Memrise decks. I just need to expand necessary levels on Memrise website and click AddAudio bottons or that button on the header of the page. These buttons are added by the Tampermonkey extension. Backend part uses Flask for REST API and a collection of mp3 files plus NaverTTS to produce pronunciation for the requested korean word.\n\n![Memrise Add Audio](https://i.imgur.com/uDOtwDR.png)\n\n## 6. Convert Google Keep note with Korean words into Memrise course with pronunciation\n\nI have a note with the following structure:\n\n``` text\n# 1 урок\n\n@a comment\n예매; предварительная покупка\n도착; прибытие\n매표소; билетная касса\n\n# 2 урок\n\n식구; член семьи\n스케이트; коньки\n야구; бейсбол\n\n# 3 урок\n\n답장; ответное письмо\n답장하다; отвечать на письмо\n우체통; почтовый ящик\n\n```\n\nUsing [memrise_sync.py](https://github.com/balta2ar/srs-toolbelt/blob/master/yatetradki/korean/memrise_sync.py) I can easily convert this text into a Memrise course. Basically it syncs this file with Memrise server and adds/removes necessary levels and words in each level. If it detects that `memrise_server.py` is running, it will also inject `memrise_client.js` into the running browser instances and will add pronunciation as well. Sync can be run as follows:\n\n``` bash\npython ./memrise_sync.py \\\n      --driver phantomjs \\\n      upload \\\n      --only-log-changes=True \\\n      --no-duplicate=True \\\n      --pronunciation korean \\\n      --filename wg1-9.txt \\\n      --course-url 'https://www.memrise.com/course/1784675/junggeub-hangugeo-je1-9-gwa/edit/'\n```\n\nSample execution log:\n\n``` text\npython ./memrise_sync.py --driver phantomjs upload --only-log-changes --pronunciation korean --filename sample2.txt --course-url 'https://www.memrise.com/course\n/1793248/wongwan-2-2-high-priority-bz-words/edit/'\n2018-01-04 21:29:22,857 INFO Program arguments: driver=\"\u003cselenium.webdriver.phantomjs.webdriver.WebDriver (session=\"29bc6cf0-f17d-11e7-9307-f9bfc90e4e0c\")\u003e\" only_log_changes=True pronunciation=\"korean\" filename=\"sample2.txt\" course_url=\"https://www.memrise.com/course/1793248/wongwan-2-2-high-priority-bz-words/edit/\"\n2018-01-04 21:29:22,857 INFO Applying 12 difference: [DiffActionChangeLevel(level_name='January', new_level_name='1 урок'),\n DiffActionChangeWord(level_name='1 урок', old_pair=WordPair(word='만큼', meaning='такой, как; так же, как; настолько; настолько ..., что; в такой мере ..., что; так ... чтобы; так как, поско\nльку; раз'), new_pair=WordPair(word='예매', meaning='предварительная покупка')),\n DiffActionChangeWord(level_name='1 урок', old_pair=WordPair(word='구역', meaning='【區域】 район; сектор; зона; граница'), new_pair=WordPair(word='도착', meaning='прибытие')),\n DiffActionChangeWord(level_name='1 урок', old_pair=WordPair(word='흡연', meaning='【吸煙】 курение'), new_pair=WordPair(word='매표소', meaning='билетная касса')),\n DiffActionChangeLevel(level_name='February', new_level_name='2 урок'),\n DiffActionCreateWord(level_name='2 урок', pair=WordPair(word='식구', meaning='член семьи')),\n DiffActionCreateWord(level_name='2 урок', pair=WordPair(word='스케이트', meaning='коньки')),\n DiffActionCreateWord(level_name='2 урок', pair=WordPair(word='야구', meaning='бейсбол')),\n DiffActionChangeLevel(level_name='March', new_level_name='3 урок'),\n DiffActionCreateWord(level_name='3 урок', pair=WordPair(word='답장', meaning='ответное письмо')),\n DiffActionCreateWord(level_name='3 урок', pair=WordPair(word='답장하다', meaning='отвечать на письмо')),\n DiffActionCreateWord(level_name='3 урок', pair=WordPair(word='우체통', meaning='почтовый ящик'))]\n2018-01-04 21:29:22,857 INFO Applying action: \"DiffActionChangeLevel(level_name='January', new_level_name='1 урок')\"\n2018-01-04 21:29:23,252 INFO Applying action: \"DiffActionChangeWord(level_name='1 урок', old_pair=WordPair(word='만큼', meaning='такой, как; так же, как; настолько; настолько ..., что; в тако\nй мере ..., что; так ... чтобы; так как, поскольку; раз'), new_pair=WordPair(word='예매', meaning='предварительная покупка'))\"\n2018-01-04 21:29:23,656 INFO Applying action: \"DiffActionChangeWord(level_name='1 урок', old_pair=WordPair(word='구역', meaning='【區域】 район; сектор; зона; граница'), new_pair=WordPair(word='도착', meaning='прибытие'))\"\n2018-01-04 21:29:24,067 INFO Applying action: \"DiffActionChangeWord(level_name='1 урок', old_pair=WordPair(word='흡연', meaning='【吸煙】 курение'), new_pair=WordPair(word='매표소', meaning='\nбилетная касса'))\"\n2018-01-04 21:29:24,506 INFO Applying action: \"DiffActionChangeLevel(level_name='February', new_level_name='2 урок')\"\n2018-01-04 21:29:24,848 INFO Applying action: \"DiffActionCreateWord(level_name='2 урок', pair=WordPair(word='식구', meaning='член семьи'))\"\n2018-01-04 21:29:26,181 INFO Applying action: \"DiffActionCreateWord(level_name='2 урок', pair=WordPair(word='스케이트', meaning='коньки'))\"\n2018-01-04 21:29:27,501 INFO Applying action: \"DiffActionCreateWord(level_name='2 урок', pair=WordPair(word='야구', meaning='бейсбол'))\"\n2018-01-04 21:29:28,326 INFO Applying action: \"DiffActionChangeLevel(level_name='March', new_level_name='3 урок')\"\n2018-01-04 21:29:28,683 INFO Applying action: \"DiffActionCreateWord(level_name='3 урок', pair=WordPair(word='답장', meaning='ответное письмо'))\"\n2018-01-04 21:29:30,028 INFO Applying action: \"DiffActionCreateWord(level_name='3 урок', pair=WordPair(word='답장하다', meaning='отвечать на письмо'))\"\n2018-01-04 21:29:31,383 INFO Applying action: \"DiffActionCreateWord(level_name='3 урок', pair=WordPair(word='우체통', meaning='почтовый ящик'))\"\n/usr/lib/python3.6/site-packages/urllib3/connectionpool.py:858: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: http$://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n  InsecureRequestWarning)\n2018-01-04 21:29:32,292 INFO Pronunciation server is available, proceeding\n2018-01-04 21:29:32,292 INFO Injecting file jquery.min.js\n2018-01-04 21:29:32,312 INFO Injecting file userscript_stubs.js\n2018-01-04 21:29:32,317 INFO Injecting file memrise_client.js\n2018-01-04 21:29:32,323 INFO UserScript JS files have been injected\n2018-01-04 21:29:32,323 INFO Sleeping 3.0\n2018-01-04 21:29:35,342 INFO Adding pronunciation to level 1 урок\n2018-01-04 21:29:35,391 INFO Adding pronunciation to level 2 урок\n2018-01-04 21:29:35,419 INFO Clicking AddAudio button (3 more remains)\n2018-01-04 21:29:36,819 INFO Clicking AddAudio button (2 more remains)\n2018-01-04 21:29:38,015 INFO Clicking AddAudio button (1 more remains)\n2018-01-04 21:29:39,240 INFO Adding pronunciation to level 3 урок\n2018-01-04 21:29:39,272 INFO Clicking AddAudio button (3 more remains)\n2018-01-04 21:29:40,417 INFO Clicking AddAudio button (2 more remains)\n2018-01-04 21:29:41,574 INFO Clicking AddAudio button (1 more remains)\n2018-01-04 21:29:42,812 INFO Sync has finished\n```\n\n## 7. Do forced alignment for korean sentences from my Korean textbook and convert them to Memrise course (flash cards).\n\nTODO.\n\n## 8. Multi-sourced UI for several norwegian dictionaries\n\n\u003c!-- ![page1](https://i.imgur.com/JKmHrHA.png) --\u003e\n\u003c!-- ![page2](https://i.imgur.com/Q82LjRK.png) --\u003e\n\u003c!-- ![page3](https://i.imgur.com/woKdYHJ.png) --\u003e\n![page1](images/ordbok-lexin.png)\n![page2](images/ordbok-naob.png)\n![page3](images/ordbok-dsl.png)\n![page4](images/ordbok-cambridge.png)\n\nThis script [ordbok.py](https://github.com/balta2ar/srs-toolbelt/blob/master/yatetradki/uitools/ordbok.py) collects the output from multiple sources in a condensed nice format so that you get quick access to dictionary articles as you type. Results are cached, so servers are not stressed. Currently supported sources:\n\nPage 1:\n* Inflections from https://ordbok.uib.no/\n* Nor, Rus, Eng from https://lexin.oslomet.no/#/findwords/message.bokmal-russian\n* Nor-\u003eRus / Rus-Nor direction from https://nb.glosbe.com/nb/ru/\n* Nor-\u003eEng direction from https://nb.glosbe.com/nb/en/\n\nPage 2:\n* https://ordbok.uib.no/\n* https://naob.no/\n\nPage 3:\n* local DSL russian-norwegian dictionary\n* https://tr-ex.me/translation/norwegian-english/\n\nPage 4:\n* https://no.wiktionary.org/wiki/\n* https://dictionary.cambridge.org/dictionary/english-norwegian/\n\nPage 5:\n* http://norsk.dicts.aulismedia.com/\n\nPage 6:\n* https://translate.google.com\n* https://www.deepl.com/translator\n\n**Shortcuts**: switch between pages with `Alt-!`, `Alt-@`, `Alt-#` (weird shortcuts are convenient in my layout).\n\n## 9. NRK news fetcher\n\nI tend to use news from [Nordland](https://tv.nrk.no/serie/distriktsnyheter-nordland/) as my study materials, which I listen to, try to understand, translate, and memorize new words. To help with that, [nrkup.py](https://github.com/balta2ar/srs-toolbelt/blob/master/yatetradki/uitools/nrkup/nrkup.py) service helps a lot. It can:\n\n* Download and save video of episodes using [nrkdownload](https://github.com/marhoy/nrk-download)\n* Extract audio track using [ffmpeg](https://ffmpeg.org/)\n* Remove silence from the audio and apply dynamic range compression using [sox](http://sox.sourceforge.net/) for better sound quality\n* Upload that audio to Telegram using [telethon](https://github.com/LonamiWebs/Telethon) -- I use Telegram as my audio player\n* Fetch subtitles and generate study text material by grouping text accroding to news sections in the report, e.g. (removed most of the text for compactness)\n* Within topics subtitles are also grouped by speaker: I run [pyannote](https://github.com/pyannote/pyannote-audio) to perform speaker diarization, and then I group subtitles by speaker -- one speaker per paragraph:\n* I tried noise removal using [rnnoise](https://github.com/xiph/rnnoise), but it didn't work well:\n\n```\n20220613\nhttps://tv.nrk.no/serie/distriktsnyheter-nordland/202206/DKNO98061322/avspiller\nhttp://localhost:7000/subtitles?url=https://tv.nrk.no/serie/distriktsnyheter-nordland/202206/DKNO98061322/avspiller\n\n1 00:01 NRK Nordland\nDet er uklart når problemene med de nye hurtigbåtene vil være løst.\n\n2 00:28 Det er uklart når problemene med de nye hurtigbåtene vil være løst\nSjøfartsdirektoratet roser mannskapet som slo alarm om redningsflåten på hurtigbåter.\n\n3 02:47 Kjemper for danselinja\nDanseelever møtte opp på fylkestinget i dag.\n\n4 04:53 Kjemper for danselinja\nReporter Frank Nygård, reaksjonene er sterke etter at forslaget om nedleggelse kom?\n\n10 13:44 Takk for nå\nTakk for følget.\n```\n\n## 10. Mindmaps and digraphs\n\nOne of the activities that I do to improve my language skills is to create mindmaps. Besides of drawing them manualy, which is important step for memorisation, I also made a script to visualize them using PlantUML+GraphViz. What I do is I make a nested list like this:\n\n```text\nforelder\n    kan\n        gå i vranglås\n        frasi seg foreldreretten\n        planlegge et år i forveien\n        ikke dele en flik av hjertet med noen\n        mye om bordskikk\n    var i\n        fødestua\n    har\n        det godt utad\n        en dong\n    er\n        i sitt ess\n```\n\nAnd then a bit of PlantUML+GraphViz layout magick + [Streamlit](https://docs.streamlit.io/) app to provide a simple UI to tune parameters. For example, the default value of `start` parameter often is not the best. The UI allows me to try various layouts and their settings quick. For now it supports generation in two formats: bidirectional graph and a mindmap.\n\n![digraph](images/mindmap-digraph.png)\n![mindmap](images/mindmap-mindmap.png)\n\n## My decks\n\n### Anki\n\nHere are my Anki decks: [Anki decks](https://yadi.sk/d/8fycApLs3KDE5K)\n\nThey are a collection that I've gathered from various sites over the years and\nthat I'm currently steadily studying. There are about 40000 cards including\nwords, phrasal verbs, expressions, idioms, phrases and so on.\n\nMost of my Anki collection contains English cards. I also have few decks in\nKorean, but it's really nothing to write home about, so I'm not sharing. If\nyou're still interested, let me know.\n\n### Memrise\n\nHere are my Memrise courses:\n\n[Baltazar Korean\nWords](https://www.memrise.com/course/1344980/baltazar-korean-words/) \u0026mdash; I\nmade this deck during my first year of studies at [Won Gwan](http://wonkwang.ru).\n\n[WonGwan 2-1 High Priority Bz Words](https://www.memrise.com/course/1630943/wongwan-2-1-high-priority-bz-words/),\n[WonGwan 2-2 High Priority Bz Words](https://www.memrise.com/course/1793248/wongwan-2-2-high-priority-bz-words/) \u0026mdash;\nthese two decks were made during the second year of my studies at WonGwan.\n\n[중급 한국어 제1-9 과](https://www.memrise.com/course/1784675/junggeub-hangugeo-je1-9-gwa/) \u0026mdash;\nthis isn't my piece of work, I simply merged two decks together, [중급 한국어 제1-5 과](https://www.memrise.com/course/653322/1-5-7/) and \n[중급 한국어 제6-9 과](https://www.memrise.com/course/751253/6-9-6/).\n\nThese two: [4 Седжон](https://www.memrise.com/course/1197169/4-sedzhon/),\n[5 Седжон](https://www.memrise.com/course/1336543/5-sedzhon/) are not mine,\nI simply helped to add Korean pronunciation.\n\nSame with these: [Gauss webtoon word list](https://www.memrise.com/course/905498/gauss-webtoon-word-list/),\n[HowtoStudyKorean.com Unit 1](https://www.memrise.com/course/150816/howtostudykoreancom-unit-1-2/) \u0026mdash;\nI only helped course authors add complete pronunciation in Korean.\n\n## Screenshots of anki\n\n![Card](http://i.imgur.com/ZgsLl68.png)\n\n## Screenshots of conky\n\n### Translation \u0026 syn \u0026 ant\n\n![Colors](http://i.imgur.com/VbO8REc.png)\n\n### Defs\n\n![Definitions](http://i.imgur.com/gePlqoU.png)\n\n## Related materials\n\nHere are some links to other materials related to Anki advanced configuration that helped me or inspired me somehow.\n\n1. https://www.juliensobczak.com/tell/2016/12/26/anki-scripting.html\n1. https://gist.github.com/androidfred/5562973ac1ae5ce58d305a2e81c0ebd1\n1. https://github.com/nheinric/addToAnki\n\n## Theory and methods\n\nIn this section I'd like to mention a few methods that I used in my studies, which method suited better and how I used it.\n\n### SRS Flash Cards\n\nThe number one method is of course using Spaced Repetition Software. I only used Anki and Memrise. I am aware of Duolingo, Quizlet, and others, but I never been seriously using anything but these two. Surprisingly, Anki worked best for English, and Memrise worked best for Korean. That's personal preference, of course, you don't have to have the same usage patterns. What's important about Memrise is that it makes you type Korean words. I stongly suggest avoid the temptation of using the built-in buttons that contain whole Korean syllables. Instead -- just type using your regular keyboard, type the whole words.\n\nIn Anki, on the other hand, I do no typing checks when I study English words. I did some experiments with typing Korean in Korean decks, but it didn't go well.\n\nThis is the only high-tech method that I've used. The methods below are low-tech but it doesn't make them any worse (maybe even better).\n\n### Method by Anastasia Kuznetsova\n\nThis method is good for remembering a bunch of words into your short-term memory. Even though the original author claims that all the words that she studied using this method she can still remember years later, I leave this statement without judgement because there is nothing in the method that trains your long-term memory. I guess the author remembered the words so well because this was just one of the tools in the language learning.\n\nAs said above, this method is good for learning words. Due to the suggested layout of the words on the paper this method isn't really good for sentenses. What you need to do is to write all your words that you'd like to remember into\na column. Take a piece of A4 paper and place it horizontally. Now write the words in foreign language in the first column. I usually write from top to bottom until I have space left.\n\n![sample_page](https://user-images.githubusercontent.com/340676/79798983-10c71800-835a-11ea-8774-b98e04718882.jpg)\n\n### Method by Maru Kachko\n\nThis method is good for remembering words in context or for remembering the whole sentences. It's somewhere in between in terms of short-term vs long-term memory.\n\nIt is similar to the Goldlist method below, but is less strict and formal. The idea is to write N sentenses (10 in the author's original description) every day. Drop a sentense from the list if you can easily remember it, put a new sentense to the free spot.\n\n### Goldlist method\n\nThis method is good for remembering in long-term memory. The method is a combination of a spaced repetition and everyday writing. Basically, you write page of sentenses everyday, some of which you remember better. Those sentenses that stick in your memory best, they get filtered out and you focus on the rest next day.\n\nHere are the relevant links that explain the method in details:\n\n1. https://www.youtube.com/watch?v=rH6FERpM5fQ\n2. https://universeofmemory.com/the-goldlist-method-scientific-critique/\n3. https://howtogetfluent.com/gold-list-method/\n4. https://www.open.edu/openlearn/languages/learning-languages/the-goldlist-method\n\n## Author\n\n(c) 2014-2020 Yuri Bochkarev\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbalta2ar%2Fsrs-toolbelt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbalta2ar%2Fsrs-toolbelt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbalta2ar%2Fsrs-toolbelt/lists"}