New version of Steam Engine in the works

As you may have noticed, there has not been much in the way of updates and new features in Steam Engine lately. To be honest, I was getting a little bit burned out on the project for a while. It didn’t help that the code was getting kind of big and unwieldy, and so the fear of breaking something gradually grew larger than the desire to make something new.

I didn’t want to declare it abandonware quite yet, though. The software does have some potential, and there is still a need for it.

So I have decided it’s time for some major refactoring of the code, and I have also decided that the work will begin … about a month ago.

I started splitting the code up into more and smaller chunks, in an attempt to make it easier to navigate. I ported the messy old Javascript code to shiny new Typescript, which lends itself well to reusability, as well as plain old tidiness. I replaced massive string literals and excessive amounts of DOM references with Handlebars templates.

Functions within functions, objects being passed around like a relay race baton between huge blocks of labyrinthine spaghetti code, pages of code that could not fit on any monitor known to man. This has been replaced with more managable modules, self-explanatory classes, and all that is orderly and good.

I’m still far from done cleaning everything up, but I’ve already added some measure of weight to the e-liquid calculator (to be made public soon-ish).

The gauge converter calculator “plugin” that you may or may not know from the trusty old coil calculator has been converted to a stand-alone tool able to do double duty as the old “plugin” that it once was. It also does a couple of things better than before. For instance, it can now convert inches and millimeters into exact decimal AWG numbers.

So what’s the gain for the user? Right now, very little. Only a few minor improvements here and there, that I threw in because I could. But in the future I see a much easier path to improvements than before.

The battery calculator could do well with support for serial battery configurations, for instance.

The Mod Range calculator could use some love to make it more intuitive to use, and maybe allow for entering custom vaules.

The development of the Wire Wizard ground to a halt while the tool was is still pretty fresh, because of its complexity, and its demand for an object oriented approach that doesn’t come naturally to me with regular Javascript.

Saving the most difficult part for last, I just finished refactoring the Wire Wizard literally minutes ago. It works (again), and the path is now clear(er) to begin sorting everything into managable autonomous classes that will open new doors for the development.

I have some interesting ideas about what might be possible, and I was actually contacted earlier today by a gentleman who had some very good and concrete ideas (he even provided equations) for making coil calculations even easier than before, but lest I create expectations that I cannot fulfill, I don’t want to go into all the details right now.

I hope I don't look as tired as I feel right now.
I hope I don’t look as tired as I feel right now.

Now I’m shot. Believe it or not, pecking away at a computer keyboard for hours on end, day after day, is actually sort of hard work. I find that especially true those times when I’m also forced to think. Anyway,..

Expect a beta version to be uploaded within a few days. Just keep in mind that it won’t be all that much to jump up and down about right now, unless you’ve got a very keen eye for details, or if your idea of enjoyable bedtime reading material includes minified script code.

That’s it for now. Time to set the brain in stand by mode, and prepare for a good night’s sleep.

Update: beta is live. You can visit it here.

2 responses to “New version of Steam Engine in the works”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.