July

July 2 - July 6
While I have been very busy with my interns (holding daily teaching sessions and creating skeleton programs for them to build off of), I have not had very much time to do my own work. I have managed to rewrite a large section of wiEGO that originally created multiple panels to display my graphic organizers, and now only uses a single class. This refactoring has allowed me to not only cut down on the amount of unnecessary legacy code that was in my program, but also allow me to add in new features (such as drag and drop functionality) that I hope will be finished soon so that I can work on the Mediawiki/Moodle porting which I know will take a large portion of the rest of the summer. I also started working on updating our Mediawiki to the newest available release (1.10 from 1.5) so that I can easily add new extensions for the group collaboration needs of my clients. This updating must be done before any porting can take place because all of the solutions I have found to the Mediawiki/Moodle issue have used the newest installation, and it really doesn’t make much sense to use an older installation, when newer and more efficient releases are available.



July 9 - July 13
During this week I was at a robots competition in San Diego. I was scouting out a new autonomous robotics underwater competition that a student group I am involved in ( ARVP ) is thinking of competition in next year. I also worked on setting up my interns projects (ie. installing the appropriate programs, creating test programs for them).



July 16 - July 20
This week was spent working on updating our Mediawiki installation from 1.5 to 1.10. While I thought that this would only initially take about a day or two at the most, it has taken MUCH longer. Instead of simply adding in the sections of code that we previously added for our custom functions and wiki extensions, I had to rewrite almost all of them using the new variables and functions that Mediawiki 1.10 now offers. As well, I had a large portion of my time devoted to understanding the new file structure and new database tables of Mediawiki 1.10. Not only does our new Mediawiki installation allow for all of the current extensions available on the web (such as spellcheckers, pdf viewers ect) to be easily installed, I have also incorporated the work I have been doing on my test wiki as well as the wok that Cleo did on the wiki for annotations and revisions. While this was my most challenging task thus far (creating new db tables, reverse software engineering, learning how the php, JavaScript and html all fit together again) it was defiantly my most rewarding because I am now able to easily integrate any new component I want into our wiki (such as one of my interns projects) without much further effort. As well, I also created a 'how to upgrade' guide so that we can continue to use the newest wiki technology and not have to spend such a long time trying to catch up 5 versions of Mediawiki. While I was doing the Mediawiki installation, I also fixed some Moodle issues that came up for my interns so that they could continue with their work.



July 23 - July 27
Now that my interns have had a week to finished their introductory tasks (putting our outreach lesson plans on our Moodle, along with creating their own), this week was split between me mentoring my interns and flushing out their project descriptions. One of the projects that has been created is a computing science course planner that will allow a student to view all of the courses we offer on a wiki, and then also allow them to use a course planning program (java applet embedded on a wiki page) to visually plan out their program, from the beginning courses to the end ones (100 level to 400 level) or from the 400 level to the 100 level. This project will require me to create a bit of code for the wiki so that I can output the necessary xml files and data to be used by the course planner. The second project that was created, for my other intern, is a wiki user behavior visualization. This program will allow a user to select a number of users (1-2) and view different types of wiki usability information about them (for example, the number of wiki edits per page). Much like the other wiki project, I am required to write a large portion of code that will allow the applets to receive data from the wiki. This being said, the primary goal for this week was to add this applet -> Mediawiki functionality. I spent a large amount of time trying to determine how a java applet/application, that was either online (embedded in a webpage), or offline (running from local directory) could interact with our wiki. This ended up occurring in two different stages. First, creating a wiki format that would allow me to output any type of data I wanted, and then creating another format that would allow me to send data to the wiki and provide output to whom ever was sending information to me. As well, I also had to create new xml parsers for the wiki that would look at either all, or a subset of all of the wiki pages and create an xml topic map that could display various things (such as course prerequisites, or user behavior relations on the wiki). Lastly, I starting working on ways in which I could use these methods to not only retrieve data from the wiki, but also added new wiki pages, or sections / links to pages from an online/offline applet/application.



July 30 - August 3
Simply stated, this week was a large amount of trial and error. I was trying very hard to come up with a quick, efficient method through which I could easily add in wiki information based on a graph that was generated by a user of EGO. The first step in this process was to create a 'graph' creator application that used the drag and drop technology I was previously working on, as well as a code tweak that would allow new graphs to be created. This proved to be much harder that I thought, with me spending 16+ hours each day this week trying to get it to work. In the end I ironed out the creating a new graph issues in EGO and then started in on the remote wiki modifications. After a while I came up with the idea to remotely authenticate to the wiki, and this led me to research how wiki articles are normally created. After determining how they are usually created, I wrote a work around that mimics the usual way a wiki page is done, but does it textually instead of visually. Towards the end of the week (after I had remote graph and wiki page creation) I worked on and submitted my ethics documents to my supervisor so that they could be sent to the UofAa ethics committee which will grant us permission to perform our study this fall/winter.