Update (September 21, 2017)
I've often with this blog shied away from more personal material. Not exactly sure why, but I guess I've been a more private person. However, I think it's to the detriment of my writing when I force myself to exclude certain information for no particular reason. This has especially been on my mind recently because I've been thinking of how to explain the lack of updates I've written lately. Basically, it boils down to two factors:
- Relocating to Las Vegas
- Putting more effort into finding consulting clients
The first one was both pragmatic (way cheaper than my former base of operations, San Francisco, while still being well connected for someone looking to work remotely or travel for work) and personal (my boyfriend moved to be closer to family). Overall it's been a good move, contingent on that second factor, finding consulting clients. I've had a lot of good conversations with people, but finding and lining up work is almost as important in consulting as actually performing the work, so it's taken some getting used to.
So where does this leave the blog? I still intend to post, hopefully on a regular cadence, and I very much want to wrap up the projects I've already started. There's even one I've started and not even discussed on the main blog yet. These are:
- Legacy Fortran code modernization
- Fortran Unums
- Julia Controls
The first two should be familiar to those of you who have read my previous updates. Each of these can be found under the Projects part of the blog, but as a quick summary of what I've been up to on each since my last updates on the blog:
- For the legacy Fortran code, I went out and bought to book the code was written for, The Finite Element Method by Pepper and Heinrich. The reason for this is that I was starting to really get into the weeds of adding all kinds of abstractions to the code, but without understanding what exactly the code was trying to do. This led me to writing a series of Jupyter notebooks to work through the textbook material, which I intend to upload once I get a bit farther. Once that's done (not a trivial task, the book itself is a couple hundred pages long) I intend to show it to one of the authors (Pepper) and hopefully get permission to post it in some form online. Hopefully this will be useful both to the authors and future students, and will give me a Julia implementation of the example code, which I could then use to knowledgeably update the Fortran code.
- For the Fortran Unums, I've done a bit more with user defined types to help streamline and clarify the code. I had originally avoided these due to, admittedly, a superstition around what this would do to execution speed, but it looks like I need to have more faith in compiler engineers. At the very least, I want to finish my conversion to Fortran from Mathematica of the original code prototype. Once that's done, I'd like to use either my own implementation or one available online in Julia to test some of the claims around what unums are capable of. Admittedly, there's a good chance I may just use the existing Julia implementation for non-speed critical tests. It's just a much more productive language.
- The new project here, Julia Controls, is a product of JuliaCon. While I was really interested in the Modia project, the source code is simply not available yet. However, I was pointed to a controls project in Julia (ControlSystems) that could, eventually, be used to add Simulink-type functionality to the Modelica-type plant modeling. I've already contributed to an auxiliary package as part of that effort, and I hope to start contributing to ControlSystems itself in the near future, probably starting off with some more minor revisions. In the short term, I'm working through an old college textbook of mine (System Dynamics by Ogata) and seeing where Julia lacks the functionality of the Matlab example code, or where the two differ. Like with the legacy Fortran project, I hope to post the Jupyter notebooks I'm using to do this online once I'm farther along. This project is a longer term one I'd say; it's more an open ended effort than the more easily defined legacy Fortran and unums projects.
Since this is apparently a post where I'm loving my lists, here are a few projects I'm considering once at least the first two of these projects is completed:
- Create similar notebooks for NumPy and more advanced Python
- Learn more about Raspberry Pi, Arduino, and Beaglebone single board computers/controllers
- Start reading through my book backlog on topics like optimal control and estimation, evolutionary algorithms, etc.
I'm definitely guilty of biting off more than I can chew, and then feeling guilty that nothing I've started I've actually finished. But I figure admitting this and making a plan to work on it is more productive than being embarrassed about it, so hopefully in the next few weeks you can look forward to more regular updates. There's certainly no lack of interesting topics to cover, and I look forward to sharing more of them on a more consistent basis.