Python, script shadowing

A very brief post about the solution to a problem I came across in Python. In the course of my work on Sextant (specifically the project to add support for accessing a Neo4j instance by SSH), I ran into a problem whose nature is explained here as the Name Shadowing Trap. Essentially, in a project whose root directory contains a bin/ script, which is intended as a thin wrapper to the module executable, you can’t import executable, because the bin/executable.

Parables, chapter 1, verses 1-10

One day, a group of investors came to Bezos in the Temple and begged of him, “You are known throughout the land for your wisdom. Please tell us: what lessons did you learn early in life, which we have not yet learnt?” Bezos replied thus. “When I was but a child, when I had not yet seen seven summers, I discovered that my teacher had a bountiful store of chocolates hidden in the stationery cupboard.

Perfect pitch

I have a limited form of perfect (absolute) pitch, which I am sometimes asked about. Often it’s the same questions, so here they are. No doubt people with better perfect pitch than mine will be annoyed at this impudent upstart claiming the ability, but perfect pitch comes on a spectrum anyway. Apparently some people can identify notes to within the nearest fifth of a semitone, while some can only identify the semitone closest to the note.

Music practice

A couple of weeks ago, someone opined to me that there was a type of person who was just able to sit down and play at the piano, without sheet music. I, myself, am capable of playing precisely one piece inexpertly, from memory, at the piano. (My rendering of that piece is nowhere near the arranger’s standard.) I can play nothing else without sheet music. I very much think that this is the natural state for essentially every musician who has not spent thousands upon thousands of hours practising in a general way.

What maths does to the brain

In my activities on The Student Room, a student forum, someone (let’s call em Entity, because I like that word) recently asked me about the following question. Isaac places some counters onto the squares of an 8 by 8 chessboard so that there is at most one counter in each of the 64 squares. Determine, with justification, the maximum number that he can place without having five or more counters in the same row, or in the same column, or on either of the two long diagonals.

Solvability of nonograms

Recently, a friend re-introduced me to the joys of the nonogram (variously known as “hanjie” or “griddler”). I was first shown these about ten years ago, I think, because they appeared in The Times. When The Times stopped printing them, I forgot about them for a long time, until two years ago, or thereabouts, I tried these on a website. I find the process much more satisfying on paper with a pencil than on computer, so I gave them up again and forgot about them again.

Possible cons of Soylent

I have seen many glowing reviews of Soylent, and many vitriolic naturalistic arguments against it. What I have not really seen is a proper collection of credible reasons why you might not want to try Soylent (that is, reasons which do not boil down to “it’s not natural, therefore Soylent is bad” or “food is great, therefore Soylent is bad”). This page used to contain citations in the form of links to the Soylent Discourse forum at discourse.

Proof that symmetric matrices are diagonalisable

This comes up quite frequently, but I’ve been stuck for an easy memory-friendly way to do this. I trawled through the 1A Vectors and Matrices course notes, and found the following mechanical proof. (It’s not a discovery-proof - I looked it up.) Lemma Let \(A\) be a symmetric matrix. Then any eigenvectors corresponding to different eigenvalues are orthonormal. (This is a very standard fact that is probably hammered very hard into your head if you have ever studied maths post-secondary-school.

Discovering a proof of Sylvester's Law of Inertia

This is part of what has become a series on discovering some fairly basic mathematical results, and/or discovering their proofs. It’s mostly intended so that I start finding the results intuitive - having once found a proof myself, I hope to be able to reproduce it without too much effort in the exam. Statement of the theorem Sylvester’s Law of Inertia states that given a quadratic form \(A\) on a real finite-dimensional vector space \(V\), there is a diagonal matrix \(D\), with entries \(( 1_1,1_2,\dots,1_p, -1_1, -1_2, \dots, -1_q, 0,0,\dots,0 )\), to which \(A\) is congruent; moreover, \(p\) and \(q\) are the same however we transform \(A\) into this diagonal form.

Sequentially compact iff compact

Prof Körner told us during the IB Metric and Topological Spaces course that the real meat of the course (indeed, its hardest theorem) was “a metric space is sequentially compact iff it is compact”. At the moment, all I remember of this result is that one direction requires Lebesgue’s lemma (whose statement I don’t remember) and that the other direction is quite easy. I’m going to try and discover a proof - I’ll be honest when I have to look things up.

Cayley-Hamilton theorem

This is to detail a much easier proof (at least, I find it so) of Cayley-Hamilton than the ones which appear on the Wikipedia page. It only applies in the case of complex vector spaces; most of the post is taken up with a proof of a lemma about complex matrices that is very useful in many contexts. The idea is as follows: given an arbitrary square matrix, upper-triangularise it (looking at it in basis \(B\)).

Sample topology question

As part of the recent series on how I approach maths problems, I give another one here (question 14 on the Maths Tripos IB 2007 paper 4). The question is: Show that a compact metric space has a countable dense subset. This is intuitively clear if we go by our favourite examples of metric spaces (namely \(\mathbb{R}^n\), the discrete metric and the indiscrete metric). Indeed, in \(\mathbb{R}^n\), which isn’t even compact, we have the rationals (so the theorem doesn’t give a necessary condition, only a sufficient one); in the indiscrete metric, any singleton \({x }\) is dense (since the only closed non-empty set is the whole space); in the discrete metric, where every set is open, we can’t possibly be compact unless the space is finite, so that’s why the theorem doesn’t hold for a topology with so many sets.

Useful conformal mappings

This post is to be a list of conformal mappings, so that I can get better at answering questions like “Find a conformal mapping from <this domain> to <this domain>”. The following Mathematica code is rough-and-ready, but it is designed to demonstrate where a given region goes under a given transformation. whereRegionGoes[f_, pred_, xrange_, yrange_] := whereRegionGoes[f, pred, xrange, yrange] = With[{xlist = Join[{x}, xrange], ylist = Join[{y}, yrange]}, ListPlot[ Transpose@ Through[{Re, Im}[ f /@ (#[[1]] + #[[2]] I & /@ Select[Flatten[Table[{x, y}, xlist, ylist], 1], With[{z = #[[1]] + I #[[2]]}, pred[z]] &])]]]] Möbius maps - these are of the form \(z \mapsto \dfrac{az+b}{c z+d}\).

Discovering a proof of Heine-Borel

I’m running through my Analysis proofs, trying to work out which ones are genuinely hard and which follow straightforwardly from my general knowledge base. I don’t find the Heine-Borel Theorem “easy” enough that I can even forget its statement and still prove it (like [I can with the Contraction Mapping Theorem][2]), but it turns out to be easy in the sense that it follows simply from all the theorems I already know.

How to discover the Contraction Mapping Theorem

A little while ago I set myself the exercise of stating and proving the Contraction Mapping Theorem. It turned out that I mis-stated it in three different aspects (“contraction”, “non-empty” and “complete”), but I was able to correct the statement because there were several points in the proof where it was very natural to do a certain thing (and where that thing turned out to rely on a correct statement of the theorem).

A roundup of some board games

It has been commented to me that it’s quite hard to find out (on the Internet) what different games involve. For instance, Agricola is a game about farming (and that’s easy to find out), but what you actually do while playing it is not easy to discover. Here, then, is a brief overview of some games. Agricola Agricola is a game in which you control a farm, and are aiming to make your farm thrive.

Rage, rage against the poet’s hardest sell

I feel that I can write a sonnet well. While sonnets are an easy thing to spout, It’s really hard to write a villanelle. By rhyming, any story I can tell: in couplets, rhyme and rhythm evens out. I feel that I can write a sonnet well. But alternately-structured verse is hell. The poet struggles, juggles words about: It’s really hard to write a villanelle. Enthusiasm’s difficult to quell. An acolyte of Shakespeare, I’m devout:

Writing essays

The aim of this post is twofold: to find out whether a certain mental habit of mine is common, and to draw parallels between that habit and the writing of essays. I don’t know whether this is common or not, but when I’m feeling particularly not-alert (for instance, when I’m nearly asleep, or while I’m doing routine tasks like cooking), I sometimes accidentally latch onto a topic and mentally explain it to myself, as if I were teaching it to the Ancient Greeks (who, naturally, speak English).

Introduction to functional programming syntax of Mathematica

Recently, I was browsing the Wolfram Community forum, and I came across the following question: What are the symbols @, #, / in Mathematica? I remember that grasping the basics of functional programming took me quite a lot of mental effort (well worth it, I think!) so here is my attempt at a guide to the process. In Mathematica, there are only two things you can work with: the Symbol and the Atom.

Denouement of Myst III: Exile

A long time ago, in a galaxy far far away, I completed Myst III: Exile. It’s a stupendously good puzzle game. For some reason, it popped into my mind again a couple of days ago. This post contains very hefty spoilers for that game (it will completely ruin the ending - I will be discussing information-exchange protocols which are key to completing it), so if you’re ever going to play it, don’t read this post yet.