Top all-time · #378
Joe Duffy
Personal blog · joeduffyblog.comprogrammingsystems
Joe Duffy's personal blog at joeduffyblog.com covers programming and systems. Since 2013, 147 different Hacker News readers have linked it 206 times, most often “Blogging about Midori (2015)”. The last post was in 2019, but the archive is still widely read.
Sometimes recommended · 8 of 40 sampled comments recommend it?
Why HN links it
HN readers cite Joe Duffy's blog for long posts on OS and language design, mainly from his Midori work at Microsoft, including async, error handling and object capabilities.
Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Joe Duffy's Blog | Adventures in the high-tech underbelly
Most-linked posts?
- Blogging about Midori (2015)36 people · 45 mentions · first linked 2015-11-14
- The Error Model in Midori18 people · 20 mentions · first linked 2016-02-07
- Asynchronous Everything (2015)16 people · 16 mentions · first linked 2015-11-20
- The Error Model (about modern, robust error handling strategies)13 people · 13 mentions · first linked 2023-01-03
- Joe Duffyging about Midori (2015)12 people · 16 mentions · first linked 2022-01-31
- C# for Systems Programming (a new language from Microsoft's OS incubation)8 people · 9 mentions · first linked 2013-12-27
- Objects as Secure Capabilities8 people · 8 mentions · first linked 2015-11-11
- Safe Native Code6 people · 7 mentions · first linked 2015-12-19
- A (brief) retrospective on transactional memory (2010)6 people · 7 mentions · first linked 2014-05-16
- A Brief Retrospective on Software Transactional Memory (2010)5 people · 7 mentions · first linked 2023-06-14
What Hacker News says?
Are you aware of the history of object-capability programming languages? There are multiple actual demonstrations of real-world ocaps programming languages and projects built with them: * The (now defunct) E programming language: http://erights.org and Joule: https://en.wikipedia.org/wiki/Joule_(programming_language) * Pony: https://www.ponylang.io * Monte: http://www.monte-language.org * The Midori project at Micro…
Comment linking /2015/11/10/objects-as-secure-capabilities/
on “Dependency Confusion: How I Hacked Into Apple, Microsoft and Other Companies”Submitted 15 Years of Concurrency as a story · 355 points
HN discussionhttp://joeduffyblog.com is great, albeit it's far from being daily. It has long posts about operating system and programming language design
Comment linking /
on “Ask HN: What are some good technology blogs to follow?”Submitted Pulumi – A new open-source cloud development platform as a story · 317 points
HN discussionTPL (and PLINQ) raise the level of abstraction. They discourage the use of mutable shared memory and low-level locks. They encourage the use of immutable or thread-safe data structures. Joe Duffy, who had originally done quite a bit of initial work on the TPL, argues in favor of this paradigm[0] of raising the abstraction level. I feel like introducing the low-level tools without providing a raised abstraction level…
Comment linking /2016/11/30/15-years-of-concurrency/
on “ECMAScript 2017 Language Specification”Submitted The Error Model in Midori as a story · 146 points
HN discussionThey had a project called "Midori" which was a new operating system (I believe including browser?) written in a C# derivative. The blog posts on it are fascinating stuff, diving into some greenfield decisions for both language design and OS design. http://joeduffyblog.com/2015/11/03/blogging-about-midori/ It's interesting to compare what we know of "Midori C#" to Rust.
Comment linking /2015/11/03/blogging-about-midori/
on “What's the future of Servo?”Submitted Safe Native Code as a story · 141 points
HN discussionWhat we do with the spin lock classes that we use in our products is a SwitchToThread call: https://msdn.microsoft.com/en-us/library/windows/desktop/ms6... If the SwitchToThread call returns False, then the code reverts to a Sleep(0) call instead. Credit to StackOverflow and Joe Duffy's excellent article on this: https://stackoverflow.com/questions/1383943/switchtothread-v... http://joeduffyblog.com/2006/08/22/prior…
Comment linking /2006/08/22/priorityinduced-starvation-why-sleep1-is-better-than-sleep0-and-the-windows-balance-set-manager/
on “Why Skylake CPUs Are Sometimes 50% Slower”Submitted Performance Culture as a story · 122 points
HN discussionIt was MSR: http://joeduffyblog.com/2015/11/03/blogging-about-midori/ Yeah, their verification tools are incredible. They applied VCC to Hyper-V. The driver tools mostly wiped out blue screens. Got a new one called P language used in USB stack. The methods you mentioned like Dafny got applied in ExpressOS by another team: https://github.com/ExpressOS/expressos Microsoft did it first in VerveOS although Nucleus was r…
Comment linking /2015/11/03/blogging-about-midori/
on “What made Xerox PARC special? Who else today is like them?”Submitted The 'premature optimization is evil' myth (2010) as a story · 94 points
HN discussionasync/await as we know it actually came from Midori's C# dialect, which indeed was inspired from F#: http://joeduffyblog.com/2015/11/19/asynchronous-everything/ (Although, just to be pedantic, the concept of futures is way older than F#. Alice's syntax, for example, is pretty close)
Comment linking /2015/11/19/asynchronous-everything/
on “JavaScript async/await implemented in V8”Submitted Asynchronous Everything (2015) as a story · 64 points
HN discussionIt's also potentially faster and more efficient than goroutines, because it packs the state to be shared on context switches into what is typically a very tight structure instead of saving the entire stack. I'm sure you already know this, but for anyone new to design in concurrency backends, not only does async/await (CPS) have the potential to really trounce goroutine-style concurrency in modern systems, but if you…
Comment linking /2015/11/19/asynchronous-everything/
on “Visual Studio Code for Go”Submitted Blogging about Midori (2015) as a story · 59 points
HN discussionThese uses of panic look a lot like the canonical use of unchecked exceptions in Java: the programmer has made an error, which they could have avoided. It's a bug. There's no point returning an error and letting the program try to recover, just blow up with as much information as you can, so the bug can be fixed. The canonical use of checked exceptions in Java is for unpredictable events - almost always related to i…
Comment linking /2016/02/07/the-error-model/
on “The State of Go”Submitted The Error Model (2016) as a story · 56 points
HN discussion> I hope this philosophy do not reach the Linux kernel. Well, I hope it does. Albeit it almost certainly will not, because Linus is opposed to it. But ever since I read Joe Duffy's blog posts on the Midori research project at MS, I have been convinced that using panics leads to increased reliability, not decreased. From his blog[1]: "Given that bugs are inherently not recoverable, we made no attempt to try. All bugs…
Comment linking /2016/02/07/the-error-model/
on “Jiff: Datetime library for Rust”Submitted Midori: A Tale of Three Safeties as a story · 48 points
HN discussionTo be clear, not everybody agrees with Gor and although they still don't have much traction, stackful coroutines are still being proposed. Most (but admittedly not all) of Gor issues with stackful coroutines are due to current implementations being purely a library feature with no compiler support. Most of the issues (context switch overhead, tread local issues) can be solved with compiler support. The issue with la…
Comment linking /2015/11/19/asynchronous-everything/
on “Why choose async/await over threads?”Submitted On being stateful (2008) as a story · 38 points
HN discussionHow about https://joeduffyblog.com/2015/11/03/blogging-about-midori/
Comment linking /2015/11/03/blogging-about-midori/
on “Don't forget Microsoft”Submitted Asynchronous Everything as a story · 29 points
HN discussion> Is async/await a good idea for an OS kernel, even a toy one? You might want to look at Joe Duffy's posts about Microsoft's Midori OS. In particular the post "Asynchronous Everything": http://joeduffyblog.com/2015/11/03/blogging-about-midori/ Their findings sound pretty compelling to me. Personally I'm convinced that eventually we'll see much more system-level use of async/await style mechanisms. Perhaps with Rust,…
Comment linking /2015/11/03/blogging-about-midori/
on “Writing an OS in Rust: Async/Await”Submitted Objects as Secure Capabilities as a story · 18 points
HN discussionFor starters, Xerox stuff for Interlisp-D, Smalltalk, Mesa and Mesa/Cedar, https://archive.org/details/bitsavers_xerox ETHZ Research https://people.inf.ethz.ch/wirth/ https://www.research-collection.ethz.ch/handle/20.500.11850/... "NEWP Programming Reference Manual" for ClearPath MCP (nee Burroughs B5000 in 1961) https://public.support.unisys.com/aseries/docs/clearpath-mcp... https://www.smecc.org/The%20Architecture…
Comment linking /2015/11/03/blogging-about-midori/
on “Mezzano – An operating system written in Common Lisp”Submitted Journey to Pulumi 1.0 as a story · 12 points
HN discussionhttp://joeduffyblog.com/2015/11/03/blogging-about-midori/ There is also a really great blog about Singularity’s “rebirth” experimental OS, Midori, that continued in its footsteps.
Comment linking /2015/11/03/blogging-about-midori/
on “WebAssembly and Back Again: Fine-Grained Sandboxing in Firefox 95”Submitted Safe Native Code (Midori OS) as a story · 11 points
HN discussion