subcritical


Crappy Wordpress

 Eric Williams | 9 September, 2007
 Comments
wordpress crap 

Well, my trackbacks are now working, it seems. There's some ugly Python spaghetti-code going on behind the scenes that translates back and forth between absolute urls, non-absolute relative urls, and upper-lower-camel case; but it works.

Trackbacks are only good for Movable Type, though. Which I can't stand anymore. MT used to be the only thing out there, but there's something that really, really, really galls me about the way it rebuilds your entire site into static HTML pages everytime you update a post. I'm sure it's awesomeness if you've got your server running on an old TV remote, but nowadays we're all running our web servers on 100-core 64-bit terahertz moonshot computers that can simultaneously compute π, encode MPEG video, and mix the best goddam margaritas you've ever tasted, all without breaking a sweat.

So yeah, I figured out how to implement trackbacks in Django, to a point where they more or less work. Now why is Wordpress fucking with me? It seems to be thrown off by the fact that Wordpress sends a HEAD request before it downloads and parses the page, in the vain hope that the X-Pingback header will be set. I can't figure out how to do that in Django's generic views, so I just use the secondary method, that being a link element in the XHTML code. But now, whenever a Worpdress blog pings me, I get this kind of crap:

  [09/Sep/2007 15:04:23] "GET /blog/2007/sep/08/vacation/ HTTP/1.1" 200 27367
Traceback (most recent call last):
  File "/home/rubeon/lib/python2.4/django/core/servers/basehttp.py", line 273, in run
    self.finish_response()
  File "/home/rubeon/lib/python2.4/django/core/servers/basehttp.py", line 312, in finish_response
    self.write(data)
  File "/home/rubeon/lib/python2.4/django/core/servers/basehttp.py", line 396, in write
    self._write(data)
  File "/usr/local/lib/python2.4/socket.py", line 248, in write
    self.flush()
  File "/usr/local/lib/python2.4/socket.py", line 235, in flush
    self._sock.sendall(buffer)
error: (104, 'Connection reset by peer')
Traceback (most recent call last):
  File "/home/rubeon/lib/python2.4/django/core/servers/basehttp.py", line 273, in run
    self.finish_response()
  File "/home/rubeon/lib/python2.4/django/core/servers/basehttp.py", line 312, in finish_response
    self.write(data)
  File "/home/rubeon/lib/python2.4/django/core/servers/basehttp.py", line 396, in write
    self._write(data)
  File "/usr/local/lib/python2.4/socket.py", line 248, in write
    self.flush()
  File "/usr/local/lib/python2.4/socket.py", line 235, in flush
    self._sock.sendall(buffer)
error: (32, 'Broken pipe')

Being the half-assed programmer that I am, I am at a total loss. I can't even do a Lazyweb request here, seeing as my 4 visits a day are unlikely to bring the Django HTTP gurus by. I won't be able to sleep at night, thinking of all the enlightened Wordpress Users who are probably out there try to "Keep the discussion going" with me.