Graduate Recruiting Day, Associates Interview, and DrJava Stuff

Today is graduate recruiting day at the CS department, so we’re supposed to mingle as much as possible with the prospective graduate students. At one point, I started talking to one prospective student, and suddenly I had seven or eight listening to me. I hope I didn’t ruin it for Rice ;-)

That alone would make for a busy day. I also had my second interview with Sid Richardson College’s Associates Committee. I don’t know if I’ve mentioned it before, but I’m applying to be an associate.

I got renewed licenses for the YourKit profiler and showed Corky how to use it. We’re trying to pinpoint the hot spots in the indenting machinery.

Also, as reported before, I’m working on allowing DrJava to spawn external processes, and let the user insert variables like ${drjava.current.file} into the command lines as placeholders.

I’m trying to compile a list of all the variables I should (initially) include. All the DrJava configuration items and the Java system properties are already available. Here is what I have so far:

  • ${drjava.current.file}
  • ${drjava.working.dir}
  • ${drjava.all.files} — this one will have to have options to set the separator between the files and to make the files relative to a certain directory. How I’m going to do that yet, I’m not quite sure.
  • ${drjava.project.files} (see ${drjava.all.files})
  • ${drjava.included.files} (see ${drjava.all.files})
  • ${drjava.excluded.files} (see ${drjava.all.files})
  • ${drjava.word.under.cursor}
  • ${drjava.current.line}
  • ${drjava.current.col}
  • ${drjava.language.level}
  • ${project.current.file}
  • ${project.root.dir}
  • ${}
  • ${project.main.document}
  • ${project.class.path}
  • ${project.bookmarks} — some form of list of “file-line number” pairs, somehow separated. For files, same problem with making them relative to a directory.
  • ${project.compiled.classes} — this one is really the one that needs to be done lazily, and again the problems explained for ${drjava.all.files} apply.
  • ${debugger.breakpoints} — see ${project.bookmarks}
  • ${drjava.version} — some combination of the information in and
  • ${drjava.revision} — I don’t think this is available right now, but I would like to actually get the revision, not just the build date.

Can anyone think of any additional information that might be useful in external commands or scripts? Please post a comment.

As for the configuration of the separator characters and the directory that paths are relative to, I might have to do something like this: ${drjava.all.files;sep=" ";dir="${project.root.dir}"}. That means that the properties are basically functions, and I’ll have to do interpretation (ok… text processing) recursively. I’m not sure I’m happy about that.

In a few minutes we’re leaving for the recruiting dinner. I don’t know how this day went by so fast, but at least it feels like I’m trying to help out. I think I was the only grad student mingling with the prospectives at the 4 o’clock break.


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 DrJava, Graduate School, Ramblings, Uncategorized. Bookmark the permalink.

Leave a Reply