Hi all. I've noticed a few people have stopped by to check out my complete lack of progress setting up the project. Well, I've finally checked in the code and it should work ok. At the end of this email, you will see my readme. Because of a few bugs, a complete lack of an install and some question regarding the distributableness of Theirry Bezecourt's JLPT files, I don't have a build for download yet. However, those of you that have the inclination, I welcome you to download the app. It's still early days yet, but it's already useful for me.
Pleas stick around for the next few days for updates on planned features and bug fixes. I'm hoping to scrape together some time in the next few days for doing development.
Cheers,
Mike
Here's the Readme
Welcome to JLDrill Version 0.1
==============================
This is pre-alpha software. Basically, I haven't had a chance yet to get things sorted out so that someone other than me can use it easily. Also, I'm new to Ruby so I don't even know how to put
together an install yet.
Having said that, things basically work. There are a couple of bugs which I need to sort out before I actually do a release, though.
Quick Instructions.
-------------------
Installation:
I've only tested this on Linux so far. I don't see why it wouldn't work on Windows, but unfortunately, you're on your own for that right
now.
JLDrill requires rubygtk2 installed (and gtk2 of course). Other than that, I haven't figured out how to install JLDrill yet. But it's pre-alpha, so you probably don't want to be sticking it anywhere yet anyway.
Running:
Go to the directory that contains the source code and type:
ruby gtkdrill.rb
Note: this name will likely change in the near future.
You will be presented with the main view.
First you need to open up a drill file. I currently have 5 drill files available. Click on the "Open" button on the tool bar.
From the File selection dialog go to the quizes directory. There you will see quizes for JLPT levels 1-4 and Hiragana. Select one.
Note: The JLPT files are generated from the files copyright Thierry Bezecourt. I have not contacted him about distributing these files yet, so I'm in violation of the copyright. However, these files are also quite wrong and I plan on completely redoing them anyway. I'm only using these files as tests. I will not be distributing them in
the builds, but they are checked in to CVS at the moment. The Hiragana file was written by me and is distributed with no restrictions.
After loading the quiz you will be presented with the kanji (or a hint about what word you are being quized about) and the reading. The bottom pane contains the meanings (and will currently be blank).
I stole the idea for the UI from PyJFlash which is a great flashcard system, but was a bit buggy for me as of this writing. Essentially, if you want to see the answer (meanings to the words), hit the "Z" key. Then (or even without looking) you can say whether or not you knew the answer ("X" is yes and "C" is no). After replying you will be presented with a new choice.
Seems stupid at first, but it's quite quick and simple. No carpal tunnel. However, don't get too used to Z, X, C. I think they are too right-handed centric (quiz with the left, mouse with the right) and C for "Incorrect" is confusing.
The training algorithm is fairly simple. The status of the quiz is displayed at the bottom and will look something like:
JLPT 4 vocabulary.utf: Unseen: 254 Poor: 7 Fair: 3 Good: 200 Excellent: 192 - R(2, 10)
What that means is that the quiz was generated from the JLPT 4 vocabulary file. 254 words haven't been seen before. 7 words require much repetition, 3 require repetition, but are OK, 200 only need to be repeated occasionally and 192 will be shown rarely.
The R(2,10) requires some explanation. The R means that new vocabulary will be presented randomly. Some quizes have a set introduction order (like the Hiragana quiz). The R will be missing in that case. You can set this from the quiz preferences (Ctrl-P or Quiz/Preferences from the menu).
2 is the number of times you have to get the word correct before it is "promoted" into the next higher slot. So once you get it right 2
times in a row, it will be moved from Poor to Fair. 2 more times it will be moved to Good. Finally 2 more times and it will be moved to
Excellent. If you ever get it wrong, it will be moved back to poor. You can also set this number in the preferences (I like 2, but if you
want to be presented words more slowly, then choose a higher number).
Words in the poor category will be displayed 8/15 times, Fair 4/15 times, good 2/15 and excellent 1/15. The 10 in the status line indicates the threshold for the number of words in Poor and Fair
before a new word is introduced. As long as those words are less than 10, you will get new vocabulary.
For instance. If you have 5 in Poor and 3 in Fair, the system will present you with 3 new words before it will quiz you on old words. Once you have 10 or more words in Poor or Fair, you won't get any more new vocabulary. You can set this in the drill properties.
If you don't get this, don't worry. It's not really important. It just lets you fine tune your drilling so that you can be exposed to a narrow/wide range of words and go quickly/slowly.
Remember to save your drill before you quit. That way it will pick up where you left off last time. Unfortunately, I don't have a "save as" feature, so you'll just have to copy the drill file if more than one person wants to use it (feature will come).
Features:
Reference Dictionary. You can load a reference dictionary (must be in EDICT UTF8 format). In dicts you will find edict.utf that I use for that purpose (Again copyrighted by Jim Breem... Gotta get all that legal stuff sorted). This feature is useful because many of the words in the JLPT files have inappropriate or wrong translations. I've
fixed most of them in the JLPT4 file and some of them in the JLPT3 file. However, I will be getting rid of those and replacing them with
my own soon anyway.
You can cross reference a word by pressing Ctrl-X (or selecting Vocab/XReference from the menu). This will bring up an incredibly ugly display with the Word on the left hand side, a table of candidates on the bottom and space for a selected word on the right hand side. All you do is select one of the words at the bottom and
cut and past information between the reference word and the drill word. (trust me, it makes sense when you see it). One thing... If
you haven't already responded to this word (chosen Correct or Incorrect in the drill), it will be put back in the Unseen list. If you are set to Random drilling, that means you won't see the word for
a while. I will fix this bug eventually.
Display word. You can display the details of a word that you are drilling. Just press D (or select Vocab/Display from the menu). You can edit this word if you want from here.
Show all. Will show a table of all the words in the drill.
Reset. You can (eventually) reset the drill so that all the words are Unseen again. Currently crashes (just noticed this now and haven't fixed it yet), so don't do it.
Create a new Drill. You can create a new drill by importing a UTF8 encoded EDict file. Just read it in and then save. There's a bug where it won't quiz directly from the edict file, so you will have to reopen the quiz file after doing so (Yes, I'll fix that bug too... again, just noticed it now).
That means you can read in the unadulterated JLPT files (in the JLPT Vocab directory of dict) and the Mainichi Shinbun Frequency files (the copyright status I'm currently unaware of) or anything you can find yourself.
That's it. Hope you find it useful. Lots of new features are planned. I just have to find the time. Please be kind when you look at the code. It's much messier than I would like. Plus there are no tests (! -- people who know me would be shocked to say the least). Expect things to change dramatically over time. I hacked this all up in a few days, so I got a bit carried away...
Also, I just today noticed the NihongoBenkyo project and I'm wondering if there is some potential overlap in our applications. I'll probably be talking to them in the near future.
|