It is our responsibility to spread free software, free computing (one of the websites started by me :D) and advocate for user freedom. Please don't waste any chances to do so.
Most of my new articles are available at the Request for Discussions Website. Older ones will be republished there.
As there's a lot of stuff with school, etc. going around, I'm currently inactive on writing articles and stuff. I have many recent ideas, and I'll turn them into RFDs when I have time. (Secondary school in China is some work, really, compared with many other places.)
Help me ponder upon these questions
These are questions that interest me. Maybe you have ideas?
A Lisp-like Operating System
Anybody who has tried functional programming knows that Lisp and Haskell are special and great programming languages. Most Lispers and all Haskell programmers adhere to the functional style of programming, creating mathematically-provably-correct programs. I love the fact that Haskell supports Monads well and that it's statically typed (having the debugger find your issues is much more comfortable than debugging mid-run, while it's true that GHC has quite good debugging utilities. On the other hand, Haskell and Common Lisp have so many pragmatics and syntax sugar. Scheme (which I consider to be a dialect of Lisp) is much more uniform and symmetric (think of group theory) in syntax, but has bad support for lazy evaluation.
There are many modern operating systems, for example the BSDs, GNU+Linux, Plan 9, etc. (Microsoft Windows and macOS don't count, they're nonfree.) But security issues are discovered every year in each of them, even OpenBSD, which is considered the most secure operating system for general use. A lot of this has to do with the programming language they're written in, C.
In C, you've got a heap of pointers, memory stacks, arrays, linked lists, structures, etc. that you all have to manage by yourself. This leaves huge gaps for programmer error. By contrast, it is possible to mathematically prove the correctness (or the lack thereof, though I only use “Possible” because of Godel Incompleteness) of a functional program. This eases the work for programmers.
Most, if not all security issues in programs written in classical imperative programming languages are with bogus stacks, pointers, etc. There are countless times when stack overflows are used in attacks. By using functional languages, it just works!
There have been great proposals by other people on this ideea. If you are into operating system development and programming in general, please read it, and share your thoughts with me. If many people voice on this issue, I'll start an mailing list.
What about a pure functional Lisp dialect, with monads and similar (Haskell) ideas?
I love s-expressions, as they clearly represent the structure of a program, or even natural language. They also allow for powerful macros, enabling some Lisp dialects to have continuations and other cool stuff. Haskell, on the other hand, is purely functional, where things that involve side effects are usually implemented with Monads. I'm looking for an implementation that combines these.
The Shen Language seems interesting.
What about a mathematical political system?
A government too strong causes authoritarianism which may lead to non-democracies, while a government too weak causes the inability of the government to do anything with the slightest controversy (look at COVID handling). Is there a mathematical way (say a function; this sounds like group theory, but I'm not sure) to compute, based all known information known about the bill/order/whatever being considered, if the government (I'm especially talking about the executive here) has the right to order that? I feel like this could be proved impossible due to incompleteness and unpredictability, but this needs further investigation. This is the main problem in question of the Libre Society project, by the way.
Quotes
Arguing that you don't care about the right to privacy because you have nothing to hide is no different from saying you don't care about free speech because you have nothing to say. —Edward Snowden
About me
I am Andrew Yu. My main fields of interest are philosophy (especially moral philosophy, and especially especially moral philosophy in technology), metamathematics, programming fundamentals and molecular biology. I'm also a free software activist.
Contact
There are many ways to contact me. None of these require proprietary software.
- talk to me in real life (This method is preferred, if you know me in real life.);
- mail andrew@andrewyu.org (Emails are preferred for in-depth discussions.);
- xmpp andrew@andrewyu.org (My OTR fingerprint is
D860F6CC FEF3D079 A6964AA3 86BD6A34 8F86E218
and my OpenPGP fingerprint is as below. Use this for quick questions, or highly interactive discussions.). - irc Andrew on LibreIRC (LibreIRC is an IRC network started by Andrew, myself, running Solanum IRCd and Atheme Services. Use this for quick questions, or highly interactive discussions. Since talking on Internet Relay Chat requires people to be online at the same time, use a bouncer, or don't close your client, to ensure that my replies reach you. Of course you can also give me another way to get to you that's persistent.);
- irc Andrew on Libera (Libera is an IRC network popular among free software users, activists and developers. Use this for quick questions, or highly interactive discussions. Please note that for privacy purposes, you should use some type of encryption. I am not affiliated with Libera and I don't run it in any way. Of course, either be on there all the time or give me another way to contact you.).
There are many ways not to contact me.
- WeChat is deprecated and unsupported. I only keep an account for school and use Mojo-Weixin to relay it to IRC. If you're also bothered by the mandatory usage of these software at school, sign the give students user freedom petition by the FSF;
- .
OpenPGP
- My ECC key is recommended;
- My RSA key is a fallback;
- My keyring for friends;
- The revocation of my old key.
Check if you've actually downloaded these keys from andrewyu.org
. Check the fingerprints with me elsewhere (email, IRC, in real life, etc) before trusting or signing it.