Yes, I'm still alive and still working on Asaph. I've had a bit of a rough time adjusting to my job at Amazon and the demands it puts on my schedule. I released Asaph 0.5.5 a few weeks ago, with more progress on the user's guide, and several additional bug fixes. You can download it here.
I'm now working very quickly on finishing the user's guide and getting version 0.9 released, which I hope to do within the next couple of weeks. Asaph 0.9 is a public beta intended to shake out bugs prior to the release of 1.0.
Additionally, after the release of 0.9, I'm going to branch off the development of the next version of Asaph, currently tentatively numbered version 1.1. I'm in the process of scoping 1.1 now. At the moment, it has two primary goals: to design a flexible layout system that can support more sophisticated layouts and output options like booklets and presentations, and to build the presentation plugin (which has been by far the most requested feature.)
Asaph 0.5.4 is now available for download. It includes GUI enhancements and bug fixes towards the upcoming beta version. In addition, some work has been done on the user's guide, but large sections are still incomplete.
Version 0.5.4 is the last planned alpha release. Unless something critical comes up in the meantime, the next release should be the 0.9 beta with a finished user's guide. It's been a long road, and the end is in sight. Asaph has been under design and development for two years now, and I believe it has grown into a strong tool on its own, and more importantly, a strong base on which to build all manner of useful tools. Many thanks to all Asaph's supporters. You've been a tremendous encouragement throughout this process!
Asaph 0.5.4 is on schedule to be released sometime this week. I have some bug fixes, a few minor features, and part of the users guide complete. Thanks for bearing with me for the past couple of months.
I've also gained access to a few additional testing environments lately, including a Windows XP machine and a RedHat Linux box. So for the foreseeable future, I should be able to test better across the three supported platforms. In addition, I've installed the J2SE 5.0 beta on the Linux machine, and I have builds of Asaph 0.5.4 building and running on the new Java version. When Java 5.0 is released, Asaph will be ready.
Yes, the project is still alive. I've been slowly working on the documentation, and collecting bug reports. The program itself seems to be pretty stable overall. At this point, I have the introductory section, installation guide, and most of the updated tutorial written.
Plans for version 0.5.4 are coming into focus. There are several key bugs that need to be fixed, including addressing some of the continued problems with printing on Mac OS X. If you've experienced hangs while attempting to print on Mac OS X, I believe I've narrowed it down to issues with background printing, and so I'll probably have to disable background printing on the Mac platform for the time being. (All that means is that you won't have a nice progress dialog.) Expect 0.5.4 in a week or two. I probably won't have the user's guide completely ready by then, but it will be partially done.
It's been a long time since the last update here, and I apologize for the delay. Here's the current state of affairs. I took about three weeks off from working on Asaph to handle a few things, including finishing up a slew of final papers, moving from Vancouver back down to Seattle, and starting up a new job. I'm now a developer at Amazon.com. This may come as a sudden surprise to those who have been following this log for some time, but it's been the plan for several months now. Basically, I'm low on savings and can't afford to continue school without taking out loans, which I'm loathe to do. So I'm going back to work, with the intention of probably returning to Regent for my second year at some point in the future, but I'm not yet sure when.
What does this mean for Asaph? Not much change I hope. I'll start working on 0.5.4 this week, and I hope have it ready in a few weeks. The intent for 0.5.4 is to be a first "beta" candidate with an initial cut at a user's guide done, along with any further ideas for improvements to the user interface. It's possible it will be the last alpha release before the beta-quality version 0.9.
In other news, Asaph welcomes its second developer, David Fraser. David has been working on a companion tool called "pyasaph", and will be using Asaph's SourceForge project to incubate his subproject. At this point, pyasaph is focused on creating a simple presentation facility that works with Asaph databases, and will probably be the best way to do presentations until Asaph's real presentation plugin is done in version 1.1. You can find more information on pyasaph in the archives of the asaph-developers mailing list.
Asaph 0.5.3 is now available for download. It includes several feature enhancements and bug fixes towards the upcoming beta version, including fixes for the Windows installer, an "open recent" menu, user interface improvements, and improvements to error/bug reporting.
Some problems in the model APIs were brought to my attention, and I've had to make a few incompatible changes to those APIs in 0.5.3, specifically involving StringSongLineMembers and BinaryFields. Apologies to anyone working with the APIs. Email me if you want details prior to the release of 0.5.3. Because of these changes, I'm delaying the release of 0.5.3 a few more days in order to leave some time for regression testing. It will probably be sometime next weekend.
Work on 0.5.3 is progressing slowly but steadily. Its focus is progress towards beta, and that means bug fixes (particularly in the Windows installer) and some modifications to assist with testing and bug reporting (including logging improvements and better reporting of runtime errors). But I've also snuck in a few more commonly-requested features, including an "open recent databases" menu.
I'm not sure when I'll have 0.5.3 ready. The semester is drawing to a close, and that means finals and (ugh) a bunch of papers due. If I were to hazard a guess, I'd say a week and a half to two weeks, but that's a guess. After 0.5.3 is out, 0.5.4 will focus on the user's guide.
The releases are coming fast and furious... Asaph 0.5.2 is now available for download. It includes several feature enhancements towards the upcoming beta version, including printing enhancements, an installer for Windows, integration of Asaph's new logo and icon, and build enhancements, along with several bug fixes.
Thank you and congratulations to David Reimer, who submitted Asaph's new icon and logo design!
Asaph 0.5.1 is now available for download. It includes several bug fixes, including some important fixes for printing, and better error checking for opening indexed databases.
We also have a winner for the logo/icon search. I won't reveal just yet what the logo looks like, or who sent it in, but it will make its appearance in version 0.5.2.
Thanks to a lot of help from a tester, I think I managed to nail down the printing bug that seems to have been plaguing Asaph for some months (Bug ID 844105: "Printing support intermittently broken"). Because of the seriousness of this bug, I'll be releasing the 0.5.1 update soon, probably within a week.
Asaph 0.5 is now available for download. I went ahead and spent most of today after church testing it, and I think it's in good shape.
Asaph 0.5 had a focus on solidifying the internal design of the code. Now that it is released, development focus is going to shift to squashing bugs, writing documentation, and preparing for the 0.9 beta and the 1.0 release. I'll release 0.5.x bug fix versions as needed, but the next major milestone will be the 0.9 beta version, which will include all distribution materials including the user's guide and developer documentation.
At this point, I'm halfway through the semester, and I'm behind in my classes, so barring major bugs in 0.5, I'm going to set Asaph aside for the next few weeks to catch up in school. Seminary is definitely not what I had expected. :-)
Finally, for Mac OS X users, I strongly, strongly recommend upgrading to Java 1.4.2. It's a lot faster, a lot more stable, and (on my setup) printing actually works for the first time. You can get the Java update in your Software Update panel (if you're running 10.3 "Panther").
We're very close on 0.5. I fixed a bunch of bugs and implemented the database format updating. Version 0.5 will also have a little bonus: an experimental plugin I've been working on on the side (in response to some requests) that attempts to import plain text lead sheets. I hope to have 0.5 released in a few days, after some more testing.
A whole bunch of updates towards 0.5 checked in this week, and I managed to slash my to-do list down to just a few items. Implemented forward-delete and by-word navigation (e.g. control-arrow under Windows, or option-arrow under Mac OS X) in the editor. (This necessitated changing some of the hierarchy navigation under Windows from control-arrow to alt-arrow.) Did some final API adjustments to allow plugins to unregister things from the GUI when they're shut down. Finally got through all the APIs and documented the thread-safety behavior. Did a sweep through all the error reporting in the tool and did some further improvements and simplification. Cleaned up some of the long "progress bar" tasks. Finally, I added some songs to the examples, and put placeholders in the users guide and dev guide directories.
Version 0.5 should be out by the end of the month, probably somewhat sooner. In addition to further testing, one major item remains on the to-do list: I need to implement some mechanism to ensure that existing databases get updated to the final XML format. This is necessary because, starting with version 0.9, I'm going to remove all the legacy parser code supporting all the old file formats since version 0.2. All users of older alpha versions (0.2 through 0.4.x) will need to use version 0.5.x to update their old databases, otherwise the beta and the final will not be able to open them.
Finally, I've decided on a final deadline of Febrary 29 for icons and logos. If you haven't yet submitted an icon or logo, you have two weeks left!.
A whole army of API improvements made over the past week. The major one is an expansion of PropertySet and addition of ObjectSet, a similar stripped-down-collections-with-listener interface. These were moved into a new package "lib.container". ObjectSet in particular was introduced to make a lot of the other interfaces cleaner, especially in the plugin APIs. I did some cleanup in the platform APIs, created immutable alternatives to the irritating mutable AWT Dimension and Point, provided facilities for plugins to suppress other plugins (particularly if a newer version is meant to replace an older version), added a facility to detach a song from its database, and a whole host of other minor changes.
As far as user-visible changes, I revived the scroll bars in several places where they were missing for a while (such as field editors, prefs panes and database info windows.) Text field editors also now obey the smart quote setting. I replaced the "copy/paste" songs feature, which looked like it was confusing people in addition to being a hack to implement, with a "copy songs to..." menu command. Finally, fixed several rather obscure GUI bugs.
I still expect 0.5 sometime this month, but the to-do list is still fairly long. We'll have to see. I know the slowness of working out the internal interfaces may be frustrating to people using the prereleases because it doesn't immediately show up as new features. But as the developer, I feel like it's important to make the investment up-front, in order to make development of future capabilities faster, more compatible and less error prone.
In spite of scrambling to catch up with school work, I got a little bit done on Asaph this week. Fixed the memory leak I found last week. Technically, it turned out to be not an actual leak, but just some inefficiency with how memory was being used when copying songs between databases. I also made some more GUI adjustments, and a couple additional API adjustments.
I also removed the developer guide and javadocs from the release distributions, because it was making the distributions quite large. I decided that most people aren't going to be wanting the developer guide anyway, and if you do want it, you can download the source distribution instead.
I posted some up-to-date Windows XP screenshots on the screenshots page.
Because of all the work that was done on 0.4.4 last week, I got terribly behind on my reading for New Testament and for introductory exegesis. So I'm going to slow down work on Asaph for the next week or two to get caught up in my classes. We're therefore probably looking at mid February for 0.5.
In the meantime, I modified the build script to prepare for adding documentation (user's guide and developer's guide) to the distributions. So far the only material being installed in documentation is the javadoc hierarchy, which by itself is actually fairly large, so expect the 0.5 distributions to be significantly larger than the 0.4.x distributions.
Also, I was doing some simple memory profiling the other day, and discovered that there are a few fairly significant memory leaks in Asaph. They probably won't be too troublesome unless you're working with large databases, but rest assured, there are few things I despise more than memory leaks. They will be dealt with swiftly and mercilessly.
Updated the screenshots page with a new shot of the latest version (0.4.4) of the overall program, and special shots of the preferences window and updated search window. These are Mac OS X shots; I'll try to get Windows XP shots in a little bit.
Version 0.4.4 is now available for download. Again, this release has very few user-visible changes, but a number of "under the hood" updates to APIs, as I work on finalizing the APIs and file formats for version 0.5. I also updated the JavaDocs to reflect the current state of the APIs. This is the last interim release before the 0.5 milestone, due out in a few weeks.
I've also created a mailing list for Asaph users. It's an unmoderated general discussion list for questions, tips, bugs/workarounds, announcements, stories or any other discussion around using Asaph. Please come join this list, especially if you are actively using the prereleases, as it will be the primary forum for announcements, feedback, and discussion as Asaph moves into beta. To join the list, fill out the form at http://lists.sourceforge.net/lists/listinfo/asaph-users.
I stress tested the plugin mechanism this week, by building the entire tool as installed (rather than built-in) plugins. The test exposed a few bugs in my classloaders, but otherwise it appeared to work just fine.
I'm currently doing a final pass through all the interfaces, standardizing the javadocs (in particular, documenting threading and re-entrancy requirements) and dealing with any problems that seem to be lingering. I've finished most of the Virtuoso Utilities classes, and will start on the various Asaph plugins once that is finished. Once this process is done I'll release version 0.5. In the meantime, I'm considering releasing an interim version 0.4.4 within a few days, because I've added a few features over the past week. In particular, I did some cleanup in the search gui and added "not" capability to search queries.
I set up a page showing the icon and logo submissions I've received so far. Take a look at the ideas other people have had, and email me your own!
Did some more work on the plugin system. I simplified the dependency mechanism on the assumption that circular plugin dependencies are bad design and that plugins won't need them. (That is, if Plugin 1 exports API A1, and Plugin 2 exports APIs A2 and B2, it is no longer allowable for A1 to depend on A2 and B2 to depend on A1.) Also added support for unplugging plugins, and let plugins explicitly specify their cleanup requirements. The new code is working for Asaph's built-in plugins, but needs to be tested for external plugins.
Also made one more model change: SongBlock now extends FieldContainer, so meta-information can be attached to song blocks. This will, for example, allow blocks to be tagged with a type (such as "chorus" or "bridge"), and let other parts of the code such as rendering or export handle them specially. I also made the XML format a little more flexible with regard to fields, which should improve file sizes slightly.
The main to-do item for 0.5 is the plugin stress test. I'll also need to continue refining the documentation, in particular with relation to thread safety of the various interfaces.
Finally, I also activated SourceForge's donation system for Asaph. Now, I emphasize that Asaph is free and will remain that way. If you use it, you are under no obligation whatsoever to pay for it. However, since I have gotten a few inquiries about supporting Asaph, I set up Asaph's SourceForge project to receive donations using PayPal. Anything received there will support SourceForge (which provides Asaph's web hosting, download servers and developer services), and support me as I work on Asaph and struggle through seminary. :-)
Version 0.4.3 is now available for download. Again, this release has very few user-visible changes, but a number of "under the hood" updates to APIs, as I work on finalizing the APIs and file formats for version 0.5. I also updated the JavaDocs to reflect the current state of the APIs.
There is still a little bit more work remaining on 0.5, mostly involving testing and finalization of the plugin system. I'm going to try to get most of that done during the vacation, because it's looking like next semester at school is going to be quite a bit harder than the last one was.
Back to home page
Last updated on January 02, 2005