1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
//! Katas---or: learning by doing
//!
//!   - **Date:** September 10, 2016
//!   - **Subject:** Building (and celebrating) all the little, not-so-glorious
//!     pieces of the Rust ecosystem.
//!   - [**Audio**][mp3]
//!
//! [mp3]: https://www.podtrac.com/pts/redirect.mp3/cdn.newrustacean.com/file/newrustacean/bonus/7.mp3
//!
//! <audio style="width: 100%" title="Katas—or: learning by doing" controls preload=metadata src="https://www.podtrac.com/pts/redirect.mp3/cdn.newrustacean.com/file/newrustacean/bonus/7.mp3">
//!
//!
//! Notes
//! -----
//!
//! One of the best ways to learn is to pick a small problem you have already
//! internalized, and to do it again but in a new language or in a new way in a
//! language you already know.
//!
//!
//! Links
//! -----
//!
//!   - [AreWeGameYet]
//!   - [AreWeIDEYet]
//!   - [AreWeWebYet]
//!   - [Setting our vision for the 2017 cycle][vision]
//!   - [Incremental Compilation]
//!   - `cargo-incremental`:
//!       + [internals post]
//!       + [repo]
//!   - [Elm]
//!   - Dave Thomas' [CodeKata]
//!   - Crates I used in my Rust "kata":
//!       + Hyper
//!           * [docs][hyper-docs]
//!           * [crate][hyper-crate]
//!           * [repo][hyper-repo]
//!       + Serde
//!           * [docs][serde-docs]
//!           * [crate][serde-crate]
//!           * [repo][serde-repo]
//!       + Pencil (inspired by [Flask])
//!           * [docs][pencil-docs]
//!           * [crate][pencil-crate]
//!           * [repo][pencil-repo]
//!       + `handlebars-rust`:
//!           * [docs][handlebars-docs]
//!           * [crate][handlebars-crate]
//!           * [repo][handlebars-repo]
//!
//! [AreWeGameYet]: http://arewegameyet.com
//! [AreWeIDEYet]: https://areweideyet.com
//! [AreWeWebYet]: http://www.arewewebyet.org
//! [vision]: https://internals.rust-lang.org/t/setting-our-vision-for-the-2017-cycle/3958
//! [Incremental Compilation]: https://blog.rust-lang.org/2016/09/08/incremental.html
//! [internals post]: https://internals.rust-lang.org/t/want-to-help-develop-tool-for-testing-incremental-compilation/3963
//! [repo]: https://github.com/nikomatsakis/cargo-incremental/
//! [Elm]: http://elm-lang.org
//! [CodeKata]: http://codekata.com
//! [hyper-docs]: https://docs.rs/hyper/
//! [hyper-crate]: https://crates.io/crates/hyper
//! [hyper-repo]: https://github.com/hyperium/hyper
//! [serde-docs]: https://docs.rs/serde/
//! [serde-crate]: https://crates.io/crates/serde
//! [serde-repo]: https://github.com/serde-rs/serde
//! [Flask]: http://flask.pocoo.org
//! [pencil-docs]: https://docs.rs/pencil/
//! [pencil-crate]: https://crates.io/crates/pencil
//! [pencil-repo]: https://github.com/fengsp/pencil
//! [handlebars-docs]: https://docs.rs/handlebars/
//! [handlebars-crate]: https://crates.io/crates/handlebars
//! [handlebars-repo]: https://github.com/sunng87/handlebars-rust
//!
//!
//! Sponsors
//! --------
//!
//!   - Aleksey Pirogov
//!   - Cameron Mochrie
//!   - [Chris Palmer]
//!   - [Daniel Collin]
//!   - [Derek Morr]
//!   - Doug Reeves
//!   - Hamza Sheikh
//!   - [Jakub "Limeth" Hlusička]
//!   - [Jupp Müller]
//!   - Keith Gray
//!   - Lachlan Collins
//!   - Leif Arne Storset
//!   - Luca Schmid
//!   - Matthew Piziak
//!   - Micael Bergeron
//!   - Nils Tekampe
//!   - Ovidiu Curcan
//!   - [Pascal Hertleif]
//!   - Ralph Giles ("rillian")
//!   - Ralph "FriarTech" Loizzo
//!   - Raph Levien
//!   - reddraggone9
//!   - Ryan Ollos
//!   - Sean Jensen-Gray
//!   - Steven Murawski
//!   - Vesa Kaihlavirta
//!   - [William Roe]
//!
//! [Chris Palmer]: http://red-oxide.org/
//! [Daniel Collin]: twitter.com/daniel_collin
//! [Derek Morr]: https://twitter.com/derekmorr
//! [Jakub "Limeth" Hlusička]: https://github.com/Limeth
//! [Jupp Müller]: https://de.linkedin.com/in/juppm
//! [Pascal Hertleif]: https://pascalhertleif.de/
//! [William Roe]: http://willroe.me
//!
//! (Thanks to the couple people donating who opted out of the reward tier, as
//! well. You know who you are!)
//!
//! ### Become a sponsor
//!
//!   - <a href="https://www.patreon.com/newrustacean" rel="payment">Patreon</a>
//!   - [Venmo](https://venmo.com/chriskrycho)
//!   - [Dwolla](https://www.dwolla.com/hub/chriskrycho)
//!   - [Cash.me](https://cash.me/$chriskrycho)
//!   - [Flattr](https://flattr.com/profile/chriskrycho)
//!   - [PayPal.me](https://paypal.me/chriskrycho)
//!
//!
//! Contact
//! -------
//!
//!   - New Rustacean:
//!     + Twitter: [@newrustacean](https://www.twitter.com/newrustacean)
//!     + Email: [hello@newrustacean.com](mailto:hello@newrustacean.com)
//!   - Chris Krycho
//!     + GitHub: [chriskrycho](https://github.com/chriskrycho)
//!     + Twitter: [@chriskrycho](https://www.twitter.com/chriskrycho)