pipecut - slides from presentation at meetbsd california 2014

21

Upload: davidwmaxwell

Post on 02-Jul-2015

859 views

Category:

Software


0 download

DESCRIPTION

Pipecut is a new Unix utliity for interactively developing command pipelines. A proof-of-concept version was demonstrated at MeetBSD California, Nov 1st, 2014

TRANSCRIPT

Page 1: Pipecut - slides from presentation at MeetBSD California 2014
Page 2: Pipecut - slides from presentation at MeetBSD California 2014

Note: About these slides

• Original slides from the presentation follow

– The slides are light on content, because I present without reading the slides. You probably want to watch the video instead of reading these. The slides were originally made in Inkscape / Jessyink

• Past the end, I’ve included a few additional slides with details about pipecut that were demonstrated interactively

Page 3: Pipecut - slides from presentation at MeetBSD California 2014
Page 4: Pipecut - slides from presentation at MeetBSD California 2014
Page 5: Pipecut - slides from presentation at MeetBSD California 2014
Page 6: Pipecut - slides from presentation at MeetBSD California 2014
Page 7: Pipecut - slides from presentation at MeetBSD California 2014
Page 8: Pipecut - slides from presentation at MeetBSD California 2014
Page 9: Pipecut - slides from presentation at MeetBSD California 2014
Page 10: Pipecut - slides from presentation at MeetBSD California 2014
Page 11: Pipecut - slides from presentation at MeetBSD California 2014
Page 12: Pipecut - slides from presentation at MeetBSD California 2014

(Switch to a shell and show example commands)

Page 13: Pipecut - slides from presentation at MeetBSD California 2014
Page 14: Pipecut - slides from presentation at MeetBSD California 2014

Additional information about pipecut

• The previous slide was the end of the deck used for the presentation at MeetBSD, it was followed by a demonstration of the tool.

• The code for pipecut will be hosted here:

• https://code.google.com/p/pipecut/

• Project homepage:

• http://www.pipecut.org/

Page 15: Pipecut - slides from presentation at MeetBSD California 2014

What is pipecut?

• A tool for developing Unix pipeline command lines more quickly and easily

• An interactive, vi-like curses interface that lets you see the data and edit the command pipeline on the same screen (no need to run and quit more/less over and over again)

• A way to save useful commands and recall them later, or share them with others

Page 16: Pipecut - slides from presentation at MeetBSD California 2014

How does pipecut make commandlinedevelopment faster & easier? 1/2

• Single-keypress hotkeys for adding common Unix commands

• Real-time highlighting of matches while typing regular expressions

• The ability to see the data transformation applied instantly as you add a ‘blade’ on the command line. See just one screenful, or process the entire data file

• The ability to browse the state of the data at any stage by using the cursor keys (left and right) to ‘scrub’ through the ‘blades’

Page 17: Pipecut - slides from presentation at MeetBSD California 2014

How does pipecut make commandlinedevelopment faster & easier? 2/2

• Works with every existing Unix command by using pipe(2) and treating it as a black-box – just works better with built-in commands

• Optionally, start with your familiar environment on the command line, and run history | pipecut to take your pipeline into the pipecut environment

• Give a ‘toolset’ and name and description, and it gets saved in your SQLite toolbox for use again later

• With one keypress, generate a shell script that executes your toolset.

Page 18: Pipecut - slides from presentation at MeetBSD California 2014

What else will pipecut do in the future? 1/3

• Generate code that runs your toolset in other target languages.

• Generate its own regression tests by comparing internal/external command implementations and generated code results

• Provide accelerated implementations for command combinations such as ‘sort | uniq –c | sort –nr’ where a counted hashmap can be more efficient than standalone commands without context of how the data will be processed next (executing in pipecut, or in generated code)

Page 19: Pipecut - slides from presentation at MeetBSD California 2014

What else will pipecut do in the future? 2/3

• Add interactive support for more utilities’ arguments (Regex, field-references, byte-references)

• Static analysis of regular expressions (e.g. highlight syntactical and semantic errors)

• Optimization of pipeline display to users’ tastes (e.g. egrep –v ‘foo’ | egrep –v ‘bar’ vs egrep –v ‘foo|bar’ )

• Remappable keyboard commands

Page 20: Pipecut - slides from presentation at MeetBSD California 2014

What else will pipecut do in the future? 3/3

• Interactive command help

• Possess a deep understanding of command line options on each utility

• Allow user to force Regex highlighting mode while typing black-box commands

Page 21: Pipecut - slides from presentation at MeetBSD California 2014

Pipecut

• The code for pipecut will be hosted here:

• https://code.google.com/p/pipecut/

• Project homepage:

• http://www.pipecut.org/

• Target for first release – Dec 24th, 2014