April 2017
« Jul    




Unbegun Research Topics

Language for describing (inter)Active Documents

There should be a language that can replace HTML/JavaScript and LaTeX.
Really serious about the HTML/JavaScript part.
Less so about the LaTeX part.
The Web is now more about writing interactive applications (mail, maps, etc) and services than it is about reading documents.

    Related work:

  • Ted Nelson, project Xanadu
  • Brian Fox, Meta-HTML
  • from MIT 1998, curl
  • Ludovic Courtès, skribilo
    Use cases:

  • Doctoral Thesis
  • Automated Stats Reports (financial, server uptime, system status, etc)
  • Medical records (chart visitation vitals (blood pressure, temp, etc), link in Xrays, CT scans, etc)
Plotting software

Everytime I have to draw data, I hate the way tha plotting software works.
From reading Tufte’s books, I have some specific demands on what I want, so I need a programmable framework that gives me exactly that.
I need a grammar of graphics.
Tood had a problem with overplotting of data – needs to decouple the order of data elements in the legend from the order in which they are drawn
Sofware that gives such fine control will likely have to have some way of embedding the lower language (ps), just like and for same reasons as C allows embedding asm.

    Related Work:

  • ggplot/ggplot2

The differences/similarities of programs can be measured as a diff/similarity between internal SSA graph representations.
It should then be possible to give design feedback and perform grading based on how different a program is from a standard.
The standard can be provided either as a ref implementation or via metrics that indicate design sparsity (few vars, classes, fewer interdeps, etc)

    Related Work:

  • Aiken, MOSS plagarism detection

Main page should be a simple user/pass login prompt. ucinetid serves as the user, 8 digit student id as the pass. This information shall be stored in a plain text file, so that I can quickly update it from the course roster.

    After logging in, the student can toke the following actions:

  1. Submit their project (upload zip file) for automated testing.
  2. View the testing results of their last submitted project.
  3. Submit a test and see the output generated by my implementation of the project.
    The following things can go wrong when automatically testing, all of which should be reported to the student:

  • the project fails to unzip into the proper structure
  • the unzipped code fails to compile
  • the unzipped code fails to run
  • the unzipped code enters an infinite loop (kill process after 3 seconds)
  • the unzipped code produces massive output during infinite loop (don’t save outputs, only report success/failure)

After submitting a project the student should be able to view a list of the tests, colored to indicate success/failure.
For convenience, this page should have a button to add a test and each test in the list should be clickable so a side-by-side of the test input, the student’s output, and the expected (my implementation) output can be viewed.
Because of the massive output problem: either generate the test view page on-the-fly, or restrict saving output to expected length +15 lines and a TRUNCATED error indicator.

The website shall track all submitted projects by all students. Stamped with date+time, login, and ip addr. Nothing is shared between students. Students only get to see the last submitted project, and are not privy to the recording of all submissions.

Submitted tests shall be added to a master list of tests, so everyone benefits from running all collected tests. I should be able to ‘prime’ the list by simply placing a bunch of *.crx files in the appropriate directory.

Students will have to submit 6 (or so) projects during the course. The interface needs to maintain a clear separation between each submitted project. The autograder does not need to report back final per-project grades to the student, that will be accompilshed through EEE. It only needs to provide feedback on test cases.

I’m fine creating new assignments through the manual creation of directories with an expected layout.

  times.txt    # holds the due/late/open times
  tests/       # holds test info: inputs, expected outputs, etc.
  Driver.java  # An API-conforming driver for student code, containing the main() method
  submissions/ # Collects all student submissions for this project
  implementation/ # Holds the canonical implementation

WebGL Open Mulitplayer Org

Maybe even a first-person shooter.
Avoid the plugin/installation process for gamers.
Yet still give them a rich graphical experience

    Related Work:

  • Pocket Legends, but it’s a chrome plugin
Book on Mathematical Notations

Principally an exercise in pedantry, I intend this book to traverse the various mathematical notations in order to elicudate the characteristics of a good notation. Once found, I hope that they may provide insight not only in how we analyze ideas, but also provide a general foundation upon which to build more notational tools for as yet undiscovered mathematical fields.

  • Bibliographic Notes
    • The Universal History of Numbers : From Prehistory to the Invention of the Computer by Georges Ifrah
      • pg17
      • These body-counting points are thus not thought of by their users as “numbers”, but rather as the last elements of model sets arrived at after a regulated (conventional) sequence of body-gestures. This means that for such people the mere designatin of any one of the points is not sufficient to describe a given number of beings or things unless the term uttered is accompanied by the corresponding sequence of gestures.

      • pg 21
      • So the human mind can only “count” the elements in a set if it is in possession of all theree of the following abilities:

        1. the ability to assign a “rank-order” to each element in a procession;
        2. the ability to insert into each unit of the procession the memory of all those that have gone past before;
        3. the ability to convert a sequence into a “stationary” vision
      • pg23
      • As people progressively learned to rely more and more on language, the sounds superseded the images for which they stood, and the originally concrete models took on the abstract form of number-words. These [use of figures] were very important developments, for they allowed “operations” on things to be replaced by the corresponding operation on number-symbols. For numbers do not come from things, but from the laws of the human mind as it works on things.

    • The Universal History of Computing by Georges Ifrah
      • pg4
      • By contrast, numerical notation needs no correspondence with spoken numbers. The mental process of counting is not linked to any particular act of speech; we can count to any number without speaking or even without thinking a single word.

      • pg5 [classification of systems] Referenced Figures
        1. the additive type of number-system. They are based on the additive principle and each of their figures has a particular value withch is always the same regardless of its position in the representation of the number. (Fig. 1.14 to 16) Basically, they are written versions of more ancient methods of counting with objects. (Fig. 1.1 to 13);
        2. the hybrid type of number-system. These use a bind of mixed multiplicative and additive principle (Fig. 1.28 to 32), and are essentially transcriptions of oral number-systems of varying degrees of organization;
        3. the positional type of numebr-system. These are based on the principle that the value of a particular figure depends on its position in the representation of a number (Fig. 1.33 to 36), and therefore need a zero (Fig. 1.37). Number-systems of this type exhibit the greatest degree of abstraction, and therefore represent the final stage in the development of numerical notation (Fig 1.38 and 39).