My design pattern seminar hungers after some real code experience. They want to apply their new design pattern know-how. So I was looking for something like a "before-after" piece of sourcecode. Didn't find anything decent yet. Most things are either too complex to handle in 90 minutes or too special. Luckily a student said he would bring in a together plug-in which was coded badly and which we could try to improve using patterns. If you know some good (actually really bad) small source code let me know.
While looking for such bad examples I ran across a draft "Refactoring to patterns" by Joshua Kerievsky. Looks very promising if you want to learn how to improve an existing design. I am a firm believer of the refactoring approach.Seems like we can always improve or adapt something existing but we have an extremely hard time designing something from scratch. (I owe this to Tony Hardee, a former colleague of mine who explained to me that the proper way to build a new bank is IT is to buy an existing smaller but good one and migrate/improve it)
Last night in my document construction lecture I noticed that one of my XML editor packages had expired and I was stuck without an XSL processing engine. A student asked whether the modern browsers could render our xml as well and thats when I tried the mozilla browser . And wow - what a nice xslt engine it is! I changed my little sample (we had made a dtd for the menu of the university restaurant), added a stylesheet declaration and dragged the xml into mozilla. No sweat and the rendering is excellent. I guess I'm simply too much of a server side person to give it a try earlier. Look for Mensa example in my publishing lecture to get a simple example to play around with.
I found two excellent papers on secure software development. One is web specific and the other one more general with lots of useful links and explanations. Good explanations of identity propagation vs delegation vs impersonation and different access control methods. No capabilities though. Find them in my commented bookmarks page.
How naive pre 9/11 September books on privacy can sound - looking back. Michael A. Caloyannides' book shows nicely that every activity on a PC leaves traces which are almost impossible to wipe out. It's only a question of money and effort. See my literature entry for more info. There have been some wired news lately about identity theft and the problems it causes to victims. In the US those victims have little chances to sue e.g. credit information companies. Those companies OWN the private information because they went through the trouble collecting it.
Armin Weichmann of MAN/Roland held a very interesting talk on the new Job Definition Format which is supposed to unite all workflows within a print job. It is by far the largest industry xml schema that I've seen so far and a very interesting one too. The latest specification is available from the CIP4 consortium. The workflow is defined indirectly through dependencies of defined resources. Another feature of JDF is that it concentrates ALL aspects of a print job in one xml document. This means that many different aspects fold into one instance. Asked about the consequences of JDF Mr. Weichmann said that many print shops will be forced to do a complete re-engineering of their processes anyway in the next 10 years - an ideal base for the hierarchical control model of JDF.
JDF is also an example of XML Schema at its best. DTDs could hardly model the data types needed for JDF. It is a data model after all. JDF is still surprisingly close to a document (or what the print engineers call a job folder attached to the printing machines): It grows during execution like a regular document grows during the authoring process. This raises a question: How much does the model owe to the fact that it has been created using an XML modelling process and not a database schema? Sureley, many parts of the model will end up being stored in a database - but the model itself is very much recursive and extensible. Not something that database schemas are well known for (not counting special models like polygenesis where even attributes are turned into relations.)
You can find Mr. Weichmanns talk here (5.2 Mb zipped ppt.)!.
I've just received this paper from two friends of mine. It fits nicely into one of my favourite topics: the social side of software development. The paper shows what enterprises have to do if they want to introduce a re-use process. Re-use assets (documentation, architectures, patterns and code) as well as social and kultural factors are covered. The authors argue that software development without re-use will be possible not much longer. Read this paper if you need to stock up on software engineering technology or if you still believe that technology comes first in a project.
An introduction into Distributed Systems with real world examples. Also covered are some key terms of DS. Finally different middleware technologies are introduced, from simple socket bases services to the latest and greatest in web-services and Peer-To-Peer. Future lectures will drill down into the gory details of distributed security, transactions, programming models, fault-tolerance, Design of DS etc.
Usability engineering will establish itself within IT and move more of design authority from business to IT. Web accessibility does not play an important role right now but XML based systems will have a big advantage here. More on page evaluation, web specific look and feel and finally some ideas on improving kriha.org by using its generation process.
I'm reading the O'reilly book on p2p right now, edited by Andy Oram. Very good reading. It even has an introduction by Nelson Minar (from the Dist-obj mailing list ). Interesting to see how far we've gone away from the original “ every host is a client and a server ” to a largely asymmetric network architecture. P2P approaches have it now twice as hard to scale because they need a more symmetric network bandwith, e.g. because every participant does a lot of background replication as well. Hope to find some good examples for my lecture on “ distributed systems ” at the Hochschule der Medien
Who said the time for buzzwords in computing is over? Looks like Billability is the latest and greatest. If I listen to my friends in other software companies it sounds like either the economy is picking up steam soon or we can expect major layoffs around X-mas time this year.
Read about Internet2 , The End-to-End Performance Initiative. A variety of white papers mostly from Universities. Discussed are the problems for users to tweak TCP/IP parameters manually to get better performance (obviously more self-regulating algorithms are needed here. Other points were the old Quality-of-Service debate for transmissions with specific requirements like video streams.