Thursday, November 20, 2008

Linux Guys Stick Together

I presented a talk on Linux shell scripting at this year's HECC (Hoosier Educational Computer Coordinators) conference in Indianapolis last Friday. My session was right after lunch and I had put the final touches on my slides in the morning and uploaded a copy to our school wiki.

After having lunch, I went to my presentation room a bit early to get things set. After I hooked up to the projector, i noticed that my laptop seemed to be locked up. Not thinking much about it, I rebooted. *Beep* *Beep* "No bootable device found..."

WTF? I rebooted again... *Beep* *Beep* "No bootable device found..." Damn... This is not looking good. Again... same result. And again... this time it started to load grub and then the disk started thrashing.

Uh-oh... There's a laptop for presentations there on the table, but it's a Windows laptop. Am I going to have to present on Linux shell scripting from a Windows computer?

Fortunately the answer is "no". At this point Bill Kreps, a fellow tech director (and Linux user) at Northeastern Wayne came in to say hello and tell me he had decided to check out the session next door, even though mine was tempting. When he heard my situation, he volunteered his laptop, which was running Windows, but which did have a VMWare SLED VM on it. That saved me from presenting about Linux using a Windows machine. I could have done it, but I'm glad I didn't have to.

It wasn't pretty, but thanks to the PDF of my slides that I'd uploaded and Bill's help, I managed to get through my talk in pretty good shape.

And Bill stayed around for the entire talk, even though he'd intended to catch the talk next door. His reason? "Us Linux guys have to stick together."

Amen, brother. Amen. And thanks again.

Monday, December 03, 2007

The other shoe...

So we had the students onboard, the machines on the way, I was monitoring the mailing lists - clearly we were on the way...

Well, sort of. The biggest hurdle is in getting the environment (in some form or another) working for all hands. This seems to be much harder than I would have expected. It's not that we can't get emulations to work, it's more that we can't get them to work together.

We started with QEMU emulation on Windows and found that to work - in a way. Without adding the accelerator (which we didn't) they were painfully slow. That lead us to switch to Linux (Ubuntu Feisty), since the machines we use for class can dual boot Windows and Linux. On Linux, we're currently using the sugar-jhbuild environment. This runs much faster, but it's trickier to completely update (at least given my pretty limited knowledge of how it works).

The catch is that we can't get the devices to see each other reliably. They can see each other most of the time or one can see another, but not the other way around, or they can see each other but not communicate, or they can chat but one or the other's messages are duplicated, or...

And to make it weirder, I can log in with my laptop and I can see people outside of school, but not the kids in class, even though we're on the same subnet. I'm still unsure what's going on and what the fix is, although I'm going to be rechecking network settings on all of the machines.

The bottom line is that none of the emulation schemes we've tried have given us functioning, networked virtual XO's at this point. I know, I know... it's probably time to post to the lists.


The XO in the classroom - initial hurdles

It's been a while since my first post on our idea of writing software for the OLPC's XO as a project for our Python programming elective.

In the meantime, things have been moving forward... at least some things. I showed the class part of Ivan Krstic's talk on the XO and they all were interested in the project, so selling the project was not an issue.

We managed to get orders in for a couple of the Give 1 Get 1 units on the first day, which means they should actually show up some time in the next 3 weeks or so. Since I had money in the budget for the G1G1 program, I decided not to try for developer units of the XO at this time, since we have yet to contribute any code, and my understanding from the mailing lists is that consideration of requests for those units is handled somewhat sporadically.

In any case, I felt the first step was to get a feel for the community, so I joined some of the mailing lists - sugar, devel, and games for a start. Traffic on the last is rather light, mostly announcements of game jams, and the second has a lot of automated build announcements, so the main sugar list is probably the best one for someone new to the project. Traffic on the sugar list seems to be a good view of the project - everything from discussions of possible new features and show stopping bugs to Walter Bender's more formal OLPC News posts. On the other hand, the devel list had a wonderful sense of urgency as they approached the deadline for the first round of devices hitting manufacturing.

So far, so good... kids on board? Check. Actual XO's on the way? Check. Joining mailing lists to learn about the community? Check.

Monday, November 12, 2007

OLPC in the Curriculum?

After languishing (blog-wise) for a year, I'm back. This time I'm prompted by some developments here at Canterbury School where I'm tech director and chief programming instructor.

The most recent and interesting thing we've come up with is using the OLPC project as a key piece of the curriculum for our advance Python programming elective.

We have always tried to teach as much programming as possible here at Canterbury, and since 2001 we have been teaching Python (and using it) in addition to Java and C/C++.

All of our 8th and 9th graders learnhow to write simple programs in Python, with a view towards giving them an understanding of what software is and fostering the analytical thinking programming requires.

Our more advanced programmers take the AP Comp Sci exam, and so are taught Java. However most of our AP students take the AP as juniors (or even sophomores) and so are fairly accomplished in basic programming by the time they get to our Python elective.

These students are perfect for an more project based course. The problem, of course, is finding a meaningful project.

That's where the OLPC project comes in. I had played with an early model at PyCon in March, but didn't have a Python class at the time. After a few efforts to interest individual students didn't pan out, I'd more or less put the idea on the shelf, until we went to the K12 Open Minds conference in Indianapolis this October.

As the OLPC was mentioned (and the obligatory demo unit shown) the idea of having a class work on something for the XO resurfaced. This time however, after talking to others at the conference, we (my assistant Simón Ruiz and I) decided to pitch the project to our Python class.

Some encouraging words from Chris Ball at the OLPC project helped and we started on our experiment to create a software package for the XO-1. In the following entries I'll try to record our experiments.