A friend asked me what my recent series of posts is trying to communicate, so here is a brief rundown.
When not writing here about my previous experience or reactions to things I’ve seen or read, the goal is to work on a series of projects that accomplish the following ends:
- Illustrate work I’ve done previously. The 3D pouring demo was a reconstruction of a code I write in Borland Delphi in the mid-90s for a control product for industrial furnaces that melt metals using high-powered induction. The graph demo touches on capabilities I’ve built into various real-time, simulation, and test harness codes I’ve written in the past.
- Illustrate my passion for developing tools in a modular, iterative fashion that address a variety of possible requirements. Most of the development process I describe is just me thinking out loud as I’m working through problems of one sort or another. I’m not doing any of these projects with the same formality I would in a professional setting, especially up front. That said, I do stop and consciously reexamine things from time to time (e.g., as I did yesterday).
- Give me problems that are tractable but interesting. I’ve done a lot of the low-level, nitty-gritty technical work involved in writing simulations, tools and other software from scratch, but I enjoy producing dynamic, visually interesting interface elements as well. I intend to work through some simulation tools going forward, but I need to create a few of the more basic widgets first.
- Yield finished components that will be usable by a wider community with minimal overhead.
- Provide a context for describing work and analyses I’ve performed in other areas. The graph project grew out of a desire to illustrate some of the work I’ve done with thermodynamics, numeric and technical computing, curve fitting, tool-building, and so on. Those discussions are all in the service of building a basic simulation capability to illustrate my deeper experience and understanding of that field.
- Provide a goal that causes me to work through whatever problems I may encounter. This forces me to learn new things to solve problems.
- Give me an opportunity to report on interesting things I find. I’ve learned a lot about the HTML5 canvas object that I comment on as I go, but eventually I will summarize all of my findings in a way that may be useful for others, including things that I haven’t seen anyone else write about where it is easily found. I’ve also identified a few exercises to work through that will illustrate some subtle details for me and possibly others. I also want to bee able to share links to descriptions and tutorials others have created that are so good that there is little or no need to try to improve upon them. The more people that can leverage the good work of others the better.
- Elicit comments and feedback from anyone who happens to stumble upon my activities here. If you think it’s interesting or if you think it’s pointless I’d like to know.
- Give me a hard and fast schedule that keeps me engaged on a consistent basis.
When I started this process I was able to generate a list of about 130 subjects I could write on, and so far I’ve probably addressed half of those. That exercise was useful for getting me into a consistent process that I hoped would make the ideas flow and force me into contact with new things on a regular basis. I have found a rhythm that works for me for the time being, and doubtless these communications will improve as time goes on.
This process reminds me of a very brief Reader’s Digest story I encountered when I was young, that for some reason has always stuck with me. Like the little girl in the story, finding new things to describe now has ceased to be a problem.