Interactive Software Archival

45cf72d0b5611b4372b8367759882b93?s=47 wilkie
August 19, 2016

Interactive Software Archival

Over the years, computation has substantially increased our creativity and opportunity. Computers constantly improve along with our ability to create and collaborate toward new art, science, and furthering existing technology. However, there's also a danger in that software becomes difficult to run over time. This fragility leaves us with a tech field that is somehow simultaneously growing and yet narrowing: Word documents become difficult to open, video games on specialized hardware become difficult to play, a researcher's simulator of protein synthesis becomes difficult to find-- these represent a loss of perspective and culture, an inability to revisit the past, and a lack of scientific accountability. In response, librarians have created a collection of digital libraries that archive images, video, and even the most vibrant of GeoCities websites. In the end this is not enough. We have media that is interactive and real-time. We have tools that can create new content at any point. Scientists have a dire need for accountability in research as experiments become harder to replicate. How do we make archives and libraries that can handle the preservation of code while allowing us to -- 100 years from now -- build, run, and archive anything new we create with that code? Where are our museums of interactive art? To answer that, we will take a look at the libraries and archives of the hypothetical, ones that exist now, and those in development. Focusing on the motivations and technology behind them, we will look at what they could do better and how. You will leave with an appreciation for the concept of provenance and how librarians can teach us the importance of systems that can trace an object back to the code that generated it. Finally, a look at the state-of-the-art and how Pittsburgh is leading the effort with two such interactive archives in development centered around using various levels of virtualization to preserve interactive art, games, and scientific experimentation. Our discussion will culminate with a demonstration of these new interactive archive systems, how they work, and what the future looks like.

45cf72d0b5611b4372b8367759882b93?s=128

wilkie

August 19, 2016
Tweet

Transcript

  1. Interactive Software Archival wilkie @ wilkieii wilkie@status.wilkie.io (cc) Transcript: blah/blah/etc

  2. Me Computers Make Me So Happy Sometimes

  3. Me Computers Make Me So Grumpy Sometimes

  4. Systems + OSes Application File System Abstraction Drivers IPC Kernel

    Software Is Too Complex
  5. Systems + Archives Application Figure It Out, Genius Reliable Storage

    Hardware The Ideal System Is an Archive
  6. Archival

  7. Artifacts Mona Lisa Rosetta Stone

  8. Leaning Tower of Pisa 3.99° of PRESERVED TILT

  9. Provenance • Even if you’ve never heard the word, we

    developers have created a culture around using provenance. • Software development is sometimes aptly referred to as a Garbage Fire. • Bundler, npm, pip, CPAN… etc… all solving the problem of the chaos of development through maintaining a record of where and when and who dependencies come from.
  10. Digital Artifacts 0010 1011 0110 Which Lives Longer?

  11. Digital Archives

  12. HD-Rosetta Disks Rosetta Disk Documentary: scottoller.com/rosetta

  13. Software As An Artifact

  14. What is Software? < ? >

  15. Ada Lovelace ...the Analytical Engine might act upon other things

    besides numbers… the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent. -- "Notes" Section A, 1842
  16. Ada Lovelace … scientific pieces of music of any degree

    of complexity or extent.
  17. Code as Art

  18. Software Piracy Becomes Art

  19. Demoscene Second Reality by FUTURE CREW

  20. Software as an Artifact Is software preserved if it cannot

    be executed?
  21. The Internet Archive https://archive.org

  22. None
  23. نب نسحلا ،يلع وبأ مثيهلا نب نسحلا Abū Alī al-

    asan ibn ʿ Ḥ al- asan ibn al-Haytham Ḥ c. 965 – c. 1040 CE
  24. Scientific Method Form a Question Propose Hypothesis Predict Outcome Test

    Analysis Record, Reflect, Repeat
  25. Repeatablilty Running the same experiment

  26. Reproducibility Running the same experiment but altering the conditions

  27. Science + Software Is science reproducible if you can't run

    the code?
  28. Sorry... Pessimistic CS Statistics Reproducibility Rate 32% Of Scientists Believe

    Slight/Significant Reproducibility Crisis 90%
  29. Dang it Code Publicly Available 35% Asked and received code

    22% Asked but told NO 36% Asked but no response 7%
  30. That’s a Little Better Got it to Build: <30 minutes

    58% Got it to Build: >30 minutes 28% Couldn't build it; told it should 10% Couldn't build it; told it sucks 4%
  31. Excuses “ Student graduated; Nobody knows how it works ”

  32. Science is an Interactive Narrative

  33. None
  34. Solution: Archival

  35. Interactive Archival

  36. Solution: Virtualization “Not a Graveyard” – Erika Linke and Dan

    Ryan introducing the concept of Olive and executable archives.
  37. Olive Archive CMU (Pittsburgh!) QEMU+KVM Emulation On Top olivearchive.org

  38. VmNetX: Internet Suspend/Resume Virtual Machine Network eXecution; GPLv2 VM Archive

    Your Computer Executes VM Stream VM (HTTP)
  39. bwFLA University of Freiburg

  40. bwFLA VM Archive Your Computer Sees Video Stream Stream Video

    (SPICE, etc)
  41. http://bw-fla.uni-freiburg.de/demo-cloud.html

  42. Olive/bwFLA: Drawbacks Inflexible What if VM tech is obsoleted?

  43. Solution: Satisfaction Application Figure It Out, Genius Reliable Storage Hardware

  44. Ex: Commander Keen Reliable Storage Hardware 1991

  45. Native DOS -> Impractical Figure It Out, Genius Reliable Storage

    Hardware 2016
  46. DOSBox Hardware

  47. Decide How To Run Hardware

  48. University of Pittsburgh https://occam.software

  49. React To The Future x86-64 Javascript

  50. Javascript Emulation Reliable Storage Browser

  51. Adaptable (NES, SNES, etc) x86-64 Javascript XNES OR

  52. Scientific Workflows

  53. Active Curation Image Filter

  54. Lessons Think about how the heck your code works in

    the future
  55. AND HAVE FUN! http://wilkie.io /abstractions