wezm.net/output/technical/2017/09/rust-tools-talk/slides/index.html

366 lines
13 KiB
HTML
Raw Permalink Normal View History

2017-09-30 02:10:36 +00:00
<!doctype html>
<html lang="en" prefix="og: http://ogp.me/ns#">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Great Rust Tools</title>
<!-- CSS WebSlides -->
<link rel="stylesheet" type='text/css' media='all' href="static/css/webslides.css">
<!-- Optional - CSS SVG Icons (Font Awesome) -->
<link rel="stylesheet" type='text/css' media='all' href="static/css/svg-icons.css">
<!-- FAVICONS -->
<!-- <link rel="shortcut icon" sizes="16x16" href="static/images/favicons/favicon.png"> -->
<!-- <link rel="shortcut icon" sizes="32x32" href="static/images/favicons/favicon-32.png"> -->
<!-- <link rel="apple-touch-icon icon" sizes="76x76" href="static/images/favicons/favicon-76.png"> -->
<!-- <link rel="apple-touch-icon icon" sizes="120x120" href="static/images/favicons/favicon-120.png"> -->
<!-- <link rel="apple-touch-icon icon" sizes="152x152" href="static/images/favicons/favicon-152.png"> -->
<!-- <link rel="apple-touch-icon icon" sizes="180x180" href="static/images/favicons/favicon-180.png"> -->
<!-- <link rel="apple-touch-icon icon" sizes="192x192" href="static/images/favicons/favicon-192.png"> -->
<!-- Android -->
<meta name="mobile-web-app-capable" content="yes">
<meta name="theme-color" content="#333333">
<style type="text/css">
body {
font-family: 'Roboto', 'San Francisco', helvetica, arial, sans-serif;
font-family: 'Interface', 'TeX Gyre Heros', sans-serif;
}
pre,
code {
font-family: 'PragmataPro Mono', monospace;
}
.bullets {
margin-top: 1em;
}
.bullets li {
font-size: 4rem;
line-height: 1.25em;
margin-bottom: 0.75em;
}
.text-intro {
font-size: 4rem;
}
h1 {
margin-bottom: 1em;
}
</style>
</head>
<body>
<main role="main">
<article id="webslides">
<!-- Quick Guide
- Each parent <section> in the <article id="webslides"> element is an individual slide.
- Vertical sliding = <article id="webslides" class="vertical">
- <div class="wrap"> = container 90% / <div class="wrap size-50"> = 45%;
-->
<section>
<div class="aligncenter">
<h1 class="text-landing">Supporting Rust by using Rust</h1>
<p class="text-intro">An exploration of great command line tools</p>
<p>Melbourne Rust Meetup<br> Tue 26 Sep 2017</p>
</div>
<footer>
<div class="wrap">
<p>
<span class="alignleft">
Wesley Moore
</span>
<span class="alignright">
<a href="#" title="Twitter">
<svg class="fa-twitter" viewBox="0 0 512 512">
<path d="m481 117c-13 18-28 34-46 47 0 3 0 7 0 12 0 25-3 50-11 74-7 25-18 49-33 71-14 23-32 43-52 61-21 17-45 31-74 41-29 11-60 16-92 16-52 0-99-14-142-42 7 1 14 2 22 2 43 0 81-14 115-40-20 0-38-6-54-18-16-12-27-27-33-46 7 1 13 2 18 2 8 0 16-1 24-4-21-4-39-15-53-31-14-17-21-37-21-59l0-1c13 7 27 11 42 11-13-8-23-19-30-32-8-14-11-29-11-44 0-17 4-33 12-47 23 28 51 51 84 68 33 17 69 27 107 29-2-8-3-15-3-22 0-25 9-47 27-65 18-18 40-27 66-27 26 0 49 10 67 29 21-4 40-11 59-22-7 22-21 39-41 51 18-2 35-7 53-14z"></path>
</svg>
@wezm
</a>
</span>
</p>
</div>
</footer>
</section>
<!--
<section>
<div class="wrap ">
<h1><strong>Outline</strong></h1>
<p class="text-intro">WebSlides makes HTML presentations easy.<br>
Just the essentials and using lovely CSS.
</p>
<ul>
<li>Spreading Rust by using Rust</li>
<li>
Tools
<ul>
<li>watchexec</li>
<li>fd</li>
<li>fe</li>
<li>exa</li>
<li>ripgrep</li>
<li>alt</li>
<li>tac</li>
<li>dot</li>
<li>titlecase</li>
<li>ion</li>
</ul>
</li>
<li>How you can help</li>
</ul>
</div>
</section>
-->
<section>
<div class="wrap aligncenter">
<h1><strong>Rust is great</strong></h1>
</div>
</section>
<section>
<div class="wrap aligncenter">
<h1><strong>What is a Rust tool?</strong></h1>
</div>
</section>
<section>
<div class="wrap ">
<h1><strong>Why Rust tools are great</strong></h1>
<ul class="flexblock features">
<li>
<div>
<h2>
<svg class="fa-bolt">
<use xlink:href="#fa-bolt"></use>
</svg>
Performance
</h2>
Fast and efficient with resources
</div>
</li>
<li>
<div>
<h2>
<svg class="fa-minus-circle">
<use xlink:href="#fa-minus-circle"></use>
</svg>
No runtime
</h2>
Few runtime dependencies
</div>
</li>
<li>
<div>
<h2>
<svg class="fa-laptop">
<use xlink:href="#fa-laptop"></use>
</svg>
Cross Platform
</h2>
Supports all major platforms
</div>
</li>
</div>
</section>
<section>
<div class="wrap ">
<h1><strong>Why Rust tools are great</strong></h1>
<ul class="flexblock features">
<li>
<div>
<h2>
<svg class="fa-terminal">
<use xlink:href="#fa-terminal"></use>
</svg>
Easy to install
</h2>
Package manager or <code>cargo install</code>
</div>
</li>
<li>
<div>
<h2>
<svg class="fa-user">
<use xlink:href="#fa-user"></use>
</svg>
Usable
</h2>
Provide a nice interface
</div>
</li>
</ul>
</div>
</section>
<section>
<div class="wrap aligncenter ">
<h1><strong>Demos</strong></h1>
</div>
</section>
<section>
<div class="wrap aligncenter ">
<h1><strong>watchexec</strong></h1>
<p class="text-intro">Executes commands in response to file modifications</p>
<p class="text-intro"><a href="https://github.com/mattgreen/watchexec">https://github.com/mattgreen/watchexec</a></p>
</div>
</section>
<section>
<div class="wrap aligncenter ">
<h1><strong>fd</strong></h1>
<p class="text-intro">A simple, fast and user-friendly alternative to <code>find</code></p>
<p class="text-intro"><a href="https://github.com/sharkdp/fd">https://github.com/sharkdp/fd</a></p>
</div>
</section>
<section>
<div class="wrap aligncenter ">
<h1><strong>fe</strong></h1>
<p class="text-intro">A super-fast and easy to use command line fuzzy file searcher</p>
<p class="text-intro"><a href="https://github.com/btipling/fe">https://github.com/btipling/fe</a></p>
</div>
</section>
<section>
<div class="wrap aligncenter ">
<h1><strong>exa</strong></h1>
<p class="text-intro">A modern replacement for <code>ls</code></p>
<p class="text-intro"><a href="https://the.exa.website/">https://the.exa.website/</a></p>
</div>
</section>
<section>
<div class="wrap aligncenter ">
<h1><strong>ripgrep</strong></h1>
<p class="text-intro">The usability of The Silver Searcher with the raw speed of [GNU] <code>grep</code>.</p>
<p class="text-intro"><a href="https://github.com/BurntSushi/ripgrep/">https://github.com/BurntSushi/ripgrep/</a></p>
</div>
</section>
<section>
<div class="wrap aligncenter ">
<h1><strong>alt</strong></h1>
<p class="text-intro">Command line tool to find alternate files</p>
<p class="text-intro"><a href="https://github.com/uptech/alt">https://github.com/uptech/alt</a></p>
</div>
</section>
<section>
<div class="wrap aligncenter ">
<h1><strong>tac</strong></h1>
<p class="text-intro">A high-performance, cross-platform file reverse utility</p>
<p class="text-intro"><a href="https://github.com/neosmart/tac">https://github.com/neosmart/tac</a></p>
</div>
</section>
<section>
<div class="wrap aligncenter ">
<h1><strong>dot</strong></h1>
<p class="text-intro">Dot file management</p>
<p class="text-intro"><a href="https://github.com/ubnt-intrepid/dot">https://github.com/ubnt-intrepid/dot</a></p>
</div>
</section>
<section>
<div class="wrap aligncenter ">
<h1><strong>titlecase</strong></h1>
<p class="text-intro">Capitalise text according to a style guide</p>
<p class="text-intro"><a href="https://github.com/wezm/titlecase">https://github.com/wezm/titlecase</a></p>
</div>
</section>
<section>
<div class="wrap aligncenter ">
<h1><strong>ion</strong></h1>
<p class="text-intro">A shell written in Rust for Redox and Linux</p>
<p class="text-intro"><a href="https://github.com/redox-os/ion">https://github.com/redox-os/ion</a></p>
</div>
</section>
<section>
<div class="wrap ">
<h1><strong>You can build tools too!</strong></h1>
<ul class="bullets">
<li>If you use a tool that is frustrating to install due to runtime
requirements or dependency issues, perhaps it's a candidate for a Rust
version.
</li>
<li>Maybe you use a tool that is error prone or could benefit from fearless
concurrency.
</li>
</ul>
</div>
</section>
<section>
<div class="wrap ">
<h1><strong>Conclusion</strong></h1>
<ul class="bullets">
<li>You can help spread Rust by using tools written in Rust</li>
<li>There's already a stack of great tools out there</li>
<li>Lots of opportunity to write your own tools</li>
</ul>
</div>
</section>
<section>
<div class="wrap aligncenter ">
<h1><strong>Questions?</strong></h1>
<br>
<p class="text-intro">
Slides will be available at:<br>
<a href="http://wezm.net/talks/rust-tools">http://wezm.net/talks/rust-tools</a>
</p>
</div>
<footer>
<div class="wrap">
<p>
<span class="alignleft">
Wesley Moore
</span>
<span class="alignright">
<a href="#" title="Twitter">
<svg class="fa-twitter" viewBox="0 0 512 512">
<path d="m481 117c-13 18-28 34-46 47 0 3 0 7 0 12 0 25-3 50-11 74-7 25-18 49-33 71-14 23-32 43-52 61-21 17-45 31-74 41-29 11-60 16-92 16-52 0-99-14-142-42 7 1 14 2 22 2 43 0 81-14 115-40-20 0-38-6-54-18-16-12-27-27-33-46 7 1 13 2 18 2 8 0 16-1 24-4-21-4-39-15-53-31-14-17-21-37-21-59l0-1c13 7 27 11 42 11-13-8-23-19-30-32-8-14-11-29-11-44 0-17 4-33 12-47 23 28 51 51 84 68 33 17 69 27 107 29-2-8-3-15-3-22 0-25 9-47 27-65 18-18 40-27 66-27 26 0 49 10 67 29 21-4 40-11 59-22-7 22-21 39-41 51 18-2 35-7 53-14z"></path>
</svg>
@wezm
</a>
</span>
</p>
</div>
</footer>
</section>
</article>
<!-- end article -->
</main>
<!-- end main -->
<!-- A global footer
<footer role="contentinfo">
<div class="wrap">
<p>An <a href="https://github.com/webslides/webslides">open source solution</a>, by <a href="https://twitter.com/webslides">@webslides</a>.</p>
</div>
</footer> -->
<!-- Required -->
<script src="static/js/webslides.js"></script>
<script>
window.ws = new WebSlides();
</script>
<!-- OPTIONAL - svg-icons.js (fontastic.me - Font Awesome as svg icons) -->
<script defer src="static/js/svg-icons.js"></script>
</body>
</html>