Access 2012 Pre-Conference: Learning Python

Today’s preconference session was a great way to force me to learn a bit of Python. The very basics were somewhat of a review since I read the first couple of chapters of the recommended book and I actually already knew much of it, but for those interested in knowing, here’s what we learned.

The Book

Much of the material can be found in Think Python: How to Think Like a Computer Scientist by Allen B. Downey.

Another resource: Cheatsheet of common syntax and data structures

The Basics

We covered the basics including:

  • types (string, int, float)
  • arithmetic
  • concatenation
  • values, variables, expressions
  • arguments and basic functions
  • for loop

Read chapters 1-3 (and do the exercises) and you’ll cover it all.

Turtle World

Had some fun drawing with ‘Bob’ the turtle.

This is covered in chapter 4 of the book.

Conditionals and Recursion

We then covered the slightly less than basic of:

  • modulus
  • Boolean expressions
  • conditionals
  • recursions

See chapter 5 of the book.

At the End of the Day

Honestly, the session wasn’t exactly bad, but I think I would’ve learned more by being sat down and simply being told to follow the book. We didn’t have a bad instructor, but I would want to get more than just what the book tells you.

A simple example would be how to get the full list of functions in TurtleWorld for us to play around rather than just telling us the couple functions that are expected in the one or two exercises.

Overall, a good session if you’re a real beginning with absolutely no programming background, but I think that 90+% of the group would have benefited from a much faster pace session. Other than recursion, I noticed that almost all the other times, people around me were doing other things. So, good instructor and session, just too easy for many.

Going Google at Ryerson University: Sync’ing Work Back to Usual

I have found some things on the Going Google site a little incomplete, so I thought I’d supplement it with a blog post.

Set up your Google Token

This is really easy. Just sign into the Apps tab, click on Activate Google Token, and hit Activate. One important note,

you will not be able to see your Google Token again after activating it the first time (and you close the window).

So, write it down in a secure place in case you ever want to sync your accounts with anything else.

Sync Apple Devices

So which method you choose depends on what you want to sync. Both will sync mail and calendar, but for:

  • Notes use Gmail option
  • Contacts use Exchange option (follow the instructions on the Going Google site)

I personally only read and reply to emails on mobile devices, so I chose the Gmail option so that I could sync Notes. Google provides instructions on using this method (it’s essentially the same process), and here are the details you need:

Name: your name
Address: full email address
Password: Google Token
Description: account display name on your device

Multiple Calendars

To sync multiple calendars, you can still do that using the Gmail option, but to change which calendars you want sync’ed:

  • sign into your Gmail account using a browser
  • then visit Google Sync for Apple to choose which calendars you want sync’ed

Getting Calendar in Thunderbird

UPDATE: If you’re having issues, it provides less integration into Thunderbird, but try ‘Google Calendar Tab’ which opens GCal like it would in a browser minus Settings/Labs.

I warn you now. Google Calendar in Thunderbird still has a number of issues. If you’re on a MAC, I suggest using Google Calendar in iCal instead. I prefer having everything in one client, so I’m willing to live with and report bugs when necessary, but who knows, I may change my mind.

Step 1: Install Lightning

The Lightning add-on page actually gives the newest stable version of the add-on (for Thunderbird 16), but the newest official release of Thunderbird is 15, so head over to the Versions list and find Lightning 1.7. Install it according to the instructions (using the Install Add-on from File option in the Add-ons settings).

Step 2: Install Provider for Google Calendar Add-on

This step is actually optional depending on what method you want to use. Google Calendar now supports using CalDAV in Thunderbird, but it’s marked as experimental.

Just search for Google Calendar in the Add-ons tab and install from there.

Step 3: Add your Calendar

If you chose to install the Provider for GCal add-on:

  1. Open your Google Calendar
  2. Click on the Settings link located in the box at the right of the page.
  3. Click on the calendar you want to use with Thunderbird Lightning or Sunbird.
  4. Copy the link from either of the two XML buttons shown at the bottom.
  5. In Thunderbird: File > New > Calendar > On the Network > Google Calendar
  6. For Location, paste the link, but change http:// to https://

For more information, visit the Provider wiki page.

If you chose not to install the add-on, follow the instructions from Google.

Testing Needed

So, I’m going to be using Thunderbird, and hopefully it’ll work out, but there are one or two things I wish it had already (like popup reminders for events others created). It is supposed to work better than through CalDAV. I’ve heard iCal has pretty good integration though so I might still switch to that if I’m unhappy with GCal in Thunderbird.

Getting Staff on Board and Using a CMS: Moving to WordPress

The hardest part of moving any website is getting staff trained and changing their workflow to actually use the CMS. We previously had a static HTML type site, so everyone would email changes to one or two people. It was a big shift to suddenly have people take care of their own content.

As part of the training session, I briefly reviewed why we moved the website to a CMS and more importantly, how it benefits our patrons. It covered the usual, shifting resources and staff time, less maintenance, keeping content current, etc.

Tutorials

I found the best WordPress tutorials for staff were the WordPress.com support articles related to creating content. The only differences come from the plugins that are installed, but in our case, this only affects the “Upload/Insert” section above the editing area.

We also have access to lynda.com video tutorials, so I suggested the relevant sections (5 + 6) of the WordPress Essential Training.

I also wrote up a short blurb on how to check for broken links in a more visual way (and for our non-WordPress pages). I basically referred them to install and use LinkChecker (a Firefox plugin).

Content Guidelines

In addition to training staff on the actual CMS, I wrote two sets of guidelines for them to follow.

  1. General Guidelines on ‘Writing for the Web’
  2. Using WordPress to Make Content Accessible (to come in a future post)

To make it easy for staff to use, I wrote it as a page on the intranet (with anchor links for a short table of contents), and also made a PDF version for them to easily print it off.

Making Staff Responsible

I think the most important step in shifting web content management from a single team to the entire staff is assigning responsibility. If no one “owns” a page, it will not be regularly reviewed. If you assign ownership, at least it increases the chance of that happening. Here are the short blurb I wrote on staff’s responsibility of content:

Page Ownership Responsibilities

While you may delegate the task of creating or updating content on any page you own, you are ultimately responsible for it. This includes:

  • Content is up to date
  • Content, especially audio/visual, conform to Accessibility Guidelines
  • Copyright is cleared for all content (if applicable)
  • Transferring ownership when needed (long term leave, end of term)

Please Note: When links are found to be broken, you will automatically be notified via e-mail. However this is not a full-proof system as many broken links will not be “marked” broken. See the ‘How to Check for Broken Links’ page for more information.

Assigning Ownership

We explicitly mention that editing of pages can be delegated, because we decided that librarians would be responsible for pages. We identified and changed each page’s author to the librarian who would become the owner.

We still have about a dozen pages outstanding in which our team maintains as needed, but we also expect that staff may edit it if they find mistakes.

The Result

So far, it’s been fairly successful (yay!). While I get calls on occasion for help, staff seem to be finding it easier to use than Drupal (which we have for our intranet), and most seem to have no problems using it.

Content on a lot of pages are being updated, though as always, it really depends on the owner. One of the problems is that we migrated the existing pages, and there’s a lot of overlap in information, which we really need to consolidate. So, making the website better as a whole will take a bit more time, but at least content is now being updated on a more regular basis.

Getting Quick Feedback: Updating the Help Page

In the past month or so, it became very evident to many of the librarians that the research help page on our site needed to be revamped. As we’ll be piloting a new “Book a Librarian” service next month, I thought it would be a good time to roll out a new help page as well.

Old Research Help Page

There were so many problems with this page, not least of which was that the page and the sidebar had the exact same links only in a different order.

We had a bit of a tight timeline, since I essentially had 3-4 weeks to make mockups, discuss it with the group, get feedback from staff and students, make the page, and get it live.

Getting Quick Feedback

Part 1: The “Committee”

It wasn’t a formal committee, but it was essentially an ad hoc working group. I presented all three mockups to the group. If the group couldn’t agree on one, then I would have taken two of the mockups to staff and students for feedback. However, since the group felt quite strongly about mockup #3, I decided to go ahead with that mockup to gather feedback.

Part 2: Asking the Students – Survey

I decided to do two versions of the mockup based on the meeting’s discussions. Mockup #4 is exactly the same as mockup #3 except with the chat widget in the middle.

Mockup #4

We taped the mockups on a movable whiteboard and offered candy as incentive. We pulled students aside as they walked past on the main floor and asked them some basic questions on:

  • how easy it is to find what they’re looking for,
  • whether they understood all the terms, and
  • which design they preferred and why.

We had decided on getting however many students we could in an hour. Since it was a quieter day, we ended up with 7 students.

Part 3: Asking the Staff – Open “Silent Forum”

In order for all staff to have a chance to provide feedback, without having to gather them all together, we decided to post the mockups in the staff room with a couple of questions to think about (similar to the student ones). Sticky note pads and a pen were left for staff to write their comments.

The Results

Of the students we asked, more of them preferred #3 with the chat on the side, because they would never use it. On the other hand, the students who preferred #4 thought the right-side chat widget would be ignored or even mistaken as an ad. Other reasons for #4 included:

  • balanced and symmetrical
  • more aesthetically pleasing
  • better division of groupings
  • helps to promote the Ask chat service

Of the staff that provided feedback, they unanimously chose #4 for many of the same reasons that students provided.

Other feedback resulted in my adding:

  • a header for the chat widget,
  • “Hours & privacy policy” link for chat widget,
  • hover behaviour for chat widget,
  • tooltip text for “TRSM”, and
  • changing the wording of “YouTube” to avoid branding.

While we could’ve gotten more feedback, I think we got enough to help improve the page and implicit confirmation that it works.

New Research Help Page

Launch

The page, along with the new “Book a Librarian” service and a revised “Research Help Services” page is set to go live on Oct 1.

We will likely also be changing the “Ask Us” logo in the header to direct to this page as opposed to the “Contact Us” page as it does now. Hopefully, it’ll help to promote our services and resources, and get people to the right place.

Making Announcements: On-Site vs. News Blog

We’ve recently had to put up a couple of announcements due to some patches and upgrades on our library website server. Right now, I’m doing it the way I’ve seen it done on most library websites and that’s to simply put up an announcement on the front page.

Ryerson Home page with Announcement

However, there are numerous downsides to this method.

First, the way I’ve done it, it only shows on the home page, and no other page.

Second, you have to visit the website beforehand while the announcement is up in order to know that the site will be down later.

Using the Blog

One way to get around the second problem at least, is to use the blog. Posting on the blog automatically pushes the downtime announcements to the homepage feed, meaning that anything following the feed will see the notice even without visiting the site. On our blog, we can also automatically push to Twitter and Facebook if we choose to do so.

On the other hand, it’s very much time sensitive, and if the person doesn’t visit the site during the early hours of the morning, they wouldn’t even notice. Is it something people really need to be notified off-site? If someone visits often enough, they’ll see it.

Notification Bar

To fix the first problem though, I have been pondering the use of a notification bar. Much like the ones you see when your JavaScript or Cookies are disabled (see the stackoverflow example below).

Example of Notification Bar with Stack Overflow's site

Of course, best practices seem to be to only use notification bars for browser related issues.

Pop Up

What might work better is to have a in-page popup on first visit (once the announcement is set), with the option to dismiss it. Using cookies, you could then locally store a simple variable to see whether the person has dismissed that particular announcement already.

Ideally, we could do it in such a way that it will work across the entire domain rather than just the one site.