Saturday, 26 November 2022

Theoretical Computer Science for the Working Category Theorist

Noson S. Yanofsky.
Theoretical Computer Science for the Working Category Theorist.
Cambridge University Press. 2022
I have been wanting to dip my toe in the sea of category theory for a while now, but have not found a suitable entry point. The books written for mathematicians are impenetrable. Those written for computer scientists lose me in the detail. When I came across this one, a book about computer science, written for category theorists, I was intrigued. I was reminded of a colleague of mine who collected foreign languages: he would learn them by reading a text he knew well in the language he wished to learn (memory offers up the thought it was Macbeth, but it may have been a different Shakespeare play). Maybe I could similarly learn the foreign language of category theory by reading about a topic I know, when written in that language? Especially since the book is a brisk 130 pages.

So, I am definitely not the target audience (being a computer scientist rather than a category theorist). And yet I feel I have learned more about category theory from this book than from any of the others I have tried. Not enough to be fluent, but enough that I can see what the concepts are, how they are put together, and how they can help illuminate a subject.

This was initially available as a PDF from the publishers site. I downloaded, and started active reading, which involved annotating the PDF with questions, thoughts, and ideas. (I come from a generation where annotating an actual physical book is Not Done.) I did skim a few of the more technical parts, but did read the whole thing. I then bought a hard copy.

As well as having a better understanding of Category Theory, I have a new perspective on theoretical computer science: the subset of functions that comprise computable functions is somewhat ugly to formalise.

This is the first in a series of Cambridge Elements: shortish works on Applied Category Theory. This one is highly recommended: I will be looking out for the others.





For all my book reviews, see my main website.

Saturday, 12 November 2022

Covid-19 diary: booster 2!


I got my (now annual?) booster jab today, along with a flu jab.  It was the now familiar efficient conveyor belt approach, with stations providing stickers and checking names, socially distanced queueing, and medical history questioning.  This included: “have you had Covid?”, “Yes, over four weeks ago”, which is long enough to be okay.  In fact, I booked this slot for my jab while I had Covid, as this was when I was contacted to come in.  If only I had been contacted a little earlier!  (Still, at least I now know Covid affects well-vaccinated me like a cold, and not worse.  Well, the current variant does, at least.)

I had the Pfizer jab in my left arm, and the flu jab in my right arm.  I again got a “young person’s flu jab” – because I'm still under 65.  Apparently the over-65 flu jab is higher dose, which may be why my other half had a reaction last year and I didn't.



Sunday, 6 November 2022

Geek Sublime: writing fiction, coding software.

Vikram Chandra.
Geek Sublime: writing fiction, coding software.
Faber & Faber. 2013


Chandra writes novels, and also writes software. Here he explores the fundamental differences between these two forms of writing, and whether software developers, in striving for ‘beautiful code’, can really be considered to be producing ‘art’.

In this discursive writing on the topic, we learn why Chandra believes the answer to be ‘no’. In particular, the process is so different. Writing is hard; it is a conscious anguished-filled ‘hell’, where every word is sweated over. On the other hand, although programming is also hard, it is hard in a different way: it requires a depth of concentration, and the developer can get lost in the process, unconscious of time passing, trying just one more thing. (Oh, how I recognise this description!) He doesn’t say whether the writing of this book was more like the hell of fiction, or the flow of programming.

We also learn a lot about the differences between Indian and Western philosophy and approaches to art. And one thing I learned was how the Indian philosophy explains how one can enjoy reading about something that one might never enjoy directly experiencing:

[p114] The pleasure of rasa comes from the meta-experience of experiencing oneself experience the stable emotions.

That is a sentence that will definitely resonate with programmers!

An interesting different look at programming, and art, through a non-Western philosophical lens.




For all my book reviews, see my main website.