]> git.neil.brown.name Git - edlib.git/commitdiff
Add my LCA2016 presentation. devel lca2016
authorNeilBrown <neil@brown.name>
Thu, 4 Feb 2016 20:32:20 +0000 (07:32 +1100)
committerNeilBrown <neil@brown.name>
Thu, 4 Feb 2016 20:32:20 +0000 (07:32 +1100)
- run edlib as "./edlib -g"
- open lca2016/edlib.md (C-x C-f)
- go to the buffer list (C-x b)
- nagivate to the edlib.md entry
- type 'p' to view in presentation mode

Alternate to last step:

- type C-x 5 2 to get new window (will be blank)
- type C-x b in that window to get buffer list
- move it to other monitor
- type M-f to go full screen
- in original window us C-v or page-down to page down both displays
- use C-l anywhere to re-centre the other display

Signed-off-by: NeilBrown <neil@brown.name>
29 files changed:
lca2016/B-bather.JPG [new file with mode: 0644]
lca2016/B-bather2.JPG [new file with mode: 0644]
lca2016/B-blue.JPG [new file with mode: 0644]
lca2016/B-boy.JPG [new file with mode: 0644]
lca2016/B-camera.JPG [new file with mode: 0644]
lca2016/B-clown.JPG [new file with mode: 0644]
lca2016/B-fisher.JPG [new file with mode: 0644]
lca2016/B-flag.JPG [new file with mode: 0644]
lca2016/B-girl.JPG [new file with mode: 0644]
lca2016/B-glamor.JPG [new file with mode: 0644]
lca2016/B-minister.JPG [new file with mode: 0644]
lca2016/B-naked.JPG [new file with mode: 0644]
lca2016/B-nun.JPG [new file with mode: 0644]
lca2016/B-nurse.JPG [new file with mode: 0644]
lca2016/B-police.JPG [new file with mode: 0644]
lca2016/B-sailor.JPG [new file with mode: 0644]
lca2016/B-scots.JPG [new file with mode: 0644]
lca2016/back.jpg [new file with mode: 0644]
lca2016/bufferlist.png [new file with mode: 0644]
lca2016/edlib.md [new file with mode: 0644]
lca2016/hexl.png [new file with mode: 0644]
lca2016/mvc1.png [new file with mode: 0644]
lca2016/mvc2.png [new file with mode: 0644]
lca2016/mvc3.png [new file with mode: 0644]
lca2016/mvc4.png [new file with mode: 0644]
lca2016/panes.png [new file with mode: 0644]
lca2016/standards.png [new file with mode: 0644]
lca2016/xlnt-ss.png [new file with mode: 0644]
lca2016/xlnt-tex.png [new file with mode: 0644]

diff --git a/lca2016/B-bather.JPG b/lca2016/B-bather.JPG
new file mode 100644 (file)
index 0000000..1c2f1e9
Binary files /dev/null and b/lca2016/B-bather.JPG differ
diff --git a/lca2016/B-bather2.JPG b/lca2016/B-bather2.JPG
new file mode 100644 (file)
index 0000000..87b4316
Binary files /dev/null and b/lca2016/B-bather2.JPG differ
diff --git a/lca2016/B-blue.JPG b/lca2016/B-blue.JPG
new file mode 100644 (file)
index 0000000..ca6bffd
Binary files /dev/null and b/lca2016/B-blue.JPG differ
diff --git a/lca2016/B-boy.JPG b/lca2016/B-boy.JPG
new file mode 100644 (file)
index 0000000..359c267
Binary files /dev/null and b/lca2016/B-boy.JPG differ
diff --git a/lca2016/B-camera.JPG b/lca2016/B-camera.JPG
new file mode 100644 (file)
index 0000000..4473700
Binary files /dev/null and b/lca2016/B-camera.JPG differ
diff --git a/lca2016/B-clown.JPG b/lca2016/B-clown.JPG
new file mode 100644 (file)
index 0000000..6d40f0a
Binary files /dev/null and b/lca2016/B-clown.JPG differ
diff --git a/lca2016/B-fisher.JPG b/lca2016/B-fisher.JPG
new file mode 100644 (file)
index 0000000..0ae1342
Binary files /dev/null and b/lca2016/B-fisher.JPG differ
diff --git a/lca2016/B-flag.JPG b/lca2016/B-flag.JPG
new file mode 100644 (file)
index 0000000..ea802b1
Binary files /dev/null and b/lca2016/B-flag.JPG differ
diff --git a/lca2016/B-girl.JPG b/lca2016/B-girl.JPG
new file mode 100644 (file)
index 0000000..cdd56f3
Binary files /dev/null and b/lca2016/B-girl.JPG differ
diff --git a/lca2016/B-glamor.JPG b/lca2016/B-glamor.JPG
new file mode 100644 (file)
index 0000000..1f63ad5
Binary files /dev/null and b/lca2016/B-glamor.JPG differ
diff --git a/lca2016/B-minister.JPG b/lca2016/B-minister.JPG
new file mode 100644 (file)
index 0000000..c3e6a6f
Binary files /dev/null and b/lca2016/B-minister.JPG differ
diff --git a/lca2016/B-naked.JPG b/lca2016/B-naked.JPG
new file mode 100644 (file)
index 0000000..5abb914
Binary files /dev/null and b/lca2016/B-naked.JPG differ
diff --git a/lca2016/B-nun.JPG b/lca2016/B-nun.JPG
new file mode 100644 (file)
index 0000000..6ec54b6
Binary files /dev/null and b/lca2016/B-nun.JPG differ
diff --git a/lca2016/B-nurse.JPG b/lca2016/B-nurse.JPG
new file mode 100644 (file)
index 0000000..c23274b
Binary files /dev/null and b/lca2016/B-nurse.JPG differ
diff --git a/lca2016/B-police.JPG b/lca2016/B-police.JPG
new file mode 100644 (file)
index 0000000..0f17a06
Binary files /dev/null and b/lca2016/B-police.JPG differ
diff --git a/lca2016/B-sailor.JPG b/lca2016/B-sailor.JPG
new file mode 100644 (file)
index 0000000..9100dba
Binary files /dev/null and b/lca2016/B-sailor.JPG differ
diff --git a/lca2016/B-scots.JPG b/lca2016/B-scots.JPG
new file mode 100644 (file)
index 0000000..7a3f8fa
Binary files /dev/null and b/lca2016/B-scots.JPG differ
diff --git a/lca2016/back.jpg b/lca2016/back.jpg
new file mode 100644 (file)
index 0000000..fddf908
Binary files /dev/null and b/lca2016/back.jpg differ
diff --git a/lca2016/bufferlist.png b/lca2016/bufferlist.png
new file mode 100644 (file)
index 0000000..86ae75a
Binary files /dev/null and b/lca2016/bufferlist.png differ
diff --git a/lca2016/edlib.md b/lca2016/edlib.md
new file mode 100644 (file)
index 0000000..1f00298
--- /dev/null
@@ -0,0 +1,213 @@
+:H1:center,20,fg:blue,space-above:15,family:sans
+:H2:center,15,fg:darkblue
+:background:image-stretch:back.jpg,page-local
+:scale:x:533,y:300
+:P:left:30,12,family:sans
+:bullet:fg:red,13
+:L1:,left:30,12,bullet:•,tab:30,family:sans
+:L1c:,left:30,12,tab:30,family:sans
+:L2:,left:50,10,bullet:*,tab:30
+:L2c:,left:50,10,tab:30
+
+# Edlib
+## because one more editor is never enough
+
+
+
+
+
+
+
+
+
+:P:center,14
+Neil Brown
+
+
+LCA 2016 - Geelong
+
+# Edlib
+## because one more editor is never enough
+
+!400:200:standards.png
+:P:center,16,fg:purple
+xkcd.com/927
+
+:background:overlay:B-nun.JPG
+# I Love EMACS
+
+- have been using it for nearly 30 years
+- *vim* is quite good too!
+- good for code
+- good for email
+- lots of packages and add-ons.
+- not quite perfect
+- wikipedia lists over 100 others
+
+
+:background:overlay:B-bather2.JPG
+# Consider the MVC pattern
+## Model-View-Controller
+
+!350:190:mvc1.png
+
+:background:overlay:B-blue.JPG
+# Consider the MVC pattern
+## Model-View-Controller
+
+!380:160:mvc2.png
+
+Model is text buffer
+- characters with attributes.
+- indefinite undo.
+
+:background:overlay:B-boy.JPG
+# **Buffer List** buffer
+
+!400:160:bufferlist.png
+
+- That **GNU Emacs** buffer doesn't exist any more
+- Model requires indirection for non-text sources
+- "style" formatting must be stored in the buffer
+
+:background:overlay:B-fisher.JPG
+# `hexl-mode`
+
+!400:160:hexl.png
+- binary file must be converted to text (external program)
+- not effective for `/dev/sda`
+
+:background:overlay:B-flag.JPG
+# Back to Model-View-Controller
+
+!480:140:mvc3.png
+
+View is a window that interprets attributes
+- can hide, highlight, insert chars etc.
+- text can be "intangible" and "read-only"
+- attribute with hooks to call on change
+- no hooks to call on display
+
+:background:overlay:B-glamor.JPG
+# An attempt at a spreadsheet
+
+!400:200:xlnt-tex.png
+
+Uses a LaTeX table with expressions in comments
+
+:background:overlay:B-sailor.JPG
+# An attempt at a spreadsheet
+
+!450:150:xlnt-ss.png
+
+- code: hides and highlights and calculates.
+- felt like programming in assembly-language.
+- rendering isn't programmable.
+
+:background:overlay:B-bather.JPG
+# Model-View-Controller again
+
+!480:180:mvc4.png
+
+- Controller is elisp.  Awesome.... or not.
+- steep learning curve for single use-case
+
+:background:overlay:B-camera.JPG
+# `edlib` - scratching an itch
+
+Everything is plugable
+
+- multiple "document" backends
+- multiple "language" bindings
+- multiple multi-stage "renderers"
+- multiple "display" managers
+- configurable key/event bindings (of course)
+- core provides essential abstractions
+- loadable libraries for everything else
+
+:background:overlay:B-nurse.JPG
+# edlib core - panes
+
+!400:170:panes.png
+
+- a pane represents an area of interaction
+- may have children with depth
+- sends and receives all messages
+
+:background:overlay:B-girl.JPG
+# edlib core - documents and marks
+
+- a document is a set of interfaces provided by a pane
+- document can be accessed as bytes, characters, lines, ...
+- multiple panes can access the one document
+- a mark is a location in a document - with state
+- marks can be grouped
+- easy to find "next" or "previous" in given group.
+
+:background:overlay:B-minister.JPG
+# edlib core - commands
+
+- commands pass control between panes
+- can pass control between languages
+- args are:
+  - two panes - source and destination
+  - two integers
+  - two strings
+  - two marks
+  - two co-ordinates (x,y or w,h)
+  - another command
+- return an integer ... or call-back the command
+
+:background:overlay:B-police.JPG
+# edlib core - attributes
+
+- attributes are named strings
+- elements (characters) in a document have attributes
+- panes, marks, and documents have attributes
+- can be used to pass extra information between 
+ commands
+
+:background:overlay:B-clown.JPG
+# edlib plugins
+
+- documents: text buffer and directory
+- displays: ncurses and pygtk
+- render: lines, hex, format, complete, presentation
+- key bindings: emacs-like, per-pane
+- tile manager
+- status line/scroll bar
+- popups: search and find-file
+
+:background:overlay:B-scots.JPG
+# future work
+
+Currently have a working prototype. Want more...
+- re-evaluate all interfaces
+- unit tests!
+- lots more edit functionality
+- understand copy/paste for non-text documents
+- Bindings for Lua, and Rust? and ...
+- vi-like bindings
+- hexmode overlays for known structures
+ e.g. filesystem superblocks
+- Email client (based on notmuch)
+- spreadsheet?
+- wiggle plugin ... or plug in to wiggle
+
+:background:overlay:B-naked.JPG
+# Edlib - a naked bollard
+
+:P:center,samily:sans,15
+
+Ready for decorating
+
+
+
+github.com/neilbrown/edlib
+
+
+
+
+:P:center,family:sans,20
+Questions?
+
diff --git a/lca2016/hexl.png b/lca2016/hexl.png
new file mode 100644 (file)
index 0000000..15e93a2
Binary files /dev/null and b/lca2016/hexl.png differ
diff --git a/lca2016/mvc1.png b/lca2016/mvc1.png
new file mode 100644 (file)
index 0000000..2e059af
Binary files /dev/null and b/lca2016/mvc1.png differ
diff --git a/lca2016/mvc2.png b/lca2016/mvc2.png
new file mode 100644 (file)
index 0000000..c9d6d3e
Binary files /dev/null and b/lca2016/mvc2.png differ
diff --git a/lca2016/mvc3.png b/lca2016/mvc3.png
new file mode 100644 (file)
index 0000000..ef6fcce
Binary files /dev/null and b/lca2016/mvc3.png differ
diff --git a/lca2016/mvc4.png b/lca2016/mvc4.png
new file mode 100644 (file)
index 0000000..e57e44f
Binary files /dev/null and b/lca2016/mvc4.png differ
diff --git a/lca2016/panes.png b/lca2016/panes.png
new file mode 100644 (file)
index 0000000..b90d318
Binary files /dev/null and b/lca2016/panes.png differ
diff --git a/lca2016/standards.png b/lca2016/standards.png
new file mode 100644 (file)
index 0000000..5d38303
Binary files /dev/null and b/lca2016/standards.png differ
diff --git a/lca2016/xlnt-ss.png b/lca2016/xlnt-ss.png
new file mode 100644 (file)
index 0000000..cf1363d
Binary files /dev/null and b/lca2016/xlnt-ss.png differ
diff --git a/lca2016/xlnt-tex.png b/lca2016/xlnt-tex.png
new file mode 100644 (file)
index 0000000..6f0bc46
Binary files /dev/null and b/lca2016/xlnt-tex.png differ