Archive for March 2006

Wikipedia Vandalism and IP Bans

Posted by: rkassissieh
March282006

Blocked
Andy Carvin is intrigued about a school in Canada that asked Wikipedia to block its IP address after a series of vandalism incidents dating to 2002.

Wikipedia Blocks School's Editing Privileges Due to Vandalism

We have had a similar experience. Here is my reply.

After a series of vandalism incidents from our school IP address, we have asked a Wikipedia admin to block our IP address indefinitely. At the same time, we are taking advantage of the teachable moment to provide some instruction at an all-school meeting about the implications of online vandalism and the interconnectedness among people in online communities such as this one. The difficult question is how much vandalism to a public resource we are willing to tolerate while the teaching is taking place. That’s why we decided to first institute the ban.

Most students who edit Wikipedia pages have not a clue about the potential impact of their edits. High school students are in a developmental stage that makes it difficult for them to grasp the implications of actions in any community, never mind one as abstract as cyberspace. Many are only now emerging from a very concrete, self-centered stage, so that even when you teach them about the implications of editing on Wikipedia, they just don’t internalize the lesson until it happens to them.

We host our own online forums, photo galleries, student email system, and Moodle site. In all of these systems, users are automatically identified by their login name, encouraging them to take responsibility for their posts. Ideally, we would like to have only the anonymous Wikipedia user, which is identified by our IP address, blocked from using Wikipedia. That way, users would have the register in order to make changes, both limiting the damage to the school community when a person vandalizes the site, and also creating consequences for posting malicious content. The only problem is that it appears that the block has affected all posts from our address, registered or not. I am going to contact an admin to determine whether we can get a more selective block, which would be the most pedagogically effective. Wikipedia in its current form makes it too easy for a student to make a rash mistake under the banner of adolescent experimentation.

Volunteer Script Doing Its Job

Posted by: rkassissieh
March242006

signups
Two volunteer coordinators have given me some positive feedback on the signup script that has been running for a few weeks now.

"The staffing seems almost effortless with the on-line sign-up!"

"I am so empowered by the report features you have built into this system. I can easily see where the holes are and I can see, by comparing the sign on list with the parents roster, who has not volunteered for anything. I'm on a BIG campaign now to get parents to enlist."

I'm glad to hear it! It was my intention that volunteers would only be able to sign up for available slots, thereby distributing themselves throughout the schedule. It seems to be working so far.

Eiki Service Delays

Posted by: rkassissieh
March242006

It recently took three months to get two Eiki data projectors back from the manufacturer's service department. What is going on with Eiki that it takes them that long to perform routine service? I am glad that, back in January, I used this opportunity to buy additional Chief mounts for our loaner data projectors, so that they could pinch hit for their larger cousins. Little did I know that they would be hanging from the ceiling for so long. As we open our new Sacramento St. building next year, with a ceiling-mounted data projector in each classroom, I will purchase a spare projector of the same model so that swaps may be easily performed at any time.

Sanako Lab 100 a year and a half later

Posted by: rkassissieh
March222006

A colleague asked how our language lab was performing a year and a half after installation.

Good to see you at MCDS... although we didn't get to talk. Question about your fl lab. What did you end up buying? Is it portable? How is it working?

Here is my reply.


Sanako Lab 100 Teacher Screen
Our lab was named the Tandberg Elice at the time. I think they have renamed it Sanako Lab 100. It is not portable, as the components and cabling are embedded in special student workstations and a teacher desk. However, we are going to disassemble and reassemble the lab this summer to move it to a new building. However, I just found anarticle on a new product that makes the Lab 100 portable.

We are very happy with the lab. At the time, it was half the cost of a fully computer-based lab, yet this does everything that our teachers want. They didn’t want all of the capabilities of computers at the student stations, because they wanted to focus on speaking and listening while in the lab. They could always do writing and reading elsewhere. This is great for the tech department, because the lab has only one PC to get old and need replacement one day. From my perspective, the main drawback is that a student can’t come into the lab during a free period and continue doing lab work. To mitigate this, I copied the files to our web server, so at least students can listen. Soon, I imagine that our language teachers will want students to submit audio files online, too. Hoover pointed me to a thread that indicates that podcasting support for Moodle is almost ready for prime time.

I can provide you with some implementation and training tips if you get to that point.

Richard


Etomite, Website Baker

Posted by: rkassissieh
March202006

Thanks to Bill Fitzgerald, I have added two new promising CMS's to the Maru a Pula test installation list: Etomite and Website Baker. Both installed with incredible ease tonight. I will add content to all three installations and report back on which I ultimately decide to use for the site. Click on the links below to view the test sites in their current states.

Etomite

So far, Etomite impresses primarily with its AJAX admin interface. The "manager" loads many of its parts without redrawing the screen, which has its advantages. However, the manager also frequently displays a "wait while Etomite cleans up" message, and the action buttons (save, edit) are not always where you expect them to be.


Website baker


So far, Website Baker looks like a real winner. It's fast, lightweight, and intuitive. There are just the right number of screens for what you want to accomplish, and there are even a small number of optional plugins. This could be the one, but of course applying a new template to all three sites may be the strongest test of all.

CMS Made Simple

Posted by: rkassissieh
March192006

I tried out three CMS's this weekend, in search of a backend for the new Maru a Pula web site I am building. Unlike the AFMAP site I built last year, this needs to be easy to manage, as I intend to give the keys to the Principal's assistant there.

I headed to OpenSourceCMS.com to review and try out different CMS software packages. On the one hand, I was impressed with the standardization around PHP/mySQL and the near-universal adoption of trendy features such as extensibility and RSS. However, I found it challenging to browse the list of top-rated tools, as considerably variety exists within this category. I did not want or need a suite of community features such as Drupal offers.

In the end, I downloaded and installed three packages: CMSMadeSimple, Joomla, and phpWebSite, based on ratings, front page design, and features. If you try it soon, you may visit the test sites by clicking on each image below.

CMS
CMSMadeSimple is the only one of the three that made it through the first day. As the name suggests, this package focuses on web site content. The admin interface prioritizes the creation and organization of content pages. It's easy to use, works, and doesn't get in the way of the site content. Hopefully, this one will carry me through the entire project.

Joomla is a rising star with potential for a site admin who wants more features. I found that the admin interface got in the way of simple content management.
Joomla
To post the first articles, I had to create a section, then a category, then a page, then a menu item, and I still couldn't get the content to actually show up in the home page. That's far more than the MAP users will be able to handle without the help of their computer staff.

phpWebSite was so promising to me at first. It was the only package that included an Edit link at the bottom of each article by default, an intuitive user interface element for novice admin users. Like CMSMadeSimple, it prioritizes content over features but has an active development community that has created a number of potentially useful modules. Unfortunately, installation was a disaster. If I installed only the core, then I could get it running. If I installed even one module, then the install script threw an error and the site broke. Check out the screen shot. Yup, the content doesn't appear. That won't do.

PHPWebSite

I thought that this process would allow me to develop content and install a graphic design (pro bono from a local firm) on three installations to really learn how well they ran. At the end of the first day, I am down to just one. Hopefully, CMSMadeSimple will be robust enough to get me through this project. Otherwise, I will be looking for another solution pretty soon! Let me know if you have other CMS suggestions that meet the criteria I have explained above.

Update Sep 10 2008

I realize from the comments posted to this item that this blog post does not tell the end of the story. After trying five different content management packages, I ultimately chose Website Baker and have since operated two web sites on the platform for two years. While not perfect, it has offered the best combination of simplicity and features that I have been able to find. I would still choose website baker if I were to fully hand over site administration to others. If I were to continue to administer the site myself but wanted content editors to have the best possible experience, I would choose Drupal. Check out some sites: Maru-a-Pula (Website Baker), San Diego Hat Co (Website Baker), and Shasta Mountain Guides (Drupal). Note, these platform choices are current as of Sep 10 2008 but may have changed if you are reading this post a long time since then.

The Tech Department Year

Posted by: rkassissieh
March192006

It took me three years to realize that the tech department year follows a different rhythm than do teachers and students.

The tech department year starts in April, when we finalize acquisition and installation plans for the next school year. In May, we ramp up preparations, researching best practices, software configurations, and new hardware models. As soon as school lets out, we place orders, spending 50% of our budget by mid-July. All this equipment arrives in the middle of the summer, and we gradually unpack, install, and configure the units in order to upgrade user workstations and computer labs. Summer is also time for server overhaul and user account cleanup, easiest to perform when most users are away. August is a frentic month of final preparations before everyone returns to start the year.

When school starts, we orient new teachers and students to our systems and support returning teachers and students as they adjust to new tasks or upgraded equipment. The volume of support requests and training needs is high through the first semester. By second semester, things settle down considerably. February and March are especially slow months, allowing us to take vacation, immerse ourselves in the life of the school, and mentally prepare ourselves for the accelerations ahead.

Other departments follow different rhythms too -- Summerbridge, Admission, Development, and the Business Office make up an incomplete list. Once I realized that we belonged to that group, it became a lot easier to manage our work.

Yahoo! User Interface Library: More AJAX

Posted by: rkassissieh
March192006

Yahoo!
I recently wondered whether I would need/be able to learn AJAX to enhance my web programming interfaces. Along comes announcement of the Yahoo! User Interface Library, which might make my life easier.

The Yahoo! User Interface Library is a set of utilities and controls, written in JavaScript, for building richly interactive web applications using techniques such as DOM scripting, HTML and AJAX. The UI Library Utilities facilitate the implementation of rich client-side features by enhancing and normalizing the developer's interface to important elements of the browser infrastructure (such as events, in-page HTTP requests and the DOM). The Yahoo UI Library Controls produce visual, interactive user interface elements on the page with just a few lines of code and an included CSS file. All the components in the Yahoo! User Interface Library have been released as open source under a BSD license and are free for all uses.


Now all I need is a lot of time.

Thanks to eHub for the tip.

p.s. Just read this Round-up of 30 AJAX Tutorials from mHub, a friend of eHub. "Make an AJAX Website in Less than 10 Minutes" sounds like my kind of tutorial.

Wikimedia Contribution Passed By

Posted by: rkassissieh
March182006

wikipedia
As a new Wikipedia user, I find it inconvenient to repeatedly visit my watchlist page to view changes on pages I am watching. I would much rather have notifications of changes delivered to me, either by email (e.g., WatchThatPage.com) or by subscription (e.g., Craigslist - What is RSS?).

Zach kindly agreed to write the feature and submitted it to the Wikimedia project for consideration. The powers that be appear to have ignored it, without any indication of why. We guess that perhaps Wikipedia fanatics are on the site so frequently that they have no need for this plug-in. And they have recently experienced so much growth that perhaps they do not particularly see the need to make life easier for new Wikipedia users. Regardless, Zach's contribution sits, languishing, at least for now. Let me know if you have had experience with submitting contributions to the Wikimedia project before.

A Small Moodle/Blackbaud Integration Example

Posted by: rkassissieh
March172006

Here the code we use to pull user name information from Education Edge into the Moodle user profile. This code starts at line 320 of moodle/user/edit.php. The bit about @sfuhs.org allows me to handle Moodle accounts for both AD users (students, faculty) and non-AD users (parents), who login with their personal email addresses.

// pre-fill user information
$user->email = $user->username;
if (!strpos($user->email, '@')) {$user->email .= '@sfuhs.org';}
$query = " SELECT
EA7RECORDS.FIRSTNAME, EA7RECORDS.NICKNAME, EA7RECORDS.LASTNAME
FROM
EA7RECORDS,
ADDRESSLINKS,
PHONELINKS,
ADDRESSLINKPHONES,
EA7ADDRESSOPTIONS
WHERE
NUM LIKE '" . $user->email . "' AND
ADDRESSLINKPHONES.PHONESID=PHONELINKS.PHONESID AND
PHONELINKS.ADDRESSLINKSID=ADDRESSLINKS.ADDRESSLINKSID AND
ADDRESSLINKS.PARENTRECORDID=EA7RECORDS.EA7RECORDSID AND
EA7ADDRESSOPTIONS.ADDRESSLINKSID=ADDRESSLINKS.ADDRESSLINKSID AND
EA7ADDRESSOPTIONS.PRIMARYADDRESS='-1'";

mssql_connect ( "$eesrv", "$eeuser", "$eepass" );
$result = mssql_query ( $query );
$row=mssql_fetch_array($result);
if ($row['NICKNAME']) {$row['FIRSTNAME']=$row['NICKNAME'];}
if ($row['FIRSTNAME']) {$user->firstname = $row['FIRSTNAME'];}
if ($row['LASTNAME']) {$user->lastname = $row['LASTNAME'];}
mssql_close();

include("edit.html");



I then modify the edit.html template so that the name fields are not editable, consistent with the idea of our users being fully identified by name within our web intranet. This goes hand in hand with automatically capturing the user login from the environment variables, which is subject matter for a separate post.

Blogroll Added

Posted by: rkassissieh
March162006

I have finally gotten around to sharing my blogroll. You will find it at the bottom of the blog sidebar (here). So now this page is officially an interactive design nightmare. The blog format is easy to digest, but it does not provide many good places for posting static content. Everything drops into the sidebar, and content like the blogroll falls far to the bottom. I could use a different skin that provides for some static links at the top. Maybe in the future.

I have to admit that I used Bloglines to convert my links from OPML to HTML but then just copied the static content into the sidebar. I don't actually add feeds to bloglines, so there wasn't much to be gained from a live link to their site. Plus, I could not get the include() skinvar to pull the live feed anyway. Let me know if you know of an easier way to convert blog links from NetNewsWire OPML into HTML.

Moodle Presentation Notes

Posted by: rkassissieh
March152006

Here are notes for an informal 10-minute BAISnet presentation tomorrow at MCDS.

How we chose Moodle
- WebCT, Dreamweaver, forums, Moodle

Basic capabilities

Easy to teach and learn

Examples
- J. Min: organization, variety of file types
- Annie: scanned handwritten solutions
- Alex: topic format, individualized feedback
- Raleigh: wiki activity
- Daniela: Spanish language interface, wiki activity

Our modifications
- Graphic design
- Authentication

Conclusions
- Different things for different people
- High degree of satisfaction
- Potential yet untapped, plenty of growth to come

URLs I visited during today's presentation
- eHub
- Moodle
- insideUHS (BAISnet members contact me to get inside)

Africans With iPods?

Posted by: rkassissieh
March152006

I recently exchanged emails with a young Columbia graduate who has offered to volunteer his tech support skills at Maru a Pula for a year. This is a generous and well-timed gift to a school attempting to accelerate its uses of academic technology. However, this person was "shocked" to hear that we would consider Macintosh computers, an intranet web site, and Linux on the desktop for a school in Africa. He had been told to accept a "vow of poverty" for his year in the bush and could not reconcile that with the acquisition of current technology at the school.

African with iPod. What?
MAP student with iPod. What?
Why do people have a hard time including iPods and cellphones into their vision of Africa? Is it that they wish to subscribe to a simplistic understanding of life in a developing country? In almost any country, a certain proportion of the population can access modern goods from developed nations. In the mid 90's, the Botswana Ministry of Education installed Macintosh computer labs with educational multimedia software in all government secondary schools. Cellphones are far easier to acquire than a new land line, and cellular signals travel well across the desert terrain.

It seems that benevolent paternalism is at work here. It sounds great that some westerners (not enough, for sure) care for Africa and its people. But how much do they understand Africans and respect them as equals? If you see an African as your equal, then why would you be surprised to find him sporting an iPod? Surely one realizes that global markets can reach Botswana. Then it would be the African's fault that she could not afford an iPod.

Botswana is more technologically advanced than many of her neighbors, such as Zimbabwe, Zambia and Mozambique. However, South Africa is a technology leader on the continent, and even economically isolated Zimbabweans can become high-end digital video editors. Africans are more similar to us than different.

Two Podcast Channels Launched

Posted by: rkassissieh
March132006

Coincidentally, I launched two separate UHS podcast channels this week. The first is a public channel located at http://www.sfuhs.org/podcast that will carry the usual assortment of audio files that we publish on our web site: speakers on campus, musical performances, and student work that will fly with an external audience. So far, I have posted two items: the recent 30th anniversary presentation from founding head Dennis Collins and current head Mike Diamonti, and the 30th anniversary "Greatest All School Meeting -- Ever!", a two-hour behemoth of alumni stage performances. The latter will be especially worthwhile for our alumni community, most of whom were not able to attend the event.

To deliver podcasts to our external web site, I installed the Nucleus Podcast plug-in on our public blog installation on insideUHS, then created a PHP redirect from www.sfuhs.org to inside.sfuhs.org. This keeps all of the large audio files on our internal server but gives the outside world a friendly URL. The actual feed URL is something like http://inside.sfuhs.org/blog/xml-rss2.php?blogid=9. Thank goodness for the use of the http protocol! Publishing podcasts is much easier than, say, setting up a streaming media server, because we can run it through an existing port (80) and use ubiquitous technologies such as PHP location headers to move requests from one server to another. I easily submitted the feed to iTunes, though I still publish instructions for subscribing to it independently (see my post referencing Jon Udell for reasons why).

The second channel is inside our password-protected intranet, where students and teachers are more free to name names, reproduce copyrighted content for educational purposes, and address issues only of concern to the people who come here everyday. This is consistent with my use of password-protection for forums, Moodle, galleries, and course web sites. Here, the technical side was a little more difficult. Though iTunes very nicely supports authentication for podcast subscriptions, it appears to handle only HTTP authentication, not web forms. We use the latter. However, we do have a legacy domain name that is not tied to our web authentication system. iTunes work with that, but only our active directory users may use that system, not permitting parents to use their individualized logins that we love so much. I assume that we also will not be able to list this private podcast in iTunes but rather publish subscription instructions internally. We will see how well that works. Early adopters: point iTunes to http://library.sfuhs.org/blogs/xml-rss2.php?blogid=101.

I am starting to see the writing on the wall for my choice of Nucleus for our blog software. The Podcast plugin for Nucleus is just basic, but I heard about a Wordpress podcast plugin that, "totally manages podcast publishing, enclosures, web players, iTunes integration. Handles files uploaded to the blog, as well as remote files (absolute urls). Presents mp3, m4a, mov, mp4, pdf, etc… files." (source: D'Arcy Norman). Perhaps the time to migrate is approaching.

Who Needs Infosnap?

Posted by: rkassissieh
March102006

I recently received an email from Pingry School, asking whether Infosnap was worth the expense when they had already written their own online admission application. Infosnap was offering some additional features that they did not have, such as the ability for an applicant to save an application and return to it later. I grinned, both because I have received a number of Infosnap sales calls and because I was glad to hear of another school with programming expertise and the desire to write this stuff themselves.

Infosnap home page
A school administrator gives up and calls Infosnap.
Infosnap offers web-based forms for online admission applications and a host of similar functions. We have written our own script to do this.

The title of this post is deliberately sarcastic. Some schools undoubtedly do need Infosnap -- we are lucky enough to have the resources to write their sorts of scripts ourselves. I guess I am just tired of the "feeding frenzy" atmosphere I observe in convention halls, where Infosnap and dozens of their competitors hunt for publlic and private school funds. The administrators at these schools typically have no idea whether the company's services are a good value or not -- typically I feel they are overpriced. If a teacher-turned-tech-director can write this stuff among his other responsibilities, then a company should not be charging thousands of dollars and ongoing maintenance fees for the service. Where is the middle ground of low-cost, open-source developers who put schools' interests first?

I will probably get a comment from an Infosnap employee for this one. Your hard-earned tuition dollars at work!

New Script: Course Requests

Posted by: rkassissieh
March092006

After two years of periodic discussion with the academic office, we are about to launch a new online course request form. Up to this point, a number of obstacles prevented us from moving forward:
  1. This is a critical school function that everyone uses. We had to get the user interface right.
  2. Only once we moved to Education Edge 7 (last spring) did it become possible to pull the current course list dynamically.
  3. Our registrar was concerned about losing valuable face-to-face discussions between students and advisors.
  4. The academic office didn't want to be the guinea pig for student online registration (I am reading between the lines).

Two years ago, it would probably have taken a month to write this script. This time, I wrote about 80% of it in a day! Granted, I did work at home, almost completely free from interruptions that normally make development work nearly impossible during the school day. The result is a tidy little script whose user interface hides much of the complicated work going on behind the scenes.

course requests image

Data is written to a mySQL database, from which the registrar can produce export files for import into a FileMaker database she uses to review requests before sending them to Blackbaud for scheduling. The MSSQL query that produces the course lists is especially cool. I reproduce it here in case you will find it useful:

$query = "SELECT DISTINCT
EA7COURSES.COURSEID,
EA7COURSES.COURSENAME,
EA7ATTRIBUTETYPES.DESCRIPTION AS ATTRIBUTE,
TABLEENTRIES_2.DESCRIPTION AS DEPARTMENT

FROM
EA7COURSERESTRICTIONS,
EA7ACADEMICYEARS,
EA7COURSERESTRICTIONSSTARTTERMS,
EA7TERMS,
TABLEENTRIES,
EA7COURSEGRADELEVELS,
TABLEENTRIES AS TABLEENTRIES_1,
EA7COURSEFILTERS,
FILTERVALUES7,
TABLEENTRIES AS TABLEENTRIES_2,
EA7COURSES
LEFT OUTER JOIN EA7COURSEATTRIBUTES ON EA7COURSES.EA7COURSESID = EA7COURSEATTRIBUTES.PARENTID
LEFT OUTER JOIN EA7ATTRIBUTETYPES ON EA7COURSEATTRIBUTES.ATTRIBUTETYPESID = EA7ATTRIBUTETYPES.ATTRIBUTETYPESID

WHERE
EA7COURSES.EA7COURSESID = EA7COURSERESTRICTIONS.EA7COURSESID AND
EA7COURSERESTRICTIONS.EA7ACADEMICYEARSID = EA7ACADEMICYEARS.EA7ACADEMICYEARSID AND
EA7ACADEMICYEARS.DESCRIPTION = '$currentacademicyear' AND
EA7COURSERESTRICTIONS.EA7COURSERESTRICTIONSID = EA7COURSERESTRICTIONSSTARTTERMS.EA7COURSERESTRICTIONSID AND
EA7COURSERESTRICTIONSSTARTTERMS.EA7TERMSID = EA7TERMS.EA7TERMSID AND
EA7TERMS.TERMID = TABLEENTRIES.TABLEENTRIESID AND
TABLEENTRIES.DESCRIPTION='$currentsemester' AND
EA7COURSES.EA7COURSESID = EA7COURSEGRADELEVELS.EA7COURSESID AND
EA7COURSEGRADELEVELS.GRADELEVEL = TABLEENTRIES_1.TABLEENTRIESID AND
TABLEENTRIES_1.DESCRIPTION='$student{'GRADELEVEL'}' AND
EA7COURSES.EA7COURSESID = EA7COURSEFILTERS.PARENTID AND
EA7COURSEFILTERS.FILTERSID = FILTERVALUES7.PARENTID AND
FILTERVALUES7.FILTERIDVALUE1 = TABLEENTRIES_2.TABLEENTRIESID AND
FILTERVALUES7.RECORDTYPE = '1098'";


The Departments designation for a course is stored in a strange place with a ton of other attributes, hence the "RECORDTYPE='1098' condition. We include COURSEATTRIBUTES as an optional join because we store the "signature required" course option there.

We will pilot this script with a small number of users next week and then hopefully roll it out to everyone in mid-April.

Quickly Moving Past Technology

Posted by: rkassissieh
March032006

I have been fully occupied in the last few days by a disciplinary case on campus involving technology. This has required me to wear both of my official "hats," tech director and senior class dean. The latter hat has gotten much more use lately, as the campus-wide discussion has very much focused on social and cultural aspects of the case, most importantly the implications of the students' actions on the school community. Technology has only been discussed insofar as necessary to clear up factual details of the case. Ultimately, this is good, as it puts the attention where it is most needed. However, the thought remains in the back of my mind that people may be quickly moving past the technological aspects of the case because they don't understand them. These misunderstandings sometimes perpetuate the misuse of information technologies. When the dust has settled on the case, we will have to provide more direct instruction about the changing nature of interactive web technologies.