~/talk

String Theory and Time Travel: the humble text editor

Talkat RubyConf 2015 · 2015-11-15..11-17· [developer-experience]
slides:none on file

Claim: the editor broken time machine loses history when edits are made after undo. Evidence: a Ruby implementation of a HistoryStep module uses a doubly linked list, then adds an alternatives array to create a branching history like git so undos never discard prior timelines. Also practical tooling: a small Ruby DSL for commands (typed args, select/modify/replace primitives) and examples from SAM, Acme, and the Canon Cat leap keys. The code is simple and demonstrably preserves and navigates alternate edit histories.

AI-written summary · about

  1. 0:00Intro
  2. 3:27Text editor vs IDE
  3. 4:19Early computers
  4. 11:39Japanese saws
  5. 13:43Wizards
  6. 14:34Hand tools
  7. 15:42Handtools
  8. 16:34Wizards vs Hand Tools
  9. 17:19Older Text Editors
  10. 19:06Now we can do better
  11. 19:45Better command syntax
  12. 21:46Single responsibility principle
  13. 22:09composability
  14. 22:32static typing
  15. 22:57command line syntax
  16. 24:33build a powerful command language
  17. 24:55Emacs
  18. 25:35Ruby
  19. 27:45doubly linked list
  20. 28:28implementation
  21. 30:11bad implementation
  22. 31:17branch history
  23. 32:39branch history implementation
  24. 33:36undo redo operations
  25. 34:45time lines
  26. 35:00macintosh
  27. 36:17Canon Cat
  28. 37:30Rob Pike
  29. 37:51Sam
  30. 39:09Plan IX
  31. 42:01Who uses Plan IX
  32. 42:46Plan IX for Userspace
  33. 43:09Takeaways
  34. 43:22Rails
  35. 43:41Building your own
  36. 43:53learn about IO
  37. 44:24learn about software architecture
  38. 44:39learn a new text editor
  39. 45:24computer science history
  40. 45:42GitHub
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.