November 14th, 2010


Nerd Sniped

This was originally posted on my WordPress Blog here. You can comment here or there.

So, I got a request in the mail last night, and I’ve been working on it today. If I ever see the bottom of it, I’ll post the results. The result of this particular exercise in frustration has yielded some tangible perks:

  1. My server is, as you can see, back up.
  2. I have SSH access on something again, which will be handy when I need Unix utilities at work.
  3. I now have a box running Ubuntu 10.10, which I could not claim before. Once again, I’ve run every single version of Ubuntu since the initial release.

Of course, this means that I really need to get my resume out here updated. After all, it still shows my address in Missouri City, and also that I’ve been bumming around doing jack since spring of 2009, which as some of you may or may not know, is not the case. People are still trying to get to it, too, from what I have been told.

Anyway, that’s not what I wanted to talk about. I wanted to talk about SOAP, Python, and me. Now, of course, you’re probably thinking, “Jim, aren’t you a Windows programmer by day, fairly competent at writing SOAP stuff on .NET?” The answer to this question is yes. However, I don’t keep a Windows box at home for a very good reason: I don’t want my employer to take my personal code. They don’t use Python in house, so frankly, that’s a plus. If I were working in a Unix world, I would keep a Windows box here at home, and my hobby work would be .NET all the time. That’s just how it goes.

Again, I digress. Setting up a SOAP server with Python is a pain in the neck. SOAPpy is broken, soaplib is broken, and Django doesn’t have a built in mechanism for building SOAP web services. Thus, I’ve had to jettison SOAPpy, hack soaplib in horrible and ugly ways that I won’t be offering back to the main tree because they remove important functionality in favor of simply getting a service published over standard hypertext transfer protocol, and weld the entire thing to Django with some code I scraped out of a pastebin.

First, let’s talk about the dirty deeds done to soaplib (for free). I’ve taken away its ability to detect whether I’m using HTTP or HTTPS, and it will only work over normal HTTP now because I’ve hardcoded that. Yeah, I know, smooth move there, Jim. However, I don’t have an SSL cert on this box, nor do I intend to shell out for one because frankly, it’s a freaking blog, some code samples, and me just messing around on the Tubertubes. I don’t need an SSL cert for SSH, so I’m really not concerned about that. The fact was that the detection code was horribly broken in ways I didn’t care to diagnose.

Then, I had to weld the mess to Django so that I could serve it up over my domain name without having to open yet another port on this box–something I really hate doing. I would prefer not to get pwned. After all, this box is of great sentimental value, and it’s been running pretty consistently for 9 years now (okay, that’s just where /usr and /home are mounted, the CPU, one of the optical drives, and the floppy drive that have been in continuous operation, but hey, that’s something). There may not be much of value on here (not even porn, like I’d download any of that).

So, I finally have a web service running on this box. I’ve got the WSDL file up and served, but now I’ve got to write something that will consume it. I’m leaning towards an abomination of JavaScript (a language with which I’ll freely admit to being a little less than a novice, much to my embarrassment), but frankly, my Google-fu is failing me in that regard. Python has finally failed me, too, as soaplib’s client got hacked out in version 0.9, and as mentioned before, SOAPpy is just hosed. I could bust out the old Windows side and whip up an ASP.NET frontend, but really, where’s the fun in that?

But hey, it’s more interesting than blowing yet another Caturday watching animu. That said, I still hope to have Death Note finished by next weekend. Perhaps this week won’t be so horrible: I don’t have my normal Monday engagement.

Oh, one more thing: the Craigslist scraper is back up, if anyone wants to use it. It’s still just programming jobs, though, and it’s still just for the continental US.