I studied a lot of abstract algebra in college and grad school and I’m surprised that rings and algebras would come up in a CS degree. What algorithms topics used those concepts? Something about polynomials?
HN user
agrounds
Absolutely agree. All formal statements (like mathematical ones) are going to have some level of assumed background. And as the assumed background expands, the language naturally becomes more information dense.
As for your specific questions, I believe Wikipedia does a great job of answering two of them for a layperson:
https://en.wikipedia.org/wiki/Ring_(mathematics)
https://en.wikipedia.org/wiki/Vector_space
For the others, I’ll say that a formal variable is just a symbol (literally, like the letter t). With such a symbol, we can construct polynomials like 2t^2 - t + 3. Also, there’s no need to only use integers as the allowed coefficients; you can use any ring you like instead.
An “algebra over the ring R” is what I was attempting to define in my comment above. The algebra is “over” R if we can multiply an element of the algebra by an element of R. The useful analogy here is scalar multiplication in a vector space: you can multiply a vector by 2 to double it or -1/2 to reflect and shorten it. More generally, it makes perfect sense to consider some more general version of vectors which can be scalar multiplied by elements of any ring R.
Z is the ring of integers, t is a formal variable allowing us to discuss polynomials whose coefficients are in some ring. That’s what R[t] means: the ring of polynomials of the formal variable t with coefficients in R. Adding in t^-1 lets us include inverted terms like 2t^-3.
An algebra over a ring (call it S so we don’t confuse it with R from the previous paragraph) is a like a vector space over S, with the added structure that you can multiply elements of the algebra together (vector spaces only let you add their elements together). So for example the collection of even integers 2Z is an algebra over the ring of all integers Z. The collection of all polynomials with integer coefficients, Z[t], is another algebra over Z.
This is a great example of how dense language gets in math. There are tons of concepts hiding in the unstated background. Many are quite simple to explain individually, but there are so many of them that an outsider won’t know where to start to tease them apart. There’s a good reason to do it this way though; it would take a very long time to say anything in math without ever increasing levels of information density.
I dunno, why own a car when you could ride your bike instead? They’re just different things and people may choose to use one over the other for a variety of reasons.
if an AI is confidently telling you something wrong it's hard to work with.
But they all do that. It just comes with the territory. Grok will absolutely do the same thing another time you try it.
And everyone you ever want to share files with locally also has access to your home VPN?
There are dozens and dozens of cheap-looking restaurants in San Antonio with absolutely no online presence that will serve you the most delicious tex mex you’ve had in your whole life
Thanks very much for sharing these notes. I studied algebraic topology in grad school but somehow avoided knot theory entirely. Reading these has sparked that feeling I had when I first got into topology.
This is a naive take. Are there specific instances involving individuals of many nationalities/ethnicities? Yes. Is ICE then ignoring race during its operations? Absolutely not. ICE agents are arresting people based solely on their physical appearance and accents. It is band faced racism.
Agreed. But generally it very much depends on the school and the effort of those in and around it. Terrence was very fortunate to have parents who supported him and likely lobbied for his unconventional high school/primary school split education, and equally fortunate that his schools were able and willing to accommodate him.
I use a subset of omz by cloning it and manually sourcing the plugins I want myself rather than initializing the entire omz system. No themes, no checking for updates, etc. For me, it’s the best of both worlds.
I describe my setup and how to use it on a fresh MacBook here: https://github.com/agrounds/dotfiles
Superficially, these look the same, but at least to me they feel fundamental different. Maybe it’s because if I have the ability to read the script and take the time to do so, I can be sure that it won’t cause a catastrophic outcome before running it. If I choose to run an agent in YOLO mode, this can just happen if I’m very unlucky. No way to proactively protect against it other than not use AI in this way.
> I also like how you can manage Python versions very easily with it. > I still don't understand why people value this so highly, but so it goes.
Well I do need some way to install multiple python versions in parallel, and ideally the correct python version would be used in each project automatically. I used to use pyenv for this, which puts shims in your path so that it can determine which python executable to run on the fly, but I found that it was sometimes very slow, and it didn’t work seamlessly with other tools. Specifically pipenv seemed to ignore it, so I’d have to use a workaround to point pipenv to the path to the pyenv-installed python executable.
When one tool does both python installs and dependency/venv management, then it can make these work seamlessly together, and I don’t need to screw up my path to make the version selection work either.
What I was not aware of: `venv`s need to be created with the version of python they are supposed to be run. So you need to have a downgraded Python executable first.
This is one of uv’s selling points. It will download the correct python version automatically, and create the venv using it, and ensure that venv has your dependencies installed, and ensure that venv is active whenever you run your code. I’ve also been bit by the issue you’re describing many times before, and previously had to use a mix of tools (eg pyenv + pipenv). Now uv does it all, and much better than any previous solution.
Yes
Scala 3 has failed to be widely adopted, and now the language as a whole is more or less dead. Not that that’s due to the 2-to-3 transition entirely.
Scala 2’s implicits have been a source of great pain in many Scala codebases at many different organizations. They are too powerful. The situation is comparable to languages that depend on gotos instead of structured control flow elements (for/while loops, if statements, function/subroutine calls).
I can’t speak for Scala 3 as I haven’t used it at all. If they’ve limited the power of implicits to a few more structures usages it would be a great benefit to the language.
Seconding quartz. I also use it and love it.
It converts your markdown files to static HTML, understands Obsidian-specific markdown features, and just looks really nice IMO.
For publishing, I use Cloudflare pages to host the static HTML and Cloudflare workers to build the HTML whenever I push a commit to the GitHub repo hosting my markdown files. Quartz has documentation showing you how to set this up, and it’s all within the free offerings of Cloudflare.
Inertia. There are still a ton of Java shops out there, and many of them will not switch even partially to another language anytime soon. The hope is that these orgs might find it easier to upgrade to Java 21+ than to learn and start using Kotlin/Scala/etc. I fully expect I might find myself working at such an org again, and when I do I’ll be grateful for newer Java features.
Signed, a dev who would never willingly choose Java over Kotlin for anything ever again.
Category theory was not a response to any limitations of set theory, but rather a collection of new abstractions, still grounded in set theory (originally anyway). The first paper introducing these abstractions was by Eilenberg and Mac Lane [1], who formalized for the first time the idea of natural functions between mathematical objects.
For a long time prior to E&M, mathematicians had used an informal notion of “natural” or “canonical” mapping, which meant something like one special mapping out of several available ones. Especially important is the idea of natural isomorphisms. Just knowing that two objects are isomorphic is often not good enough to prove results about them because you have to make a choice about which isomorphism of several you’re using, and you might have to make such an arbitrary choice about infinitely many pairs of objects all at once. Having a canonical choice solves this problem.
Prior to E&M, mathematicians couldn’t formalize this idea of canonical choice. They would hand wave about how natural their choice of isomorphism was and how this allowed them to avoid making arbitrary choices. Then E&M defined categories, functors, and natural transformations to formalize this idea of naturality. Their motivation was algebraic topology, but the abstractions they defined turned out to be extremely broadly useful across all much of mathematics.
[1] https://www.ams.org/journals/tran/1945-058-00/S0002-9947-194...
I was lucky enough to take two IBL courses from Dr. Michael Starbird at UT Austin. Both were wonderful courses, very engaging and very fun. I never collaborated so much with other math students as I did in those courses. In particular this was my intro to topology and I’ve been hooked on it ever since.
Mathematicians commonly refer to two objects by the same name if they are equivalent in the given context. In this context, topology, any space that is homeomorphic to a sphere might be referred to as “a sphere” even if literally speaking it’s not a sphere. For instance a topologist would might point at a cube and call it a sphere. In their domain there is no important difference between them so why not?
Also, n-spheres are commonly just called spheres for brevity. So when I say “the fundamental problem of homotopy theory is to compute the homotopy groups of spheres,” I am referring to all homotopy groups of all (n-)spheres simultaneously.
I don’t see how any of this is limited to spheres.
In fact you’re right, homotopy theory is not just limited to spheres! However, if we could readily compute the homotopy groups of spheres, then we would be able to compute the homotopy groups of any “reasonable space.” Here I’m referring to CW complexes [1] which are a very broad class of spaces that, up to homotopy equivalence, probably includes any space you care to think of. It is for this reason that the problem of computing the homotopy groups of spheres is so fundamental to homotopy theory more broadly.
To add on to what dullcrisp said, which is all correct, even spheres with thickness are “the same as” spheres of zero thickness from the perspective of homotopy theory. “Sameness” here means homotopy equivalence [1]. In fact the thin sphere is a deformation retract [2] of the thick one. The deformation pushes each point of the thick sphere along radial lines towards the thin sphere. Being a deformation retract implies the two spaces are homotopy equivalent.
[1] https://en.wikipedia.org/wiki/Homotopy#Homotopy_equivalence
I guess it depends on the prompt. But if someone just asks “what crimes has X famous person committed?” and ChatGPT spits out some false information, the libel would be OpenAI’s fault, no?
Please note that a field that "satisfying the fundamental theorem of algebra" is not really a thing. The term you're looking for is algebraically complete field. The fundamental theorem of algebra states that the complex numbers are algebraically complete.
Also note that every algebraically complete field is infinite. So the finite fields used in CS applications such as cryptography are never algebraically complete.