« May 15, 2003 | Main | May 19, 2003 »
May 16, 2003
Due Date Changes
If you weren't in lecture today, you'll want to know about a few changes to the due dates for homework and the project:
- All homework for the rest of the semester will be due 24 hours after the time in the syllabus (i.e. midnight of the next day). This will allow you some time to think about what we talk about in class and to work with the TA in office hours.
- Part I of the project is due Tuesday, not Monday. Part II is due on Friday, not Wednesday. This doesn't affect the due dates of anything else.
03:28 PM | Recommend This | Print This
XSLT and Programming Rules
Jon Udell's latest column for Infoworld talks about rules engines. I've long thought that we underuse rules in solving programming problems. Later in the article, Jon makes the connection to XSLT. I was mentioning this very thing to my CS330 class just this week: XSLT is probably the first declarative programming language to go mainstream. Prolog and others were fun, but never caught on in the commercial environment. XSLT is a different matter.
Programming in XSLT is so different from traditional programming, that many people don't even think of it as programming. They know its similar, but can't quite get their minds around the idea of a programming language with implicit sequencing. In most popular programming language sequencing is explicit: you put in control statements to change the control flow and in their absence statement execution happens in order. In a declarative programming language, the sequencing is implicit and the order of rules in the program text is (usually) immaterial.
This makes XSLT a challenge for most of us. Switching programming paradigms isn't an easy task. I watch students struggle to fall out of their imperative programming habits and start thinking of problems functionally. One of the things you have to do is learn new patterns. Even more important, and more difficult because it can't learned from a book is creating a new mental model of evaluation. We all develop evaluation models in our heads for any programming language we learn and use these models when we program. As a result, becoming proficient in XSLT will only come about with substantial practice for most of us.
01:57 PM | Recommend This | Print This
FOAF and Trust Relationships
Sam Ruby is talking about how to use FOAF to have one web site vouch for another web site in response to a request from Dave on keeping changes.xml pure (a SPAM issue, I believe). Sam describes a great use for FOAF as a system for inferring trust relationships. Of course, FOAF could also be extended to record those trust relationships explicitly for other purposes.
01:24 PM | Recommend This | Print This
Organizing Data: Notetaker
In response to my Whence Real Integration article, Dan Goldman sent me a link to a product called Notetaker from Aquaminds. I downloaded it and played with it for a while. Notetaker seems like a good tool for keeping track of notes (more on that in a minute), but it doesn't really do what I was talking about, at least not that I could easily figure out. I can type an appointment in a notebook and store vCard info, but I want single entry. When I create an appointment, I want to have it in my calendar and be able to associate it with another store of information. Change it either place, its changed in both places. Same with email. I don't think the problem is with Notetaker, so much as the fact that appointments and email messages don't have URLs. Until those things are addressable in a common namespace, you can't gather easily accomplish what I want.
Notetaker creates and organizes files called "notebooks." A notebook organizes and displays information as outlines on a page. These outlines can contain URLs, vCard data, plain text, pictures, and other media files. The notebooks are indexed for searching. The application can create multiple notebooks so you can have a different one for different projects, areas of your life, whatever.
I usually keep notes in Emacs or Word. They're not necessarily designed for that but they mostly do the trick. Something like Notetaker might be a good tool. I have one reservation: yet another proprietary file format that I'm giving a part of my life over to. I've resigned myself to having things in Word, but I'm not sure I want another. As far as I can tell, it doesn't support OPML. That would add some interest and turn the tables. Now I'd have a tool that produced a format I can use for other things.


