Archive for September 10, 2005

Read Mail via WebDAV

I’m having a good time running Entourage from home for the first time. Since Mac Office 2004 SP2, I have been able to connect Entourage to our Exchange server via WebDAV. This is a protocol that allows a mail client to read, send, and delete messages via HTTP port 80. This eliminates the need for one’s system administrator to open POP or IMAP ports for users to read mail.

To configure Entourage for webDAV access, specify the HTTP path to your Exchange server, such as http://server.doman.com/exchange. To access public folders, http://server.domain.com/public.

The irony is that we will not be able to do this with Outlook until we upgrade to Exchange Server 2003, which supports RPC over HTTP.

Mac Office Upgrade and Exchange Server

Microsoft just released Office 2004 SP2, which successfully addresses the most major shortcomings of Entourage in an Exchange Server environment. I don’t know whether to be happy or upset. My Mac users will now be able to use Entourage to perform a number of important tasks that were impossible before. At the same time, all of these features used to work fine in Outlook 2001 for OS9, and Entourage is still a far cry from Outlook 2001. Worse still, these features should have been included in Entourage when it was first introduced at least four years ago.

Let’s take a look at these “new” features:

Entourage 2004 Exchange Server Support Improvements

Gain full access to your organization?s Global Address List information.
We couldn’t get any access before using their LDAP connection to Exchange.

Provide delegate access to your Mail folders, Calendar and Address Book.
A pretty standard feature for Outlook, although we don’t use it much here.

Share your Mail folders, Calendar and Address Book with assistants and colleagues.
A major reason why people use Exchange in the first place.

Take advantage of improved public folder performance.

What they mean is that public calendars now display as calendars instead of as if they were mail messages.

Receive password expiration notification before it expires.
Passwords used to just expire and then the user would be locked out.

View and manage how much disk space your Mail folders use to ensure you don?t exceed your organization?s set storage limits.
Users used to have to use a PC to figure out what was hogging up all of the space. Unless synchronization has improved, they will still have difficulty emptying large trash folders.

Of course, Entourage is still missing Task and Notes folder synchronization, but that would be too much to reasonably expect, right?

The Forums Have Broken!

The most amazing thing happened to our most successful online service. It broke. Our online forums became corrupted when a web server log file “filled up.” Probably two-thirds of all messages disappeared, and people were unable to post for a couple of days. Coincidentally, our backup system experienced global catalog corruption that lasted several days, making it impossible to restore the forums from backup. It seems so much like divine intervention …

The kids have pretty much taken it in stride. They get more out of present conversation than stored messages. So perhaps this will not have much impact on the activity and character of the forums. Or maybe it will give the students the opportunity to rebuild the forums in a different form than the original.

Lessons learned:

1. Pay more attention to our backup system. Even when it indicates that it is working properly, it may not be. Test restores are the only way to be sure that the backup system is running well.
2. Why should a log file “fill up” without warning? This seems at least like a fundamental flaw in IIS and definitely another reason to move to Apache on Linux in January.
3. Flat file databases are more vulnerable to corruption than SQL. We run dozens of web services, but the forums were the only one corrupted by this failure. Of course, our next forum software will run on mySQL.

New Development Projects

Now that the school year is well underway, a number of people have proposed new web application projects for me. Thankfully, these appear pretty small-scale and easy to write, given the foundation that we have established with our existing scripts. Otherwise, I would seriously be wondering when I was going to find the time to get this work done.

Course registration: now that I can pull courses from Blackbaud, it should not be so hard to allow students to select courses. So far, it appears that Blackbaud does a good job of assigning courses to departments and years, which will be essential for course registration. I don’t want to manually store any of this information from year to year. It should all build dynamically from the Registrar’s work.

Diagnosed Learning Disabilities: this would allow teachers to look up the learning disabilities of only the students he/she teaches, in order to disseminate this information only to the people who need to know.

Learning Accommodations Agreement: this new form would allow students and teachers to work together to draft an agreement of the accommodations that a student would be employing in a typical class. Similar to the Independent Study script we employ, it would allow the Learning Specialist and Academic Dean to keep track of the many agreements that would be filed each year (15% of the student body x 5-6 classes per student).

Of course, I’m still tying up current development projects: online admission and attendance both have features that I have yet to write.

These all seem pretty straightforward, since they involve little data manipulation. Mostly, these applications would collect and store form data for later retrieval. Contrast them with an application like online admission, in which the data needs to be heavily evaluated and manipulated before presented for import into Blackbaud. Therefore, these should not take long to write.

NECC Idea #2: A Bridge To Student Laptops

Session: The Web Portal As a Bridge to a Student Laptop Program

I would like to present a workshop describing our transition toward a 1:1 student laptop program, but it is a little difficult to encapsulate it into a neat package. One reason is that we tend to operate organically and through consensus, rather than attempting to move the school to a new place through large, targeted initiatives. Over the last three years, our computer use has increased up to the point that a student laptop program now makes sense. Some of this is due to the acquisition of a new building and the realization that our future, far-flung campus will be less well suited to desktop computers than is our present configuration. However, I believe that our web portal has also played an instrumental role in preparing the school for a student laptop program.

Unlike many schools, we have made the leap to the cusp of student laptops with few classroom laptops. Our science laboratories are the only classrooms that have dedicated laptop computers. Other classrooms do not have access to them. Yet, the pressure exists for students to have access to computers more of the time. Why? I believe that our web portal is the reason. Unlike classroom activities, which tend to take place during discrete periods of time, web access happens at all hours. Students check email, write in forums, read course web pages, post photos, create review sheets, submit service hours, compose independent study proposals, download permission forms, listen to audio broadcasts, play games, post announcements, look up sports schedules, and do work online. These activities happen anytime, anywhere. This pattern of use is particularly well suited to ubiquitous computing, so that students do not have to seek a school computer during the day or compete with family members for shared computers in the evening.

Our faculty lists the following three factors as the most important for our adoption of a student laptop program:

* Leveling the “playing field” for student home computer access.
* Making possible powerful classroom activities that are consistent with current pedagogical practices
* Increasing the efficiency of student work for students

I don’t know whether there is a legitimate workshop presentation in all of this, but it is a major movement within the school.

Our Board of Trustees will consider the student laptop proposal in October.

NECC Idea: Single Sign-On

The proposal deadline for NECC is coming up, and I’m kicking some potential presentation ideas around. Let me know what you think. Of the possible presentation formats, two fit my main areas of interest: workshops and poster sessions. Poster sessions allow one to have a lot of one-to-one conversations with interested people over a two-hour time span. Workshops are traditional large group presentations, about an hour in length.

Poster Session: Single Sign-on In a DYI Portal

This poster session would demonstrate our technique for achieving single sign-on in our insideUHS portal. Our login scheme enlists the following components:

* Active Directory user accounts and group memberships
* Directory security on web site folders and files
* ISAPI filter to permit authentication against both AD (students and employees) and an Access database (parents and guests)
* Browser environment variables
* Custom modifications to open-source scripts to use authenticated user environment variable instead of unique user accounts

Sunbird … Where Microsoft and Apple Blow It

I just tried Sunbird for the first time. Sunbird is the standalone Mozilla calendar (as opposed to the Calendar extension for browsers such as Firefox). It uses the iCal specification for data storage, which permits separate installations of iCal-friendly calendar applications to share data. My first installation is for personal purposes, a shared calendar between me and my wife to coordinate childcare pickup schedules and weekend/evening commitments.

Sunbird was dead easy to set up. My web host provides webDAV support, which is needed for this to work. I installed one copy of Sunbird on my Mac, another copy on Julia’s Dell, and then pointed both copies to the same remote webDAV directory on our web site. It was instant success! As soon as I post an event on my computer, Julia can refresh and see the copy on her computer, and vice versa. It’s even password-protected.

Now here’s where Microsoft and Apple have blown it. Outlook and iCal are much more powerful applications than Sunbird, at least for now, and they even use the iCal specification to store data! However, both companies want to be the boss. Even though iCal uses the iCal specification, it overwrites changes made by any other client, allowing only calendar publishing, not sharing. Exchange server publishes a webDAV mail interface, but it won’t share, either. So if cross-platform functionality is a requirement, then Sunbird is the only of these three that can even do it. Never mind the reduced functionality. At least it works.

At UHS, our cross-platform model allows students to choose their platform and permits the school to easily extend our within-school architecture to parents, alumni, trustees, and the public without major changes. The combination of Sunbird and a web-based iCal reader with RSS capability could transform the way we share calendar information with our greater school community.

Time To Blog

After a couple of weeks’ hiatus, I am back on the blog writing trail. However, my feed reader is up to 265 unread messages, not counting many that have fallen out of the cache. When things get busy, like at the start of school, how does one find the time to read and write? Is blogging actually work … for me? Will this be an isolated incident at the start of the school year or a frequent occurrence?

Polishing New Web Apps

It is always difficult to prevent summer web development projects from bleeding into the start of the school year, complicating an already very busy time. I gave myself four projects to complete this summer: a new admission inquiry and visit scheduling form for prospective applicants, a new attendance form for teachers, conversion of our student directory from mySQL to MSSQL with Blackbaud table structure, and conversion of the community service learning database from flat text file to mySQL/MSSQL.

Fortunately, I was able to finish new development on three of the four by the start of school and managed to complete the fourth over the Memorial Day long weekend. In addition, the work I have had to complete during school operation has been limited to bug fixes and little feature additions. The worst case scenario happens when the application is not quite finished and I am trying to complete new features while users are hitting the server and the application itself. However, it is also impossible to find all of the bugs until 500 users return from summer vacations and begin to use the scripts.

The attendance form is really a year-long test of online attendance before everyone has to use it when we open our new building on Sacramento St. Attendance is a “mission-critical” application in a school, and this has to work flawlessly in order for everyone to use it next year. Interestingly, half of our teachers have committed to submit all of their attendance online, which suggests a new level of convenience over the old paper process. Currently, the attendance script only mimics the paper process, allowing the teacher to mark students tardy or absent and then format this data for import into Blackbaud, our student information system. Over the course of the year, we will add features so that teachers may review the attendance records of students, and students will be able to view their own attendance records.

The best idea my colleague Ina and I came up with was to limit the functions of the web script and continue to use our student information system to perform core administrative functions. This allows the heaviest users of the attendance system to maintain their current routines and use a fast, powerful desktop application to manage attendance rather than a slow web application with a limited feature set. However, Blackbaud’s data is stored in an accessible MSSQL database, which allows the web script to display whatever information we feel students and teachers need to see. The MSSQL database is accessed via a read-only user, making it no more vulnerable to enterprising student hackers than it was before! Most importantly, this decision dramatically limited the number of features the web script had to handle.

The Admission script took much longer to develop, and we had to settle for a smaller feature set than we originally desired. The application allows potential applicants to input family information, which is then formatted for download and import into Blackbaud. It took many iterations to get the input -> import sequence to work properly, and we still are weeding out small problems. We learned that collecting input on such widely varying information as family details is exponentially more complicated than collecting attendance data. Blackbaud had numerous specific requirements about the format of such items as gender, address information, and activity information that it took a long time before most of the import exceptions were weeded out. Still, we are happy with the partial automation of about 1,000 applicant inquiries!

Our community service learning program requires students to write action plans and learning contracts, then submit the hours of service that they perform to the CSL office. Two years ago, this was a 100% paper process with the Reception staff required to input all of the hours data submitted by students. Last year, we moved the process competely to our web site, but I built the script on a flat text file database, and many of the relationships between the action plans, learning contracts, and hours broke in the process. This resulted in unexpected reporting results and errors. This year, I trust the conversion to mySQL will eliminate these problems. There is a lot less that can go wrong with a relational database structure. mySQL queries can automatically link tables, whereas everything is manual with a flat text file database, including the management of carriage returns in the data files.

Our student directory was a big hit last year with the teachers, who used it to look up name, parent, and contact information for students. The only problem with the script last year was that the data was not live, so I had to periodically export student information from Blackbaud into mySQL in order to keep the database relatively up-to-date. As a result, an address change might not be reflected in the online directory for weeks after its submission. This year, everything is live, which made the SQL queries more complicated (because of Blackbaud’s normalized table structure) but performance better and ongoing maintenance a lot simpler. Now, when a parent phones in an address change, this is immediately reflected in the online directory, and course changes are immediately reflected in class lists and online attendance forms.

Improving Our Image

The key to a quick Macintosh image restore is Apple Software Restore (ASR) technology. Carbon Copy Cloner is a widely used, free (for education) application that can automatically create an ASR disk image from a hard drive. It takes a while to scan a 6GB disk image for ASR, but the technology enables block-level restore, which speeds up the restore process tenfold. Our disk image has grown over the years, but our 6GB image still takes only about 15 minutes to restore and verify. One final note: you need to boot off another volume in order to clone or restore a disk. I have found portable FireWire drives to be the easiest and fastest external boot devices for our Macs. Bootable CDs and DVDs are no longer practical. OSX no longer comfortably fits on one CD, and it is not a simple task to create a bootable DVD. NetBoot is popular option if you already have a Mac server on your network. Otherwise, the costs of installing a NetBoot server outweigh the benefits for such a small Macintosh installation as ours.