Letting people unsubscribe is good for your mailings

In our last release, we improved how Populi prevents you from sending email to people who don't want it.

Formerly, we had a "No Mailings" system tag, which indicated that the recipient had clicked the "Unsubscribe" link in a Populi email. The "unsubscribe" link only appeared for people without a Populi user account, and once clicked, that person would no longer get any email sent via Populi—at any of their addresses.

We replaced that with a finer-grained "No Mailings" setting for individual email addresses. If someone has both a school address and a personal email address, you can, for example, set their personal address to "No Mailings". Or, if someone is included in a Mailing List, they have various "unsubscribe" options—they can unsubscribe from just that mailing list or from all Populi email. And, these options appear for all your email recipients, whether or not they have user accounts. Whatever the case, the new "No Mailings" setting gives your recipients greater control over what they receive from you. And that's an improvement because letting people unsubscribe from your mailings is actually good for you.

We hear that rustling in the audience. "Huh? How is that good for me?"

A few things are in play here. The first is a legal matter: the CAN-SPAM Act of 2003, a law that establishes rules that all commercial email must live by (unless you enjoy $16,000 fines). Many parts pertain to Populi email; here's an excerpt from the compliance guide that helped guide the "No Mailings" upgrade:

Tell recipients how to opt out of receiving future email from you. Your message must include a clear and conspicuous explanation of how the recipient can opt out of getting email from you in the future. Craft the notice in a way that’s easy for an ordinary person to recognize, read, and understand... Give a return email address or another easy Internet-based way to allow people to communicate their choice to you. You may create a menu to allow a recipient to opt out of certain types of messages, but you must include the option to stop all commercial messages from you. Make sure your spam filter doesn’t block these opt-out requests.

If the message contains only commercial content, its primary purpose is commercial and it must comply with the requirements of CAM-SPAM. If it contains only transactional or relationship content, its primary purpose is transactional or relationship. In that case, it may not contain false or misleading routing information, but is otherwise exempt from most provisions of the CAN-SPAM Act.

The first paragraph is helpful. The second paragraph muddies the waters with that word, "most", and the varying ways the law has been applied since its passage has made us a little cagey. In the wake of CAN-SPAM, the best-practice is to play it safe and give the recipients more ways to opt-out of the emails you send them... or, more accurately, to give our customers more way to let their recipients opt-out.

The second big thing in play is this: there are two ways a recipient can opt-out—by clicking your unsubscribe link or... by marking your email as SPAM. Getting marked as spam presents manifold problems:

  • All of your future emails will go to the recipients' spam folders and will miss their inboxes entirely
  • You will not know whether your emails are hitting their inboxes or their spam folders—if you're marked as spam, you receive no notification whatsoever
  • Their email service will become very suspicious about any email sent from your domain to anyone using that service—not just the person who marked you as spam
  • If you're marked as spam often enough, Populi gets blacklisted—affecting not just your emails, but also emails from other Populi customers

To put it concretely, every time someone marks a Populi email as spam, that reduces your chances of getting into a new prospect's inbox.

Our previous setup, unfortunately, allowed for considerable abuse of Populi email; a few irresponsible senders sent out a lot of unwanted mailings, and our old protocol didn't give their recipients adequate recourse to opt-out. Consequently, a lot of Populi mail was being marked as spam, and it was getting harder and harder to deliver even legitimate, responsibly-sent messages. The last batch of email improvements, we trust, will comprise a fine counterattack against these problems.

So, in summary:

The old way: potential CAN-SPAM violations for you, email deliverability headaches for us, annoyed recipients, and uncertainty about whether your mailings made it to the inbox.

The new way: CAN-SPAM compliance, increased email "trustworthiness", better unsubscribe options for recipients, and a "No Mailings" setting that lets you know where you stand.

Feature Spotlight: Video encoding

So, you've made a video recording of a lecture and you’re ready to show it to your students…

How do you make that happen?

First, you need to give it some place to live—a central location where it will be stored (and not lost!) and where your students can access it.

In other words, you need some kind of secure, internet-connected file server with a user interface you and your students can understand. You also need someone to make sure it runs, remains safeguarded from hackers, and has some way of backing up the important work you've stored on it.

So, you somehow get your video file on a server. Now your students want to watch it, but some have laptops, others have iPhones, and one of them even bought something called a Motorola XyBoard.

How will you make sure your video will play on all of those different devices?

You have to convert your video to multiple formats so that any device—iPads, mobile phones, PCs, etc.—can read it. Next, you have to create several different versions of each format with differing degrees of quality to account for the variations in data speed among those devices. This process is called encoding: it creates multiple formats and versions of your video to make sure that just about any internet-connected device can play it back.

So, you've managed to encode your lecture. Now your students with high-speed internet can watch a high-quality version of it, and students watching over a slower cell network can watch a compressed version that won't stall out for minutes at a time. Whatever device they have, whatever connection speed it’s running—your students can watch it.

That lecture is over an hour long. What if your students watched the first half yesterday and today they want to pick up in the middle?

You have two options: students can download the entire video and sit through the first half while they wait for the second half. Or, you can stream it to them—which lets them jump around within the video and watch what they need to watch. To stream the video, your device needs a way to tell the server “start playing at the 35-minute mark”. What’s more, because different devices stream video in different ways, your server needs to know what kind of device it's talking to.

So, you’ve set up a way for your server to talk to devices, know what kind of devices they are, send them the right files, and let them pick up where they left off—now your students can resume the lecture where they stopped watching yesterday.

What if you’re on the East Coast and you have distance students watching your video while sipping Kona coffee in a café in Hilo, Hawaii? And what if the server connection to the café’s wifi is slow as molasses?

Despite how little it seems physical matters affect the internet, if your video server is 6,500 miles away from your student, that will cause lags that result in delivery of a lower-quality video. If you want to your students to access the highest-quality video possible, you need a Content Delivery Network (CDN). A CDN maintains “edge” locations in multiple areas around the world. When a far-off somebody watches one of your videos, the CDN copies that particular file to the nearest edge location, allowing for a much swifter data transfer. And that lets your faraway distance students get a much quicker stream than if they were streaming it from your server.

So, you connect your file server setup to a CDN, ensuring the best connection between your students and your lecture. But what if... well, enough of that for now.

And that's how you make it happen. Your lecture is stored and backed-up, is encoded and optimized for streaming to multiple kinds of devices, and has the fleetness of a CDN to get it to your students regardless of their location. And all you needed...

Get your calculator.

You can also make it happen using Populi's built-in file storage and media streaming.

It handles everything mentioned above—and then some. With it, all you need to do is record your lecture, upload it, and start using it. We do everything else:

  • Store your original file in the Amazon Cloud and back it up to the Rackspace Cloud
  • Convert it to multiple formats so different devices can play it
  • Make multiple copies in each format, each compressed to a different quality
  • Configure everything for streaming so your students can skip around within the video
  • Send all files through Amazon's CloudFront CDN
  • Create an embed code so you can easily add it to your courses

Populi makes your audio and video files far more useful and accessible to your school for a fraction of the effort and—given the complexity of a home-grown setup—a fraction of the cost. Every pricing plan includes an allotment of file storage, and extra storage is available for $2.50** $1 per GB per month. And since we've done all the hard, behind-the-scenes stuff***, there's no setup on your end whatosever—you can just start using it.

* Flash-enabled devices, for instance, use a protocol (a formally-defined language that lets computers talk to each other) called RMTP to tell the server, “start here.” iOS devices—iPhones, iPads, etc.—require that the video be split into dozens or hundreds of chunks; they then request the video start playing with the correct chunk (the one containing the 35-minute mark).

** Price per GB was changed as of July, 30 2012. Read more.

*** We even designed our own encoding software.

New release: Back-end stuff and a new look in tables

In yet another low-key release, the development crew stayed up late the night of December 6th to push out a few updates.

The centerpiece of the release was a further round of improvements to email. We've been releasing incremental updates to email over the past several months, but we realized there were some fundamentals that we really needed to address. So, the first order of business was to improve our email infrastructure—by outsourcing it. We now have a setup with a terrific cloud-based email delivery platform that unburdens us of all kinds of headaches and allows for much greater scalability in the future (indeed, we really had outgrown our old setup). We now employ DKIM email-signing, which–skipping an incredibly-technical explanation—improves the "trustworthiness" of Populi emails to better keep them out of recipients' spam folders. Finally, we did away with the No Mailings system tag, replacing it with a "No Mailings" option in Contact Info. You can mark individual email addresses with "No Mailings"; additionally, when emailing a Mailing List, your recipients will have the option of unsubscribing from all mailings or from mailings to that particular list.

Related to email, we rewrote the Populi job manager (in proper computerese, that would be spelled "jobmanager"). The job manager is a background timing script that periodically checks for tasks that Populi needs to complete at a certain time. For instance, if you email a one-time list in Communications at 10 AM, that creates a task. When job manager strolls by on his usual rounds, he finds your email task and makes sure Populi gets the job done—at 10 AM. Our old job manager was itself dependent on another application that organized the tasks; if that application crashed at 9:59, job manager would stroll by at 10 and think, "Hm, nothing to do," and move on. Consequently, emails were getting lost and were sending without attachments—among some other issues. The new job manager no longer relies on that secondary application. Instead, tasks remain to be found by job manager until they are completed, which better insures that they actually get done.

We also refreshed the look of the various tables in Populi. Tables are everywhere—from the Students Table in Academics to the list of Charges on the Profile's Financial tab—and now they're easier to read and (we think), much more visually appealing.

Feature Spotlight: The Student tab

Populi makes your student information more useful. One of the ways it does that is by making it easier to find in the first place. Imagine having to look in three or four places to get what you need for a transcript —and the inevitability of something getting lost, mistaken, or forgotten. Many of our customers used to operate this way, and more than a few of you currently reading this recognize this scenario. Course histories are stored here... Grades are there... GPA's are calculated from this column and that column... It all gets pasted into this template... and so on.

But in Populi, all of this information lives in one place: the Student tab on the Profile. Your students' entire Academic histories are right there, from the big picture—the Transcript and Degree Audit—to the details: courses, degrees, programs, honors, and discipline. Want to see more specifics? Drill down into any of this information just by clicking.

The big picture: Transcript and Degree Audit

The first thing you see is the student's Transcript:

The Transcript is automatically filled in by the student's course history, honors, discipline, program, and degree information. GPA's, attempted and earned units, grades, and quality points plug themselves right in. The student's programs organize their courses, keeping different courses of study discrete and accurate. To accommodate special situations, you can manually override how courses are mapped to different programs. Students can download an unofficial copy of their transcript at any time, and you can export an official transcript using the built-in template or a custom transcript template.

One tab over you have the Degree Audit, an advising tool that matches the student's academic history to your degree requirements—GPA, resident units, cumulative units, and course groups:


If a course appears in more than one course group, it's automatically applied where it's needed most—or you can manually override Populi's selection just by checking a box. Run what-if scenarios by selecting other degrees, catalog years, and specializations from the drop-downs. Add exceptions to accommodate students with special situations. And if you like paper, you can export a PDF of the whole audit.

The details: Student Info, Courses, Programs, Degrees, Honors, Discipline

The left column of the Student tab shows you the details. It begins with Student Information—Student ID, Advisors, and so on, together with any custom student fields you've filled in.

 

Next is Courses: see and link to the student's courses from any academic term, starting with their current, in-progress courses. You can also register the student from here (which lets you get around pre-requisites if need be).

 

Programs lists the student's academic programs; Degrees show the students degree(s) and specialization, their status, and catalog year—when it comes time to change any of this, just hover and click "edit".

 

Honors and Discipline let you record the high points and the blemishes on a student's academic career.

 

And, of course, all the information managed in the "detail" column feeds right into the "big picture".

All in one, secure place

The Student tab puts all your student information in one place, gives you the tools to drill down into it, and  lets you easily update it whenever necessary. No matter who you are, this is where you'll come to get that info—provided your user roles will let you! Academic Admins and Registrars get to see and modify everything. A student's Advisor can see it all and modify course enrollment, programs, and degrees. And, of course, the student can view his records right from his own profile. Everyone else? Since student data is so sensitive and confidential, no one else gets to see it—the Student tab is totally hidden and inaccessible to them.

The Student tab is one of the best examples of what Populi does: it gives you one place to manage and find just about any bit of information about anyone in your school—especially your students.

What Populi doesn't replace

Somewhere in some book some place is a line that goes something like, "Education consists of a wise and caring teacher, a humble and curious student, and a log for the both of them to sit on."*

It's a bit mawkish, but there's still something to it. In education, you need someone willing to share their understanding. You need someone who wants what's being shared. And you need something to hold them up, to free them from other labors so one may give and the other receive.

In this phrase's economy, Populi is the log—rather, it's just part of the log.** And whatever their marketing language might claim, every other software vendor out there also sells nothing more than log parts. If a company promises to unlock unlimited possibilities to unshackle teachers and students and take education beyond any place it's ever gone before—or some similar bloviation—well, there's a pithy barnyard phrase for that.

It's up to the teacher to care and speak. It's up to the student to listen and do. And the log? Its job is to be sat upon. Log-part vendors like us have a duty to make the log comfy, to shear it of pointy branches, and free it of ants and beetles. Nothing more. If the log starts putting on airs about how it's part of the conversation or how it frees education from the constraints of sitting, it's getting outside of its core competencies. If a teacher is unwilling to teach or a student is unwilling to learn, no amount of technological gee-whizzery is gonna overcome that fundamental failure of communication.

Populi is, as we've mentioned before, in the business of replacing software. Put another way, we're made to help the log do its job: to help your people free up teachers and students to pursue what matters.

* At this writer's first college, phrases like this were as common as blue in the sky.

** Other log parts include: buildings, staff, administration, budgets, infrastructure, donors, and so on—all of these exist to free up teachers to teach and students to learn.

New release: Improved Academics navigation and more

The Populi development team just released the latest in a series of low-key updates to the system. Like other recent updates, this one improves Populi's back-end performance and gives some spit-and-polish to the appearance and interface. Here are the big things we let out of the gate last night...

Improved navigation in Academics

You've seen the video; now you can log in and dig the new and improved navigation in Academics.

Custom info management

We broke out Custom Info management among Admin, Academics, and Admissions. This clarifies the connection between custom info fields and where you'll use them in Populi.

A bunch of other things

You can now change a student's Programs to inactive. This is really useful when a student changes Programs mid-stream or when a student graduates and moves into a new Program at your school.

You can now include custom information on your custom transcripts.

The online application form now lets your prospects choose specific programs in addition to degrees and specializations.

Also in Admissions, we opened up application information to the API—now you can pull an applicant's data to your own custom web app.

For our Canadian customers, Financial Aid now features a built-in, automatic T4A report which lets you export a spreadsheet, PDF copies for your students, or an XML file for the Canada Revenue Agency.

We also included the usual round of bugfixes, server updates, and other little items to help keep Populi running right.