Kongzi Beta 7 Milestone 6

I’ve been working on Kongzi a lot recently. There are THREE major new features.

1. Mix and match now works again (although I suppose it always needs more testing).

2. Kongzi now supports split dictionary and user files. That means if you are running a class (versus studying on your own) each student can have their own profile but the dictionary data can be edited in one place. VERY convenient.

And 3.. perhaps the most interesting, most-discussed, and most debated feature regarding this program.. well.. what is it? Well let me introduce it to you. Recall the Browse Entries screen from previous versions; here I am showing the Chinese-English dictionary highlighting some vocabulary from the BLI system:


Now, there’s a secret key; Select some entries (as many as you wish) and press F2:


I’ve removed the window title to build suspense, but there is a clue in this image as to what I am working on. Are you ready to see this? It’s so awesome.. scroll down:


Ahh, there it is! Kongzi’s FULLY INTEGRATED, FULLY DEBUGGED spaced repetition flashcard system!

It works off the dictionary so it’s completely configurable in every way all the quizzes are. I use it to teach myself Chinese and Japanese, and I use it to teach my students English. You can even configure your hints. I’ve included one more shot of a standard Chinese – Pinyin – English setup below; this is what you might see after clicking the “hint” button twice:


Wow, I can’t tell you how proud I am of this system! It took Kongzi in a fresh direction and brought me back to working on the project big time. Although I must say, that the dual savefile structure was more difficult (in the sense that I had to keep track of a very large number of things at one time).

All in all, the dual savefile structure was really necessary for classroom instruction. That’s the biggest bit of info which came out of the recent 6 month beta test. And, oddly enough, it was sort of required for the SRS system because the SRS system would only be useful for one “user”.

So, now we’re at 0.7.6. The only thing left for Beta-8 is to add Audio quizzing. I’m a little unsure of how I should do this. There will be audio only quizzing which will repeat the word twice, but due to audio issues I may also include a “replay audio” button. That is, i’ve noticed audio issues in a lot of similar programs on a wide variety of computers, so I want to get that done right before I release it too.

beyond that, what else? A text analyzer, full-script cloze generator, and some sort of guide/helper would all be great but I think they are not going to be necessary to make a release-quality program. So after the audio (which itself might be thrown out and I’ll just release with the current set of features)… Working on those textbooks is now a big priority.

Okay so I am kind of rambling here, bouncing ideas off the wall, so that will be my decision. then. I’ll do a feature freeze now, put Kongzi back into another 2 months of beta testing to test the split savefile system and the SRS system in the classroom. I’ll work on the textbooks and stick to that June release schedule.

This is going to be a big release for me. I am very happy about this program!

If you’d like to be in the next beta test or you’d like to make any comments or suggestions, please, comment! Tell me what you want in a program like this. It’s going to be the best! Gotta be the best! ^^


Kongzi Beta-8 announced for June

Okay. Kongzi Beta-7 has been in classroom-use testing for about 6 months now and it seems pretty solid. A lot of changes have gone on under the hood. It’s using a database for the main type of save files now and you can merge (import) data from other files without destroying your user info. This will be tuned as time goes by, but as of now it is solid for general use.


All the quizzes have gotten a swift kick up in power, they now don’t just present random items but will sometimes present items which are similar to the correct answer. To do this I have created an engine which analyzes the user’s expected knowledge level and searches for similar words .This works in any language and with sentences (shown below) as well as with words (shown above).

Another thing which I’ve done is add the list of test mistakes to the score screen for easy studying. The following example is from the dictionary I use to teach “Let’s Talk in English” to Chinese students.


Once I give the manual a once-over and double check a few features on my to-do list, I’m going to have to start looking at how to package this beast.

For one, I plan to blow away the competition by offering a companion textbook with preloaded vocabulary. The MCI Chinese project (see the navbar up top) isn’t dead at all and has actually expanded with sister projects such as MCI Japanese and so forth. Here are some shots of the MCI Japanese book, “Welcome to Japanese”:





As you can probably guess I’m really excited to have reached this point in the Kongzi project and I will be able to package and offer these materials to YOU (well, to anyone) very soon. Target is this summer, around June for a complete Chinese/Japanese/Korean package which will take you from step one to “fluency”.

Thank you for keeping patient all these years. The wait has been difficult for me, too! But it is almost ready now, for real!

Kongzi Ressurection

You may not know this, but after the last blog post (about Kongzi) back in January 2008, a series of unfortunate events pushed me farther and farther away from developing Kongzi.

I’d like to list them here to help ease my mind. And why, because I’ve decided to focus on finally finishing this promising project.

For one, after I had completely removed all the netbeans auto-gui code, I figured out how to turn off reflection in the gui generator. It all came crashing down. “Shit,” I thought, “I just wasted several days of work”. What was worse is that I would have to redo all the forms because although I had a recent backup I was spending so much time on the project every day that it felt inconceivable to me to go to an old backup. Version Control. Yeah I know, I tried that. It’s a pain in the ass. I don’t want to comment on that. I’ve tried many version control programs for unix, windows, whatever – none of them appealed to me.


I text edited the original files and put back the IDE tags I had removed. So I wasted about a week on that whole adventure. But I finished it and resumed working on the project. Then I did something really dumb, I tried to install a version control system. Version Control systems are great – for large, multiuser projects. For something like this it is a TOTAL waste of time. Backups would have been better. So I lost all my work because the version system wasn’t installed properly, or I typed the wrong flag, or whatever. Poof. You know, I had tried to use version control systems before, really. I am not a novice user by any means. But this was the last straw. I actually had a system up and going which backed everything up for me. But losing all my code.. For fuck sakes – and I do not swear in vain – if I am going to have to back it up anyways I will simply not waste my time with a VCS of any kind.

So you know what I did, I did it all over again.

This is late January now. The program was going exceptionally well. I had all the features I had before. Then I did something which taught me a lesson. I started working on the licensing aspect of the program and I got bogged down. I didn’t really want to work on the licensing and the licensing aspect was boring. Slowly the code started to break in places because it had to be slightly redesigned to work with the licensing code I had written. So I lost interest. This is February now and I posted about how I felt but I didn’t say why I had been losing interest.

A few months later I had a motorcycle accident and I couldn’t type or write for a week or two so that was a problem as well. So by this point I was also into guitar and videogames for a while – well I had always been into games like Hitman, Halflife, Max Payne and so on and that sort of occupied my time. That and work. So I had totally given up on the project.

Now, get this. For some reason I seem to have lost my backups of Kongzi.

I don’t mean all my backups. I mean the “recent” backups from February. I’d just as soon snip out all the licensing code and work on the main project a little more but I can’t. So here I am. What am I gonna do.

First I have to justify why I want to do this. Oddly enough although I am working more than I ever have, I see many ways in which I could use Kongzi at work to help me teach English. Especially now that you can get a mini laptop for under $300. What a deal! Or perhaps it could run on one of those phones with windows mobile or a Palm (if they even make those anymore) and so on. I have a lot of ideas. I always did.

I mean, they sell those little electronic dictionaries. I could use that. But with Kongzi I could tailor it to the needs of an English Teacher. I could sell it as a package – a mini laptop and software. I’d make a lot of money like that. Lol. Or something.

So here’s what I did.

1. I pulled up all my old backups. Dec 17th. Dec 30th. January 3rd.
“Aww crap,” I said to myself. I lost a lot of work. Over a week and a half of amazing stuff.

2. I identified the Dec 30th backup as the day before I gutted the GUI code.

3. I put the Jan 3rd backup and the Dec 30th backup into the latest netbeans (installing, which, was an adventure all it’s own but there really is nothing better.. time has certainly shown who won the recent IDE wars)

4. I started bringing the Dec 30th backup “up to speed” with the Jan 3rd backup, minus all the form removal code. File by file. This will serve many purposes least of all refamiliarizing myself with the code.

When I am done, thank god, I also have those extremely convenient screenshots of what I was doing with Kongzi at the time I gave it up, so it should be trivial to redo the ten or so days of work I lost. And given more than half that time was spent on the irrelevant licensinc code… I am actually pretty excited about this now.

All things considered I could have Kongzi NeoBeta ready to accept new code by early October.

By Halloween I should have more work done on Kongzi than ever. By Halloween I expect to start spending most of my time working on the dictionary. By the end of the year I expect I could be completely finished this with a real live distributable CD.

Hmm. Let’s reintegrate that code and look at the screenshots of Beta-4 first 😦

Kongzi on Hold, MCI textbook scrapped

Well, I’m scrapping the MCI Chinese textbook. The reason why is because I discovered LIVE Interactive Chinese Magazine. LIVE is basically exactly what I wanted my MCI textbook to be, minus a proper textbook introduction to the language.

Since anyone interested in learning Chinese will probably pick up a few hundred words on their own, LIVE completely serves the niche I wanted to fill with my textbook. So thats been placed far far back on the back burner.

Kongzi. Well, I’ve had a lot of good feedback so far, and I now have “too many” beta testers 😉

I am currently experiencing a higher workload at my job, and I no longer have that extra 2 or 3 hours a day to both work on kongzi AND play all my videogames. Plus I love playing with my son too. Yes, it’s an excuse, but a damn good one 🙂 I likely won’t feel like working on Kongzi until at least march, and likely not until June since I am going to visit my family around that time and when I get back I’ll have a pretty clean slate project-wise, so working on kongzi should be a priority. Thing is, because of work I don’t have much time because I’m also training tai chi. :/ My spare time is mostly taken up by videogames. And by that time I’ll be on GTA4 for sure, and I don’t know when I’ll come down from that one. I’m still kinda playing GTA3: San Andreas again because I keep thinking about GTA4.

I probably shouldn’t be so lazy about Kongzi. Well, Golden Week is over now so maybe I’ll take another look at it this week. Funny thing, when I’m vegging out I don’t feel like doing anything at all, when I’m actually working on the thing I can’t stop coding

Ok. I *promise* i’ll flip a coin about clicking on netbeans.. tomorrow 🙂

Kongzi in Korean?

Kongzi Beta-4 Screenshot

Kongzi is, of course, designed to deal natively with all languages. But it’s often easier said than done. I don’t know a single program that works equally well in both Chinese and Japanese. Anki for example doesn’t recognize tones properly (and neither does Stackz) and Stackz still displays simplified Chinese even after i’ve selected Traditional mode.

Well I’ve made sure problems like this don’t happen when you use Kongzi. Thanks to suggestions I’ve received from the Beta Testers, Kongzi now works equally well with Japanese, Korean, and Chinese. See for yourself:

Kongzi Beta-4 Japanese FontsKongzi Beta-4 Korean Fonts

Now, you can make Kongzi look however you want! What’s your favourite font for Korean, Japanese or Chinese? Kongzi can use it and make you feel at home.

The Font Chooser for Kongzi is incredibly intelligent. It automatically detects any fonts you have installed on your system which support the language you want to use. I’m very proud of it and I hope that it will satisfy user’s expectations well.

On the other hand, after reading Designing a Better Font Selection Widget it seems that what I have actually done is stumbled upon how the Mac has been doing things for years…

Doing things this way is very convenient for me as a programmer too. Auto-detecting your fonts lets me escape from having to distribute and install special fonts with the program. It is much easier to provide links to fonts on the internet than to distribute them in a zip file.

When will it be finished?

There are three important things I want to do with Kongzi before I release it.

1. I want to put in a help system.
I think it’s almost required for a good program to have online help nowadays, as well as in a pdf file or printed manual.

2. I want to create a Sample Dictionary & shortcut file
To help people jump right into learning with Kongzi, I want to provide sample “starter dictionaries” for Chinese and possibly Japanese & Korean as well. Giving users a blank slate wouldn’t be very fair. To this end I’m currently thinking about giving Kongzi the power to import dictionary files like JMdict/EDICT or CC-EDICT. That would solve all my problems in one fell swoop (except for users who want to learn Korean, or anything else not Japanese or Chinese).

3. I want to put in a “Phrase of the Day”
Simple enough to implement. But related to this is improving support for bigrams, phrases, idioms, etc. Right now Kongzi works really well for single character entries. But if you throw bigrams or phrases into the mix, some aspects might break. For example the Memory Game. It won’t work with phrases. Bigrams – maybe. Also, it would be pretty obvious during a multiple choice if long phrases and single characters were mixed. This will take some thinking I suspect.

Realistically the above won’t take me more than a couple of days if I sat down and just did it. I could probably toss in an internalization template during that time, too. But working on this program is starting to drag since it’s almost finished and I like to code rapidly. I spend at least 90% of time playing video games and scheming to corner the stock market. Plus I do have a “real job” outside of moonlight hacking. So when will it be done?

Well I also plan to distribute “Welcome to Chinese”, my MCI Chinese textbook, with the “full” version of the program. I’m also going to design a website to launch this. So all things considered at least a month.

I also have to stop myself from using the program – i’ve begun to spend entirely too much time using it myself instead of working on it. Hehehe 🙂

Kongzi’s Calligraphy

It would appear that my quest for an Icon is now over.

Han icon image in png form

I couldn’t believe my luck – as it turns out someone I’ve known for years is not only a well-known Chinese Painter, but a Calligrapher as well. The subject turned to Calligraphy and learning Chinese. I mentioned my program and he offered to write a few words for me to help my program and to help people learn Chinese. I mean how cool is that? Here’s how I’m planning on using the above work:


This word is “han”, with a falling tone. It means writing brush, or writing, in a literary sense. I think it’s a clever play on words – “hanlin” (writing brush forest) was the name of the Imperial Academy of Scholars in “Ancient” China. So you have a sense of being a part of this great literary tradition, in Chinese. What a great concept for this program. Now all we need is a few ants to help teach us Chinese and we’ll be golden 😉

Needless to say the reference fits well with the name of the program, “Kongzi” (Confucious). Oh and speaking of Confucious, here’s another sample of the Calligraphy:

Kongzi Beta-4 About Box

I plan to add more to the program before release. But hey, isn’t it beautiful? I think so.

Would you like custom calligraphy done? I can have it arranged. Send me a comment on this blog, or an email. Good luck and thanks for stopping by!

Kongzi Beta News

So much work has gone into Kongzi Beta-3 I almost want to call it Beta-4. But I’ve decided to hold off just a little while longer until the Memory Game is done. Yeah, Memory Game. I don’t know a single program which has that capability – Kongzi might be the first. Check out the new Mix ‘n Match Quiz type i’ve designed. It’s similar to one of Stackz’ features:

Kongzi Beta-3 Quiz MenuKongzi Beta-3 Mix ‘n Match Quiz

Pretty cool huh? Yeah I thought so too. It’s drawn attention to the fact that I need to let the user configure his own fonts; especially because CERG Chinese/Bitstream Cyberbit don’t appear to support Japanese characters; that’s inexcusable for a program purporting to support any language natively. So that will be added in Beta-4, and Beta-4 will begin right after I finish the memory game (which is about 25% done).

Kongzi Beta-3 Flashcard Quiz

I’ve also done a lot of work on the new “Flashcard Quiz” system – which is very similar to how Stackz or Anki does quizzing. It starts by presenting a character, and you can select if you either know it or not. Or you can press space to reveal more information like phonetic or definition. I’ve allowed you to use the mouse or keyboard here – left click = known, right click = unknown. Middle button reveal information. It’s fun and fast for breaking in a new dictionary; props to Louise Brenner for convincing me to do this. I still have to take another look at Anki though. Although it’s rather limited in some ways and crashes a lot, it looks amazing and seems very user friendly – far more so than even Stackz, which is a commercial program. That being said once I got to learn Stackz it was just as fun and fast as Anki or any other program.

Also in Beta-4 I’m thinking of adding internationalization support. This would be important because the program can also be used to study English using the reverse quiz option:

Kongzi Beta-3 Configure Quiz 2

Reverse quiz is explained fully in the user manual (I haven’t uploaded the latest version yet, however). For the uninitiated, it means that if the quiz is, say, a definition based quiz, instead of the (hanzi or hiragana or whatever) appearing as the question, it will appear as the answer; and the definition will be used as the question. How cool is that?

This will allow me to beta test the program in some of the local cram schools. This feels like it could be very powerful for me; where I work there are some computers and the kids are encouraged to play English “learning” games on them like spelling games, whatever. Hell I might even get my first sales locally (I was imagining getting them on the internet). So yeah localization support is inevitable in Beta-4, I would think.

But when am I gonna let you guys taste the rainbow? I honestly don’t know. I don’t want to release a product with sucks because I’m going to be charging money for this, and first impressions count alot in this market. It’s definately almost ready though. It’s fun to use! And I feel much more secure releasing it now that I’ve removed all that netbeans actionmap garbage – it shrinks, obfuscates and optimizes quite nicely now.

I am considering making some UI changes too, like making the dialogs internal to a frame and maximizing the frame. The UI seems a little weird in that the main window never changes. Why is it there? To hold a jmenu? Hmm, a little redesign might go a long way in that department. Windows users aren’t used to this style; I think they would expect a full-screen application like msword or something, even if it didn’t have a lot of features. Maybe I will redesign it graphically similar to glGo or CGoban 2/3. Those kind of graphic menus are interesting and can look very professional.

Ehh well i’ll keep posting updates – and please do contact me if you want to beta test this software. These kongzi pages get a lot of hits (many times what my old tai chi blog would get) but far fewer comments (than the tai chi blog). I guess that’s the nature of this market.