Plover

Hacking/typing/writing…

            at 200 words per minute

Speaker:

Ted Morin

Captioned by:

Mirabai Knight

GIF: Stanley Sakai

@morinted

www.tedmor.in

Ted Morin

introduce(person="Ted",
          to="Audience",
          reason="Plover")

Machines, left to right top to bottom:

Treal TR, Elan Cybra, Infinity Ergonomic, LightSpeed

Find it on Steam

- What is Stenography?
- How fast do we need to type?
- Steno layout and basics
- History of Open Steno
- Written in Python
- Future of steno (and you)

Table of Contents

Stenography (steno for short)

Two variants: written shorthand…

…and machine stenography

Phonetic > Orthographic

nauseous, cautious, conscious

naw-shs, caw-shs, con-shs

 

particular, particularly

p-lar, p-lar-l

1 chorded stroke vs 12 keystrokes

Less movement == SPEED!

I don't know, Ted, I type pretty fast.

- A skeptic

How does it work?

Thinking with Portals

think-ing w portal-s

thi-g w porl-s

THEUG W PORLS

What is Steno Good For?

  • Accessibility, #a11y
    • 1 in 5 Americans report hearing loss. 1 in 3 above 65 years.
    • People who don't speak can't easily communicate.
  • Typing speed
    • Double typing speed: many people type for work.
    • RSI concerns.
    • Personal note taking and chatting.

Coding in Steno

Learning Steno 10 Years Ago:

A walled garden of expensive proprietary choices.

$1000 to $4000

$1000s, renewed anually

1-7 years in college

Total:

Student loans galore

$

$

$

Learning Steno Today:

Libre software, free games, open community, free texts, cheap hardware.

 

Let's explore what changed.

Mirabai Knight

Joshua Lifton

PLOVER!!

Dolores

DLORS

Plover

PHROFR

Hesky Fisher

Zack Brown

My journey as

a typing enthusiast

ErgoDox

Tréal TR

Personal score chart from TypeRacer.com

How does Plover work?

- Pythonistas

from shorthand import stenography
stenography()
# DONE!
# ...I wish.
"""
We actually need:
- Input (Hardware)
- Plover (steno engine)
- Output (Emulated key strokes)
"""

Left to right, top to bottom: Quickfire NKRO keyboard, Charley's homemade breadboard machine, SOFT/HRUF, Infinity Ergonomic, Stenoboard

NKRO/anti-ghosting/full key rollover:

All keys on the keyboard can be registered at once. Most USB   keyboards support 6KRO or less.

- $50-100 depending on the model.

Recommended switches:

  light linear (Gateron Clears, Matias Reds, or Cherry Reds)

{ "PAOEU/TKPW*OT/A*PL": "PyGotham"
, "KHR-BG": "{#control(c)}"
, "SPHEUFBG": "{^awesomistically}"
, "HEU": "hi"
, "PHOPL": "mom"
, "KHREU": "{^ically}"
, "TED": "Ted"
, "PHRARL" : "particularly"
, "TK-F": "{>}def"
, "TKPWEUT/KR*R":
    "{^}git push origin HEAD:refs/for/master{#Return}"
, "SP*LT": "{#command(space)}"
, "PHR-FPLT": "Mr.{-|}"
, "...": "Plover comes with over 140,000 entries"
}

Steno contains quite a bit of logic:

User dictionaries, othography rules, output state

# Linux
from Xlib import X, XK, display
from Xlib.ext import xinput, xtest
from Xlib.ext.ge import GenericEventCode

# Windows
import ctypes
SendInput = ctypes.windll.user32.SendInput

# macOS
from Quartz import (
    CFMachPortCreateRunLoopSource,
    CFRunLoopAddSource,
    CFRunLoopGetCurrent,
    CFRunLoopRun,
    CFRunLoopStop,
    CGEventCreateKeyboardEvent,
    CGEventGetFlags,
    CGEventGetIntegerValueField,
    CGEventMaskBit,
    CGEventPost,
    CGEventSetFlags,
    CGEventSourceCreate,
    CGEventSourceGetSourceStateID,
    CGEventTapCreate,
    CGEventTapEnable,
    kCFRunLoopCommonModes,
    kCGEventFlagMaskAlternate,
    kCGEventFlagMaskCommand,
    kCGEventFlagMaskControl,
    kCGEventFlagMaskNonCoalesced,
    kCGEventFlagMaskShift,
    kCGEventKeyDown,
    kCGEventKeyUp,
    kCGEventSourceStateID,
    kCGEventTapOptionDefault,
    kCGHeadInsertEventTap,
    kCGKeyboardEventKeycode,
    kCGSessionEventTap,
)

Output: simulated keypresses

Image source: http://emojione.com/

"Emojis: loved by everyone except sane developers"

What About the Future?

  • Growing the community.
  • Supporting other languages.
  • Porting to Python 3.
  • Supporting more hardware.
  • Extending features to make steno more powerful than it has ever been.

OpenSteno.org

OpenSteno.org

 

Ted Morin, @morinted, www.tedmor.in

 

Special thanks to:

devs (Josh, Hesky, Mike, gcr, Brent, Benoit Pierre)

stenographers (Stanley Sakai, Mirabai Knight)

community (Charley, Nat, Sooty, Tim, and many more)

Plover

By Ted Morin

Plover

Plover is free software written in Python that enables you to type on a computer at over 200 words per minute. Plover brings machine stenography, an art older than computers, into everyone's hands. Plover's current lead developer, Ted Morin, will talk about why Plover was created, how it works, and explain the role stenography might have in the modern world, as it moves beyond transcription and into the hands of hackers.

  • 2,201