Fabric.js, YAML Pipeline & Model Category
I recently posted about the TypeScript changes, but a lot more has happened over the last month. I wasn’t really able to post a full summary until today, so here’s a major recap.
First off, I implemented a new drawing functionality with Fabric.js. This allows users to draw on the screen when Caps is pressed or when the Presentation Mode is accessed. Holding Alt+Shift draws rectangles, while the Mouse Wheel changes the color.
Typescript: Partial Migration, Book & Exam
For years, I worked exclusively with vanilla JavaScript—no React, no Vue, no Angular. I know about all of these frameworks, but I never had the opportunity to work with them. Angular, in particular, has bugged me because it has recently become the bread and butter of frontend development for full-stack developers. Angular is heavily dependent on TypeScript, so what better use of my free time and vacation than to dive into that?
AI Refactoring for larger files
I had some really ugly code in description.js that had grown tremendously in size over 2years. As context: description.js is the centerpiece for displaying any sort of visual description, including resizing, badges, icons, etc. It handles 95% of the interaction with the .json data files.
As of last week, description.js had reached the atrocious size of around 2800 lines of code - which is extremely bad, to put it mildly. It’s also the biggest single file in the project aside from the third-party libraries.
New: Visual Scope Identifier
Yesterday, I added visual identifiers to better identify the currently selected Scope:
One continuous line for the Local Scope… …and a point-based circle for the Global Scope: Both markers resize and adjust position according to the base vortex movements - so it looks like one homogeneous part. I thought this would be a handy and useful visual clue.
After implementing that, I also redesigned the former Perspective icons that are now labeled as Scope:
Oscillating Circuit: LC Charging & Discharging
After implementing Low-Pass and High-Pass filter mappings last week on the global and local scope, I took the time to focus more on coils and capacitors.
Because this entire topic is already quite complex, let me explain its importance in simple terms:
Capacitors, Coils, and Resistors are the three main building blocks of electronics. There are about two dozen other components, but these three are fundamental. Together with chips, they account for over 90% of the action on any circuit board.
Release Nearing: Recent Updates
So first off, I can report further success in correctly mapping BPMN 2.0. Previously, I extended it to the Cycle format, but yesterday I managed to identify the Sub-Process and generic task difference. I also managed to replace the XOR-Gateway with the correct AND and OR variants, also called Parallel- and Inclusive gateway.
If you’re a bit into Logic Gates, you know that the actual default Gateway in BPMN, the Exclusive Gateway, is essentially an XOR-Gate.
Recent Updates: 4-Stroke Engine, Economic Bubble
I managed to do quite a chunk of fixes and updates the recent days:
Technically i fixed the alignment of images at Perspective switch while completely horizontal I cleaned up the JSON language files with a custom C# Console Application i built: It calls additionally Azure API’s for translations if needed. I might extend that tool in the future, it was quite useful and saved a lot of manual work. On the end of descriptions there was progress as well:
Recent Updates: Fourier-Transform, Sorting & BPMN
My current job leaves me only limited time to pursue the model but i try to squeeze in the hours where i can:
Recent updates include refining Sorting, which fundamentally offers the two options of Ascending and Descending. However due to Perspective it became clear that it’s not an easy win. I’ve figured that descending sorting aligns with both doing the right thing and doing things right. Beyond that, its utility isn’t obvious as both Center and Periphery have Ascending and Descending assigned dependent on perspective.
Risk: Probability & Impact
Today I figured out the correct way to model the Probability-Impact Matrix that was used to illustrate the Risks Description. Initially, before I “got” perspective, I had only the probability-impact line going in a y=-x function way. I was always rather unhappy with it, even though it -sort of- checked out. But impact and probability were basically fixed on that line and seemed ultimately not completely right.
Once it clicked with me I was able to fix this within minutes.
Eulers Identity: Suspicions
Of course Euler’s Formula and, subsequently, Euler’s Identity are very close to the WTF-Model.
I’ve had suspicions on the whereabouts of the different constants, namely e, i, and π.
Even though it’s perspective dependent, it is pretty clear to me that i, the imaginary unit, is directly in the center. But from the peripheral aka global perspective, as from the local one, i is replaced by the prime numbers.
I stumbled upon e, Euler’s number (2.