Archive for January 1, 2009

Introduction To Drupal For Schools

I presented this talk today at the BAISNet meeting on open-source software hosted at Lick-Wilmerding School. Some of the links point to internal, password-protected resources. Contact me if you would like a tour.

In the early days of the web, schools designed and developed their own web sites. Then we purchased professional graphic design and content management systems. In recent years, full-service companies have sprung up to deliver schools a complete solution. This is one possible — but not the only — modern solution for a course web site. How did we move so far away from managing our own web sites? Is it possible to turn back?

With a little DIY spirit and open-source software, it is possible. Open-source content management systems have matured and arrived. They are now a viable choice for a professional, modern, effective school public-facing web site. In a time of cost consciousness, it is imperative for us to learn this field and build our own web sites once again.

We know how to evaluate and tell other people about commercial software. Read the company’s sales materials, ask other schools for references, review a live demo or an existing site, determine the terms of a contract, monitor the site as it is developed/delivered, contract with a trainer. After the site is launched, requests tweaks/new features as desired.

The open-source ecosystem is very different from the familiar landscape of commercial software. Open-source software does not have huge advertising budgets. You won’t see The Network or The Trusted Voice or taste tests.

The key to evaluating open-source software is to enter the community and try the software. Take Drupal as an example. You can search the forums for helpful community members, view everyone’s support issues, browse hundreds of community-contributed modules, read community-authored user and developer guides, read case studies by real users, join affinity groups, and build a test site to evaluate the suitability of the software for your purposes. Hire a Drupal developer or another if you like.

You may have concerns about running your public-facing web site on open-source software. That’s all right. Start with lower-stakes projects and get to know the software and the process well. Build up your own familiarity and comfort level through experience.

Drupal.org has over 350,000 registered users. Version 1.0 was released in 2001. The current version is 6.9.

Peer schools using Drupal include Burke’s, Seattle Academy, Billings, and Meridian. College Prep uses Plone. Notable, Amherst College runs its main, public-facing web site on Drupal.

Other options: Plone, Joomla, WordPress

Once you go through this process and become a convert, how do you convince others? It may help to guide your school colleagues through a "lite" version of the steps you experienced. At Catlin Gabel, we formed a committee of ten major stakeholders in the web site project (admission, development, human resources, technical staff). I added to this group a parent who also works for an organization that provides technology consulting services to environmental organizations. We redesign our web site about once every six years. Drew redesigns organization web sites as his daily work. One of the most compelling answers was, "What about all of the R&D that companies put into their products? Open source communities probably devote a hundred times’ R&D into their ‘products.’"

Social Features

I pushed Drupal at my school because of its emphasis on social features. The White House has a blog. The Vatican has a YouTube channel. 40-somethings are joining Facebook in droves. Now is the time to introduce social features to your public-facing web site. Drupal is built around social features. Blogs, RSS feeds, tags, media support, and a powerful content management system are all strengths in Drupal.

Education-specific Drupal distributions: Social Media Classroom, DrupalEd, FunnyMonkey Commons. Will we see a distribution specifically for a school’s public-facing web site? Shall we create it together?

At Catlin Gabel, I first launched a community intranet portal to facilitate anyone’s media publishing. This site is organized around media types. All users may post articles, audio files, movies, and calendar entries, maintain a blog, and build an electronic portfolio. We also host other community content here, such as a carpool map, school archive, and summer jobs bulletin board.

With this experience under our belts, we are now taking on our main, public-facing web site. We plan to fully integrate community features throughout the site, not just in a dedicated section. Our constituents seek to engage with the school through its web site. Middle and upper school students seek authentic representations of student experience at the school. Commenting on all News articles. Making comments visible to all registered users. Providing user accounts to faculty, staff, students, alumni, parents, applicants, board members, and friends of the school. Approved "site editors" will be able to edit all static pages (not restricted to own department). Every user will have a blog, and blog content will be aggregated by topic (tags or content searches). Existing newsletters will fold into the blog and news functions.

Specific Features of Drupal

Drupal has a very small core and then hundreds of contributed modules. Let’s take a look at the core.

  • River of news
  • RSS feeds
  • User profiles
  • Search
  • Blog for each user
  • RSS aggregator
  • Forums
  • Commenting
  • Contact forms
  • File upload
  • Taxonomy (tagging)
  • Hierarchical content type (book)
  • Menu, theme, and content independent of each other
  • Revisions

Now let’s take a look at some commonly-used contributed modules:

  • Content Construction Kit (CCK) — page, news item, calendar event, athletic event, trip, curriculum map entry …
  • Views — define criteria to select content and then a format to display it
  • Calendar — control over categories, display formats
  • Image — image galleries, embedded images
  • Organic Groups — classrooms, clubs, teams, affinity groups
  • Notifications — email subscriptions by content type, keyword, or author
  • WYSIWYG editors — button-level control, link buttons to custom code
  • LDAP integration — same username/password as your other network systems
  • JavaScript functions (jQuery) — usability enhancements (AJAX)
  • Wiki — wiki markup if desired, otherwise revisions + editing rights + diff
  • Page functions — print, email, PDF

Fine-grained control

  • Position of administration functions
  • Per-item control of menus (user and administration)
  • Role definitions and permissions
  • Per-field control over content definitions
  • Ability to embed PHP code and write custom modules (Blackbaud integration)

Exciting additional features demonstrate the Drupal community’s ability to integrate promising new technologies.

Getting Started

My journey: insideCatlin, public-facing shadow site, Shasta Mountain Guides, 3D Cell Explorer, San Diego Hat Co, summer school registration, test installation for new site

Lessons learned: start small, grow gradually, distinguish yourself with modern features, don’t just talk about open-source, rather provide hands-on demos.

That’s it for this session. Will get into specific site design issues in the second session.

Questions

Switch Firefox Tabs With Apple Remote Using Mira

In the last year, I have pretty much ditched presentation software such as PowerPoint and Keynote in favor of using a simple web browser. I have jettisoned bulleted lists and gained interactivity in my “slides.” Most of my subject matter exists within a web browser, anyway. I store collections of web site bookmarks in tab groups.

Today (just before a presentation), I learned how to use the Apple remote control to switch among Firefox tabs. This way, I wouldn’t have to reach for the keyboard to move from one tab to the next. I am running Firefox 3 on Mac OS 10.5.

Mira

This site led me to Mira ($15, Twisted Melon), which expands the use of the Apple remote to many applications. I configured Mira to send the Ctrl-tab keystroke to Firefox when I pressed the Menu button. You could customize different buttons to suit your preferences.

firefox check box
Activate Mira for Firefox.

configure menu button
Select the remote button you want to configure.

keystrokes
Specify the keystroke you want that button to perform, in this case Ctrl-Tab.

Mixing media for a powerful writing experience

Our sixth grade language arts teacher has done it again, inventing a multimedia writing project that has captured kids’ attention and produced some passionate, authentic writing. Last year, his students composed and recorded Reconstruction-era songs and then held a follow-up discussion via online forum. This year, students wrote, acted, and recorded short video skits about gender stereotyping and physical education.

Why video? Carter comments.

Video is important to get kids’ attention and provide fun. There is an element of drama and play. Tracking visually turns on some part of their brain, helps them understand better.

video

It must be even more effective to have the kids write, stage, and record the video. There are likely to remember every detail of the prompt that leads to all of the subsequent writing.

A comment thread provides the subsequent discussion space.

discussion

Kids who struggle with expository writing can really shine in a more argumentative/discussion format. [One student] cares about people listening to her points, being respected. She likes the slangy sound [of kid talk] — it has a nice ring to it. She is also really good at this dialect.

In other words, let us recognize that people demonstrate a number of authentic literacies in the real world, not all of which are represented in schools.

To spice up the discussion, Carter invited eighth grade students to join the conversation. That sure motivated the sixth grade students to write compelling responses!

Students love the forum medium, because they know they are not going to be asked to produce a lot of text, and the topic is going to be relevant to their lives. It is not authentic to write longer pieces — just an artifact of school.

The five-paragraph essay is still a critical student writing competency. It is just not the only one.

Want to join us?

Do you teach middle school students? Would you like them to join the conversation about gender stereotypes in physical education? Go to the conversation web site and submit your comments. Please ask students to identify themselves by first name and school.

Inauguration Day

Four school divisions gathered to experience the inauguration together.

beginning school
Beginning School

lower school
Lower School

Middle School
Middle School

upper school
Upper School

Emotions in the rooms varied from solemn to exuberant. I felt a strong sense of collective experience. There was something truly memorable about witnessing this moment in history together with the younger and older people in this school.

Digital broadcast TV worked flawlessly in three locations. In the fourth, the signal was a bit jumpy, perhaps due to poor reception. Some classrooms and small groups of staff collected to watch streaming web video. The CNN feed had about a 45 second delay, perhaps because they were streaming to the huge audience they had cultivated for this event.

Early Drupal strategies

I am leading an internal team to move the public-facing web site of our PS-12 independent school to Drupal. In this post, I share accomplishments and decisions made so far in an attempt to spread any knowledge that is useful to other institutions and gain your feedback. I consider myself an intermediate Drupal user, so some of the following may seem trivial to advanced users, whereas beginners may find it helpful as they get started. A test site is available for you to view. I have included module and content type lists at the end if you would like to jump directly to them. Many thanks in advance for any advice or feedback you may provide!

Page and News content types

We recently made the decision to give news more prominent billing than we do in our current site. We realized that news is more important than calendar information, for instance. At the same time, we will still require the ability to post descriptive content about school programs that doesn’t change all too often. First-time visitors to our school will still require this, and they are a very important audience. How could we provide for both within Drupal’s structure?

We want to have as many school departments and divisions manage their own site content. Therefore, adding pages to the Book hierarchy or adding News items to one or more sections needs to be as easy as possible. In Drupal 6, Book nodes can be of any content type. This will serve us later, though for the time being I am only adding Page nodes to Books. I did modify the Page content type to allow comments and add fields for multimedia content. I configured Book to automatically create menu items, as we don’t want to trouble our site editors around campus with navigating Drupal’s menu administration pages, which will get quite long in a large site.

landing page

I have included News content by embedding a manual PHP-driven database query in each top-level landing page. Users will click on a primary nav link and find a page with the category outline in the left-hand menu and the news for that section in the body of the page. News can be posted to multiple site sections (taxonomy terms), whereas Pages can only be posted to one place in the book hierarchy. Our web site editor was very pleased to see how easily we could move pages around the hierarchy, even from one book to another.

Will we want to post a single page to multiple books? I am not sure that this is desirable, since users may benefit from a predictable hierarchy (where is that page? what section am I in?). However, we may also find a way to configure this in Drupal, or we could write a script to pull content from the desired node when in a specific page. The ability to insert any node into a book is going to be a great boon if we need to create a custom content type with code to pull content from other nodes.

Book Access has been troublesome so far. I at first assumed that we would want to grant editing privileges at the book level, to those people who need to able to edit that book. However, not only has book access not worked as advertised, but I have also come to the realization that more open access may in fact better serve our purposes. We know and trust our web site editors, and time is precious. Why shouldn’t all users blessed as editors of our books be able to edit any of them? Some institutions have even wikified their entire site. We can mitigate (unlikely) problems by turning on revisions and setting actions to notify the web site editor when changes are made to the books. Presto.

Classroom and team pages

Organic Groups seems the obvious choice for classroom and team pages. Small communities build up around classrooms and teams at our school. Parents want to know news and upcoming dates, teachers and coaches want to contribute content, there are scores and reports to publish, and we want to expose most of this to the public for people to see our school in action.

Organic groups allows us to mark some content as public and some as private, maintain descriptive and news items, invite others into the group, and allow users to maintain short lists of their favorite groups in the site. I will want to further investigate how to set multiple moderators for a single group, suppress other groups from the audience list, and make subscription management easier.

Organic groups could also permit other affinity groups to spring up within the school around issues, initiatives, or interests. Again, it helps enormously that community features are core to the Drupal ecosystem. These features are well developed, well-documented, and widely used, making it easier for us to make our next web site more capable of community strengthening functions.

Media

On our current site, the home page feature image is randomly selected from a set of photos. Each photo has as caption. I am experimenting with enhancing this feature by: 1) using a Flash-based slideshow to cycle through images on the home page; 2) linking each image to related pages within the site, so that it also serves as a navigational element. The test site currently uses MonoSlideshow, but Slideshow Pro also has a standalone version that pulls image information from a XML file and a Drupal module. I would like to take this one step further by writing an extension to automatically updated the XML file based on the contents of a particular image gallery.

Outside of the home page, I am using the Image module, including galleries. I have not yet seen the need to go to ImageCache and appreciate the simplicity of automatic creation of gallery pages. If Image Gallery Access works as advertised, then I will be able to distinguish albums to which ordinary, authenticated users can post from those that are reserved for web site editors. FUpload appears to provide batch uploading that should work nicely for site editors, parents, and students (should I worry about Flash version compatibility?). Missing at the moment is the ability for an authenticated user to create a new image gallery, which would be great if someone is posting sports photos and wants to create a new sub-gallery for each game. If we decide to limit the number of photos posted on this server, then prolific photographers may be better off using Flickr, anyhow.

Embedded Media Field appears to work great, except that I can’t figure out a way to wrap body text around the embedded item. This may be fine for relatively unprivileged, authenticated users but probably not sufficient for web site editors.

I have recently switched from TinyMCE to FCKEditor and am loving it so far. Everything seems to present and work better with FCKEditor, especially embedded images. Do you know of a way to limit file browsing capability to user directories for some roles? I wouldn’t want any user to have access to the primary embedded image store for the site. I would also like buttons and filters to elegantly embed files, uploaded media, and third-party media all within the WYSIWYG interface. I wonder how difficult it would be to write those extensions and make them available to some roles and not others.

Roles

Drupal, as community software, offers the exciting opportunity to invite many different constituencies in our community within the site and provide features such as comments, blogs, directories of people, and photo upload privileges specifically to them. I have created the following roles so far:

anonymous user
authenticated user
administrator
alumnus/a
applicant for admission
faculty/staff member
job applicant
parent
student
web site editor

User Profiles

I haven’t begun to explore this yet. In some cases, the user profile is a critical function. For example, we want alumni to edit their information through the site: contact details, schools attended, place of employment, interest in the career network, etc. Faculty members will have short biographical passages to help describe themselves. This means that some roles will use different profile fields from others — I need to learn how to make that happen, and whether to use nodes for user profiles in these cases. On a related note, real names will need to be visible throughout the site — I have used Authorship for this before and will need to evaluate it and investigate alternatives once more. Authorship does not have a Drupal 6 version at this time.

Commenting

Opening commenting is a really exciting opportunity. We currently do not have this feature in our current site, yet we know that our users have a lot to say, and we want to draw them more tightly into the school community. At the same time, independent schools try to maintain a decent level of control over publicly-available content. Drupal’s commenting system seems perfect for this — allow all authenticated users to see and post comments, allow all web site editors to administer comments, and do not use a moderation queue at all. Done.

One downside I can see at this time is that a blog author may in the future want the ability to moderate their own comments. I’m not sure whether this would require a lot of hoop-jumping-through in Drupal, as compared to a blogging platform such as WordPress.

Calendaring

I have done a little investigation here, not very much. I have set up Calendar and CCK Date. I am finding setting up calendar Views to be bit involved. We will make extensive use of list views of calendar items by taxonomy terms in blocks throughout the site.

The custom content type for Athletics events looks great — opponent (node reference), bus departure and return times, result, score, notes will serve their function well. One glaring omission for Drupal 6 is Time. The last I read, developers are testing a Drupal 6 version. We will need this CCK field in order to have additional times for the day of the event (such as bus departure and return times).

We have yet to decide whether Drupal’s calendar could meet all of our internal, public calendaring and resource reservation needs, or whether we should install a proper calendar server.

Migrating Custom Functionality

We have built over the years a lot of custom PHP and Perl scripts that we plan to migrate into Drupal over time. Many of these will wait until year two or three of the project. They function fine now, and we have to first roll out the core functionality of the site.

Applicants for admission can complete an inquiry form, sign up to visit the campus, and download admission forms online. All of these functions pull data from our Blackbaud database in order to function. We could migrate these (rather large) scripts into Drupal, gaining additional benefits: applicants for admission would become authenticated users and be able to read and post comments, gaining greater visibility into the site.

Our current volunteer signup and management system keeps track of multiple events, caps signups for specific time slots in order to automatically distribute volunteers to where they are needed, and produces summary lists for volunteer coordinators. If Signup can do all this, then we will move this feature to Drupal in a flash.

Job applicants can, using another site, view and apply for jobs at the school. This seems like a prime candidate to move to Drupal, which has better designed file submission features than our current system. It will be key to leverage Drupal to provide good workflow management functions for the human resources office — the ability to flag applicants for certain categories, add notes to applicant files, invite supervisors to review applicants online, and send mass emails to those declined for the position.

Social network sites

Connecting with constituents through social network sites is a hot issue right now for independent schools.We want to meet our constituents where they are, in addition to drawing them into our site. At the same time, we want to leverage existing content and processes as much as possible while making this happen. I am happy to find out about Ping.fm, which should allow us to automatically generate Twitter, Facebook, and other status updates from specific News items that we post to our site. With no additional effort, we will broadcast our news items to our users’ communities and cultivate follower lists around the web.


Content types

Here is a list of content types in our test site so far.

Athletic event
Blog entry
Calendar event
Classroom (node for organic groups)
Image
News item
Opponent
Page (modified to serve as the main content type for descriptive pages)
Team (node for organic groups)

Modules

(so far)

autosave
book_access
calendar
cck
date
devel
emfield
fckeditor
filefield
image
image_fupload
jquery_media
ldap_integration
lightbox2
messaging
notifications
og
print
scheduler
simplemenu
slideshow
token
views

Moving forward with Drupal

drupal icon

We have made the decision to proceed with Drupal to build Catlin Gabel’s next public-facing web site! That means that you get to stop hearing me refer to it as our “potential” next web site platform. In the end, the decision came about through several factors:

Any open source system will allow us to shape the site to suit our needs better than a closed system. I demonstrated, through a test site, that a relatively simple Drupal install could meet the most critical needs that we identified for the web site. There’s nothing like a hands-on test to convince a critical friend.

Taking other stakeholders on a tour of the Drupal site was helpful. People may have an impression that open-source software is less professional or reliable than commercial software. A quick tour of the Drupal forums, modules lists, and handbooks conveys the incredible scope and activity of the Drupal community.

Prior experience with Drupal played an important role. You could successfully argue that we created a self-fulfilling prophecy by using Drupal for so many other purposes and tests. Each experiment has increased our Drupal expertise, to the point that the considerable knowledge we have built played a role in the platform decision.

Prior PHP/mySQL development also contributed to the choice. Before we tried Drupal, even before I joined the school, we had developed a number of useful PHP scripts that expose data from our student information system for teachers, students, and parents to use. It will be easier to convert these scripts into Drupal modules than into, say, Python.

Next steps: hire a graphic designed and a Drupal consultant. I will post more details about these opportunities soon, but feel free to drop me a line earlier if you are very keen on them.

Onward we fly!

It’s not about the next big thing

No matter how many amazing technologies that educational technologists may personally enjoy, our work in schools is fundamentally about supporting teachers and students. We provide the tools and means for teachers with limited time and risk tolerance to try activities that apply modern pedagogies and use social technologies. We ourselves operate in a different world, immersed in social technologies at our desks and at home, able to spend far more time than can most teachers.

I spent an hour today with arts teachers from grades PS-12, focused on a single topic: posting multimedia content to web sites. If we post more content, students can exhibit more work, and visitors can learn more about the school’s arts program. Our teachers already have the media—digital photos, audio, and video. They just need help crossing that last hurdle to post the content online.

mask work

We have our share of early technology adopters. They build amazing lessons with technology tools: trip planning with Google Earth, language activities for homework with Voicethread, real-time group writing in Google Docs and class discussions in Moodle. Now we are grooming the second level of teachers who are eager to learn new technologies once they have seen others use it successfully, and the platform looks stable. This second wave of teachers is much larger than the first, so many opportunities exist to provide training, visit classes, and involve the innovators in providing leadership and guidance. The second wave will make student-centered classroom uses of technology commonplace, not just exceptional.

Many kids figure out how to post content on their own, especially in the higher grades. Younger students need more assistance, especially with audio, since the most successful commercial networks emphasize photos and video. Substantial online writing—especially collaboratively—is often a new experience for students. We have also found some success with students learning skills in one grade and carrying them on to the next.

Helpful in this endeavor is insideCatlin, our “walled garden” of social software open to the members of the school community. While I completely understand some educators’ insistence on teaching students to use publicly available tools, we find it easier to scale technologies to multiple classrooms when everyone uses a common platform that we can bind to our login system and customize to our liking. Intranet-based services also ensure that authorship of posted content is easily identifiable, helping teach responsible use within a community setting.

I have scarcely mentioned Twitter at our school. Does it have potential as a useful tool? Sure, but we’re better off using scarce teacher time to deepen one’s still-nascent understanding of the last few years’ inventions, to enrich their curricular applications and actually improve student learning. I’ll continue to tweet, but I won’t encourage our teachers to (at least not yet)! I may even get into Second Life (if someone drags me there), but I would not roll it out here in a big way. Teachers’ brains and schedules are currently full. Except for the rare few, they can’t give these new technologies the time they require to make them really useful in the classroom.

What successful experiences have you had scaling new, curricular applications of technology to the majority of your teachers?

Language classroom multimedia setup

language classroom

This won’t win the prize for the simplest, most elegant setup, but it’s a practical combination of new and old technologies. This room was originally set up by a professional audiovisual installer about five years ago with audiovisual rack, long-throw projector, AV switcher, satellite and cable TV feeds, multiregion VHS and DVD players, and stereo speakers.

When the projector died, it was less expensive to purchase a Smart 680i2 for the front of the classroom than to buy a bright projector and custom lens for the rear of the classroom. The teachers also gain the Smart Board and document camera that they have wanted for some time.

The teachers are all ready to use the equipment to analyze language materials from all kinds of sources with their students. We should see some great applications of technology to curriculum come out of this Spanish and Mandarin Chinese classroom.

Video In-Service Training

I could use your feedback on a digital video training session I am designing. The purpose is to provide an overview of different video technologies that we make available to teachers at our school, so that they may subsequently choose one and pursue it in-depth at a later date. I would like to make it hands-on without getting project-based during this one-hour time session.

I plan to provide a short conceptual overview of different video technologies and then take the group through a series of hands-on stations, rotating the individual who sits at the setup each time. This will provide a nice balance between hands-on and time constraint.

Here are my planning notes for the session. How should I improve the plan? Please submit comments below!

Why video?
- the MTV and YouTube generations
- reaching all learners
- visual literacy

Where to post video
- Catlin web site
- Moodle
- Drupal

Web video
- if you see it, how should you share it?
- “Share” links, embed code, HTML rights
- HTML editing modes: Catlin web site, Moodle, Drupal
- other formats

United Streaming
- what it contains
- how to bookmark or share

Video cameras
- capture
- Firewire and USB cables
- software (iMovie, MovieMaker, Premiere Elements)
- transfer, edit, export

Flip Mino
- capture
- USB transfer
- conversion

TV Recorders
- Cable and satellite sources
- Schedule on TiVo web site (incl. login information)
- Burn to DVD
- Finalize recording

Live TV in the classroom
- Best for momentous events (when it has to be live)
- Few live cable or satellite connections
- Over-the-air digital TV setup

365photos

With this humble entry, I hereby join 365photos.

and we're off ...