The spiritual similarities between playing music and table tennis

As a fellow table tennis player and piano player, I have noticed some interesting spiritual similarities between the two arts. I’m pretty sure they are also common to other sports anyway.

Always think ahead: the next stroke, the next note

In table tennis, one should not think about scoring a point with the current stroke, but rather be prepared for the next. What ball will I get back given my current playing? What do I expect? How am I going to handle it? If we do not think ahead, we will always fall short when the ball comes back, we will not be prepared. In a similar fashion, when playing an instrument, it is vital to know what the next note will be, what the next musical phrase will be. Giving meaning to a speech is impossible if we do not know how it goes on beyond the very current moment.

Mistakes do not matter. If you make them matter, you lose

It is a common phenomenon to make a mistake followed by more mistakes, mostly in the attempt of correcting that mistake/with the case of overthinking the mistake that has already happened. It does happen to make the wrong choice when playing table tennis, or to not get our best stroke, as much as getting a note wrong. This is not a problem as long as we are able to go on and forget that single mistake. Instead, if we focus on that, we end up stressing it and it becomes much heavier.

Continue reading

FEniCS differences between Function, TrialFunction and TestFunction

The FEniCS project allows for simple solution of partial differential equations. However, getting started from examples is so quick, it is easy to miss how the inner-workings of it behave. This should not happen (especially if it is a PhD project). There are three vital pieces of the puzzle that it might not be clear what they are for, and the documentation does not help here: the functions TrialFunction, TestFunction, and Function.

The thing is that, in the usual Finite Element Methods, we only have the distinction between the trial function u \in V_h and test function v \in V, and even then the distinction is often blurry. In fact, technically, the spaces V_h and V can be different. However, most of the time we take them to be the same (for example, the same discrete space of piecewise linear functions). The names we give them is just to have clearer in our heads what role they play in the game, but we could as well say “two functions in V“. Then why would FEniCS have even a three-fold difference? You can quickly check for yourself that, for example, if you swap the TrialFunction for a Function, FEniCS will complain.

There is no documentation on the topic as far as I have found, so these are my (maybe mistaken) deductions.

The meaning of the TrialFunction is to let FEniCS know what function we are solving for. In fact, when we call

FEniCS expects to find a TrialFunction in A, which is supposed to be the function we are looking for. On the other hand, u_ is the symbol in which the result will be stored, and this needs to be a Function (not Trial, not Test, just a regular Function).

Continue reading

How to give a scientific talk

I have listened to so many talks in so many different fields and topics, that I feel confident enough to provide advice on how to give a proper talk. I have listened to talks ranging from public speaking contests to PhD level seminars. I draw mainly from science talks, but this pretty much applies to any field, really.

0. Prepare your talk

If you do not feel like preparing for your talk, then please just refrain from giving one and save the people from the hassle of listening to a terrible talk. Everybody needs preparation for a talk – their experience may make the preparation quicker, but it is still needed. No preparation, no talk.

1. Define your audience

Who is your talk for? This is the single most important question you need to ask yourself. Who are you speaking for? What background can you expect them to have? Always remember that you are giving a talk for people, so they should be your first focus. Not your work, your presentation, your show – the audience come first! Two presentations on the very same topic can turn out pretty different, if they are aimed at different audiences. If you do not plan for the right audience, you are likely to give a talk that is just wrong (and useless to the world).

The most common mistake is to make the talk too hard and high level with respect to the audience it will be delivered to. This is most usually a lack of confidence, which results in the perceived need of making something difficult to understand so that
a) people can believe the speaker is very smart;
b) make people believe that the subject is worth.
The latter is based on the widespread implicit assumption that anything that is hard to understand is worth, which is just bullshit. Beware of anything you do not understand.
It is also easy to just copy and paste some formulas or graphs and show those off, without giving away any real understanding.

So, when your talk is ready, revise the material and make sure it can be understood (to a good extent!) by a person having the background you expect from the audience. Most importantly, avoid all jargon unless it is really strictly required. And even then, question your choice of using it. It is fine to use some jargon at advanced talks, just bear in mind that if a listener has to pause and ponder about the meaning some word, you have lost them for the time being. Thus, all jargon used should be sufficiently ingrained in people’s head to come without thought.

2. Define what you want to take across

What content are you trying to deliver (if any)? List around 3 points and make sure they are thoroughly covered, and that your audience clearly understands those basic pieces of information. A good measure of success is whether 90% of the audience went home with the ability of re-telling those 3 points with clarity and sufficient detail. If not, then the talk was a failure.

Always make a point of cutting out non-essential stuff. It is true that you might be telling a year worth of work in just 30 minutes, and you may be tempted to detail all the things that make it look like you have done a lot of work, but again ask yourself: is this useful to the audience’s understanding? 95% of the times the answer is a sharp no.

3. Bring the material together and tell a story

The fact that you are communicating some objective piece of science does not mean that your talk should be dull. Of course, you should not aim for entertainment for its own sake. But still, strive to link all your material together and build a narrative with it, make clear to the audience how each piece is linked to the others. Aim to be a storyteller.

Also, a good question to cover, from the point of view of the audience, is “why should I care?”. Do not just show your work, make it meaningful to the audience.

Continue reading

The need of teaching and learning more languages

For a second, stop to think about how many languages you know. With languages, I do not mean verbal languages: rather, any means of expressing thoughts and feelings, or of expressing a dialogue. I am here do advocate for the learning and teaching of more than just one.

Our western culture is based on the verbal language – the one you can speak with your friends, read in novels, and write in essays. We educate kids in that, and yet I would argue that very few of them end up being proficient in the verbal language. Speaking a language does not make you proficient in it: that skill is a much higher level one, and involves deep knowledge of the structure of the language, exposure to thousands examples of both good and bad usage of the language, and effortful practice throughout years. Often, people who venture in learning a new language (a verbal one) do not even ever get comfortable with their mother-tongue. What I mean is that although everybody can talk in their own language, few of them have a real mastery of it. Few people, for example, are able to tell a story (and not because of lack of ideas, but for inability of structuring it), and even fewer are able to read one out loud in a way that is vaguely engaging (for example, they cannot look away from the book to the audience, and fill in any gaps in their reading my making up appropriate fill-ups).

But even if people were proficient in the verbal language, this is just one means of expression. It is barely minimum. And even though we study several different subjects at school, they are all taken across through the same verbal language. But what about other, different languages?

Musicians, on the other hand, can rarely express the feelings and the moods of a musical piece through words. They have a different alphabet, one that does not have translation to the verbal one. The fact that sometimes, some situation reminds them of a tune, or inspires them a tune, rather than words, is a clear example that the musical language is different altogether. It is incredible that we are still studying Latin and we are not all studying music.

Sports is another example where a different language is in place. The main difference between experienced and beginners in table tennis, for example, is in how they frame/live the unfolding of a point. Experienced players see a dialog in it, a conversation that ultimately leads to scoring a point. But it is exactly this sense of structure, this ability to realize how each stroke is connected and what each of them can have as consequence, that gives experienced players an unmatchable advantage. They know what is going to happen, and they know it because they are building something with that language.

Continue reading

The reasons why mathematics teaching is failing

As a mathematics PhD student, I have seen a lot of mathematics teaching. I have been lucky enough to witness some (very) good teaching, but I have also been inflicted with so much bad teaching. Sometimes, I just wondered whether the people do even realize that their teaching is horrible, and I most often believe they are just unconscious about it, since most of the teaching they were exposed to was bad for them as well. I guess they just believe there is no way of making a good teaching of math, since most of it seems to be so bad.

I genuinely believe all graduate students in any subject should care about teaching. Even if you do not particularly care about teaching others, it makes your knowledge and understanding stronger. Just thinking at what matters (which is what you would teach), and how it would be best presented, forces you to thoroughly understand the topics to a deeper level. And at some point, you will just wonder: what are the essential elements of bad teaching? How can I avoid them?

#1 – Too many answers, too few questions

I am genuinely convinced that the most essential element of bad teaching is providing answers instead/without questions. Too often we go to class and we get lectured about some method, some theorem, some theory – and too seldom we get lectured about the path that actually led to that method, theorem or theory.

Continue reading

Troubleshooting the installation of IRAF on Ubuntu

So, found myself installing IRAF on a friend’s laptop running Ubuntu. There are some decent tutorials online about the general steps: for example, this one, and the official one. However, they all skip all possible issues that could come up (or at least, that popped up in my case). This is another good resource about the setup, config and usage (but skip the Ureka parts).

The community-maintained version of IRAF allows easy installation on some systems, such as Ubuntu.

The thing is that IRAF is a jumble of stunningly old pieces of software working together on primitive terminals and on peculiar conditions.

In random order, possible issues/tips are:

  • If the packages iraf-all pyraf-all stsci show as non-existent, you have not added the astroconda channel. The command should be
    conda config --add channels http://ssb.stsci.edu/astroconda
  • You will still need to manually install ds9:
    sudo apt install saods9
  • You do not need to change the default shell to tcsh, although you need it to be installed:
    sudo apt install tcsh
  • If xgterm does not execute with error File not found, although the file is clearly there, make sure you have installed 32 bit dependencies:
    sudo apt-get install libc6:i386 libz1:i386 libncurses5:i386 libbz2-1.0:i386 libuuid1:i386 libxcb1:i386 libxmu6:i386
  • If conda commands do not work, make sure you have activated the Python environment containing the iraf packages:
    cd /path/to/iraf
    source activate iraf27

In the end, the exact set of commands that got the whole environment working has been: Continue reading