Jump to content
Chinese-Forums
  • Sign Up

Inkstone: my free, open-source Chinese writing app


skishore

Recommended Posts

On 3/27/2017 at 4:40 AM, skishore said:

As for suggestion #1, I like it, but where in the UI do you think a back button would fit best? Top-left is currently the "Home" button.

If you recall, suggestion #1 was to include a back button in order to re-examine a previous word. Since version 0.1.3, a back button has found a spot in the UI. Currently it has the function of allowing the user to re-write a character. However, before the character is written the first time, the button doesn't do anything, and perhaps instead, the button could take on a second function and be used go back to the previous word if one hasn't started writing the next character yet.  I think this usage would be fairly intuitive…

Link to comment
Share on other sites

The backup file is a JSON-encoded dict. After decoding it (assume the output is "x"), you'll want to look at x['database']['table.vocabulary.{}'.format(i)] for i in range(16). Those entries are JSON-formatted vocab-status entries. When you decode those 16 entries, you'll have 16 lists which you can concatenate to get a single list of vocab-status entries.

 

Each vocab entry is a 7-tuple of (word, time_last_seen, time_next_seen, lists, num_times_attempted, num_successful_attempts, was_last_attempt_successful). So, given that data, a simple metric you can output is "number of words seen" and "number of words retained", where retention could be defined as, say, getting the word right at least 75% of the time, or as "is the current interval for this word (time_next_seen - time_last_seen) greater than 1 week".

 

Hope that makes sense. Let me know if you run into issues! I'm sorry that this got a bit complicated, but most of those pieces were important for the app to work well - for example, storing the vocab entries as tuples rather than as easier-to-interpret dictionaries saved a bunch of space.

 

Oh, one quick edge case to point out - some of the table.vocabulary.i entries might be missing, so just treat those as empty lists.

  • Like 1
  • Helpful 2
Link to comment
Share on other sites

  • 2 weeks later...
  • New Members

Thanks a lot for Inkstone. It is a very good software.

 

I would like to request a feature. I think that what is the most lacking now in Inkstone is the ability to import more lists.  I understand that we can provide some text list but it is not a very convenient way for entering a new list of characters for the average user.  In the Skritter app, one of the best feature is that there are the vocabulary lists of many Chinese textbooks. For example, now I am learning with Boya and I can directly download the list of these textbooks on Skritter without having to type them by myself in a text file.   So I think that it would be great if:

1) There would be a way of exporting lists from Skritter to Inkstone (?)  I did not find where the lists are stored in Skritter. If someone knows about it, and if it is easy to copy them to Inkstone I would be very interested to know about it.

2) Add the option in the user interface of Inkstone of creating a list and adding words with definition to the list.   Then at least, the average user could type all the words from a textbook or make his own list. Then, maybe even that people could share their lists eventually.

 

This is my suggestions!  Thanks again for the software. I think that list management is the main issue for me now.    Other features like quiz are not so important :-)

Link to comment
Share on other sites

A feature that could be useful is one that could repeat writing the word until you get it. Also maybe a way of adding entries manually.

Another useful feature could be a character count to keep track of the amount of characters you can write.

Thank you very much for this app!

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
  • New Members

Yes, I think the two features would be very useful:

  • Adding a character count and a progress bar or percentage to show how much of a list we have mastered would be very interesting (e.g. it could show that you have learned 75% of HK4 already). This is important for learners to be able to see an overview of the progress and would enhance the learning experience.
  • Another essential feature is to have a reset button to reset the progress for only one list of characters.  This is very useful to review a list.  Currently, I had to clear ALL the data of Inkstone to review a list again from zero...
  • And as I said in previous post, something more user-friendly for list management would be good!

Thanks again!

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
On 12/30/2017 at 2:08 PM, 大块头 said:

I can maybe write a simple Python script to do this analysis and share it with the group via GitHub.

 

I've created a tool to generate graphs of your study progress. View it on GitHub here. Instructions for how to use it are at the link, but let me know if you encounter any problems.

 

 

example_graph.png

  • Like 1
Link to comment
Share on other sites

  • New Members

Tried that script. Had some small problem to run it on Windows. After copying the backup files from Android, the script throws an error, since Python cannot recognize the file encoding. Tried UTF-8 and other encoding but without success. Finally, converted the files to ANSI using Notepad++, and then, changed that line of the script:

 

x = json.load(file_object, encoding="ANSI")

 

And it works. 

But, yes, converting the backup file to ANSI is kind of destructive with respect to the content of the files as it eliminates the chinese characters. But at least it generates the graph properly.

 

It would be great to have that feature directly in Inkstone.

  • Helpful 1
Link to comment
Share on other sites

2 hours ago, philfv said:

Tried that script. Had some small problem to run it on Windows. After copying the backup files from Android, the script throws an error, since Python cannot recognize the file encoding.

 

That's strange, because I can run it on my Ubuntu Linux computer with no issues.

Link to comment
Share on other sites

  • 1 month later...
  • New Members
On 8/23/2017 at 3:14 PM, skishore said:

I've completely extracted the handwriting UI from the rest of the app's code. What that means is that an Anki integration is now feasible if someone (@HerrPetersen?) wants to try it out. The handwriting library is here: https://github.com/skishore/inkstone/tree/library

 

I want to try this but I don't know enough coding/programming. Everything I do know is a result of messing around with Anki, which has actually included a good bit of play with HTML java and CSS. I can't get this working from the library alone, but if you can help me by providing enough of the html, java and css for the Front, Back and Styling templates (and .js for the media folder) to get an inkstone test to render for a chosen field, I can make it look nice and integrate it into note types do everything else desired for learning Chinese vocab. I think the results would delight many an anki using Chinese student. This would immensely support the studies I am currently undertaking in Shanghai. I hope this is possible and not a huge mount of work on your end.

 

I've tried to adapt the Matthias deck to work with multiple characters but the java just wasn't built for it and I'm no programmer. I did however manage to integrate it and make it look quite pretty on my cards. I just don't use it because so many of my cards use multiple characters. But since I already accomplished this much, I could easily integrate your inkstone if you can point me in the right direction. Thanks so much for what you have created! it is such a beautiful way to interact with Hanzi.

Link to comment
Share on other sites

  • 4 weeks later...
  • 3 months later...

I've been using this app every day to study, and it seems like I always accidentally incorrectly score a few words each day (usually scoring the words I actually know as failures). It would be nice if the erase button (circled in red below) turned into an undo button when the app initially shows you the next word so you could go back and rescore the previous word if you made a scoring mistake.

 

image.thumb.png.cd86087d960950754a222a1c616fc1fe.png

  • Like 1
Link to comment
Share on other sites

  • 7 months later...

So after two years, I'm finally ready to drop Skritter as I don't use flaschards on a regular basis anymore and I'm not getting enough out of it... 

Inkstone, as plenty have told me, seems the way to go but for the life of me I can't seem to figure out how to import Pleco lists since an error is always returned by the app no matter which setting combination I use on the Pleco Export Flashcards side. 

 

Screenshot_20190522-164655_Inkstone.thumb.jpg.b9786727a14bde0016f2f16dfe5f5040.jpgScreenshot_20190522-164718_Inkstone.thumb.jpg.ad0744b13520c6172fc730caa5beff36.jpg

 

Inkstone's help website tells you to toggle the following settings on Pleco:

  • Card definitions
  • Dictionary definitions
  • Remap if unexportable

But "remap if unexportable" doesn't seem to exist (there's remap if forbidden, but toggling it doesn't help either)

 

Maybe someone can help me out with this issue? @mikelove  

 

Thank you all!

Link to comment
Share on other sites

Thanks for the fast reply Mike!

 

I've already tried with a .txt format and returns me the error on the second screenshot i previously posted. 

 

Screenshot_20190522-164718_Inkstone.thumb.jpg.feb244680f4713e18003fc318411bf3b.jpg

 

It's also worth mentioning that I'm using the GitHub release as per now (same build as the one available in the Store as far as I know) since first I want to give the app a try before buying it from Google Play; I've also faced all this errors while both using an LG G6 and Samsung S8 with Oreo 8.0.0 on them, but I don't believe there's any correlation.

 

Really bummed out as Inkstone seems to be just what I'm looking for... :cry:

Link to comment
Share on other sites

Sorry, didn't see that screenshot the first time for some reason.

 

It looks like Inkstone's format is currently:

  1. The word in simplified characters
  2. The word in traditional characters
  3. The word's pronunciation, in numbered pinyin
  4. The word's definition

Four columns instead of our three. So could you maybe export it to a text file, configured to output simplified and traditional, then open it in a text editor (e.g. on your computer) and do a find-and-replace to turn every [ into a tab and every ] into nothing?

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and select your username and password later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Click here to reply. Select text to quote.

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...