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
Mike Gerwitz 2019-03-20 23:49:14 -04:00
parent 7d475a0ded
commit f13220e816
Signed by: mikegerwitz
GPG Key ID: 8C917B7F5DC51BA2
1 changed files with 94 additions and 124 deletions

View File

@ -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: