|<< October 2004||December 2004 >>|
On one of the programmer-types mailing lists I read, there's an occasional recurring discussion about the British Computer Society and its relevance. Relevance to the actual working programmer that is. The discussion frequently branches off into, or originally started with, questions about chartered status, the IEE, Eur Ing, interview technique, further qualifications and generally how you can tell if someone's a good programmer or not. The general feeling is that the chartered institutions, and the BCS in particular, don't serve jobbing programmers very well. I'm inclined to agree. I was keen to get on the CEng track when I started working after university, but found the IEE singularly unhelpful because I wasn't in a conventional engineering environment.
Anyway, I'm now prepared to do a complete volte-face on the BCS following the announcement of their 2004 Technology Awards. A bit of software called OKI Print Wizard PRO was a medallist in the Applications category.
OKI Print Wizard was developed for OKI by iSTRAT, so congrats to them. The code was written for iSTRAT by the wonderful
peopleperson at JezUK, so congrats to themhim too.
The BCS? It rocks!
[Add a comment]
We've all been invited to a Hindu Diwali party this evening. Little Halster's a bit off-colour today, but I really hope we'll all be able to go. Daniel will be thrilled to go to a party with actual fireworks banging off in the garden. On a more personal gutbagish reason, and without wishing to resort to crude stereotypes, there's bound be a ton of tip-top nosh. Hurrah!
Joy, happiness and prosperity to you all.
Hal was still going strong scoffing rice and yogurt at gone 9 o'clock, and it was the Bean who flagged first. Just eaten a big pile of gulab jamon. Feel a bit queasy now :)
[Add a comment]
The proposal we made for the ACCU Conference 2005.
IOStreams is one of the lesser known areas of the standard library.
While most people are now entirely comfortable slinging around
Sure, writing an operator<< isn't too big a deal, and maybe the bold have even come up with a custom manipulator. But streams? Where do they come from? Where do they go?
In a fun filled journey into the Standard Library's dark continent, we will attempt to illuminate the mysteries of IOStreams and reveal the streambufs beneath.
Staring with a quick tour through IOStreams excitingly diamond shaped class hierarchy, we'll introduce the concepts of sources and sinks (i.e. Streams which read from or write to some external destination) and filters/adaptors (streams that modify data in flight). We'll also talk about some of IOStreams little idiosyncrasies – why some buffers might not actually buffer, and why read-only buffers sometimes need to be writable.
By way of illustration we'll be walking through a logging stream. It writes log messages to an arbitrary number of other streams. The destination streams will be a combination of fstreams, stacks of filters, logging daemons on other machines, and whatever else we need.
By helpful coincidence, Boost has just accepted a new IOStreams library which uses the same source/sink and filter concepts. Code we present might be based on it. It would be remiss of us if we didn't at least reference it.
Here's the proposal I sent for the ACCU Conference 2005.
XSLT is now a mature technology. It's widely used in web, document composition, electronic and print publishing applications, among others. Increasingly, XSLT styling isn't the last little bit at the end to create the HTML, but at the core of document creation and processing pipelines. Indeed it isn't uncommon, particularly in publishing applications, to have multiple XSLT transformation steps chained one after the other. XSLT stylesheets are getting larger and more complex, containing significant chunks of business logic.
XSLT, while addressing the specific issue transforming XML, is Turing complete. It's a real programming language, and people are doing real work with it.
Development is easier with automated testing. It's a given. That's why Ant integrates JUnit, and why C++ programmers up and down the land spend hours developing test harnesses because CppUnit just isn't quite right.
How do you test an XSLT stylesheet?
I'd like to present a tool for XSLT testing. Tests are described in an XML vocabulary. The test definitions are cranked through a set of XSLT stylesheets to generate Java source, more XML and yet more XSLT. The Java sources are JUnit test suites which drive the XSLT test procedure. It's all stitched together with Ant.
It's all quite neat from an exposition point of view. It's an application written in more or less equal parts of Java and XSLT. It uses multiple XSLT stages. It needs testing too :) While the code I have is in Java, it can be adapted to C#, C++ or any language where you have an XSLT processor and test harness available.
I think it could make quite a snappy 45 minute session.
At lest this bloke says so - http://www.pyrasun.com/mike/mt/archives/2004/07/10/18.43.16/index.html
It's true that some things are easier to test that others. It's true the your definition of a "unit" can make a significant difference. Systems with a lot of state stashed in databases are a pain. GUIs of all sorts - web apps, Java, whatever - are also very difficult to test.
I'm doing a lot of work where significant things happen in XSLT, and so are more and more other people. Testing XSLT is a tedious, generally extremely manual, business. I'm just trying to make is a touch easier.
I think what that geezer was saying was that some of the 'thought leaders' don't give enough emphasis to the end product vs. using there methodology.
I'm not saying that unit testng isn't a good idea, and if you are programming in XSLT then being able to test it like that is a good thing. Probably more so than it is with Java as the side effects are harder to see.
Just had my both my proposals for the ACCU Conference 2005 accepted. This is both exciting and nervewracking (but also economic - speakers get discounts). The keynote speakers include Bjarne Stroustrup, so pressure is on to be really quite good. My chum Paul and I will be burbling on about C++ IOStreams, while I'll be flying solo on XSLT Unit Testing. Book your places now Code-fans!
I dodged their room prices by spending a night on Kal's floor, then when he "had to" go to an ISO meeting in Amsterdam, a couple of nights in a B&B on the other side of Oxford.
I recently learnt that a colleague of my wife's didn't like George Bush. She didn't believe in the war in Iraq and she was unhappy with the President's domestic policies. She thought Sen. John Kerry was a better man and had better policies. So who is she going to vote for... George Bush. Why? Because George will seek a constitutional amendment to ban gay marriage. The real irony is that this is a black woman.
The tragedy is that John Kerry doesn't support gay marriage, but this ladies preacher has her convinced that anything short of a constitutional ban will result in gay marriage being legalised and that her church will be forced to perform gay marriages or be destroyed. It isn't true. Nobody can force a preacher to marry them, gay or straight.
This is the land in which I live. Where Karl Rove plays the fundamental Christian right like saloon bar piano.
The truth is, that if George is re-elected, the issue of gay marriage will disappear... until the next election.
God bless America
And God help the rest of us.
Brain scanners can probe your politics
Scientists are using brain-scan technology to study what makes a Republican's mind different from a Democrat's.
Further "Moral Issues" is pretty much code for opposition to Gay rights and abortion. These are such dividing issues that the lines (for and against) were drawn very quickly with little room for discussion and reason.
My point is a country, especially one as large, diverse and globally significant as the US, should have it's leaders selected by a population that has considered all of the issues. That didn't happen. In truth it rarely ever does but that's the price you pay for a democracy.
|<< October 2004||December 2004 >>|