- No rain this week either!
- At work, my week was spent learning codebase and getting access. I finally have required access. I am dealing with a very large Rust codebase which is going through architectural refactor. Interesting times ahead.
- After working with claude for a month, copilot feels like a little under-performer. Good thing is that I can avoid using AI agent at job if I want to.
copilotcould not even do a rebase with main!
- After working with claude for a month, copilot feels like a little under-performer. Good thing is that I can avoid using AI agent at job if I want to.
- I’ve been learning a bit about investments e.g. PPF, SSY and other fixed rate schemes. HDFC bank keep updating its app. New iteration has more pixel porn, and more stupid notifications over functionality and it requires too much resource. Fortunately, I’ve to use it occasionally. BHIM upi app is also slow and mild mannered as late Mr. Atal Bihari Bajpayee.
- I plucked a few raw mangoes from the tree outside. Perhaps make some pickle?!
Reading list
- Why Async Rust is a great post on, well, “why async rust”. It covers a bit of history as well, and talks about the design choices.
- Zero-cost futures in Rust — why golang like “green threads” were not chosen for Rust. Some interesting bits from the post.
Things really start getting interesting with futures when you combine them. There are endless ways of doing so, e.g.:- Sequential composition:
f.and_then(|val| some_new_future(val)). Gives you a future that executes the futuref, takes thevalit produces to build another futuresome_new_future(val), and then executes that future. - Mapping:
f.map(|val| some_new_value(val)). Gives you a future that executes the futurefand yields the result ofsome_new_value(val). - Joining:
f.join(g). Gives you a future that executes the futuresfandgin parallel, and completes when both of them are complete, returning both of their values. - Selecting:
f.select(g). Gives you a future that executes the futuresfandgin parallel, and completes when one of them is complete, returning its value and the other future. (Want to add a timeout to any future? Just do aselectof that future and a timeout future!)
- Sequential composition: