About this blog

Programming, medieval maps & the spirit of Columbus

These essays are about programming. And also about territories that border to programming. I believe programming is not only about code.

Please visit the Archive to find the most recent texts. If you know Swedish, you'll find some extra material.

I intend is to write texts I would find to be of interest. Naturally, I would be delighted to have readers, and even more so delighted if they would communicate with me. However, my main goal is to focus my thoughts - however vague, opinionated and unsubstantiated they may be - at a given point in time.

All texts at Here be seaswines are essays in the informal sense. They may include or concentrate material from Computer Science or some other resource related to programming, but no text, no opinion nor no view is substantiated in the formal sense of scientific essays.

I view my writings as honest attempts to grasp some aspect of programming, some with a personal angle, some without. And in this regard, I owe much to Montaigne, and his essays about various subjects. Montaigne did not claim to be original. His essays only claimed to be implicit 'applications' of earlier authors' views on a topic. A figure of thought implicitly questioning the notion of originality.

You should by no means hold me by these essays. An essay in the tradition of Montaigne should be reflective, but it should not be the conclusion of one's lifelong thinking. Also, I believe such an endeavor would only produce lies. According to Montaigne, an essay is supposed to produce a snapshot of a subject matter from a personal angle, no more, no less. The essays on this blog are separate.


When we speak about programming we mean more than code. When we speak about programming, we also mean history, culture and values. Code is important, but without the surrounding territories, the land of programmers would be cold and desolate - a hostile place. We need culture to feel at home.

Here be seaswines? The seaswine, indeed a strange creature, was depicted by the Swedish historian Olaus Magnus, famous in Europe in his days, on a map, Carta Marina dated 1539. According to Magnus, seaswines lived in the North Sea and in the medieval mind, they were linked to heretics, distorted the truth and lived like swine in a non-literal way. My aim, however, is not to distort the truth but to explore territories unknown, and you're most welcome to join me in this venture.

Also, I am fully aware of the meaning of 'here be dragons' - a sentence I have borrowed and paraphrase - in the context of programming. It's used to describe passages of code as fully functional, yet obscure. '[A] comment hackers put in their code to indicate that the next section somehow works even though they don't know why, so please, please don't touch it.' ― Definition from Urban Dictionary

// Here be dragons.

What does this passage of code mean? I know what it does, its outcome - but I don't know the code work?

This is an experience every programmer knows. (It doesn't matter if you have not heard the expression.) We are free to do very diifferent things with this experience; we can leave it be - let the obscure passage of code linger - or we can do out best to explore this unknown territory. We might fail, but as Alan Kay once put it,

'if you don't fail at least 90 percent of the time, you're not aiming high enough.'

As programmers, we have a choice. Either we are frightened by dragons and mysterious monsters such as seaswines, and so by being forced to retreat into a medieval mindset. Or we can embody the spirit of Columbus and view unknown territories not as populated by beasts and behemoths, but as white spots in our knowledge, empty spaces implying possibilities to learn more about programming. And if we handle the experience with a proper temper, possibilities turn to opportunities. We begin to search them out, hunt obscure code; as the popular saying goes, the hunted become the hunter.

I should say that the spirit of Columbus only has this meaning in these essays, and no other. Columbus and his companions were cruel men who tricked, killed and enslaved the people they met in the New World. Columbus might have embodied a new view on knowledge, uncertainty and cosmos but at the same time, Columbus acted as a seaswine in the New World with the meaning Olaus Magnus gave the word.

The spirit of Columbus is merely a metaphor with all the usual merits and limits accompanying metaphors we use. I use it only as a metaphor for curiosity; to describe the spirit of Discovery.

On medieval maps & the invention of white spots

We know the meaning of 'here be dragons'. But what did it mean when it came about? Or rather, what is the 'significance' of the phrase? The phrase was not present on medieval maps - it's a retrospective. Let's turn our eyes from the realm of programming and recapture some history of ideas.

Sometimes cultures and civilizations emerge seemingly from nowhere. Just think about the Greeks. We often hear about the uniqueness and quality of Greek thought and art. This quality did not emerge from a void and the road to the Golden era was long, and above all, characterized by dialogues, meetings, and trade with nearby, more advanced cultures.

Trade and dialogue was the vessel for advancements, and this vessel was driven by numerous small, fragmented mini-states (polis). Surely the greeks were curious, but we also have to have in mind that they were dependent on trade and the small scale polis helped to create dynamic milieus.

At the time of Columbus, much of this was true also for Europe. Europe at large was fragmented, and changes in the economy and the rising of a new class (the bourgeoisie), allowing some freedom of action, some separation from the Crown, is perhaps equally important to understand why Europe began to relate differently to maps full of monsters.

The ships were better, true. And so were compasses, but this fact doesn't fully account for the increased travel by sea. My point is that we should not explain why Europe entered an era of Discovery with the models stating 'they did it because they got the means to do so'.

We have good reasons believing that we should not understand medieval maps literally, but understand them as didactic, moralistic documents, in the same manner, modern research view 'limits' and 'boundaries' symbolized by monsters in the mythology of ancient Greek.

The significance and moral of these creatures are that we should not cross this or that border, 'else there are no guarantees of what will happen'. And this also resembles what hackers mean when using the sentence 'here be dragons' as a comment in code.

Medieval maps were not made for navigation. For this purpose, seafarers used nautical charts, special-purpose maps and astrolabes, the sextant and such instruments. The compass was not a new invention in the days of Columbus, compasses had begun emerging in Europe and in the Arab world around 1300 (in China they were around very early).

Instead, seafarers of the middle ages used portolan charts, displaying boundaries between land and water, but also straight lines for how and when to use the compass. However, the compass in itself was in these days not a very advanced instrument and most got further by the use of astrolabes and intimate knowledge of constellations of the sky at night.

What do maps filled with monster tell us?

Buildings, pictures, music speak to us. They have a semantics of their own. Visiting a cathedral we intuitively understand its language, what it communicates. We understand essential aspects of Christian theology just by looking up, and in amazement see the ceiling peak upwards against the sky. The smaller temple within the larger, made possible by the grace of God. A God we should love, but also fear as we all things powerful.

The cathedral implicitly tells us how small and fragile we are. It also separates us (more so in the middle ages) from the cold, hostile world outside. A cathedral communicates: 'you belong here, and if you show God proper respect this can be your home tomorrow, but today settle for this cathedral'. Well, to those of Christain faith anyway (I am an atheist).

Similarly, the purpose of images of monsters is generally to scare. This was not first hand a part of a politics of fear, but a part of how the World was understood. And in a medieval church, there were plenty of horrors. Monsters communicate not only 'stay away', but also 'know your place', 'know that you are fragile'. And indirectly it is also a reminder of safety (if they're not at hand right here, right now).

By a mark, we encapsulate what we don't understand and thus make it understandable - if only as a symbol of what we don't know, what we should not do. Something interesting to note is that fear of the unknown, uncanniness, is emphasized by Freud in a famous essay named "The Uncanny". Freud describes an experience we all know: that which threats us and at the same time remain something we can't fully comprehend, is was scares us the most.

The German word unheimlich is obviously the opposite of heimlich, heimisch, meaning "familiar," "native," "be-longing to the home"; and we are tempted to conclude that what is "uncanny" is frightening precisely because it is not known and familiar. Naturally not everything which is newand unfamiliar is frightening, however; the relation cannot be inverted. We can only say that what is novel can easily become frightening and uncanny; some new things are frightening but not by any means all. Something has to be added to what is novel and unfamiliar to make it uncanny.

― Sigmund Freud in The Uncanny (1919)

Even though we have good reasons to be afraid of a lion, we know the lion to be 'only an animal'. But when we look at the horizon and see no land, when we look into the depths of the sea, and when we experience a storm while at a boat we face experiences we have good reasons to think we don't know what feel and think about. True now, and even more so on a ship 1492.

We could try to climb a tree and so by escape the lion. But how would we escape the horizon? The relationship to the Sublime would change during the Enlightenment and the following period of Romanticism, they were intrigued by it. But during the middle ages, the Sublime meant horror, while we later came to be fascinated by the experience, although respecting it.

Perhaps this is the true significance of the monster in this age. A symbol for we cannot understand but should fear. An attempt to by use of a name, a spell, have power. If we name the fear we don't understand, we can tell others to avoid it. The contours for the fear of the Unknown may have moved its borders, but this is fear seems universal.

As programmers, we are in a privileged position. It's highly unlikely our code will jump out from our screen and hunt us down. We should never settle with a comment like 'here be dragons'. If we need to comment on code and state 'here be dragons', we can - but we should also return to the passage, do our best to understand it. We need the spirit of Columbus.

The spirit of Columbus, refactored

Whatever you cannot understand, you cannot possess.

― Johann Wolfgang von Goethe

I would guess from my readings, Columbus was not a very curious but admittedly a courageous person driven to the horizon by material interests - a raging hunger that made him cross limits. And limits he crossed. Columbus and his consorts crossed every reasonable moral boundary after arriving at the New World. He was not into discovery as a venture, to expand his World's boundaries of knowledge; he was in it for the money. On the other hand, this matters little in this context. The spirit of Columbus is an excellent metaphor still, but only with some modification. Columbus was a loudmouth speaking widely about values, his God and about standing up for things. But there was an abyss between what he said and how he acted. You can't constantly speak about standing up for things and then act the other way.

In Sweden, just as elsewhere in the World, a new kind of 'conservatism' has arisen who speaks about tradition, while their representatives have no true culture. We will use fake conservatism as an example because it's an obvious example of discourse manifesting an abyss between words and actions (the epitome of bullshit). This is why, in Sweden, a politician who has no sense of taste and doesn't honor the tradition of rational, truthful and moral discourse always ends up leaving serious parties, going to parties where traditional political discourse doesn't apply. It amounts to nothing when they say they stand up for values when their actions speak another language. The only thing those 'conservatives' contribution amount to is hollow words, especially since they never bother about reading up on their tradition - something we know conservatives engaged in politics do. What educated person would vote on representatives who base their knowledge on audiobooks, easy to read texts and Twitterflows? Not conservatives for sure.

It's nothing wrong with audiobooks, easy to read texts and Twitter, but it's a dangerous situation when such individuals think they're able to make contributions in a political context. The abyss between what fake conservatives say and do are well known in age of Populism, and is, therefore, an excellent manifestation of how Columbus related to Christianity. Within Christianity, there were counter-voices who, in contrast to Columbus, viewed the people they met as humans. However, decency did not win this battle - greed did. As a side note, to me, being a liberal, fake conservatives would be no problem if they had not begun to gain power and with populist tools gained votes from serious conservative parties, political parties who adhere to adult standards of conversation.

When we speak about the spirit of Columbus, we refer to practical reasoning, very much like the reasoning alive in the world of programming. And when we pare curiosity with practical reasoning, we just might open the box of Pandora. The distanced gaze of Theoria is important as a balance to this. And in a way, these essays want to be closer to this view than the spirit of Columbus. At the same time, practical reasoning is what drives development in any area. A fact especially true, I would say, in the context of programming.

When speaking about "[p]rinting, gunpowder and the compass" as knowledge as means to power, the philosopher and scientist Francis Bacon, himself engaged in England colonization of the New World, he manifests this spirit fully, as well as unintentionally implying its dangers.['Printing, gunpowder and the compass: These three have changed the whole face and state of things throughout the world; the first in literature, the second in warfare, the third in navigation; whence have followed innumerable changes, in so much that no empire, no sect, no star seems to have exerted greater power and influence in human affairs than these mechanical discoveries.' - Bacon, Francis. "Novum Organum" (1620).]

Technology is always a sword with two edges. The greater the power of technology, the greater the good it can do. But the same is true for the opposite. Nuclear technology has meant good things for humanity, at least in the short run. But no other technology has in two single strokes killed off more people. No other weapon of mass destruction, when applied, comes to close to the horrors of Nagasaki and Hiroshima.

Oppenheimer is in a way an excellent representative for failed Enlightenment. His curiosity and will to understand and explore the mysteries of the Universe motivated him, when faced with doubts about the Nuclear program.

We must acknowledge that it's possible to envision the use of atom bombs from a moral perspective, without defending it. The cold reasoning behind the use of the atom bombs is a part of modernity, how we relate to morals. - Would the war have ended otherwise? How many other horrors would have emerged? Would the Soviets have settled with the eastern parts of Europe, if not the US disposed of (for a time) superior weapons?

I am not defending the use of atom bombs, but we should admit that the instrumental ethics behind it is not alien and quite easy to relate to.

The Frankfurt School believed the Holocaust was the logical consequence of the Enlightenment. Some say they so by are a part of the so-called counter-enlightenment, an intellectual current wanting to abandon this project. This is inaccurate. The Frankfurt School wanted to restore the project of Enlightenment, modify it and do it better. A spirit very much aligned with modern empiricism, another aspect of the Enlightenment.

The Frankfurt School wanted to cleanse a failed Enlightenment. And in this regard, I think their project is praise-worthy even though I am not a Marxist and very strongly doubt the possibility of the Utopia of socialism. It is, however, possible to better than we do today. A better world is possible.

The years to come, computers, IT and programming will increase its power and hold of humanity. There is no turning back. And I believe programmers have a special responsibility in this situation.

We cannot reduce our selves to be 'good yes sayers', no. We have a moral obligation not to only dwell on issues of technological nature, but we also need to reflect on the cultural and moral implications of technology. This is certainly true for the product we develop, but also for the culture we are a part of programmers and hackers.

A world directed by the whims of curiosity and the spirit of discovery sounds nice, but it also sounds like a great peril that we need to balance against other aims. And this is why programming must be balanced against knowledge and insights from other areas and traditions.

Luckily, all this is manifested in the high culture of hackerdom. In this age, we need pop culture but we also need a connection to depths, to the depths of other cultures, aspects of knowledge that some in the world of programming are suspicious of because they provide no norms for accurate output in the same way as applications do.

We should be guided by curiosity, but we should balance it against values. We should hunt monsters when we find them in code. But we should be careful not ending up as monsters ourselves. Our drive to be able programmers needs balance. We do not only need yet better understandings of subject matters related to programming. We also need culture and moral perspectives.