Readit News logoReadit News
cryptoxchange commented on The server chose violence   cliffle.com/blog/hubris-r... · Posted by u/lukastyrychtr
theamk · 2 years ago
I don't think this will make reuse much worse even in a general programs, as long as there is a good division between expected errors (file not found) and unexpected (invalid operation code). In fact, there are a lot of ignorable errors in Unix which IMHO should have been raising a fatal signal instead, as this would substantially improve general software quality.

As an example: trying to close() invalid FD is a a non-fatal error which is very often ignored. But it is actually super dangerous, especially in multi-threaded apps: closing wrong fd will harmlessly fail most of the time, but 1% of time you'll close a logging socket or a database lock file or some unrelated IPC connection.. That's how you get unreliable software everyone hates.

cryptoxchange · 2 years ago
I agree with you in general.

However, in your example it’s the kernel that is deciding the request (message) is bad. In Hubris it is the message receiver.

This is a bit contrived, but imagine you’re receiving some stringly typed data from an external source and sending a message to a parsing task that either throws or messages you back with a list of some type t. Maybe it is returning ints and you as the client know that if something isn’t parsable as an int you want it to treat it as a ‘0’ because you’re summing the list. Somewhere else you want to call the same task, but you want strings that can’t be parsed to be treated as ‘1’ unless they can’t be parsed due to overflow (in which case you rethrow) because you’re taking the product.

In some situations it’s natural for the client to know more than the server about how to handle errors. With this nuke from orbit model, there’s some forced coupling between the client and server (mutual agreement over what causes a REPLY_FAULT).

cryptoxchange commented on The server chose violence   cliffle.com/blog/hubris-r... · Posted by u/lukastyrychtr
cryptoxchange · 2 years ago
It’s interesting how in a system where one team writes all the code, nuking your clients from orbit when they look at you funny can improve iteration speed.

It’s funny to wake up and read this after falling asleep reading about algebraic effects.

If you squint the right way, this is a kernel that lets a server perform an effect that the client cannot handle.

I feel like this would make code reuse and composition much harder, but provides a much simpler execution model. Definitely the right trade off in a static embedded system. You can always just vendor and modify a task if you need to reuse it.

cryptoxchange commented on The server chose violence   cliffle.com/blog/hubris-r... · Posted by u/lukastyrychtr
ezekiel68 · 2 years ago
> There is no way to “fix” the problem and resume the task. This was a conscious choice to avoid some subtle failure modes and simplify reasoning about the system.

One of Einstein's famous quotes is, "...as simple as possible, but no simpler." I'm pretty sure this design violates the latter portion. I'm not interested in operating environments that can tolerate no real-world chaos, and I'm not aware of any commercially viable realms which would either. What -- push it back to the init system to keep trying again? But by what mechanism would that strategy be able to understand the fault that occurred, in order to try again better?

Anyway, kudos for purity of conviction (I guess).

cryptoxchange · 2 years ago
It’s a 2000 line rust embedded systems kernel that doesn’t support adding new tasks at runtime. It is written to go deep in the guts of the 0xide server racks.
cryptoxchange commented on Coroutines and effects   without.boats/blog/corout... · Posted by u/todsacerdoti
vendiddy · 2 years ago
I would love something like this where to write a function with side effects I'd have to annotate it as such.

Then the compiler could recursively understand whether any given function is pure.

cryptoxchange · 2 years ago
The solidity language for smart contracts works like this.
cryptoxchange commented on CFPB Takes Action Against Coding Boot Camp BloomTech and CEO Austen Allred   consumerfinance.gov/about... · Posted by u/Jimmc414
dghlsakjg · 2 years ago
It’s really sad. My good experience at a boot camp seems the exception.

We had a curriculum designed by people with a background in education, externally audited placement rates, an exceptional alumni network, instructors and mentors with industry experience. Most importantly, it was a non profit.

It seems like there is something to be said for intensive vocational education. It’s a shame that there are so many people taking advantage of students.

cryptoxchange · 2 years ago
Do you mind sharing which bootcamp?
cryptoxchange commented on Amazon HQ2 was supposed to add jobs last year. It shed them instead   washingtonpost.com/dc-md-... · Posted by u/fckgw
cryptoxchange · 2 years ago
I know of multiple teams where 50% of the team were nominally HQ2/Virginia employees and 50% were distributed around the country last spring.

Folks on these teams speculated that the Return To Hub push was specifically thought of to meet HQ2 incentives.

None of the distributed employees ended up in Virginia. They all found local teams internally or left Amazon. When high performer leaves a team it’s common for others to leave since it breaks the ice. Lots of these teams then lost local talent to companies with less strict in-office requirements.

Markets are gonna communicate information whether you like it or not.

cryptoxchange commented on Why so many of us were wrong about missile defense   noahpinion.blog/p/why-so-... · Posted by u/paulpauper
datascienced · 2 years ago
My gut is Iran wanted the missiles to be intercepted. They wanted to show they are not pushovers but don’t want to escalate too much. In some sense the whole thing was a fireworks display by the countries involved. Like a warning shot.
cryptoxchange · 2 years ago
Every analyst I respect has the same take. This guy even glosses over that it wasn’t a general on a tarmac this time, but a general in a consulate that was extrajudicially murdered. Iran had to respond in a show of force to reestablish deterrence, without escalating the conflict, drawing the US in.

Two kids are on the playground, one has a big brother. They’re both constantly bothering each other. The kid without the big brother has to ride a thin line to not look like he’s trying to kill the other kid (causing the big brother to run over) while still bruising him back enough that the other kid leaves him alone until next week.

cryptoxchange commented on Never redefine an inherited default parameter value (1997)   cpptips.com/redef_dflt_pa... · Posted by u/Tomte
cryptoxchange · 2 years ago
This is the Liskov Substitution Principle in a hat and trench coat.
cryptoxchange commented on 2023 ACM Turing Prize awarded to Avi Wigderson   awards.acm.org/about/2023... · Posted by u/nanna
myth_drannon · 2 years ago
I looked at the book and it's more for graduate-advanced undergrad students.

Can someone recommend a more basic book on the topic of computation for someone with a rusty comp-sci/math undergrad background?

cryptoxchange · 2 years ago
Introduction to the Theory of Computation by Michael Sipser
cryptoxchange commented on The Rise and Fall of Silicon Graphics   abortretry.fail/p/the-ris... · Posted by u/BirAdam
fuzztester · 2 years ago
>You can buy a cheap Mac and easily write programs for it.

Interesting. How cheap? Never used Macs, only Windows and Unix and Linux.

cryptoxchange · 2 years ago
Every time I’ve checked over the last decade (including today), you can buy a mac mini that supports the latest macOS for under $250 on ebay. You can also test your app using github actions for free if your use case fits in the free tier.

There is no way to do this for an IBM z16, which is the kind of vendor lock in that people are saying Apple doesn’t have.

u/cryptoxchange

KarmaCake day138February 29, 2024View Original