![]() |
#1 |
Linux User
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282
Karma: 6123806
Join Date: Sep 2010
Location: Heidelberg, Germany
Device: none
|
Flashcard
AutoShelf・FlashCard・HyphenDicts・MagicMemory・MiniClock・NickelIcons・ScreenSaver・UsbDebug・WebPortal・(GitHub)
--- FlashCard --- This is coming from an old thread ( Flashcards app for kobo glo ) and if you're looking for an other alternative I guess this one is worth mentioning too ( What's the vocabulary builder like? (hidden feature) ). I create a flashcard app ( Wikipedia on Flashcard and Spaced repetition ) for Kobo. It pops up while you read and forces you to study. So you read, study, read, study, read, ... switching between the two modes is kind of seamless, you continue reading right where you left off ( see also user interaction while nickel is running? ). You can customize how many cards should be shown per session, and how many minutes / pageflips should be between sessions. The only way to get out of a session and continue reading, is to answer all the cards. ![]() Cards are chosen randomly. For each card you can answer whether it was "easy" or "hard", and doing so changes the probability for that card. "easy" cards are half as likely to appear again, whereas "hard" cards will be twice (or four, eight) times as likely. So unlike a big SRS application like Anki, which has a concept of time and "due cards" there is no time based scheduling here. Any card can appear at any time, it's just more likely to show a card you don't know well. Cards are image files which you have to create yourself - I used inkscape / imagemagick for that. On the downside that means you can't just put a text file in there, on the upside it gives you total freedom in terms of design and layout of cards. You can also use transparency and use background images shared by all cards, so you don't have to duplicate data and image files stay reasonably small. To illustrate, here's an animated gif: I'll provide a sample deck set so you get the idea. To install, copy KoboRoot-FlashCard-<version>.tgz » .kobo/KoboRoot.tgz It will create .addons/flashcard/ with a sample config file. You'll have to add a deck too. To uninstall, set uninstall=1 in .addons/flashcard/flashcard.cfg Last edited by frostschutz; 11-18-2018 at 07:20 PM. |
![]() |
![]() |
![]() |
#2 |
Linux User
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282
Karma: 6123806
Join Date: Sep 2010
Location: Heidelberg, Germany
Device: none
|
Here's how I create flashcard images. (this is very specific to the data I exported from my Anki kanji deck, but the idea in general would work for other things, too)
First you write an SVG file and style it up the way you want: Code:
<svg width="1080" height="1440"> <style> .kanji { font-family: "EPSON 教科書体M"; font-size: 900px; } .reading1 { font-family: "EPSON 教科書体M"; font-size: 50px; } .reading2 { font-family: "EPSON 教科書体M"; font-size: 50px; } .meaning1 { font-family: "Linux Libertine Display O"; font-size: 50px; font-style: italic; } .meaning2 { font-family: "Linux Libertine Display O"; font-size: 50px; } .graphem { font-family: "Linux Libertine Display O"; font-size: 40px; } </style> <text class="kanji" x="50%" y="54%" alignment-baseline="middle" text-anchor="middle">KANJI</text> <text class="reading1" x="50%" y="66%" alignment-baseline="middle" text-anchor="middle">READING1</text> <text class="reading2" x="50%" y="71%" alignment-baseline="middle" text-anchor="middle">READING2</text> <text class="meaning1" x="50%" y="80%" alignment-baseline="middle" text-anchor="middle">MEANING1</text> <text class="meaning2" x="50%" y="85%" alignment-baseline="middle" text-anchor="middle">MEANING2</text> <text class="graphem" x="50%" y="95%" alignment-baseline="middle" text-anchor="middle">GRAPHEM</text> </svg> Code:
#!/bin/bash while read line do kanji=$(printf "%s" "$line" | cut -f1) meaning=$(printf "%s" "$line" | cut -f2) reading=$(printf "%s" "$line" | cut -f3) graphem=$(printf "%s" "$line" | cut -f4) reading1=${reading%'<br>'*} reading2="" if [ "$reading1" != "$reading" ] then reading2=${reading#*'<br>'} fi meaning1=${meaning%'<br>'*} if [ "$meaning1" != "$meaning" ] then meaning2=${meaning#*'<br>'} else meaning1="" meaning2=$meaning fi echo $kanji , $reading1, $reading2 , $meaning1, $meaning2 , $graphem # generate question cards sed -r -e "s@KANJI@${kanji}@g" \ -e 's@(READING[12]|MEANING[12]|GRAPHEM)@@g' \ kanji.svg > question.svg inkscape --export-png=question/"$kanji".png question.svg > /dev/null & # generate answer cards sed -r -e "s@KANJI@@g" \ -e "s@READING1@${reading1}@g" \ -e "s@READING2@${reading2}@g" \ -e "s@MEANING1@${meaning1}@g" \ -e "s@MEANING2@${meaning2}@g" \ -e "s@GRAPHEM@${graphem}@g" \ kanji.svg > answer.svg inkscape --export-png=answer/"$kanji".png answer.svg > /dev/null & wait rm question.svg answer.svg # optimize ( convert -flatten question/"$kanji".png +dither -colors 2 png8:question/"$kanji".convert.png optipng -quiet question/"$kanji".convert.png mv question/"$kanji".convert.png question/"$kanji".png ) & ( convert answer/"$kanji".png +dither -colors 2 png8:answer/"$kanji".convert.png optipng -quiet answer/"$kanji".convert.png mv answer/"$kanji".convert.png answer/"$kanji".png ) & # wait # optimize can go into the next loop done < kanji.txt wait Last edited by frostschutz; 10-28-2018 at 05:33 AM. |
![]() |
![]() |
Advert | |
|
![]() |
#3 |
Linux User
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282
Karma: 6123806
Join Date: Sep 2010
Location: Heidelberg, Germany
Device: none
|
![]() So I see this is sparking an overwhelming amount of interest. ![]() ![]() Anyway, I've been using this on my H2O for, well... two days now. It works well - except busybox segfaults ![]() ![]() Right now it's one big shell script, that only runs in one mode (the kind that interrupts your reading). I'd like to re-factor it so it can also be used as a standalone app, like launching it from KSM or whatever. So this probably isn't entirely fit for release yet, but whatever. Here goes nothing. Last edited by frostschutz; 11-04-2018 at 01:54 PM. |
![]() |
![]() |
![]() |
#4 |
Evangelist
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 407
Karma: 314204
Join Date: Jan 2015
Device: bq Avant XL, Kobo Aura H2O, Onyx Boox M96C Plus
|
Sorry frostschutz! You know how I appretiate your hard work with usefull (at least for me
![]() ![]() I know what the mod does, but not its practical use |
![]() |
![]() |
![]() |
#5 |
Linux User
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282
Karma: 6123806
Join Date: Sep 2010
Location: Heidelberg, Germany
Device: none
|
Perhaps see Wikipedia on Flashcard and Spaced repetition. That's what this does, just using the ebook reader instead of flashcards.
And it works while you read. Read for 10 minutes (or 30 pages), then go through 25 flashcards, then continue reading for another 10 minutes. (Customizable). This mod supports 1-sided, 2-sided, 3-sided cards; only problem is you have to create the cards as images for now. While fbink could display text directly, it doesn't work with arbitrary fonts or Japanese or ... for now. I see there is some work on that in the GitHub so maybe in future there will be a text mode too. I'm using this with 2000 cards and the images (4000 files for question and answer side) are about ~30MB in total. |
![]() |
![]() |
Advert | |
|
![]() |
#6 |
Evangelist
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 407
Karma: 314204
Join Date: Jan 2015
Device: bq Avant XL, Kobo Aura H2O, Onyx Boox M96C Plus
|
Thanks for the links. So it's basically a learning method but using the mental state of the reading time for memorize, isn't it?
|
![]() |
![]() |
![]() |
#7 |
Linux User
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282
Karma: 6123806
Join Date: Sep 2010
Location: Heidelberg, Germany
Device: none
|
Not sure what you mean by mental state.
For me it's about distractions and lack of discipline. I could study an hour per day using Anki software on PC or Smartphone, but I'm lazy, so instead I browse the web or read books. And when you check the time, somehow hours have passed by. A flashcard app that (kind of) *forces* me to study has been on my personal wishlist for a long time, and only now I got around to create one. I also want to do this as a browser addon for the same reasons, I waste too much time browsing and too little time studying. |
![]() |
![]() |
![]() |
#8 |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,775
Karma: 2694823
Join Date: Dec 2011
Location: The Netherlands
Device: Kobo Touch, Glo, Clara HD
|
Thank you for linking to here from the old thread where someone requested a similar feature, otherwise I wouldn't have seen this
![]() I'm quite interested! Except for the making of the flash cards (another time consuming thing that I must ignore because I might enjoy it more than actually using the flash cards and it will distract me from more important things I have to do ![]() |
![]() |
![]() |
![]() |
#9 | |
Guru
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 875
Karma: 2676800
Join Date: Aug 2008
Location: Taranaki - NZ
Device: Kobo Aura H2O, Kobo Forma
|
Quote:
![]() BTW, I have the skeleton of a basic C touchscreen implementation floating around if anyone is interested. It reads events directly from "/dev/input/event1' (or any other event file for that matter). |
|
![]() |
![]() |
![]() |
#10 |
Linux User
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282
Karma: 6123806
Join Date: Sep 2010
Location: Heidelberg, Germany
Device: none
|
Thanks
![]() Yes, I know. It's possible for me because I have ways to automate it, but I understand it's not for everyone. I'll try to add a plaintext based flashcard mode in the future (powered by the wonderful FBink tool), but it's not around the corner... the current code is very image-centric. Actually in some ways more likely someone finds a generic image-generation tool. There used to be an addon for firefox that would allow you to create screenshots of HTML pages en masse which would allow for HTML-based flashcards (as many programs such as Anki use them) but it no longer works... I've never used that feature. It depends if that data is stored in plaintext somewhere - it doesn't sound easy if I have to pull it out of the dictionary myself. |
![]() |
![]() |
![]() |
#11 |
Linux User
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282
Karma: 6123806
Join Date: Sep 2010
Location: Heidelberg, Germany
Device: none
|
I'm currently cobbling together a FlashCard Image Generator written in HTML/JS. So far it only generates a single image, not sure how it will perform on a larger scale, but if it works out, you'll be able to use your web browser to locally generate text-based flashcards from comma/tab-separated files (such as Anki exports). It's a low-priority project for me at the moment, so it may be vaporware for a while.
![]() Anki actually has a similar addon already ( papercards https://ankiweb.net/shared/info/2042118948 ) but it didn't work properly for me. ![]() You can also find some printable PDF flashcards out in the wild, which could be used for this addon by converting the PDF flashcard to images, but it's hard to crop the correct regions for front / back. |
![]() |
![]() |
![]() |
#12 |
Linux User
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282
Karma: 6123806
Join Date: Sep 2010
Location: Heidelberg, Germany
Device: none
|
Minor update, I'm not sure if this is a generic issue or something specific to my device, but I noticed that sometimes no matter where you touch, it sometimes registers as touching x=0 y=0
Which, when answering flashcards, would result in the wrong answer... so I made a workaround for regions to start at x=1 y=1 so x=0/y=0 is ignored. Also added a condition that the region must be hit twice in succession to be valid (a single touch usually reports 3-5 coordinate pairs for me so I'm requiring two for now). Hopefully this will get rid of misdetections. TODO: - implement text/csv source deck, to be rendered by fbink's new truetype handling - finish the half-done javascript flashcard generator anyhow - re-factor the script to also allow standalone mode - optimize deck logic, perhaps implement in C |
![]() |
![]() |
![]() |
#13 |
Linux User
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282
Karma: 6123806
Join Date: Sep 2010
Location: Heidelberg, Germany
Device: none
|
...and now I'm working on a piano / sheet music flashcard deck (using some piano openclipart + lilypond sheet music typesetter).
And this is also the reason why I'll keep image support around even after adding support for flashcard textfiles (powered by fbink's truetype font). Some things just can't be done by text alone. |
![]() |
![]() |
![]() |
#14 | |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,775
Karma: 2694823
Join Date: Dec 2011
Location: The Netherlands
Device: Kobo Touch, Glo, Clara HD
|
Quote:
Ah hmm yes I think it is just a list of words - clicking on any word brings up the dictionary so yep, probably a huge hassle to pull the words AND their definition into flashcards. |
|
![]() |
![]() |
![]() |
#15 | |
Junior Member
![]() Posts: 8
Karma: 10
Join Date: Oct 2021
Device: Kobo Glo
|
Quote:
@frostschutz It looks like your application is what comes close to this, so far? |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Aura HD Need internal flashcard image. | Squarty | Kobo Reader | 17 | 05-29-2013 02:39 AM |
My first quiz / flashcard ebook | fxp33 | Kobo Reader | 16 | 05-09-2013 07:47 PM |
Epub quiz ou flashcard | fxp33 | E-Books | 2 | 05-09-2013 03:11 AM |
iLiad flashcard or quiz type software? | readmore | iRex Developer's Corner | 1 | 12-16-2007 08:04 PM |