Recent Work on Typica

Lately my coding work has been split between work on the Typica 2.0 code base and work on the current code base. There's nothing very interesting that I care to write about on the 2.0 side other than that work is progressing, but I have been doing some interesting things that will end up in 1.7.1 or 1.8.

Since before Typica could connect to a database, it had an interface for manually entering roasting data and being able to save that data to a file that you could then load as a roasting plan. It wasn't a feature that I expected anybody to use since if you needed that as a roasting plan it would always be easier to just roast a batch of coffee to that plan and save that data instead. Since nobody was using this feature, as Typica gained new features, this manual roasting data entry interface was never updated and at some point it broke completely. With nobody using it, it took a long time for anybody to notice that this was broken.

Yet as Typica gained new features, it really started to make more sense to have a manual entry option, so I've been working on eliminating the old manual roasting data entry interface entirely and creating a new interface that makes sense in the context of the features Typica has now.

The big reason for this is sample roasting. There's a sample roasting interface in Typica already, but it expects that there's data acquisition hardware connected to the sample roaster. That works for a lot of modern sample roasters, but there are also a lot of designs where even if you could hook up hardware that Typica can communicate with, the value of the measurement data would be so little that it just doesn't make sense to spend the money on the hardware or use the storage space on that data.

This can also be handy for hardware failure recovery. For example, if you have the database on a computer separate from the one at the roaster and the computer at the roaster breaks, maybe you don't have time to fix that before you need to roast more coffee. You could go to the computer with the database, print off roasting plans for your batches, and just write down your batch details until you can get a computer back up and running at the roaster. You can then copy the batch data back into Typica. You probably won't want to enter temperature measurements for each batch roasted that way (though you could), but you could still take advantage of inventory tracking and other features with only a little less convenience than you'd have with a working computer hooked up to the roaster.

The other thing that's going into this is some preliminary work on CSV import. CSV is a popular export option since it's easy to write, but it's terrible to work with on the import side since people who write other applications can decide to output whatever they want and there's no good general way to assign meaning to the data when it's read in. Fortunately, I have a particularly nasty example to start with where it's desirable to throw out certain lines based on the value of one of the fields, where temperature data needs to go through unit conversion, where certain fields should be ignored, and where some columns should be interpreted as unitless data. I expect most uses would be far simpler, but since Typica has a full featured scripting environment built in that can easily be used to filter that input, my plan is to take advantage of that. Once I'm satisfied with the design I'll likely ask people to start sending CSV exports from other applications so I can build out a nice set of filters that people can use or customize so that their most common uses of the feature are easy to use.

This should make it easier for people who are considering switching to Typica to evaluate some of the functionality before investing in data acquisition hardware for their roasters. It should make it easier for people who are using other programs to switch to Typica. It could help companies new to Typica get realistic reports more quickly if they're willing to do a little extra data entry. It should also make it easier for people who would prefer or are forced to use something else for data acquisition at the roaster to still have the ability to take advantage of other features that Typica provides that might not be present in the other program they're using.

I'd like to end this post by mentioning that two companies have sent money ($150 between the two of them) in support of Typica development this month. While Typica is free, it is not without cost to develop and make available, so these contributions are very helpful in keeping Typica available and if more people did this it would also make it easier to continue developing new features. There's a lot of cool stuff in progress for future releases that I'd like to finish and release as soon as I can (I also want to start using it) so if your company has been using Typica and would like to help support ongoing development efforts, please consider sending money, either by check to:

Neal Wilson
c/o Wilson's Coffee & Tea
3306 Washington Ave.
Racine, WI 53405

Those who have provided support for Typica development, thank you.