Name: James Tauber
Member since: 2001-02-13 06:58:32
Last Login: 2007-09-20 05:21:28
Homepage: http://jtauber.com/
Notes:
I'm Chief Scientist at mValent and an original participant in the XML activity at the W3C. I wrote the first open source implementation of XSL-FOs, FOP (which I donated to Apache); started the first open source implementation of UDDI, jUDDI; a Python implementation of the XML schema language TREX, PyTREX; and am co-developer of Redfoot, an RDF application framework.
Recently, I started PyGo, a Python application for studying and playing Go.
Email: jtauber@jtauber.com
Metrics Provide An Inner Product
Another post for the Poincaré Project.
We've already seen that a one-form is a linear function from a vector to a (for our purposes) real number. On a manifold, one-forms correspond to stack-type vectors being applied to arrow-type vectors by counting how many "stacks" the arrow passes through.
In the previous post Metrics As Mappings Between Arrows and Stacks, we saw that a metric is an extra bit of structure that describes how to map between arrow-type vectors and stack-type vectors.
So, in summary:
These two facts can be combined to let you take two arrow-type vectors and get a real number out of them.
This has parallels with currying in functional programming.
Recall that if a function "add" takes two integers and returns an integer, it can be viewed as a function that takes one integer and returns a function that takes one integer and returns an integer.
add :: Int -> Int -> Int
Now, a one-form is a function that takes a vector and returns a real. In other words:
Vector -> Real
So it is easy to see that if you curry a real-valued function that takes two vectors you get:
Vector -> Vector -> Real
In other words, a function taking two vectors to a real is equivalent to a function from a vector to a one-form.
So if you have a metric that can convert between vectors and one-forms (or, in the context of a manifold, between arrows and stacks) then you also have a function from two vectors to a real.
Such a function is called an inner product or dot product. Often the notion of an inner product is defined first, before one-forms are introduced (if at all). In fact, some texts will define a metric to be an inner product. It is best for our purposes, though, to think of the metric's fundamental purpose as being converting between arrows and stacks (and back again) and the inner product as being an extra concept we get for free.
Syndicated 2008-05-11 14:55:12 (Updated 2008-05-11 14:55:14) from James Tauber
Introducing Pinax
In the post Reusable Django Apps and Introducing Tabula Rasa I mentioned my project to create an out-of-the-box Django-based website with everything but the domain-specific functionality.
At the time I was calling it Tabula Rasa but now I've settled on the Greek word Pinax, proposed by Orestis Markou.
So far it's just my new django-email-confirmation app tied together with password change and reset, login/logout, with the beginnings of a tab-style UI. There's a ton more I want to refactor out of my existing websites to put into it as well as adding support for OpenID and the stuff I'm starting to do for django-friends.
Even if one doesn't use Pinax as the starting point of a website, I'm hoping it will prove very useful for another goal, namely a "host" project to develop and tryout reusable apps.
The initial code is available at http://code.google.com/p/django-hotclub/ under /trunk/projects/pinax and there is a running instance for you to try out at:
http://pinax.hotcluboffrance.com
Syndicated 2008-05-10 15:22:38 (Updated 2008-05-10 15:22:40) from James Tauber
Elite Oolite
When I lived in Brunei in the mid-80s, a neighbour had a BBC Micro and I would go over there to play the space trading game Elite. The hidden-line wireframe graphics and massive procedurally-generated universe seemed amazing to me at the time and it was definitely the kind of software I aspired to one day write myself. At the time, I taught myself trigonometry to do 3D graphics but never got to hidden line removal :-)
I was aware of various Elite clones over the years, but the other day I stumbled across Oolite, an open-source Mac OS X version with modern OpenGL graphics. Simply amazing and just as addictive as I remember the original being. It also seems to be highly pluggable, with numerous extensions available to add both to the UI and gameplay.
Syndicated 2008-05-09 23:27:59 (Updated 2008-05-09 23:34:36) from James Tauber
LOTRO on VMware Fusion
I've hardly played Lord of the Rings Online at all the last six months and not at all the last three.
My only copy of Windows is a VMware Fusion instance and LOTRO doesn't work on VMware Fusion. That is...until now.
I was excited to hear that the new VMware Fusion 2.0 beta 1 supported pixel shaders in DirectX 9 and I wondered if that meant LOTRO would work. I downloaded the beta, which JUST WORKED with my existing VM (which wasn't even shut down). I spent an hour or so updating LOTRO but my first attempt to start the game failed.
The error message was different, though. Instead of being about the graphics adapter it was a complaint about a Game Error 127. A Google search revealed this post and so I tried making the config change they suggested there.
And BINGO! I can now run Lord of the Rings Online on VMware Fusion!
I haven't tweaked the settings yet to see if it's playable but I'm hopeful.
VMware, you are amazing!
Syndicated 2008-05-06 08:19:36 (Updated 2008-05-06 08:21:22) from James Tauber
6 May 2008 (updated 10 May 2008 at 08:09 UTC) »
Reusable Django Apps And Introducing Tabula Rasa
The excellent 42 Topics blog has a post entitled Popularizing Django — Or Reusable apps considered harmful which makes (or attempts to make) the case for packaged apps over reusable apps.
He raises some good points, although of course the packaged apps he's talking about still use reusable apps so he's not actually talking about there being a problem with reusable apps per se, just that there should be packaged apps as well.
I mentioned the django-hotclub group in a comment on that post as I'd really like the discussion to take place there.
I also, in that comment, mention something I'm working on tentatively called Tabula Rasa. (I'm toying with a Greek name rather than Latin but something tells me people are more comfortable with tabula rather than grammateion)
Basically, the goal of Tabula Rasa is an out-of-the-box Django-based website with everything but the domain-specific functionality.
So far it's just my new django-email-confirmation app tied together with password change and reset, login/logout, with the beginnings of a tab-style UI. There's a ton more I want to refactor out of my existing websites to put into it as well as adding support for OpenID and the stuff I'm starting to do for django-friends.
Even if one doesn't use Tabula Rasa as the starting point of a website, I'm hoping it will prove very useful for another goal, namely a "host" project to develop and tryout reusable apps.
One of the challenges I know I've always had with writing or trying out reusable apps is the need for a project to provide the scaffolding.
So Tabula Rasa will hopefully serve that dual purpose.
The initial code is available at http://code.google.com/p/django-hotclub/ under /trunk/projects/tabularasa
I hope to have a running instance online soon.
UPDATE: I've decided to switch to the Greek word pinax suggested below by Orestis Markou.
Syndicated 2008-05-06 05:49:35 (Updated 2008-05-09 23:18:45) from James Tauber
jtauber certified others as follows:
Others have certified jtauber as follows:
[ Certification disabled because you're not logged in. ]
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!