Happenings

Maths In IE

Via Jacques Distler comes news of a plug-in for internet explorer that allows it to understand MathML: MathPlayer.

A great and useful tool it will be given that there will be no new versions of IE made available for free download (according to Microsoft). But it shouldn’t be up to a third party company to fix the deficiencies in the browser: Microsoft, if it is to show any commitment to the web, should have added this a long time ago.

Sadly, it won’t happen. If IE is going to change, it will be the hackers that change it. Or people could try changing browsers. Firefox is brand new, much faster than anything else on the market, will be constantly updated, and does everything you could possibly want from a browser. It has a large development community working on extensions to make it do even more.

Take back the web, as the new FF motto goes, get a browser that works well.

This says it all about MS: Microsoft House XP

Pipes, The Bible And Nexus

This edition of random links will be much terser than usual, because I lost the first draft and don’t have time to redo it. Doh.

  • Nexus – A great idea for screen scraping partial content RSS feeds, but the description makes it sound slightly naive.
  • Introduction to FOAF – A fairly comprehensive introduction to FOAF, for anyone who doesn’t know what it is.
  • Pipes – A good tutorial on command line piping, for computer users of all levels.
  • Hot Links – Didn’t pay much attention to it the first time I saw it, but I have rediscovered it as a fantastic link hub.
  • Find In Firebird – Always forget the key that does this. A great shortcut.
  • 213 Thinks Skippy Can No Longer Do – .. In The US Army. Hilarious.
  • Thesaurus Protocol – A protocol for accessing thesauri over HTTP.
  • Crowd Simulation Framework – A framework for simulating crowds in Java. Handy for displaying large scale emergent behaviour.
  • Optimising Firebird – Seen most of these before, but a useful resource nonetheless.
  • Things To Not Test – Political correctness gone mad.
  • XML Is Not OO – Sound reasons why XML should not be shoehorned into OO design.
  • I Despise You And Your So-Called Taste – Funny and scathing remarks about your favourite band, or album.

That’s all. The coming week will be post-lite, but stay tuned.

Java 1.5

Yesterday, the first beta of the long-awaited Java 1.5 finally went public. Sporting a large number of new features and classes, this new version will make every Java programmers life easier.

Firstly, there are the new types and constructs.

The new enumerated types have been in demand for a while, and work similarly to the typical C/C++ idiom. In terms of Java, they are being compared to public inner classes; encapsulated but accessible.

Auto-boxing takes away some of the hassle of casting primitive types to their respective wrapper classes. It should automatically create a reference, r, to the primitive, p, such that r.value() == p. Not a huge change, but it will help cut code.

Much bigger is the enhanced for loop. As part of the introduction of Generics – the new method to allow operations of objects of varying types safely – the new for loop will provide cleaner iteration over any Iterable class (pertinently, anything in the Collections framework). Instead of explicitly creating iterators and updating at each stage, a pseudo foreach syntax will be used. Example: for (String s : c). This will take each String S in c (most likely a collection), and perform the loop operations on each one. Very clean, very nice.

There are also some interesting new classes, both extending the old and starting from scratch.

The Collections framework has been updated in several areas. Queue provides an interface for holding Objects before processing. This has been implemented by, among several others, the PriorityQueue and SynchronousQueue classes. A more extensive list of the changes to Collections is available.

Other changes include:

  • Scanner class – a method for parsing primitives and Strings using regexes.
  • Removal of RMIC – No more need to compile RMI stub classes explicitly.
  • Improvements to garbage collection – It was a little lacking before.
  • The Concurrency Framework – Aiming to do for concurrent applications what the Collections framework did for data structures; providing a simple, consistent way of doing concurrency.
  • Improved XML handling – Supporting both SAX and DOM parsing.
  • Making JFrame.add() equivalent to JFrame.getContentPane().add() – a small, but simple enhancement.
  • Networking Enhancements – Improved support for various standards (including IPv6) and a minimal set of mandatory protocol handlers.

All in all, Java programming just got a lot simpler.

Elephant

Although it has been billed as a shockingly brutal retelling of the Columbine massacre, a must-see, Gus Van Sant’s Elephant is turgid and dull.

Lasting little more than an hour, it seems to last forever. Following the kids around the corner is supposed to bring the audience closer to them, but in reality it just makes us care less about these uninteristing, one-dimensional portrayals of stereotypical school life.

The killers implied motivations (playing games, nazism, and being gay) are picked from the usual list of pop culture bogeymen, and never justified (not that they can be). Their acting is also atrocious. They don’t seem interested in it at all.

This film had no redeemable qualities. Avoid.

Invalid Id Values

Without realising it, for the last few days my XHTML has been invalid. While in pursuit of markup perfection, that will not stand.

The problem was that a blog entries title began with a number. That’s ok. However, those titles are used as ID values on the headers for that entry. ID values aren’t allowed to begin with numbers – I have no idea why, but that’s how it is.

The fix: prepend an X to the title.

The moral: just because an XML parser (my browser) didn’t notice the error, doesn’t mean that it’s valid XHTML. Validate, validate, validate.