||[Nov. 13th, 2009|02:50 pm]
Giving Up All My Yesterdays For All My Tomorrows
I'm doing something really cool!|
So at work we've got over 100 different reports/alerts that go out each day. They all run on their own on one of two dedicated task PCs. When I got here the whole system was pretty mish mash and when one PC went down horrible things happened.
So I built a new system. I modeled the system on the idea of emergent intelligence, how a number of relatively dumb individuals following an identical set of rules can become something much smarter together. Think of a flock of birds. The birds have no idea what a formation is and don't know that they're in one. They only have simple rules like "Make sure I can see in front of me, make sure I can see another bird out of the corner of my eye and don't be too close or too far away from another bird.
We've got about 60 databases now running our 100+ tasks. They all run different code but it's all build on a core set which can be changed and distributed to each one in about 15 minutes. We can also roll back to any previous version just as quick.
One of the rules is to log any errors in a specific place in a central table. I noticed the other day we were getting lots of sporadic errors, like over 50 a day.
So what I'm doing today (and what is so cool) is I'm monitoring all of the errors coming in on a form in real time. Then I'm making small changes to the core code, distributing that new core out and monitoring the changes to all of the 60 or so small programs all at once!
It's like watching an ant colony and then being able to reprogram each ant mind almost simultaneously and being able to watch the effects.
In a situation like this one I can’t help but feel just a tiny bit like the God of a race of tiny electronic people, who, once given my instructions, go out and do my will.
I also can’t help but feel like an artist who has created and is in the process of continually working on a living piece of art.