New GEDCOM parser
I've finally got around to rewriting the GEDCOM parser for Sequoia. It's much more resilient than the original and much, much shorter and quicker. It needs some tweaking here and there, but it'll already read a complete GEDCOM file into memory, regardless of what tags are employed and whether the rest of the app can actually do anything with them yet. I've given the data a nice structure so that things like birth and death records are structured properly. Birth records are accessed via something like $db($myid,BIRT,DATE) for the date and $db($myid,BIRT,PLAC) for the place. Note that I've used the actual GEDCOM tags here. I think that's likely to be the best way to do it, as I can create records with arbitrary tags without rewriting anything. I could have a field that looked like $db($myid,FOO,BAR) for example, and the parser would read it. The app is unlikely to do anything with it, but the data from the file would be preserved regardless and would be written back to the file when exported. I don't want this thing to cause anyone to lose data, but at the same time I don't want to have to code for each and every ridiculous circumstance either. With this structure I ought to be able to rewrite the tree construction bit quite easily, and the edit forms will be a piece of piss. Hurrah!
Saturday December 02nd, 2006 02:01 PM
The new design is now live after much faffing about. I should have done this months ago, but I never seem to get around to anything these days. Even Sequoia is struggling to attract my interest at the moment, mostly because I've got to rewrite the parser and that's a hell of a job. Anyway, enjoy!
Monday October 31st, 2005 08:01 AM
The march of technology
Well, it seems things never stay still too long these days. Last year I came away on holiday, knowing full well I'd be without internet access, because there were no wires to connect to, no wireless to sniff and no GPRS worth mentioning to piggyback. Now, I'm sitting in my mother's caravan in deepest Welsh Wales, with my laptop, my phone and a dinky little bluetooth adaptor and the web is my oyster. It will probably cost a tiny fortune, but at least I'm connected. It's an addiction. It does also mean I can keep writing and testing software from here, so it's not all about avoiding withdrawal symptoms, but still, coolness!
Thursday December 08th, 2005 02:01 PM
The spam seems to be only coming to me now, which is better, but not brilliant, so I decided to try a slightly different solution. I've used the mime mail stuff in PEAR to send the mails instead. I'm hoping it'll cut the crap out altogether, but that might be a bit much to hope for. Anyway, it all seems to work fine, we'll just have to see what happens to the spam.
Thursday December 08th, 2005 12:02 PM
PHP mail() injection
I've noticed a lot of spam coming through my mail server recently, to the extent that it has brought the thing to its knees more than once. For ages I couldn't figure out where it was coming from. The server is categorically NOT an open relay. I've run all the tests I could find and the postfix setup is sound. I finally found the answer via google. It seems the comment forms on this website have been used to send emails by getting the PHP mail() function to do the dirty work. The www-data user is allowed to dump messages into the queue for postfix to pick up, all that's necessary is for the spammer to figure out a way of injecting replacement headers, so that the mail goes to a bunch of other people and has a different subject and content. This, as it turns out, is not too tricky. Following the instructions I found I haven't been able to reproduce the effect. For everything I've tried my scripts have actually done what they're supposed to, but I'm convinced that this is where the spam is coming from. For the time being I've prevented the comment forms from sending emails. I'll investigate other solutions and see what I can come up with. It would be very nice to be able to definitively reproduce this behaviour, just to make absolutely sure that I've solved the problem, but whatever is being done is somewhat sneakier than the trivial examples I've seen so far. I'll get to the bottom of it, but in the meantime, if you make a comment, I won't see it until I actually look at the page.
Thursday December 08th, 2005 09:00 AM
A little hackery later...
And IE now renders the site pretty much like a real browser. Of course this involved an awful lot of lying to it and forcing other browsers to ignore the idiocy I was reserving for IE, but it works. The CSS is a little strange and could probably be tidied up a little bit, but it's not too bad. If you tried to view the new site in IE and it was messed up, feel free to try again. It should look almost identical in IE, Firefox, Opera, Mozilla, Konqueror, Epiphany, etc... It even renders pretty nicely in text only browsers.
Thursday December 08th, 2005 06:01 AM
I've revamped the site somewhat. It's not live yet, but if you want to have a look, it's at http://www.affordable-wombles.org/new/test.php for now. It's just that one page, no links work or anything, and the post box is going to be a smidge wider, but that's the gist. I've finally got rid of all the tables that were littering the place. One word of warning, it might not look right in IE, but if you view it in a real browser you should be ok. I've tried to overcome IE's box model problems, but I've not had chance to test it yet.
Thursday December 08th, 2005 05:02 AM
Forgot to mention. I've had a book published. It's called "Sir Parsley and the Dragon and Other Stories" and it'll be available from lulu.com, once I've approved the latest layout and made it available to the public. It's a selection of children's stories. I'll post here and on LJ when everything is finalised.
Wednesday December 07th, 2005 08:01 AM
affordable wombles is back up
I've finally managed to get this server back up after a hell of a long wait. Redwood Virtual have disappointed me this time. It shouldn't take three weeks to get hold of someone for support. Also, sorry to those of you who saw a massive chunk of my previous posts on livejournal when the server came back up. It's a flaw in the way the RSS feed works, I need to find some way to cache it outside affordable wombles, or lj will pick up all the old posts whenever it goes down and comes back up again (assuming there's more than a few hours outage, lj won't be able to find the RSS feed at least once, and when it does find it again it'll read everything back in). Anyway, I'm back up and running. I've got some new software I'm working on, it'll be made available here when it's finished. It's called Sequoia and it's a genealogy app. So far it reads and writes GEDCOM files admirably, but needs some more functionality. I'm also hoping to get the next release of oriblog finalised soon. I've neglected that one far too long. It will be fully SOAP based, and have a published SOAP API so users can write their own clients. I'll also bundle the tclkit client I use with it. Tcl handles SOAP really nicely. Clients can be written in anything that has support for web services though, so if you're a .NET coder you'll have it even easier. Thinking about it, a .NET client with simple functionality shouldn't take any more than an hour, so one of those might get bundled too. We'll see.
Wednesday December 07th, 2005 08:01 AM