I read Careless People and then Character Limit: How Elon Musk Destroyed Twitter and they felt like a good pairing. "Character Limit" is also one of the best book titles ever. I highly recommend both.
HN user
_russross
I don't have a problem with data centers and would welcome one nearby if it was a good deal for the area. But I'd want binding contractual agreements about environmental guarantees and requirements for building out new renewable energy generating capacity of 100% or even 150% of what the data center itself needs (and not just outbidding buyers of existing grid capacity). Instead we are handing out regulation waivers and tax incentives and telling locals they don't matter.
Turing himself argued that trying to measure if a computer is intelligent is a fool's errand because it is so difficult to pin down definitions. He proposed what we call the "Turing test" as a knowable, measurable alternative. The first paragraph of his paper reads:
I propose to consider the question, "Can machines think?" This should begin with definitions of the meaning of the terms "machine" and "think." The definitions might be framed so as to reflect so far as possible the normal use of the words, but this attitude is dangerous, If the meaning of the words "machine" and "think" are to be found by examining how they are commonly used it is difficult to escape the conclusion that the meaning and the answer to the question, "Can machines think?" is to be sought in a statistical survey such as a Gallup poll. But this is absurd. Instead of attempting such a definition I shall replace the question by another, which is closely related to it and is expressed in relatively unambiguous words.
Many people who want to argue about AGI and its relation to the Turing test would do well to read Turing's own arguments.
I bought one of the first 2022 Maverick Hybrids and took delivery in January 2022. At the time my build came in at MSRP of $25k (+ tax). I just built the closest equivalent on the Ford website (several standard features then are options now) and it came out to >$34k. Not double, but that feels like whole different price category for the same truck in 4 years.
I am in the minority who thinks Raft is overrated.
I tried teaching Raft one year instead of Paxos but ended up switching back. While it was much easier to understand how to implement Raft, I think my students gained deeper insight when focusing on single-decision Paxos. There is a lightbulb moment when they first understand that consensus is a property of the system that happens first (and they can point at the moment it happens) and then the nodes discover that it has been achieved later. Exploring various failure modes and coming to understand how Paxos is robust against them seems to work better in this setting as well.
I think this paper by Heidi Howard and Richard Mortier is a great way to move on to Multipaxos:
https://arxiv.org/abs/2004.05074
They present Multipaxos in a similar style to how Raft is laid out and show that Multipaxos as it is commonly implemented and Raft are almost the same protocol.
Raft was a great contribution to the engineering community to make implementing consensus more approachable, but in the end I don't think the protocol itself is actually more understandable. It was presented better for implementers, but the implementation focus obscures some of the deep insights that plain Paxos exposes.
Let me make sure I understood this correctly: having a CS degree will turn you into a cartoon stereotype of a technical nerd, but getting any other kind of degree in the world will enable you to be a well rounded person and still learn CS skills. Somebody should really look into the damage being done by CS diplomas.
There is an RFC for this:
I've never really liked the look of the Tikz-generated automata. Something about them always looks a little off to me. I also dislike the use of 0 and 1 as the canonical alphabet. a and b look nicer, they stand out better in written instructions and solutions (when typeset using math mode), and (this sounds silly) sound nicer when talking about them with the class. Using 0 and 1 seems to imply some connection to binary that is not really there and probably confuses or misleads some students.
Of course, everyone will have a different opinion on such aesthetic matters. I taught an undergrad comp theory course for a decade or so and I wrote my own similar package[1] for generating diagrams using Metapost that built on the standard boxes package. Students were able to learn the system pretty quickly and the results were usually good, though it was pretty easy to pick out which students did/did not care about how things look.
I was expecting it to be hard to recognize, but I guess all those countless hours listening to Kid A on repeat back in the day have finally paid off. The moment is unmistakable.
It seems like modern languages adopt more and more ideas from functional programming as time goes by (garbage collection, closures and higher-order functions, parametric polymorphism, immutable values, algebraic types). Modern languages designed for general-purpose use are mostly hybrids, and the functional influence has been steadily growing over the decades.
What influence has Forth had?
I can't wait for the rest of the series:
Climate change is 99% solved. The last 1% is the hardest.
We are 99% of the way to ending all wars. The last 1% will be the hardest.
Scientists are 99% of the way to curing cancer. The last 1% will be the hardest.
etc.
In English, meaning is defined by common usage. I know the formal logic hipsters have mounted a persistent campaign to make an exception here, but the fact remains that "begging the question" means exactly what ordinary people think it means.
I think that overstates the difference. I think a better analogy is architects vs. construction workers. Any decent architect will have a pretty strong understanding of the realities of construction, and an experienced construction worker who has moved around through different trades could probably design a decent house. But you'd only trust a trained architect on bigger, more complex projects, and you'd want disciplined, experienced construction workers doing the work on anything that is meant to last.
I teach using xv6 and would add a couple more items to what others have already pointed out. They mainly come down to simplifications that remove distractions from the core ideas:
* The system assumes a fixed amount of RAM and a fixed memory layout, so there is no discovery process and no adaptive code to go with it
* The process table is just a small array--no dynamic allocation necessary, and the system can just do a linear search to find an unused entry
* The userspace is simplified. There is a single stack (no threads) of fixed size, mapped memory starts at address 0, and memory is layed out so that only a single number is required to track the size of the entire address space: the size is the top of mapped memory.
Simple data structures are used everywhere, and the emphasis is always on clarity, not efficiency or flexibility.
I remember this was a protection scheme, but I don't remember who used it. They would use a laser to burn a small hole in the disk. At load time, the program would attempt to write to the sector with the hole and then read it back. If it succeeded, they knew it was a copy.
Basically, they created a disk that could accept writes everywhere except a certain sector, something you could not replicate with even a perfect copy.
Search for "timetabling". Googling for "scheduling" isn't very helpful because it can mean so many different things, but "timetabling" will give you lots of info on a problem very similar to yours.