Tag Archives: cms

Web Service for Middlebury Weather

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.

Update from Database Applications & Systems

Submitted by Chris Norris

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

Update from Database Applications and Systems

Submitted by Chris Norris

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.

Images for RSS feeds on the CMS

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.

Consolidating the News in a Dashboard

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.

All the News that's fit to put in one Channel

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.

404 Page Not Found Emails

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:

<ErrorMails>
<ErrorMail path=”/administration/cso” email=”imcbride@middlebury.edu”></ErrorMail>
</ErrorMails>

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:

  1. If the user typed the page address directly into their address bar
  2. If they used a bookmark
  3. 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 worked… mostly!

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.

Language Schools Home Page with Broken Wrapping

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:

<telerik:RadEditorPlaceholderControl style=”display:inline” id=”mainContent” Placeholdertobind=”mainContent” toolsfile=”~/RadControls/Editor/ToolsFile.xml” configfile=”~/RadControls/Editor/ConfigFile.xml” runat=”server” />

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.

  protected override void OnPreRender(EventArgs e)
  { 
    foreach (RadEditorPlaceHolderControl editor in FindRadEditor(Page))
    {
     editor.Style.Add(“display”, “inline”);
    }

   base.OnPreRender (e);
  }

 Now it’s fixed everywhere and the CMS seems to be running well in the new environment.