Blog
Information on JSQ, LLC's projects and products including DianHua Dictionary for iOS
DianHua Dictionary 4.0.6 Will Not Slow Down Your iOS Device
It’s been several months since Apple introduced a curiously worded app compatibility warning to end-users, and I’ve several questions from concerned users about DianHua Dictionary’s future. I’m pleased to announce that both DianHua Dictionary (Free) and DianHua Audio Dictionary are through review and ready to be released.
If you haven’t seen the announcements on Twitter, DianHua 4.0.6 will NOT have any new features or bug fixes. It is simply a compatibility release to remove DianHua from the iOS chopping block. Once it’s past this hurdle, we’ll see about taking care of some of the bugs and getting back to the work of introducing new features to help you with your Chinese studies.
As part of this release, DianHua is being updated to require iOS 8.0 at a minimum, and it has only been actively tested on iOS 10.3. For those of you with older devices, please continue to use 4.0.5 as long as needed but note that as new features are introduced, you will likely miss out.
An Updated JSQLLC.com
JSQLLC.com has been needing a facelift on the front-end and a platform change on the backend for quite some time. Due to security issues with the CMS I was using previously, I had left the site isolated, read-only on its own server. Now that the site is on WordPress, I’m sure it will be perfectly safe…where’s the sarcasm button on this keyboard????
Anyway, there really isn’t much to report on any pending projects. If you want to keep up with DianHua Dictionary or SubdueTheSloth, point your blog reader to our feed here or follow the appropriate accounts on Twitter.
A Bumpy Start — Addressing A Misconception
Having had some time to look through App Store reviews today, it’s obvious I have some upset users. Unfortunately, the upgrade bug DianHua’s existing users have run into is affecting their experience in DianHua v4.0. New users are not seeing these problems because they didn’t have any data to upgrade, and a lot of existing users have not seen them because their data did not trigger the bug.
The misconception I’m seeing in the reviews is that a DianHuaDictionary.com account is required. Much like many of DianHua’s users, I don’t like apps forcing me to create accounts where one isn’t needed or wanted. That’s why DianHua was designed to work perfectly well without one. What is supposed to happen is that you touch Not Now at the Login screen, and DianHua never asks you to login again. Instead, the system is crashing while upgrading your existing data, and it’s starting over with the Login prompt because your choice was not recorded properly due to the crash.
On Saturday, July 20th, I submitted a fix for the upgrade bug and another issue upgrading users were experiencing with crashes. It is still in the review process but will hopefully be out soon.
Preparing for the Release of DianHua Dictionary 4.0.0
Before I talk about releasing DHD 4.0.0, I would be remiss not to thank the excellent work done by DHD’s beta testers. Their persistence and detailed problems reports have helped make DHD 4.0.0 a much better tool than it would have been without their efforts. This is by far the best group I’ve ever had for any project in my career.
DHD 4.0.0 is going to bring a lot of great new features and a variety of bug fixes. One of the most significant changes is the Sync system as discussed in previous posts on this blog. Due to limited time and resources, however, you must upgrade if you want to continue using the sync function. Shortly before 4.0.0 is released on the App Store, Sync will begin producing error messages on any version other than 4.0.0. There is no cost in upgrading, though, so I hope everyone will move forward with me.
The other major change is iOS version support. iOS 5.0 is now the minimum version required, but the vast majority of testing took place on iOS 6.x. Also, though I’ve done some work on it, iOS 7 beta users may not find the 4.0.0 experience ideal. That said, it is at least functional on iOS 7.
The server migration to prepare for the 4.0.0 release will take place July 17th starting around 5:30 PM CST. I know this is an odd time, but DianHua is a global product, and the conversion process will take a few hours so there is no ideal time. The cut over to the new server will hopefully take place around 9:00 PM CST. During the server migration, you will see error messages if you attempt to sync. You can monitor our progress on Google+, Facebook, or Twitter. As soon as the process is complete, I will release v4.0.0 on iTunes, but based on past experience, I believe there will be some delay as it rolls out to all of the App Stores around the world.
If you have any questions or concerns about these changes, please feel free to contact me through the comments below or on the new support site.
BETA Testers Needed
What? You’re laughing. I’m serious about this. I know it’s nearly April Fool’s Day, but it really is time for a limited public BETA test of DianHua Dictionary 4.0 and DianHua Audio Dictionary 4.0. Still don’t believe me? Alright, what about a screenshot from the iPad?
Not enough? That’s unfortunate because you’ll be missing out on:
- A brand new iPad interface
- A new spaced repetition study algorithm
- Automatic or manual sync to DianHuaDictionary.com with improved speed and reliability
- Upgraded CC-CEDICT with over 100,000 entries
- Over 1,500 stroke order animations (maybe only 1,400 by the time I check all of them)
- Customized word list entries (aren’t we all tired of obscure English definitions confusing us during flashcard studying?)
- That last one? You can use it to study sentences.
- Improved English search algorithm
- iPhone 5 support
- Retina display support
The crazy thing is this 2 years in the making version isn’t even out, and I can’t wait to get started on the next one. Until then, I would appreciate any additional eyes I can get on the upcoming release.
Two Steps Forward, Two Steps Back
The Sync system in DianHua Dictionary works reasonably well albeit with some performance issues and a couple of minor, fairly rare bugs. The problem with it is that I didn’t plan well for the inevitable…new features. There just is no easy upgrade path. As a result, I have been looking at a variety of options to replace it for quite some time.
One option I found in my research was a very young mobile implementation of CouchDB for iOS called Couchbase Mobile. CouchDB is a NoSQL database best known for its multi-master replication capabilities. After deciding to pursue a proof of concept implementation several weeks after I found it, I discovered that Couchbase Mobile had disappeared (sort of) and something called TouchDB popped up in its place. With a little more research and some code reading, I pressed forward with a TouchDB iOS and CouchDB server architecture.
The end result was pretty spectacular. An upgrade and full sync of my bookmarks took only a couple of minutes, and changes could sync in a matter of seconds depending on network speed. I was so happy with the results that I moved the proof of concept into my mainline development and pressed forward with other new features.
Unfortunately, the honeymoon has ended. Some of the data design decisions that were forced by sync performance issues caught up with me when I tried to implement new features. To make those new features work, I would have to unwind the CouchDB sync implementation to the point that it would take 20 minutes to perform an initial sync on my own data. Compounding the challenges, the TouchDB developers have moved into work on another product called Syncpoint which aims to help developers with exactly the kind of use-case DianHua requires, but the prospect of a stable implementation is looking like it is still several months away.
So after further reflection, I’m digging in and rolling my own Sync again. This time around, I’m approaching it much differently and keeping an eye on future upgrades in the process.
At this point, you may be thinking…iCloud? And yes, I keep thinking that as well. I could roll out an iCloud version of DianHua very quickly, but it would mean iOS 5.x only and no integration with DianHuaDictionary.com (without jumping through some hoops). Admittedly, there is less need for DianHuaDictionary.com now than there was 2 years ago when I first developed it, but there are several users (myself included) who use the site to build their bookmarks faster than searching each item on the device. There are also features in our todo list that are easier to implement and more user-friendly if the data is available on DianHuaDictionary.com.
So like the title said, two steps forward, two steps back. iCloud remains tempting, but I’m rolling my own for now.
How About Some Character Animations?
Over the past few years, I’ve had many users ask about character animations. Being that it’s a labor intensive process to produce character animations, I’ve been hesitant to go down the path, and some of the companies with licensable content have been hesitant to go down it with me. I did, however, have a user point me toward the Zhongwen Development Tool (ZDT). He actually went so far as to talk to ZDT’s developer about whether or not I could include ZDT’s character animations in DianHua.
With the Skritter iOS App in beta, I know this is odd timing. It looks like Skritter has done a great job with their app, and I highly recommend them if you are serious about learning character handwriting. There are also some other really nice character animation and practice applications on the App Store if for some reason Skritter isn’t to your liking.
That being said, I know as an active DianHua user myself that there are times it would be convenient to see the stroke order for a character within the app instead of having to find it elsewhere. ZDT only included about 1,500 characters, but they are many of the more common characters so I’m hopeful their availability will be helpful in your studies.
Still Alive and Kicking
The calendar says 2012, doesn’t it? I’ve done everything I can to pretend I didn’t make it through 2011 without a single DianHua Dictionary update, but it’s time to face the music. It happened, and given that this is a one man show, I guess all of the finger pointing comes right back around to me.
Are there excuses? Certainly, there are excuses, but they’re boring, nerdy excuses. The unfortunate truth is I have a day-job. Maybe if I had more business acumen, I would have better understood the opportunity for DianHua in 2008. Maybe I would have committed more time and resources at advancing the product. Unfortunately, I didn’t understand the opportunity, and I remained loyal to a job that sometimes requires a lot of overtime, albeit with an extra helping of flexibility and freedom.
Though I still continue with my day-job (there’s not gold in them there iOS hills for most of us), New Year’s Eve marks the turning point in my schedule. My massive, forced migration from Slicehost (now Rackspace) to Linode is complete. The majority of those night and weekend hours I normally use for DianHua were burned on planning and executing the move of 20+ VPS servers. At 10:30 PM CST New Year’s Eve, the last server, a particularly challenging mail server, finally made its Internet trip from St. Louis to Dallas, and closed the book on a set of tasks I’d rather forget.
Since then, the flood gates have opened. Work is progressing, and the long discussed features are taking shape. There’s even talk of bringing in some help to speed the process along.
That said, I’m done giving promises on release dates. All I can tell you is DianHua is still alive and kicking.
Sync Challenges Fixed
During the server move, I found the underlying cause of the sync performance issues. You should now see a delay as the sync from your device prepares and transmits data. At the point of actually syncing at the server, it should only take a few seconds to complete.
If you are still having trouble with Sync, please contact me again to let me know.
Sync Challenges
I have been getting more and more reports of sync challenges from DianHua users. Most of them appear to be data that syncs correctly if I do so manually from the server so I believe we’re dealing with performance and/or network problems.
Before I make any significant changes to the existing system to try to combat the problem, I am going to move the site to a new VPS provider. I started moving other systems to the new provider last week, and so far, performance is remarkably better so hopefully that will cure the problems in and of itself.
Thanks for your patience as I work through the challenges.