Idris is a proof assistant, Iris is a datalog implementation that is often used in proofs around separation logic. I'm not sure there is huge overlap in users, but they are both fun tools!
Please do write up something on your approach to comments! I'm sad that I missed the stream. I just wanted to point out an idea that blew my mind recently. Kris Jenkins on Developer Voices interviewed Agnès Leroy who described doing calculations on encrypted data and outputing encrypted answers. Some stuff is just magic. Thank you for what you do.
Probably it is my work only, but I'm implementing DFS and BFS all the time. Just need it all the time. Quicksort - implemented only in algo class, never implemented any sort algo after it, only used from std library.
The better solution to unsafe_op_in_unsafe_fn warning would be to have a different keyword for each context - an unsafe function is about marking the function unsafe to callers, whereas using unsafe on a code block is about agreeing to uphold the safety contract. They shouldn't be using the same keyword - that was the real mistake, and this new edition skirts it entirely. At least it doesn't make things worse. Thinking some more about it, and seeing the use of the "safe" keyword for "extern", I realise now that the correct keyword to mark a function or block that is unsafe as being safe is, of course, "safe". Only it's not, so I guess we're stuck with double-duty "unsafe" for code we think is safe to call, and code that is not safe to call.
Happy new year! Regarding NixOS, I have it running on my home server and my home coding desktop. For the server having one config file is great. Getting a Gitea registry going is as simple as services.gitea.enable = true. However, on my coding machine, getting editor plugins to work nicely with the strictly defined config file was pretty annoying. Sometimes I just want to update with Cargo, or flatpak and not deal with the configuration.nix file. On my coding laptop I just installed Debian and nixpkgs and like that experience more.
it sure does add friction to updating/installing stuff sometimes. Well, except when what you want is already packaged - there's no better feeling than just running `nix-shell -p` and being good to go. Regarding editor plugins, I just don't bother with Nix at all there, and do everything "dirtily" with a conventional plugin manager - though I do still try to burn mason with fire and add the LSPs/formatters etc. to flake.nix for the rare cases when I need to use something other than Rust
At 1:49:30 - I think there may be a typo in the chapter marker. Thoughts rather than though ...? HTH (I think I saw the part where env was going to be marked as unsafe around here and thought hmm - credentials for things like DB connections could be impacted and that's one that really shouldn't be in version control systems for obvious reasons)
1:59:20 - How the users of code can be sure that block that calls external code is safe if external code is not checked by rust compiler? Earlier safety was guaranteed by compiler which brought confidence in code i potentially could use, now as user code i must trust on words of developer, not the correct mathematical interface brought by compiler. By just letting developer to say that the code is correct - mankind already had trouble caused by that letting, which resulted potentially memory dangerous languages like C and C++. I think that brings the potential corruption in the home of rust by defaoult. It seems even like not optional feature to enable, it is by default :( I want my machine check my code for me, I want my compiler to warn me if some code i included based on non-rust code. I don't want to have doubts on the code that i included in my embedded devices, which can use some external code - that may lead the whole product to behave un expectedly. I have just escaped from languages that made me doubt if the code is safe. That made pain. And now again.
“Somebody is going to build tech for war so it might as well be me”, or something along those lines, is a terrible argument. You have the privilege and opportunity to work wherever you want, in whatever field that interests you, and clearly you choose to work for a military company because you are interested in making weapons. You can’t hide behind “I’m doing this for the greater good”. You choose to work there, so you are part of the industry. Your country is not under attack. I think you should simply admit that you find weapons fascinating and enjoy working on them. I personally would respect you more if you just owned it. However I still think it reflects poorly on you to voluntarily work in this field without an existential threat upon you. I speak as someone who has been in this position myself and I actively rejected the opportunity. Someone else can have that on their conscience. However if my country was attacked, I would work to defend it, of course.
But that's simply false - I'm not "interested in making weapons", nor do I particularly "enjoy working on them". I think it's naive to say that *if* your country was attacked, then you'd be willing to work in this kind of technology. At that point it's likely too late. Deterrence and invasion stopping are both meaningful preventative steps to avoid getting to the place where what you hold dear has already been infringed upon. And while you may not think so, I very much think of the current situation in Europe as under threat, which further raises the impetus for getting involved now rather than reactively later.
@@jonhoo I appreciate you replying. I think you're right in that I am naive about this - I live in an isolated island country where the closest we've ever come to an existential threat is from the Japanese in WW2. Other than the usual global geopolitical threats, there is nothing going on here that I feel the need to prepare militarily for. So I accept that I simply cannot truly understand the tension in Europe, although I have enough imagination to understand that it must be worrying for everyone there. I suppose what I'm really trying to do here is rationalise the fact that someone I really respect for their technical knowledge and ability to pass that on to others has voluntarily joined a company that is involved in the design and manufacture of machines that murder people. For "good reasons" or otherwise, it's still something I haven't been able to reconcile yet. I appreciate that you've thought long and hard about this (as have I, in my own situation at least, when I had that opportunity), and I'm fairly sure you're OK with it. I'm just trying to find a way to be OK with it too...
I appreciate your nuance here! I think one thing we can certainly both agree on is that it sucks that the world is such that these are even considerations that have to be made in the first place.
glad to see you are back!
Great video! Thanks a lot
So happy to see you back Jon! We need more videos from you 😃
Hello Jon! good to see you again! :)
The thumbnail 😅
It does matter. According to my ex, at least
1:25:00
As always a really interesting Q&A session.
Idris is a proof assistant, Iris is a datalog implementation that is often used in proofs around separation logic. I'm not sure there is huge overlap in users, but they are both fun tools!
Im new here, and i really enjoyed Q&A. Looking forward for your content, where i starve to learn.
Please do write up something on your approach to comments! I'm sad that I missed the stream. I just wanted to point out an idea that blew my mind recently. Kris Jenkins on Developer Voices interviewed Agnès Leroy who described doing calculations on encrypted data and outputing encrypted answers. Some stuff is just magic. Thank you for what you do.
Probably it is my work only, but I'm implementing DFS and BFS all the time. Just need it all the time. Quicksort - implemented only in algo class, never implemented any sort algo after it, only used from std library.
The better solution to unsafe_op_in_unsafe_fn warning would be to have a different keyword for each context - an unsafe function is about marking the function unsafe to callers, whereas using unsafe on a code block is about agreeing to uphold the safety contract. They shouldn't be using the same keyword - that was the real mistake, and this new edition skirts it entirely. At least it doesn't make things worse.
Thinking some more about it, and seeing the use of the "safe" keyword for "extern", I realise now that the correct keyword to mark a function or block that is unsafe as being safe is, of course, "safe". Only it's not, so I guess we're stuck with double-duty "unsafe" for code we think is safe to call, and code that is not safe to call.
At 1:30:00 you mentioned about teams without metrics. Which metrics are you are actually referring to? Could you provide any examples?
Happy new year!
Regarding NixOS, I have it running on my home server and my home coding desktop. For the server having one config file is great. Getting a Gitea registry going is as simple as services.gitea.enable = true. However, on my coding machine, getting editor plugins to work nicely with the strictly defined config file was pretty annoying. Sometimes I just want to update with Cargo, or flatpak and not deal with the configuration.nix file. On my coding laptop I just installed Debian and nixpkgs and like that experience more.
it sure does add friction to updating/installing stuff sometimes. Well, except when what you want is already packaged - there's no better feeling than just running `nix-shell -p` and being good to go.
Regarding editor plugins, I just don't bother with Nix at all there, and do everything "dirtily" with a conventional plugin manager - though I do still try to burn mason with fire and add the LSPs/formatters etc. to flake.nix for the rare cases when I need to use something other than Rust
Hi, I was wondering what are the best resources for learning low latency systems in Rust?
At 1:49:30 - I think there may be a typo in the chapter marker. Thoughts rather than though ...? HTH (I think I saw the part where env was going to be marked as unsafe around here and thought hmm - credentials for things like DB connections could be impacted and that's one that really shouldn't be in version control systems for obvious reasons)
There is the cranelift backend, but it isn't there to face against llvm.
1:59:20 - How the users of code can be sure that block that calls external code is safe if external code is not checked by rust compiler? Earlier safety was guaranteed by compiler which brought confidence in code i potentially could use, now as user code i must trust on words of developer, not the correct mathematical interface brought by compiler. By just letting developer to say that the code is correct - mankind already had trouble caused by that letting, which resulted potentially memory dangerous languages like C and C++. I think that brings the potential corruption in the home of rust by defaoult. It seems even like not optional feature to enable, it is by default :( I want my machine check my code for me, I want my compiler to warn me if some code i included based on non-rust code. I don't want to have doubts on the code that i included in my embedded devices, which can use some external code - that may lead the whole product to behave un expectedly. I have just escaped from languages that made me doubt if the code is safe. That made pain. And now again.
your link to wewerewondering is malformed ...
RUclips is so bad at links... Should be fixed now!
@@jonhoo 👍
I think you missed timestamp for 2:41:20 - "What is missing in Rust?"
Thanks! Should now be fixed.
Nix certainly has some dark corners. But there definitely isn't anything better.
Guix but Guile is a weirder language than Nix.
Great Q&A!
Btw, Israel people love you!
Where are your glasses? You don't seem to wear glasses for a while.🤓
3:27:30
“Somebody is going to build tech for war so it might as well be me”, or something along those lines, is a terrible argument. You have the privilege and opportunity to work wherever you want, in whatever field that interests you, and clearly you choose to work for a military company because you are interested in making weapons. You can’t hide behind “I’m doing this for the greater good”. You choose to work there, so you are part of the industry. Your country is not under attack.
I think you should simply admit that you find weapons fascinating and enjoy working on them. I personally would respect you more if you just owned it. However I still think it reflects poorly on you to voluntarily work in this field without an existential threat upon you.
I speak as someone who has been in this position myself and I actively rejected the opportunity. Someone else can have that on their conscience. However if my country was attacked, I would work to defend it, of course.
But that's simply false - I'm not "interested in making weapons", nor do I particularly "enjoy working on them". I think it's naive to say that *if* your country was attacked, then you'd be willing to work in this kind of technology. At that point it's likely too late. Deterrence and invasion stopping are both meaningful preventative steps to avoid getting to the place where what you hold dear has already been infringed upon. And while you may not think so, I very much think of the current situation in Europe as under threat, which further raises the impetus for getting involved now rather than reactively later.
@@jonhoo I appreciate you replying. I think you're right in that I am naive about this - I live in an isolated island country where the closest we've ever come to an existential threat is from the Japanese in WW2. Other than the usual global geopolitical threats, there is nothing going on here that I feel the need to prepare militarily for. So I accept that I simply cannot truly understand the tension in Europe, although I have enough imagination to understand that it must be worrying for everyone there.
I suppose what I'm really trying to do here is rationalise the fact that someone I really respect for their technical knowledge and ability to pass that on to others has voluntarily joined a company that is involved in the design and manufacture of machines that murder people. For "good reasons" or otherwise, it's still something I haven't been able to reconcile yet. I appreciate that you've thought long and hard about this (as have I, in my own situation at least, when I had that opportunity), and I'm fairly sure you're OK with it. I'm just trying to find a way to be OK with it too...
I appreciate your nuance here! I think one thing we can certainly both agree on is that it sucks that the world is such that these are even considerations that have to be made in the first place.