FOSSA 101, Session 6

The third Problem: "I cannot download this."

This problem is sometimes related to the previous one. The reasons why our Learning Things break here are also sometimes related to the previous reasons. But it goes a bit beyond software requirements, and the FOSSA experiment / solution will be different here. That's why it deserves its own conversation.

In the heading above, I gave you one of the possible ways to phrase this problem. Sometimes, your learners simply can't find the space on their machines for your Learning Thing.

There are other ways in which your learners can talk about this kind of problem. Let's just look at three of them:

"This takes ages to load." For software, long waiting times are frustrating, but learners will generally sit through the loading screens after they've managed to run your Learning Thing. If a learner is visiting a website, though, they're much less patient. There are probably other websites they can try, and they'll be hoping to find speedier ones if yours is sluggish.

"You're slowing down my machine with this, what gives?" It's related to the previous voice. In this case, though, imagine that someone is running your Learning Thing alongside other things they're working on. Let's say you're trying to teach them how to use a video editing program. If your Learning Thing eats up too much memory or processor time, then they won't be able to follow along, no matter how good your lessons are. Their machines will just freeze or stop being usable.

"I'm out of data already." I recently read an article written by a scientist on a research station on Antarctica. They described how frustrating it was to have to download people's (oversized) software updates just so they could send a chat message! It doesn't only happen in such extreme situations, though.

Your learners will think twice before downloading your Learning Things if they're on a data plan. And after they get unpleasantly surprised ("what do you mean I'm out of data... how big was this one history worksheet?"), they'll stop downloading altogether.

So how did our Learning Things get disturbingly large? That's probably a story for another time. In short, I think many of us often think this when building our Learning Things: "just another fancy animation won't hurt... just another JavaScript solution on top of what I've got."

These things look innocent, when we look at them one by one. But then you publish your work, and you begin to see: there are hundreds of bells and whistles on your Learning Thing.

They slow down your learners. They make their machines sluggish.

They slow down your servers, too. This costs you - in cloud or server costs, and in search engine rankings (slow pages rank lower!).

So how can you fix that with a FOSSA experiment?

Experiment 3: S stands for "Small"

This should be one of the easiest experiments to describe. The opposite of "large" is "small", right? And yet - how small is small enough?

Here is my take on this, and here's how I describe this experiment:

Small: You will provide a fully functional version of your Learning Thing which is no larger than 5 MB (megabytes) in its final compressed size.

If you think 5 megabytes is too small, please note that I was originally planning to make this 1.44 megabytes - the capacity of an old floppy disk. I'm all about symbolism here!

Still, the size limit can feel excessive. How can you achieve it? And should you even try making your Learning Thing that small?


A quick note on doing what you can with FOSSA

A good computer program is going to try to do what it can - if it can't do 100% of a job, it might still be able to give you something you can work with.

A good practical learning project is going to let you, the learner, do what you can - instead of telling you "sorry, you failed" at the finish line, it will be built so that every part of it feels like a success and a celebration.

Please think about a FOSSA experiment in a similar way. It's not a test you will pass or fail. It's an invitation to work and explore, and do what you can.

The "Small" Experiment is possibly the best illustration here. No, I'm not expecting you to make your seven-gigabyte Learning Thing fit into five megabytes. But I am encouraging you to see what you can do, try breaking the Thing down, try working with other experiments to find efficiencies. And, most importantly, to really understand the reasons for having a seven-gigabyte Learning Thing in the first place.

Do what you can. The Learning Thing you'll end up with will still be an improvement.


Making "Small" work - ten FOSSA ideas

  1. Build Small first. If you build your Learning Thing around twenty long videos, then there will be no chance to make a FOSSA version that's Small enough. But if you start with the Small version in mind, then you have a better chance of ending up with a Small and fully functional version.
  2. Charge for the large. This ties in with point 1 above: make sure that the large files are not part of the Free version, either. I've learned Python from many courses which give you the text and the exercises - and then you can pay more to see the video files with extra hints or Q&As.
  3. Compress, compress, compress! There is a difference between an audio file with perfect quality, and a file which is good enough but compressed. Many graphics files will work the same way. Tell your producers to use this Experiment to see how far they can push things with compression.
  4. Resize. Not every image file needs to fill the whole screen. Crop or resize until you are happy with the file size, and still have something you can use.
  5. Go from videos to animated GIFs. This is often a good option for using Open file formats, too - but it's also likely to save you some file size.
  6. Rethink your web framework. For the Open FOSSA Experiment, you would probably need to give up on the usual Javascript frameworks. Is there a lightweight way for you to build the web pages of your Learning Thing? Many of them will be bare-bones, but will do the trick.
  7. Make your old Learning Things smaller when you upgrade them. Often, the first idea when refreshing an old Learning Thing is to add more stuff: video! New podcasts! Animations! Sometimes, all this effort is not useful and doesn't get you more learners. How about making a Small Learning Thing instead? At least it won't take up space on the server!
  8. Break things down. Maybe you don't need to give up on multimedia. Maybe you can still have your interview audio files. But do they have to come in one big package? What if you broke them down into several smaller Learning Things? They can still work as a series - and will still make sense to learners. But they can download the packages one at a time.
  9. Put learners in control. There is a setting in my email software that gives me a choice, each time an email comes with pictures or videos: do I want to download them? Maybe it's possible to do the same for your Learning Thing. So, for example, a learner who knows how a free throw works will skip that video - but will download all videos about rebounds, because they want to learn more about that instead.
  10. Zip things up. When it's all done, the Learning Thing doesn't need to just sit in a folder - you can use compression again to zip the folder up. Check whether your "zipping" software lets you use different compression rates - squeeze that file size!