Giter VIP home page Giter VIP logo

async-trpl-fun's Introduction

Hello!

I’m Chris Krycho—a follower of Christ, a husband, and a dad. I’m a software engineer by trade; a theologian by vocation; and a writer, runner, and composer by hobby.

Things I’m currently passionate about include:

  • programming languages and frameworks as tools for improving the reliability and usability of software
  • theology proper and theological anthropology
  • the intersection of Christian ethics and emerging technologies

I am also currently looking for a job that checks off some of those boxes—read more in Next: Role?—so feel free to get in touch!

Over the past half decade, I delivered top-notch TypeScript support for LinkedIn, including a spec for Semantic Versioning for TypeScript Types and drove the Ember TypeScript roadmap along with significant parts of Ember’s framework roadmap.

You can sometimes find me on Bluesky, LinkedIn, Mastodon, and Twitter—though only sometimes!—but I’m always happiest to receive email! I also occasionally write for Mere Orthodoxy.

Previously, I cohosted and produced Winning Slowly, a podcast about technology, religion, ethics and art; and created New Rustacean, a podcast which taught tens of thousands of people the Rust programming language.

async-trpl-fun's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

async-trpl-fun's Issues

Placement in the book?

My inclination is to put the new chapter immediately after the Fearless Concurrency chapter. That will have given people a lot of the relevant mental machinery for thinking about concurrency in general, and then the async/await stuff can build on it by saying, roughly, “Okay, but threads are expensive, etc. etc. etc.” and use that as a transition into motivation for async/await.

That does also raise the question of how we should title it! It’s even more concurrency. 😂

Project: something using WebSockets?

WebSockets are relatively lightweight from a protocol POV and there are a couple solid Rust libraries for them. I wonder if they might be a good target for showing some of the interactions and coordination you want t

  • Chat server: This one is relatively obvious in that it is the canonical example and motivation for WebSockets themselves, and building a chat client is actually pretty neat: being able to have two browser windows up next to each other and see the messages appear back and forth in basically-real-time is great. The downside I see here is that it does not show a lot of the coordination aspects—basically just shutdown for closing the socket, and having both sender and receiver sides.

  • Live reload server: This is a little less obvious but I think might actually work better. It would show async coordination between file events (using notify or maybe watchexec), the web server (probably using Axum? But I am very open to something else, too), and a WebSocket connection (fastwebsockets seems nice?). It also basically covers everything that the chat server does, I think.

    I have been thinking about this one for a while (I was interested in it at a personal level, never having built one), and I think it might be just small enough to manage.

For either of these, or indeed anything which has a browser UI attached, I think it will behoove us to supply a Git repo (perhaps a GitHub “template”-style repo) which people can use as the starting point for their implementation, which supplies (minimal) pre-baked HTML, CSS, and JS/TS (already compiled, or with a known-good and verified-by-CI-all-the-time build) that makes it easy for people to just focus on the Rust part. The client-side code there can be fairly minimal.

Thoughts, @carols10cents?

"green threads"

Re: green threads--

There used to be a discussion of green threads in the book, but apparently we messed it up, so I removed it. 🤷🏻‍♀️

If it makes sense to mention it, I'm not opposed to putting it back (with an actually correct definition, of course!)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.