+ HAVE MORE+ ASK FOR MORE
RODNEY LAB NEWS
  • Newsletter
  • Tutorials
  • Blog
RODNEY LAB NEWS
  • Newsletter
  • Tutorials
  • Blog

Subscribe to the newsletter

By subscribing, you agree with our Terms of Use and Privacy Policy.
READING TIME: 4 MINUTES

Rodney Lab Newsletter — December 2022Rodney Lab Newsletter — December 2022

blurry low resolution placeholder imageRodney Lab Newsletter

Font spacing

Font size

🦾 Pick of the Month — Rust #

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”.

⌨️ Follower Feedback — Vim here Before #

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 😅.

📢 Fun Finds #

  • 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.

👋🏽 Until next time! #

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:

  • Get Started with SvelteKit Headless WordPress
  • Svelte eCommerce Site: SvelteKit Snipcart Storefront
  • Trying out Deno Fresh: new, Fast Framework for Web
Did you find this issue useful?
  • 🦾 Pick of the Month — Rust
  • ⌨️ Follower Feedback — Vim here Before
  • 📢 Fun Finds
  • 👋🏽 Until next time!

Subscribe to Email and RSS

If a friend or colleague forwarded this to you, and you like it, you can subscribe to receive the newsletter in your inbox, but you don’t have to! If you prefer, subscribe to the newsletter RSS feed or just even check back to see the latest newsletter issue once a month.

Ask for more

1 Nov 2022—Astro Server-Side Rendering: Edge Search Site
3 Oct 2022—Svelte eCommerce Site: SvelteKit Snipcart Storefront
1 Sept 2022—Get Started with SvelteKit Headless WordPress

Copyright © 2022 – 2025 Rodney Johnson. All Rights Reserved. Please read important copyright and intellectual property information.

  • Home
  • Profile
  • Plus
  • Newsletter
  • Contact
  • Links
  • Terms of Use
  • Privacy Policy
We use cookies. Some (optional) cookies help to work out which content visitors find most useful. Please click the “Options” button to make a choice. Learn more here.

Some cookies are set in order to move around the website and use its features. Without these cookies, services cannot be provided.

We use our own web analytics cookie to help us know which content is most useful and give us an idea of the audience. The cookie code creates a random identifier for each new session. It associates a time stamp, your browser user agent, locale and country with the session when that information is available. If you came here from another page, we will also associate that referring page with the session identifier when that information is available. Please see the Privacy Policy for further details. The web analytics cookie is optional.