General Principles of Design
Having the ability to twiddle bits as well as install and use software frameworks leaves an engineer with a lot of choices. Essentially, one simply must decide where to draw the lines. Once can choose from OSes, languages, frameworks, and providers and that in itself when designing a PIM can be a bit of pulling oneself up by one’s bootstraps. How do I keep track of my thoughts with a tool that isn’t designed yet? Do I continue to use my laptop, or rough it a bit online within the platform itself to develop? I guess the entire enterprise will have to be an exercise in ad-hockery until I get my metaphorical sea legs. I have however settled for three important principles after grappling with the issue. First, any and all components will the FOSS. Second, everything will be web-based, and lastly, data exchange between apps, frameworks, and the outside of the system will occur via XML. I’m a big fan of Linux, but work environments have usually been MS Windows; I love Perl, but at work I use VBA and VB.NET. I love the feeling of tinkering with make files, linking and compiling, but porting around executables and data by traditional non-web-based methods is onerous; as I work on my computer algebra system, I’ve thought much about using .Net and WPC to reach an audience, but my heart is torn apart by wanting to share it and develop it for use by students. It’s overwhelming, really, and so I’ll just keep doing what I do piecemeal until this project progresses further along allowing me to bring it all together under one roof. That’s the goal: efficiency of time and effort and cost, and right now I don’t have the time to sit down and design a single plan from scratch. I need to be able to incorporate my development into current processes and routines, hacking away at ignorance a bit at a time. For this, I’ve made the decision not to run my own box and attach it to the web myself; I’m more content conscious than technical refinement conscious and so I’ll outsource the installation and administration of the hardware, operating system, and basics tool kits to get the job done. I decided to go with GoDaddy on account of their size and the fact they allowed me to create a virtual Linux box so I could use Perl, MySql, PHP, and all of the FOSS built on them, plus their GUI at this point is ridiculously simple to use. Historically and out of a sense of curiosity, I’ve tried to build everything from scratch. I still do. I want a tool, and I want to know how it works, but no more. Design Principle four then is do not reinvent the wheel! On the upside, having used and tinkered and learned so many shells, languages, and other tools, I can consider all of that building from scratch an investment in the skill of getting stuff to work. Ultimately, dear reader, my ambitions in the short term include finishing my masters in mathematics, and in the long term a doctoral program in AI. This PIM is about giving me a tool to increase the speed of my learning; it’s a tacit acknowledgement in the belief in Kurzweil’s Law of Accelerating Returns.