I hired somebody to do the toilets. Fuck that.
1,260 karma · joined July 12, 2017
I hired somebody to do the toilets. Fuck that.
Edit: I like the Appel compiler book. One of my students enjoyed “Writing a C compiler” by Nora Sandler. There are also a number of classic compiler books that feel more relevant once you are deep in the weeds.
Even before slop coding good code review was hard, because verification is a hard problem. But we have many tools at our disposal to increase confidence without having to go full-on mathematical proof. Human understanding has always been the bottleneck, and as long as the thing you are doing is for humans, humans will have good reasons to want to understand it, so they will remain the bottleneck. This is ok. It’s ok for humans to be the rate-limiter. But don’t go it alone and fry your own brain.
[1] https://myotherpants.com/tag/test-first/
[2] https://www.amazon.com/Programming-Haskell-Graham-Hutton/dp/...
This is a distinction without a difference. In a static, type-safe language, T always has to be instantiated with a type. But that does not change the fact that, from the perspective of the function definition, T is any type. T must be a specific type for the function call.
I like combinator style parsers because 1) it’s really easy to think of a discrete parsing task as a function 2) tokenizing is mostly irrelevant 3) for pedagogical reasons, they make it easier for students to grasp the point of curried functions and partial application.
I even maintain a (mostly mature) parser combinator library for TypeScript for students in my research group to use.
A good example is Kahneman and Tversky’s work on the conjunction fallacy. We now know that “stereotype threat” is not the only reason somebody might make a mistake of the kind they were studying. And over the decades, better experiments introduced better controls and more nuanced analysis. That said, people still make conjunction fallacies, but the effects are not as pronounced as originally believed. Is this bad science? Absolutely not! The finding is, in fact, pretty robust; we just know that there’s more at work.
So how do you count that? Is that a “failure to replicate”? Technically speaking, yes. But it is not bad science, and more importantly, it’s not a standard that we hold even “hard” scientists to. Nobody is saying that Newton has been discredited because of general relativity.
I'm glad that people are using whatever tools are effective to find bugs, but if you expect a human audience to read about your findings, then is it not unreasonable to ask a human to write it? Most of the time a bug reveals a flaw in logic, and in operating systems, sometimes those logical flaws are informative, and lead to new and better designs, not just bug fixes. So there are potentially missed opportunities here.
I am probably misremembering, but the OpenBSD documentation used to even explain how to disable inetd if you were too paranoid to use that. It is now disabled by default, and--I just checked one of my running systems--my machine does not even have an /etc/inetd.conf file. Most of the things running on a default install are init, cron, slaacd, a handful of gettys, ntpd, syslogd, and sndoid. Arguably sndiod is the only thing you could really remove from that list.
Context: I teach a college-level security class where undergrads do stack-smashing-like attacks (and every year a handful of talented students manage to pull off things like ROP attacks, analysis of entropy for a layout randomizers, or side-channel attacks). All of their writeups are much better than this one.
Gentoo was fun while it lasted (fluxbox user here!). I decided that MacOS X wasn’t so bad after all after that.
Not only does flossing remove quite a bit of, er... stuff... that toothbrushing does not seem to get, I have not had a single new cavity in 25 years. The only issues I've had were old fillings falling out, including one that cracked my tooth which required a crown. Not a lot of work considering the time span.
Obviously one person is not "data" but seeing as I am that one person, I'm going to keep flossing.
True, but if saying “please” has a measurable functional effect then this is an important characteristic of the system. I also observed that saying please and thank you produced notably different responses. For me, there’s no real danger of anthropomorphism—I recognize that it’s a machine. But I also want it to do what I ask, so in my mind it’s really no different than having to use semicolons in Java but not in Python.
I feel like I would be hard pressed to explain what I want in English more concisely than just writing a SQL query.