I started playing with Rust a few years back, but have been taking it a bit more
seriously recently, working my way through the books and various tutorials. Over
the last few months, I have created myriad Rust
CLICommand Line Interface
tools and shoe-horned Rust-based
WASMWebAssembly into
every project I could. Leaning into Deno Fresh has helped with the latter:
Deno has remarkable WASM tooling. As examples, I wrote WASM code to generate
AWS pre-signed URLs for S3 uploads, a little CLI tool for generating SHA
hashes of files (handy for integrity checking file uploads) and even a CLI
tool for linting the WebVTTWeb Video Text
Tracks: format for video captions transcripts which Whisper
Speech-to-Text
AIArtificial
Intelligence, mentioned in October issue,
generates.
Typical go-to starting points for Rust are
“The Book” and also
the Rustlings game. Here are a few
more resources I found useful recently:
Building a Rust GraphQL Server:
quality content as always from
Oliver Jumpertz. You can follow along
even if you are new to Rust and although the tutorial is short, he has
gone the extra mile with details on setting up observability, reporting and
even containerizing with Docker,
Rust by Example:
some content in “The Book” can seem a little abstract, and I find
Rust-by-Example super useful to dip into when I am pondering particular
issues,
Zero to Production in Rust: for an
even deeper dive, consider this book from
Luca Palmieri. It is not free (like the other
resources mentioned previously), but is far more ambitious, helping you build
out an Email newsletter backend from scratch, with no Rust experience
assumed.
Oh, I recently learned you can pull up “The Book” offline if you
have Rust tooling installed on your device, just run “rustup docs --book”.
Seems a few others are also getting into Vim. I mentioned my new setup with
Neovim and Neovide in the last newsletter. If
learning Vim is on your 2023 bucket list, then you might find vimtutor
handy. It’s another CLI tool. I just crack it open like a kind of palette
cleanser when switching between tasks 😅.
Podcasts —
Huberman Lab
& Stronger by Science: these
are both fantastic for when you want to escape Web Development for an hour or
two. Dr. Huberman (a Stanford Professor) explores an issue like sleep or
motivation over several weekly episodes and in great detail. Despite the
scientific tilt, the content is accessible, with practical explanations of how
you might apply the science to your own life. If you train, also try
Stronger by Science. Again, this links cutting-edge research to practical
ways you can alter your diet and training routine.
Services — Postmark email: with the Revue
newsletter service about to be switched off, I needed another service for
delivering the email version of this newsletter. Although there are a few
options out there; some more bare-bones
APIsApplication Programming
Interface while others have a wide range of marketing
features, I cannot fault Postmark. Not being too bothered about the marketing
side, I just wanted a service with a
RESTRepresentational state
transfer API which lets you bulk send
multipart/alternative email (HTML with a fallback plaintext version).
Postmark hit the spot. It literally took a few minutes to set up, the docs are
clear and easy to navigate. You can generate the email HTML yourself from
your own off-platform template. This is perfect in case you need to switch
service at some point. The REST API is also important there too — minimizing
code changes if you do need a change. To create the email-compliant HTML, I
created an MJMLMailjet Markup
Language template (using a Rust WASM function with mrml
to convert this to Email HTML).
Resources —
Building Performant Sites:
free online book on High Performance Browser Networking by Ilya
Grigorik — this got mentioned on a podcast as a great starting point
for website optimization. Ilya (now at Shopify and behind Oxygen and
Hydrogen) was previously at Google where he worked on making the Web fast! It
is stunning how relevant the content remains despite the book being almost ten
years old. This is another resource you can dip in and out of when you have a
spare ten-minute block throughout the day.
All the best for 2023! Hope there was something valuable in here for you. As
always, reach out with feedback and until next time, here’s some of my 2022
posts/tutorial highlights: