eccentric.dk

reality meets eccentricity

Author: Mads

  • Understanding category theory pt. 1: What is category theory?

    Category theory has revolutionized mathematics, first as a tool in algebraic topology and since then as an extremely successful unifying language for most, if not all, of mathematics (well, sort of, if we disregard analysis, which we will).

    The success of category theory underlines that mathematics is not about mere arithmetic, it is about structure, and in particular structure-preserving maps. A generalization of these structure preserving maps, called morphisms, is central in category theory. If this sounds rather abstract, then that is because, well, it is. But with abstractness comes generality. And not only that, it can simplify some rather cumbersome proofs to near trivialities.

    In order to make sense of what we are talking about, we of course need to know what categories, morphisms, functors and natural transformations are, but knowing that without knowing why we should even care, given the level of abstractness we are dealing with, category theory will seem rather pointless.

    It is often said that to study category theory, no prerequisites are required. While this is technically true, I would not consider such a statement being made in good faith. Without a rather comprehensive mathematical background with the corresponding training in thinking abstractly, not to mention knowledge in which areas of mathematics it is used, it will likely seem like an entirely useless exercise in futility.

    So, why do we care?

    The notion of a category encodes a class of some mathematical object and a structure preserving arrow or morphisms, we shall make this more concrete later. A defining condition of being a category, is that there must be a well-behaved notion of composition of morphisms that corresponds to the notion of composition of functions. Mathematicians like to come up with structure preserving maps between mathematical objects, like continuous maps between topological space or group homomorphisms between groups, so it should not come as a surprise that there are also a notion of maps between categories, a functor. But as a category not only consists of its objects, but also of its arrows, a functor, like other structure preserving maps, needs to meet certain conditions. And indeed, there are even maps between functors, called natural transformations.

    These constructions that are outlined above, enable us to relate mathematical obejcts that are, at first glance, very different. In algebraic topology, to each topological space X we can assign a group \pi_1(X), called the fundamental group, which will be our first example of a functor from the category of topological spaces to the category of groups. We denote this functor by \pi_1 : \cat{Top} \to \cat{Group}. Now again, you may ask, why do we care? This is a totally legitimate question. As a basic example, note that above we wrote that functors not only map objects from one category to another, but also its morphisms. The morphisms of \cat{Top} are continuous maps between topological spaces, say a continuous map f : X \to Y from the topological space X to the topological space Y. The morphisms of the category of groups are, not surprisingly, group homomorphisms. This means that \pi_1(f) : \pi_1(X) \to \pi_1(Y) should be a group homomorphism, and indeed it is. An elementary result in category theory says that functors preserve isomorphisms. In the example if f is an isomorphism (which corresponds to homeomorphisms in \cat{Top}), then \pi_1(f) is an isomorphism as well, where the isomorphisms in \cat{Group} are group isomorphisms. This yields a way for us to use group theory to disprove that two topological spaces are homeomorphic. If given two topopical spaces X and Y, the task of disproving that they are homeomorphic, if we are lucky, can be as simple as showing that there are no group isomorphisms between the groups \pi_1(X) and \pi_1(Y). This can make what is often a rather difficult and laborious task, relatively simple and straightforward. However if we get two fundamental groups that are isomorphic, then we are nowhere.

    What is a category?

    A category \cat{C} consists of a collection of objects \obj\cat{C} and for all objects c,c' \in \obj\cat{C} a collection of morphisms \Hom_{\cat{C}}(c,c') (which may be empty) whose elements are denoted c \to c', such that,

    • For or all objects c \in \obj\cat{C} there is a unique morphism \id_c : c \to c such that for all morphisms f : c' \to c we have \id_c \of f = f and morphisms g : c \to c'' we have g \of \id_{c}=g.
    • For all objects c,c',c''\in \obj\cat{C} and morphisms f : c \to c' and g : c' \to c'' there is a map, a binary operation, \of : \Hom_{\cat{C}}(c,c') \times \Hom_{\cat{C}}(c',c'') \to \Hom_{\cat{C}}(c,c''), such that \of (f,g)=g \of f \in \Hom_{\cat{C}}(c,c'').
    • For all morphisms f: c \to c', g : c' \to c'' and h: c'' \to c''' we have (h \of g ) \of f = h \of (g \of f ).

    For simplicity, from now on we will write c \in \cat{C} to denote that c is an object of the category \cat{C}.

    So, this looks like, and is, a rather abstract definition. But as hinted above, the power of category theory largely comes from its abstraction.

    You might have noticed that the notation for morphisms and the binary operation \of , and the conditions it must satisfy, looks rather a lot like what is used elsewhere in mathematics for functions and composition. This is by no means an accident and \of is, in fact, called composition. The notion of morphisms and their composition is, however, much more general than that of functions between sets with extra structure. It is true that morphisms often represent structure-preserving maps between the objects of a given category whose underlying objects are sets. For example, the morphisms of the category of Abelian groups, \cat{Ab}, are group homomorphisms, in the category of unital rings, \cat{Ring}, they are unit-preserving ring homomorphisms. In the category of sets, \cat{Set}, the morphisms are simply the functions of sets, and the morphisms of the category of topological spaces are continuous functions between topological spaces.

    It is important to note, that it is not true in general, that all morphisms represents maps. A simple example of this is if we regard a partially ordered set (X,\leq) as a category with objects the elements of X and for x,y \in X, we have a morphism x\to y if and only if x \leq y. It is a nice little exercise to show that this is indeed a category.

    A special type of morphism which we have also mentioned previously, is an isomorphism which is a morphism f : c \to c' in a category \cat{C} where there exsists a morphism g : c' \to c such that g \of f = \id_{c} and f \of g = \id_{c'} and in which case we denote f^{-1} = g and we can write c \iso c'.

    What is a functor?

    We have alluded to what a functor is, namely a map F between two categories \cat{C} and \cat{D} which maps all objects c\in \cat{C} to F(c)\in \cat{D}, and all morphisms f : c \to c' of \cat{C} to morphisms F(f) : F(c) \to F(c') of \cat{D}. However, if F is contravariant we have F(f): F(c')\to F(c). A functor needs to satisfy two further requirements, however:

    • For all morphisms f: c \to c' and g: c' \to c'' in \cat{C}, we must have F(g \of f)=F(g) \of F(f) or if F is contravariant, F(g \of f)=F(f) \of F(g).
    • For all identity morphisms \id_c of \cat{C} we must have F(\id_c)=\id_{F(c)}.

    Satisfying the requirements of being a functor is often referred as being “functorial”.

    Digression: Commutative diagrams

    Before we get to natural transformations, we first need to know what a commutative diagram is. If we have morphisms f : c \to c' and g: c' \to c'', a way to write the satement h = g \of f, is, that the diagram

    Rendered by QuickLaTeX.com

    commutes. The intuition of a commutative diagram is that it does not matter if one follows the compositions from c to c' to c'' along g\of f or from c to c'' along h. Similarly we have, that saying that the diagram

    Rendered by QuickLaTeX.com

    commutes, is the same as the statement g\of f = j \of h.

    Commutative diagrams is a highly effective way of visualizing complex compositions of morphisms and their relationships.

    What are Natural Transformations?

    A natural transformation is, among other things, a morphism between functors, in the category of functors between two functors F: \cat{C} \to \cat{D} and G: \cat{C} \to \cat{D}. We denote a natural transformation from a functor F to G by, for example, \alpha : F \natto G, using the arrow \natto do disambiguate it from a a functor between categories.

    To define natural transformations formally, let F,G: \cat{C} \to \cat{D} be two functors. A natural transformation \alpha : F \natto G is a family of morphisms (\alpha_c)_{c\in \cat{C}} in \cat{D} such that for all objects c\in \cat{C} there exists morphisms \alpha_c: F(c) \to G(c), and for all morphisms f : c \to c' in \cat{C}, the diagram

    Rendered by QuickLaTeX.com

    commutes.

    Good things come to those who wait…

    We have so far discussed and defined the most basic constructions in category theory. Using these, we shall in later posts dive deeper into what (some) mathematicians is calles abstract nonsense, i.e. category theory.

    References

    648 {648:FT9YGNDY} 1 chicago-author-date 50 default 430 https://eccentric.dk/wp-content/plugins/zotpress/
    %7B%22status%22%3A%22success%22%2C%22updateneeded%22%3Afalse%2C%22instance%22%3Afalse%2C%22meta%22%3A%7B%22request_last%22%3A0%2C%22request_next%22%3A0%2C%22used_cache%22%3Atrue%7D%2C%22data%22%3A%5B%7B%22key%22%3A%22FT9YGNDY%22%2C%22library%22%3A%7B%22id%22%3A648%7D%2C%22meta%22%3A%7B%22creatorSummary%22%3A%22Riehl%22%2C%22parsedDate%22%3A%222016%22%2C%22numChildren%22%3A1%7D%2C%22bib%22%3A%22%26lt%3Bdiv%20class%3D%26quot%3Bcsl-bib-body%26quot%3B%20style%3D%26quot%3Bline-height%3A%201.35%3B%20padding-left%3A%201em%3B%20text-indent%3A-1em%3B%26quot%3B%26gt%3B%5Cn%20%20%26lt%3Bdiv%20class%3D%26quot%3Bcsl-entry%26quot%3B%26gt%3BRiehl%2C%20Emily.%202016.%20%26lt%3Bi%26gt%3BCategory%20Theory%20in%20Context%26lt%3B%5C%2Fi%26gt%3B.%20Aurora%3A%20Dover%20Modern%20Math%20Originals.%20Dover%20Publications.%20%26lt%3Ba%20class%3D%26%23039%3Bzp-ItemURL%26%23039%3B%20href%3D%26%23039%3Bhttps%3A%5C%2F%5C%2Femilyriehl.github.io%5C%2Ffiles%5C%2Fcontext.pdf%26%23039%3B%26gt%3Bhttps%3A%5C%2F%5C%2Femilyriehl.github.io%5C%2Ffiles%5C%2Fcontext.pdf%26lt%3B%5C%2Fa%26gt%3B.%26lt%3B%5C%2Fdiv%26gt%3B%5Cn%26lt%3B%5C%2Fdiv%26gt%3B%22%2C%22data%22%3A%7B%22itemType%22%3A%22book%22%2C%22title%22%3A%22Category%20theory%20in%20context%22%2C%22creators%22%3A%5B%7B%22creatorType%22%3A%22author%22%2C%22firstName%22%3A%22Emily%22%2C%22lastName%22%3A%22Riehl%22%7D%5D%2C%22abstractNote%22%3A%22%22%2C%22date%22%3A%222016%22%2C%22language%22%3A%22%22%2C%22ISBN%22%3A%22978-0-486-80903-8%22%2C%22url%22%3A%22https%3A%5C%2F%5C%2Femilyriehl.github.io%5C%2Ffiles%5C%2Fcontext.pdf%22%2C%22collections%22%3A%5B%22A6EKE3VU%22%2C%22P6KF5DIR%22%2C%22CR6SZGTJ%22%2C%22E48PVKYH%22%5D%2C%22dateModified%22%3A%222025-07-03T18%3A57%3A43Z%22%7D%7D%5D%7D
    Riehl, Emily. 2016. Category Theory in Context. Aurora: Dover Modern Math Originals. Dover Publications. https://emilyriehl.github.io/files/context.pdf.

  • Using TeXLive with Dev Containers in VSCode

    In this post I will describe how to set up VSCode to use a Docker container to run TeXLive and how to set up a folder template to quickly setup documents in the future.

    Prerequisites

    In this post I will assume that you are running Linux and that your template folder is called latex_template. What you need in order to get started is:

    • A working rootless Docker installation
    • VSCode installed along with the extensions Dev Containers, LaTeX Workshop, and Folder Templates installed. Container Tools is also recommended, but not required.
    • Enough disk space for the docker image which is about 5.2GB and enough bandwidth to download it in a timely manner, it is a download of about 2.3GB.

    Setting up a Dockerfile

    We shall use Island of TeX‘s Docker image as a base. But in order to use Git and commit signing (as you should) we need some slight customization. This will do the trick:

    FROM registry.gitlab.com/islandoftex/images/texlive:latest

    RUN apt-get update
    RUN apt-get install -y git ssh gnupg2
    RUN apt-get clean

    This will install Git, SSH and GnuPG into the base image in a persistent manner. Copy the above into the file latex_template/.devcontainer/Dockerfile.

    Setting up Dev Containers: Method 1

    Copy

    {
    "build": { "dockerfile": "Dockerfile" },
    "customizations": {
    "vscode": {
    "extensions": [
    "James-Yu.latex-workshop"
    ]
    }
    }
    }

    into the file latex_template/.devcontainer/devcontainer.json.

    Setting up Dev Containers: Method 2

    You can also build the Dockerfile from the commandline (from a folder with the Dockerfile from above) with the command

    $ docker build -t mytexlive . 

    and instead set latex_template/.devcontainer/devcontainer.json to be

    {
    "image": "mytexlive",
    "customizations": {
    "vscode": {
    "extensions": [
    "James-Yu.latex-workshop"
    ]
    }
    }
    }

    Setting up Folder Templates

    Make a file latex_template/.ftsettings.json with the contents:

    {
    "name": "Template Title",
    "omitParentDirectory": true
    }

    Where you give whatever name you want to the template.

    Make a file latex_template/latexmkrc with the contents:

    $pdf_mode = 4;

    $out_dir = "build";

    This will cause latexmk to use LuaLaTeX (as you should…) and place the output in latex_template/build. You can also add a line to latex_template/latexmkrc:

    @default_files = ('[FTName].tex');

    to specify the initial TeX file as the main document to run LuaLaTeX on, so you can include other TeX-files. For further information on how to customize latexmkrc refer to its documentation.

    The folder latex_template/build should be ignored by Git, so it is recommended to set up latex_template/.gitignore to do this:

    build/

    Next, create a file latex_template/[FTName].tex (and yes, the file name should literally be [FTName].tex). This file should contain the common code for the template you are creating, for example:

    % Preamble  
    \documentclass[12pt, a4paper]{article}

    % The title is likely not something
    % you can predetermine
    \title{}

    % Your name and other authors
    \author{Your Name}

    % Your packages etc.

    \begin{document}

    % Your document

    \maketitle
    \tableofcontents

    % ...

    \end{document}

    Move the folder latex_template to a place there you will keep other templates, e.g. ~/Documents/Templates.

    Setting up VSCode

    From the Command Palate (on a PC, the Command Palate can be accessed by pressing Ctrl + Shift + P), select the command “Set Custom Global Folder Templates Folder” and browse to and select the folder containing your templates, e.g. ~/Documents/Templates.

    In the VSCode Settings, go to the option and set Latex-workshop > Latex > Recipe: Default to latexmk (latexmkrc).

    Make your project

    Now, open an empty folder in VSCode, and from the Command Palate, select “Create New Templated Folder” (this can also be done via the context menu in the file browser), select your template and type the name of your project, e.g. myproject. You should now see some new files, like myproject.tex which contains the LaTeX document prepared earlier, and copies of the other files and sub-folders in latex_template/.

    From the Command Palate, select “Reopen in Dev Container”. After the base image has been downloaded and built, you can open myproject.tex and (on a PC) press Ctrl+S and a sub-folder build/ should appear containing the resulting PDF and other temporary files.

    Files

    You can download a ZIP archive with the folder template here.

  • Writing mathematics literature for pedantics (and students)

    Who this is for

    This is meant as a collection of suggestions for anyone wanting to write a book on advanced mathematics, and wants to minimize the confusion of their readers and make their learning experience less stressful, less confusing and hence more effective from the perspective of the student.

    Make new terms easy to find

    A student needs to learn a lot of definitions and their terms. And a new term will not make any sense it is highly confusing to encounter a new term unless it is precisely defined, so please define a term before it is used the first time. Most will not remember each definition right away and will need to reread it, possibly several times, before it is internalized. So, make definitions easy to find on the page (i.e. use a definition box) and every time a term is defined, add it to the index. And there absolutely should be an index.

    An example of a book that uses a new term (e.g. additive functor) before it is defined is:

    648 {648:PBHRE9G5} 1 chicago-author-date 50 default 376 https://eccentric.dk/wp-content/plugins/zotpress/
    %7B%22status%22%3A%22success%22%2C%22updateneeded%22%3Afalse%2C%22instance%22%3Afalse%2C%22meta%22%3A%7B%22request_last%22%3A0%2C%22request_next%22%3A0%2C%22used_cache%22%3Atrue%7D%2C%22data%22%3A%5B%7B%22key%22%3A%22PBHRE9G5%22%2C%22library%22%3A%7B%22id%22%3A648%7D%2C%22meta%22%3A%7B%22creatorSummary%22%3A%22Rotman%22%2C%22parsedDate%22%3A%222009%22%2C%22numChildren%22%3A2%7D%2C%22bib%22%3A%22%26lt%3Bdiv%20class%3D%26quot%3Bcsl-bib-body%26quot%3B%20style%3D%26quot%3Bline-height%3A%201.35%3B%20padding-left%3A%201em%3B%20text-indent%3A-1em%3B%26quot%3B%26gt%3B%5Cn%20%20%26lt%3Bdiv%20class%3D%26quot%3Bcsl-entry%26quot%3B%26gt%3BRotman%2C%20Joseph%20J.%202009.%20%26lt%3Bi%26gt%3BAn%20Introduction%20to%20Homological%20Algebra%26lt%3B%5C%2Fi%26gt%3B.%20Springer%20New%20York.%20https%3A%5C%2F%5C%2Fdoi.org%5C%2F10.1007%5C%2Fb98977.%26lt%3B%5C%2Fdiv%26gt%3B%5Cn%26lt%3B%5C%2Fdiv%26gt%3B%22%2C%22data%22%3A%7B%22itemType%22%3A%22book%22%2C%22title%22%3A%22An%20Introduction%20to%20Homological%20Algebra%22%2C%22creators%22%3A%5B%7B%22creatorType%22%3A%22author%22%2C%22firstName%22%3A%22Joseph%20J.%22%2C%22lastName%22%3A%22Rotman%22%7D%5D%2C%22abstractNote%22%3A%22%22%2C%22date%22%3A%222009%22%2C%22language%22%3A%22en%22%2C%22ISBN%22%3A%22978-0-387-24527-0%20978-0-387-68324-9%22%2C%22url%22%3A%22https%3A%5C%2F%5C%2Flink.springer.com%5C%2F10.1007%5C%2Fb98977%22%2C%22collections%22%3A%5B%22NPVY6HRJ%22%5D%2C%22dateModified%22%3A%222025-06-21T21%3A06%3A28Z%22%7D%7D%5D%7D
    Rotman, Joseph J. 2009. An Introduction to Homological Algebra. Springer New York. https://doi.org/10.1007/b98977.

    Enable navigation by numbering

    Speaking of definitions, when numbering definitions, theorems, lemmas, examples etc, they should have the same counter. If one is looking for a specific box, it it much easier to orient oneself with respect to where what one is looking for is, if you can turn to the approximate location and if theorem/lemma/example 1.8 is on that page, you know that definition 1.3 is on an earlier page.

    An example of a book that has separate counters is:

    648 {648:IDYZ6ZSY} 1 chicago-author-date 50 default 376 https://eccentric.dk/wp-content/plugins/zotpress/
    %7B%22status%22%3A%22success%22%2C%22updateneeded%22%3Afalse%2C%22instance%22%3Afalse%2C%22meta%22%3A%7B%22request_last%22%3A0%2C%22request_next%22%3A0%2C%22used_cache%22%3Atrue%7D%2C%22data%22%3A%5B%7B%22key%22%3A%22IDYZ6ZSY%22%2C%22library%22%3A%7B%22id%22%3A648%7D%2C%22meta%22%3A%7B%22creatorSummary%22%3A%22Fulton%22%2C%22parsedDate%22%3A%221998%22%2C%22numChildren%22%3A1%7D%2C%22bib%22%3A%22%26lt%3Bdiv%20class%3D%26quot%3Bcsl-bib-body%26quot%3B%20style%3D%26quot%3Bline-height%3A%201.35%3B%20padding-left%3A%201em%3B%20text-indent%3A-1em%3B%26quot%3B%26gt%3B%5Cn%20%20%26lt%3Bdiv%20class%3D%26quot%3Bcsl-entry%26quot%3B%26gt%3BFulton%2C%20William.%201998.%20%26lt%3Bi%26gt%3BIntersection%20Theory%26lt%3B%5C%2Fi%26gt%3B.%20Springer%20New%20York.%20https%3A%5C%2F%5C%2Fdoi.org%5C%2F10.1007%5C%2F978-1-4612-1700-8.%26lt%3B%5C%2Fdiv%26gt%3B%5Cn%26lt%3B%5C%2Fdiv%26gt%3B%22%2C%22data%22%3A%7B%22itemType%22%3A%22book%22%2C%22title%22%3A%22Intersection%20Theory%22%2C%22creators%22%3A%5B%7B%22creatorType%22%3A%22author%22%2C%22firstName%22%3A%22William%22%2C%22lastName%22%3A%22Fulton%22%7D%5D%2C%22abstractNote%22%3A%22%22%2C%22date%22%3A%221998%22%2C%22language%22%3A%22en%22%2C%22ISBN%22%3A%22978-0-387-98549-7%20978-1-4612-1700-8%22%2C%22url%22%3A%22http%3A%5C%2F%5C%2Flink.springer.com%5C%2F10.1007%5C%2F978-1-4612-1700-8%22%2C%22collections%22%3A%5B%22YVRR3QR2%22%5D%2C%22dateModified%22%3A%222025-06-22T14%3A49%3A14Z%22%7D%7D%5D%7D
    Fulton, William. 1998. Intersection Theory. Springer New York. https://doi.org/10.1007/978-1-4612-1700-8.

    Do not hide important stuff

    Definitions and and even simple results of a certain generality and importance should not be be marked as an example or, for that matter, a remark. A student has to prioritize their time, and the author should make this easier rather than penalizing a reader for skipping material that (appears as if it) is not needed for a full understanding.

    An example is Gathmann’s otherwise very good lecture notes on algebraic geometry https://agag-gathmann.math.rptu.de/class/alggeom-2021/alggeom-2021.pdf. His (also, otherwise very good) notes on Commutative Algebra is also an example of this phenomenon.

    Don’t give unhelpful hints

    It has happened more than once that the hint(s) given for an exercise has made the problem harder to solve, which (I assume) is not the intention, and is supremely frustrating.

    An example of a book where this sometimes occurs is:

    648 {648:GVYTZ92Z} 1 chicago-author-date 50 default 376 https://eccentric.dk/wp-content/plugins/zotpress/
    %7B%22status%22%3A%22success%22%2C%22updateneeded%22%3Afalse%2C%22instance%22%3Afalse%2C%22meta%22%3A%7B%22request_last%22%3A0%2C%22request_next%22%3A0%2C%22used_cache%22%3Atrue%7D%2C%22data%22%3A%5B%7B%22key%22%3A%22GVYTZ92Z%22%2C%22library%22%3A%7B%22id%22%3A648%7D%2C%22meta%22%3A%7B%22creatorSummary%22%3A%22Bosch%22%2C%22parsedDate%22%3A%222022%22%2C%22numChildren%22%3A1%7D%2C%22bib%22%3A%22%26lt%3Bdiv%20class%3D%26quot%3Bcsl-bib-body%26quot%3B%20style%3D%26quot%3Bline-height%3A%201.35%3B%20padding-left%3A%201em%3B%20text-indent%3A-1em%3B%26quot%3B%26gt%3B%5Cn%20%20%26lt%3Bdiv%20class%3D%26quot%3Bcsl-entry%26quot%3B%26gt%3BBosch%2C%20Siegfried.%202022.%20%26lt%3Bi%26gt%3BAlgebraic%20Geometry%20and%20Commutative%20Algebra%26lt%3B%5C%2Fi%26gt%3B.%20Universitext.%20Springer%20London.%20https%3A%5C%2F%5C%2Fdoi.org%5C%2F10.1007%5C%2F978-1-4471-7523-0.%26lt%3B%5C%2Fdiv%26gt%3B%5Cn%26lt%3B%5C%2Fdiv%26gt%3B%22%2C%22data%22%3A%7B%22itemType%22%3A%22book%22%2C%22title%22%3A%22Algebraic%20Geometry%20and%20Commutative%20Algebra%22%2C%22creators%22%3A%5B%7B%22creatorType%22%3A%22author%22%2C%22firstName%22%3A%22Siegfried%22%2C%22lastName%22%3A%22Bosch%22%7D%5D%2C%22abstractNote%22%3A%22%22%2C%22date%22%3A%222022%22%2C%22language%22%3A%22en%22%2C%22ISBN%22%3A%22978-1-4471-7522-3%20978-1-4471-7523-0%22%2C%22url%22%3A%22https%3A%5C%2F%5C%2Flink.springer.com%5C%2F10.1007%5C%2F978-1-4471-7523-0%22%2C%22collections%22%3A%5B%22A6EKE3VU%22%2C%22HTFU6U95%22%2C%22YVRR3QR2%22%5D%2C%22dateModified%22%3A%222025-01-27T11%3A18%3A22Z%22%7D%7D%5D%7D
    Bosch, Siegfried. 2022. Algebraic Geometry and Commutative Algebra. Universitext. Springer London. https://doi.org/10.1007/978-1-4471-7523-0.
  • Lets talk about chalk

    Most people doing mathematics at university won’t be strangers to writing on blackboards with chalk. However, the experience can vary a great deal. It can range from feeling like scratching a sharp rock on a rough surface, accompanied by screeching sound. And writing is often just barely legible. Needless to say, this can be rather uncomfortable for anyone. But for some people on the autism spectrum, it can be unbearable.

    But does choosing a different type of chalk matter? Can one tell a difference? The answer is yes, one can. There is a reason Hagoromo has been called the “Rolls Royce of chalk” (aside form its price tag). From personal experience, I can say it is an absolute pleasure to write with. By comparison to… “lesser” chalk, writing with Hagoromo is silky smooth. Lines are bright and writing is effortless. A worthwhile investment for anyone who regularly writes on blackboards.

  • Use cases for Git at university

    Even if you are not developing developing software, the Free and Open Source Software (FOSS) version control system (VCS) Git, can be of much use for students. Features like branches and tags can make your life easier and save you time and grief.

    For coursework

    For each course you take, create a folder and initialize a Git repository. Afterwards, you can add all the files you use and keep histories and remote backups of all your files and homework. This works especially well for those of us who use the \LaTeX typesetting system or other markup based document systems. No more need to tell your professor that the dog ate your homework because your disk or computer crashed, or a coffee spilled on your keyboard.

    Theses

    Each year, I see posts by fellow students writing on message boards, asking how to recover files from thumb drives, desperate to recover their bachelor or master theses. Weeks or even days before the due date. No backup. Don’t be one of them! Use Git! Use one of the numerous free Git hosting services to back up your work af often as you want, for example after each writing session and write a short description of what you did in the commit message. Is your advisor asking for a major revision you may (or may not) agree with? Create a branch, and keep your original work while you work on your revision, and and work on both at the same time. Use tags to mark each draft version, and be able to restore an exact copy of each one.

    But, but… a command line tool?

    Well, yes. But firstly command line tools are not as scary as you might think. You might not agree, and there are plenty of free GUI tools to manage Git repositories, both open and closed source. I sometimes use SmartGit (https://www.syntevo.com/smartgit/) which is free for students. All major platforms are supported, Linux, MacOS and Windows, easily installed. For Windows and MacOS go to https://git-scm.com/. Linux users can either download the latest version from the mentioned website, or from their package manager of choice.