Discussion:
[tw] Work on Spaced Repetition System
(too old to reply)
Diego Mesa
2018-02-01 21:58:04 UTC
Permalink
Hey all,

I mentioned in other places that I would be working on something like this.
Instead of polluting other threads, Ill post updates and misc in here
(though specific questions related to other things will still leak outside
of this thread!).

So far, I've been reading

https://apps.ankiweb.net/docs/manual.html

and

https://www.supermemo.com/english/ol/sm2.htm

And have come up with a *basic* design for now which will evolve. Right
now, I have questions as cards tagged with "Flash Card", and when you input
a new one, they begin with the following fields:

question: 3+1
answer: 4
repetition: 1

We then have two major parts:

- Quizzer
- Shows a question
- Lets you rate its difficulty
- Calculate the next minimum time this question should be shown
- Selector
- When you're ready to begin quizzing, get all questions whos time is up
and are ready to be shown


So far I've worked on the quizzer (question/answering), and have a template
with the following content:

\define againQuality() 0
\define hardQuality() 1
\define goodQuality() 2
\define easyQuality() 3
\define updateActions()
<!-- UPDATE question parameters -->
<$formula-vars eq="$(quality)$ + 1">
<$action-setfield $field="eq" $value=<<eq>>/>
<$formula-vars repetition="{{!!repetition}} + 1">
<$action-setfield $field="repetition" $value=<<repetition>>/>
<$formula-vars due="<<repetition>> + 20">
<$action-setfield $field="due" $value=<<due>>/>
</$formula-vars>
</$formula-vars>
</$formula-vars>

<!-- REMOVE Answer Button Row -->
<$action-sendmessage $message="tm-remove-field" $param="state"/>

<!-- CLOSE this question -->
<$action-sendmessage $message="tm-close-tiddler"/>
\end

<!-- ACTIVATE this template for all tiddlers tagged Flash Cards -->
<$list filter="[all[current]tag[Flash Card]]">
<$fieldmangler>
Question: {{!!question}}

<br/>

<!-- IF it does NOT have the field state: SHOW QUESTION -->
<$list filter="[all[current]!has:field[state]]">
<$button>
Show Answer
<!-- ADD the field state -->
<$action-sendmessage $message="tm-add-field" $param="state"/>
</$button>
</$list>

<!-- IF it DOES have the field state: SHOW ANSWER-->
<$list filter="[all[current]has:field[state]]">
Answer: {{!!answer}}

<!-- SHOW answer buttons -->

<br/>

<$button>
Again
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<againQuality>>/>
<<updateActions>>
</$button>

<$button>
Hard
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<hardQuality>>/>
<<updateActions>>
</$button>

<$button>
Good
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<goodQuality>>/>
<<updateActions>>
</$button>

<$button>
Easy
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<easyQuality>>/>
<<updateActions>>
</$button>
</$list>

</$fieldmangler>
</$list>

This will at least let you answer a question, and mark how hard/easy it was
for you, and calculate the relevant fields for the next time it should be
shown.

I still have to actually implement the correct calculations for due, eq,
etc. These are just place holders for right now.

The next piece is the selector, which will be responsible for going through
all questions "due" field and selecting the ones that are ready to be shown
- this should very straight forward.

Any comments/feedback is very welcome!

Diego
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/1c9b89ab-1390-4709-8f79-461970072287%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
BurningTreeC
2018-02-02 08:54:03 UTC
Permalink
Hi Diego,

I like this, tried it on a wiki and it seems to work very good!
I'm looking forward to this!

Atm I don't have much to comment, I try to keep up to date on this

best wishes,
Simon
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/0992b1d4-d6d7-42f7-88a6-c1c2ae4b873e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
TonyM
2018-02-02 21:35:15 UTC
Permalink
Diego,

Does sound a useful tool to put in tiddlywiki. I was interested in building something similar for review and study times rather than at the question level. Its more about scheduling study.

Once such a question answer solution exists it seems to me the next opportunity is how to populate it with questions. Imagin if you could dump a translation dictionary on it. Alternativly manual question creation needs to be quick and easy. Could questions even be created from marking up your study notes?

Regards
Tony
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/50d48a5a-9942-40fe-95d5-b3dc474f5443%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Diego Mesa
2018-02-05 23:00:56 UTC
Permalink
Hey all,

I've put together a small demo of my current progress here:

http://anwiki.tiddlyspot.com/

As always, any and all feedback is welcome. And I mean on *everything*,
from the way I coded it up, to the way its structured, styled, etc.
Anything!

Best,
Diego
Post by BurningTreeC
Diego,
Does sound a useful tool to put in tiddlywiki. I was interested in
building something similar for review and study times rather than at the
question level. Its more about scheduling study.
Once such a question answer solution exists it seems to me the next
opportunity is how to populate it with questions. Imagin if you could dump
a translation dictionary on it. Alternativly manual question creation needs
to be quick and easy. Could questions even be created from marking up your
study notes?
Regards
Tony
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/90b09c7e-23bf-48d6-9b96-242beab37897%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Krishaan Khubchand
2018-02-09 20:33:30 UTC
Permalink
It looks really cool man, is there any way to use the spaced repetition
system as a plugin?
Post by Diego Mesa
Hey all,
http://anwiki.tiddlyspot.com/
As always, any and all feedback is welcome. And I mean on *everything*,
from the way I coded it up, to the way its structured, styled, etc.
Anything!
Best,
Diego
Post by BurningTreeC
Diego,
Does sound a useful tool to put in tiddlywiki. I was interested in
building something similar for review and study times rather than at the
question level. Its more about scheduling study.
Once such a question answer solution exists it seems to me the next
opportunity is how to populate it with questions. Imagin if you could dump
a translation dictionary on it. Alternativly manual question creation needs
to be quick and easy. Could questions even be created from marking up your
study notes?
Regards
Tony
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/5fc31983-232c-4b3e-8d3d-bc07db89dc15%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Diego Mesa
2018-02-09 21:24:26 UTC
Permalink
Thanks Kirshaan,

Thats the plan! For right now Im sitll testing it, but I hope to release it
as a plugin soon.

Best,
Diego
Post by Krishaan Khubchand
It looks really cool man, is there any way to use the spaced repetition
system as a plugin?
Post by Diego Mesa
Hey all,
http://anwiki.tiddlyspot.com/
As always, any and all feedback is welcome. And I mean on *everything*,
from the way I coded it up, to the way its structured, styled, etc.
Anything!
Best,
Diego
Post by BurningTreeC
Diego,
Does sound a useful tool to put in tiddlywiki. I was interested in
building something similar for review and study times rather than at the
question level. Its more about scheduling study.
Once such a question answer solution exists it seems to me the next
opportunity is how to populate it with questions. Imagin if you could dump
a translation dictionary on it. Alternativly manual question creation needs
to be quick and easy. Could questions even be created from marking up your
study notes?
Regards
Tony
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/8cc73896-0918-43b5-85b1-55deaf35ca41%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Diego Mesa
2018-02-12 17:57:25 UTC
Permalink
Hey all,

With Evan's fix of the formula plugin today, I released an updated version
of Anwiki:

http://anwiki.tiddlyspot.com/

You can now quiz in 1 of 2 ways:

- Quiz by due date, regardless of deck
- Quiz by deck, regardless of due date

Any feedback is welcome.

Diego
Post by Diego Mesa
Thanks Kirshaan,
Thats the plan! For right now Im sitll testing it, but I hope to release
it as a plugin soon.
Best,
Diego
Post by Krishaan Khubchand
It looks really cool man, is there any way to use the spaced repetition
system as a plugin?
Post by Diego Mesa
Hey all,
http://anwiki.tiddlyspot.com/
As always, any and all feedback is welcome. And I mean on *everything*,
from the way I coded it up, to the way its structured, styled, etc.
Anything!
Best,
Diego
Post by BurningTreeC
Diego,
Does sound a useful tool to put in tiddlywiki. I was interested in
building something similar for review and study times rather than at the
question level. Its more about scheduling study.
Once such a question answer solution exists it seems to me the next
opportunity is how to populate it with questions. Imagin if you could dump
a translation dictionary on it. Alternativly manual question creation needs
to be quick and easy. Could questions even be created from marking up your
study notes?
Regards
Tony
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/66d1c5a2-ec25-47ca-acfc-ca85e61abcf0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Alex May
2018-04-03 22:58:56 UTC
Permalink
Hi Diego,

Just wanted to lend an encouraging word, as I would find such a plug-in
super useful! Good luck!

Cheers,
Alex
Post by Diego Mesa
Hey all,
With Evan's fix of the formula plugin today, I released an updated version
http://anwiki.tiddlyspot.com/
- Quiz by due date, regardless of deck
- Quiz by deck, regardless of due date
Any feedback is welcome.
Diego
Post by Diego Mesa
Thanks Kirshaan,
Thats the plan! For right now Im sitll testing it, but I hope to release
it as a plugin soon.
Best,
Diego
Post by Krishaan Khubchand
It looks really cool man, is there any way to use the spaced repetition
system as a plugin?
Post by Diego Mesa
Hey all,
http://anwiki.tiddlyspot.com/
As always, any and all feedback is welcome. And I mean on *everything*,
from the way I coded it up, to the way its structured, styled, etc.
Anything!
Best,
Diego
Post by BurningTreeC
Diego,
Does sound a useful tool to put in tiddlywiki. I was interested in
building something similar for review and study times rather than at the
question level. Its more about scheduling study.
Once such a question answer solution exists it seems to me the next
opportunity is how to populate it with questions. Imagin if you could dump
a translation dictionary on it. Alternativly manual question creation needs
to be quick and easy. Could questions even be created from marking up your
study notes?
Regards
Tony
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/89291580-8ca3-4a55-a1c8-90f4125f4b03%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Diego Mesa
2018-04-04 02:07:24 UTC
Permalink
Thanks Alex!

I had kind of given up. I'll continue after I get some more time at work.

Best,
Diego
Post by BurningTreeC
Hi Diego,
Just wanted to lend an encouraging word, as I would find such a plug-in
super useful! Good luck!
Cheers,
Alex
Post by Diego Mesa
Hey all,
With Evan's fix of the formula plugin today, I released an updated
http://anwiki.tiddlyspot.com/
- Quiz by due date, regardless of deck
- Quiz by deck, regardless of due date
Any feedback is welcome.
Diego
Post by Diego Mesa
Thanks Kirshaan,
Thats the plan! For right now Im sitll testing it, but I hope to release
it as a plugin soon.
Best,
Diego
Post by Krishaan Khubchand
It looks really cool man, is there any way to use the spaced repetition
system as a plugin?
Post by Diego Mesa
Hey all,
http://anwiki.tiddlyspot.com/
As always, any and all feedback is welcome. And I mean on *everything*,
from the way I coded it up, to the way its structured, styled, etc.
Anything!
Best,
Diego
Post by BurningTreeC
Diego,
Does sound a useful tool to put in tiddlywiki. I was interested in
building something similar for review and study times rather than at the
question level. Its more about scheduling study.
Once such a question answer solution exists it seems to me the next
opportunity is how to populate it with questions. Imagin if you could dump
a translation dictionary on it. Alternativly manual question creation needs
to be quick and easy. Could questions even be created from marking up your
study notes?
Regards
Tony
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/7b9deb8d-e46b-4d2b-a091-6551558a0756%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
BurningTreeC
2018-02-06 16:23:56 UTC
Permalink
@Diego Mesa,

this is awesome :)


I cannot say too much about how you coded it, but about the styling - I
think the most important thing in your Anwiki are the functions, the
styling for me would already be good as it is

I just like this!

keep going,

all the best, Simon
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/a5210486-6eaf-42fa-8202-a3c08f5f91b9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
JD
2018-04-05 14:23:03 UTC
Permalink
Hey man, this is amazing work. Is there documentation for creating a new
card (besides cloning existing ones)?

This is really helpful to my Nihongo studies!
Post by Diego Mesa
Hey all,
I mentioned in other places that I would be working on something like
this. Instead of polluting other threads, Ill post updates and misc in here
(though specific questions related to other things will still leak outside
of this thread!).
So far, I've been reading
https://apps.ankiweb.net/docs/manual.html
and
https://www.supermemo.com/english/ol/sm2.htm
And have come up with a *basic* design for now which will evolve. Right
now, I have questions as cards tagged with "Flash Card", and when you input
question: 3+1
answer: 4
repetition: 1
- Quizzer
- Shows a question
- Lets you rate its difficulty
- Calculate the next minimum time this question should be shown
- Selector
- When you're ready to begin quizzing, get all questions whos time is
up and are ready to be shown
So far I've worked on the quizzer (question/answering), and have a
\define againQuality() 0
\define hardQuality() 1
\define goodQuality() 2
\define easyQuality() 3
\define updateActions()
<!-- UPDATE question parameters -->
<$formula-vars eq="$(quality)$ + 1">
<$action-setfield $field="eq" $value=<<eq>>/>
<$formula-vars repetition="{{!!repetition}} + 1">
<$action-setfield $field="repetition" $value=<<repetition>>/>
<$formula-vars due="<<repetition>> + 20">
<$action-setfield $field="due" $value=<<due>>/>
</$formula-vars>
</$formula-vars>
</$formula-vars>
<!-- REMOVE Answer Button Row -->
<$action-sendmessage $message="tm-remove-field" $param="state"/>
<!-- CLOSE this question -->
<$action-sendmessage $message="tm-close-tiddler"/>
\end
<!-- ACTIVATE this template for all tiddlers tagged Flash Cards -->
<$list filter="[all[current]tag[Flash Card]]">
<$fieldmangler>
Question: {{!!question}}
<br/>
<!-- IF it does NOT have the field state: SHOW QUESTION -->
<$list filter="[all[current]!has:field[state]]">
<$button>
Show Answer
<!-- ADD the field state -->
<$action-sendmessage $message="tm-add-field" $param="state"/>
</$button>
</$list>
<!-- IF it DOES have the field state: SHOW ANSWER-->
<$list filter="[all[current]has:field[state]]">
Answer: {{!!answer}}
<!-- SHOW answer buttons -->
<br/>
<$button>
Again
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<againQuality>>/>
<<updateActions>>
</$button>
<$button>
Hard
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<hardQuality>>/>
<<updateActions>>
</$button>
<$button>
Good
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<goodQuality>>/>
<<updateActions>>
</$button>
<$button>
Easy
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<easyQuality>>/>
<<updateActions>>
</$button>
</$list>
</$fieldmangler>
</$list>
This will at least let you answer a question, and mark how hard/easy it
was for you, and calculate the relevant fields for the next time it should
be shown.
I still have to actually implement the correct calculations for due, eq,
etc. These are just place holders for right now.
The next piece is the selector, which will be responsible for going
through all questions "due" field and selecting the ones that are ready to
be shown - this should very straight forward.
Any comments/feedback is very welcome!
Diego
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/dd155c24-56f1-4cbd-a6d7-ece3b91bd6f7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Diego Mesa
2018-04-05 16:17:57 UTC
Permalink
Hey thanks JD,

You bring up a great missing feature right now. Cards are just tiddlers
that are tagged "flash card", with a question and answer field.

The other fields are (should be) automatically created, and in the final
plugin version would be hidden from the view template.
Post by JD
Hey man, this is amazing work. Is there documentation for creating a new
card (besides cloning existing ones)?
This is really helpful to my Nihongo studies!
Post by Diego Mesa
Hey all,
I mentioned in other places that I would be working on something like
this. Instead of polluting other threads, Ill post updates and misc in here
(though specific questions related to other things will still leak outside
of this thread!).
So far, I've been reading
https://apps.ankiweb.net/docs/manual.html
and
https://www.supermemo.com/english/ol/sm2.htm
And have come up with a *basic* design for now which will evolve. Right
now, I have questions as cards tagged with "Flash Card", and when you input
question: 3+1
answer: 4
repetition: 1
- Quizzer
- Shows a question
- Lets you rate its difficulty
- Calculate the next minimum time this question should be shown
- Selector
- When you're ready to begin quizzing, get all questions whos time is
up and are ready to be shown
So far I've worked on the quizzer (question/answering), and have a
\define againQuality() 0
\define hardQuality() 1
\define goodQuality() 2
\define easyQuality() 3
\define updateActions()
<!-- UPDATE question parameters -->
<$formula-vars eq="$(quality)$ + 1">
<$action-setfield $field="eq" $value=<<eq>>/>
<$formula-vars repetition="{{!!repetition}} + 1">
<$action-setfield $field="repetition" $value=<<repetition>>/>
<$formula-vars due="<<repetition>> + 20">
<$action-setfield $field="due" $value=<<due>>/>
</$formula-vars>
</$formula-vars>
</$formula-vars>
<!-- REMOVE Answer Button Row -->
<$action-sendmessage $message="tm-remove-field" $param="state"/>
<!-- CLOSE this question -->
<$action-sendmessage $message="tm-close-tiddler"/>
\end
<!-- ACTIVATE this template for all tiddlers tagged Flash Cards -->
<$list filter="[all[current]tag[Flash Card]]">
<$fieldmangler>
Question: {{!!question}}
<br/>
<!-- IF it does NOT have the field state: SHOW QUESTION -->
<$list filter="[all[current]!has:field[state]]">
<$button>
Show Answer
<!-- ADD the field state -->
<$action-sendmessage $message="tm-add-field" $param="state"/>
</$button>
</$list>
<!-- IF it DOES have the field state: SHOW ANSWER-->
<$list filter="[all[current]has:field[state]]">
Answer: {{!!answer}}
<!-- SHOW answer buttons -->
<br/>
<$button>
Again
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<againQuality>>/>
<<updateActions>>
</$button>
<$button>
Hard
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<hardQuality>>/>
<<updateActions>>
</$button>
<$button>
Good
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<goodQuality>>/>
<<updateActions>>
</$button>
<$button>
Easy
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<easyQuality>>/>
<<updateActions>>
</$button>
</$list>
</$fieldmangler>
</$list>
This will at least let you answer a question, and mark how hard/easy it
was for you, and calculate the relevant fields for the next time it should
be shown.
I still have to actually implement the correct calculations for due, eq,
etc. These are just place holders for right now.
The next piece is the selector, which will be responsible for going
through all questions "due" field and selecting the ones that are ready to
be shown - this should very straight forward.
Any comments/feedback is very welcome!
Diego
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/9be22420-a73e-43ab-a98b-87356432e75c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Diego Mesa
2018-04-05 16:50:29 UTC
Permalink
Forgot to actually answer - All you have to do is make a new tiddler, tag
it with the name of the "Deck" it belongs to (it can belong to multiple
decks), tag it with "Flash Card", and give it a question and answer field.

When I finish up some stuff at work, you guys have inspired me to come back
and work on this again!

Best,
Diego
Post by Diego Mesa
Hey thanks JD,
You bring up a great missing feature right now. Cards are just tiddlers
that are tagged "flash card", with a question and answer field.
The other fields are (should be) automatically created, and in the final
plugin version would be hidden from the view template.
Post by JD
Hey man, this is amazing work. Is there documentation for creating a new
card (besides cloning existing ones)?
This is really helpful to my Nihongo studies!
Post by Diego Mesa
Hey all,
I mentioned in other places that I would be working on something like
this. Instead of polluting other threads, Ill post updates and misc in here
(though specific questions related to other things will still leak outside
of this thread!).
So far, I've been reading
https://apps.ankiweb.net/docs/manual.html
and
https://www.supermemo.com/english/ol/sm2.htm
And have come up with a *basic* design for now which will evolve. Right
now, I have questions as cards tagged with "Flash Card", and when you input
question: 3+1
answer: 4
repetition: 1
- Quizzer
- Shows a question
- Lets you rate its difficulty
- Calculate the next minimum time this question should be shown
- Selector
- When you're ready to begin quizzing, get all questions whos time
is up and are ready to be shown
So far I've worked on the quizzer (question/answering), and have a
\define againQuality() 0
\define hardQuality() 1
\define goodQuality() 2
\define easyQuality() 3
\define updateActions()
<!-- UPDATE question parameters -->
<$formula-vars eq="$(quality)$ + 1">
<$action-setfield $field="eq" $value=<<eq>>/>
<$formula-vars repetition="{{!!repetition}} + 1">
<$action-setfield $field="repetition" $value=<<repetition>>/>
<$formula-vars due="<<repetition>> + 20">
<$action-setfield $field="due" $value=<<due>>/>
</$formula-vars>
</$formula-vars>
</$formula-vars>
<!-- REMOVE Answer Button Row -->
<$action-sendmessage $message="tm-remove-field" $param="state"/>
<!-- CLOSE this question -->
<$action-sendmessage $message="tm-close-tiddler"/>
\end
<!-- ACTIVATE this template for all tiddlers tagged Flash Cards -->
<$list filter="[all[current]tag[Flash Card]]">
<$fieldmangler>
Question: {{!!question}}
<br/>
<!-- IF it does NOT have the field state: SHOW QUESTION -->
<$list filter="[all[current]!has:field[state]]">
<$button>
Show Answer
<!-- ADD the field state -->
<$action-sendmessage $message="tm-add-field" $param="state"
/>
</$button>
</$list>
<!-- IF it DOES have the field state: SHOW ANSWER-->
<$list filter="[all[current]has:field[state]]">
Answer: {{!!answer}}
<!-- SHOW answer buttons -->
<br/>
<$button>
Again
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<againQuality>>/>
<<updateActions>>
</$button>
<$button>
Hard
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<hardQuality>>/>
<<updateActions>>
</$button>
<$button>
Good
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<goodQuality>>/>
<<updateActions>>
</$button>
<$button>
Easy
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<easyQuality>>/>
<<updateActions>>
</$button>
</$list>
</$fieldmangler>
</$list>
This will at least let you answer a question, and mark how hard/easy it
was for you, and calculate the relevant fields for the next time it should
be shown.
I still have to actually implement the correct calculations for due, eq,
etc. These are just place holders for right now.
The next piece is the selector, which will be responsible for going
through all questions "due" field and selecting the ones that are ready to
be shown - this should very straight forward.
Any comments/feedback is very welcome!
Diego
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/e3d1a2fb-7459-4a8c-b983-6bf28af0e86f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
BurningTreeC
2018-04-06 13:18:30 UTC
Permalink
Hi Diego, I think AnWiki is a crucial plugin for tiddlywiki
I was very interested in following your development, because I think it can
be done better in tiddlywiki than in the native anki program itself
especially the handling of media and re-using of text chunks is a real plus
for tw

I would try picking up your work if at one point you loose interest. I
think it's a feature that should make it to a plugin library, if not the tw
library...

all the best,
Simon
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/41238dce-efbd-4828-8786-6928f31e9fc1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Diego Mesa
2018-04-06 13:42:41 UTC
Permalink
Hey Simon,

I agree with you! I would love to work on this with you! Im still very new
to TW plugin development. All of Anwiki right now is just a set of simple
macros. If you're interested, let me know and we can coordinate in private
emails to continue working on this!

Diego
Post by BurningTreeC
Hi Diego, I think AnWiki is a crucial plugin for tiddlywiki
I was very interested in following your development, because I think it
can be done better in tiddlywiki than in the native anki program itself
especially the handling of media and re-using of text chunks is a real
plus for tw
I would try picking up your work if at one point you loose interest. I
think it's a feature that should make it to a plugin library, if not the tw
library...
all the best,
Simon
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/888a8957-10cf-4c87-9fd7-69b9b60931ed%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
BurningTreeC
2018-04-06 15:29:58 UTC
Permalink
Post by Diego Mesa
I agree with you! I would love to work on this with you! Im still very new
to TW plugin development. All of Anwiki right now is just a set of simple
macros. If you're interested, let me know and we can coordinate in private
emails to continue working on this!
Yes, I'd like to do that!
I'd like to get your macros and build a little prototyping-interface around
them to make the direction clear where the content and results should go,
Do you already have ideas on that, which I could use to build on? If else,
I'd prototype something that can be changed anytime we have something better


Simon
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/17bf289e-3c8f-49b7-9a63-27136f1242d4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
JD
2018-04-06 15:45:28 UTC
Permalink
Oh, right, only the Question and Answer fields (plus the tags) are really
needed.

I imagine something like the sample custom NewJournalButton on the main
TiddlyWiki site could make card creation fast and simple. Although it would
be great if we could quickly create by deck too, not just by card... like
in Quizlet.com

Something like a "New Deck" tiddler that will ask for a Deck Name, then
have a table with rows for cards, and within each row: input area for card
Question and Answer, something like that?
Post by Diego Mesa
Forgot to actually answer - All you have to do is make a new tiddler, tag
it with the name of the "Deck" it belongs to (it can belong to multiple
decks), tag it with "Flash Card", and give it a question and answer field.
When I finish up some stuff at work, you guys have inspired me to come
back and work on this again!
Best,
Diego
Post by Diego Mesa
Hey thanks JD,
You bring up a great missing feature right now. Cards are just tiddlers
that are tagged "flash card", with a question and answer field.
The other fields are (should be) automatically created, and in the final
plugin version would be hidden from the view template.
Post by JD
Hey man, this is amazing work. Is there documentation for creating a new
card (besides cloning existing ones)?
This is really helpful to my Nihongo studies!
Post by Diego Mesa
Hey all,
I mentioned in other places that I would be working on something like
this. Instead of polluting other threads, Ill post updates and misc in here
(though specific questions related to other things will still leak outside
of this thread!).
So far, I've been reading
https://apps.ankiweb.net/docs/manual.html
and
https://www.supermemo.com/english/ol/sm2.htm
And have come up with a *basic* design for now which will evolve.
Right now, I have questions as cards tagged with "Flash Card", and when you
question: 3+1
answer: 4
repetition: 1
- Quizzer
- Shows a question
- Lets you rate its difficulty
- Calculate the next minimum time this question should be shown
- Selector
- When you're ready to begin quizzing, get all questions whos time
is up and are ready to be shown
So far I've worked on the quizzer (question/answering), and have a
\define againQuality() 0
\define hardQuality() 1
\define goodQuality() 2
\define easyQuality() 3
\define updateActions()
<!-- UPDATE question parameters -->
<$formula-vars eq="$(quality)$ + 1">
<$action-setfield $field="eq" $value=<<eq>>/>
<$formula-vars repetition="{{!!repetition}} + 1">
<$action-setfield $field="repetition" $value=<<repetition>>/>
<$formula-vars due="<<repetition>> + 20">
<$action-setfield $field="due" $value=<<due>>/>
</$formula-vars>
</$formula-vars>
</$formula-vars>
<!-- REMOVE Answer Button Row -->
<$action-sendmessage $message="tm-remove-field" $param="state"/>
<!-- CLOSE this question -->
<$action-sendmessage $message="tm-close-tiddler"/>
\end
<!-- ACTIVATE this template for all tiddlers tagged Flash Cards -->
<$list filter="[all[current]tag[Flash Card]]">
<$fieldmangler>
Question: {{!!question}}
<br/>
<!-- IF it does NOT have the field state: SHOW QUESTION -->
<$list filter="[all[current]!has:field[state]]">
<$button>
Show Answer
<!-- ADD the field state -->
<$action-sendmessage $message="tm-add-field" $param="state"
/>
</$button>
</$list>
<!-- IF it DOES have the field state: SHOW ANSWER-->
<$list filter="[all[current]has:field[state]]">
Answer: {{!!answer}}
<!-- SHOW answer buttons -->
<br/>
<$button>
Again
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<againQuality>>
/>
<<updateActions>>
</$button>
<$button>
Hard
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<hardQuality>>/>
<<updateActions>>
</$button>
<$button>
Good
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<goodQuality>>/>
<<updateActions>>
</$button>
<$button>
Easy
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<easyQuality>>/>
<<updateActions>>
</$button>
</$list>
</$fieldmangler>
</$list>
This will at least let you answer a question, and mark how hard/easy it
was for you, and calculate the relevant fields for the next time it should
be shown.
I still have to actually implement the correct calculations for due,
eq, etc. These are just place holders for right now.
The next piece is the selector, which will be responsible for going
through all questions "due" field and selecting the ones that are ready to
be shown - this should very straight forward.
Any comments/feedback is very welcome!
Diego
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/99783662-7592-496e-b74a-107b62716a68%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
i***@gmail.com
2018-09-06 20:17:58 UTC
Permalink
This is a great work!!

I am interested in a slightly different feature compared to flashcard use
case which I hope would be possible to implement.
Human brain forget the information it doesn't use, so I wanted a simple
mechanism which would prompt me to work on the tiddler.
I wanted to use SR algorithm to schedule review of tiddler (every tiddler
in wiki except pluggins and assets) so I can recall the information,
refactor the tiddler and do maintenance if needed.
The interface would be a simple list filter which would show list of
tiddler titles (or captures) scheduled for review.
By clicking on the item in the list the tiddler opens in view mode. I would
click ok if I don't want to refactor it.
Otherwise I would click edit icon in the toolbar. Does anyone know if such
plugin exists or can provide some ideas how to implement it?

Best regards,
ILYA
Post by Diego Mesa
Hey all,
I mentioned in other places that I would be working on something like
this. Instead of polluting other threads, Ill post updates and misc in here
(though specific questions related to other things will still leak outside
of this thread!).
So far, I've been reading
https://apps.ankiweb.net/docs/manual.html
and
https://www.supermemo.com/english/ol/sm2.htm
And have come up with a *basic* design for now which will evolve. Right
now, I have questions as cards tagged with "Flash Card", and when you input
question: 3+1
answer: 4
repetition: 1
- Quizzer
- Shows a question
- Lets you rate its difficulty
- Calculate the next minimum time this question should be shown
- Selector
- When you're ready to begin quizzing, get all questions whos time is
up and are ready to be shown
So far I've worked on the quizzer (question/answering), and have a
\define againQuality() 0
\define hardQuality() 1
\define goodQuality() 2
\define easyQuality() 3
\define updateActions()
<!-- UPDATE question parameters -->
<$formula-vars eq="$(quality)$ + 1">
<$action-setfield $field="eq" $value=<<eq>>/>
<$formula-vars repetition="{{!!repetition}} + 1">
<$action-setfield $field="repetition" $value=<<repetition>>/>
<$formula-vars due="<<repetition>> + 20">
<$action-setfield $field="due" $value=<<due>>/>
</$formula-vars>
</$formula-vars>
</$formula-vars>
<!-- REMOVE Answer Button Row -->
<$action-sendmessage $message="tm-remove-field" $param="state"/>
<!-- CLOSE this question -->
<$action-sendmessage $message="tm-close-tiddler"/>
\end
<!-- ACTIVATE this template for all tiddlers tagged Flash Cards -->
<$list filter="[all[current]tag[Flash Card]]">
<$fieldmangler>
Question: {{!!question}}
<br/>
<!-- IF it does NOT have the field state: SHOW QUESTION -->
<$list filter="[all[current]!has:field[state]]">
<$button>
Show Answer
<!-- ADD the field state -->
<$action-sendmessage $message="tm-add-field" $param="state"/>
</$button>
</$list>
<!-- IF it DOES have the field state: SHOW ANSWER-->
<$list filter="[all[current]has:field[state]]">
Answer: {{!!answer}}
<!-- SHOW answer buttons -->
<br/>
<$button>
Again
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<againQuality>>/>
<<updateActions>>
</$button>
<$button>
Hard
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<hardQuality>>/>
<<updateActions>>
</$button>
<$button>
Good
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<goodQuality>>/>
<<updateActions>>
</$button>
<$button>
Easy
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<easyQuality>>/>
<<updateActions>>
</$button>
</$list>
</$fieldmangler>
</$list>
This will at least let you answer a question, and mark how hard/easy it
was for you, and calculate the relevant fields for the next time it should
be shown.
I still have to actually implement the correct calculations for due, eq,
etc. These are just place holders for right now.
The next piece is the selector, which will be responsible for going
through all questions "due" field and selecting the ones that are ready to
be shown - this should very straight forward.
Any comments/feedback is very welcome!
Diego
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/39fc0b42-427b-4112-b9d7-628a07c70f34%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Diego Mesa
2018-09-06 22:10:16 UTC
Permalink
Hello ILYA,

I think it would be straightforward to use the macros this project provides
to accomplish that. You'd have to modify the SR algorithm slightly though,
as there is no clear notion of question difficulty to effect when to next
review the tiddler in your case.
Post by i***@gmail.com
This is a great work!!
I am interested in a slightly different feature compared to flashcard use
case which I hope would be possible to implement.
Human brain forget the information it doesn't use, so I wanted a simple
mechanism which would prompt me to work on the tiddler.
I wanted to use SR algorithm to schedule review of tiddler (every tiddler
in wiki except pluggins and assets) so I can recall the information,
refactor the tiddler and do maintenance if needed.
The interface would be a simple list filter which would show list of
tiddler titles (or captures) scheduled for review.
By clicking on the item in the list the tiddler opens in view mode. I
would click ok if I don't want to refactor it.
Otherwise I would click edit icon in the toolbar. Does anyone know if such
plugin exists or can provide some ideas how to implement it?
Best regards,
ILYA
Post by Diego Mesa
Hey all,
I mentioned in other places that I would be working on something like
this. Instead of polluting other threads, Ill post updates and misc in here
(though specific questions related to other things will still leak outside
of this thread!).
So far, I've been reading
https://apps.ankiweb.net/docs/manual.html
and
https://www.supermemo.com/english/ol/sm2.htm
And have come up with a *basic* design for now which will evolve. Right
now, I have questions as cards tagged with "Flash Card", and when you input
question: 3+1
answer: 4
repetition: 1
- Quizzer
- Shows a question
- Lets you rate its difficulty
- Calculate the next minimum time this question should be shown
- Selector
- When you're ready to begin quizzing, get all questions whos time is
up and are ready to be shown
So far I've worked on the quizzer (question/answering), and have a
\define againQuality() 0
\define hardQuality() 1
\define goodQuality() 2
\define easyQuality() 3
\define updateActions()
<!-- UPDATE question parameters -->
<$formula-vars eq="$(quality)$ + 1">
<$action-setfield $field="eq" $value=<<eq>>/>
<$formula-vars repetition="{{!!repetition}} + 1">
<$action-setfield $field="repetition" $value=<<repetition>>/>
<$formula-vars due="<<repetition>> + 20">
<$action-setfield $field="due" $value=<<due>>/>
</$formula-vars>
</$formula-vars>
</$formula-vars>
<!-- REMOVE Answer Button Row -->
<$action-sendmessage $message="tm-remove-field" $param="state"/>
<!-- CLOSE this question -->
<$action-sendmessage $message="tm-close-tiddler"/>
\end
<!-- ACTIVATE this template for all tiddlers tagged Flash Cards -->
<$list filter="[all[current]tag[Flash Card]]">
<$fieldmangler>
Question: {{!!question}}
<br/>
<!-- IF it does NOT have the field state: SHOW QUESTION -->
<$list filter="[all[current]!has:field[state]]">
<$button>
Show Answer
<!-- ADD the field state -->
<$action-sendmessage $message="tm-add-field" $param="state"/>
</$button>
</$list>
<!-- IF it DOES have the field state: SHOW ANSWER-->
<$list filter="[all[current]has:field[state]]">
Answer: {{!!answer}}
<!-- SHOW answer buttons -->
<br/>
<$button>
Again
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<againQuality>>/>
<<updateActions>>
</$button>
<$button>
Hard
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<hardQuality>>/>
<<updateActions>>
</$button>
<$button>
Good
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<goodQuality>>/>
<<updateActions>>
</$button>
<$button>
Easy
<!-- Calculate New Parameters -->
<$action-setfield $field="quality" $value=<<easyQuality>>/>
<<updateActions>>
</$button>
</$list>
</$fieldmangler>
</$list>
This will at least let you answer a question, and mark how hard/easy it
was for you, and calculate the relevant fields for the next time it should
be shown.
I still have to actually implement the correct calculations for due, eq,
etc. These are just place holders for right now.
The next piece is the selector, which will be responsible for going
through all questions "due" field and selecting the ones that are ready to
be shown - this should very straight forward.
Any comments/feedback is very welcome!
Diego
--
You received this message because you are subscribed to the Google Groups "TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/cb8ff039-21c9-4f6f-9777-205c0db44cd6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Loading...