Skip to content

Commit

Permalink
Publish bonus_7. (#62)
Browse files Browse the repository at this point in the history
  • Loading branch information
chriskrycho authored Sep 10, 2016
1 parent 593346a commit cd5d227
Show file tree
Hide file tree
Showing 4 changed files with 352 additions and 4 deletions.
52 changes: 52 additions & 0 deletions docs/bonus-7-script.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Katas---learning by doing

## Intro

Hello, I'm Chris Krycho, and this is the New Rustacean podcast---a show about learning the Rust programming language. This is *Bonus episode 7: Katas---learning by doing.*

## News and follow-up

First, an apology a bit of explanation for the delay between episodes! In the last 10 days, I've traveled something like 4,800 miles for a conference and a wedding. There's are a couple of reasons I'm not at this year's RustConf or Rust Belt Rust conferences, and one of the big ones is this is too much travel! Gladly, the rest of the year is *much* slower, and things should normalize pace-wise from here.

Now, a couple quick bits of news and updates: First, literally *as I record*, the first RustConf is going on! Video from the conference will be made available after the fact, and you can bet I'll be watching it. One particularly fun bit related to *this* show---as you may recall: Raph Levien is presenting on his work on the Xi editor. I'm particularly excited about that talk.

Second, a couple neat things from around the community more generally:

- I mentioned Claudia Doppioslash's work on gaming and Rust in a previous episode; now she and a few others have launched arewegameyet.com, which highlights the state of tools for building games in Rust.
- That reminds me: if you haven't yet, take a look at areweideyet.com and arewewebyet.org to see the state of IDE support and web development respectively in Rust.

Third, some updates from core:

- There's a great discussion around direction and vision for the Rust language in 2017 on the Rust internals forum, which I'll link. Lots of good discussion about where and how to focus efforts to improve the language's adoption---you should read it and chime in!
- Early, early, alpha-level support for incremental compilation has landed in the nightly builds of the compiler, and support for that with Cargo is being built out now---some of the long-expected fruits of MIR landing. That should help compile times a *lot*.

## Katas

- I've been interested in Elm for a while (and why: ML-like, use JS at work, guarantees around it, etc.)
- I've gone back to same problem in JS repeatedly
- Idea isn't new to me: "katas" are a thing out there
- The actual problem isn't hard, and that's a big part of what makes katas useful. The point isn't so much the problem---which you can figure out how to solve---as figuring out how to solve it *well* in *this* language.
- Going back to it as you become more familiar with the language, or as you pick up new ideas lets you apply newfound knowledge while not worrying about trying to understand the *problem*.
- So I did this "pizza test" with Elm. It took me a couple hours, because I was learning the language and its tooling and how the compiler works and so on
- Then I started in on it it on an even broader scale with Rust. Broader how?
- Elm and JS are already in-browser setups. Rust is not.
- Pull in a bunch of crates:
- Hyper for HTTP requests
- Serde for deserializing JSON
- Pencil for serving the actual rendered page
- handlebars-rust for simple HTML templates
- Why? To get a feel for those crates as well as for what solving *these* problems in a Rustic way feels like, just as I was sorting through it in Elm.

The best ways to learn things in programming, in my experience are to *do* them, and to *teach* them. As I said in the very first episode of the show---almost a year ago, now!---that latter bit is one big reasons I'm making the podcast. It's helping *me* keep learning Rust while very busy with other things.

## Outro -- sponsors and following

Thanks as always to the sponsors who help make the show possible! This month, the sponsors included Chris Palmer, Daniel Collin, Raph Levien, Stephen Murawksi, and Vesa Khailavirta for sponsoring the show this month! You can see a full list of sponsors in the show notes, and the top tier of sponsors on a dedicated page on the website as well.

If you're interested in sponsoring the show, you can set up recurring contributions at Patreon.com/newrustacean, or one-off contributions at a variety of other services listed at the show website: newrustacean.com, along with links to the bits I discussed on the episode.

You can also follow the show on Twitter \@newrustacean, or follow me there \@chriskrycho. If you enjoyed the show, please help *others* find the show by rating and reviewing it on iTunes, recommending it in another podcast directory, sharing it online, or just telling a friend!

Also, please do respond on social media, in the threads for the episode on the Rust user forum or on Reddit, or via email at [email protected]. I love hearing from you!

Until next time, happy coding!
166 changes: 162 additions & 4 deletions resources/feed.xml
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
<channel>
<title>New Rustacean</title>
<link>http://newrustacean.com</link>
<description>A podcast about learning the Rust programming language—from scratch!</description>
<generator>Feeder 3 3.2.7(2785); Mac OS X Version 10.11.6 (Build 15G31) http://reinventedsoftware.com/feeder/</generator>
<generator>Feeder 3 3.2.7(2785); Mac OS X Version 10.12 (Build 16A320) http://reinventedsoftware.com/feeder/</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<language>en</language>
<copyright>2015 Chris Krycho</copyright>
<managingEditor>[email protected] (Chris Krycho)</managingEditor>
<webMaster>[email protected] (Chris Krycho)</webMaster>
<pubDate>Sat, 20 Aug 2016 12:18:12 -0400</pubDate>
<lastBuildDate>Sat, 20 Aug 2016 12:18:13 -0400</lastBuildDate>
<pubDate>Sat, 10 Sep 2016 13:50:31 -0400</pubDate>
<lastBuildDate>Sat, 10 Sep 2016 13:50:32 -0400</lastBuildDate>
<image>
<url>http://newrustacean.com/podcast.png</url>
<title>New Rustacean</title>
Expand All @@ -38,6 +38,164 @@
<itunes:category text="Education">
<itunes:category text="Training"/>
</itunes:category>
<item>
<title>Bonus 7: Katas—or: learning by doing</title>
<link>http://newrustacean.com/show_notes/bonus/_7/</link>
<description><![CDATA[<p>Katas—or: learning by doing</p>
<h2 id="notes">Notes</h2>
<p>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.</p>
<h2 id="links">Links</h2>
<ul>
<li><a href="http://arewegameyet.com">AreWeGameYet</a></li>
<li><a href="https://areweideyet.com">AreWeIDEYet</a></li>
<li><a href="http://www.arewewebyet.org">AreWeWebYet</a></li>
<li><a href="https://internals.rust-lang.org/t/setting-our-vision-for-the-2017-cycle/3958">Setting our vision for the 2017 cycle</a></li>
<li><a href="https://blog.rust-lang.org/2016/09/08/incremental.html">Incremental Compilation</a></li>
<li><code>cargo-incremental</code>:
<ul>
<li><a href="https://internals.rust-lang.org/t/want-to-help-develop-tool-for-testing-incremental-compilation/3963">internals post</a></li>
<li><a href="https://github.com/nikomatsakis/cargo-incremental/">repo</a></li>
</ul></li>
<li><a href="http://elm-lang.org">Elm</a></li>
<li>Dave Thomas’ <a href="http://codekata.com">CodeKata</a></li>
<li>Crates I used in my Rust “kata”:
<ul>
<li>Hyper
<ul>
<li><a href="https://docs.rs/hyper/">docs</a></li>
<li><a href="https://crates.io/crates/hyper">crate</a></li>
<li><a href="https://github.com/hyperium/hyper">repo</a></li>
</ul></li>
<li>Serde
<ul>
<li><a href="https://docs.rs/serde/">docs</a></li>
<li><a href="https://crates.io/crates/serde">crate</a></li>
<li><a href="https://github.com/serde-rs/serde">repo</a></li>
</ul></li>
<li>Pencil (inspired by <a href="http://flask.pocoo.org">Flask</a>)
<ul>
<li><a href="https://docs.rs/pencil/">docs</a></li>
<li><a href="https://crates.io/crates/pencil">crate</a></li>
<li><a href="https://github.com/fengsp/pencil">repo</a></li>
</ul></li>
<li><code>handlebars-rust</code>:
<ul>
<li><a href="https://docs.rs/handlebars/">docs</a></li>
<li><a href="https://crates.io/crates/handlebars">crate</a></li>
<li><a href="https://github.com/sunng87/handlebars-rust">repo</a></li>
</ul></li>
</ul></li>
</ul>
<h2 id="sponsors">Sponsors</h2>
<ul>
<li>Aleksey Pirogov</li>
<li>Cameron Mochrie</li>
<li><a href="http://home.red-oxide.org/">Chris Palmer</a></li>
<li><a href="twitter.com/daniel_collin">Daniel Collin</a></li>
<li><a href="https://twitter.com/derekmorr">Derek Morr</a></li>
<li>Doug Reeves</li>
<li>Hamza Sheikh</li>
<li><a href="https://github.com/Limeth">Jakub “Limeth” Hlusička</a></li>
<li><a href="https://de.linkedin.com/in/juppm">Jupp Müller</a></li>
<li>Keith Gray</li>
<li>Lachlan Collins</li>
<li>Leif Arne Storset</li>
<li>Luca Schmid</li>
<li>Matthew Piziak</li>
<li>Micael Bergeron</li>
<li>Ovidiu Curcan</li>
<li><a href="https://pascalhertleif.de/">Pascal Hertleif</a></li>
<li>Ralph Giles (“rillian”)</li>
<li>Ralph “FriarTech” Loizzo</li>
<li>Raph Levien</li>
<li>reddraggone9</li>
<li>Ryan Ollos</li>
<li>Steven Murawksi</li>
<li>Vesa Kaihlavirta</li>
<li><a href="http://willroe.me">William Roe</a></li>
</ul>
<p>(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!)</p>
<h3 id="become-a-sponsor">Become a sponsor</h3>
<ul>
<li><a href="https://www.patreon.com/newrustacean">Patreon</a></li>
<li><a href="https://venmo.com/chriskrycho">Venmo</a></li>
<li><a href="https://www.dwolla.com/hub/chriskrycho">Dwolla</a></li>
<li><a href="https://cash.me/$chriskrycho">Cash.me</a></li>
<li><a href="https://flattr.com/profile/chriskrycho">Flattr</a></li>
<li><a href="https://paypal.me/chriskrycho">PayPal.me</a></li>
</ul>
<h2 id="contact">Contact</h2>
<ul>
<li>New Rustacean:
<ul>
<li>Twitter: <a href="https://www.twitter.com/newrustacean">@newrustacean</a></li>
<li>Email: <a href="mailto:[email protected]">[email protected]</a></li>
</ul></li>
<li>Chris Krycho
<ul>
<li>GitHub: <a href="https://github.com/chriskrycho">chriskrycho</a></li>
<li>Twitter: <a href="https://www.twitter.com/chriskrycho">@chriskrycho</a></li>
</ul></li>
</ul>
]]></description>
<pubDate>Sat, 10 Sep 2016 13:50:19 -0400</pubDate>
<enclosure url="http://www.podtrac.com/pts/redirect.mp3/cdn.newrustacean.com/bonus_7.mp3" length="7533006" type="audio/mpeg"/>
<guid isPermaLink="false">CEFB964C-E0C9-48FD-9EE6-06A0C1284CC8</guid>
<itunes:author>Chris Krycho</itunes:author>
<itunes:summary><![CDATA[Katas—or: learning by doing
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.
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
* Ovidiu Curcan
* Pascal Hertleif
* Ralph Giles (“rillian”)
* Ralph “FriarTech” Loizzo
* Raph Levien
* reddraggone9
* Ryan Ollos
* Steven Murawksi
* Vesa Kaihlavirta
* William Roe
(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!)
Become a sponsor
* Patreon.com/newrustacean
* Venmo.com/chriskrycho
* Dwolla.com/hub/chriskrycho
* Cash.me/$chriskrych
* Flattr.com/chriskrycho
* PayPal.me/chriskrycho
Contact
* New Rustacean:
* Twitter: @newrustacean
* Email: [email protected]
* Chris Krycho
* GitHub: chriskrycho
* Twitter: @chriskrycho]]></itunes:summary>
<itunes:duration>10:19</itunes:duration>
</item>
<item>
<title>Bonus 6: It doesn‘t have to be sexy</title>
<link>http://newrustacean.com/show_notes/bonus/_6/</link>
Expand Down
137 changes: 137 additions & 0 deletions src/bonus/_7.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
//! 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](http://www.podtrac.com/pts/redirect.mp3/cdn.newrustacean.com/bonus_7.mp3)
//! + [Ogg](http://www.podtrac.com/pts/redirect.ogg/cdn.newrustacean.com/bonus_7.ogg)
//!
//! <audio title="Katas---or: learning by doing" controls preload=metadata>
//! <source src="http://www.podtrac.com/pts/redirect.mp3/cdn.newrustacean.com/bonus_7.mp3">
//! <source src="http://www.podtrac.com/pts/redirect.ogg/cdn.newrustacean.com/bonus_7.ogg">
//! </audio>
//!
//!
//! 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
//! - Ovidiu Curcan
//! - [Pascal Hertleif]
//! - Ralph Giles ("rillian")
//! - Ralph "FriarTech" Loizzo
//! - Raph Levien
//! - reddraggone9
//! - Ryan Ollos
//! - Steven Murawksi
//! - Vesa Kaihlavirta
//! - [William Roe]
//!
//! [Chris Palmer]: http://home.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
//!
//! - [Patreon](https://www.patreon.com/newrustacean)
//! - [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: [[email protected]](mailto:[email protected])
//! - Chris Krycho
//! + GitHub: [chriskrycho](https://github.com/chriskrycho)
//! + Twitter: [@chriskrycho](https://www.twitter.com/chriskrycho)
1 change: 1 addition & 0 deletions src/bonus/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ pub mod _3;
pub mod _4;
pub mod _5;
pub mod _6;
pub mod _7;

0 comments on commit cd5d227

Please sign in to comment.