New project: Vocabulist

September 1, 2013 — Leave a comment

For me one of the major headaches of Mac OS X and iOS development was project localization. The manual process is tedious and error-prone and tools I tried, both free and commercial, did not satisfy me. They either lacked some features I needed or were awkward and sluggish.

The workflow I employ is very simple: get new strings, get them translated, regenerate localized files, check if everything works. How hard would it be to automate something like this? Shouldn’t be that hard. That’s what I thought starting Vocabulist project. As always I let the fractal nature of software development get the better of me: each subtask contained a bunch of smaller subtask and so forth. And all of them required time and efforts. So it wasn’t one week as I cheerfully estimated in the beginning. It wasn’t even two weeks. But by cutting some features from original requirement I managed to finish it in reasonable amount of time.

So let me introduce to to you: Vocabulist, localization tool for Xcode projects. It does exactly what I described above. First you import Xcode project. Result will look like this:

Vocabulist UI

To the left is project structure and language selector. In the middle – list of strings in base language. To the right is translation area: string’s key, original text and current translation. Not yet translated strings are highlighted red. You just go through them, enter translation and export the localized version of the file when finished. As simple as that.

You can download demo version and try it. The only limitation is number of localizations imported from Xcode: two (one base localization and one translation). Otherwise functionality of demo is the same as the one of full version. You can buy license for $19 to get full version. Vocabulist wasn’t published in Mac AppStore due to sandboxing limitations. They’re real PITA to conform to for an application that extensively works with files used by other applications. The binary is signed with my developer’s account though and automatic updates are available thanks to wonderful Sparkle Framework.

Audiobook Binder 1.17

August 30, 2013 — Leave a comment


It’s been been quite a delay with 1.17 but yesterday I finally submitted it to AppStore for approval. The main reason for it is the fix for “Cant create output file” bug. I had to change a little bit of UI to fix it but nothing major.

Also 1.17 adds support for notification center, e.g. when Audiobook Binder finishes conversion and the application is not active – it will notify you just like notifies about new mail.

And one more minor fix: if you add .aiff or .wav audio files, or mp3 with empty track name the actual file name will be displayed in file list instead of blank space.

So far that’s it. I crossed my fingers and wait for approval.

AppStore version of the application fails to generate multi-volume audiobooks. I’m working on a fix and hope to release update soon (along with some other improvements) might take some time to go through AppStore approval process. non-AppStore version does not have this bug.

Audiobook Binder 1.16

May 10, 2013 — 7 Comments

Audiobook Binder 1.16 was released yesterday.
List of changes:

  • Added ability to reset audiobook project
  • Fixed bug with bitrate on OS X 10.8
  • Create new chapter for each added file
  • Use meta data from MP3 files for naming chapters (if available) instead of standard “Chapter” text
  • Minor bugfixes

Project has been dormant for almost two years now and this release is just a summary of feature requests received over this period. There might be more bugfix/maintenance releases if future Mac OS X releases will break something. But feature-wise this version (or even previous one) is pretty much what I had in mind when I started developing ABB. The only other thing I’d really like to add is multi-threaded audio encoding but without switching to completely different audio API it’s not possible. And who’s in that kind of hurry for audiobook anyway? :)

Last month I’ve been on and off OS X development, tidying up loose ends and cleaning stuff up. Here is short summary of my activity:

  • MLSwitcher has been updated to 2.0 and then to 2.1 getting additional functions and numerous localizations along the path.
  • Fb2Epub application has been released. It’s just like my web service, but with batch mode, faster and does not require internet connection.
  • Audiobook Binder turns 1.16. More on it in next post.

I’m planning on taking sabbatical for couple of months and share my time between wearing FreeBSD kernel hacker hat and the career of aspiring indie developer.
Part of the plan is to get rid of dead projects, start new and clean-up the ones that are still used by people.

Namely “KnockOnD is still gets several downloads a day with occasional spikes I can’t explain. It was my first project for iPhone, second or third Obj-C project so there’s quite a few dumb mistakes in code of which I am ashamed and never came around to fix.

xcs, ruby script for controlling Xcode projects from command line gathered some user base as well. The problem is it works for Xcode3 but Xcode3 is practically a fossil by IT time scale and some of applescript actions are still missing in Xcode4. So I decided to drop apple script, rewrite it in Objective C and work with .pbxproj directly. File format is simple enough so I’m fairly sure this approach will work. The project was named after its predecessor: xcs-objc.

Audiobook Binder will get its own blog post and the rest of the projects were either jokes or simple weekend-projects nobody cares of any more. Including myself. Their place is in the attic and that’s exactly where they’ll be put as a part of proverbial spring cleaning.

Blog facelift

April 29, 2013 — Leave a comment

I decided to give this blog a face up as part of spring cleaning and switched from TextPattern to WordPress. The overall import went well but since comments were managed by Disqus – they didn’t make it to brave new world :(

Old permalinks should be functional

I’ve just uploaded ChapterX sources to github:
Happy hacking!

My new pet project: ChapterX. About a month ago I got email. Author was asking how much effort would it take to code Chapter Tool replacement. My estimates were “one day or so” and since this idea crossed my mind before I decided to start. Turned out – my estimates were overly optimistic (aren’t they always that way?). In one day I coded chapters support and then hit a roadblock: artwork and links. It took couple more days toying with libmp4v2 to get artwork working. So far that’s it. Chapters and artwork, links are still to be implemented. Although all the plumbing is there, in the file – my ipod touch just refuses to show any links. But I hope it’s something I will figure out later.

And now latest version of ChapterX available for download: ChapterX 0.3.

It seems that Audio Converter Services in OS X 10.7 has nasty bug: internal state got corrupted if application sets bitrate frequently. Even if bitrate value is the same.

Technical details aside – 1.15 is out and it contains workaround for this bug. Audiobook Binder should not crash now on Lion. New version is available via autoupdate. For those who use App Store build: review will take some time (as always) so I apologize for the inconvenience.

Audiobook Binder seems to have some problems running on Lion. If you spotted a crash or any unusual behavior – let me know, drop a line at