Skip to content
Dodgy Coding podcast artwork

PODCAST

Dodgy Coding

Experimenting with code and computers. Videos are not guaranteed to contain anything useful, but Rust is likely to be involved. https://github.com/thombles

Publisher-supplied feed metadata · PodParley refreshed Jul 30, 2023 · Source feed

Episodes

  1. TCP connect to 0:8080

    An investigation into exactly what's going on if you "curl 0:8080" and it works for some reason.

  2. Misadventures in async testing

    A demonstration of the race conditions that can occur when attempting to unit test async rust code, and a couple of ways you might try to handle it.

  3. Contact tracing in the background on iOS

    A short demonstration of the Australian COVIDSafe app and how its Bluetooth connectivity is affected by putting the app in the background.

  4. Simultaneous open - TCP without a server

    A fun quirk of TCP/IP is that you can create a connection without a listening socket. In this video we briefly review how that works, then write a Rust program to trigger the unusual behaviour on real Linux hosts. Code: [https://github.com/thom...

  5. Async/await server pt.4 - timeouts

    A gentle exploration of building a identd for Linux using async/await and tokio 0.2. This part demonstrates halting an await after a configurable time limit, both using tokio's timeout() helper and with the select! macro from the futures crate.

  6. Async/await server pt.3 - running a process

    A gentle exploration of building a identd for Linux using async/await, tokio 0.2 and Rust 1.39. This part demonstrates running a process asynchronously and capturing standard output, either all at once or line by line.

  7. Async/await server pt.2 - line-oriented protocols

    A gentle exploration of building a identd for Linux using async/await, tokio 0.2 and Rust 1.39. This part demonstrates sending and receiving messages as complete lines, and discusses the Send requirements for local variables when awaiting.

  8. Async/await server pt.1 - accepting TCP connections

    A gentle exploration of building a identd for Linux using async/await, tokio 0.2 and Rust 1.39. This first part includes creating a TCP listener and accepting clients, and demonstrates various ways to get it wrong.

  9. Async and its alternatives

    Rust libraries come in a variety of API styles and futures are just one option. In this video we compare and contrast four styles from three crates: Synchronous blocking functions (websocket), Single thread reactor (ws-rs), Non-blockin...

  10. Cancelling Tokio Intervals

    A discussion of how futures are given to an async executor and later dropped. Examples of cancelling an Interval stream by erroring out of for_each, and by selecting against another future.

  11. Use Rust in iOS Apps

    A tutorial to create a new Rust library, compile it as a static library for iOS, and use it in an Xcode project. We then automate a convenient development workflow and explore some of the data types and callbacks that you can use to communicate be...

  12. Type erasure in Rust/C FFI — structs, generics, trait objects

    Exploring how to create data structures that are owned by C and pass pointers back to Rust to operate on them. This is easy for a basic struct but when you introduce generics or traits, things get interesting. Content warning: inadvisable C code.

  13. Tokio I/O futures

    Experiments with tokio’s lines() function, fold(), and a custom multi-stage future with inner futures and the try_ready macro. With this episode, we are now up to four sub-optimal ways to count the number of lines in a file.

  14. Making a leaf future for tokio

    I play around with a standalone future to see how the tokio executor’s polling works in practice. I then adapt a callback-based API to work with futures, including a full implementation of a leaf future that transitions from NotReady to Ready.

  15. Rust Autocomplete and Debugging in VS Code

    Visual Studio Code is a convenient cross-platform environment for writing Rust code. By installing and configuring a few extra plugins—Better TOML, RLS and CodeLLDB—it can quickly become a full-fledged IDE. Nightly components status Mac: https...

  16. std threads vs tokio Runtime

    In Rust code, two ways to run concurrent tasks are spawning threads using the standard library, and using the tokio crate for async I/O. In this video I make a test program with 100 tasks that take different amounts of time and compare how threads...

Type above to search every episode's transcript for a word or phrase. Matches are scoped to this podcast.

Searching…

We're indexing this podcast's transcripts for the first time — this can take a minute or two. We'll show results as soon as they're ready.

No matches for "" in this podcast's transcripts.

Showing of matches

No topics indexed yet for this podcast.

Loading reviews...

ABOUT THIS SHOW

Experimenting with code and computers. Videos are not guaranteed to contain anything useful, but Rust is likely to be involved. https://github.com/thombles

Frequently Asked Questions

How many episodes does Dodgy Coding have?

Dodgy Coding currently has 16 episodes available on PodParley. New episodes are automatically indexed when they're published to the podcast feed.

What is Dodgy Coding about?

Experimenting with code and computers. Videos are not guaranteed to contain anything useful, but Rust is likely to be involved. https://github.com/thombles

How often does Dodgy Coding release new episodes?

Dodgy Coding has 16 episodes. Check the episode list to see recent publication dates and frequency.

Where can I listen to Dodgy Coding?

You can listen to Dodgy Coding on PodParley by clicking any episode. We provide an embedded audio player for direct listening, and you can also subscribe via your preferred podcast app using the RSS feed.
URL copied to clipboard!