There was some speculation on python-ideas today on whether Python's metaclass design came from Ruby. It did not. And as long as we are speculating about the origins of language features, I feel the need to set the record straight.
I was not inspired by Ruby at that point (or ever :-). Ruby was in fact inspired by Python. Mats once told me that his inspiration was 20% Python, 80% Perl, and that Larry Wall is his hero.
I wrote about metaclasses in Python in 1998: http://www.python.org/doc/ essays/metaclasses/.
New-style classes were just the second or third iteration of the idea.
I was inspired to implement new-style classes by a very 
specific book, "Putting Metaclasses to Work" by Ira Forman and Scott 
Danforth (http://www.amazon.com/ Putting-Metaclasses-Work-Ira- Forman/dp/0201433052).
But even Python's original design (in 1990, published in 
1991) had the notion that 'type' was itself an object. The type pointer 
in any object has always been a pointer to a special object, whose 
"data" was a bunch of C function pointers implementing the behavior of 
other objects, similar to a C++ vtable. The type of a type was always a 
special type object, which you could call a meta-type, to be recognized 
because it was its own type.
I was only vaguely aware of Smalltalk at the time; I 
remember being surprised by its use of metaclasses (which is quite different from that in Python or Ruby!) when I read about 
them much later. Smalltalk's bytecode was a bigger influence of Python's
 bytecode though. I'd read about it in a book  by Adele Goldberg and 
others, I believe "Smalltalk-80: The Language and its Implementation" (http://www.amazon.com/