It's been an interesting week. At lot of good progress with a few set backs (mostly internet connects failing).
Last Friday while tinkering with some of the code, I seemed to have resolved a problem that I was having a few weeks ago. Now it is possible for a client on one machine to connect to a session on another machine. It's also possible for a teacher to control a session on their computer, but to actually serve it from another computer. This will be useful for a school that is on a shared network. While it's technically possible, you're not supposed to run two Pyro Name Servers on the same network segment. Now the Pyro servers can run on a specified machine, and teachers can serve their sessions on that machine. Very cool. So I had to add a few things to adjust for these changes.
Saturday, some guys (and a girl) and I had a hack-a-thon / sprint in on of the labs on campus. I was there from 8 in the morning to about 6:30 in the evening. I worked more on the new changes due to Friday's breakthrough. I tried to find a good way to run an "Amenity Server", but what I came up with was awkward. I also worked on the importing and exporting of activity sequences. For exporting there is a dialog with a list of all the sequences that user owns, and they can check which ones to export. They can also give a name to save it as, but the default is amenity_sequences. It creates the file as a .asa (Amenity Sequence Archive) on the user's desktop. The file is really just a tgz archive. The import dialog is basically the same. They choose an archive to import, and there is a list view that displays all the sequences in the archive chosen and whether or not a sequence by that name already exists. The user selects which ones to import and just click the import button.
Sunday, I took the day off to take Wendy to see "The Break Up" (good movie, just leave about 10 minutes before the end) and eat at the Texas Road House. Came home to find my apartment's internet was on the fritz... Again.
Monday morning the internet was still down so I took a trip to campus and set up shop in the lab. I found a Daemonizer class in Pyro used to create the functionality in pyro-nsd and pyro-esd, and was able to subclass it to make "amenity-server". This is good because now a user can just call amenity-server start, amenity-server stop, etc. and all of the Pyro stuff is taken care of for them. But it most cases the users won't have to actually use amenity-server directly, unless it is the case I mentioned earlier that there is a central machine which all users host off of. Someone will have to start amenity-server. I think that it may be possible to put it in /etc/init.d but I will have to test this. But for the most part, if a user is hosting from their computer, the client will start the server for them.
Around noon on Monday the campus network decided that I didn't need to access anything off of campus... So defeated I went home. I had no internet connection, I was a man without a country. So I worked on things that didn't require a connection. I set up gconf schemas and tested those. Cleaned up the session monitor interfaces.
Tuesday and Wednesday were pretty much the same. I started making packages for the project. I have different setup.py files and different MANIFEST files for each project. I moved the amenity package out of the education package, because I think it's better if amenity just uses the base package and is not inside of the base package. There's going to be a separate amenity-teacher and amenity-student package. This way a machine with just the student package will be missing utilities that only the teacher will need. I've made a pyeducation and amenity-teacher package. I'll be making the amenity-student package and bug fixing all three for the next few days. I set up a mimetype for .asa files and if you double click a .asa file it will automatically open in the amenity-teacher importer window.
I did get my connection back sometime on Wednesday. So I've been testing the changes I've made. Everything is looking good. I don't think my changes are ready to commit, but I may be able to commit them by tonight.
Today, I'm going to keep on working on bugfixing and making packages. I also need to add a preference window for the clients. That shouldn't take very long.
Tomorrow is much of the same.
Saturday is another sprint! Same place from 9:00 to 5:00.
I'm not sure what's happening on Sunday yet. Hopefully I'll have a lot of progress to report.
Here is my timeline from my proposal, in a more timeline-ish style.
- May 22 -- Start Amenity (well, there was a delay with the accepting and everything)
- June 10-17 -- Finish models and remote objects. Start work GTK interfaces.
- July 1-7 -- Finish GTK interfaces (essentially finish Amenity), Start working on Pike.
- August 1-7 -- Finish quiz library and models. Start work on GTK interfaces.
- August 22 -- Finish GTK interfaces (essentially finish Pike). SoC is over on this date.