Mark Dominus writes The Universe of Discourse, covering math, programming, languages, and miscellaneous curiosities since 2006.
HN commenters recommend it as a blog consistently worth reading, describing it as about one-third math and the rest everything else, often reaching the front page.
I agree with sjburt when he says "I think once you understand the graph, then looking at what the graph looks like and what you want it to look like usually leads you to being able to figure out what operation you want." When I was first getting in to Git ~10 years ago, I remember that I found the PeepCode "Git Internals" book[1] very helpful for getting that understanding of the graph.
Once you have the better understanding of the graph, it's hard to find resources on how to improve from there; most resources focus on beginner stuff, or function more as a technical reference without really talking about use-cases. I've found following Mark Dominus' blog[2] for his posts about Git to be the single best thing to "level up" my Git usage once already being at a high-level.
[1]: At the time, I had to pay money for the eBook, now they have the whole thing on GitHub: https://github.com/pluralsight/git-internals-pdf
[2]: https://blog.plover.com/
It's a weird example, but what about
a 1 b 101 ?
It is neither prefix-free nor suffix-free. Yet every occurrence of 0 corresponds to an occurrence of b.
However, this is obviously inefficient. So I guess the question is whether there's an optimal code which is neither prefix-free nor suffix-free.
--------------
EDIT
I did some googling and found this webpage https://blog.plover.com/CS/udcodes.html where the author gives the following example of a uniquely decodable code:
a 0011 b 011 c 11 d 1110 I guess this is "almost" prefix-free since the only prefix is c of d. If a message starts wiht 1, you could find the first 0 and then look at whether there's an odd or even number of 1's. So I think I can see how it's uniquely decodable. However, my crypto knowledge is too rusty to remember how to show whether this is an optimal code for some probability distribution.
Perl, like other scripting and late-binding languages, is very flexible ("duct tape of the internet"). Amazon is reputedly a Perl shop and it gives them agility to quickly experiment with new retailing ideas. But the knowledge they gained, and the site they built, wasn't due to Perl - it was due to them working on problems they found.
Here's someone else who solves problems: http://blog.plover.com (and who wrote Higher Order Perl).
All learning is commendable, including learning from a language. But to think that knowledge comes only from existing languages is to constrain one's knowledge, and for oneself to be defined by one's tools. Languages aren't the source of intellectual nutrition; they are a conduit to it (or how could they be created in the first place?). The source is creating solutions to problems.
"Principia Mathematica is an odd book, worth looking into from a historical point of view as well as a mathematical one. It was written around 1910, and mathematical logic was still then in its infancy, fresh from the transformation worked on it by Peano and Frege. The notation is somewhat obscure, because mathematical notation has evolved substantially since then. And many of the simple techniques that we now take for granted are absent. Like a poorly-written computer program, a lot of Principia Mathematica's bulk is repeated code, separate sections that say essentially the same things, because the authors haven't yet learned the techniques that would allow the sections to be combined into one."
- Mark Dominus (https://blog.plover.com/math/PM.html)
Whenever someone mentions building a billing system, I feel compelled to share Mark Dominus' delightful article, "Moonpig: a billing system that doesn't suck":
> Sometimes I see other people fuck up a project over and over, and I say “I could do that better”, and then I get a chance to try, and I discover it was a lot harder than I thought, I realize that those people who tried before are not as stupid as as I believed. That did not happen this time. Moonpig is a really good billing system. It is not that hard to get right. Those other guys really were as stupid as I thought they were.
https://blog.plover.com/prog/Moonpig.html
If this is new, then you're one of today's luck 10,000![2] Serious logical foundations take a lot of time and exposition to start from fundamentals. Dismissing them as non-serious because GP's argument failed to consider them is misguided, IMHO.
[0] The classic reference: https://en.wikipedia.org/wiki/Principia_Mathematica -- over 1,000 pages, Betrand Russell
[1] https://cmartinez.web.wesleyan.edu/documents/FP.pdf -- a bit more modern, relying on other mathematics under the hood (like DRY reduces the base count), 11 pages
[2] https://xkcd.com/1053/
[3] Some reasonable review https://blog.plover.com/math/PM.html