Working with JavaScript's Object Prototype model

Today I worked on some more exercises relating to implementing object-oriented design patterns in JavaScript.

I'm taking the position that a lot of my difficulty in absorbing the materials is because JavaScript itself wasn't designed with this in mind. Any implementations that look or seem intuitive are probably going to be hacky, or hide complexity under some syntactical sugar.

The exercises revealed some models for how to work with OLOO code (see this for an example), particularly when you want to conceal some kind of 'private' data along with your encapsulation of methods. For this latter implementation, an IIFE seems to do the trick, though it also feels a bit of a hack.

Tomorrow I will try to complete the rest of my exercises for the module and then get some more practice of these paradigms / models in examples of my own creation.

Sholay

 
611uqYEppbL._SL1000_.jpg
 

**Some spoilers ahead**

Sholay was not what I was expecting. Somehow the posters or some imagery that I'd seen had led me to expect a film that was about grand politics, perhaps vast armies fighting in the desert.. Instead, and this is all I have to compare it to, some kind of western?

I enjoyed the plot twists. I wasn't expecting the various deaths in the film, especially towards the end. The songs were all pretty good. One felt almost modern somehow.

Some scenes I felt went on quite a bit longer than they needed, particularly early on. I am told that the action scenes were praised at the time, though they too felt a little too long for my tastes.

All in all, some strong character portraits, and I feel some precedents set for future films. I half wonder if there's a sequel where Gabbar escapes from the surely-minimum-security prison to which he gets sent.

Kapoor & Sons

 
download.jpeg
 

A bittersweet family drama set in Coonoor, Tamil Nadu. This was a picture of India I wasn't familiar with, and purely as backdrop this went a long way for me. The story with Tia (played by Alia Bhatt) seemed vastly underfunded in the plot, and the stumbling block was artificial. A number of strong ensemble scenes, though, and just enough grit in the ending to make sense to this viewer.

Dil Dhadakne Do

 
ddd.jpeg
 

A family travels around the Turkish coast on a cruise ship, while romance and past transgressions erupt among them. Some catchy dance moments in this film, but the plot felt too scripted, too unnatural. Too much like Titanic, or perhaps Midsummer Night's Dream at times. Fun, but forgettable.

Two Ruby patterns around map and reduce

When you're going to choose a method to work to transform a group of n things in Ruby, there are two broad patterns you can choose: work with a map function or work with a reduce / inject function.

This pattern choice was recently explained to me as part of my Ruby education at Launch School. I hadn't fully grokked that the choice around how you transform a bundle of things (an Array, perhaps) really can be summarised by those two options.

You use a map method when you want to transfer your array into another array of (transformed) things. (For example, you wanted to transform an array of lowercase names into an array of uppercase names).

example_array = ['alex', 'john', 'terry', 'gill']
transformed_array = example_array.map(&:upcase) # => ["ALEX", "JOHN", "TERRY", "GILL"]

You use a reduce method when you want to transform n number of things (inside your array) into a single thing. (For example, you wanted to sum up the values of an array).

example_array = [1, 3, 5, 7, 9]
transformed_array = example_array.reduce(:+) # => 25

How the Internet Works

The internet. It just works. Understanding exactly how is a bit more complicated than many pieces of engineering. The more you examine the different aspects and parts that make it up, the more you see complexity concealed under the surface.

Visiting this website, for instance: it feels like a trivial thing to do, but there are many different parts making that happen, from the parts that actually transport the bits of data across the physical infrastructure, to the pieces that serve it all to you on a secure connection (ensuring that what I've written hasn't been altered by a third-party).

I've just finished Launch School's LS170 module which takes you a decent way down in the weeds to explain exactly how all of these pieces fit together to make up 'the internet'. So today I thought I'd retransmit some of that as a way of cementing it in my own mind.

At a very abstract level, the internet can be thought of as a network of networks. A network itself is a set of two or more computers which are able to communicate between each other. This could be the computers attached to a home network, or the computers that connect through a central server to a particular Internet Service Provider or ISP.

The internet makes use of a series of 'protocols', shared rules and understandings which have been developed or accreted over time. These protocols allow a computer on the other side of the planet to communicate in a mutually comprehensible manner. (If these shared sets of rules didn't exist, communicating with strangers or sending messages from one server to another would be a lot more difficult).

So once we have this top-down understanding of the internet as a bunch of networks that interact with each other, what, then, is the process by which a web browser in the United Kingdom communicates with a web server in China? Or in other words, if I want to access a website hosted on a Chinese webserver, how does that series of communication steps work to make that happen?

At this point, it's useful to make use of another abstraction: communication across the internet happens across a series of layers. There are several different models for these various layers. Two of the more common models — the OSI model and the TCP/IP model — are represented below:

layered-system-osi-tcp-ip-comparison.png

At the top level — "Application" — you have your website or whatever the user comes into contact with that is being served up to your web browser, let's say. All the layers below that are progressively more and more specialised, which is another way of saying that they become progressively less comprehensible if you were to eavesdrop on the data as it were passing over the wire or through the fibre optic cable.

Let's move through the big pieces of how information is communicated, then, starting at the bottom. (I'll mostly follow the TCP/IP model since it's a bit less granular and allows me to split things up in a way that make sense). This chart will help keep all the pieces in your mind:

layersofinternet.png

Note that each layer has something known as a 'protocol data unit' or PDU. A PDU is usually made up of a combination of a header, payload or chunk of data and an optional footer or trailer. The header and footer contain metadata which allows for the appropriate transmission / decoding etc of the data payload.

The PDU of one layer is used by the layer below or above it to make up its own separate PDU. See the following diagram as an illustration:

encapsulation.png

Physical Layer

Before we get into the realm of protocols, it's worth remembering and reminding ourselves that there is a physical layer on which all the subsequent layers rely. There are some constraints relating to the speed or latency with which data can be transmitted over a network which relate to fixed laws of physics. The most notable of those constraints is the fact of the speed of light.

Ethernet is the protocol that enables communication between devices on a single network. (These devices are also known as 'nodes'). The link layer is the interface between the physical network (i.e. the cables and routers) and the more logical layers above it.

The protocols for this layer are mostly concerned with identifying devices on the network, and moving the data among those devices. On this layer, devices are identified by something called a MAC (Media Access Control) address, which is a permanent address burned into every device at the time of manufacturing.

The PDU of the Ethernet layer is known as a 'frame'. Each frame contains a header (made up of a source address and a destination address), a payload of data, and a footer.

Internet Layer — The Internet Protocol (IPv4 or IPv6)

Moving up a layer, part of the Ethernet frame is what becomes the PDU for the internet or network layer, i.e. a packet.

This internet layer uses something known as the internet protocol which facilitates communication between hosts (i.e. different computers) on different networks. The two main versions of this protocol are known as IPv4 and IPv6. They handle routing of data via IP addressing, and the encapsulation of data into packets.

IPv4 was the de facto standard for addresses on the internet until relatively recently. There are around 4.3 billion possible addresses using this protocol, but we are close to having used up all those addresses now. IPv6 was created for this reason and it allows (through the use of 128-bit addresses) for a massive 340 undecillion (billion billion billion billion) different addresses.

Adoption of IPv6 is increasing, but still slow.

There is a complex system of how data makes its way from one end node on the network, through several other networks, and then on to the destination node. When the data is first transmitted, a full plan of how to reach that destination is not formulated before starting the journey. Rather, the journey is constructed ad hoc as it progresses.

Transport Layer — TCP/UDP

There are a number of different problems that the transport layer exists to solve. Primarily, we want to make sure our data is passed reliably and speedily from one node to another through the network.

TCP and UDP are two protocols which are good at different kinds of communication. If the reliability of data transmission is important to us and we need to make sure that every piece of information is transmitted, then TCP (Transmission Control Protocol) is a good choice. If we don't care about every single piece of information — in the case of streaming a video call, perhaps, or watching a film on Netflix — but rather about the speed and the ability to continuously keep that data stream going, then UDP (User Datagram Protocol) is a better choice.

There are differences between the protocols beyond simply their functionality. We can distinguish between so-called 'connection-oriented' and 'connectionless' protocols. For connection-oriented protocols, a dedicated connection is created for each process or strand of communication. The receiving node or computer listens with its undivided attention. With a connectionless protocol, a single port listens to all incoming communication and has do disambiguate between all the incoming conversations.

TCP is a connection-oriented protocol. It first sends a three-way handshake to establish the connection, then sends the data, and sends a four-way handshake to end the connection. The overhead of having to make these handshakes at the beginning and at the end, it's a fairly costly process in terms of performance, but in many parts of internet communication we really do need all the pieces of information. Just think about an email, for example: it wouldn't be acceptable to receive only 70% of the words, would it?

UDP is a connectionless protocol. It is in some ways a simpler protocol compared to TCP, and this simplicity gives it speed and flexibility; you don't need to make a handshake to start transmitting data. On the negative side, though, it doesn't guarantee message delivery, or provide any kind of congestion avoidance or flow control to stop your receiver from being overwhelmed by the data that's being transmitted.

Application Layer — HTTP

HTTP is the primary communication protocol used on the internet. At the application layer, HTTP provides communication of information to applications. This protocol focuses on the structure of the data rather than just how to deliver it. HTTP has its own syntax rules, where you enclose elements in tags using the < data-preserve-html-node="true" and > symbols.

Communication using HTTP takes the form of response and request pairs. A client will make a 'request' and it'll receive (barring some communication barrier) a 'response'. HTTP is known as a 'stateless' protocol in that each request and response is completely independent of the previous one. Web applications have many tricks up their sleeve to make it seem like the web is stateful, but actually the underlying infrastructure is stateless.

When you make an HTTP request, you must supply a path (e.g. the location of the thing or resource you want to request / access) and a request method. Two of the most common request methods are GET and POST, for requesting and amending things from/on the server respectively. You can also send optional request 'headers' which are bits of meta-data which allow for more complicated requests.

The server is obliged to send a HTTP status code in reply. This code tells you whether the request was completed as expected, or if there were any errors along the way. You'll likely have come across a so-called '404' page. This is referring to the 404 status code indicating that a resource or page wasn't found on the server. If the request was successful, then the response may have a payload or body of data (perhaps a chunk of HTML website text, or an image) alongside some other response headers.

Note that all this information is sent as unencrypted plain text. When you're browsing a vanilla http:// website, all the data sent back and forth is just plain text such that anyone (or any government) can read it. This wasn't such a big issue in the early days of the internet, perhaps, but quite soon it became more of a problem, especially when it came to buying things online, or communicating securely. This is where TLS comes in.

TLS or Transport Layer Security is sometimes also known as SSL. It provides a way to exchange messages securely over an unsecured channel. We can conceptually think of it as occupying the space between the TCP and HTTP protocols (at the session layer of the OSI framework above). TLS offers:

  • encryption (encoding a message so only authorised people can decode it)
  • authentication (verifying the identity of a message sender)
  • integrity (checking whether a message has been interfered with)

Not all three are necessarily needed or used at any one time. We're currently on version 1.3 of TLS.


Whew! That was a lot. There are some really good videos which make the topic slightly less dry. Each of these separate sections are extremely complex, but having a broad overview is useful to be able to disambiguate what's going on when you use the internet.

New book, new ways to order

 
FDP_Cover_Taliban.png
 

“I was around three or four years old when the Communists led the bloodiest coup in Afghanistan. KhAD personnel were arresting the faithful. One day, a few ugly moustached men knocked on our door. My father left with them and then he never came back. We never saw him again.

“After a year, I began to understand that this kind person was no longer with me. Poverty, a cold fireplace, and my old clothes made it evident – I was an orphan. Every man with a moustache looked like my father’s murderer. My uncle took us with him to another village, and we no longer had a home of our own.”

In this way Abdul Hai Mutma’in begins his memoir of time alongside the senior leadership of the Afghan Taliban movement. First published in Afghanistan a couple of years ago, Taliban: A Critical History from Within is now available for pre-order in an English translation.

Mutma’in served as a political advisor to Taliban leader Mullah Muhammad Omar and as spokesperson. He worked in the media section of Kandahar’s Culture and Information Ministry and from 2013 onwards served as a political and humanitarian affairs advisor to Mullah Akhtar Mansour from 2013. In short: he spent a good deal of time around the senior leadership and was privy to the internal workings and machinations of the Taliban movement at its highest levels.

At First Draft Publishing, the small publishing house I started five years ago together with Felix Kuehn, our explicit agenda is to publish books that will help “give researchers, professionals and the interested public access to primary and secondary sources”. This book falls firmly into this remit. The list of primary sources relating to the Taliban (or primary-source-adjacent) is exceedingly thin, even all these years since the movement first burst onto the national and international stage. From our perspective as researchers, the more such memoirs get written, the more we are able to attempt a critical unpicking of narratives and myths that have driven both conflict and efforts towards integration. Without these raw materials, it is impossible to begin the slow and methodical work of scholarship: triangulation, verification, context, synthesis and so on.

A bit of additional housekeeping: if you want to (pre-)order Mutma’in’s book, we have made some changes to how we’re producing and delivering books. We’re moving away from Amazon as the delivery system for our content and will simply process orders manually. For hardcopy purchases, we’ll be printing copies on demand. For ebooks, we’ll distribute DRM-free copies upon receipt of payment. If you’re interested in purchasing any of our books, please visit our website to learn more about our titles and email us to place an order.

Mastery-based Learning with Launch School

It’s a new week, so we have a new podcast episode for you. Matt and I spoke with Chris Lee of Launch School about his approach to online education. We discuss the different tradeoffs and considerations that come into play when a curriculum is being put together.

To my mind, mastery-based learning — where you don’t advance to the next stage until you’ve really mastered the topic at hand — really shines for things where you have some kind of longer-term goal. Just because it’s a good approach doesn’t mean it’s easy, though. In Chris’ words:

We started this to try to figure out education. It was not a money making endeavor. So to us, teaching became the engineering problem to solve. I was not a proponent of Mastery Based Learning before Launch School. Mastery Based Learning or Competency Based Learning is not unique to Launch School, it’s a well known pedagogy in academic papers. But it’s really hard to implement.

Think about a physical classroom. Mastery Based Learning means that a student gets to occupy a seat in that classroom for an indefinite amount of time. That’s a really hard promise to make when our schools are tasked to usher through students. It’s not about training students and making sure they understand every topic, but getting people through.

You can download and listen to the episode over on the main Sources & Methods website here.

Using Ruby's .digits method

I discovered the .digits method in Ruby the other day. As a quick illustration, it extracts the digits of a method into an array, reverse sorted.

12345.digits #=> [5, 4, 3, 2, 1]

You can optionally specify what base you’d like it to use to calculate the digits using, i.e. the same calculation as above but in base 100 would give you the following:

12345.digits(100) #=> [45, 23, 1]

Reading around a little bit, it seems that if you’re trying to get hold of the digits of a number, simply doing a .digits.reverse is perhaps an ok solution if the number is small, but at a certain point it starts to get slow. This is because .digits isn’t just ‘splitting’ the number.

For that reason, perhaps using .to_s.chars might be a better alternative. You can then use a .map function to convert the characters into integers:

12345.to_s.chars.map { |digit| digit.to_i }

I’m not entirely sure what .digits is actually used / useful for, given the speed issues.

Using Ruby's .zip method to combine arrays

In Ruby, zip is a way to combine elements from two different arrays, albeit in a way that is slightly difficult to understand at first glance.

The documentation is a bit opaque, at least to my eyes, and the examples given take a bit of time to get your head around.

Let’s say you had an array of fruits that you wanted to distribute to your friends. You’re organised, so you have a list of your friends as well.

fruits = ["mango", "orange", "pomegranate"]
friends = ["Rob", "Mary", "Holly"]

Using multiple methods and loops, it’d be fairly trivial to conjure up something to combine these two into a new array, but luckily for us .zip exists to save the day.

friends.zip(fruits)

will return:

[["Rob", "mango"], ["Mary", "orange"], ["Holly", "pomegranate"]]

This way everyone will know what fruit they’re getting.

Note that if one of the two arrays is longer / shorter than the other, the missing space(s) will be filled with nil values.

Pain: A Love Story

To go in the dark with a light is to know the light.

To know the dark, go dark. Go without sight,

and find that the dark, too, blooms and sings,

and is traveled by dark feet and dark wings.”

Wendell Berry

“We have been conditioned to think of the darkness as a place of danger, even of death. But the darkness can also be a place of freedom and possibility, a place of equality. For many, what is discussed here will be obvious, because they have always lived in this darkness that seems so threatening to the privileged. We have much to learn about unknowing. Uncertainty can be productive, even sublime.”

James Bridle

This is a story of pain. (The title sort of gives it away). As with babies or dreams, telling stories about pain is primarily of interest to the person directly involved. This is also not the story I thought I was writing. A few months back, I was starting to feel much better, as if the story that I began writing had changed. That one was a story of recovery, a story of lessons learned. It wasn't a story dictated from the trenches. Since then, I have been plunged back a few times into the experiential side of things. It's only a temporary setback, I keep telling myself. Nothing is permanent, especially pain.

For the past five years, I have living my days in varying levels of pain. It seems to have started with some routine wisdom teeth surgery. Or a period of intense stress in my life. I have no real answers about any of this, least of all about the beginning of it all.

What does this mean, practically speaking? What do you have? What did the doctor say? (Yes, I hear you speaking as I write). The doctors say nothing. Or they say many things, which is the equivalent of saying nothing in practical terms.

This thing I’m writing here, this is an attempt to carve out some meaning from my experience. I initially wanted to write something more abstract about the medical system, or about the aetiology of stomach pain, but what I’ve settled on is something a lot more personal. I’ve tried to capture what it’s like to be me at this precise moment in time. I have some conclusions and a sense of some pathways that have opened up ahead of me towards the end, but that’s all quite provisional.

A year or two ago I came across something called a keukegen. See the picture to the side. These are Japanese folkloric creatures. They are, in the words of one online source:

“particularly filthy monsters commonly found in populated areas. They are the size of a small dog, and appear simply as a mass of long, dirty hair. They make their homes in cool, damp, dark places, and are particularly fond of living under floorboards and around run-down homes, where stuffiness, moisture, and lack of human activity create the perfect breeding place for sickness.”

They are often cited as explanations for complicated illnesses that appear without a clear reason or pathway.

keuk.jpg

I grabbed on to the idea of externalising what I was feeling — or the cause of what I was feeling — into this shaggy creature. I loved too how this somehow allowed me to feel some kind of compassion for whatever was going on. The creature perhaps can seem a little sinister, but mostly it doesn’t seem like what you’d consider to be a scary depiction of illness or pain. There is somehow some kind of reassurance in the keukegen. It'll stick around as long as it needs; while it's here I might as well feed it and take care of it.

A lot of the experience of pain is a mental game. You get quite good at the somatic dialogue, listening to what the body has to say, sometimes reacting, sometimes choosing to just be there with it, sometimes trying to talk back. Dialogue is the ideal, you see, and not always achieved. Sometimes it's just the somatic lecture, with me trying to interpret the signals that my body has to communicate to me.

You want these signals to have meaning. You desperately want all of this to have some kind of meaning or deeper purpose. You need it not just to be empty sensation. In my more wise moments, or when I am able to step back, I realise or understand that there is no such thing as 'empty sensation'. Sensation is all there is. But at other times it feels like a disappointment.

You look to the past, casting glances at the wreckage of your life, all the things you haven't been able to do, everything you've had to turn down. You look to the future, always assessing the ways in which some decision will complicate your life in the future, the ways where you'll get something wrong or have to pay a price. These can be a bit like visiting a museum — glimpses of the lost life you'll never get to experience, everything encased in glass cases, all the plans you have to say no to, all the things you’re too scared to accept for fear of what the consequences may be.

You also lose your memory of a pain-free body. I sometimes try to imagine myself into that life, into a body where I did not feel these sensations, but it is like trying to visualise negative space. It feels like a logical impossibility.

Where to start? I have been in some degree of pain for much of the past three to five years. Memory of pain is notoriously (and, experientially) fickle, hence the huge variance in that estimate for how long this has been going on. I only started to really get serious about addressing the pain once it started to significantly affect my life and my ability to go about everyday tasks and my work.

To talk about pain is to enter a universe of metaphor and simile. There is nothing to put your hand on directly, and the measurement of pain itself is notoriously difficult to achieve in any kind of objective manner.

What does it mean for me and my day-to-day life? In the last 9 months I've often been confined to home, stuck lying in bed or on the sofa. Things that normally bring me pleasure became out of reach. They became impossible to do because I didn't have the energy, the mental space, the focus. I lost my creativity. My sense of possibility. My options. Simple things like planning out the coming month with travel for work became weighed down with what sometimes feel like astrological predictions. Nothing beyond the next hour or two seemed to exist with any certainty. I was forced to abandon any sense of the long-term future, existing instead in a tiny pod made up of the short-term.

A few months back ago, it began to seem as if things had taken a turn for the better. I had stopped taking medications for the pain. I was on a new treatment regimen. My body felt better. I started thinking that my body and my gut — and my ability to eat any kind of food — was more resilient. It's hard to convey how this felt in words — it was far more like a feeling of confidence than a particular thought or any objective measure of 'being better'. I felt like I could relax back into the experience of my life once again.

I started saying 'yes' more often. I started participating in more things outside the house. I started coming up with plans for work, for my personal and intellectual development. I started to think about travel in a timeframe looking six months ahead.

But the pain returned. I knew that feeling, the way it melded with my thoughts and my attitudes. What it did to my ability to plan, to think about the future, to move forward in my life. My vision closed down, it curtailed itself.

Instead of fanning out, opening to the world, I closed various doors open around me. I retreated to the few rooms that I knew well, and where I had some sense of control and familiarity. I adjusted my work schedule. I adjusted what passed through my mouth. I ramped up my self-care protocol, much-honed after months of trial in the trenches. This is a familiar place. I know what works — mostly — and what doesn't. I say no more often. I don't do things. I stay at home.

I put the walls back up around me. I closed myself off to experience, to the world. I returned to focusing more on what is happening right now instead of what will or might happen in the future, or in any kind of future that I want to construct for myself. This is a retreat. But it's ok, it's a retreat that is familiar, where I know what's going to happen, what kinds of pain and sensations are likely. I rest. I watch, wait and listen. What's happening in my body right now? Oh, that sensation. I know you. I've met you before. I know you.

Pain is notoriously hard to describe to those not experiencing it directly. There's an interesting history to the different attempts that have been made by medical professionals in an attempt to get a gauge of their patients’ pain levels, but the two more common methods are to make an estimate from one to ten (with ten being the most intense pain you've ever experienced in your life), or choosing between a series of smiling (or crying) faces on a piece of paper. As the subject experiencing pain, neither feels very satisfying or communicative.

The experience of pain in the moment is also quite different from the experience of pain as a long-term phenomenon. One is (mostly sensation) mixed in with some thoughts that are reactive in kind. The latter is mostly thoughts, or thoughts about thoughts — swiftly a recursive and enfolding phenomenon — where the moment-to-moment sensation falls to the background and a wider picture emerges.

Two useful words to add into the mix at this point: tolerance and threshold. Tolerance is the point at which pain becomes intolerable. Your threshold is the point at which pain breaks into your consciousness (possibly as contrasted to a kind of background feeling that's possible to ignore). I seem to have developed a high tolerance for pain over the past few years. I have grown to tolerate far more pain than other people would be able, especially moment to moment. My threshold shifts over time. I couldn't really say I have a fixed idea as to whether my threshold is high or not.

The more time you spend with pain, the more you realise how the usual metaphors start to break down. Pain is like a scale, yes; there is something that we can equate to more and less pain, but there are also degrees or different flavours of the same number on the scale. Spectrum is perhaps a better word — you can be more or less intense, but you can also be different colours on this intensity scale.

I often find that the different flavours of pain come with a colour or mood or shade association. The more time I've spent with pain — the hours really spent with the focus of my attention directed towards whatever sensations are inhabiting my body — the more I realise how many different gradations and flavours there are.

The smiley faces card method of grading your pain is more or less useless. For starters, the scale of the smiley pictures often doesn't make any sense. Why does the frown have to come before the grimace? Why is the wide-open mouth with tears the final position? It doesn't correspond to my pain scale, at any rate.

I tried to express a little of what my body feels sometimes in this drawing. It's not always like this — either the intensity or the precise flavour — but it gives you an idea. Like this piece, the drawing was just a snapshot in time. Pain never stays the same; it is always changing. This is one of the things I've learnt and that I find somehow reassuring; nothing is for ever after all. There is reassurance in that.

Most of my pain is felt or begins as a sensation in my abdomen. Following my own observations plus the investigations of a series of doctors, it seems that this is related to an imbalance of gut bacteria and some infections and weaknesses of that gut. Pain is sometimes caused by an excess buildup of gas in the gut — trapped there by who knows what — or sometimes just a phantom pain all of its own. Figuring out the precise pieces and tessellation of this cause-and-effect puzzle is frustratingly hard to do, and I gave up any hope of real answers a couple of years ago.

If it’s caused by something I ate, or if I’m experiencing some kind of flare that that moment, then I experience that as a sort of torture from the inside. The slow passage of food through my intestines is accompanied by an intense sharp pain, as if a ball wrapped in razor blades is attempting to pass through my digestive tract. Everything is inflamed, raw and highly sensitive to every single inch traversed.

That pain sometimes becomes a whole-body feeling. It'll often reach this point if I've been ignoring it — trying to push through whatever work or exertion I'm currently trying to do. The signal becomes amplified beyond the origin point (the abdomen) and booms out from throughout my body. It becomes unavoidable.

There are some second-order pains that I experience. After several hours of intense pain, I can sometimes feel a kind of tiredness or exhaustion. This is a kind of mental lack of energy. I sometimes get headaches. I sometimes find that the pain saps the energy that allow me to sustain or find my natural (or, at least, in the past it was natural / default position) default mood.

Sometimes the pain will be so strong that I have to lie down, curled up in a ball. This is my not-so-subtle invitation to spend some time with it. Sometimes I can ignore it a little but keep it in mind so that it doesn't become bigger. Sometimes it'll be directly related to what I just ate. Sometimes it appears out of nowhere. I fairly long ago abandoned the need always to find a reason for the pain's appearance each time.

Most of this is just telling stories, making up a narrative that may or may not relate to reality. And the thing with stories, I came to realise, is that they can change the pain as well. Sometimes for the better, often for the worse.

The pain is constantly changing. Never the same. There is almost always some level of pain on a day-to-day basis. There are periods of acute pain flares. This is when I need to cancel everything, give in to whatever experience my body wishes me to have. They can be predicted to a certain extent — certain things, were I to eat them, would certainly provoke such an acute episode — but sometimes come out of nowhere. This unpredictability is what makes it difficult to live or plan with any kind of medium-long term plans.

For the most part this pain I experience does not conjure up any kind of fear. These are pains I know. They are almost a kind of friendly presence by now. Old pain becomes part of the furniture. It is new pain, new sensations in new places or in new configurations, that can sometimes provoke fear. The more time that passes, the more I realise that these are all variations on a theme. They are all sensation, unpleasant sensation to be sure, albeit with something dysfunctional about the messages they send.

After a while, you start to get good at feeling the sensations in your body. Sometimes your body literally stops you in your tracks and you have to go lie down. Distraction makes things worse. You just have to be with the unpleasant thing that is happening. The pain, the uncomfortable sensations, the sense of powerlessness and the things you are unable to do. It’s useful to try not to overdo things on a particular day, or part of the day. You can push yourself, but then you won't have anything left over for the next day or for the evening. If you push yourself too hard, maybe you push yourself into pain. All the observation is a critical part of ensuring things stay manageable, within the limits of what is manageable and controllable.

You get to know certain sensations, or certain patterns of sensations. Some of them become familiar, and thus seem less threatening even if they are painful. You start to discount those sensations; they become more of the background. They become your new baseline. You aren't well, you don't feel well, you lack your full energy and aren't living as you fully could, but you just accept everything. You stop asking for help, stop going to doctors, stop considering the situation unacceptable. You accept it. Sometimes this is useful, other times not. I've found myself in that place at several points. Sometimes it's just a break, it's a space in between treatments, or its a place where you find yourself needing to pull back from engaging with the world, to pull back from hope — the hope that there is a straightforward medical answer, that the medical system can and will solve your problem.

The consequences of this ongoing pain experience are manifold and interact in complex ways. Frustration and grief are both good words to encompass these various responses.

To start with, a high tolerance for pain makes doctoring hard. After months of pain, you adopt to that pain as your new baseline. After doctors prove their ineffectiveness, you stop going to them because you know that the tools in their kit aren't able to address the root cause of what's going on.

The more the pain continues, the more I lose my trust in my own ability to interpret my own pain. In the beginning, pain seemed to mean something ("something is wrong! pay attention! fix me!”) but now after so many months of signal, of this alarm bell ringing, I have lost trust in the meaning it is trying to impart. It has become the new normal. I am more used to ignoring it, to being with it and not reacting to it, so it somehow fades into the shadows of normality.

Chronic pain is not just about the pain, as I stated above. It's also about the second-order effects, the loss of energy and of mental clarity. In periods of acute pain, or even just as a general pattern, I find that I am unable to go as fast as my mind wants me to go. I’m certainly not able to take on or handle the things that I recall being comfortable doing in the past, a few years earlier.

When I read in a book last year that fourteen percent of cases of chronic pain lead to suicide attempts, I could see and feel how that could be the case. I feel lucky that my pain ebbs and flows somewhat, but I’d be lying if I didn’t admit that the thought hadn’t passed through my mind at my worst moments.

Hospital visits mean lost work hours as well as a steady mounting influx of bills to pay.

The dietary restrictions that I've found myself adopting mean that eating out, or eating with anyone else, is more or less impossible. This narrows my social circle, already somewhat narrow to begin with. Spontaneous decisions to stay out in town, to get food as a takeaway or to attend things like conferences or work trips require intense planning and forethought. Everything needs planning and consideration ahead of time.

Then there's what it does to my mind: chronic pain can turn even the nicest person into a far shittier version of themselves.

The loss of control and freedom to choose my life's path and options is a frustration.

In periods of acute pain or when my energy is too low to participate in life in any kind of active manner, this is when I have the feeling that life is moving on around me. I am missing. I am still on this planet, joining everyone in this journey around the sun, but it is as if I am absent.

There is also an occasional anxiety and the desire to push the pain away. This is usually short-lived since it is not a useful way of relating to the pain, but it does occur and is not pleasant as a sensation.

There are some other consequences of the pain that are somehow less obvious.

I am more isolated and disconnected than ever. There is simply no way to convey the day-to-day experience — nor the energy or even the inclination — to anyone apart from a very small core circle of people. This means I can't really share the experience with anyone when I meet them or talk or interact with them, since to do so would require too much background explanation and context. So I just don't bring it up. You feel pretty alone pretty quickly when this is what's going on.

In the beginning, or in occasional moments where I've agreed to do something or other, you feel like you're getting a reputation for being flaky and cancelling appointments and or commitments. I recently had to go back through my calendar to find something from a few years back and I was struck by how many events, appointments and work commitments I'd had to cancel or pull out of at the last minute because my body wasn't up to it. Not only do other people find this inconvenient and wearing after a while, but you lose a sense in your own ability to stick to things and/or commitments after a while doing this.

Another consequence of being ill in any kind of not-so-easy-to-explain way is that you have to suffer through and tolerate other people's armchair diagnoses and well-intentioned-but-wearing interventions into your health. Everyone has an opinion. After a while you learn not to share things with people since you can't face explaining the whole story and then you can't face their explanations of what they think is going on, their presumptions to know your body better than you do, and their questions — as if you haven't already thought everything through a thousand times as to what might be going on.

If you don’t have a single-word medical diagnosis your pain is not taken seriously by others. If doctors haven’t found something that’s wrong, then that somehow means — though people rarely say this out loud — that there is nothing wrong with you. To have a chronic pain condition is to suffer through the shaming, doubting and negation of what you feel by others.

My interactions with the medical system have been instructive, if only in a negative sense. In the UK, where I began some of my investigations into this pain, most doctors simply don't have the time to listen to the whole story, to really delve into the details of what is going on. My general practitioner doesn't even take face-to-face appointments as the first point of call; you first get screened with a five-minute phone call. Then if your condition is deemed serious enough, you get an appointment to see the doctor which is limited to 10-15 minutes.

The body is a system. The medical structures as they currently exist doesn't treat that system, however. They treat individual parts of that system. It has developed a pretty good sense of acute conditions and things going wrong — if you get shot, stabbed, have a heart attack or a serious allergic reaction, you’re in good hands. These are all things that the medical system does pretty well at fixing. You’d do well to go to a doctor or a hospital to deal with those things.

What it is less good at is fixing or addressing systemic conditions that have multiple causes, or that are caused by complex interactions between different systems and groups of causes. Most kinds of chronic pain conditions — characterised as something ongoing and recurring for a lengthy period of time, sometimes even absent any clear or specific stimulus — are these kinds of complex problems.

I saw my GP, received referrals to various specialists. I was referred for followup tests. All the different parts to this universe of treatments were characterised by two- to four-month waiting lists. In between treatments there was no followup. The system wasn't configured to link all the parts together. Once one specialist ruled something out, I'd get sent back to square one with my GP.

Eventually, the default position for unexplained abdominal pain that reoccurs or exists on some kind of chronic time-scale is a diagnosis of 'irritable bowel syndrome'. As most doctors will willingly describe, this is a diagnosis of exclusion: they haven't been able to find anything that fits into a specific 'bucket' so you end up with 'this is something else but we don't have a word to describe it’. You'll usually receive a lecture on clean eating, perhaps something about gluten or FODMAPs, as well as instructions to try to 'manage stress'. Any further investigations are usually much harder to initiate at this point because the doctor — by putting you in the IBS bucket — has essentially decided that there's nothing left to investigate. At this point you're on your own.

If you have an uncharitable doctor, or if you discuss it with (mostly well-intentioned) family or friends) you'll hear about how it could 'all be in your head'. You'll hear a lot about stress, and how you should 'really try to get a handle on that'. Your doctors will tell you to 'learn to live with it’ (read: ‘we don't know what's going on so we're giving up searching any further’).

When you go see a new doctor, particularly after a few years of a chronic condition, you have to play a delicate balancing act in terms of the quantity and type of information you reveal about your story. Tell too little and the doctor won't understand what's going on and you won't get any kind of solution. Tell too much and your doctor will quickly put you into a hypochondriac bracket in their minds.

Sometimes I'll be in a lot of pain and I'll know — in an acute episode, for example — that this kind of pain will probably dissipate in a day or two but that I need something to get through it for right now. I've tried enough of the pain medications out there by now to know which ones are good for which manifestations of acute intense pain. The problem is that if you go in requesting a certain kind of pain medication — particularly anything of any kind of strength, and especially if it is any kind of opiate — you'll be labelled 'drug-seeking' and you may never get what you came in for.

For non-acute episodes, doctors will ask you to rate the pain on the 1-10 scale. Because of my high tolerance, my instinct is to rate the pain fairly low because it is all — on some level — tolerable (quote unquote). (Just unpick that word ’tolerable’ for a second in your mind). Or even if it is quite intense, I've lived with it long enough that it doesn't necessarily manifest on my face or my body as if there is any kind of intense pain. Just because I'm not crying out, wincing or bent over doesn't mean that there is no pain. In fact, in my worst moments of pain I'm simply unable to get to a doctor or hospital and you'll find me instead in bed or lying on a cool floor waiting for it to pass.

Abby Norman’s fantastic book Ask Me About My Uterus has this section on how you can grow to some kind of uneasy familiarity with pain:

“Bodily agonies that do not end beget a kind of forced intimacy with pain that, not unlike other intense relationships, can eventually bleed into something tedious and almost unremarkable in its enduring presence. Its place in our lives can become ordinary and even, at times, oddly reassuring. The moment that pain owns us is not when it chokes our breath, when it knocks us down, or when it steals our pleasure. Pain becomes our master when we wake up one day and realize we no longer fear it. When we come to regard it as not something separate from us, but something of us. As much as we have labored to resist this in our minds, our bodies acquiesce. Our hearts beat, our cells divide, our nerves—frayed though they may be—fire, and one day we realize that we no longer remember what it feels like to live without pain. What becomes remarkable is not our body’s distress call, but the silence. Really, it’s the silence that we fear, because it does not mean we have been healed. Silence after pain usually marks our body’s inability, or unwillingness, to adapt again, to heal itself, and to persist as we do for an answer, or a reason, for our suffering.”

There is also a kind of shame in this familiarity. The dominant narratives that you’ll hear around illness and healing usually have some kind of ‘struggle to beat adversity / struggle to win’ theme to them. Coming to a familiarity, making peace with pain, or surrender of any kind is somehow socially anathema. That may be the case, but I have been finding something compelling in the feeling of reassurance.

I gave this piece a slightly odd subtitle. ‘A love story’. Amidst all the uncertainty and inability to describe (or understand) what’s going on inside my body, I have grown much closer to all the myriad sensations and energies happening from moment to moment.

The experience — an extended period of illness and suffering in general, chronic pain in specific — has taught me a lot along the way. I’m far less disconnected from the everyday somatic experience of my body than I’ve maybe ever been in my life. I’ve learned all sorts of things about stress, trauma, the mind-body connection as well as ways of coming to terms with it all. I’ve learned that the treatment of chronic conditions by the normal healthcare system is truly broken. I’ve learned that placebos are a real and sometimes beautiful thing.

I’ve been continually surprised at the body and mind’s ability to adapt to a new normal. Shifting baselines are both a blessing and a curse, but the way I’m constantly calibrating and coping in response to changing circumstances is a marvel to observe.

Amidst this wreckage of what I once thought ‘normal’, there are things that help from time to time. Protective and defensive measures seem to work the best. Awareness and mindfulness help prevent small irks and aches from growing when I try to ‘just push through’. Following a restricted dietary regimen can sometimes help, but not when I’m so far gone that my body reacts even to the good stuff. Stress and time management is almost a truism, but it’s achieved that status for a reason. Sleep is possibly at the top of my list of things that make me feel better; it’s also the first thing I’ll start neglecting the moment I start to feel better. Slow kinds of movement, be it walking or yoga, have been useful in reconnecting me to some kind of energy and reminding me that there is some life or presence in me yet. Acceptance and a reminder about death (not getting too attached to my body and the world) is a surprisingly handy mental model to have when going through the worst moments; in the end, everything passes.

When pain shows up all guns blazing, that’s who’s in control. For someone who generally has a sense of how they’d like things to unfold, this powerlessness took a long time to come to terms with. But there’s some sort of relief in the surrender, even if that’s also somehow layered alongside shame. And since we’re quite far down the road of dealing in metaphor and story by now, maybe it’s just a question of taking care of this scraggly keukegen beast for as long as it takes. One day perhaps I’ll wake up and it’ll have decided to move on to take up residence in someone else’s back yard.

Pain is a profound teacher. If only the experience weren’t so unreasonably unpleasant.