Profile cover photo
Profile photo
Rafael Ferreira

Rafael's posts

Post has shared content

Post has shared content

Post has shared content
Many scientific papers take the form:

1. Stuff X happened
2. If hypothesis Y is false then the chances of something as extreme as X (for some definition of extreme) happening is less than p.
3. p is small, therefore it is likely that Y is true.

I'm going to ignore the fact that this isn't a sound argument. (An example of a sound argument might be "if X happened then Y is true with probability p. X happened and p is large. Therefore Y is likely true.)

One problem with the argument in 1, 2 and 3 is that if you try many different things that result in many different Xs you expect to be able to eventually cherry pick a suitable X that can be used to justify Y even if it's unlikely.

Given how obvious this problem is, why has it been getting a lot of attention so recently? I remember talking about this with researchers 30 years ago and nobody seemed to care.

Post has shared content
+Klaus Ostermann asked me what's so special about Chez Scheme, which I posted about yesterday (it's now open source). He's certainly not at all the only one to wonder. So let me try to dump my recollection. Others are welcome to pipe in.

Chez had a rare mix of blazing speed with rock-solid engineering, in the context of a language that was almost designed to make it hard to do either, much less both. (Scheme is über sane, and so are continuations in principle, but continuations touch on just about everything in the language and complicate them immensely; and you're working without types.)

Chez started quickly, ran quickly, and exited quickly. It has a minimalistic feel to it that was very consistent with the personality of its creators. Running Chez was like having a conversation with Kent, and Kent is one of the smartest people I've ever met. (I sometimes felt Kent was so understated because he didn't want to blow you away too much. A bit like Matthew Flatt.)

Also, Chez was not only a compiler + run-time system but also a REPL. The REPL is often an afterthought or a hack, but Chez also had a very carefully designed REPL. And the whole thing was devoid of lazy compromises: where other systems might say “Aw, if you want this go here, but if you want that go there”, Chez (rightly) felt was the responsibility of the system, so everything you wanted was available in one place. Why force you to call “the compiler” and generate a binary and what not? You should be able to just run the program from source and get every bit as good an experience, because your development flow is more important than the implementation team's convenience. It's hard to describe but a lot of it was about this “feel” that said, “no compromise!”.

Kent and his team are also fine language designers, and so Chez had some really lovely extensions to Scheme in there. Their design of syntax-case is still a case-study in language work for me. There were other things he and his students designed (multiple values, case-lambda, etc.) that were better than what the Scheme standardization effort came up with (and yet they rejected his designs for reasons I don't know). The team really knew how to balance expressiveness with performance, and managed to come up with solutions that had both.

Finally, for me it was heavily about continuations. In every other Scheme implementation, continuations were either slow, half-implemented (e.g., some cases—whether common or special—would not work by design because of a conscious implementation decision), or buggy, or two or even all three of the above. Kent was totally uncompromising about continuations, so he made sure none of the three occurred. When I decided I wanted to master continuations as a programmer, not just as a concept on paper, this was the only implementation I could truly trust. I pounded and pounded on it for months until I had achieved mastery, and it did not budge in the slightest.

(I actually discovered one or two bugs in Chez at the peak of my usage. It ought to be the top line in my resume. The thing is, when you discover a bug in Chez, you don't gloat; rather, that's how you realize just how hard it is to implement a programming language.)

Post has shared content
«“All you have to do to make military gobbledygook is to use academic gobbledygook and change the job titles—‘undergraduate’ to ‘lieutenant,’ ‘professor’ to ‘colonel,’ and ‘dean’ to ‘general,’” he explains. “Then throw in words like ‘parameters’ and ‘implement.’ Who can tell the difference? I sure didn’t, and the KGB even less so.”»

Post has shared content

Post has shared content
Many people think of religions primarily as systems of belief. I think this may be a skewed view because of the predominance of Christianity and Islam, both of which make creeds prominent. For example, although Judaism does have something like a creed, it tends to place more emphasis on practice than belief.

This reflects my view of mathematics. I think that for many, mathematics is a matter of belief. For them, mathematics is a way to find out what is and isn't true. I tend to see mathematics as a set of practices. As a result, I find myself bemused by debates over whether 2 really exists, or whether infinite sets exist, whether the continuum really is an infinite collection of points, whether infinitesimals exist, whether the axiom of choice is true, and so on. I find some ultrafinitists particularly confusing. They seem to believe themselves to be expressing skepticism of some sort, whereas to me, expressing skepticism about mathematical constructions is a category error. So to me, these ultrafinitists are surprising because of what they believe, not because of what they don't. This doesn't just apply to ultrafinitists. In an essay by Boolos [1], he seems confident in the self-evident truth of the existence of integers, say, but expresses more and more doubt as he considers larger and larger cardinals. Many mathematicians seem to have a scale of believability, and ultrafinitists just draw the scale differently.

Conversations between people who view mathematics (or religion) as being about beliefs, and people who view mathematics (or religion) as being about practices, can often be at cross purposes. And members of one group can often find themselves dragged into debates that they don't care for because of the framing of questions. (I don't want to debate the existence infinite sets, not because I can't justify my beliefs, but because I'm more interested in how to use such sets. I don't think belief is a precondition for use.)

Of course you can't completely separate belief and practice and I certainly do have some mathematical beliefs. For example I put a certain amount of trust in mathematics in my daily job because I believe certain practices will allow me to achieve certain goals.

[1] Must we believe in Set Theory? (I hope I'm not mischaracterizing this essay, but even if I am, the point still stands.)

Post has shared content

Post has shared content
For a while, TrendMicro Antivirus was running a server on every computer on which it was installed that allowed trivial remote shell execution as well as extraction of all passwords.

Post has shared content
David Bowie, 1947-2016

Even after his death, we're still trying to catch up with his music. What is this strange, scary stuff?

Brian Eno said:

"I received an email from him seven days ago. It was as funny as always, and as surreal, looping through word games and allusions and all the usual stuff we did. It ended with this sentence: 'Thank you for our good times, Brian. they will never rot'. And it was signed 'Dawn'.

I realise now he was saying goodbye."

A fan on YouTube wrote:

You have liver cancer, 18 months left to live, and a net worth of $230 million. How do you spend your last moments? On drugs? Sex? Wild escapades across the world? Maybe you would. Bowie, however, got himself into the recording booth and lent his whole voice rehearsing and recording over and over--shooting scenes and retaking them for videos constantly, despite dying of a fatal and often painful disease. That's Bowie's way of doing it. Giving us--all of us--his last moments.

That is arguably the greatest gift anyone has ever given me.

Wait while more posts are being loaded