![Список форумов urikor.net](templates/subSilver/images/logo_phpBB.gif) |
urikor.net Все о слепой машинописи и клавиатурных тренажерах
|
Предыдущая тема :: Следующая тема
|
Автор |
Сообщение |
Mikhail Portnov senior lieutenant
![senior lieutenant senior lieutenant](images/zvanie_img/z10.gif)
Зарегистрирован: 22.06.2006 Сообщения: 206 Откуда: Silicon Valley, CA
|
Добавлено: Чт Май 12, 2011 12:37 am Заголовок сообщения: Это надо видеть |
|
|
1. Вдруг, нарыл на просторах сети фильм "Куда Исчезают Барьеры", снятый о человеке, под чьим началом мы с г. Ходыкиным начали заниматься машинописью.
http://video.mail.ru/list/petrus/35/139.html
Это очень занимательное кино. Вот от этого мы оттолкнулись в свое время и сказали, что надо искать другой путь.
2. Я каким-то неисповедимым путем пришел к тому, что надо, наконец, запрограммироавть нашу с Ходыкиным методу под авторским надзором. Бюджет, пусть и скромный, есть. Более того, я могу пригласить и сделать визу в США до полутора лет человеку, который возьмется за кодировку. Занимает 2-3 месяца.
Поэтому и вопрос - есть желающие? Условия мы отдельно обсудим.
3. Ну, и, раз такая чехарда началась, то я сделал блог на эту тему, куда всех приглашаю и почитать и высказаться - http://sniperkey.blogspot.com/ |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
myst Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
Зарегистрирован: 05.12.2008 Сообщения: 1332
|
Добавлено: Чт Май 12, 2011 9:10 am Заголовок сообщения: |
|
|
Будет здорово, если у Вас всё получится. ![Smile](images/smiles/icon_smile.gif) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Mikhail Portnov senior lieutenant
![senior lieutenant senior lieutenant](images/zvanie_img/z10.gif)
Зарегистрирован: 22.06.2006 Сообщения: 206 Откуда: Silicon Valley, CA
|
Добавлено: Чт Май 12, 2011 9:32 am Заголовок сообщения: |
|
|
myst писал(а): | Будет здорово, если у Вас всё получится. ![Smile](images/smiles/icon_smile.gif) |
Обязательно получится. Просто мне хотелось пригласить кого-то с форума на этот проект, кто имеет опыт написания клавиатурных тренажеров. Чтобы велосипед не изобретать. Можно из дома, можно к нам приехать в Силиконовую Долину, если хочется мир посмотреть.
Я, конечно, считаю, что лучше чтобы программист был рядом с методистом. Но, досточно открыт к разным вариантам.
Тренажер будет распространяться бесплатно, shareware |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
myst Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
Зарегистрирован: 05.12.2008 Сообщения: 1332
|
Добавлено: Чт Май 12, 2011 9:32 am Заголовок сообщения: |
|
|
Я не прочь помочь в пределах моих возможностей и свободного времени. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
myst Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
Зарегистрирован: 05.12.2008 Сообщения: 1332
|
Добавлено: Чт Май 12, 2011 10:29 am Заголовок сообщения: |
|
|
А точно непременно надо делать новую программу?
Если делать новую, она должна работать во всех распространенных системах, а не только в Windows.
Или может быть вообще стоит сделать веб-приложение?
Я многие упражнения из методички в gtypist уже зарядил. Хотя этот тренажёр страшный, как ядерная война, и кроме меня, им почти никто не пользуется.
У меня есть скрипты — генераторы криптограмм, словарных упражнений, etc. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
myst Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
Зарегистрирован: 05.12.2008 Сообщения: 1332
|
Добавлено: Чт Май 12, 2011 10:50 am Заголовок сообщения: |
|
|
Я тут подумал и пришёл к выводу, что веб-приложение — это самое то. Централизованный контроль за приложением (можно легко вносить изменения в приложение и не париться с обновлениями), пользователям не нужно ничего устанавливать на свои компьютеры (сейчас у многих как минимум личный ноут и десктоп плюс компьютер на работе), заморачиваться синхронизацией личной статистики. Разработчиков веб-приложений сейчас пруд пруди, в этом плане тоже плюс.
Мне кажется, этот вариант будет быстрее, дешевле и сердитее. ![Smile](images/smiles/icon_smile.gif) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Марусяк Валерий Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
![](images/avatars/gallery/raznoe/mv.jpg)
Зарегистрирован: 11.08.2008 Сообщения: 1001
|
Добавлено: Чт Май 12, 2011 11:32 am Заголовок сообщения: |
|
|
А, может быть, есть смысл реализовать при помощи системы авторских словарей на клавогонках? Система мощная, удобная и раскрученная - пользователи набегут сразу же . _________________ http://mars-tt.net - тренажер. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
myst Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
Зарегистрирован: 05.12.2008 Сообщения: 1332
|
Добавлено: Чт Май 12, 2011 12:15 pm Заголовок сообщения: |
|
|
Они набегут на словари, а методика останется на обочине.
Методичка — это же не только набор упражнений. Кстати, в gtypist’е можно уроки делать с теорией, практикой, порогом ошибок для перехода к следующему уроку и т. п.
Если бы на Клавогонках сделали раздел для обучения с нужным функционалом, вот это было бы здорово. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Марусяк Валерий Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
![](images/avatars/gallery/raznoe/mv.jpg)
Зарегистрирован: 11.08.2008 Сообщения: 1001
|
Добавлено: Чт Май 12, 2011 1:30 pm Заголовок сообщения: |
|
|
myst писал(а): | Они набегут на словари, а методика останется на обочине.
Методичка — это же не только набор упражнений. Кстати, в gtypist’е можно уроки делать с теорией, практикой, порогом ошибок для перехода к следующему уроку и т. п.
Если бы на Клавогонках сделали раздел для обучения с нужным функционалом, вот это было бы здорово. | На Клавогонках можно создать отдельную тему, в которой объяснить методику и дать ссылки на созданные словари. Кто посчитает нужным следовать методике, будет ей следовать. Кто не посчитает - просто ознакомится с ней . То есть, на Клавогонках можно попытаться реализовать открытый вариант методики - для людей, которые добровольно соблюдают правила игры. Такие люди есть вообще-то . А для закрытого варианта, с жестким контролем перехода к следующему уровню и выполнением прочих обязательных требований, конечно, Клавогонки не подходят. _________________ http://mars-tt.net - тренажер. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
myst Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
Зарегистрирован: 05.12.2008 Сообщения: 1332
|
Добавлено: Чт Май 12, 2011 1:54 pm Заголовок сообщения: |
|
|
Тогда можно просто ссылку на методичку дать. ![Smile](images/smiles/icon_smile.gif) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Марусяк Валерий Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
![](images/avatars/gallery/raznoe/mv.jpg)
Зарегистрирован: 11.08.2008 Сообщения: 1001
|
Добавлено: Чт Май 12, 2011 4:14 pm Заголовок сообщения: |
|
|
Открытой или закрытой быть системе - решать Михаилу . Лично я в последнее время больше склоняюсь в пользу открытых. Человек пришел, все сразу увидел и принял решение на основе своего личного опыта - надо ему это или нет. _________________ http://mars-tt.net - тренажер. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Mikhail Portnov senior lieutenant
![senior lieutenant senior lieutenant](images/zvanie_img/z10.gif)
Зарегистрирован: 22.06.2006 Сообщения: 206 Откуда: Silicon Valley, CA
|
Добавлено: Чт Май 12, 2011 6:40 pm Заголовок сообщения: |
|
|
Я вижу тренажер максимально открытым. Есть опция передачи контроля (выбора упражнений) системе. Есть самостоятельного прохождения. Я бы даже дал возможность пользователям создавать свои упражнения и делать их частью системы.
Относительно веб или Виндоус: я не думаю, что такой продукт должен жить на всех платформах. Виндоус и Веб вполне достаточно. Проблема вот в чем: решение о выборе следующего упражнения принимается на основе анализа результатов выполнения упражнений, тестов. Откуда берутся результаты? Пользователь сам считает ошибки? (скорость понятно - это за системой).
И супер-сложный момент: надо во время работы на клавиатуре измерять и укладывать в массив для последующей обработки временные интервалы между ударами по клавишам с максимальной точностью. Я не думаю, что можно такое сделать в виде веб-приложения. Какой-то агент должен бегать под операционной системой непосредственно. Нам это нужно для измерения параметров "пакетности" навыка.
А изучение клавиатуры можно, конечно, и как веб-приложение сделать. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
myst Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
Зарегистрирован: 05.12.2008 Сообщения: 1332
|
Добавлено: Чт Май 12, 2011 7:18 pm Заголовок сообщения: |
|
|
«Толстое» приложение прибитое гвоздями к Windows — это плохо. Человек завтра купит себе Мак или поставит Линукс и будет караул кричать. Надо сразу сделать без привязки к конкретной ОС, на Джаве, что ли, я не знаю...
Вообще, у меня давно была идея сделать свой тренажёр с блэкджеком и прочими радостями на движке Эклипса.
А по поводу подробной статистики набора надо Fil’а уговорить переделать свою Typing Statistics в библиотеку или хотя бы раскрыть свои секреты. ![Smile](images/smiles/icon_smile.gif)
Последний раз редактировалось: myst (Пт Май 13, 2011 6:57 am), всего редактировалось 1 раз |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Марусяк Валерий Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
![](images/avatars/gallery/raznoe/mv.jpg)
Зарегистрирован: 11.08.2008 Сообщения: 1001
|
Добавлено: Чт Май 12, 2011 7:56 pm Заголовок сообщения: |
|
|
Я не большой спец, но полагаю, что современное веб-приложение вполне справится с подсчетом временных промежутков между нажатиями клавиш заданной точности и их сохранением в массив данных. А затем с их обработкой и выдачей рекомендаций. Ведь рекомендации, насколько я понял, не должны выдаваться в режиме реального времени. Единственный минус веб-приложений - надо оплачивать качественный хостинг, который был бы без тормозов и имел необходимый функциональный набор. _________________ http://mars-tt.net - тренажер. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
myst Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
Зарегистрирован: 05.12.2008 Сообщения: 1332
|
Добавлено: Пт Май 13, 2011 6:56 am Заголовок сообщения: |
|
|
Сейчас болтают об автономных веб-приложениях, которым сервер не нужен. Правда, не знаю, на каком уровне развития они сейчас.
Насчёт замеров, насколько я помню, Fil использует аппаратный счётчик. В JavaScript’е он недоступен. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Fil major
![major major](images/zvanie_img/z12.gif)
Зарегистрирован: 21.11.2008 Сообщения: 514 Откуда: Россия, Муром
|
Добавлено: Пт Май 13, 2011 2:53 pm Заголовок сообщения: |
|
|
myst писал(а): | Насчёт замеров, насколько я помню, Fil использует аппаратный счётчик. В JavaScript’е он недоступен. | Да, если нужна хорошая точность, то нужно что-то посильнее, я думаю. Ts тоже, конечно, некоторую погрешность даёт, но в реальности в большинстве случаев ей вполне можно пренебречь.
Если бы подобное предложение поступило пару лет назад, я бы с большим удовольствием взялся. Сейчас у меня не так много свободного времени, но посильную помощь (в плане консультаций) оказать могу без проблем. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Марусяк Валерий Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
![](images/avatars/gallery/raznoe/mv.jpg)
Зарегистрирован: 11.08.2008 Сообщения: 1001
|
Добавлено: Пт Май 13, 2011 5:35 pm Заголовок сообщения: |
|
|
Однако, напрашивается вывод о необходимости рабочего варианта технического задания . С описанием основных функций и требований по точности измерения временных промежутков. Тогда его можно будет показать большим специалистам в области веб-приложений, а они дадут ответ - потянут ли сии приложения данный проект или нет . _________________ http://mars-tt.net - тренажер. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Fil major
![major major](images/zvanie_img/z12.gif)
Зарегистрирован: 21.11.2008 Сообщения: 514 Откуда: Россия, Муром
|
Добавлено: Пт Май 13, 2011 5:36 pm Заголовок сообщения: |
|
|
Mikhail Portnov писал(а): | Проблема вот в чем: решение о выборе следующего упражнения принимается на основе анализа результатов выполнения упражнений, тестов. Откуда берутся результаты? Пользователь сам считает ошибки? (скорость понятно - это за системой). | Зачем же ошибки вручную считать? Реализовать можно любой (разумный) алгоритм поиска ошибок. Вот, например, какой вариант был у меня в FilWriter'e:
http://urikor.net/phpBB2/viewtopic.php?p=52510#52510
Он распознаёт 4 типа ошибок - вставка, перестановка, пропуск и замена. В принципе, можно было бы ещё сделать ошибку на нажатие/не нажатие Shift, но отчего-то она мне в голову в то время не пришла.
Алгоритм там у меня достаточно изощрённый, может находить двойные, тройные и т.д. ошибки, в последнем варианте, насколько я помню, он способен находить пропуски/замены/вставки длиной до 12 символов. Правда, в том варианте, который я сделал, есть некоторые ограничения (например, на максимальную длину текста), но вообще вещь довольно приличная получилась.
Насколько я помню, статьёй Солтхауза всё это было навеяно. Да, и шифтов поэтому и нет - у него не было такой ошибки. ![Smile](images/smiles/icon_smile.gif) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
myst Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
Зарегистрирован: 05.12.2008 Сообщения: 1332
|
Добавлено: Пт Май 13, 2011 7:00 pm Заголовок сообщения: |
|
|
В FilWriter’е мне понравилась диагностика ошибок. Я больше нигде такого не видел. Да и сам тренажёр неплохой. Его допилить немножко, и будет совсем конфэтка. ![Smile](images/smiles/icon_smile.gif) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
myst Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
Зарегистрирован: 05.12.2008 Сообщения: 1332
|
Добавлено: Сб Май 14, 2011 9:38 am Заголовок сообщения: |
|
|
Fil, в Вашей программе просто записываются значения счётчика в моменты нажатий/отпусканий клавиш или что-то более хитрое?
В Java есть наносекундный счетчик, его должно хватить. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Fil major
![major major](images/zvanie_img/z12.gif)
Зарегистрирован: 21.11.2008 Сообщения: 514 Откуда: Россия, Муром
|
Добавлено: Сб Май 14, 2011 7:06 pm Заголовок сообщения: |
|
|
myst писал(а): | Fil, в Вашей программе просто записываются значения счётчика в моменты нажатий/отпусканий клавиш или что-то более хитрое? | Ну да, я использую QueryPerformanceCounter/Frequency.
myst писал(а): | В Java есть наносекундный счетчик, его должно хватить. | Если есть, то это хорошо. Но вопрос не только в этом.
Артем Чивчалов (автор Клавогонок) предлагал мне сотрудничество некоторое время назад. В частности, он писал вот что:
Артем Чивчалов писал(а): | В браузере реализовать точный подсчет клавограммы и прочих вещей, где требуется точность в миллисекунды, абсолютно нереально. Ядро большинства браузеров однопроцессовое, оно периодически тормозит само по себе (во время рендеринга страницы, например) и делает невозможным любые подсчеты миллисекунд, поэтому лаги и погрешность статистики
будет страшная. Я этот вопрос уже исследовал под всеми разными углами.
Поэтому, верно, единственный вариант - отдельная программа. | Сам я в этой теме не разбираюсь, но думаю, что его мнению здесь доверять можно - если бы была возможность реализовать в Клавогонках вещи, подобные тем, что реализованы в Ts, то он бы их сделал. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
myst Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
Зарегистрирован: 05.12.2008 Сообщения: 1332
|
Добавлено: Сб Май 14, 2011 8:41 pm Заголовок сообщения: |
|
|
Fil писал(а): | myst писал(а): | Fil, в Вашей программе просто записываются значения счётчика в моменты нажатий/отпусканий клавиш или что-то более хитрое? | Ну да, я использую QueryPerformanceCounter/Frequency.
|
Я имею в виду запись статистики. Она в каком виде, просто точки на линии времени?
Fil писал(а): |
Сам я в этой теме не разбираюсь, но думаю, что его мнению здесь доверять можно - если бы была возможность реализовать в Клавогонках вещи, подобные тем, что реализованы в Ts, то он бы их сделал.
|
Тогда можно аплетом сделать. То есть надо думать в сторону Java. На ней и standalone и веб-приложение можно слепить на одной кодовой базе. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Fil major
![major major](images/zvanie_img/z12.gif)
Зарегистрирован: 21.11.2008 Сообщения: 514 Откуда: Россия, Муром
|
Добавлено: Вс Май 15, 2011 12:46 am Заголовок сообщения: |
|
|
myst писал(а): | Fil писал(а): | myst писал(а): | Fil, в Вашей программе просто записываются значения счётчика в моменты нажатий/отпусканий клавиш или что-то более хитрое? | Ну да, я использую QueryPerformanceCounter/Frequency.
|
Я имею в виду запись статистики. Она в каком виде, просто точки на линии времени? | Ну да. Только записываются не абсолютные значения времени, а паузы между событиями - как в MIDI. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
myst Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
Зарегистрирован: 05.12.2008 Сообщения: 1332
|
Добавлено: Вс Май 15, 2011 6:40 am Заголовок сообщения: |
|
|
С форматом данных загвоздка, не отдельную же строку в БД для каждого нажатия клавиши выделять... Можно, конечно, просто список: <key_down>,time,<key_up>,time,...
А что с перекрытиями делать? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Fil major
![major major](images/zvanie_img/z12.gif)
Зарегистрирован: 21.11.2008 Сообщения: 514 Откуда: Россия, Муром
|
Добавлено: Вс Май 15, 2011 4:03 pm Заголовок сообщения: |
|
|
myst писал(а): | С форматом данных загвоздка, не отдельную же строку в БД для каждого нажатия клавиши выделять... Можно, конечно, просто список: <key_down>,time,<key_up>,time,... | Ну да, список и есть. Если вы откроете любой tsf-файл Блокнотом, то увидите, что файл состоит из серии строк типа Цитата: | 00011BEE 043E004A0024
00016E53 043E004A2024
00017BCC 043100BC0033
0001A574 044B0053001F
00002413 043100BC2033
000180E6 044B0053201F
00004E31 002000200039
000197E1 002000202039 | Каждое событие - это два шестнадцатеричных числа. Первое - это время, которое прошло с момента прошлого события в микросекундах. Второе - это описание события. Там много чего записано - в том числе скан-код клавиши, виртуальный код клавиши, символ в формате Unicode (если он был сгенерирован для данного нажатия), и множество разных флагов - нажатие/отпускание, injected, Extended key, есть флаги для модификаторов Shift-Alt-Ctrl-Win - для упрощения обработки и т.д.
myst писал(а): | А что с перекрытиями делать? | Ну а что с ними делать? Обрабатывать. К вопросам хранения данных это никакого отношения не имеет.
Такой вариант хранения данных позволяет сохранить всю исходную информацию о нажатиях-отпусканиях, а уж что мы будем делать с ней потом - это вопрос второй. А сделать мы с ней можем всё, что угодно - и любую статистику посчитать, какую нужно, и клавограмму нарисовать, и всё остальное тоже. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Fil major
![major major](images/zvanie_img/z12.gif)
Зарегистрирован: 21.11.2008 Сообщения: 514 Откуда: Россия, Муром
|
Добавлено: Вс Май 15, 2011 4:16 pm Заголовок сообщения: |
|
|
А с базами данных заморачиваться я не стал - в любом случае, клавограмма практически никогда не будет настолько длинной, чтобы нельзя было целиком загрузить её в память. К тому же, здесь, как мне кажется, не очень подходящая ситуация для использования БД - это действительно не таблица, и доступ к данным здесь довольно специфический. И если хранить данные просто в таблице, то с перекрытиями действительно непонятно, что делать. События хранятся последовательно и нажатие клавиши никак не связано с её отпусканием - оно может располагаться дальше в списке на произвольном удалении. Поэтому у меня хранение, доступ и обработка - всё написано вручную. Также при обработке больших клавограмм нужно быстро осуществлять поиск - соответственно, здесь хорошо работает бинарный поиск, который также проще реализовать вручную, при последовательном поиске на больших клавограммах программа очень сильно будет тормозить.
А во время работы программы у меня там аж целых четыре списка - один тот, о котором я писал выше, и ещё три для взаимной синхронизации текста, графиков и клавограммы. Пользователь может осуществлять навигацию по тексту, и нужно быстро находить для каждой позиции точку на графике и позицию на клавограмме. Или вместо этого он может кликнуть по графику или промотать клавограмму.
В общем-то всё это довольно жутко выглядит, но работает замечательно, как Вы можете видеть. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
myst Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
Зарегистрирован: 05.12.2008 Сообщения: 1332
|
Добавлено: Вс Май 15, 2011 8:24 pm Заголовок сообщения: |
|
|
База данных нужна, но для записи статистики выполнения упражнений. А список с динамикой нажатий будет в отдельном поле лежать. А может вообще состояние всей клавиатуры записывать при каждом нажатии/отпускании? Памяти сожрёт отменно. ![Smile](images/smiles/icon_smile.gif) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Fil major
![major major](images/zvanie_img/z12.gif)
Зарегистрирован: 21.11.2008 Сообщения: 514 Откуда: Россия, Муром
|
Добавлено: Вс Май 15, 2011 11:54 pm Заголовок сообщения: |
|
|
myst писал(а): | База данных нужна, но для записи статистики выполнения упражнений. А список с динамикой нажатий будет в отдельном поле лежать. А может вообще состояние всей клавиатуры записывать при каждом нажатии/отпускании? Памяти сожрёт отменно. ![Smile](images/smiles/icon_smile.gif) | Смысла записывать состояние всей клавиатуры нет, очевидно.
Да, избыточность некоторая присутствует, конечно, но это только из благих побуждений. В ранних версиях Ts (до того, как я ввёл поддержку Юникода) формат файла был другой, но как только настал момент, когда его возможностей перестало хватать для введения новых функций, я постарался добавить вообще всё, что может пригодится в принципе. Чёткого плана по развитию программы у меня не было, и я не знал, что из данных мне может пригодится в будущем, поэтому на всякий случай ввёл все данные, которые могут пригодиться. Часть флагов, правда, была добавлена позже, но глобально с тех пор формат хранения данных уже не менялся.
А все те данные, которые я сохраняю - скан-код, виртуальный код, юникод-символ - они действительно нужны. Чем-то одним из этого не обойдешься. Для какого-то конкретного случая - да, а в общем виде - нет. Ведь есть такие вещи, как разные раскладки (соответственно, виртуальные и скан-коды в разных раскладках расположены по-разному), во многих языках есть мёртвые клавиши, с которыми нам вообще сталкиваться не приходится - а обработка этого дела, скажу я Вам, задача совсем нетривиальная. Не знаю, как сейчас, но в те времена Punto Switcher вообще напрочь убивал весь клавиатурный ввод с мёртвыми клавишами - у них там просто некорректная обработка перехвата была - а ведь кроме того, что это перехватить, это ещё и обработать грамотно нужно!
Ещё есть внедрённый ввод - т.е. ввод, который генерируется не клавиатурными нажатиями, а другой программой - как это делает Punto Switcher, PCmo и т.д. - и раз уж я делал программу для перехвата, то и это тоже нужно было обрабатывать.
В общем, вариантов масса, так что всё то, что я сохраняю в tsf-файле - всё это действительно нужно, можете мне поверить. И сильно упростить тут ничего не получится.
Единственно можно было бы файлы сделать не текстовыми, а двоичными - они бы тогда меньше места занимали, но я оставил так, как есть - так и отлаживать проще, и, зная немного формат файла, некоторые вещи можно было посмотреть прямо в файле простым просмотрщиком.
Файлы журнала, кстати (tsj) - они уже в двоичном виде.
А по поводу "Памяти сожрёт отменно" - повторюсь, я опирался на стандарт MIDI - там события именно так и хранятся, в каждой записи - описание события и пауза с момента предыдущего. Ничего короче и придумать нельзя.
А по поводу базы для хранения статистики выполнения - ну это уже вторичный вопрос и, по большей части, чисто технический. Для начала нужно сделать, что хранить. Понятно, что в тренажёре бОльшая часть функций Ts не нужна, но многое зависит от того, насколько сложный анализ нужен Михаилу. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
myst Подполковник
![Подполковник Подполковник](images/zvanie_img/z13.gif)
Зарегистрирован: 05.12.2008 Сообщения: 1332
|
Добавлено: Пн Май 16, 2011 6:58 am Заголовок сообщения: |
|
|
Зачем вообще хранить модификаторы в записи?
P. S. У меня такое ощущение, что Вы восприняли моё сообщение как критику Вашего решения. У меня даже в мыслях такого не было. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Fil major
![major major](images/zvanie_img/z12.gif)
Зарегистрирован: 21.11.2008 Сообщения: 514 Откуда: Россия, Муром
|
Добавлено: Пн Май 16, 2011 8:09 am Заголовок сообщения: |
|
|
myst писал(а): | Зачем вообще хранить модификаторы в записи? | На самом деле просто для удобства. Поле для данных у меня всё равно 64-битное, так что место свободное там было.
Например, такая ситуация - человек нажимает Ctrl и удерживая его, нажимает несколько клавиш. Текста такой ввод не порождает, однако если мы не будем просматривать список сначала, а сразу перейдём на середину этой ситуации, то увидим только, что клавиши нажимаются и отпускаются, а о том, что там где-то раньше был нажат Ctrl, и знать не будем.
Ну и, например, Ctrl+Backspace проще так обрабатывать. Если я просматриваю список не с начала, и первым же нажатием вижу Backspace, мне не нужно идти по списку назад и смотреть, нет ли там Ctrl - а ведь он может быть сколь угодно далеко - там может быть, например, что-то типа Ctrl+Backspace+Backspace+Backspace+Backspace.
Ну и к тому же программа позволяет редактировать клавограммы. Пользователь может, например, удалить некоторый кусок, в результате чего получится неверный результат. Например, можно удалить одно только нажатие клавиши Ctrl, и тогда нажатие горячей клавиши превратиться в ввод текста.
Вполне вероятно, однако, что для задач, которые требуются в тренажёре, просмотр списка нужен только одного типа - сначала и до конца, так что таких ситуаций никогда возникать не будет. К тому же, вряд ли человек будет использовать горячие клавиши или что-то подобное при прохождении упражнения. Я же делал программу для перехвата произвольного клавиатурного ввода, так что мне нужно было предусмотреть все ситуации.
myst писал(а): | P. S. У меня такое ощущение, что Вы восприняли моё сообщение как критику Вашего решения. У меня даже в мыслях такого не было. | Вы проявили интерес - я ответил.
Однако вопрос в том, что мы обсуждаем - если рассматривать цели, которые нужны Михаилу, то они, по большей части, не совпадают с целями Ts, хотя там и есть что-то общее. Так что спорить тут действительно пока не о чем. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|