Nov 13, 2013

The next bubble to burst: how long will we have all these free cloud services?

A couple of weeks ago, I found this interesting blog post:
Microsoft Price Increases: Here it Comes Again!

The topic is quite obvious, but here is the quote that actually stuck out for me:
Anything being sold “as a service” to an enterprise today is probably being sold at a big loss in order to gain market share. Whether it’s Microsoft, Amazon, or someone else, the pricing is not sustainable. Subsequently, expect future cost increases to be much larger than the ordinary rate of inflation.
What does this mean, in practical terms? I believe we are in a "free cloud services" bubble, and that this quote means it is about to burst.

Amazon runs two very important cloud IaaS - Infrastructure as a Service - products: EC2 and S3. When they introduced EC2, they disrupted dramatically the hosting market. Suddenly, you could run your own server on Amazon's CPU power, on a "pay-as-you-go" model, at rock bottom prices. And you could store all of your server's data on S3 for equally disruptive rock bottom prices.

This enabled the appearance of a large amount of free cloud-based products that many educators know and love: Dropbox, Pinterest, Instagram, Voicethread, Edmodo... You can find some more interesting examples in their case studies page.

Amazon has been effectively subsidizing the EC2 (and all their other Amazon Web Services, quite a lot of them) with other parts of their business, to become the main player in this space. Eventually, they will need to increase their pricing to bring it back to sustainable levels. A price increase on Amazon's side will also enable Rackspace, Microsoft's Azure, and other cloud IaaS providers to increase their pricing in parallel. See above: "increases much larger than the ordinary rate of inflation".

When that happens, we will see a lot of their customers, all these free cloud providers, struggle with their business models. The key question is: How many of them will successfully absorb the increased costs? How many will choose to pass on these costs to their users?

What I see is a bubble about to burst. And we will need to get used to either paying for our cloud, or give it up.

What do you think? How much are you ready to pay for your cloud?

Oct 31, 2013

Open source tools for eBook creation

A quick post with links to resources for creating eBooks with open source software. For my own reference as much as to share with everyone...

This is the most interesting one, perhaps. Something you run on your own web server, and allows for collaborative, online book creation. Exports the finalized product to many different formats. No need to install anything on the user's computer, or restrict what they use.
"The open source platform to help you write and publish print and digital books.
Booktype makes it easier for people and organisations to collate, organise, edit and publish books. Delivering frictionlessly to print, third party services via an API and almost any ereader, Booktype facilitates collaborative production processes. No more lost manuscripts, overwritten Word files, awkward wikis or cumbersome CMSes."

LibreOffice plus eLAIX extension
Cross-platform, very low learning curve. You can quite easily create an ePub from anything you can open with LibreOffice Writer.
Interestingly, eLAIX is actually an expanded version of ePub, made for integration into Learning Management Systems, such as Moodle. Could be worth exploring.

Sigil ePub Editor
Cross-platform ePub creator/editor. You can start from scratch or by importing existing ePub or HTML files.
I can see this also being used as the finishing step after using LibreOffice for text input.

Calibre ebook manager and converter
More of an ebook manager, it can also convert from Word 2007, TXT, ODT, and even PDF (not the best idea!) to ePub or Mobi ebook formats.

If you know of more options, share in the comments!

Oct 29, 2013

Learning Python through competitive "bots" design

Another quickie:
Looking at making Python more fun for our students, I am now looking at these two options:

A remake in Python of the well known Robocode, a "robot arena" for (teaching/learning) Java.
It seems to be pretty complete, at least for using it in a classroom.

Update 18 Nov 2013: Installing this on latest Ubuntu is proving a challenge. Box2D 2.0.2b2 is not easy to find or install. While I think I can get it to work, it will be hard to get students to do it.
There is some hope for an updated version, but not yet available:

AI Challenge
This is a similar concept, but you write code that controls ants as they battle other ant hives. The code can be written in many different programming languages, though the toolkit itself is done in Python.
Originally you could submit your code to their server where it would fight other submissions. They had 8000 contestants!
Now you can get the tools and run it yourself, so that's where I'm thinking of going.

Update 18 Nov 2013: A new (to me) option:
Python RoboCode
This seems like another solid option.

Does anyone have any other interesting pointers? I am also planning to research more multimedia creation resources, maybe creating sound or image from Python code, so those tips are also welcome!

Oct 4, 2013

Cars, computers, and the limits of metaphors

Context: Lately I've been thinking a lot about how we can best prepare our students for the changes in technology around us. We don't know what computing devices will look like in 10 or 20 years, so what should our students learn about computers that can help them deal with this incredible pace of change? The "car metaphor" comes up very quickly in any debate about this topic, so that's where I'm starting. But when you read this, please consider the larger implications for how we deal with technology in schools.

A sunny day, you are driving you car around your neighbourhood. You come to a crossroads, with shiny, picture perfect zebra lines. As you speed through it, something that you can't put your finger on makes you hesitate, and slightly lift the foot on the gas pedal. An empty road ahead as far as you can see, and yet...

Right then, just 2 meters from you, a car materializes out of nowhere where a millisecond ago was all empty space. It is heading straight for you, full throttle, and the last thing you see is the sun reflecting on its wind shield as both cars collide head-on. In this crazy game of chicken played out in the blink of an eye, you don't even get the chance to finish your last thought: "How can this...???"

How can this happen? Can a car get close enough to hit you without you noticing? From the direction that you are looking at?

In our story, you wake up in your bed, with cold sweat running down your back, and after catching your breath, you just go back to sleep.

By now you probably know what I'm getting at...

The Infamous Car Metaphor

I am sure that you have heard this before: "You don't need to be a car mechanic to
Have you tried turning it off and on again?
Automobile (Photo credit: A*A*R*O*N)
drive a car. Why should you have to be a computer expert to use one? It's nonsense!"

Yeah, I agree. You don't need to be a car mechanic to drive effectively and efficiently. Some notions of what is going on inside it are enough to get by, so you can understand all those annoying blinking lights on the dashboard.

But in truth, there is a very different area of knowledge where you do need to be quite knowledgeable to drive a car:
The Laws of Physics

Well, you obviously don't need to be able to calculate in your mind, to the 13th decimal digit, the exact distance that you will need to stop your car before you hit oncoming traffic when you are driving at 100 Km/h (or 55mph, if you wish).

But you do have a clear mental model of how the faster you go, the harder it is to hit the brakes on time to avoid crashing into something. Or that indeed, two objects can't coexist pacifically in the exact same physical space. Or intuitive understanding of slopes, of the effects of ice, oil or rain on the traction of your tires on the road, etc, etc, etc...

Those same laws of physics govern the reflection of light, and so you intuitively understand that if you don't see a car right there, there isn't one, and you can safely drive through that spot. And that at night, you turn on your headlights.

But the fact is that by the time you sit behind the steering wheel, you have already put in your 10.000 hours (and then some!) of "Laws of Physics 101": whenever you were on a bicycle or skateboard, when you ran around, when you jumped, walked, bumped into things... pretty much every single minute of your waking life.

What is the equivalent for this when you use a computer? Is there a "computing law" that guarantees that something can't be happening inside your computer without your screen showing, say, a progress bar?


Nope. Nothing. Nilch. Niente. Nada.

In all honesty, a blind man sitting in the back of your car can say with greater certainty what really is going on while you drive, than you can say about what really is going on inside your computer (or phone, or Google Glass, or smartwatch, or microwave).

What you see on the screen while you use a computer is an incredible simplification, covering hundreds of layers of complexity. It attempts to give you an idea of what is going on inside your computer, regarding just one of the multiple processes that are active at that very moment.

Even more crucially: that simplification is put there by the programmer who developed the software that you are using. There are no rules in place to ensure that it gets done, or that it represents truthfully and with precision whatever actual process it is supposed to inform you about.

In other words: With a car, what you see and hear is what really is happening, because that's the way physics always work.
When you use a computer, what you see and what you hear is only what the programmer chooses for you to see and hear.

Unlike the blind man in the back seat, you have ways to improve your situation, though. Ask yourself: What do you need to know to be able to keep up with the programmer? What is it that would help you to perceive consistently and confidently when the behaviour of a computer is not as it should be?
Which knowledge do you need to second-guess the criteria of the programmer in deciding what information you get?

How deep does your understanding of what happens inside a computer need to be, in order to - successfully and consistently - check if what the computer is telling you is close enough to reality to be trusted?

Who do you need to become, to keep up with the programmer?

Jun 5, 2013

Leadership, Modeling and Technology Integration

We have long known that you should practice what you preach to achieve effective learning among your students. Modeling the behavior that you expect from your students goes a long way in helping to have a classroom that is conducive to learning, that keeps everyone focused, and that keeps you from pulling your hair out.

What we can sometimes forget is how this also applies to the adults in the school. At the school administration level, Principals and Heads of School should try to get the knowledge necessary to apply "best practices" in technology use within their own personal areas. As the line between professional and personal life gets blurred, becoming a proficient technology user should cover also the needs of your personal life. Besides, you know you learn best when it's about something you care about!

Technology Facilitators are usually very enthusiastic in adopting technology, and they also have a leadership role in their schools. Within their scope of action, modeling is once again possibly one of the most essential paths to success. At a personal level, Tech Facilitators are usually one (or two, or three) steps ahead of most teachers, and quickly bring into their lives the latest, hippest tools that arrive through their Professional-Personal Learning Network. Awesome!

The tougher part of the job usually comes with defining "best practices" as appropriate for the realities of each school. As Jeff Utech and John Iglar, some of my favorite members of my PLN wonder here:
“Question: Can you be a ’21st Century School’ without a stable internet connection?”
 Well, as one of my Judo instructors would say:
You don't need to have the fastest and most reliable internet connection to have the best technology integration... but it helps.
So as you seek to improve technology integration at your school, go have a conversation with your Tech Director and, if you are lucky to have one, your IT Systems Manager or Network Administrator. You see, with technology, there are "soft" limits and "hard" limits. Bandwidth is a "hard" limit: you pay this much cash, you get this much speed. Not more. Never more.

Think about the tools and habits that you bring into your school from your personal technology needs, and try to find out how much bandwidth they would need if you multiply them by the number of students in your school. If you have 300 students in a 1:1 laptop program, much more so with BYOD, ask your IT guys if your school really has 300 times the bandwidth that you enjoy at home. And then consider that maybe those students are not the only ones that need that connection right. this. moment. How many other people will run straight into the IT office when you get your classroom on that new web 2.0 site you found because their lesson can't happen or the accounting software can't submit important reports to some external service?

What did the IT guys say? Yes? 300 times your bandwidth at home? Awesome! You are lucky, go right ahead! No? What's the proportion? How far back in the thinking process do you need to go?

In most parts of the world, internet connections keep getting better as time goes by. But the key to successful technology integration is satisfied users. Sustainable growth is key, to avoid pushing your infrastructure beyond the point of failure.

If you are in a position of technology leadership, finding out which technologies are truly sustainable for your institution should be one of your highest priorities.

You know, before you model your way into trouble.

Jan 24, 2013

MariaDB on Ubuntu 12.04, dealing with upgrades

I am trying to use MariaDB instead of MySQL wherever possible. Oracle's attitude since the takeover of Sun has been quite appalling. See here (from
This problem becomes more of an issue due to Oracle keeping security patches secret. This forces distros to upgrade to latest upstream version in released distros, which means we will more often get a newer mysql version on top of an earlier mariadb version, causing this issue.
You can find a solution in this AskMonty KB article:

This solution was not enough for my situation. The mysql-common package is now also creating problems.
So I changed the suggested package pin with the following steps:

1. With admin rights, run this:
nano /etc/apt/preferences.d/mariadb
2. Paste this into that file, making sure that you change the origin according to your chosen MariaDB mirror:
Package: *
Pin: origin
Pin-Priority: 1000
 This seems to work for me so far, I hope it helps you!