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

Install Windows 7 on a modern, Intel 8th generation computer

I spent a good week trying to get Windows 7 to work on a modern laptop, having an Intel i3 8th generation CPU and other recent components, such as a NVMe SSD. What I did not know in the first place, is that officially, Windows 7 does not support Intel CPUs later than 6th gen. Moreover, it does not support UEFI boot (not GPT partition tables). For reference, we are talking of a PC Specialist Ultranote IV 14″. Up to now, everything works almost flawlessly but the wifi/bluetooth adapter.

I am not gonna provide a full tutorial on how to install Windows 7 on a modern computer, but I am going to list here all the relevant resources that helped me succeed in the mission, as the research turned out to be quite exhausting.

The main issue is that the installer will stop quite soon and abruptly, stating that “A required CD/DVD drive device driver is missing“. Clearly, this is bullshit, as the laptop does not even have an optical drive and the installer was running from USB.

Continue reading

Endless Christmas X-MAS CTF Writeup

This is a writeup for the Endless Christmas challenge, md5 hash 866c92038d6e9fc47db4424f71f6167a (download binary). It appeared in the X-MAS CTF, and it’s a Reverse challenge.

Using afl with Radare we can see there are calls to write and execve, both happening in main, a sign that this program creates (and maybe executes?) something else.

Putting a breakpoint just before the execve happens will reveal what file is being loaded (looking into the rax register).

I went down 60 rabbit holes disassembling this binary further, but the best thing we can do at this point is change point of view, step out of Radare, and launch the binary by itself – it certainly doesn’t seem to be doing anything nasty up to this point.

It takes some time before any output is shown, so this may be a sign that some decoding happens. The program creates a good number of other binaries which all look identical, albeit different from the original one (as their size shows), but that are actually different upon closer inspection with their md5 hashes.

Continue reading