Typica: Software for Coffee Roasting Operations

Freedom From PowerPoint

From the perspective of an American instructor, one of the big changes to come out of the creation of the Specialty Coffee Association is that instructors are now responsible for putting together their own presentations.

The way this worked under the Specialty Coffee Association of America is that a class would be developed, and part of that is a set of documents detailing the objectives for the class, the lesson plan, handouts, exercises, and a presentation. Over the years after that class is introduced, expert instructors take the feedback, new developments in the field, observations about what isn’t working well, ideas about how to improve the class, and update those materials, but the idea here is that a qualified instructor who was not involved in developing the class can pick up those materials, study what’s there, and present the class. This is a model that I think worked very well. The people developing these classes run from people like me who have a relatively small roasting business but enough freedom to dig deep into certain areas as well as people who do highly specialized work in giant corporations, and others who can all bring valuable perspectives to course development.

Under this sort of collaborative model where lots of people will potentially be teaching and updating the same class and where these people don’t work for the same company, it makes a lot of sense for that presentation to be done in PowerPoint. There are lots of valid reasons to hate on PowerPoint, but this is a use case where it likely is the best option.

As you may have guessed, I’m not a fan of PowerPoint. I don’t like futzing with rectangles on a screen with weird snapping rules and it’s too easy to create presentations that look great on one computer but are horrendously broken on a different one. At least it’s usually possible to fix things up, and I don’t think it’s unreasonable to expect an instructor to go through a presentation before delivering a class to tweak things as needed, though I also know that this doesn’t always happen. Personally, I prefer to work with text. I would much rather be able to type a description of what I want on my slides and where. In some presentations that I’ve done in the past that’s meant using a TeX variant to create a beautifully typeset PDF that I can just make full screen. Of course, that means you don’t get presenter mode, but an instructor should know the material and not really need that. It’s not a good crutch to rely on anyway. I’ve taught at venues where the computer running the presentation is tucked off in a cubicle and at others where the presenter notes had been helpfully translated into Portuguese (my Portuguese is not that good). I also like to be able to walk around. The down side of using TeX for this is that you can't really hand this off to someone else who might need to edit it. Most people aren't interested in learning how to use what is effectively decades old software.

If you’ve seen some of my more recent coffee roasting videos, there are portions of these that I’ve instead built in a combination of QML and C++, recording the screen and editing that into the video. This lets me do things like bring in real roasting data and manipulate that in informative ways that might make specific points easier to understand. Here again I can type what I want and it's also relatively easy to extend the set of objects that I can work with to better fit the specialized needs for a presentation about coffee roasting. That works nicely.

Now I'm working on developing a new class on roast level exploration and profile design. It's an opportunity to expand on the profile roasting class that I developed for the Roasters Guild several years ago, incorporating new insights, new techniques, and going into more depth on topics that are often misunderstood. Since this isn't a class that needs to be developed in a way that others can take the materials and deliver it, I once again have the freedom to not use PowerPoint. As I was looking through the set of visuals I wanted to be able to present to help explain things, it became clear that some things are a lot easier to explain with an animation that I might want to be able to step forwards or backwards through, in some cases I might want to be able to incorporate interactive elements to rapidly adapt the presentation to specific questions that might come up (perhaps anticipating some of these and having preset parameters ready to go), and having the ability to quickly adjust or annotate graphics based on data. Once again, a QML/C++ hybrid approach seems like a really good fit.

Several people have already done QML based presentation software. Unfortunately, this isn't a great candidate for reuse. Many of these have been kept as in house developments, but it turns out that the code to drive a QML based presentation is incredibly trivial. Odds are it takes less time to write the code yourself than it does to learn the design decisions that someone else made, especially if you want to expand the capabilities or substantially alter the presentation template. For the current presentation, it only took a couple evenings to put together something that I'd be able to start from, and most of that time was spent considering different options and making basic design decisions.

While there are some other conveniences built around it, it's basically just two Loader elements. One of these pulls in a QML file that has a ListModel as the root element. For each slide in the presentation, there's a ListElement with a single attribute specifying the QML file describing that slide. The other Loader displays the desired slide and that also gets mirrored over to an external display when running the presentation. Within each slide it's possible to use the full range of capabilities offered by QML including any extensions that I build into the program.

This also makes it easy to have multiple versions of the presentation. In this case I'm developing a four hour class with hands on roasting and tasting, but I could also condense the material to a two hour class with just tasting, expand it out into a multi-day intensive workshop, or break it down into a set of lectures. For each of these I'd just need a different file with the ListModel and add or remove lines from that as needed to deliver the slides that I want. This approach also makes it easy to edit slides in a text editor and quickly reload those to see how those changes look.

If this goes well, I'll probably also build my version of the presentations for the new SCA curriculum in the same way.

In mostly unrelated news, today I received a coffee grinder from someone who enjoyed my videos on YouTube. They're hoping that I'll love the grinder and do a review of it on my channel. I let them know up front that I'm not sure how well that fits with the rest of my channel and that I'm currently taking a break from new video production while I work on other projects. I haven't had a chance to try using it yet, but it seems to be a good size to pop in a travel kit. If you buy one through this link, I might get a commission that helps me keep this site up and running.