Practical Example: Slides ready
Perhaps I will be good on time after all, though there is still a little more I want to add to the end.master
parent
7d475a0ded
commit
f13220e816
218
slides.org
218
slides.org
|
@ -117,78 +117,77 @@
|
|||
- [ ] =vim=
|
||||
- [ ] =screen=
|
||||
|
||||
* LACKING Slides [0/6]
|
||||
* LACKING Slides [1/6]
|
||||
:PROPERTIES:
|
||||
:ID: slides
|
||||
:END:
|
||||
** Summary :noexport:
|
||||
#+BEGIN: columnview :hlines 2 :maxlevel 3 :indent t :id slides
|
||||
To begin|ITEM|DURATION|TODO|ENVIRONMENT|
|
||||
|-------------------------------------------------------+----------+----------+------------|
|
||||
| Slides | 0:41:47 | LACKING | |
|
||||
|-------------------------------------------------------+----------+----------+------------|
|
||||
| \_ Summary | | | |
|
||||
|-------------------------------------------------------+----------+----------+------------|
|
||||
| \_ Introduction | 0:01:55 | REVIEWED | |
|
||||
| \_ Spoken Intro | 0:00:50 | REVIEWED | note |
|
||||
| \_ Choreographed Workflows | 00:00:20 | REVIEWED | fullframe |
|
||||
| \_ Practical Freedom | 0:00:45 | REVIEWED | fullframe |
|
||||
|-------------------------------------------------------+----------+----------+------------|
|
||||
| \_ Practical Example: Web Browser | 0:08:01 | REVIEWED | |
|
||||
| \_ Browser Topics | | | |
|
||||
| \_ Example: Web Browser | 0:00:20 | REVIEWED | frame |
|
||||
| \_ Finding Text (Mouse-Driven GUI Interaction) | 0:01:10 | REVIEWED | frame |
|
||||
| \_ GUIs Change Over Time | 0:00:45 | REVIEWED | frame |
|
||||
| \_ Ctrl+F---Just Works | 0:00:25 | REVIEWED | frame |
|
||||
| \_ Muscle Memory | 0:00:40 | REVIEWED | fullframe |
|
||||
| \_ A Research Task | 0:00:25 | REVIEWED | fullframe |
|
||||
| \_ Executing the Research Task | 0:02:47 | REVIEWED | frame |
|
||||
| \_ GUIs of a Feather | 0:00:30 | REVIEWED | fullframe |
|
||||
| \_ Macro-Like Keyboard Instructions | 0:01:00 | REVIEWED | fullframe |
|
||||
|-------------------------------------------------------+----------+----------+------------|
|
||||
| \_ A New Perspective | 0:12:49 | REVIEWED | |
|
||||
| \_ Perspective Topics | | | |
|
||||
| \_ Secrets? | 0:01:10 | REVIEWED | fullframe |
|
||||
| \_ Lifting the Curtain | 0:00:35 | REVIEWED | frame |
|
||||
| \_ Text | 0:00:35 | REVIEWED | fullframe |
|
||||
| \_ Text is a Universal Interface | 0:01:19 | REVIEWED | fullframe |
|
||||
| \_ The Shell Command Prompt | 0:00:40 | REVIEWED | frame |
|
||||
| \_ Eliminating the Web Browser | 0:01:00 | REVIEWED | frame |
|
||||
| \_ Browser vs. =wget= Comparison | 0:00:15 | REVIEWED | frame |
|
||||
| \_ Finding Text on the Command Line | 0:01:00 | REVIEWED | frame |
|
||||
| \_ A More Gentle Reply | 0:01:00 | REVIEWED | frame |
|
||||
| \_ Writing to Files (Redirection) | 0:00:55 | REVIEWED | frame |
|
||||
| \_ Starting Our List | 0:01:00 | REVIEWED | fullframe |
|
||||
| \_ Command Refactoring | 0:02:05 | REVIEWED | fullframe |
|
||||
| \_ Again: Text is a Universal Interface | 0:00:20 | REVIEWED | againframe |
|
||||
| \_ Pipelines | 0:00:15 | REVIEWED | fullframe |
|
||||
| \_ Summary of the Unix Philosophy | 0:00:40 | REVIEWED | fullframe |
|
||||
|-------------------------------------------------------+----------+----------+------------|
|
||||
| \_ Program Composition | 0:09:10 | REVIEWED | |
|
||||
| \_ Composition Topics | | | |
|
||||
| \_ LP Sessions | 0:02:30 | REVIEWED | fullframe |
|
||||
| \_ Interactive, Incremental, Iterative Development | 0:01:10 | REVIEWED | fullframe |
|
||||
| \_ Discovering URLs | 0:02:15 | REVIEWED | fullframe |
|
||||
| \_ Go Grab a Coffee | 0:00:15 | REVIEWED | fullframe |
|
||||
| \_ Async Processes | 0:00:45 | REVIEWED | fullframe |
|
||||
| \_ Executable Shell Script and Concurrency | 0:01:30 | REVIEWED | fullframe |
|
||||
| \_ Execution Time | 0:00:45 | REVIEWED | frame |
|
||||
|-------------------------------------------------------+----------+----------+------------|
|
||||
| \_ More Examples | 0:09:52 | REVIEWED | |
|
||||
| \_ More Example Topics | | | |
|
||||
| \_ Resize Images | 0:00:30 | REVIEWED | frame |
|
||||
| \_ Password Generation | 0:00:45 | REVIEWED | frame |
|
||||
| \_ Password Manager | 0:01:39 | REVIEWED | frame |
|
||||
| \_ Remote Password Manager With 2FA | 0:01:30 | REVIEWED | frame |
|
||||
| \_ Taking Screenshots | 0:00:35 | REVIEWED | frame |
|
||||
| \_ Screenshot OCR | 0:01:00 | REVIEWED | frame |
|
||||
| \_ Full Circle | 0:02:24 | REVIEWED | fullframe |
|
||||
| \_ Getting Help | 0:01:30 | REVIEWED | frame |
|
||||
|-------------------------------------------------------+----------+----------+------------|
|
||||
| \_ Outro | | DEVOID | |
|
||||
| \_ Outro Topics | | | |
|
||||
|-------------------------------------------------------+----------+----------+------------|
|
||||
| \_ Thank You | 00:00:01 | | fullframe |
|
||||
| ITEM | DURATION | TODO | ENVIRONMENT |
|
||||
|-------------------------------------------------------+----------+----------+-------------|
|
||||
| Slides | 0:40:49 | LACKING | |
|
||||
|-------------------------------------------------------+----------+----------+-------------|
|
||||
| \_ Summary | | | |
|
||||
|-------------------------------------------------------+----------+----------+-------------|
|
||||
| \_ Introduction | 0:01:55 | REVIEWED | |
|
||||
| \_ Spoken Intro | 0:00:50 | REVIEWED | note |
|
||||
| \_ Choreographed Workflows | 00:00:20 | REVIEWED | fullframe |
|
||||
| \_ Practical Freedom | 0:00:45 | REVIEWED | fullframe |
|
||||
|-------------------------------------------------------+----------+----------+-------------|
|
||||
| \_ Practical Example: Web Browser | 0:07:03 | READY | |
|
||||
| \_ Browser Topics | | | |
|
||||
| \_ Example: Web Browser | 0:00:20 | READY | frame |
|
||||
| \_ Finding Text (Mouse-Driven GUI Interaction) | 0:01:00 | READY | frame |
|
||||
| \_ GUIs Change Over Time | 0:00:45 | READY | frame |
|
||||
| \_ Muscle Memory | 0:00:40 | READY | fullframe |
|
||||
| \_ A Research Task | 0:00:20 | READY | fullframe |
|
||||
| \_ Executing the Research Task | 0:02:24 | READY | frame |
|
||||
| \_ GUIs of a Feather | 0:00:35 | READY | fullframe |
|
||||
| \_ Macro-Like Keyboard Instructions | 0:01:00 | READY | fullframe |
|
||||
|-------------------------------------------------------+----------+----------+-------------|
|
||||
| \_ A New Perspective | 0:12:49 | REVIEWED | |
|
||||
| \_ Perspective Topics | | | |
|
||||
| \_ Secrets? | 0:01:10 | REVIEWED | fullframe |
|
||||
| \_ Lifting the Curtain | 0:00:35 | REVIEWED | frame |
|
||||
| \_ Text | 0:00:35 | REVIEWED | fullframe |
|
||||
| \_ Text is a Universal Interface | 0:01:19 | REVIEWED | fullframe |
|
||||
| \_ The Shell Command Prompt | 0:00:40 | REVIEWED | frame |
|
||||
| \_ Eliminating the Web Browser | 0:01:00 | REVIEWED | frame |
|
||||
| \_ Browser vs. =wget= Comparison | 0:00:15 | REVIEWED | frame |
|
||||
| \_ Finding Text on the Command Line | 0:01:00 | REVIEWED | frame |
|
||||
| \_ A More Gentle Reply | 0:01:00 | REVIEWED | frame |
|
||||
| \_ Writing to Files (Redirection) | 0:00:55 | REVIEWED | frame |
|
||||
| \_ Starting Our List | 0:01:00 | REVIEWED | fullframe |
|
||||
| \_ Command Refactoring | 0:02:05 | REVIEWED | fullframe |
|
||||
| \_ Again: Text is a Universal Interface | 0:00:20 | REVIEWED | againframe |
|
||||
| \_ Pipelines | 0:00:15 | REVIEWED | fullframe |
|
||||
| \_ Summary of the Unix Philosophy | 0:00:40 | REVIEWED | fullframe |
|
||||
|-------------------------------------------------------+----------+----------+-------------|
|
||||
| \_ Program Composition | 0:09:10 | REVIEWED | |
|
||||
| \_ Composition Topics | | | |
|
||||
| \_ LP Sessions | 0:02:30 | REVIEWED | fullframe |
|
||||
| \_ Interactive, Incremental, Iterative Development | 0:01:10 | REVIEWED | fullframe |
|
||||
| \_ Discovering URLs | 0:02:15 | REVIEWED | fullframe |
|
||||
| \_ Go Grab a Coffee | 0:00:15 | REVIEWED | fullframe |
|
||||
| \_ Async Processes | 0:00:45 | REVIEWED | fullframe |
|
||||
| \_ Executable Shell Script and Concurrency | 0:01:30 | REVIEWED | fullframe |
|
||||
| \_ Execution Time | 0:00:45 | REVIEWED | frame |
|
||||
|-------------------------------------------------------+----------+----------+-------------|
|
||||
| \_ More Examples | 0:09:52 | REVIEWED | |
|
||||
| \_ More Example Topics | | | |
|
||||
| \_ Resize Images | 0:00:30 | REVIEWED | frame |
|
||||
| \_ Password Generation | 0:00:45 | REVIEWED | frame |
|
||||
| \_ Password Manager | 0:01:39 | REVIEWED | frame |
|
||||
| \_ Remote Password Manager With 2FA | 0:01:30 | REVIEWED | frame |
|
||||
| \_ Taking Screenshots | 0:00:35 | REVIEWED | frame |
|
||||
| \_ Screenshot OCR | 0:01:00 | REVIEWED | frame |
|
||||
| \_ Full Circle | 0:02:24 | REVIEWED | fullframe |
|
||||
| \_ Getting Help | 0:01:30 | REVIEWED | frame |
|
||||
|-------------------------------------------------------+----------+----------+-------------|
|
||||
| \_ Outro | | DEVOID | |
|
||||
| \_ Outro Topics | | | |
|
||||
|-------------------------------------------------------+----------+----------+-------------|
|
||||
| \_ Thank You | 00:00:01 | | fullframe |
|
||||
#+END:
|
||||
|
||||
** REVIEWED Introduction [0/3]
|
||||
|
@ -278,7 +277,7 @@ To begin,
|
|||
let's start by exploring something most people are familiar with.
|
||||
|
||||
|
||||
** REVIEWED Practical Example: Web Browser [0/9]
|
||||
** READY Practical Example: Web Browser [8/8]
|
||||
*** Browser Topics [3/3] :noexport:
|
||||
This example is the main segue from GUIs into the utility of keybindings
|
||||
into shell, so it has to be compelling. I chose something that is
|
||||
|
@ -318,7 +317,7 @@ frequently done by users: visiting webpages and searching for text.
|
|||
text editor.
|
||||
- [X] But what if I had 10? 100? 1000? This is still tedious and slow.
|
||||
|
||||
*** REVIEWED Example: Web Browser :B_frame:
|
||||
*** READY Example: Web Browser :B_frame:
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: frame
|
||||
:END:
|
||||
|
@ -341,7 +340,7 @@ This is a screenshot of an admittedly staged session,
|
|||
I chose a graphical web browser as an example because I feel that it's
|
||||
something that almost everyone can relate to using,
|
||||
|
||||
*** REVIEWED Finding Text (Mouse-Driven GUI Interaction) :B_frame:
|
||||
*** READY Finding Text (Mouse-Driven GUI Interaction) :B_frame:
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: frame
|
||||
:END:
|
||||
|
@ -372,12 +371,11 @@ I chose a graphical web browser as an example because I feel that it's
|
|||
**** Notes :B_noteNH:
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: noteNH
|
||||
:DURATION: 00:01:10
|
||||
:DURATION: 00:01:00
|
||||
:END:
|
||||
|
||||
If you are looking for something specific on a page,
|
||||
a common operation is to search for a word or phrase,
|
||||
like shown here.
|
||||
A common operation is to search for a word or phrase,
|
||||
like shown here.
|
||||
|
||||
Now,
|
||||
how exactly to do this with a mouse varies depending on what browser
|
||||
|
@ -407,7 +405,7 @@ There is no canonical representation for these instructions,
|
|||
because it involves clicking on elements that have no clear name to the
|
||||
user.
|
||||
|
||||
*** REVIEWED GUIs Change Over Time :B_frame:
|
||||
*** READY GUIs Change Over Time :B_frame:
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: frame
|
||||
:END:
|
||||
|
@ -448,10 +446,8 @@ Another difficult thing is: GUIs change over time.
|
|||
I'm sure many people here remember earlier versions of Firefox that didn't
|
||||
have the hamburger menu,
|
||||
where the Find menu option was in the Edit menu.
|
||||
By the way,
|
||||
those old menus do still exist if you hit Alt.
|
||||
I miss the old menus,
|
||||
because it /did/ make it easier to convey actions in text.
|
||||
Those old menus do still exist if you hit Alt.
|
||||
I miss the old menus.
|
||||
Saying "Go to Edit - Find" is pretty clear,
|
||||
and those menu positions were always in the same place across the entire
|
||||
desktop environment.
|
||||
|
@ -462,34 +458,11 @@ There's something that /hasn't/ changed over time---something
|
|||
that has been the same for /decades/!
|
||||
=Ctrl+F=.
|
||||
|
||||
*** REVIEWED Ctrl+F---Just Works :B_frame:
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: frame
|
||||
:END:
|
||||
|
||||
- Most GUI programs that offer search
|
||||
- Context-sensitive---Do The Right Thing
|
||||
|
||||
|
||||
**** Notes :B_noteNH:
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: noteNH
|
||||
:DURATION: 00:00:25
|
||||
:END:
|
||||
|
||||
When you type =Ctrl+F=,
|
||||
it immediately opens that search bar and gives focus to the textbox,
|
||||
so you can just start typing.
|
||||
Further,
|
||||
it works /in all major browsers/.
|
||||
Not only that,
|
||||
but =Ctrl+F= is so universal that it works /in nearly every GUI program that
|
||||
offers some type of search/!
|
||||
And it's /context-sensitive/---
|
||||
the program will just Do The Right Thing depending on where you are or
|
||||
what it is that you're doing!
|
||||
|
||||
*** REVIEWED Muscle Memory :B_fullframe:
|
||||
*** READY Muscle Memory :B_fullframe:
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: fullframe
|
||||
:END:
|
||||
|
@ -507,10 +480,6 @@ Visual \Rightarrow Tactile
|
|||
:DURATION: 00:00:40
|
||||
:END:
|
||||
|
||||
But there's something more profound that has happened here,
|
||||
that many users don't even think about.
|
||||
We have switched our mode of interaction.
|
||||
|
||||
With a mouse and a GUI,
|
||||
interaction is driven by visual indicators.
|
||||
The position of your hand on the mousepad or your fingers on a touchpad
|
||||
|
@ -520,7 +489,7 @@ The position of your hand on the mousepad or your fingers on a touchpad
|
|||
your /eyes/ provide the context.
|
||||
|
||||
But by hitting =Ctrl+F=,
|
||||
we've completely /changed/ how we interact with the system.
|
||||
we have switched our mode of interaction.
|
||||
It's now /tactile/.
|
||||
You associate a finger placement;
|
||||
a motion;
|
||||
|
@ -528,12 +497,11 @@ You associate a finger placement;
|
|||
with an action---finding
|
||||
something.
|
||||
You develop muscle memory.
|
||||
You _can_ trigger this feature with your eyes closed.
|
||||
|
||||
/<Repeatedly make motion with hand and fingers like a madman during the
|
||||
above paragraph.>/
|
||||
|
||||
*** REVIEWED A Research Task :B_fullframe:
|
||||
*** READY A Research Task :B_fullframe:
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: fullframe
|
||||
:END:
|
||||
|
@ -549,7 +517,7 @@ find all that /do not/ contain ``free software''
|
|||
**** Notes :B_noteNH:
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: noteNH
|
||||
:DURATION: 00:00:25
|
||||
:DURATION: 00:00:20
|
||||
:END:
|
||||
|
||||
Let's explore a fairly simple research task together.
|
||||
|
@ -562,7 +530,7 @@ And I want you to come up with a list of the webpages that /do not/ contain
|
|||
|
||||
How might we approach this problem as an average user?
|
||||
|
||||
*** REVIEWED Executing the Research Task :B_frame:
|
||||
*** READY Executing the Research Task :B_frame:
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: frame
|
||||
:END:
|
||||
|
@ -593,7 +561,7 @@ _Mouse_
|
|||
******* Notes :B_noteNH:
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: noteNH
|
||||
:DURATION: 00:01:30
|
||||
:DURATION: 00:01:15
|
||||
:END:
|
||||
|
||||
/(Perhaps I should demonstrate this right away rather than reading through
|
||||
|
@ -617,9 +585,9 @@ Now, for each tab,
|
|||
If we /do not/ see a result,
|
||||
we move our mouse to the location bar,
|
||||
click on it to highlight the URL,
|
||||
right-click on it to copy it to our clipboard,
|
||||
right-click, copy,
|
||||
click on the text editor to give it focus,
|
||||
right-click on the editor and click on ``Paste'' to insert the URL,
|
||||
right-click on the editor, ``Paste'',
|
||||
and then hit the return key to move to the next line.
|
||||
We then go back to the web browser.
|
||||
If we /do/ see a result,
|
||||
|
@ -641,8 +609,8 @@ All this clicking around doesn't really /feel/ like we're melding mind and
|
|||
machine, does it?
|
||||
|
||||
What if we used our =Ctrl+F= trick?
|
||||
That saves us a couple clicks.
|
||||
But what if we could save even more clicks?
|
||||
That saves us a couple clicks,
|
||||
but can we do better?
|
||||
|
||||
***** Keyboard :B_column:
|
||||
:PROPERTIES:
|
||||
|
@ -667,7 +635,7 @@ _Keyboard_
|
|||
******* Notes :B_noteNH:
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: noteNH
|
||||
:DURATION: 00:01:20
|
||||
:DURATION: 00:01:10
|
||||
:END:
|
||||
|
||||
Fortunately we have /many/ more keybindings at our disposal!
|
||||
|
@ -686,9 +654,7 @@ If we /do not/ find a match,
|
|||
we're ready to copy the URL.
|
||||
Hitting =Ctrl+L= will take us to the location bar and highlight the URL.
|
||||
We can then hit =Ctrl+C= to copy the URL to the clipboard.
|
||||
=Alt+Tab= will usually switch between windows of running programs
|
||||
in the order of most recently focused.
|
||||
So hitting it once should take us to our text editor.
|
||||
=Alt+Tab= to go to our text editor.
|
||||
We then paste with =Ctrl+V= and hit return to insert a newline.
|
||||
We can then go back to the web browser by hitting =Alt+Tab= again.
|
||||
We then close the tab with =Ctrl+W=.
|
||||
|
@ -709,7 +675,7 @@ We don't have to seek out our actions each time in the GUI---the
|
|||
operations are always at our fingertips,
|
||||
literally.
|
||||
|
||||
*** REVIEWED GUIs of a Feather :B_fullframe:
|
||||
*** READY GUIs of a Feather :B_fullframe:
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: fullframe
|
||||
:END:
|
||||
|
@ -723,7 +689,7 @@ Browser, Editor, Window Manager, OS, \ldots
|
|||
**** Notes :B_noteNH:
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: noteNH
|
||||
:DURATION: 00:00:30
|
||||
:DURATION: 00:00:35
|
||||
:END:
|
||||
|
||||
Another powerful benefit of this approach is---these
|
||||
|
@ -736,10 +702,14 @@ If you use Windows instead of GNU/Linux---which
|
|||
I strongly discourage, but if you do---then
|
||||
it'll work the same.
|
||||
|
||||
Certain keybindings are ubiquitous---if
|
||||
you hit =Ctrl+F= in most GUI programs that support searching,
|
||||
you'll get some sort of context-specific search.
|
||||
|
||||
Let's look at those keybindings a bit more concisely,
|
||||
since that last slide was a bit of a mess.
|
||||
|
||||
*** REVIEWED Macro-Like Keyboard Instructions :B_fullframe:
|
||||
*** READY Macro-Like Keyboard Instructions :B_fullframe:
|
||||
:PROPERTIES:
|
||||
:BEAMER_env: fullframe
|
||||
:END:
|
||||
|
|
Loading…
Reference in New Issue