This post was originally an email to “the people who cared most about this issue”, which I immediately realized was the most conceited possible address for a message on this subject: the personalizable features for the new website. By its very nature, this concerns everyone who works, studies, and teaches at Middlebury, all of whom care on at least a small, perhaps unconscious level about whether they can create their personal web space or maintain a profile on our new website.
At least, it’s been my hope since the beginning of this project that people cared a little about this.
Still, sometimes it takes a conference room of 30+ people to convince me that I’m wrong about something. This afternoon we met to discuss a possible solution for implementing a personal portal experience on our new website. There was plenty of criticism for the proposed software and I didn’t take it very well. During the meeting and then later in the afternoon I advocated a compromised position: we should implement the parts of this software that dealt with creating personal web spaces and profiles and ignore the rest. After a few hours of reflection, and a few beers, and a brandy, and a glass of port, I’ve come to a different conclusion: we should scrap the whole idea, look back at the features people either requested or were prematurely promised and develop a method to get that stuff working on our new site.
Here’s what the application we looked at this afternoon offered:
A directed announcements page
A static list of constituent-oriented links
A RSS feed reader
Personal web space for all users
User profiles fed form a central database like Banner
Alumni gateway features like a career network
Here’s what we’ve actually been tasked with delivering:
Professional profile pages for Faculty and Staff
A page of personal bookmark links
Maybe some sort of iGoogle thing. That’d be really cool!
That’s it.
Let’s deal with each of these point-by-point.
Professional profile pages
We already offer several systems for building out your personal web space. Many users have web-accessible directories on our old UNIX server where they can upload HTML documents. I got one of these accounts when I was job shadowing one of the system administrators at the college in 8th grade and then used it again when I took an intro CS course at the college while in high school. The server’s been upgraded a couple of times since then and now runs some version of linux, but it’s basically the same set up. If people want a bit more, they can create their personal web space on Segue, our custom developed LMS, or here in Wordpress, or as a user page in one of our wikis, or as a profile posting on our current CMS, or in a couple other really specialized systems. We will very likely soon also offer Google Apps for Higher Education, which will allow people to build out their personal site using Google Sites.
But the idea with these professional pages was that people would want to present information about themselves in a highly structured format, integrated with our new website and content management system. Faculty might want to post their CV, academic history, and current courses on a page that as the same look-and-feel as the rest of their site, delegate permissions to allow the academic coordinator for their department to help them update the information, and provide some dynamic content from our campus directory or course catalog. Doing this requires more of a thought out, structured system than we’d be able to offer with basic HTML document web hosting or even Google Sites. The idea was, therefore, to create a basic web space for everyone within our new CMS and let them build out their site in this space.
This creates some rather obvious problems. If this is just basic web space, how to we integrate it efficiently with the course catalog or online directory? How do we automatically enable departmental colleagues, such as the academic coordinators, to assist in building out the content for these profiles, as they have done in the past? If we want to add a piece of functionality to every one of these professional profile sites, can we do it in an efficient manner? Can we aggregate this content easily, knowing that our central database system doesn’t tell us which people belong to which departments or workgroups? How do we reuse this content in other areas of our site?
If we were to just turn on really simple web site editing for all users, very few of these things would be possible.
Instead, we should do what we have already begun to do for Monterey: use a specialized template in our new site for professional profiles that includes fields for all of the information we want to know about the person and might choose to use when segmenting or aggregating the information. We should then have these profiles pages created within the departmental or office sites relative to these people. We can then use the power of our new CMS, Drupal, and its Views module to create pages that allow the user to quickly and efficiently find the people they want to know about. An example of this already in action can be found on the development version of the MIIS site (here’s a link that will only work on-campus and will break soon: http://miis2.middlebury.edu/academics/faculty).
We have never been successful demanding that anyone use a particular system and will, naturally, still offer all of the options for creating your personal web space that I mentioned above, but for creating the types of profile pages that we know need to be present on the official departmental pages, we’ll offer this option with encouragement and development support for integrating the “official” profile with the database systems that already contain much of the information we’ll be presenting.
A page of personal bookmark links
This is the most important feature of our new website for our internal audience. During meetings last winter, faculty, staff, and students were both promised that this would be available and told us that this feature was required. Accordingly, we need to find a way to make this work. The resulting system cannot feasibly be one where the user can simply click a button on any page of our site to add it to their personal bookmark list; such functionality requires an integrated portal product that we are not able to run due to pressure from faculty to run systems such as Wordpress and MediaWiki for their specialized uses rather than a single portal application like SharePoint, Luminis, or the custom systems developed at Amherst and Gettysburg. However, that does not mean that we cannot offer customizable gateway pages with the following features:
A default list of links
A prominent form, encouraging users to log in and edit their list
Drag-and-drop reordering of links on the page
A quick webform where the user can paste a URL and enter a simple title for the link page
Integration with our single-sign-on system, so if the user is already signed in to one of our web applications they will be presented with their custom link list immediately upon selecting one of the constituent gateway options from the global site footer
Some type of iGoogle thing
We know that our advanced, cutting edge users want to personalize their web space with drag-and-drop widgets, design their own homepage experience and have deep, interactive ties with our core systems. We have also heard, from several of the design vendors who visited us during our RFP stage as well as intelligent folks on campus, that rebuilding a local version of a really cool application like iGoogle is a fool’s errand. As soon as we’re done with our version of it, Google will come out with a really cool new feature that ours doesn’t have and people will just keep using Google’s version of the application.
Much as I want to believe differently, I have it on good authority that Google has both more and better developers than Middlebury College. We’ll likely never be able to offer a better version of iGoogle than they have already created, so we might as well use the instance they’re giving us. We’ve heard that the iGoogle that comes with Google Apps for Higher Education is considered “deprecated” by Google. Still, I remember a phone conversation that Chris and I had with a Google representative in 2006 who assured us that Google would soon be charging institutions like ours over $10k a year to use the Google Maps API without advertising and that this change was only “months” away. By my count, it’s been at least 40 months away at this point. Of course, we can never tell when a 3rd party vendor will unilaterally kill support for an offering that they’ve told us they’re killing support for, but we’re talking about something that we already know will be used primarily by our power users.
They can deal with it if Google decides to move on.
Welp
To summarize: I think I was incorrect about the necessity of implementing a local profile portal to serve the features our requirements gathering effort found last winter. When this post was still an internal email, I was going to request that I be given the opportunity to publicly apologize for my behavior this afternoon in attempting to push this through rather than listen to the honest feedback coming from our staff and students present at the meeting. This blog post should serve as that apology. I think I get it now and rather than implementing services that I think would be really cool, will advocate for things that accomplish the actual goals you set for us in this project.
I recently emailed my boss saying that my time working on our website after hours like this was at an end, but I find I can’t really operate that way. If I didn’t spend the time to type out this post, this would just be gnawing at me all night and that’d be a worse punishment that taking the hour or so required to get my thoughts down in writing. While I’ve said that I think I’m now more correct in my thinking about how this should all work, I have to acknowledge that I was incorrect previously which could very well mean that I’m still laboring under misconceptions. Please use the comments field here to let me and the rest of the development staff for Middlebury’s new website know if I’m still off my rocker on this issue.
This is just going to end up annoying me if I don’t post it. I was trying to go to sleep tonight when I thought up something that I wanted to get down in writing before I talked myself out of it or realized how stupid it was. I started writing this with one basic idea: ending threaded conversation on the web. After seeing where it took me, I think I realized that my solution was just too close to what’s already been/being created in Twitter and Google Wave. I saved this as a draft and closed my laptop. But I think there are some differences with what I want and those tools and, in any case, I wanted to ask other people what they think about the pros and cons of threaded conversation, so I decided that I’d come back, write this intro paragraph and then post the thing for ridicule.
I’ve been working with the LIS Website Team for a couple weeks now in thinking about how we can improve our organizational communications using the website. We set up a project blog and a project wiki and started trying to use them to communicate. One thing I noticed right away is that we’d have these mini conversations in the comments for a particular blog post that might be connected with other mini conversations from other posts, but there was no real way to tie these together. Eventually we might talk about one of these at a meeting and then, perhaps, transfer the results of the conversation in some other form onto the wiki. Maybe.
This same problem happens all the time in web forums where you’ll have a discussion in one thread that’s related to another, get off on a tangent, but have no way to connect the two threads. Communication tools like content management systems and wikis fail to convey the conversation in an even worse manner by obscuring how the concluding document was created by locking it in a revision history that often only shows what was changed, but not why it was changed.
A lot of it, I think comes back to the basic structure of all content on the web: a body, a title, an author, a timestamp, and possibly some other metadata depending on the type of content. This same structure has been in place since people were posting on BBSes. The trouble is, by locking the discussion into having a title you create silos of information in parallel conversation threads.
What’s needed is a discussion tool that allows open participation without tying the conversation to a topic. Alright, that’s what Twitter does in a sense. But while I appreciate Twitter’s elegant simplicity, I don’t think that format allows for the depth of back-and-forth discussion I want to have on certain topics and I require something more than the workaround of just linking off to a blog post or forum thread.
Here’s what I’m looking for in terms of requirements:
Single threaded conversation – You can reply to someone, or to multiple people at the same time.
Open conversation – People see what you’re talking about and can jump in and give their point of view.
Quote content for reply – when responding, you should be able to reference part or all of a prior post or posts in a way that makes it easy for any person to refer back to the original through (at most) a single click.
No other tool(s) required – You should not need to link out of this tool to a blog post, video, chat log, document, web page, or any other external content. Doing this could be an option, but the ability to create any of this content inside the tool should exist.
Experientially similar to email – Every time I talk about moving the conversation onto the web it’s really about moving away from email. Clearly there’s something about using email that people enjoy, so why reinvent that? You should be able to nudge people to comment by including them in a “To” line, similar to @’ing someone on Twitter.
What do you think? Are these needs already answered by some combination of existing tech like Twitter, Google Wave, blogs, wikis, desktop collaboration applications, or email? Am I on the right track in that unthreading the conversation will improve communication? Or should I just have gone to sleep an hour ago?
I’ve added the Video Filter module to all of our Drupal pre-production instances to help those of you who are testing Drupal or doing preliminary content development on those servers. You can use this module to include video from one of the 15 sources that it accepts out of the box, like YouTube, Google Video, and Vimeo.
This uses the format [video:URL width:X height:Y align:left/right autoplay:1/0]. For example:
I also extended this by creating the MiddMedia Video Filter module which uses the same syntax as the Video Filter module, but allows you to add videos from our local streaming media server, which supports flv and mp4 video as well as mp3 audio. All the optional parameters work for the videos, but you can’t set them for the audio player. For example:
I tweeted a bit earlier about how I’m now a member of the LIS Website Team. We’re still in the very early stages of this project, but we’ll be firming up our vision and charge in a meeting later today. The concept of teams is also the topic of the next LIS Staff Meeting in July. I have to say, as someone who is typically very cynical about these types of activities, I’m actually feeling good about how this project will work out and hope the Team model is one we repeat in future LIS projects.
You can follow all of our team’s updates through our team blog and keep informed of our notes and documentation through the team wiki page. We’ve also enabled email subscription to the blog, for those who would prefer to receive updates using that rather than RSS.
I’ve added language packs to a development version of the Drupal site for each language where Middlebury has a Language School. These language packs help to translate the user interface of Drupal. However, most of our users will be interacting with Drupal through Monster Menus, rather than the default interface. Fortunately, Drupal provides an interface to automatically detect strings in UI screens and adds them to a database of strings that can have translations. Both Middlebury and MIIS should consider who within their organization could provide interface translations for each of our supported languages.
Speaking of which, here are the language packs I installed:
Language Arabic 0/5373 (0%) Chinese, Simplified 2511/5373 (46.73%) Chinese, Traditional 2514/5373 (46.79%) English (built-in) n/a French 4695/5373 (87.38%) German 4500/5373 (83.75%) Hebrew 1450/5373 (26.99%) Italian 3488/5373 (64.92%) Japanese 2883/5373 (53.66%) Portuguese, Brazil 2650/5373 (49.32%) Portuguese, Portugal 0/5373 (0%) Russian 2363/5373 (43.98%) Spanish 2539/5373 (47.25%)
The second column shows the number of strings and percentage of total strings the translation pack comes with. Note that there currently is no supported language pack for Drupal 6 for either Arabic or native Portuguese, though the maintainer of the Arabic language project just started up work on it again this week.
None of this needs to be decided today, of course, but do we want to support both versions of Chinese and Portuguese? Are there other languages we want to support? Middlebury and MIIS can have either the same, or different, sets of languages enabled in their site, so which would each site like?
And that’s just interface translation! We should also be considering content translation, as we’ve already seen that this will be a likely prominent feature of the MIIS site and I would be shocked if it weren’t featured at least on the language oriented parts of Middlebury’s site. When talking to areas of the college about content development, be sure to mention this.
You’ve probably heard Drupal mentioned in discussions about our new website, but you might not know what Drupal actually is. Drupal is a web-based Content Management System, similar to the software that our current website runs on, but also different in many ways. In this session, Ian McBride will discuss the things that makes Drupal unique, why we chose Drupal as a platform for our new site, and look at some examples of the ways we can extend Drupal to improve our website. We’ll spend some time looking at an extension developed by Amherst College, the only other school running its entire web presence on Drupal, named Monster Menus which we’ll be using as part of the core functionality of our site.
This session requires no technical knowledge of our website, content management systems, or programming, but is a great opportunity for you to ask questions on those topics.
I’ve prepared an agenda of topics as well:
The Drupal CMS (20 minutes)
Anatomy of a Drupal Page
Drupal Nodes vs. MCMS Postings
Modules
Why we chose Drupal
Amherst’s Monster Menus (10 minutes)
Creating a site hierarchy
Delegating permissions and design
Extending with RSS
Free Form Questions and Answers
Your opportunity to ask whatever you’d like about Drupal’s features, framework, and functionality or about our future website’s structure, extensions we’re planning, and our philosophy with regards to requests for new modules. To accommodate those with scheduling conflicts, feel free to come and go as you please during this.
GO has undergone several revisions in its operating code base. The first version was a PHP 4 script running off cat.middlebury.edu that simply handled redirection of URLs based on well-formed parameters. This was then moved to a special CMS channel with redirect postings for each of the “codes”. At this time the system wasn’t known as “GO”, rather the “CRA” which is an acronym I can’t remember the meaning of. When Chris thought up extending this to be go.middlebury.edu, I rewrote the system in PHP 5 so that it could have a database back-end with some administration screens. This version of GO supported all kinds of functionality: shortcut “types” like “Banner” that allowed us to shut off whole systems at will, a statistics library that grew so large we could never use it, multiple fallback URLs for some shortcuts, and a load balancer that I swear, at one time, actually worked (others disagree on this point).
Becuase of the scope of that application, maintenance was continually an issue, particularly at stress points in the year, like Registration, where many people would hit the GO system all at once, hoping to get transferred to Banner so they could register. Chris decided we should simplify the whole process and remove scripting languages and databases from the equation entirely, so we transferred the existing shortcuts to a flat file that served to redirect the URLs. This meant that we lost some functionality like the old GOtionary with its code descriptions and the ability to turn on or off a particular code at will through a web interface. So I got to work on a “simplified” GO and that’s what we launched on Monday.
The old GO database’s 13 tables were cut down to a mere 4: one to hold users, one to hold shortcuts, one to relate users and shortcuts, and one to hold aliases for shortcuts. This also allowed us to simplify the administration interface for the application to just have a “create” and “update” screen that people can use to manage their shortcuts. Additionally, because of its simplicity, we decided to make GO a self-service application. This means that you can now create any GO shortcut you want! Of course, you can’t create a shortcut that’s already been created, and we may need to re-purpose your shortcut if the College needs it for an important academic or business purpose (e.g. if you register go/czech and later on Middlebury opens a Czech Language School…).
Here are some helpful definitions regarding GO:
shortcut: these are the meat and potatoes of go. Anything after “go/” is the shortcut. So in “go/bannerweb” the word “bannerweb” is the shortcut, but you might also have “go/bannerweb/courses/english” where “bannerweb/courses/english” is the shortcut. Shortcuts can be up to 255 characters long and contain any alphanumeric characters plus /, ?, -, and _. The only restrictions are that they can’t begin with /, ?, or the phrase “go/”.
alias: these provide an alternate path to a shortcut. For example, “banner” and “bw” are both aliases for “bannerweb” so you can type go/bw, go/banner, or go/bannerweb and get to BannerWeb. If, for whatever reason, the URL of BannerWeb changes, we only need to update the “bannerweb” shortcut and the “bw” and “banner” aliases automatically follow.
creator: the person in charge of the shortcut and any associated aliases. Only the creator can delete a shortcut and only the creator can add other users.
user: any person who can update the shortcut. Users can change the URL, description, institution, and whether the shortcut is hidden from the GOtionary.
institution: we maintain both go.middlebury.edu and go.miis.edu and you can create shortcuts for either. However, each shortcut can only have one institution. You can change the institution of a shortcut at any time, but it will stop working in the other institution.
One thing we noticed during the Web Redo requirements gathering process is that people seemed confused about the GO domain. We got a lot of responses saying, “I wish I could use GO when off campus!” You can! The domain go.middlebury.edu exists for exactly this reason. In fact, when you’re on campus, you’re using this address even if you just type “go/”. It’s just that, since you’re on campus, we assume that you’re interested in middlebury.edu stuff, so we don’t make you type it. However, all the addresses in GO are available anywhere in the world by typing go.middlebury.edu/shortcut (or go.miis.edu/shortcut). GO isn’t the only service that you can get to quickly just by typing its sub-domain name when on campus; try this out with “www”, “segue”, “middmedia”, or “netstorage”.
There’s a plea about this on the GO administration screen (http://go.middlebury.edu/admin), but I’ll repeat it here: if any of the existing GO shortcuts are things you’d like to manage, and you work or study in an area related or responsible for the shortcut, let me know (by emailing go@middlebury.edu). I’ll set you up as the creator of the shortcut and you can go from there.
I’ve finished coding a Web Service for retrieving weather information for Middlebury, VT. The service is available at http://web.middlebury.edu/systems/weather/Weather.asmx. Currently, the service supports six functions:
getConditions() – returns a text description of the weather
getDate() – returns the date/time of the last update
getHigh() – returns an integer value of the high temperature in degrees F
getIcon() – returns the relative name of an icon representing the conditions
getLow() – returns an integer value of the low temperature in degrees F
getNOAAUrl() – returns the full URL to the NOAA’s weather site for Middlebury
Because the NOAA requests that you not retrieve information more than once an hour, the information is cached locally until a new request comes in more than an hour after the cache file was last modified. You can use the getDate() function to find out when the cache file was last refreshed. Right now, the service only serves up information about Middlebury’s weather, but I could see expanding this to allow other locations to be requested based a parameter to the service constructor. This might be helpful in getting weather conditions for other campuses. The getIcon() function will return a value like “01.gif”, which is an image file in http://web.middlebury.edu/systems/weather/Images, but you could have your own set of weather icons for your service and just mapt he appropriate condition to 01.gif.
This is based on code written by Brett Wilhelm for the MiddCMS framework. I’ve modified the code so that the different pieces of information are chucked out into functions, but the underlying functionality is the same.
Here are some of the projects and tasks that DAS staff members have been working on during the past month…
Mike Schuster
- Ran the SYPAEMH process in production to apply Emergency holds for 394 students
- Modified off campus study, field of study database triggers and package to correctly build the first away term for students with multiple curriculum
- Modified SYPCSCC process for applying class codes to prevent it from including winter credits when calculating current credits and also to only copy specific attributes to future terms
- Worked with Jai Shankar to modify the TSRCBIL FormFusion template to print ‘Do Not Remit’ in a few places on student bills when their total is 0 or a negative amount
- Rewrote the LS Apps by Prior College report
- Diagnosed and fixed a problem where custom database procedures were sending email with a timestamp off by 5 hours.
- Modifications to LS & BLSE Financial Aid online web applications
- Expanded the answer box for the college currently attending question on the LS and BLSE Financial Aid applications
- Added error handling in save supplement procedure to check for nonnumeric characters entered as answers to questions looking for numeric answers
- Added text to top of ls_application and blse_application to tell applicant not to use the enter button. Changed text for “Save” buttons to “Submit” buttons
- Added text to explanations/special circumstances instructions: “Please limit to 300 characters.”
- Added error handling in save_application procedure to alert user if they didn’t enter a ‘.’ or ‘@’ in their email address
- Created a spec for the MIIS web application.
- Modified Faculty Advisee list SSB form to allow users to email all advisees or selected advisees
- Online Room Draw 2009 modifications
- Several modifications to room draw space maintenance SSB form for residential systems coordinator
- Several modifications to room draw SSB forms for student submitted applications
- Planning conversations with Jeff Rehbach, MBS Books, and Bob Jansen about creating a process to upload course information to the Online Bookstore vendor and modifying the course listing pages to include links to the bookstore software
Rob Pekor
- Put final touches on the Phone-a-thon data interface for College Advancement
- Added keyword descriptor to output filename of the segment data produced
- Enhanced and modified Oracle procedures behind a Hyperion Mailing report
- Corrected issues with the Volunteer web application (Agents-in-Action) for Annual Giving, problems centered around the field length of the home phone number
- Assisted in fixing problem with online donor roll.
- Created multiple data files for various populations (segments) specified by Annual Giving.
- Analyzing and starting to build specifications for the data feed for the Harris online community project
- Put final touches on the Banner/List-Manager (Broadcast Email tool) integration model with Travis
- This required new function to delineate language school and Bread Load of staff, faculty and students
- Set up volunteer data/assignments for Annual Giving
- Enhanced the Agents-In-Action application to allow input of new ask amounts and assignments
- Created new Oracle package/procedures to allow sending files via FTP from database procedures
Travis Stafford
- Banner/List-Manager Integration project
- Defined types and sub-types
- Defined admin model
- Web Forms
- Supported existing Web Forms
- Ongoing migration of new requests to WPcformsII for BLSE, ACE, RCFIA, HR
- Resolved numerous HEAT tickets and provided support for end-users of online services
Liz Whitaker-Freitas
- Hyperion System 9 Upgrade/Migration
- Resolved several post-migration issues
- Responded to unplanned services outages
- Worked with LIS Staff to develop lab images for new HS9 plugin
- Assisted functional/technical leads with publishing, scheduling and provisioning in new environment
- Researched and resolved connectivity issues with existing queries
- Resolved Oracle Client install issues
- Researched causes of failed jobs
- Tested and deployed Patch/SP
- Cleaned up some custom Roles/Groups
- Worked with Velaris on plan for log archiving
- Resolved report issues (Admissions Data Processing Reports, College Advancement Mailing Reports)
- Other Hyperion
- Trained Tech Lead on how to use derived queries and dashboards
- Trained LS on how to publish and maintain ad-hoc reports
- Processed Hyperion security requests
- Resolved Hyperion HEAT tickets
- Prepared list of services currently being performed by Velaris or Midd staff with recommendations for ongoing support
- Ongoing work for the Lockdown project to change reports using saturn or saturn_midd embedded credentials
- FileMakerPro
- Changed views for Athletics FMP application, troubleshooting issues, change nightly schedules to import view data
Ian McBride (was on CTO for a significant portion of this time)
- Participated in the Web Makeover team meetings and work on the Web Redo project
- Installed a test instance of Drupal CMS for this project
- Finalized the soon-to-be-live new News site for Communications
- Moved all non-CMS web applications off the primary CMS server
- Ongoing work to build out site templates for the New England Review in WordPress
- Developed a web service for system monitoring and backup contacts
- Continued work on a web service API for MiddTube
Chris Norris
- Monitoring and Troubleshooting for Online Services
- Identified and resolved Hyperion issues related to SP1 update
- Researched issue related to Banner INB and IE crashes
- Resolved TouchNet Payment Gateway outages and related issues
- Identified and resolved issues related to recent www –> web forms/services migration
- Monitored Online Course Registration (10 days) and resolved related web issues
- Training and Support for End-Users of Online Services
- Conducted a ListManager-Basics workshop for College Advancement staff
- Conducted a ListManager-Advanced workshop for heavy-use broadcast emailers
- Provided ongoing support for CMS editing, resolved HEAT tickets, answered support calls
- Project Specs / Work Definitions
- Refined Banner List Manager Integration project spec with Travis and Rob
- Helped initiate development of Harris Online Community project spec for Communications
- Completed DAS workgroup SWOT analysis for LIS restructuring efforts
- Revised DAS workgroup goals and objectives for upcoming year
- Ongoing Maintenance & Support
- Processed new GO requests
- Updated Middlebury’s United Way web presence
- Coordinated changes to Monterey’s Online Giving Form
- Reviewed Project Phoenix BIA reports, ongoing planning and specification for remote DR web presence
- Tuned GSA Search to improve keyword matching in search results
- New Projects & Tasks
- Configured SubmissionManager web application for Bread Loaf Writer’s Conference
- Participated in the Web Makeover team meetings and worked on related assigned tasks
- Worked with Advancement and Communications on microphilanthropy test for Organic Garden
- Worked with LIS Budget Administrator to help identify areas for cost reductions
- Worked with LIS Licensing to clarify Hyperion software licensing details
- Worked with LIS Policy Advisor to clarify PCI-compliance status
- Worked with Dean of the College and Directory of Public Safety on new Emergency web site specification
- Vendor Related Activities
- Participated in Sun-Guard/SCT Banner DBA weekly status calls
- Participated in Velaris Hyperion SysAdmin weekly status calls
- Initiated contract re-negotiation with Hyperion SysAdmin vendor (Velaris)
- Transitioned DavisUWCScholars.org and DavisProjectsforPeace.org site management duties to external vendor
Here are some of the projects and tasks that DAS staff members have been working on during the past month…
Mike Schuster - Modifications to a Banner custom process for the Registrar’s office that creates student class codes to meet new business rules.
- Modifications to the “LS Stats- new” Hyperion report to display applications for students applying to language schools at Mills College.
- Assisting with applying the Banner financial aid SSB upgrade in the DEV2 database.
- Investigating issues with Banner custom database triggers that create “away” and “returning” general student records for students going on leave.
Rob Pekor - Modifications to the Phone-a-thon data interface for College Advancement.
- Gathering requirements for the data feed for the Harris online community project.
- Refinement of the Banner/ListManager (Broadcast Email tool) integration model with Travis.
- Loading MIIS gift history for Monterey and College Advancement.
Travis Stafford
- Refinement of the Banner/ListManager (Broadcast Email tool) integration model with Rob.
- Transitioning the Alumni office and CSO towards use of the self-service WordPress cformsII plug-in for all “new” non-eCommerce forms.
- Clean-up of code and adding functionality to Project Tracker.
Liz Whitaker-Freitas
- Ongoing work related to the Hyperion System 9 Upgrade/Migration (one line item, but this is a BIG project).
Ian McBride - Completed development on a News Dashboard for College Communications (http://web.middlebury.edu/systems/newsboard). This will soon replace the main Public Affairs News home page and aggregate news content from several sources.
- Supporting CMS content providers and other web-related requests.
- Participating in the Web Makeover team meetings.
Chris Norris
- Migrated GO.middlebury.edu to a more stable prod environment, implemented GO.miis.edu for Monterey.
- Refinement of service-level monitoring, including addition of escalation groups.
- Project Phoenix BIA reviews, planning, specification for remote DR web presence.
- Pre-migration configuration, testing, troubleshooting of eCommerce web forms.
- Supporting ListManager newsletters, conducting ListManager workshops (only a couple more to go!).
- Contacting various folks about outstanding FileMakerPro requests, pre-migration web forms questions.
- Working on updated SWOT analysis of the DAS workgroup.
This morning I added images to the RSS feed HTML for all of the feeds on the CMS. Most of the feeds on the CMS are collections of News postings made by various functional areas. We have a page set up that indexes all of the live feeds on the CMS. If any of these News postings contain an image or are redirects to another news posting that contains image, that image will be displayed in the feed source. This only works for images which are in the default image placeholder control on the News template.
This appears to work in all major browsers and in the RSS Feeds component of Outlook 2007. For Outlook, I had to manually specify the height and width of each image because if you don’t Outlook will resize your image to 50×50 pixels for “security reasons”. I can’t quite figure out what those reasons might be, but fair enough. Now I trigger an additional callback to the Resource in the Resource Gallery that contains the image, render it in an Image Stream and access the height and width parameters to include in the img tag in the RSS.
I’ve started work on a project that will bring multiple news sources together in a single location on our site. This will be used to show news stories, blogs posts, videos, and links to news-related web sites independent of the system or platform the content lives on. The prototype I’ve set up after a couple hours of work can be viewed here: http://devweb.middlebury.edu/systems/newsboard/Default.aspx
It’s important to note that this only contains one news source, no styling, and no configuration options. However, it is a live and dynamic feed of the news items from our site. To do this, I’m using what are called “Web Parts” in ASP.NET. These special controls allow us to store personalization and configuration information in a central database that is retrieved on each page view. The idea is that College Communications will be able to log into this page and rearrange, retitle, and relink any of the RSS feed driven controls (once we have more than one, of course).
I’ll be using the same technology to drive a project that I’m working on later this year, the Personal Dashboard, which will have controls that read information out of your email, calendar, helpdesk tickets, and other sources of information relevent to staff. This dashboard will be totally controllable by each user so you can have the controls and information on your screen (your “portal” if you will) that are most important to you.
I realize this really doesn’t look impressive now, but I’ll be adding a lot more to this over the next few days and will update here with new posts as it goes.
We’ve successfully consolidated the News published by Public Affairs today. All news can now be found at http://go.middlebury.edu/news. This is the source for front page News items on the CMS, which previously had been drawn from a different News channel. This change should make it easier for Public Affairs to get their important stories onto the front page, since they won’t need to recreate them in a second location any more.
I made another News related improvement on the CMS yesterday that managers of Newsletters will appreciate. Each Newsletter has a set of pre-created “right nav objects” (check out SportsNotes to see what I mean), which are common design items that can be displayed on multiple Newsletter issues. Since the code for this was reused from a different part of the CMS, the right nav objects would only display if they were applied to the current channel. That’s fine when you want to display a link to the Initiative website on the front page of Supporting Middlebury, but not fine when you want to show this on every issue of a weekly (or daily!) Newsletter. You’ll be spending a lot of time setting up each channel to do this. Now, just for Newsletters on the CMS, the right nav objects will look to their parent channels to see if any are specified and inherit from there. This can be overridden at the issue level as well, allowing for variety if the author so chooses.
Newsletter administrators who want to know more about this should contact myself or Chris Norris.
When we first implemented the CMS here at Middlebury I was a summer intern working in a closet in Warner basement between stacks of printer cartridges and Dell driver CDs. One of my job responsibilities at that time was to fix any broken links on the CMS. To “help” me out, a script was created that sent an email to a central mailbox account every time somebody tried to access a page that didn’t exist on the CMS. In web terms, this is know as a 404 error. I received several thousand of these messages each day.
The volume of emails was too great for anyone to keep up with and so the script was turned off. We now rely on the sub-site content providers to maintain their own site and fix any broken links they might hear about from peers. Rather, that was the case until last night when I re-wrote the 404 Email script for our new CMS framework. Stephen Kiel, Technology Coordinator for the Career Services Office noticed a line in our CMS documentation which said:
“404 email notifications can be delivered to Content Providers upon request. Know about broken links on your sub-site as users discover them, very handy for large sub-sites with many channels/postings.”
As far as I can figure, this was to be a new feature of the MiddCMS framework that was just never added to the code, but was placed in the documentation. There is a section in the code that tries to log each 404 request to the server, but it is commented out with a note about performance concerns and even that doesn’t do what our documentation is saying we do. Still, the functionality is simple enough. We just need a configuration file with the email address of a person to whom we’ll send an email and the part of the site they’re concerned with, then just parse the configuration file every time you get a 404 message and send them the email with the information. This took me about a half hour to put together, with some time to add error handling for parsing the configuration file and other concerns.
Now we can send our content providers an email letting them know that a user wasn’t able to get to a site within their sub-site just by adding a line to an XML document like this:
With that in place, I would receive an email for every bad request to anything under “/administration/cso” containing two URLs. The first is the address to which the user attempted to get, such as http://www.middlebury.edu/administration/cso/does_not_exist.htm and the second URL would be the referer of the page request, if it exists. Typically, the referer will be the page the user just came from. This is useful so that the content provider can go to that page and fix any bad links to content that doesn’t exist. There are some times when the referer will be blank. The most common of these are:
If the user typed the page address directly into their address bar
If they used a bookmark
If they clicked a link in an email
There are certainly other scenarios, but those are by far the most common for our site. So if you want this functionality for your sub-site, just let us know by sending an email to the Helpdesk requesting it. I’ll be glad to add your email address to the list!
The updates to the web environment that we performed over the holiday break, including updating the MCMS database to use SQL Server 2005 and applying MCMS Service Pack 2 with a ton of fixes went forward successfully. There were a couple bumps in the road after applying the changes, but for the most part the upgrade went well. One of the most glaring changes caused a rendering issue with many pages on the CMS, namely those in which the content flows around another framework element, like a picture. The two most prominent of these pages were the Language Schools and Schools Abroad home pages.
As you can see, the content doesn’t properly flow around the “post it” in the upper right corner of the content area. I was able to track down this issue to the editing interface we use for the CMS, Telerik’s r.a.d. Editor, which in .NET 2.0 aparently inserts a style=”display:inline-block” attribute on the element where it renders the content from the editing control. This messed with our CSS, forcing the wrapping to break. I fixed this by manually adding a style element inline in the template that we use for these pages, like so:
Problem solved! Or so I thought. I figured this would be the only place on the CMS where this particular issue would occur since I couldn’t recall where else we were wrapping content around elements like this. Unfortunately, I forgot about the News template, which wraps its content around a picture with a caption. My colleague, Brett, helped me track this down by looking through the Telerik support forums and finding that the display:inline-block style is hard coded into the control and can’t be easily removed from the editor. We could override the whole control and implement our own styles, or we could force a global append of the correct style. We chose the latter as it meant writing one line of code, rather than several and changing every instance of the editor throughout the application.
One of the updates that will (hopefully) happen over the holiday break is a hardware and software upgrade to the primary web service. This should increase system performance and also applies some updates to the central system we use for managing all of the content of the website (Microsoft Content Management Server). To perform this upgrade, we needed to ensure that all of the services currently in use on the primary web server would remain working once we switched over to the new machine. I just completed that testing, begun several weeks ago, this afternoon with the production of a script we can follow in the future for testing other upgrades. Just to give a sense of the scope of the services that are going to potentially be affected, here’s a list of all the stuff we tested in preparing for this update.
1 Custom PHP Applications
1.1 Campus Map
1.2 Change Log
1.3 Dining Menu
1.4 Middlebury Directory
1.5 Monterey Directory
1.6 Forms (Non-TouchNet)
1.7 GO
1.8 MAuthRA
1.9 Economics REPEC Repository
1.10 Ride Board
1.11 Schools Abroad PreDeparture
1.12 TouchNet Forms
1.13 Monterey Store
2 Custom ASP Applications
2.1 Banner Web Scout
2.2 List Subscribe / Unsubscribe
2.3 List Segmentation
3 Microsoft Content Management Server
3.1 Rendering Scripts
3.1.1 FAQ
3.1.2 Front
3.1.3 Gateway
3.1.4 List
3.1.5 ListNewsPostings
3.1.6 ShowNewsPostings
3.1.7 Academics
3.1.7.1 ListExperts
3.1.7.2 ListProfiles
3.1.7.3 PrintProfiles
3.1.7.4 ShowProfilesPermissions
3.1.8 Admin
3.1.8.1 GetByTool
3.1.8.2 SearchTool
3.1.9 Athletics
3.1.9.1 EventsManagement
3.1.9.2 GeneralManagement
3.1.9.3 GetRoster
3.1.9.4 ListCaptains
3.1.9.5 ListProfiles
3.1.9.6 TeamScoreboard
3.1.10 HR
3.1.10.1 ListJobDescriptions
3.1.11 SEO
3.1.11.1 Babysitters
3.1.11.2 JobPostings
3.1.11.3 OffCampusJobPostings
3.1.12 Tools
3.1.12.1 GetFeed
3.1.12.2 GetFooter
3.1.12.3 GetHeader
3.1.12.4 GetImage
3.1.12.5 GetLeftCol
3.1.12.6 GetRightCol
3.2 Templates
3.2.1 Contacts
3.2.2 FAQ
3.2.3 Gallery
3.2.4 Main
3.2.5 MME
3.2.6 News
3.2.7 Redirect
3.2.8 RedirectBlurb
3.2.9 Academics
3.2.9.1 Expert
3.2.9.2 Profile
3.2.9.3 Student
3.2.10 Athletics
3.2.10.1 AsstCoaches
3.2.10.2 Profile
3.2.10.3 Roster
3.2.11 Errors
3.2.11.1 Error
3.2.11.2 SSLRedirect
3.2.12 HR
3.2.12.1 JobDescription
3.2.13 SEO
3.2.13.1 Babysitter
3.2.13.2 Base
3.2.13.3 GreenCard
3.2.13.4 JobDescription
3.2.13.5 JobPosting
3.2.13.6 StudentApp
3.3 The Edit Console
3.3.1 Live and Edit Modes
3.3.2 Production Manager
3.3.3 Approval Assistant
3.3.4 Resource Manager
3.3.5 Create a New Page
3.3.6 Connected Postings
3.3.7 Opening the Edit Window
3.3.8 Saving Pages
3.3.9 Deleting Pages
3.3.10 Moving Pages
3.3.11 Copying Pages
3.3.12 Page Properties
3.3.13 Revision History
3.3.14 View Revisions By Date
3.3.15 Create Channel
3.3.16 Delete Channel
3.3.17 Sorting Items in a Channel
3.4 The r.a.d. Editor
3.4.1 Basic Functions
3.4.1.1 Copy
3.4.1.2 Paste
3.4.1.3 Find & Replace
3.4.1.4 Print
3.4.1.5 Spell Check
3.4.2 Custom Links
3.4.3 Formatting
3.4.3.1 Alignment
3.4.3.2 New Paragraph
3.4.3.3 Text Formatting
3.4.4 Listing
3.4.4.1 Horizontal Rule
3.4.4.2 Indenting
3.4.4.3 Ordered List
3.4.4.4 Unordered List
3.4.5 Non-Text Functions
3.4.5.1 Docuement Manager
3.4.5.2 Image Manager
3.4.5.3 Tables
3.4.6 Other Text Functions
3.4.6.1 Format Stripper
3.4.6.2 Hyperlinking
3.4.6.3 Insert Symbol
3.4.7 Styles
3.4.7.1 Apply CSS Class
3.4.7.2 Headings
3.4.8 Undo & Redo