Today is Ada Lovelace Day, a day of blogging to draw attention to the achievements of women in science and technology. I'm not sure exactly how long Ada Lovelace Day has been around, but I do remember my brief yet fascinating study in 1989 of the machines she programmed - the Analytical Engine of Charles Babbage. As a student of electrical/computer engineering, I also studied the history of technology and its impact on western culture. This excellent course, instructed by Dr. John Lienhard at the University of Houston, gave me some perspective on the social consequences of technology. It also required me to write some papers, and for one I chose Babbage's Analytical Engine.
Today computers are all around us - in our cars, phones, hospital equipment, weather monitoring, flight control, music and video systems, and of course web servers. Many people, like me, program them for a living. As a student, I was amazed to discover that over a century before all our electronic advances produced what we thought was the first computer, Ada Lovelace was programming a mechanical device not unlike a modern computer.
In honor of that achievement I'm putting my paper, The Philosophy of Babbage's Analytical Engine, online. The paper shows how the philosophy of operation of the Analytical Engine is similar to that of a modern computer, and also contains a nice quote from Ada Lovelace - who like Babbage was way ahead of her time. I hope the paper conveys the depth of understanding that would be required to program such a device.
Wednesday, March 24, 2010
Friday, March 12, 2010
AVL Tree for Google's New Go Language
Anyone interested in Google's new Go language should check out my open-source AVL Tree. It was originally crerated as a C++ class and a template, used in my HERMIT program. Porting it to Go was an interesting exercise. First, I didn't need my heap allocator because Go's garbage-collected memory manager already does block allocations. Perhaps the most interesting part of the port, however, was moving from a class hierarchy way of thinking to Go's interface-based programming, which is more akin to "duck typing." I was able to add some interesting iterators similar to those in other Go containers, but until Go has generics I can't add that. Overall, it was an interesting study in simplifying the code. Assuming that Go grows and scales, it is shaping up to be a powerful programming tool with much of the simplicity of script languages.
Sunday, January 10, 2010
PS3 Surgery!
My out of warranty PS3 won't start up...so time for surgery! Not sure I can make it work, but it's fun to see what's inside. It seems like most of it is a heat sink. I am hoping the fiddling and cleaning will loosen things up enough. Supposedly you can heat the mainboard to fix any loose solder caused by overheating. We'll see how it goes.
I also took apart the Bluray drive enough to get the Little Big Planet disk out, but I neglected to get pictures of that. Some of the connectors are so small you need tweezers to take them off. Delicate work for sure.
Overall it's pretty well built - unfortunately these older models get really, really hot and it causes problems when the dust builds up, which is inevitable.
Subscribe to:
Comments (Atom)