Better Off Using Exceptions?

Maybe, but only if your language demands it.

February 20, 2017Filed under Tech#fsharp#functional programming#rust#software developmentMarkdown source
February 15, 2017Filed under micro#elm#fsharp#functional programming#javascript#programming languages#rustMarkdown source

One of the biggest changes in my JavaScript from learning Rust/Elm/F♯/etc. is that I now think constantly about what can fail.

January 30, 2017Filed under micro#podcasting#programming languages#rustMarkdown source

Finishing the prep work for New Rustacean e018.

Have I mentioned lately that I love Rust? Because I really, really do.

January 08, 2017Filed under micro#podcasting#rustMarkdown source

I’m extremely excited to be adding a new format to New Rustacean: discussing good crates in the Rust ecosystem. Suggestions wanted!

Crates You Should Know: quick-xml—A pull-parser for reading and writing XML.

January 07, 2017Filed under micro#podcasting#rustMarkdown source

Started writing the script for the first “Crates You Should Know” episode of New Rustacean tonight. I’m pretty excited about adding this format to the repertoire.

December 30, 2016Filed under micro#lightning-rs#oss#rust#software developmentMarkdown source

Learning a bunch from Matt Brubeck’s lovely PR reducing allocations and copies on Lightning.

December 30, 2016Filed under micro#oss#rust#software developmentMarkdown source

Props to Jacob Finkelman for all his work helping me on this massive Rust documentation project today!

December 30, 2016Filed under micro#oss#rust#software developmentMarkdown source

One big personal upside to this documentation project: I’m going to know Rust a lot better before I’m done.

December 29, 2016Filed under micro#programming languages#rustMarkdown source

This is a great summary of what I enjoy about Rust: it just lets me get stuff done—quickly, usually elegantly, and it’s always speedy:

All the cool kids are writing @rustlang think pieces, so I wrote one too: Rust is about productivity: https://t.co/OPwfWfpVic

— nrc (@nick_r_cameron) December 30, 2016

December 29, 2016Filed under micro#programming languages#rust#software developmentMarkdown source

A thing I just learned: cargo doc --open: full, local docs for every dependency your Rust crate has.

Mind. blown.

December 26, 2016Filed under micro#lightning-rs#rust#software developmentMarkdown source

Setting up AppVeyor for Lightning so I can be sure everything works cross-platform. 🎉 But for the record: batch files are barbaric. 👎🏼

December 26, 2016Filed under micro#lightning-rs#rustMarkdown source

Another static site generator being build in Rust! One you can already use! Take a gander; you might find it to your tastes. 😃

HT: @mgattozzi

December 25, 2016Filed under micro#lightning-rs#rust#software development#yamlMarkdown source

This is fun: Lightning now loads the YAML configuration I defined. Doesn’t do much of anything with them, but it loads them!

(I’m developing Lightning totally in public, so you can follow along here.)

December 24, 2016Filed under micro#lightning-rs#rustMarkdown source

Just had my first experience of writing a lifetime-requiring function in Rust and inherently knowing exactly what lifetimes it needed.

December 24, 2016Filed under micro#rust#software development#text editorsMarkdown source

Tip for doing Rust dev in VS Code: check out this fork of RustyCode, which is currently more actively maintained.

December 23, 2016Filed under micro#lightning-rs#rustMarkdown source

One of the great joys in programming is when you start to feel even just a little bit fluent in a technology.

December 23, 2016Filed under micro#rustMarkdown source

I keep trying to read documentation about templating engines in Rust and getting distracted by e.g. restyling rustdoc output.

(That’s not a thing that’s happening, though I’d happily chip in if it were, just a thing that distracted me. Web Inspector.)

December 23, 2016Filed under micro#rust#software developmentMarkdown source

Your friendly reminder that docs.rs is an incredible piece of software that is invaluable for working with Rust.

The Itch

How typed functional programming is what I was looking for all along.

December 19, 2016Filed under tech#functional programming#javascript#rust#software developmentMarkdown source
December 18, 2016Filed under micro#programming languages#rust#typescriptMarkdown source

Spent a chunk of the afternoon figuring out how to implement Rust’s Result type in TypeScript. Pretty cool!

November 27, 2016Filed under micro#rust#software developmentMarkdown source

Two lessons from today’s Rust spelunking: the library team has done a fantastic job, and we need non-lexical, liveness-based lifetimes. (See this discussion by Niko Matsakis for some of the ideas there and why we need them.)

November 27, 2016Filed under micro#rust#software developmentMarkdown source

Pro-tip for dealing with HashMaps in Rust: the entry API is often your friend.

November 21, 2016Filed under micro#open-source software#rust#software developmentMarkdown source

Taking my own medicine :cough:—I just submitted a Rust PR documenting RFC #1623. 🎉

November 21, 2016Filed under micro#elm#rust#software developmentMarkdown source

Lots of compilers tell you “Foo is broken!” I love that both the Rust and Elm compilers try to explain why and how to fix it.

November 21, 2016Filed under micro#lightning-rs#rust#software developmentMarkdown source

One of the things I most enjoyed working more on Lightning this weekend: the Rust compiler is so helpful.

November 21, 2016Filed under micro#editor#rust#software developmentMarkdown source

Spent some time working on Rust stuff this weekend. The Rust plugins for VS Code and IntelliJ IDEA are really good.

November 16, 2016Filed under micro#rustMarkdown source

Minor Rust surprise (though namespaces help): std::io::Write and std::fmt::Write are not the same (and for good reason).

Using Rust for ‘Scripting’

With a bonus: cross-compiling from macOS to Windows!

November 14, 2016 (updated November 15, 2016)Filed under Tech#programming languages#rust#software developmentMarkdown source
October 30, 2016Filed under micro#lightning-rs#rustMarkdown source

Writing Rust just makes me super happy.

October 28, 2016Filed under micro#rust#travelMarkdown source

I’m simultaneously incredibly sad to be missing Rust Belt Rust and so relieved not to be traveling any more this year.

October 24, 2016Filed under micro#lightning-rs#rust#software developmentMarkdown source

Spent a good chunk of the evening working on this static site generator—by contributing to another library. #opensource software FTW.

October 24, 2016Filed under micro#lightning-rs#rust#software developmentMarkdown source

Discovered that Syntect can do highlighting for HTML as well as for editors. More Rust awesomeness.

October 23, 2016Filed under micro#lightning-rs#rust#software developmentMarkdown source

It looks my options for HTML templating in Rust are… quite varied. This is good!

October 22, 2016Filed under micro#lightning-rs#rust#software developmentMarkdown source

Curious: I noted during my drive back from vacation today that whenever other conscious thoughts lapsed, my Rust CMS project came to the fore.

October 21, 2016Filed under micro#lightning-rs#rust#software development#tweetstormMarkdown source

I originally posted this as a tweetstorm, but I’m treating this as the canonical and adding a tweet to the end of that “topic” linking back here. Indie web forever.


  • My online writing needs are weird. I have searched for years, and unfortunately… I need to write a custom CMS.

  • I thought briefly about hammering together what I need with Metalsmith.io and its plugins. But that would be a stopgap.

  • So the inevitable comes to pass: I commit to, however slowly, build the CMS I need.

    Probably in Rust—so it should be crazy fast.

  • If you want to follow along on this site generator/CMS adventure (it’ll move slowly), you can do so here.1

  • Status: looking at C bindings for Pandoc and thinking about implementing a Rust wrapper for libpandoc vs. shelling out to pandoc. 🤔

  • First pass: just going to shell out on the command line. Second pass… well, if speed is what I’m going for…

  • I’ve guessed this for a while, but I can confirm it now: Clap is a really fantastic command-line argument library.


  1. For posterity’s sake (ha!) it’s worth note that the original link here was to yassg-btwir not lightning-rs. I actually noted as much, writing:

    That repo name is for “Yet Another Static Site Generator (This One’s In Rust)” because I feel so creative today.

    Note the headdesk-worthy initialism failure: it should have been btoir not btwir. ¯\_(ツ)_/¯

October 08, 2016Filed under micro#rust#rust-and-swift#swift#writingMarkdown source

And, on evaluating that table… I need to pull about half of it out: too much code.

October 08, 2016Filed under micro#rust#rust-and-swift#swift#writingMarkdown source

This morning I… carefully built a 3⨉16 table comparing Rust and Swift syntax. Exciting, right? 🤓

Rust vs. React Native—What?

Tradeoffs, or: Speed and stability are for everyone

October 07, 2016Filed under Tech#f sharp#javascript#rust#software development#swiftMarkdown source
October 06, 2016Filed under micro#rust#rust-and-swift#swift#writingMarkdown source

Wrote ~500 words and nailed down a chapter’s structure this morning. Good start to the day!

October 02, 2016Filed under micro#rust#swiftMarkdown source

Wondering what it would take to build the Rust equivalent of Swift Playgrounds (which are like a REPL on steroids).

Any takers?

October 02, 2016Filed under micro#rust#rust-and-swift#swift#writingMarkdown source

Playing Harmy’s Unspecialized Star Wars for my girls while I write some more this morning. 💕

October 01, 2016Filed under micro#rust#rust-and-swift#swift#writingMarkdown source

Atom + the GitHub theme + Zen package = a pretty good technical writing environment.

August 04, 2016Filed under micro#programming languages#rust#rust-and-swift#swift#writingMarkdown source

I signed a contract today for a neat little writing project broadly related to my ongoing Rust and Swift series. Probably means a bit of a hiatus on the series itself, but there’s a lot of fun ahead. More on that as it develops.

July 30, 2016Filed under micro#relaxng#rust#software development#xmlMarkdown source

Spending my afternoon reading the RELAX NG XML schema language tutorial, so I can implement a parser for it in Rust. Just because, you ask? No, I’m not that much of a nerd. Suffice it to say that I have ulterior motives.

Rust and Swift (xviii)

Deinitialization: ownership semantics and automatic reference counting

July 24, 2016Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source
July 23, 2016Filed under micro#rust#software developmentMarkdown source

Fun things in Rust land: the code from the latest episode of New Rustacean, in Raph Levien’s Xi editor!

July 21, 2016Filed under micro#rustMarkdown source

Note to self: don’t forget to use the -j/--jobs flag when doing builds with Cargo. Parallel = faster when building a bunch of things.

July 16, 2016Filed under micro#javascript#rust#software developmentMarkdown source

I am trying to fix a bug in a Node.js back end I wrote 18 months ago. And I have never been so tempted in my life to rip out the entire Node back end and replace it with one written in Rust.

July 14, 2016Filed under micro#learning#programming languages#rust#software development#swiftMarkdown source

Things I did tonight:

  • Keep working on actually building a small app in Swift (not just playing with the language for little things, but starting to learn the macOS frameworks too).
  • Start writing New Rustacean e015.

Rust and Swift (xvii)

More on initializers!

June 30, 2016 (updated July 04, 2016)Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source
June 24, 2016Filed under micro#podcasting#rustMarkdown source

Recorded a fantastic New Rustacean interview with Raph Levien this afternoon. Part 1 should be up tonight!

June 22, 2016Filed under micro#elm#programming languages#rustMarkdown source

So I love the Rust compiler (and it’s improving all the time). But the Elm compiler is a revelation. Just… wow.

Vectors and Iterator Access in Rust

Be careful not to move things instead of borrowing them.

June 16, 2016Filed under Tech#rustMarkdown source

Rust and Swift (xvi)

Initialization: another area where Swift has a lot more going on than Rust.

June 07, 2016 (updated June 09, 2016)Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source
June 03, 2016Filed under micro#programming languages#rustMarkdown source
June 03, 2016Filed under micro#programming languages#rustMarkdown source

Here I am, at the end of the week off, and what am I doing? Writing a Rust RFC. Yep.

Rust and C++ function definitions

A small study in syntax and legibility.

June 03, 2016 (updated June 07, 2016)Filed under tech#cplusplus#programming languages#rustMarkdown source
May 31, 2016Filed under micro#podcasting#rustMarkdown source

When I podcast, I don’t do “just news.” I do “news I MEAN describe how MIR changes the Rust compiler flow”:

▶ New Rustacean News 1: One year and counting—on Rust a year in, including an overview of how the compiler works

May 31, 2016Filed under micro#podcasting#rustMarkdown source

Recorded another New Rustacean episode at last; it should be up this afternoon. Rust FTW!

And, me being me, this “news” episode ended up with a description of how the Rust compiler works. 🤓 It’ll post later!

May 30, 2016Filed under micro#listicles#rust#software developmentMarkdown source

I originally posted this as a tweetstorm, but I’m treating this as the canonical and adding a tweet to the end of that “topic” linking back here. Indie web forever.


  • Was able to write some Rust for myself (not just to figure something out for New Rustacean) for the first time in months tonight.
  • Feeling Rust under my fingertips again was really nice but (pun fully intended) I am so rusty right now.
  • But of course that’s just life. I’ve written gobs of JavaScript for work, of course, but the only non-work writing I’ve done has been actual writing of the “uses words and not just as keywords” variety.
  • So it was nice to write some Rust for fun tonight. Even if it took me a ridiculously long time to do something super simple.
May 22, 2016Filed under micro#podcasting#rustMarkdown source

Wrote ~1,000 words of the next New Rustacean episode—including a new (occasional) episode format on recent news in the Rust community!

May 18, 2016Filed under micro#programming languages#rust#swift#writingMarkdown source

Finally at a spot where I have both the time and the mental energy to pick back up my Rust and Swift series. Initializers, I’m coming for you.

May 10, 2016Filed under micro#programming languages#rust#talksMarkdown source

Wrote the first draft of my RustConf 2016 proposal. Because I don’t skip chances to chat about Rust. Not ever. You know that by now.

April 28, 2016Filed under micro#programming languages#rustMarkdown source

Also, I keep forgetting how incredible https://play.rust-lang.org is. Built-in ability to view not only the result of the code, but also the new mid-level intermediate representation (MIR), the LLVM IR, and the assembly? Amazing.

April 23, 2016Filed under micro#music#podcasting#rust#typographyMarkdown source

I’m totally working a reference to Daniel Spreadbury’s SMuFL work into a discussion of Rust’s Unicode support in New Rustacean e014.

(This has to be the nerdiest thing I’ve ever done. Even in context, this is over the top.)

April 07, 2016Filed under micro#programming languages#rustMarkdown source

I 💙 the Rust team. So much.

This is just fantastic.

March 19, 2016Filed under micro#rust#software development#swiftMarkdown source

Well, paper-writing today may have pushed me to the breaking point. An app idea that’s been bubbling for months… I think I’m going to start actually building pieces of it and learning for other bits this week.

March 15, 2016Filed under micro#cplusplus#programming languages#rustMarkdown source

I was reading some C++ yesterday, and I can’t put my finger on what it is about the language, but I just find it unbearably ugly. Rust’s syntax isn’t that different, but I don’t have the same visceral reaction. I wonder why that is?

Rust and Swift (xv)

Inheritance: a Swiftian specialty (for now).

March 12, 2016Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source

Rust and Swift (xiv)

Indexing and subscripts, or: traits vs. keywords again.

March 10, 2016Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source

Static Site Generators and Podcasting

Publishing podcasts the hard way.

February 28, 2016Filed under tech#podcasting#python#rust#software developmentMarkdown source

Rust and Swift (xiii)

Methods, instance and otherwise.

February 28, 2016 (updated March 06, 2016)Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source

Rust and Swift (xii)

Properties: type and instance, stored and computed.

February 27, 2016Filed under Tech#listicles#rust#rust-and-swift#software development#swiftMarkdown source
February 27, 2016Filed under micro#gaming#programming languages#rust#software developmentMarkdown source

I posted these as a series of tweets.


Fired up and played the demo for Elite Dangerous on my Parallels VM. Made me want to buy it. But of course, I’d prefer to play it natively.


Of course, it’s available for Mac. But my (more than a decade old) joystick doesn’t have any support on OS X. No drivers, full stop.


You can find software out there which recognizes it, of course—but it’s quirky and doesn’t behave well.


Looks like opportunity calling.


I might—might, I say, not will—end up seeing if I can write the requisite pieces in Rust. Because that seems like a good plan.

February 25, 2016Filed under micro#javascript#programming languages#rust#software developmentMarkdown source

I have an irrational-but-ridiculously-strong desire to build an Atom package that is a tiny JavaScript wrapper around a Rust implementation. Just because.

February 07, 2016Filed under micro#podcasting#programming languages#rustMarkdown source

Spent the last little bit reading about Rust’s type system for the next episode of New Rustacean. Heady stuff.

“I Don't Know When I'd Use That”

Learning new languages as a way of stretching your brain.

January 17, 2016Filed under tech#haskell#programming languages#rust#software developmentMarkdown source

Women in Rust

January 10, 2016Filed under tech#podcasting#rust#tweetstormMarkdown source

Rust and Swift (xi)

Hopes for the next generation of systems programming.

January 10, 2016Filed under Tech#programming-languages#rust#rust-and-swift#software development#swiftMarkdown source

Thoughts on 2015 (and 2016)

December 26, 2015Filed under blog#family#podcasting#rustMarkdown source

Rust and Swift (x)

Classes and structs (product types), and reference and value types.

December 06, 2015 (updated December 22, 2015)Filed under Tech#listicles#rust#rust-and-swift#software development#swiftMarkdown source

Rust and Swift (ix)

Sum types (`enum`s) and more on pattern matching

November 09, 2015 (updated January 02, 2016)Filed under Tech#listicles#rust#rust-and-swift#software development#swiftMarkdown source

Rust and Swift (viii)

Functions, closures, and an awful lot of Swift syntax.

October 18, 2015 (updated October 19, 2015)Filed under Tech#listicles#rust#rust-and-swift#software development#swiftMarkdown source
October 17, 2015Filed under micro#fsharp#programming languages#rustMarkdown source

This is interesting: I’ve read some F♯ before, but it reads a lot more obviously to me now that I’ve read a lot of Rust recently. Why? Because for all that they’re very different languages, both are ML descendants. It shows.

Rust and Swift (vii)

Pattern matching and the value of expression blocks.

September 19, 2015 (updated September 20, 2015)Filed under Tech#listicles#rust#rust-and-swift#software development#swiftMarkdown source

Rust and Swift (vi)

Collection types and the difference between syntax and semantics.

September 19, 2015Filed under Tech#rust#rust-and-swift#software development#swiftMarkdown source

Rust and Swift (v)

The value (and challenge) of learning languages in parallel.

September 12, 2015Filed under Tech#programming languages#rust#rust-and-swift#software development#swiftMarkdown source

If-expressions in Rust

September 12, 2015 (updated September 12, 2015)Filed under tech#programming languages#python#rust#software developmentMarkdown source
September 11, 2015 (updated September 11, 2015)Filed under micro#programming languages#rustMarkdown source

Since Rust allows unsafe code, it’s easy to wonder how necessary it is. The answer: in general, not at all.

Rust and Swift (iv)

Language design tradeoffs, highlighted by string manipulation.

September 10, 2015Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source

Rust and Swift (iii)

Operators, including overloading, and thoughts on brevity.

September 07, 2015 (updated March 12, 2016)Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source

Rust and Swift (ii)

Basic types and the syntax around them.

September 06, 2015 (updated March 12, 2016)Filed under Tech#programming languages#rust#rust-and-swift#swiftMarkdown source

Rust and Swift (i)

Thoughts after reading the introduction to the Swift book.

September 04, 2015 (updated September 07, 2015)Filed under Tech#listicles#programming languages#rust#rust-and-swift#swiftMarkdown source
September 02, 2015Filed under micro#programming languages#rustMarkdown source

I’m writing a bunch of C that needs to handle error returns. I’m really wishing I had Rust’s #[must_use] annotation right now. For that matter, I just want Rust’s Result<T, E> type available.

August 09, 2015Filed under micro#programming languages#rustMarkdown source

Tonight, Jaimie said that she thought Rust had turned me into a bit of a fanboy. Don’t tell anyone, but I think she’s basically right…

August 08, 2015Filed under micro#programming languages#rust#software developmentMarkdown source

I can think of no more effective an argument for Rust and its memory safety guarantees than the time I spent this weekend hunting down bugs caused by buffer overruns in decades-old C code.

High- and Low-Level Programming Languages

Python, Ruby, C, C++, and... Rust. Hmm.

August 07, 2015Filed under tech#c#cplusplus#programming languages#python#ruby#rustMarkdown source
August 06, 2015Filed under micro#programming languages#rustMarkdown source

☑ Finished reading the Rust by Example book. ☑ Submitted a couple pull requests. ☑ Concluded that I really like this language.