-
Notifications
You must be signed in to change notification settings - Fork 2
/
learn_words.todo
187 lines (174 loc) · 23.8 KB
/
learn_words.todo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
общее:
✔ чтобы количество слов которое осталось обновлялось после каждого ввода @done (21-08-13 21:59)
✔ пофиксить баг с тем что слова не все выбираются: выбирать из массива сначала столько слов сколько человек сказал, а лишь затем брать их переводы и их добавлять. или по-другому, если человек сказал что ему нужны все слова, то рассматривать этот случай отдельно @done (21-08-17 23:16)
✔ обновить прогу для изучения слов на новую версию egui и чекнуть что там для слишком длинных слов теперь без багов работает @done (21-10-28 18:11)
☐ для stackplot сделать чтобы самые маленькие по площади были в самом низу, а самые большие в самом вверху
☐ когда слово слишком большое, оно не должно делать окно больше, поле ввода должно стать меньше
☐ чтобы попытки показывались зелёным до 400 попыток, затем началось синий до тысячи, затем красный до максимального числа, аналогично сделать со временем и так далее.
☐ мб показывать в окне learn words количество оставшихся попыток?
☐ чтобы был тест для изученных слов (пока не знаю что и как и зачем, мб к 1 сентября узнаю)
☐ если переименовываю в существующее слово, то они должны мержиться
статьи:
✔ рассказать о quad-storage @done (21-08-10 21:52)
✔ написать статью о том как сделал эту прогу @done (21-10-28 18:11)
☐ 1 сентября опубликовать статью по результатам месячного использования этой проги
далёкая перспектива:
☐ https://github.com/emilk/egui/issues/595
☐ в зависимости от того что выключается в stackplot в легенде, убирать это из вычислений, для этого надо внедрить фичу в egui
рефакторинг:
✔ причесать функцию ui, вынести поля ввода со всеми их фичами в отдельную функцию, чтобы не было этого копипаста, а данные в отдельную структуру @done (21-08-10 19:27)
☐ для того чтобы тратилось меньше памяти, и прога работала быстрее за счёт уменьшения числа аллокаций, использовать айдишники строк, а все строки хранить в одной структуре
☐ переделать так, чтобы в words хранился не массив, где слово может быть выученным и подлежащем изучению, а чтобы сверху там было (trash, known, (learn, и вот уже внутри learn массив (либо выученное, либо изучаемое))) (сомнительное удобство)
☐ попытаться заюзать gat
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
АРХИВ:
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
общее:
✔ сделать чтобы по интерфейсу написания слова можно было легко перемещаться @done (21-07-29 23:34)
✔ чтобы субтитры могли возвращать ошибку и она показывалась в окне @done (21-07-29 23:41)
✔ добавить чтобы каждое слово знало свой текущий уровень @done (21-07-30 14:18)
✔ чтобы из файла считывалась комбинация (Words, Settings), и чтобы она же сохранялась @done (21-07-30 14:23)
✔ замер времени в программе @done (21-07-30 15:01)
+ когда простой мышки или клавиатуры больше 15 секунд, программа переходит в режим паузы, и прекращает замер времени, и это показывается на весь экран
+ время в программе за сегодня показывается снизу
+ каждый день запоминается количество времени в програме
✔ сделать чтобы перемещение по интерфейсу ввода слова делалось через enter @done (21-07-31 23:24)
✔ сделать базовое окно about @done (21-07-31 23:35)
✔ кажется на васме протекает буфер обмена при использовании русских символов. видимо путаются количество чаров и длина в байтах, надо пофиксить @done (21-08-01 00:10)
раскладка:
✔ сделать окно для раскладки клавиатуры @done (21-07-30 19:30)
+ галочка "использовать автопереключение раскладки", и если галочка отмечена, то далее показывается всё что есть
+ введите все свои английские символы
+ введите все свои русские символы
+ если ввести символ не можешь, значит ставить пробел
+ чтобы чекалось если вдруг из двух разных языков находятся одинаковые символы, тогда отвергать такую раскладку
+ можно ставить enter для удобства
+ сравнивалось количество символов без enter, и говорилось когда они совпадают а когда нет
+ кнопка "использовать эту раскладку"
✔ сделать виджеты поля ввода, которое умеет определять текущую раскладку и язык ответа и автоматически подменять буквы @done (21-07-30 19:30)
✔ раскладка должна храниться в settings @done (21-07-30 19:30)
статистика:
✔ основа для замера каждый день @done (21-07-30 15:34)
+ замерять количество попыток, правильных и неправильных
+ новых неизвестных слов
+ обновляется либо вручную, либо при закрытии программы, либо при открытии окна статистики
+ заодно замерять количество попыток вообще
✔ показывать статистику за сегодня внизу @done (21-07-30 15:34)
✔ запоминание количества слов каждого уровня каждый день @done (21-07-30 15:34)
✔ статистика количества слов в программе: @done (21-07-30 16:23)
+ известные
+ мусорные
+ изучаемые на каждый уровень
+ изученные полностью
+ вычисляется при вызове программы из words
✔ график количества запомненных слов за все дни, условно какую площадь он занимает, со stems, по уровням @done (21-07-30 17:40)
✔ аналогично верхнему график количества правильных и неправильных попыток @done (21-07-30 17:40)
✔ плитка как на гитхабе @done (21-07-30 23:36)
+ можно выбирать какой параметр показывать, учитывая всё что известно для текущего дня
васм:
✔ кнопки для считывания и загрузки своих данных в программу в меню в пункте Data -> {Import, Export} @done (21-07-30 18:03)
✔ заюзать quad_rand @done (21-07-31 14:51)
✔ хранение в куках @done (21-07-31 22:20)
+ https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage
✔ попробовать скомпилить под васм @done (21-07-31 23:12)
✔ при закрытии вкладки чтобы автоматически сохранялся прогресс @done (21-07-31 23:12)
рефакторинг:
✔ сделать trait ClosableWindow, и функцию process_window, которая обрабатывает окно, которое может закрыться, чтобы не копипастить это постоянно. или лучше структуру, которая оборачивается вокруг структуры окна, умеет закрываться, сама конструирует окно, и сама в функции ui отслеживает когда окно хотят закрыть @done (21-07-30 16:06)
критичное:
✔ если просто нажимать кнопку мыши без движения, то выскакивает пауза @done (21-08-02 21:20)
✔ для того чтобы читать буфер обмена, пользователь должен сам нажать ctrl+v, тогда мб убрать автоматическое считывание буфера обмена, аналогично для ctrl+c @done (21-08-02 21:54)
✔ подсказки должны даваться с пробелом, а то из-за курсора их не видно @done (21-08-02 21:55)
✔ чтобы автосохранение было после каждого слова @done (21-08-02 21:56)
✔ если нажать use this text с пустым текстом, то происходит паника, file: "src/main.rs", line: 1185, col: 38 @done (21-08-02 22:01)
✔ кажется в копипасте нельзя вставить текст длиньше 32768 символов @done (21-08-02 22:37)
✔ переделать настройки количества изучения, чтобы они не копипастились в каждое слово, а были глобальны @done (21-08-02 23:12)
+ тогда надо чтобы это можно было задавать в окне settings
сделать следующим:
✔ при вводе слова с подсказкой необходимо вводить не только перевод слова, но и его самого. это нужно, потому что я пытаюсь ускориться, и не читаю что за слово с подсказкой я пишу @done (21-08-03 17:22)
✔ наверное за сессию надо изучать меньше слов, а не все добавленные. сделать настройку, которая позволяет взять N (пусть для начала будет 20) слов в пул, и изучать их, и только когда они кончатся, изучать дальше. @done (21-08-03 17:48)
✔ окно-редактор-просмотрщик слов, где можно искать слова fuzzy поиском, где сразу отображается внутренность @done (21-08-03 20:20)
✔ автоматическое открытие окна просмотрщика слов, где фильтрование происходит по текущему добавленному слову @done (21-08-03 20:20)
✔ окно для редактирования одного слова @done (21-08-03 22:16)
✔ сделать карандашик напротив слова, которое открывает окно для этого слова и позволяет его редактировать @done (21-08-03 22:16)
✔ всё-таки добавить фичу, показывающую контекст конкретного слова, заодно показывать частоту его встречи в данном тексте @done (21-08-03 23:02)
✔ должна быть возможность выбирать количество новых слов, и количество слов для повторения @done (21-08-04 14:57)
✔ после добавления текста или субтитров должно показываться окно с инфой: @done (21-08-04 17:20)
+ всего слов
+ уникальных слов
+ отфильтровано
+ известные (known, trash, learned)
+ изучаемые (tolearn)
+ неизвестных
✔ синхронные субтитры, когда одновременно показывается и русский и английский вариант @done (21-08-04 23:51)
✔ разобраться с выделением текста при поиске @done (21-08-04 23:55)
✔ чтобы когда в вводе ничего нет, или нашлись новые результаты, скролл улетал на начало @done (21-08-04 23:57)
✔ 0 всегда обозначает отсутствие скролла @done (21-08-04 23:57)
✔ сделать чтобы скролл целился на лейбл только после нажатия кнопки @done (21-08-04 23:57)
✔ убрать массив в поиске слова @done (21-08-05 00:03)
✘ вынести общую часть в коде find_whole_word @cancelled (21-08-05 00:14)
✔ сделать чтобы нулевой элемент не показывался в кнопочках, и чтобы не выделялся, и чтобы на него нельзя было попасть @done (21-08-05 00:14)
✔ в окне добавления слова может унести контекст вправо @done (21-08-05 13:52)
✔ возможность менять масштаб в настройках @done (21-08-05 14:02)
✔ должна быть галочка, позволяющая двигать график @done (21-08-05 14:19)
✔ нужна белая тема, ибо на тёмной глазам неприятно @done (21-08-05 14:35)
+ запоминать тему в настройки
+ рисовать всё окно белым или чёрным в зависимости от темы
+ запомнить цвета для всяких штук типо activity в зависимости от темы
✔ заюзать нормальный рандом, который инициализируется текущим временем @done (21-08-05 19:22)
✔ после ввода какого-то слова неправильно, надо его снова ввести с подсказкой, и переходить дальше не разрешит, пока правильно не напишешь @done (21-08-10 16:34)
+ после неправильного ввода слова его надо снова написать даже несколько раз
✔ пропускать окно проверки для ввода с подсказкой @done (21-08-10 16:34)
✔ после ввода слова должна быть возможность инвертировать правильный и неправильный результаты @done (21-08-10 16:34)
+ чтобы там использовалось right_to_left
+ для этого надо регистрировать попытки не после их ввода, а после нажатия кнопки "next"
✔ чтобы если нажимается backspace на пустом поле или кнопке, фокус запрашивался назад @done (21-08-10 17:54)
✘ перевести Words на хранение двух разных языков, и при выборе слов для набора считать только английские слова @cancelled (21-08-10 18:21)
✘ сортировать слова для добавления не по их алфавитному написанию, а по порядку как они встречаются в тексте, чтобы лишний раз не читать одни и те же предложения @cancelled (21-08-10 21:51)
---
✔ в окне add words должно быть поле где можно добавлять известные переводы этого слова @done (21-08-10 18:12)
✔ сделать кнопку для скипа добавляемых слов @done (21-08-10 18:12)
✔ нужна возможность отменить предыдущее нажатие при добавлении слова, а то так можешь быстро нажимать что знаешь слово и раз, пропустил одно @done (21-08-10 18:12)
+ запоминать одно слово, и удалять его из words методом для удаления, если нажалась кнопка back
---
✔ сделать чтобы при выборе слов добавлялись сразу переводы, и выбор останавливался когда набиралось больше чем нужное количество, или все слова кончались @done (21-08-10 19:02)
✔ в первую очередь должны выбираться наиболее старые слова в окне выбора слов @done (21-08-10 19:02)
✔ писать сколько осталось набрать это слово сегодня @done (21-08-10 19:12)
✔ чтобы на кнопке при нажатии backspace отправляло назад @done (21-08-10 19:16)
✔ должна быть кнопка отмены текущего набора и выбора количества слов для изучения @done (21-08-10 19:26)
✔ наверное лучше сначала набрать все слова, которые ты не знаешь с подсказкой, в рандомном порядке, а уже затем набирать все слова которые надо без подсказки набирать причём надо сделать не просто выбор рандома, а чтобы нормально shuffle'ился весь массив, аналогично всё остальное, чтобы подряд не шло два раза одно и то же слово никогда @done (21-08-10 19:46)
---
✔ чтобы при переименовании перевода, перевод тоже переименовывался нормально @done (21-08-11 18:15)
✔ сохранять всё после изменения слова @done (21-08-11 18:15)
✔ в окне edit word должна быть возможность удалять конкретный перевод слова, и добавлять новые, в окне выставления дня должно автоматически ставиться сегодняшний день @done (21-08-11 18:25)
---
✔ чтобы через настройки можно было задавать уровни и количество повторений. @done (21-08-11 18:39)
---
✔ сделать чтобы текущий день считался локальным, а то у меня в 0:00 день был не сегодняшний @done (21-08-11 19:04)
✘ законтрибьютить user_dpi в egui-miniquad @cancelled (21-08-11 19:27)
✘ мб попробовать отображать панику на экране @cancelled (21-08-11 19:27)
✔ баг: не все слова выбираются когда выбираешь для повторения то, что не имеет перевода для повторения @done (21-08-11 23:02)
---
✔ перейти на egui-web, egui-glium @done (21-08-11 22:25)
✔ добавить возможность скачивать экспорт как файл @done (21-08-12 14:58)
✘ добавить кнопку, которая выделяет всё @cancelled (21-08-12 14:58)
---
✔ оптимизировать цвета в белой теме, мб через отдельное окно @done (21-08-13 19:18)
✘ заставить в вебе работать изменение масштаба @cancelled (21-08-13 20:24)
не криитчное:
✔ кажется нативное приложение не хочет сохранять статистику в файл @done (21-08-01 23:06)
✔ кажется окно добавления слов не фильтрует известные слова @done (21-08-01 23:12)
✔ невозможно нажать пробел из-за замены символов @done (21-08-02 21:06)
✔ слова должны быть огромными, а не простой label @done (21-08-02 21:06)
✔ чтобы слова можно было удалять @done (21-08-03 23:15)
✘ при вводе слова должна быть возможность посмотреть его статистику @cancelled (21-08-03 23:15)
✘ при вводе в попытках слова должна быть возможность отредактировать это слово (типо иногда оставил лишнее окончание или что-то такое) @cancelled (21-08-03 23:15)
✔ в окне добавления слов по тексту показывать сколько было уникальных, а сколько отфильтровалось @done (21-08-05 14:35)
✔ добавить learned translations в окно добавления слов @done (21-08-05 14:36)
✘ в github стате затемнять на dim 0 те элементы где 0 @cancelled (21-08-05 14:39)
✘ должна быть возможность добавлять алиасы для какого-то слова, типо если ты его ввёл не так, чтобы оно считалось тоже правильным. @cancelled (21-08-11 19:04)
+ тогда должна быть кнопка после ввода слова, которая не только отменяет неверность текущего ответа, но и одновременно добавляет его в алисы
+ это не нужно, так как есть кнопка invert