11-13.02 Final week: GA, project presentations, …

May 1, 2014:  I’m finally getting the projects available as webstarts on the homepage for the course. Please let me know if you encounter problems running them.

Breaking news: Those of you who attended the last few weeks of lectures know that one of my hobby-horses is geometric algebra, projective GA to be exact.  As part of my missionary work I’ve worked up a proposal for a tutorial on the subject at an upcoming international conference.  You can see it here.  Feedback on content and appearance welcome.

This is the last week of classes!  It will be a little different than usual, since two group projects will be presented, one on Tuesday and on on Thursday, both at 10:15.   From 11:00 Mr. Gunn will continue lecturing on geometric algebra and will also make some final remarks on technical details of project completion. The projects being presented are:

  • Tuesday: “Packing circles on a cylinder” by Michael Gubik and Nick Bremer
  • Thursday: “The Shadow Problem for 2-Surfaces” by Tatiana Grandon

 Details of project completion.  Before doing anything else, review the project guidelines given here.  They are from last year’s course, but they continue to apply to this year’s projects. In order to simplify the publication of the projects (via Java webstart technology), I need your help.  First, make sure you have organized your source code correctly  (see point 3 below). Furthermore,  to generate an entry in the course website where the project is pictured and described, I need to get two small files from each team.   I have added some files to the teacher’s git repository in order to streamline this process, see points 4+ below. As you complete your project, but no later than the first week of April, please make sure you have carried out the following directions.  If you finish early, please let me know! Then I can check that everything works and if not, give you a chance to correct things.  It will be much more difficult to effect the grading process if the project is only ready on the day of the presentation! Thanks in advance for your cooperation!

  1. Note: In this discussion, when you are asked to create files or packages involving the string “nnmm“, it should be replaced with the two 2-digit student numbers for the team members, for example “1723” or “0208”.
  2. Update to the teacher’s git repository.  Your project must run using the latest teacher’s repository code! If you are having problems updating to this repository (as wingthor does), there is now an alternative as follows:
    1.  Instead of having you work directly with the source classes for the template package(s), I’ve made a jar file named mv13-template.jar and checked it in with the other jar files in the lib folder of the repository.
    2. There are two ways to access this jar file. The first is preferred since it allows you to check for updates more easily.
      1. In eclipse: In the git repository browser,  fetch the teacher’s repository (it should be listed under “Remotes“).  Back in package explorer, select the project and look at the history view. You should see near the top of the list an entry for the teacher’s repository you just fetched.  Look for a recent commit for the teacher’s repository with the comment “Add jar file for the template package”, or “Update jar file for the template package.”  Use right mouse (context menu) and select “Cherry pick”, this should just bring over the desired jar file to the lib folder.
      2. If you want to get this jar file directly without using eclipse or git, use this link.  Download the file and copy it into the lib folder of your git project.
    3. Once the jar file is in the lib folder of your project, add it to your classpath in Eclipse (using Project properties->Java build path->Libraries).
      1. Then, either delete the template package (and all subpackages) in the Package Explorer, or configure the build path (in the tab labeled “Order and Export”) so that mv13-template.jar comes before the src folder of the project.
    4. If this approach works for you, you can delete the template package completely from your git project, and push the result to your remote repository, so that I only fetch the code you have written and not the template stuff.
    5. To view the source code of the classes in the jar remember:
      1. In Package Explorer, navigate to “Referenced Libraries”.
      2. Find “mv13-template.jar” and open it via the little triangle to its left side.
      3. The classes you see can be opened and looked at (though not written) in the same way as .java files can.
  3. Setup your package structure as follows — please follow these directions!
    1. Make sure that your project application is a subclass of template.Assignment. This is important to guarantee that the webstarts function correctly. Furthermore, if there are problems in the Assignment class, your application will be fixed when I fix this class.
    2. Make sure that all the code that you have written that is needed to run your application is contained in a single Java package, named reasonable something like studentnnmm.project. (You are allowed to have subpackages in this package.) This is important, since I’ll create a jar file for your webstart from this  package/folder.
    3. Your on-line documentation: should be a html file in the same folder as your project, whose name includes the string “nnmm” — otherwise there may be name collisions when I collect these html files into one place.  Please try to include nnmm in all filenames which are associated to your on-line documentation.
      1. If your html file does not load any other local files, it can be left in the same directory as the .java class.
      2. If however it refers to other local files (such as a screen shot of your project), then please create a subfolder named html in your project folder and put all the html-related files into this folder.  Then I know which files I have to collect! Remember to change the return value for the getDocumentationFile() to reflect this change.
      3. Example, if you have a doc file named doc007.html and it refers to a screenshot ss007.png, put both into a folder named html and change getDocumentationFile() to return “html/doc007.html“.
    4. If you use extra jar files in your project, be sure you check them into your repository (you can put them into the lib folder) and that they are included in the .classpath in your repository.  (This will be the case if you have your eclipse build path set up to include this jar.)  I’ll have to identify these jars and copy them to the webstart site.
  4. Run your application and create a representative image (256 x 192) of your application.  Use the “File->Export->Image…” menu item to do this.
    • In the file dialog you will probably need to unclick the constrained shape icon to allow these two dimensions to be entered separately from each other.  Save the image with the name projectPic-nnmm.png in the project folder you created above.
  5. Copy the file projectDesc.txt from template.project to your own project folder (created above) and edit it as follows:
    1. Replace the string “nnmm” by your student numbers where it occurs.
    2. Replace the string “Twirly objects based on spherical point groups” with the title of your project.
    3. Change the descriptive paragraph at the end to be a description of your project with approximately the same number of characters/words.
    4. Notice there is also a commented-out text for your presentation slides.  If you want your presentation slides to be available on the course web-site, please email them to me and I will activate this link in the documentation.
  6. Presentation slides can also be checked into your git repository.  If I find a file named studentsnnmmSlides.pdf then I will stash it away and link it to the project documentation on the website, so that visitors can also look at the slides of your presentation. (Again “nnmm” should be replaced by your 2-digit student numbers.)
  7. Commit the new files you’ve created and then push to your remote git repository.
  8. Send me an email to notify me that you’ve completed this phase.
  9. When I next fetch from your respository, I’ll receive the small image and the html fragment. I will generate a jar file from your project package and collect these in a single place where I can then invoke them to run the jar files as webstarts. I will use the image and text to construct the list of student projects for the web-site. I’ll construct a jnlp file to start your application as a webstart. There is currently one example on the course web-site here, you can consult it to see what I need all these pieces for.
  10. Deadline: Teams presenting in April are expected to have this all done by 24 hours after your presentation.  Please understand that I cannot complete the grading process until the above directions have been satisfactorily completed.  I’m going on vacation on Friday April 11 and I want to leave my desk “clean” when I go!

One thought on “11-13.02 Final week: GA, project presentations, …

  1. Pingback: Course Log | Mathematical Visualization

Leave a Reply