Sunday, April 28, 2013

Manaiakalani Shininess Part 1 - KttC - Revisited

I had a look at my stats for today and realized that people are reading up on some other stuff based on last night's post. So some of this "stuff" needs revisiting (as it's a little bit dated).

I'm a great believer in trying to reduce the number of geeks you rely on. The more you're able to to yourself, the better. While this has been possible for a long time, I think that the plethora of cloud services make this so much easier.

What is KttC?
KttC stands for Keys to the Castle. The idea is to empower people and lower computer administration costs by moving administration to the user. In short, it's awesomeness on a USB stick.

What can it do?
It does a few of the things that I was most frequently asked for.

It was always initially supposed to be able to image a computer. It turns out that imaging is actually kind of inflexible and given that Linux doesn't really care where it's files are anyway, I've been able to do this part a lot faster while also making it account for bigger disk sizes with minimal effect on speed (for those geeks out there: delete partitions, make partitions, format, copy files, make bootable).

It can reset passwords. Make copies of it self. Grab the serial number of the computer and delete user's preferences.

All within a minimal amount of time.

But What's the Big Deal?
A single stick can add a sense of empowerment within a classroom - who would've thought? A sense of security that you can do something to fix your own problems without having to be a geek. A default position (it takes around 3.5 minutes at the moment on the Manaiakalani image) of going back to a working system if the need ever arises.

What does it not do?
It's only for Linux systems. There's a few reasons for this:

  1. I really hate having to deal with any sort of licensing issue. I don't want to have the whole license key thing in there. In fact, I want it to be as portable as possible. So the same system could be used on a desktop as a netbook as a laptop - without worries around piracy ("Although we live by the sea, we don't need to be pirates" - Nathan Parker).
  2. By keeping the scope right down to a known usable quantity. Less things to test and less chance of bugs coming though and ultimately, because development is a cost, a cheaper "product". (It'll be Free once I've finished this rewrite of it though it will need to be developed for each deployment as it's just not that clever).
  3. We seem to be really keen to make things complicated. Which is cool - something that can do everything is really very cool (the Linux kernel is a great example of this). Only... it's also a trade off. We lose efficiency (i.e. if you know what hardware you're running on, then you can optimize a kernel to boot within a matter of seconds instead of the 30 seconds or so it takes me to boot up Ubuntu). So by not doing everything, I'm able to make it do what it does do really well.
It doesn't do the laundry... in other words, other than perhaps a little confidence, it probably doesn't offer anything in the way of the more important things. For example, Professional Development. Any expense incurred from getting this developed to your needs shouldn't effect any budget for ICT PD (except perhaps to increase it). The pay off from teachers feeling supported is incalculable.

Where can I get it from?
You can't just yet... I'm expecting to have all of my code up and available for download really soon though so watch this space.

KttC is one of those bits that will need re-writing for every deployment at the moment. This is because it's just not that clever yet (though I'm hoping in the near future to be able to develop it so that you can write a sort of definition file for it - i.e. tell it what the partitions should look like (sizes, fs type etc.) and their mount points. Where to find the "image" etc. Flexibility really comes from need and thus far, it just hasn't needed to be all that flexible.

While this wouldn't totally eliminate the need for some "development", it would at the very least be really quick to do so. Of course, this could probably evolve to have a nice little front end for configuration but I'm well off that point at the moment.

In the meantime... I am available for some of this work... which would then give me the funding to do some more of this development... just sayin'. Otherwise, I'm quite happy to help people out with this stuff via email (once the code is up of course).

Where to for the future
I would really like this to have the future to become a sort of rescue partition. So eliminate the need for a stick and make it so that the user has control of their own machine. This would probably make imaging even quicker. But there's all sorts of development which would have to go into here. Firstly, if any user could get on any machine and change the password or reimage it.... So it would have to sync passwords with the administration user/users of the running system. There would need to be a way of dealing with updates - which would probably eliminate the speed advantages...

On the other hand, it would mean that an "image" could adapt itself to the user..

No comments:

Post a Comment