Diving Into Web Technologies Again
Digging into an obscure button was fun, but (sadly?) not the main focus of this blog, which is for me to write down notes about my projects and technology explorations. If anyone finds the information useful, that's just icing on the cake.
This time around, getting back to "work" puts focus on software development. My learning experience with the Node-RED Dashboard taught me it was very easy to get a functional browser-based UI up and running giving users like myself a fantastic way to build out ideas. But with ease of use comes the usual trade-off of limited control. The people behind Node-RED Dashboard is aware of this, providing anyone who is unsatisfied with the default tools an entry point to add custom dashboard widgets. Unfortunately, the learning curve climbs sharply upwards for me since I have little experience with many of the underlying technologies. If I want to explore that world, I have to weigh the following points:
- No experience with AngularJS (a.k.a Angular v1) which is the foundation of Node-RED Dashboard.
- No experience with Angular (a.k.a. Angular v2+) which is an incompatible but currently-maintained replacement.
- No experience with creating reusable JavaScript modules or the convention around creating packages.
- Only basic skills with HTML, CSS, and JavaScript.
This list is sorted roughly in the order of most- to least-specific to my original motivation of creating custom Node-RED widgets. With such a list it usually makes the most sense to start at the top (focus on the motivating goal) or start at the bottom (build a solid foundation.)
For the purposes of foundation building, I've tackled a few HTML/CSS/JavaScript projects but nothing that really stuck with me for long term development. An early example was the web based UI for SGVHAK rover, which eventually became my default control scheme for Sawppy rover as well. Updating that UI has been on my to-do list ever since, and I have yet to get back to it. I later explored a different set of web development tools with my LRWave project, but again that had been set aside after v1.0 was complete. Given this track record, I'm not sure retreading the same grounds will give better results.
So what about the other side? Start with AngularJS? I was ready to do so because of Node-RED Dashboard, but most of my motivation evaporated when I learned AngularJS has been abandoned. If I want to learn something that'll be useful beyond Node-RED dashboards, I should learn its successor Angular instead.
But there was also a more vain attraction to Angular that called to me...