Web Excursions 2022-08-04
Some people become religious because they become convinced on intellectual grounds that the specific doctrines of a particular faith are highly likely to be true.
But I want to suggest that there are fruitful ways of engaging with religion that don’t involve belief.
Perhaps the best way to do this is to sketch some possibilities.
If one Faiza says there’s a 50/50 chance of Islam being true.
She is a perfect agnostic regarding the truth of Islam.
But from Faiza’s perspective, Islam is a live possibility: it could be true.
Faiza can choose to follow the Five Pillars of Islam as an expression not of certainty but of hopeful commitment.
Indeed, there is something noble about living in hope that there is a deeper purpose to existence, in spite of your doubts.
if we choose belief in God and it turns out that God exists, then we will gain infinite rewards in the afterlife;
whereas if it turns out that God does not exist, then we’ve lost little, apart from maybe not being able to sleep in on a Sunday morning.
According to Pascal, it’s worth a punt on God.
There are a couple of familiar problems with Pascal’s wager.
For one, it relies on the idea that God will reward/punish each person depending on whether they accept the One True Religion,
whereas many contemporary interpretations of religion don’t have this implication.
And even if we accept this rather possessive conception of God, how do we decide which religion is the right one?
Pascal-style reasoning, at least, can’t help us here.
Through engagement with community and tradition, she can cultivate virtue and good community.
Even if it turns out there is no God, Faiza has lost nothing and gained much.
[If one] Pete finds it deeply implausible that an all-powerful and loving God would create a universe with so much suffering, and
concludes on this basis that there is, at best, a 5 per cent chance of Christianity being true.
there are ways of interpreting Christianity consistent with Pete’s beliefs.
from the very early days of Christianity, there has been a tradition of ‘apophatic’ or ‘negative’ theology, according to which God’s nature is beyond language
Pseudo-Dionysius the Areopagite (late 5th/early 6th centuries) talked of how God is ‘beyond every assertion’ and ‘beyond every denial’.
And the late-14th-century text The Cloud of Unknowing was hugely influential
in showing Christians how to move beyond the superficial descriptions of God found in ordinary worship to a deeper experience of a God beyond human characterisation.
Even some of the Early Church Fathers, such as Origen (c184-253) and Gregory of Nyssa (c335-395) adopted the apophatic approach.
While Pete is an atheist about the Omni-God, it’s not so clear that ‘the “more”’ of his psychedelic experiences differs from the God of apophatic Christianity.
Through meditating on this story, in which God is identified not with the king in his castle but with the naked, executed peasant – the guy who was born in a barn and hung out with the outcasts of society – we are afforded a deep insight into what God truly is
The Christian story is understood not as literal fact but as profound fiction, one that, as part of the Christian spiritual practice, facilitates a deeper connection with ultimate reality.
That’s ‘religious fictionalism’, an approach of engaging with religion as important fiction.
The philosopher John Hick defended a similar conception of religion to Borg but broadened to all religion.
For Hick, all religions are connecting with the same ultimate reality, but doing so with culturally specific mythological language.
Emoji support in terminals has been an ongoing problem in Rich since almost it's conception, and we have inherited that problem working on Textual.e more we looked in to this issue, the worse it got.
It boils down to the issue that when you write a character to the terminal it may be one of two sizes (technically 3 since some characters are zero width).
Chinese, Japanese, and Korean characters take up twice the space as Western alphabet,
which presents a problem if we do any formatting such as centering or drawing a box around text.
Such basic formatting requires that Rich knows how much space a given piece of text will take up in the terminal.
Supporting double width characters means you can no longer use len(text) to find its in-terminal width.
Fortunately the Unicode database contains a mapping of which characters are single width and which are double.
Rich (and Textual) will look up this database for every character it prints.
Its not a cheap operation, but with a bit of engineering effort and caching (see lru_cache) it is fast enough.
Emoji also exist in the Unicode database, so problem solved?
While Asian characters don't change much, emoji do.
Every new release of the Unicode database sees a new batch of emojis.
If you print these newer emoji in the terminal the results can be unpredictable.
You may get a single or double width character, and it might not even render correctly.
We considered shipping Rich with information from every unicode release,
which presents another problem: how do we detect what version of unicode a given terminal emulator is using?
there doesn't seem to be a reliable way of doing that.
There is no standard env var.
There is a heuristic where you write various sequences and ask the terminal for the cursor position, which should make an educated guess as the Unicode version.
terminals still render emoji unpredictably even if you think you know the Unicode database used.
If thats not bad enough, let me introduce you to multi-codepoint emojis.
A codepoint is the reference number for a given unicode glyph (character image).
In Python you can look this up with ord.
For instance ord("A") returns the codepoint 65 representing a capital A.
You can be forgiven for assuming that this is true for every character, but it is not.
Many emojis combine several codepoints to produce a single glyph.
For instance 👨🏻🦰 (man, light skin tone, red hair) consists of 4 code points.
Try copying that in to the Python REPL.
Not all terminal emulators render these characters correctly.
In some terminals they render as 4 individual characters, or 2 characters, or 1 character, single or double width, or sometimes 4 "?" characters.
Even if you implement the code to understand these multi-codepoint characters, you're left with the fundamental problem that you can't tell what the output will really be in a given terminal.
It's a mess for sure, but in practice it's not that bad.
Sticking to the emoji in version 9 of the Unicode database seems to be reliable across all the platforms.
You might want to avoid using newer emoji and multi-codepoint characters even if they look okay on your terminal emulator.