|
Zebra, Mind Machines, and the Tesla Technique [1024.1999] With all my recent ranting about lojban and computer languages, I'm not sure whether I mentioned that I'm currently creating a computer language of my own. I've run into some problems creating it, and have been playing with my mind machine to solve those problems. Here's the scoop. I found myself bored of writing the same basic code over and over for my different database-driven websites, so I decided to write a program that would write those programs for me. All I'd have to do is say what a page looked like, and my language interpreter would take my descriptiong and turn it into a working web page that could read from and write to a database. In theory, this isn't really all that hard. There's a basic script-template (the code I use over and over), and then I just say whether this particular page does anything differently, and what it actually looks like on the screen (colors, fonts, etc). But, my programmer spidey-sense kicked in, and I decided to make it as generic as possible, and wound up with a plan for a generic template- processing system. I haven't yet fully explored all the things it can do, but, for example, it will allow one single "screen" definition to produce working programs in just about any computer language you want. Anyway, I know how my program should behave. I've actually written example files for it to process, and stepped through each line, writing out exactly what should happen. But now I'm actually building it, and it's turning out to be the most challenging thing I've ever written. All of my "obvious" solutions to the first part of the process wound up making the second part into a nightmare, and vice versa. So, I've been doing quite a few mind machine sessions lately. I've found that it's actually a great tool for "getting into" my programs, and watching them run. For example, part of my task is to parse an XML file, which is a snap, and use it to build a data structure, which is a snap, too, except there's a near-infinite number of ways to do it, and choosing one that will work for me has proven itself to be a real challenge. I spent most of today goofing off - I wanted to work on this, but I just had no clue where to begin. Finally, I got out the mind machine. I loaded a forty minute, factory-installed program that hovers around the theta range, slipped on the headphones and glasses, and laid down on my bed. I started thinking about my goals for the program. What did I actually want, and how was that different from what I've created so far? I imagined the software working perfectly. I watched it a bit, and then I took it apart. Tesla used to do this with his engines, and met with phenomenal success [Jobet: take note!].. So why not employ the Tesla technique with my program? I have always thought of my programs as machines anyway - just built out of words instead of metal. As I zoomed in to different parts of my XML parser, I realized that one of the functions I expected to use over and over again was trying unsuccessfully to provide a single answer for three distinct problems. The more I studied the visualization, the more I understood what actually needed to happen for each one. Now, throughout the entire session, my mind was wandering. I started thinking about other things in my life.. Images of a beach.. Random ideas (for some reason it occured to me that if anyone wanted to, it would be just as simple to create a compass that pointed south as one that pointed north).. Images of a herd of zebras... ("Zebra" is the name of my program..) .. Images of my speech class.. But, through all of that, I kept coming back to the "machine" that was my program. Now, this isn't a big program I'm writing. But it's so far removed from anything I've done before that I'm a little lost. (And very excited about it!) And I'm still not done learning about it. In fact, I'm about to go back for another mind machine session to work out some details. I'll let you know how it goes. (mindlist post) |