It’s likely no one noticed, but my thesis actually shrunk by about 53 pages. I applied a LaTeX formatting template that James had given me by Corky’s request. This template has smaller, more book-like line spacing, which probably violates the Rice formatting requirements, but Corky says all his students’ theses in the past have used it and got accepted. I also single-spaced the listings, which is allowed by Rice but which I had missed. The result is a thesis that is much more readable. It’s strange: My intuition told me whitespace contributes to easy readability, but true double-spacing was obviously too much and distracting. And double-spaced listings were just plain horrible.

I haven’t started a rewrite, even though I’ve discovered a few mistakes and clumsily worded parts myself, because I was still waiting for a bit more stylistic feedback from my committee members. I know Corky is almost completely through, so I’ll probably get his written feedback on Tuesday. Bill sent me an email today and said that he’ll probably put the review copy in my mailbox. I’ll check tomorrow, and then over the weekend probably do some editing.

It’s getting progressively more difficult to work on the “Master’s part” of my research, though: It was difficult to start writing after I had finished most of the coding, because it felt like “the work was done”. After I had finished the first rough draft of my thesis, it was difficult to start working on the presentation because “people could just read my thesis if they wanted to know something”. Now that I’ve done the presentation and defended, it feels like — at least in general — my work has been accepted, so why do I need to make changes? I realize, though, that the written thesis will be the most lasting evidence of my work, so I should strive to make it clear and concise. Corky’s advice to pay particular attention to the introduction is good, since that will be the part that is read most often. I think now, after a few weeks, I also have the necessary distance to recognize bad parts of my thesis and change them. I’ve done four proof-readings after I finished writing, but I was still too attached to my original writing.

I’ve also experimented a bit with integrating JUnit 4 with DrJava. I tried to create a “blended” junit.jar that contains the new interface from JUnit 4.x, but also the old 3.8.2 classes. This blended library works within DrJava if the programs run by the user use the old interface, but I’m still having problems with the new API. First of all, I had to look at all class files now, not just those that extend junit.framework.TestCase. Second, apparently the text output format of JUnit 4.x is different, so the part of DrJava that parses the output has to be rewritten. Third, some changes with respect to the TestCaseClassLoader will probably have to be made. I couldn’t reach a satisfactory conclusion yet, because I don’t quite understand what the expected output format is and how I can get the equivalent information with JUnit 4.x. It is encouraging, though, that a blended junit.jar seems possible. I believe this will be much easier than including both jar files and switching between them.

I’ve also finally added more backup support to my TeraStation RAID device. Now, my webserver contents get mirrored to the RAID device once a week using rsync, and if I want to, I can copy any changes to my MacBook’s local web server with a simple script that also uses rsync. I’ve found, to my surprise, that rsync is incredibly fast once the first synchronization has been made. In a similar fashion, I also mirror the Perforce repository, both in its original form and as tar.gz backups. Since rsync allows file-by-file mirroring (although they can be gzipped), I may convert my other backups to rsync as well. It would make recovery much easier than with Microsoft’s proprietary backup format.

I also started programming some schedule generation code using permutations, but I’ve realized it’s a bit more complicated than I originally thought. I also want to limit the schedules so that threads don’t appear before they are started.


About Mathias

Software development engineer. Principal developer of DrJava. Recent Ph.D. graduate from the Department of Computer Science at Rice University.
This entry was posted in Concurrent Unit Testing, DrJava, MS Thesis, Uncategorized. Bookmark the permalink.

Leave a Reply