Monday, December 19, 2005

Populartity of Bodington

Bodington did quite well in a recent report on VLEs with it being used in 8% if institutions questioned. On the publicity front this was been quite good with with being picked up by some other bloggers: I would be great if some of this interest converted to more people working on the software and deploying it.

Wednesday, November 16, 2005

Locking down PostgreSQL

In a previous post is noted how to restrict access to a Tomcat installation so that it could only be accessed from the local machine. Here is a little tip for how todo the same thing for PostgreSQL. This increases the security of these applications as you have to posses an account on the local machine to connect to the services. The interfaces that PostgreSQL listens on is configured in a file called postgresql.conf which is often located in /etc/postgresql/ to restrict connections to PostgreSQL add the following line: virtual_host = '127.0.0.1' The restart PostgreSQL: /etc/init.d/postgresql restart You should then be able to check that PostgreSQL is only listening on the local interface with the command: # netstat -tln | grep 5432 which should give you:
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN

Monday, November 14, 2005

Events and WebServices

My notes from a very quick look at WS-Notifications / WS-Eventing. There are two specs for doing pretty much the same thing. You have something that produces events, for example with a light switch, the events might be light switched on, light switched off. With these specs other systems like the coffee maker (consumers) can register with the producer to receive events when something happens. An example use might be that when the coffee machine starts up it registers with the light switch to receive "on" events. Then when the light switch it turned on it sends an "on" event to the coffee machine so it brews some coffee. The light switch and the coffee machine would have to agree on a message format but the specs define how the registration works and what the outline of the events looks like. The producer looks after the list of consumers that want to be notified of events and when registration happens the consumer tells the producer where events should be sent to. Neither of these specs specify anything about what is in the contents of the notifications. They are similar to event listeners from the Java GUI world. Both the specs came out around 2004:

Wednesday, October 19, 2005

Java and HTTPS (Globalsign)

It seems that Java 1.4 doesn't have to Globalsign root certificate installed which means it fails to connect to some Websites using HTTPS. You can grab the certificate from: http://secure.globalsign.net/cacert/root.cacert and then install it with a command like:
keytool -keystore /usr/local/j2sdk1.4.2_07/jre/lib/security/cacerts
-import -file root.cacert -alias globalsign
The standard password is "changeit" and after saying you trust it you should be able to connect to sites through HTTPS that are signed with a globalsign root certificate.

Tuesday, October 04, 2005

CruiseControl for Bodington and WebLearn

One thing we have had running at Oxford for a little while is an automatic build tool for both WebLearn and Bodington which after each change that is made to the software (each CVS commit ) it attempts to build it. If the build fails due to a compilation error it starts spamming the people involved in the last set of CVS commits until the problem is fixed. This helps to keep the projects buildable all the time. Another benifit is you can also grab a built copy the codebase from the Build Artifacts directory (eg the quickstart WAR). http://dev.weblearn.ox.ac.uk/cruisecontrol/ WebLearn Build (4th October 2005) As you might have guessed from the URL it uses CruiseControl which Java project consiting of the build tool and a webapp to publish everything. Which reminds me the new version of CruiseControl has an RSS publisher so people can keep up to date using a normal feed reader, must upgrade sometime...

Monday, October 03, 2005

ChangeLogs from CVS

One nice thing about CVS is that you can get ChangeLogs between versions for very little work. For example we like to know what have changed between two stable versions of WebLearn (the Oxford deployment of Bodington),at the moment we are going from 2.6.4 to 2.6.5 and there is a nice tool called cvs2cl with which you can query your CVS tree and ask for all the changed between two versions. I build my ChangeLogs with the command:
cvs2cl.pl --delta WebLearn_2_6_4:HEAD -F branch_WebLearn_2_6 -r .
and it will give me all the changes between 2.6.4 and the latest version on the branch called branch_WebLearn_2_6.

Sunday, October 02, 2005

Linux Router (WRT54G)

I finally started using my Linksys wireless router (WRT54G) which runs Linux in the form of OpenWRT for my home network. Although nothing much has changed from the service point of view, the laptops still see a wireless access point connected to the internet, it means I can run wondershaper (can't recommend it enough) on it which allows me to keep the ADSL link useful for other people even when I am doing a large downloads/uploads. The only other small change is that it runs a DNS cache so recent lookup should be faster and if does hostname resolution for machines on the lan (192.168.20.1 resolves to router.lan). That was my geeky achievement for the weekend.

Content - Creator and User Divide

Why in the world of VLEs do we have this divide between the creators of the content and the users of it? In the typical VLE the creators of the content are the staff who are running the course and the students who are taking it. Wouldn't it be nice if everyone could create content? My idea is to allow everyone who has an account in our VLE (Bodington) to create content. As Bodington isn't based around the idea classes and courses it is reasonable easy to grant administrative rights to each user in thier own little area and have them manage it themselves. In my next posts I'll write about why I think this is a good idea and how it might work ing Bodington.

Friday, September 30, 2005

Identity 2.0 / Shibboleth

On philwilson.org I found a post about Identity 2.0 with a link to a really good presentation. The reason that it was interesting to me was that in my world everyone it talking about Shibboleth and extending it to handle multiple federations and allowing it to give out more information about people, which isn't what it was orginally designed for. The Identity people are more about just being able to prove some facts about yourself (one of which could be the university you are studying at and the course you are one). The only thing that Shibboleth seems to give you is the ability to say I am from Oxford and work in the Computer Center without saying that I am Matthew Buckett, so I can remain semi anonymous.

Thursday, September 29, 2005

Sakai Developers Meeting

Monday and Tuesday of this week I spent at a Sakai Developers meeting in Cambridge organised by CARET. It was an interesting couple of days and I got to see a little into the world of Sakai. They are progressing along nicely and it seems that they are getting adopted at an institution level in quite a few places.

Wednesday, September 28, 2005

Tea Towel Holders


Cloth Holder
Originally uploaded by buckett.
I got these as a christmas present last year, they are simply the best tea towel holders I have ever seen. Inside the wooden jaws is a small marble that can move vertically. You just slide in the tea towel and the marble falls down and you can let go and the weight of the towel wedges the marble onto the towel holding it in place. Then to remove you just pull upwards and sideways and the towel comes out. Beautifully simple.

Friday, September 16, 2005

Tomcat Security and Development

Often when I am doing development with Bodington on Tomcat I have very little security enabled in the application so that I can easily login and so on. To slightly improve things I always make sure my development version of tomcat is only listening on the loopback interface. Todo this you just edit the connector section of your server.xml file: <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" address="127.0.0.1" /> adding in the address bit, then only people on your machines will be able to access the tomcat web server. Just remember demoing things to other people becomes a little harder.

Thursday, September 08, 2005

PostgreSQL and datetime

I have just been looking at getting an old copy of Bodington to install. I wasn't even after having a working version, just a complete database schema so that I could see how the schema had changed between versions. I tried installing a WAR on my desktop box but it seemed to be failing when trying to create a table with a column type of datetime. Looking in the PostgreSQL 7.4 documentation for date types I found that datetime was no longer a supported date type (is was in 6.x). However after a bit of Googling I found that you can alias a type by creating a domain, eg:
upgrade=# \h CREATE DOMAIN
Command:     CREATE DOMAIN
Description: define a new domain
Syntax:
CREATE DOMAIN name [AS] data_type
    [ DEFAULT expression ]
    [ constraint [ ... ] ]

where constraint is:

[ CONSTRAINT constraint_name ]
{ NOT NULL | NULL | CHECK (expression) }

upgrade=# CREATE DOMAIN datetime as timestamp;
CREATE DOMAIN
Creating this domain means that the database now thinks a datetime is the same as a timestamp and doesn't complain when it is asked to create a table containing one. Later versions of Bodington have the SQL changed so that it doesn't attempt to create timestamps, but people will probably see this bug if they try a new copy of Bodington with a very old PostgreSQL database.

Bodington 2.6

A little late but finally a new Bodington Release has been made. This release adds some new tools and fixes a few bugs, a fuller description is available in the release notes on SourceForge. Now onto working on Bodington 2.8!

Saturday, July 16, 2005

Wireless Networking and Walls

One problem with having too much PC junk lying around is finding somewhere to plug it in. One piece of hardware I have had a problem finding a home for is my Linux server. It's only a small desktop PC that normally runs headless but it still produces too much noise to put anywhere in the house. However we do have an outhouse (old outside toilet) which has mains power in it. So my first plan was to connect to the the PC to the wireless network we have at home. I had a spare wireless card which I installed in the PC and then tried to get a signal. I could sometimes see the acess point but I couldn't manage to get a reliable connection no matter how I positioned the antenna. Moving the access point was also not an option because it is an intergrated access point and ADS router and I don't have a phone socket in a better position. Then I had the idea to look at powerline networking (networking over mains), commonly known as homeplug and discovered that they have now come down to acceptable price (20 pounds per adaptor). After a little bit of research I opted for a pair of Acer Homeplug Adaptors from eBuyer. When they arrived I plugged them in they it just work, so now I happily have a reliable network connection between all my PCs.

Friday, July 15, 2005

del.icio.us and Bodington

The current trend in the Bodington community is to try and incorporate preexisting services into Bodington rather than building the extra functionality into Bodington. The hope with this design is that these services can then be interchanged at a later date without too much disruption to the VLE. I have a little bit of experience in this area from the work I did on the Ramble Project which looked at intergration of blogs into a VLE. In Ramble an external blog server was used to provide most of the functionality and then a little bit of code was written for the VLE to allow them to work together. One tool that I think has the possibility for intergration is in the area of social bookmarking. The service leader in this area at the moment is del.icio.us which provides the user with the ability to bookmark URLs and access previous bookmarks from any internet connected PC. My idea is provide the ability for users of Bodington to be able to create a "Social Bookmark Resource" which uses del.icio.us to store all of the data behind the scenes. The way I would do this is del.icio.us uses the concept of tagging where every URL that is bookmarked is tagged with one or more keywords that the user decides are related to the content of the page. So I might tag the URL http://www.crockford.com/javascript/ with the tags javascript, programming & web. Now although most of the tags people use are common there is nothing stopping me from creating a unique tag and this is how I would build the intergration with Bodington. When someone decides to create a "Social Bookmark Resource" in Bodington it has a id associated with it and this combined with the web address provides a unique tag. For example if I create a resource in Bodington at http://test.bodington.org/bodington/site/myfloor/bookmarks and this resource gets the ID of 342234 then any bookmarks that want to be added to this resource should be tagged with 342234@test.bodington.org del.icio.us then provides an API through which queries can be made and using this Bodington can ask del.icio.us for all the bookmarks that are tagged with 342234@test.bodington.org and these can then be rendered within Bodington. This means users who are already using del.icio.us can contribute through thier existing accounts and have the entries they add also show in thier own bookmarks.

Wednesday, June 29, 2005

Bodington as an Institutional VLE

Open source software for elearning mentions that Bodington isn't scalable as one of the reasons for not deploying it at Manchester Metropolitan University. While it may have some issues scalability doesn't seem to be one that we hit here at Oxford University where is deployed as an institutional VLE.

Tuesday, June 21, 2005

Technorati

After Paul mentioned Technorati to me at work I though I had better have a look. So now I have signed up and have a Technorati Profile. The link is to to prove to Technorati that I do actually own this blog. With Bodington having such a unique name it makes a technorati feed nice and easy. If you ever have a chance of naming a product, pick something that doesn't get many google hits, it will make marketing on the net easier and the domain name cheaper.

Sunday, June 19, 2005

Java 1.5, Ant 1.6 and rmic

I've just been compiling Bodington on Java 1.5 and I noticed that the rmic task was always running. After a bit of googling I came across a post on an ant developers blog which explained what was going wrong and led me to the bug report. I've committed a fix to WebLearn HEAD and will probably push this fix across to Bodington HEAD next week.

Saturday, June 18, 2005

Java DatabaseMetaData.getDriver()

In common with other parts of the Bodington system the mapping of Java objects onto a relational database (O/R mapping) is done by some custom code[1]. This code needs to know which database product it is connecting to so that it can work correctly (JDBC API and SQL are almost there but not quite). Now normally this is done by looking at the JDBC class name and setting the flags accordingly ("org.postgresql.Driver" is the PostgreSQL driver). When Bodington is making the JDBC connection itself this is not a problem as it knows the driver class. However I have recently been allowing it to use a JNDI database connection pool supplied from Tomcat. Now when you get your pooled connection from Tomcat you don't know what database product you are connected to. I was hoping that I would be able to do something like:
connection.getMetaData().getDriver();
which would return me the class that is being used as the driver from which I could work out how to configure the database mapping. But no, this call doesn't exist. I can find out the display name of the driver, the version, but not the class. This means that if you are using JNDI to get your database connection you will have to tell Bodington the flavour of database it is connecting to which is unneccessary configuration as you have already given this information to Tomcat and just leads to situations where you are connecting to PostgreSQL but Bodington is configured to talk to Oracle. [1] - The reason for this is that it was written a long time (around 1999) before product like Hibernate and iBatis became the established way of doing this.

Friday, June 17, 2005

java.lang.String

String text = "1234";
text.substring(4).startsWith("5"); // is false but works.
text.charAt(4) == '5'; // NullPointerException
I came across this suttle difference in the String class when chasing a bug in Bodington where we were getting a NullPointerException exception from attempts to split up a URL (don't ask). I'd guess that the charAt is faster (substring creates a new string object) but unless your software is doing 1000s of tests like this it probably doesn't matter.

Tuesday, June 14, 2005

Shibboleth and Groups

In the world of Shibboleth when you have been authenticated and visit a resource various bits of information can be released to the provider of that resource to help in the decision about whether to allow you access to that resource. One bit of information that people keen on mentioning when talking about this situation is the groups that you are a member of so that an provider can have a rule such as "only allow in people from Hull University who are studying Maths" but how does the provider know which group represents the people studying Maths? Does the group include staff members as well? Is seems that in the world of Shibboleth there needs to be a group discovery mechanisms so that a resource provider can discover which group provides the appropriate set of people.

Bodington Date Formatting

In quite a few places in Bodington dates are formatted and displayed to the user. All these dates are formatted according to the default locale of the java platform which is normally picked up from the system settings. On Linux/UNIX the way to change the date formatting (and the system locale) is to set the LANG environmental variable before starting the servlet container. To have dates formatted for the UK use something like: export LANG=en_GB.UTF-8 I'm not so sure about Windows but I'm guessing that is you change your settings in the control panel Java should pick them up.

Monday, June 13, 2005

Book for Programmers

If you write any amount of code then I would recommend you read Code Complete. I would give it a glowing review here but many people on Amazon have already done so. I've only ready 100 pages so far but am really enjoying it and realising how much I have to learn.

Shell Trick

From the Debian planet I found a really nice shell trick.

Wednesday, May 25, 2005

Bodington Templates

At the moment Bodington has it's own template language that are compiled into servlets (very similar to JSPs). When building a Bodington distribution you can choose to precompile templates to check for errors but these compiled templates can also be shipped with Bodington which means Bodington runs slightly quicker and the user doesn't need a JDK (just a JRE). The downside is that the compiled templates increase the size of the distribution by about 25% (7MB to 9MB). Is it worth distributing the compiled templates?

Thursday, May 19, 2005

Log4J and PatternLayout

I recently moved all the logging in Bodington to use Log4J. Now when I originally did the translation I wanted the logs to look very similar to the output produced by java.util.logging to ease the transition. Under java.util.logging when an message is logged with an Exception object the stack trace from the Exception is written to the logs as well as the message which is often very useful. Now looking at the Log4J JavaDocs for 1.2.9 it said that only XMLLayout would deal with the Exceptions in the logging calls. Because of this I decided I would write a simple Log4J Layout that would write the stack trace to the logs. The result was a class called SimpleThrowableLayout. Now although this class works well it is nowhere near as flexible as PatternLayout (it extends TTCCLayout), but I was reasonably pleased with it. However the other day when testing some different logging setups I discovered that PatternLayout does actually output the stack trace to the logs when you ask it to output the message (%m). I was not very happy! But at least I now have a better understanding about how to write a Log4J layout. NB: PatternLayout has undergone a major refactoring in the later Log4J revisions and the JavaDoc has been corrected so hopefully this shouldn't bite too many other people.

Wednesday, May 18, 2005

Bodington Quickstart WAR

Bodington has a bit of a reputation of being difficult to install. To allow people to get going with Bodington quickly and easily I have been working on a quickstart WAR file. This WAR comes complete with a precreated database and is already configured to run out of the box. Performance probably isn't going to be great and memory usage will probably be moderate but it should work. Currently my work is against the WebLearn codebase, but it should be pushed across to the Bodington HEAD shortly. For anyone who would like a sneak preview you can grab a Quickstart copy of WebLearn.

Thursday, May 12, 2005

Hacking Bodington Installer

Had a rather productive day today getting the Bodington database installer to be callable from ant. You can now call an ant task (database-create) that will cleanout your Bodington database and install a new set of tables. This is part of my current work to remove the need to run SetupServlet before running Bodington. Removing the need to run setup make both development and new install easier. All this work involved quite a bit of refactoring of existing code and without a good unit testing suite I am a little worried that I may have broken something. Hopefully I should be able to put up a example WAR file showing the new setup free Bodington shortly.

Wednesday, May 04, 2005

Java IO (StringBufferInputStream and Reader)

I have a method with a signature of doStuff(InputStream input), now I want to be able to pass in an String and it seems the sensible way to do this would be using StringBufferInputStream but sadly this is deprecated. The recommended replacement is StringReader however there is no easy way to get from a Reader to an InputStream. Instead you have to bodge it with something like new ByteArrayInputStream(string.getBytes()); Sadly it seems that this bug has been around far too long and Sun still havn't fixed it.

Wednesday, April 27, 2005

Bodington 2.4.2

Well Bodington 2.4.2 is finally out the door. The new feature in this release is the intergration of Guanxi. Hopefully I can get on with hacking away at code again.

Sunday, April 24, 2005

Linux on an Access Point (WRT54G)

I've had a Linksys WRT54G for a little while and have never managed to get it working in client mode (joining a network as a client, like a wireless bridge) correctly. I had been using the Sveasoft WRT54G firmware but without much sucess. I then found a page about doing client mode with OpenWRT and after a bit of tinkering with WEP keys and the like, I now have it sucessfully joining the wireless network and providing network access to my Playstation 2. My inital problems were that I still had lots of settings in NVRAM from the earlier firmwares and I should have reset the nvram first with the command "mtd erase nvram". Ohh well you live and learn. OpenWRT is a nice distribution for the WRT54G if you are reasonably comafortable at a linux shell. It provides a very basic install and then you add on the packages you want (I just added a ssh server/client; dropbear).

LAMS and Open Source

I found out from a Auricle post that LAMS has finally been release as open source software. Now it's good that people are adopting open source software, but it seems that LAMS at the moment doesn't have open development model. They have release (under the GPL) version 1.0 of LAMS but this is no longer being developed and they are now working on version 1.1 which is a change in architecture (significant rewrite). They are releasing documents about 1.1 but is seems that the development process is still very closed to outsiders (no public mailing list/forum/bug tracker). This will probably come shortly, I am just used to seeing projects on sourceforge where you can get a feel for a project by glancing through the mailing list archives and looking at bug reports. But they do have a nice simple clean website (where is the RSS news feed?) which is missing from another piece of open source software that shall remain nameless.

Tuesday, April 19, 2005

Google Maps UK

We finally have Google Maps UK, thanks to davblog for finding this.

Thursday, April 14, 2005

Buying a Parking Ticket

I went to buy a ticket for the car park today. I inserted my pound coin and waited for ny 40p change and parking ticket. However instead I got 30p, a parking ticket and a credit note for 10p. It seems the machine was out of change. Is a parking meter allowed todo this, I didn't get prompted if I found it acceptable to get a credit note. My credit note just metions the value, nowhere does it say where to get your money back. Bah enough moaning.

Java finally block

Just had a quick discussion about finally blocks in Java code. If an exception is thrown in the catch block does the finally block still run?
class Test
{
        public static void main(String argv[]) throws Exception
        {
                try
                {
                        System.out.print("Hello");
                        throw new Exception("E");
                }
                catch (Exception e)
                {
                        throw new Exception("F");
                }
                finally
                {
                        System.out.println(" World");
                }
        }
}
The answer is:
java Test
Hello World
Exception in thread "main" java.lang.Exception: F
        at Test.main(Test.java:12)

Wednesday, April 13, 2005

Election Shutdown

vle@jiscmail.ac.uk has shut up shop while the election(UK) is being help on advice from the Cabinet Office. What is the UK coming to?

The Different Worlds of Open Source

The original world of Open Source software came from a UNIX background, where the aim was to produce better tools (I think of things like BSD UNIX, GCC). In this world things are reasonably easy, the aim is to produce a technically good tool. If we make an analogy it is like making a good hammer (bash in UNIX), people might prefer slightly different hammers, but the job is clearly identified. With projects like Bodington where we are trying to build a VLE (or something), it is similar to creating a building. There is an idea of what it has to do, but even that is not set in stone. Things are never simple. I want a set of blueprints.

Tuesday, April 12, 2005

No digital TV yet

I'd been looking forward to getting digital TV in our new house but when I came to check reception I found that we were not able to get Freeview. Now I can understand this (we are at the bottom of quite a steep valley). I was hopeful that the transmitter that our ariel is currently pointed at was going to be upgrade in the near future. However I was unable to find any plans on the web about the schedule of tranmitter upgrades (Freeview sites didn't help). I finally found that the government had prouced a Guide to Digital TV which outlined that basically if you can't get digital TV now you will have to wait until the analogue tranmission gets turned off!! Now looking on the digital TV website the Carlton ITV region won't have it's analogue trasmissions switched off until 2011. Only 6 years to wait, will you people get your arse in gear. And no I don't want to pay Sky/NTL/etc a subscription.

Sunday, March 20, 2005

JBother - A Groovy Jabber Client

I have found a new Jabber client called JBother, for me it's just right. It's written in Java and the code is reasonably understandable so maybe I will be able to knock up some patches, at the moment it seems to be in a useable state so I can also use it as my normal Jabber client. This means I will probably stop using Adium (MacOS) and Gaim (Linux). Adium is a nice client (very pretty) but Gaim just keeps annoying me (do I really need to see the login stuff?).

Thursday, March 17, 2005

Calendaring on the Web

CalDAV which seems to store iCal events in seperate files on a WebDAV server looks to be the likely cadidate for calendaring on the web. It is reasonably simple but provides most of the functionality people are after. The question for me at the moment is "Is anyone writing a Java implementation?"

Tuesday, March 15, 2005

Guanxi Talk & HSQLDB

Today I poped into a talk my Sean (from UHI) on Guanxi, he processed to give a quick introduction to Shibbiloth and how they are using Shib in Bodington which was very good. He also did a very good job of selling Bodington, hopefully some people will give it a go and we can grow as a community. In other news I've hacked up a patch for HSQLDB give it support for bitwise operators (AND (&) and OR (|)), this is useful for Bodington as it will then mean that we can use HSQLDB for an easy Bodington installation and JUnit tests. Hopefully it will end up in the main HSQLDB codebase.

ELF Developers Meeting

Yesterday I went to the ELF (ELearning Framework) developers meeting that was being help here in Oxford. It was an interesting morning with discussion about how the various projects are comming along. Not knowing much about ELF before I found it quite interesting. From a developer point of view I do have some concerns. At the moment they seem to be discussing how the framework should be described and leaving the contents of it till later. At the moment there is little in the way of suggested standards which doesn't sit very well with me, when I am looking at a project that is trying to build a plugable framework for elearning I would hope that the interfaces would be of primary concern. Instead the ELF leaders seem to have the aproach of letting people do projects and then trying to pull standards, interfaces and tools out of them. To me this is a bit like saying to a writer please write something for us in this language that hasn't yet been defined, but it will probably have verbs and nouns, but we'll decide what they are after you've used them. And your actually writing chapter 3 of this book and someone else is going to be writing chapter 2 and 4. I reaslise that creating standards is a very difficult process but I like being about to look at something and say "it doesn't do X, can we add it". At the moment you say "will X do Y?" and you get "probably". I'm probably being a bit critical here (bad habit), ELF is trying to pull together people who are thinking about developing products for elearning and getting them talking about standards and how things might work together.

Saturday, March 12, 2005

Bodington and Safari load times.

At the moment most users of Bodington are advised to use either Internet Explorer or a Gecko based browser (Firefox, Mozilla) for best results. Although this is ok for most people it doesn't reflect well on the software that we can't be bothered to support people with smaller market shares. It's not that Bodington doesn't work full stop with other browsers, it just doesn't work very well. As I mentioned in my last post popups didn't work on Safari, but as well Safari has very long page load times with using Bodington. Being a Mac user at home I thought I'd spend a little time looking at this. Now the page load time only seemed to get bad once you were logged in (in the 3 frame layout). When I say bad I mean about 13 seconds from making the request to getting the fully rendered frameset back, in comparison Firefox on the same machine takes about 3 seconds (still not good). During this wait the processor always seemed to be working hard so I didn't think it was a networking problem. Now I do my development on a 1Ghz iBook so I'm not running on antique hardware but I was running Bodington on the same machine and Java on Macs isn't fast (Java on i386 is) so I used Firefox to save the entire frameset to the local machine to eliminate the time taken to generate the page. It seem that Firefox doesn't correctly adjust the CSS links when downloading so when I tried to view the page on the local machine I didn't have any CSS rendering. Although to my supprise the rendering was almost immediate in both Firefox and Safari. Correcting the relative CSS links to all three framesets gave me back the long page load times so it seem that the CSS parsing/rendering engine in Safari isn't anywhere near as good in terms of performance as Firefoxs'. In some ways I can understand, currently the same CSS that is used in all three framesets is over 4000 lines: bash$ wc bs_virtual_author.css 4759 9256 160091 bs_virtual_author.css At least I know where the problem is now.

Bodington and Browsers (MacOSX)

Bodington seems to have some cross browser issues:
Safari
Works (slowly), but some popups get automatically closed (should be fixed now).
IE
Might work but IE seems to have a bug in that it can't connect to http://localhost:8080/ the alternative address http://127.0.0.1:8080/ works but because Bodington insists on rewriting all the URLs to the "correct" hostname all the links end up at localhost...
Opera
Login page comes up but clicking on the Login button goes nowhere
iCab
Most stuff seems to work, although it's CSS implementation is very poor.
Firefox
Works a treat.
So although Bodington likes it's accessability standards it doesn't like browser ones (I'll admit that the IE problem is IE's fault). It's at times like this that I love databases.

Saturday, January 08, 2005

Starting Out

Well here goes. I suppose I should start with why blog, curiosity about wether I will find it interesting I think. As the saying goes "Don't knock it until you've tried it".