I’ve have a little time between gigs to put a some focus on my web site in the last few of weeks. One of the things I tend to do normally is to spawn a lot of small projects to learn or build something I’m interested in. This comes naturally and, almost regardless of other commitments, I usually find time to code something that keeps me engaged. This lets me ramp up quickly on a technology I might not already know or prefect my understanding on technologies I do.
I’ve been working heavily with TypeScript over the last couple of years on the client side and spent a lot of time in the last year investing in ramping up my React skills in parallel. If you’re not familiar with React, you owe it to yourself to check it out. It’s a very reasonable response to a key problem that plagues MVC (and all of it’s variations). As applications grow, models and components in MVC tend to start to cross-link and because they are usually based heavily on observers, it becomes impossible to track all the triggers for change and their execution order, leading to difficult to diagnose concurrency problems that don’t appear as readily in React because it enforces patterns that stop it from happening.
A Collection of Projects
For those who don’t know me, I’ve written a lot in the past, primarily in the Java and XML domains, for the Java Developer’s Journal, and later for Fawcette publications like Java Pro Magazine, XML Magazine and Enterprise Magazine, as well as online for IBM on DeveloperWorks. I haven’t found the time to resume any of those activities, which I was able to focus on much more when I was primarily playing management roles. It was a way to ensure my programming skills were still being exercised. Since them, I’ve taken more hands-on roles.
Tools, Frameworks and Libraries
I’m hesitant to put an outline together since it may be subject to change and intent doesn’t always align with either the ability to or the timely delivery of what may sound like promises. But I do need to do some planning, so I’ll just update this post as the plan evolves. Here’s a list of obvious information that needs to be written up, based on my existing projects:
- Up and Running with TypeScript and VSCode
- Bits and Bytes (as set of bit manipulation utilities)
- Making Noise (Random, Perlin and other noise utility code)
- Flexible Interpolation (a comprehensive tween collection)
- Your Favorite Colors (RGB, HSV, HSB, Conversions code)
- Canvas Geometry (a set of HTML5 Canvas rendering objects)
- Image Kernels (a collection of image-convolution code)
- Higher Dimensions (Scalar, Vector, Matrix and Tensor code)
- Neural Networks (includes deep-learning code)
- Up and running with React and web Packaging
- Boots on the Web (React wrappers for Bootstrap)