Archive for the ‘Progress report’ Category

zkanji TEST 2

July 30, 2017 2 comments

The titles of the posts will get boring for a while, until the first beta is out too. I have uploaded the next test version with a few visible fixes, and many others under the hood.  Go here to get it.

The new release lacks all data files and DLLs. You’ll need the first one too, and overwrite its executable with the new one. I plan to keep it this way for lighter downloads, until the first stable release.

The changes don’t look much, because I mainly work on the Linux version right now, but I have fixed the annoying crash with the example sentences. The Linux version is the same program, so working on it will help revealing general bugs that affect the Windows version as well.

Please open an Issue on GitHub, or mail me if you find bugs in zkanji. If you think that something important is much worse than in the old program (for example because shortcut keys are missing,) you can make a request about it. Otherwise I’ll keep working on the Linux release and do other things later.


First steps for the next release

July 15, 2017 1 comment

The short version: I’m still not done with the next release, but I have uploaded the source files to GitHub that are needed to compile and run the new zkanji. You can get it and try it right away on Windows IF you have Visual Studio 2013 or newer. It’s pretty easy to compile.

The long version: I spent a lot of time fixing errors and filling up holes in the program in the past many weeks, and it still contains bugs. There were several “game breaking” bugs I only discovered in the last moment. The last days were spent figuring out (again) how to release the program properly with an open source license. (I went for GPLv3.) It’s a complicated matter, especially since some files come from a different open source project with its own license.

Creating a release with the executable alone might be enough for those, who have the 2013 version of the Visual Studio redistributable, and the Qt DLLs, but this can’t be taken granted. I’ll need to include those too for everyone else, which means at least a primitive installer. I hope there’s some tool somewhere to make one quickly, because the free tool I used to create the installers for previous versions of zkanji, is everything but simple.

Because the Qt DLLs and the VS redistributable must be included, the file download will be at least 20 MB larger than previous ones were. On the other hand I won’t include the Japanese dictionary and example sentences data for now, which will save 20 MB. They can be obtained easily with the instructions I’ll include with the download. (I plan to include the data files in the final release.)

Before I forget, I still need to design a new icon for this version of zkanji. I could use the old one, but I want to make it clear in every design choice that it’s a new program. It was newly written after all. I will also need to add an about box to fulfill my obligations towards Qt and any other project which has a license that must be mentioned in the program. Then there’s the question of the name. I can keep it simply “zkanji,” but if I do that, I’m not sure what version number to use. It’s not a real continuation of the old version in the sense that they only share the same idea, but nothing of the program code.

First glance

October 2, 2016 21 comments

A long time ago I promised preview images of the new version I’m working on, so here are some first screenshots. The basic layout of these windows are now done but they are not finished yet.

Read more…


July 8, 2016 9 comments

Just posting here to say I’m still working on the new version. I didn’t spend as much time on it lately as I could have, but I’ve returned to it a few days ago. I thought that a library like Qt will take off the burden of working on the user interface, but I’m finding myself rewriting simple things like clicking inside a table and selecting multiple rows of words for example. (In case you were wondering why it takes so long, besides it’s being a complex project anyway.)

I’m also spending a lot of time thinking about how to change the old interface. Good design decisions can make a program easier to use… and bad ones can break it. People complained that the old interface was too complex and they couldn’t find anything, but I’m afraid of oversimplifying things. I have made significant changes though, but it’s possible these won’t work well.

For example in the new design, the user is able to open as many windows as they like. The windows only display a single feature (like dictionary only, or word groups only,) but can be docked into the main window anywhere. This has the side effect that resizing the main window resizes the docked interface elements equally. As opposed to the old interface, where the kanji list part (on the left) remained the same width. We will see whether this makes the program harder to use or not.

I wanted to post screenshots but I still don’t have icons for 99.9% of the buttons, and I don’t want to publish an interface design full of buttons of the wrong size and no clear role.

The future

April 4, 2016 10 comments

This post was cut in two because I know how much people hate to read. Skip to the next one if you want to read that first.

Most things I have to work on from now on are related to the user interface. Previous versions of zkanji were built for windows only, which made the interface much easier to create. I didn’t have to use external libraries that worked like an alien life form on top of the operating system. This time though, because I wanted to make zkanji run on Linux and Mac as well, I was forced to use such library. I have already written about how painful it is to use that library, but that’s not what I wanted to write about this time.

The new user interface was meant to be modern and stylish. More importantly, easier to use and simpler just by looking at it. But I guess I should just forget most of these dreams if I want to make a working version. Every interface element (text input, button etc.) seem to take up a lot of space now, and there is no way to use the empty spaces well. This became painfully obvious when, for example, I tried to make a good interface for the kanji search. (Still work in progress.) It wasn’t very elegant in the previous versions of the program, because there are many buttons, check boxes and text input boxes that needed to be placed for editing filters for the kanji.

Another layer of difficulty is the scaling of the interface. It’d be good if it worked on all kind of screen resolutions, from the 1000ish pixels wide netbooks (are those still around?) to 4k and beyond. For this reason I’m trying to make button icons in SVG format. Those can be scaled to any size and won’t become ugly and pixelized like “traditional” images. I’m not an artist though, and I’d rather work on the code more, so unless someone wants to donate some SVG images, the button icons will be hideous at best.

Last but not least there’s the popup dictionary, which activates in previous versions by a key combination installed in the system. It brings up zkanji when you press the set keys, even when you are playing a video or reading your favorite manga. There is an extension library for the user interface library I’m using, which allowed this to work on several systems. Unfortunately it seems to have been discontinued some time ago. I’ll try to get its source files and figure out what I need to copy to make it work, but in the worst case this will be a Windows only feature.

The next time I’m posting again, I really hope I can bring you some screenshots. I know the wait is very long, but I’m a single person and this is not a small project!

Categories: Plans, Progress report

The past

April 4, 2016 Leave a comment

It’s been a long time since I last posted, and I can’t say I’ve been busy with zkanji, because I was doing other things too. Don’t worry though, the program is now in a state when the basics are done. It still misses long hours of testing, or even user-error prevention, so it’s not ready for publication yet.

There’s a working dictionary search (obviously, as it was the first thing I had to implement,) filter for the search results, word grouping, kanji grouping, word printing, long term study test, the normal tests, “handwriting” recognition for kanji, JMDict/KANJIDIC importer (this is new in this version,) example sentences importer, dictionary exporter/importer. The things the program is missing don’t involve much change in the data handling itself. Collecting-words-with-selected-kanji for example will be able to use everything already written, as soon as the interface is done for it. There’s also no hiragana/katakana study yet, but that works solely on the user interface level. No user settings either, but that’s also just an interface.

I know that people hate to read a lot so I cut this post in two. Next one is about the future.

Categories: Progress report

Progress report #19342904372 (random number)

October 8, 2015 3 comments

Fast report so you know I’m still alive.

I’ve finally given in and started working on the user interface. Without some windows, like add-to-group, it’s difficult to code and test most of the features. The new user interface will be different from previous versions, and a bit different from conventional user interfaces (although there are programs that have a similar interface). The program will have a “main window” which only shows one of the many “modules” of zkanji, but you’ll be able to select which one is shown from its toolbar. When you need interaction between these (i.e. picking words from the dictionary to add to a group), you’ll open another “main window”, switch from dictionary view to word groups view, then drag-and-drop the word from the dictionary into a group.

I want most things to work by drag-dropping just as well as from context-menu of window main menu. It’s still not clear how selection inside words will work if you can drag-drop. There are many open questions but I’ll figure things out.

According to my plans, most windows will be non-modal (that is, you’ll be able to interact with other windows while a dialog window is shown.) I’ve read somewhere that this is how modern interface design should work, but not being an expert I’m not sure. This creates complexity in the code so this is just an experimental feature right now.

I’ll post pictures when there’s something to show. (Some windows are already working but with zero design…)