Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Keynote, LambdaConf 2015 - Ipecac for the Ouroboros

4,147 views

Published on

Pervasive file virtualization would represent a revolution in how we approach computing. Suffuse is my effort to get this revolution moving along.

Published in: Technology
  • Be the first to comment

Keynote, LambdaConf 2015 - Ipecac for the Ouroboros

  1. 1. Suffuse: Ipecac for the Ouroboros Paul Phillips LambdaConf 2015, Boulder CO 1
  2. 2. Compatibility means deliberately repeating other people's mistakes. — David Wheeler 2
  3. 3. Suffuse is snake oil • not oil from snakes - oil for snakes • snake is compatibility, syrup of ipecac induces vomiting • imagine life in a pure functional environment • simpler, more secure, more convenient, more power • yet 100% compatible with dysfunctional environments 3
  4. 4. ..... who am was I? ..... 4
  5. 5. 30 minutes!? • I was failing to whittle down to 90 minutes • ...when I found out I had 30 • For much more join me in Room 206 right after this • "The Virtual Filesystem: This Changes Everything" 5
  6. 6. Pervasive file virtualization • applications span a staggering variety of issues • renders obsolete entire classes of software • could transform software development practice • the best idea I've ever had 6
  7. 7. 7
  8. 8. Intentionally vague definitions • A path is a restricted form of string • A file is what you find in a filesystem • A filesystem maps paths to files • Metadata is what a filesystem knows about its files • Critical that data is lazier than metadata 8
  9. 9. Unassume: the position • it can be hard to see past one's familiar assumptions • a regular file is not an array of bytes • a directory is not a list of its contents • a symbolic link is not a pointer to a path • Each is a program! 9
  10. 10. The universal API • Files are hooks into every program • No modifications to programs are needed • a directory is a virtual filesystem • a link is a virtual reference • a file is a virtual data channel 10
  11. 11. Dataflow • values recomputed automatically on-demand • canonical example is a spreadsheet • virtual files also offer this property • call them reactive files 11
  12. 12. Continuous consistency • how to ensure fresh derived files? • status quo is imperative/push • A := A' ; B := f(A) • suffuse is functional/pull • B = f(A) • B cached, updated only if A dirty 12
  13. 13. What is being described? • Immutable • Statically typed (with inference) • Lazily computed • Unbounded size • Safe for concurrent access 13
  14. 14. What is being described? • Immutable • Statically typed (with inference) • Lazily computed • Unbounded size • Safe for concurrent access 14
  15. 15. Sources of inspiration • maybe you expect to hear plan9, fuse, ... • we live in perpetual ignorance of previous work • has everyone studied the writings of Mary Ann Hoberman? • her magnum opus is "A House is a House For Me!" 15
  16. 16. 16
  17. 17. 17
  18. 18. 18
  19. 19. 19
  20. 20. A json's a house for a map of maps A map is a house for its keys Each key/value pair is a newly built lair This continues as long as you please A var is a house for a bug, a bug A thread is a house for deadlock And it's a safe bet that your technical debt has the nicest house on the whole block 20
  21. 21. M.A. Hoberman on the art of programming 1. How Do I Go? (1958) 2. Bugs (1976) 3. Mr. and Mrs. Muddle (1988) 4. One of Each (1997) 5. All Kinds of Families! (2009) 21
  22. 22. Coming up next in "This Changes Everything" • container transparency • typed files, immutable files, metafiles • lazy files, implicit files, reactive files • virtual (data/metadata-driven) paths • process persistence/portability • and much much more 22

×