Back to basics

Having spent over six years in software development, I noticed a slight decline in my foundational coding skills acquired during my university years.

Upon reviewing my main GitHub account, I found around 50 repositories, most of them private, and nearly all in rough draft form.

To try and fix both of these problems, I started working on a Glyphs 3 plugin streamlining the process of crafting the “Fraktur” font, ThorTypeFilter. This blackletter font, inspired by the Sapperlot colorfont, incorporates decorative effects that can for the most part be automated.

However, the project faced significant scope creep due to the complexity of the filter, requiring numerous intricate steps.

In my experience with writing plugins for Glyphs 3, I’ve found that the API is well-documented considering the constraints. It seems the application is written by just one or two developers, with a handful of external developers contributing valuable scripts. However, when it comes to advanced functionality, a fair amount of reverse engineering is usually required.

Drawing from my experience with reflection in Java, I found that key methods in Python, such as “dir” and “inspect,” proved invaluable for navigating the Glyphs 3 API. For example:

dir(classInstance.__class__)

This approach, similar to the Java getClass-method, reveals essential methods not apparent when calling dir on the object instance alone.

While the inspect method provides a list of arguments, determining their types remains a challenge. Cross-referencing method names with C-style header-files in the Glyphs 3 framework directory might give me the information I need for a full method signature.

In an effort to complete a project, I shifted my focus to developing an AdvancedHatch plugin for Glyphs. This involves enhancing the existing HatchOutline filter with additional features.

With any luck, I anticipate having something ready for release by the end of the month.