1.5.22
Object-Oriented Programming — The Trillion Dollar Disaster
Elixir engineer Ilya Suzdalnitski explains from the perspective of an engineer who has used both why he prefers functional programming to object-oriented programming systems. OOPS!
Labels: Functional Programming, Object-Oriented
27.4.22
How to Speak
A master class from Patrick Winston of MIT on how to present ideas clearly. Chockfull of useful advice, much of which I've not seen elsewhere. Recommended.
Labels: Academia, Communication, Writing
7.4.22
Vote!
It's time once again! The below is copied from https://www.gov.uk/register-to-vote. The site is easy to use and registration takes less than five minutes. I'll be voting for the Scottish Green Party.
Deadline for registering to vote in the 5 May 2022 elections
Register by 11:59pm on 14 April to vote in the following elections on 5 May:
- local government, combined authority mayoral, mayoral and parish council elections in England
- local government and community council elections in Wales
- Northern Ireland Assembly election
Register by 11:59pm on 18 April to vote in the local government elections in Scotland on 5 May.
Who can register
You must be aged 16 or over (or 14 or over in Scotland and Wales).
You must also be one of the following:
- a British citizen
- an Irish or EU citizen living in the UK
- a Commonwealth citizen who has permission to enter or stay in the UK, or who does not need permission
- a citizen of another country living in Scotland or Wales who has permission to enter or stay in the UK, or who does not need permission
Check which elections you’re eligible to vote in.
You can vote when you’re 18 or over. If you live in Scotland or Wales, you can vote in some elections when you’re 16 or over.
You normally only need to register once - not for every election. You’ll need to register again if you’ve changed your name, address or nationality.
Register online
It usually takes about 5 minutes.
Labels: Green, Independence, Politics, Scotland, UK
Haskell in Production
Serokell has a series of posts on Haskell in Production. Spotted by Alex Wasey. Thanks, Alex!
Labels: Functional Programming, Haskell
30.3.22
Programming language to the stars
TIL that my students can choose among about forty different firms interested in hiring Haskell programmers. Among them is Co-Star, a firm that provides horoscopes to millions of users, which has put up a page detailing why they choose Haskell over other languages. Thanks to Alex Wasey and Dylan Thinnes for the pointer.
Labels: Functional Programming, Haskell
3.3.22
Optics vs Lenses, Operationally
A great blog post by Bruno Gavranović, with a clear and beautifully illustrated explanation of why lenses and optics are equivalent denotationally, but optics are superior operationally. There is also a video of a corresponding talk.
Labels: Category Theory, Functional Programming, Programming Languages
10.1.22
Gödel, Animated
A five-minute primer on Gödel and incompleteness, courtesy of Marcus du Sautoy and TED-Ed. While not named, the fellow in the hat disgruntled by the discovery is clearly Hilbert.
Labels: Logic, Mathematics, Science
5.1.22
Beyond the Scope
Researchers tend to focus on research, ignoring relevant politics. But of course we should pay attention to the context of our work. Here is a comic on that subject, by Max Easton and Lizzie Nagy. Spotted in The Nib.
Labels: Academia, Politics, Science
6.9.21
Concurrency, State, and Cardano
After months of testing with smaller groups, the Cardano public testnet was recently upgraded to support smart contracts. The surge of activity that followed included many dApp tests and experiments, with developers eager to perform a large-scale test and show off their hard work. This effort has created a ferocious discussion around some of the design decisions behind Cardano. Many critics are using this discussion as an opportunity to point to Cardano, misrepresent the problem, and ultimately underestimate the potential of one of the giants of the crypto industry. Misconceptions are now floating around suggesting that Cardano only supports one transaction per block, only one user can interact with a smart contract at a time, and that cardano is ultimately destined for centralization. All of these are inaccurate, and we present below a new framing and the start of a few solutions that dApp builders might choose.
Labels: Blockchain, Concurrency, Cryptocurrency, IOHK
5.9.21
Reading list
Kevin Doran wrote to me requesting a reading list on logic. He recommends an introductory guide to logic by Peter Smith. Smith's appendix lists several textbooks on logic, but misses my two favourites.
- Jean-Yves Girard, Yves Lafont, and Paul Taylor. Proofs and Types. CUP, 1989. The master logician (discoverer of System F and linear logic), aided by two superb computer scientists, covers the basics. Explains additive and multiplicative proof rules, and the fundamentals of propositions as types.
- Jean van Heijenoort, From Frege to Gödel A Source Book in Mathematical Logic, 1879-1931, Harvard University Press, 1967. My favourite entry is the correspondence between Russell and Frege---it is only a few pages long and so a quick read; don't skip van Heijenoort's introduction. See also Anita Feferman's biography of van Heijenoort, who lived quite a life: he served as Trotsky's secretary and was shot to death by a jealous lover.
Labels: Formal Methods, Logic