- From: Silas S. Brown <ssb22@cam.ac.uk>
- Date: Wed, 24 Feb 1999 07:38:07 +0000
- To: Wayne Myers-Education <wayne.myers@bbc.co.uk>
- CC: w3c-wai-er-ig@w3.org
Hi, I've looked at your sorce and despite the fact that I don't know Perl, I can get a rough idea of what's going on. Well I must say you're very adventurous to let just anyone download and redistribute it - I didn't want to do that with my access gateway because I thought there would be zillions of versions all over the web, many of which are really old. I don't mind people downloading it and keeping up to date, but I get nightmares about being adversely judged on code I wrote years ago.... Having said that, there have been a few people who asked me for the location of the source, downloaded it, and disappeared. This leaves me quite concerned as I have no idea what's happened (not to mention the fact that their versions are now out of date already). And I'm still looking for permanent homes for my gateway - I'm just a student, here today gone tomorrow, with most things I do forgotten.... (This is not to say the gateway's useless. It's very useful to me as I'm partially sighted myself. I believe that people should be given maximum configurability in an interface, since everyone is different, and this is the main point of my gateway. I'm just no good at getting anyone else interested in what I do. I want to do research in universal accessibility when I graduate but nobody will take me.) You've hard-coded a lot of details into Betsie (such as exactly which font size to used) whereas I've gone for lots of options. So Betsie might be more suited to people who are new to computers and get bewildered by lots of options, whereas my gateway might be better for those who like to spend time fine-tuning their preferences. I think both approaches have their applications and can certainly co-exist. (Before anyone quotes me out of context, I must quickly add that there is no excuse here for an application or an operating system to be unconfigurable. The thing about web gateways is that there are easily selectable alternatives - you just go to a different web page. With operating systems this is not the case - if you can't use Macintoshes then you can't work for any employer that exclusively uses Macintoshes, nor can you run any program that only runs on them.) It's amazing how few people are interested in hosting something that essentially lets others use your computer at no benefit to you. This is why public proxies keep closing down (and this could be a major problem in Y2K, when parts of the Internet could go up and down like yo-yos, source packet routing isn't usually honoured and in the absence of public proxies there will be many black holes). I've asked the RNIB and they say they might be interested but they're sitting on it (they've been very busy for the last few months). I don't suppose you'd like to put it on the BBC's server would you? And who manages www.w3.org anyway? Anyway, about the source. One of the main differences between us is that your program is designed primarily to help with access to a particular site, whereas mine is designed as a gateway for the whole web. It therefore needs to be able to cope with just about anything the web can throw at it - and if the web throws something at it that it can't cope with, I have to fix it. For example, my gateway can cope with the following but Betsie can't, and there are pages out there that are really like this (or like part of it): (14 lines of HTML follow) <HTML> <HEAD> <META NAME="Description" CONTENT="Look > < > >"> <STYLE blah blah blah> </HEAD> <BODY> <!-- comment > < APPLET SRC="hello.class" > < / APPLET> <TABLE><TR> <TD><A HREF="test.jpg">test</TD><TD>hello</TD> </TR></TABLE> </BODY></HTML> This contains a style sheet (untouched by Betsie and hence can override all font choices; access gateway has an option to remove it), spaces and new lines at the start of an APPLET tag (Betsie processes the applets before it remove the spaces, so it won't remove that applet), an old-style comment (if the string --> does not occur in the document then you should treat > as a comment terminator), and the < and > signs within quotes in a tag (which may confuse your tag parsing). It also contains the common idiom of using /TD to terminate a link; when Betsie removes the /TD, the link goes too far because it isn't aware of this. Also, the link is to a graphics file, which Betsie is unaware of and tries to redirect through itself. Besides coping with this rubbish, my gateway is also meant to be more configurable and has a wider range of types of processing that it can do. As a result of both of these things, the code gets more complicated (as I expect you've found out) - your Perl is about a tenth of the size of my C++. If you expand Betsie to cope with more Web gizmos and laxer HTML (which you'll probably have to do if you want it to be able to cope with some of the sites that are out there), you may well find that the whole thing gets slower. Not only is Perl an interpreted language, but the way you've done string parsing seems to introduce countless passes through the document. For example, you pass right through the whole document removing surplus spaces from tags, and you pass through again to remove applets, and so on. I don't know much Perl but this is probably a natural side-effect of the language. If it's given a big document, that can mean quite a chunk of processing. I take it the BBC have a good high-end server then! I just make two passes, the first one finding out anything it needs to look ahead to find out (such as whether there's a META redirection), and the second doing all the work and generating the output. And C++ is a lot faster than Perl. The obvious advantage of Perl is its relative saftey, but I'm pretty sure I know how to write secure C++. I agree that putting code written by a C++ novice on a web server is asking for disaster, but the gateway isn't like that. (If anyone wants to try crashing my gateway, feel free to have a go and let me know how you get on.) There comes a point when you can't implement everything in a scripting language. By the way, I'm not sure what you were saying about Java security. When it's absolutely necessary for me to get to Java applets, I can check the "enable applets" box in my gateway and it seems to work fine (it just re-directs the code URL to point back to the original page). Regards -- Silas S Brown, St John's College Cambridge UK http://epona.ucam.org/~ssb22/ "I know of no way of judging the future but by the past" - 18th century American statesman Patrick Henry
Received on Wednesday, 24 February 1999 02:38:01 UTC