Oct 21, 2014

BackupPC and Windows servers - Simple method

Slightly insecure, due to storing the user password, encrypted, on the client machines. See here:
http://cygwin.com/cygwin-ug-net/ntsec.html - section "Switching the User Context, Method 3"
The idea is to be able to backup all files, including open files ("locked"), by using VSS (Volume Shadow Copy Service).
You will need the files that I've shared here.
  • Add the domain user called "backuppc", using the Computer Management program in Control Panel, Administrative Tools. Make this user administrator of the local machine.
  • Download Cygwin 1.7+ from the regular place: http://www.cygwin.com/
  • Install the default Cygwin system, plus the following: cygrunsrv, openssh, and rsync
  • I also install nano (my editor of choice), and procps (for top)
  • Start a cygwin shell and type:
# ssh-host-config -y
# cygrunsrv -S sshd
# mkpasswd -l -u backuppc -d YOURDOMAIN.COM >> /etc/passwd
  • After doing this, check /etc/groups, make sure that the Domain Users group is added. If not, add this line to the end of the file:
    Domain Users:S-1-5-21-3835976426-429400520-196227251-513:10513:
  • I then attempt to ssh into my backupPC system from cygwin, just a nice test, and creates the .ssh directory for me.
  • Copy BackupPC’s public key over, by running this from the SRVR-UBackup server:
# ssh-copy-id backuppc@windows-server-name
  • Connect through SSH to the new server, and run this to store an encrypted copy of the user password on the new server:
    # passwd -R
    
  • Doing this allows the user to execute administrative operations when logging in using SSH passwordless authentication. Somewhat insecure, but easiest to set up, and should be reasonable in our case.
    NOTE: If it fails, try logging into the server with Remote Desktop as BackupPC, then run the Cygwin terminal as Administrator (righ-click).
  • Install the post-backuppc.sh and pre-backuppc.sh scripts from Windows-vShadow-simplified.zip to the backuppc home directory. Remember to make them executable (chmod +x), and make them owned by BackupPC@yourdomain.com
    NOTE: Carefully edit it to match the drives of the new server that you plant to back up.
  • Install the appropriate vshadow.exe from vshadow-versions.7z in C:\WINDOWS of the new server. Several versions are attached below. Make sure you rename it to vshadow.exe
  • Test the process by doing ssh to the new server as user backuppc, and running /home/backuppc/pre-backuppc.sh. You should see shadow drives come up in C:\shadow.
  • In the BackupPC configuration for the host, change the following:
    • Xfer:
      • RsyncClientCmd:
        $sshPath -c blowfish -q -x -l backuppc $host $rsyncPath $argList+
      • RsyncClientRestoreCmd:
        $sshPath -c blowfish -q -x -l backuppc $host $rsyncPath $argList+
    • Backup Settings:
      • DumpPreUserCmd:
        $sshPath -c blowfish -q -x -l backuppc $host /usr/bin/bash -l -c /home/backuppc/pre-backuppc.sh
      • DumpPostUserCmd:
        $sshPath -c blowfish -q -x -l backuppc $host /usr/bin/bash -l -c /home/backuppc/post-backuppc.sh


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...

BookType
http://www.sourcefabric.org/en/booktype/
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
http://www.libreoffice.org
http://extensions.libreoffice.org/extension-center/elaix
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
http://code.google.com/p/sigil/
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
http://calibre-ebook.com/
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:

pyBotWar
http://code.google.com/p/pybotwar/
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:
https://code.google.com/p/pybotwar/issues/detail?id=8

AI Challenge
http://aichallenge.org
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
http://sourceforge.net/projects/pythonrobocode/
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?

No.

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.