Icelander. Eudaimonist. Individualist. Comonad enthusiast. Co-creator of the Unison programming language. Co-author of Functional Programming in Scala.
GPT-3 has basically replaced Google for me for searching through humanity's collective memory. Example below. The Google result is reminiscent of AltaVista from c.a. 1998.
These people are likely supposed to be of the Ahrensburg culture, about 9000 to 12000 years ago. As far as we know, they had dark skinned and blue eyes. The light skin and blonde hair characteristic didn’t evolve until the Bronze Age
It’s a simple misunderstanding of the problem as presented. They just take “false positive rate” to mean “the portion of positives that are false” rather than “the portion of all tests that are falsely positive”
3yo was learning about primary colors, and therefore asked a creative question: “are there primary numbers?”
Didn’t think I’d be teaching my 43 month old about primes, but here we are.
She loved the lesson, and felt very proud of her question and satisfied by the explanation.
Here's a crazy idea for technical interviews. Instead of whiteboard coding, 45-minute algorithms challenges, and brain-teasers, ask the candidate to bring some code they wrote. It can be anything. The interview is then just a code review.
In high school my funk band travelled to Denmark from Iceland by playing small gigs and saving up the money we got for wearing T-shirts plastered with logos of various companies we asked for sponsorship. We just asked each one if they'd give us ~$100 and they said sure.
The truly precious resource is not your time, but attention. Spending attention wisely improves the quality of your time. Conversely, time is worthless when you attention is scattered.
This book: "If you're feeling frustrated, that means you're low on dopamine and you need a break! Also if you're feeling frustrated that means your brain is about to learn something new and you should keep going!"
Well, which is it?
20 years ago, the experience of buying a new computer was “wow, this thing is incredible, check out all the cool stuff it can do”. These days the experience is “this is just like my old one except the keyboard kind of sucks”.
Alice makes shoes, but needs fish. Bob fishes, but need shoes. They trade. Existential Comics: "Sounds good."
Alice has some money, but needs a steady income. Bob has a steady income, but needs some money. They trade. Existential Comics: "This is a crime!"
I’ve panicked during algorithms interviews. More than once. Like “what even is programming” panicked. Not only didn’t I get those jobs, but people I considered my peers thought I was a complete idiot, or that I lied on my resume.
There's a way of programming that I've been doing for decades and I realized recently it doesn't come naturally to many folks, so here's a pro tip:
Write to the interface you'd like to have. That is, write the code you want, even if it doesn't work, then make it work.
More than any statistics, this is a misinterpretation of what "false positive rate" means. The result is consistent with an interpretation meaning "for any given positive there's a 5% chance it's false". But that's not what "false positive rate" means.
$1M has to be gross revenue. The company is "making" maybe 70 cents on each of those lattes. So if he makes lattes nonstop for an hour, his cut is $20 and the company's cut is $28. If there's a lull and he's working at half capacity, he still gets $20 and the company $14.
Introvert problems: when a meeting has been going for more than an hour, my energy for human interaction is depleted to the point where no matter what the original problem was that we were trying to solve, the problem at that point from my perspective is that we're still talking.
I find daily standups and other regular status reports pretty demotivating. I know lots of people do. Is there any good research into the psychology of this?
Software development estimation is a crucial activity because people need to make plans, and a low-resolution plan is better than none at all.
But too often, estimation is seen as:
[continued...]
I don’t have a CS degree, nor any other degree. I think it’s fair to expect devs to have studied CS, but university is a pretty inefficient way to do so.
I expect a woman to keep her nails neat. Preferably organized by gauge, length, and type (finishing nails, framing, brads, etc.). This makes it easier to find what you need quickly when working on a project.
If you're looking for a good introductory text to category theory, I enthusiastically endorse Seven Sketches in Compositionality by @david_i_spivak and Brendan Fong. Available from MIT for absolutely nothing: math.mit.edu/~dspivak/teachi…
The power consumption for a superconducting circuit is potentially 1000x lower than a comparable semiconducting circuit, so at the very least you might be able to run an A100 at a few milliwatts.
I’m with Bob on this one. We should be making library calls to interact with relational databases, not generating textual SQL to send over basically telnet
When I moved to the US, I found that restaurants expect the customer to know the American diner culture jargon for various ways of cooking eggs. Most of the English-speaking world has no specific terminology for this. It’s just a “fried egg”.
My take on the whole “pure FP” current thing is that I don’t super care about purity per se. For me it’s only a vehicle to compositionality, which is what I’m really after.
There are only two ways to understand programs:
A common mistake managers make is trying to make sure everyone they manage is busy at all times.
Managers: instead of giving people low-impact work just to make sure they're doing something, create space for them to discover high-impact work and let them take the lead on it.
They do know the names, but they’re used to larger scales. Like if you visited the USA, you wouldn’t say “I just came back from New Jersey and Pennsylvania”
I hate it when programmers use complicated jargon like “marshalling” and “parsing”. Just say plainly what’s going on. It’s just semigroupoidal composition and decomposition.
I don’t know, maybe making a distributed system that serves millions of requests per second and can run flawlessly without manual intervention? Just a guess.
That said, I have also aced these interviews after a lot of prep and a few failures.
I honestly think algorithms interviews are a pointless hazing ritual. If they test anything, it’s how well you’ve prepped for a algorithms interview, technically and psychologically.
Altruism stops for a child crossing the road.
Effective Altruism keeps going so as not to delay the hundreds of people in traffic behind.
"Longtermism" swerves to hit the child so no one will ever again be delayed by them or their descendants.
Hope that helps.
In Iceland, @decodegenetics is testing for COVID-19 anyone who wants to be tested. They can test 1000 people a day, so in a month they'll have tested 10% of the country's population. They have some interesting findings:
(thread)
Functional Programming in Scala 2nd Edition is in print! Huge thanks and congrats to @mpilquist for updating the whole book and converting all the code to Scala 3.
I'm told there's a 45% discount if you use the code pbpilquist, until May 24.
manning.com/books/functional…
Idle thought: programming languages have no concept of the user of the program. What would a language look like that had first-class support for modeling user concerns?
Many people have showcased OpenAI's new AI assistant in amusing ways, or denigrate it as merely a "chatbot". Granted, it cannot browse the internet or perform any kind of automation. But you can use it to do useful intellectual work, today. Here are a few ways you can use it:
PHB: “Make a backend for the website and app that can serve a realtime feed to millions every second.”
[Years pass]
Devs: ok, systems working great now
PHB: you’re all fired.
[weeks pass]
PHB: system’s working even without all the devs! I wonder what they were doing all day!
I recently learned that a fairly innocuous paper I wrote on free monads in Scala hugely influenced the development of quantum computing at Microsoft
johnazariah.github.io/2018/1…
Mine was 12 years ago this month.
Interviewer: “How would you reverse a linked list?”
Me: <writes on board> foldl (flip (:)) []
Interviewer: <writes in notes> does not write actual code
Function composition lets you take functions X⇒Y and Y⇒Z and get a function X⇒Z. There's also an X⇒X that does nothing.
Normally you can't compose X⇒M[Y] and Y⇒M[Z] to get a function X⇒M[Z]. A monad for M is a way of doing that. It also has an X⇒M[X] that does nothing.
What is this cultural obsession with early mornings? I'm fairly sure no work of any significance happens between the hours of 5 and 7 AM, and that most of the technology we rely on in our lives was created in the hours between 9 PM and 3 AM.
Superhero movie fights are stupid and boring. We have no sense of whether the combatants can hurt each other. Oh, that one can shoot lasers out of his eyes, I guess that’s cool, but the other guy just shrugged it off. They might as well do a dance-off.
Software Engineer here. I started using GPT-3 last summer, and by now it's writing about 80% of my code for me. It's especially good at writing test cases and software documentation.
On average, the genetic difference between any two people is about 0.1%. This means that 99.9% of our DNA is identical across individuals. So a 99.6% match indicates a pretty large difference genetically.
"Oh but if not everyone is subjected to the exact same hazing ritual, how will we objectively rank candidates against each other?"
The idea that you can even do that is ludicrous. People are not ciphers. Each candidate is a complex human with unique strengths and gaps.