Friday, 22 December 2017

Internet Security III: Salting Your Hashes

I dream therefore I Am.

Salting your hashes helps protect against rainbow attacks. No I'm not making this up, this is fairly basic web security.

If you waded through my previous rambles on this topic you'll recall that hashing is a way of protecting user passwords. A hash is an algorithm that generates a very large number from data (often text). The hash represents the data, kind of like a fingerprint. Hashing can be used as a way to verify that data hasn't been tampered with - if the hash is transmitted with the data then you can hash the data yourself and check it matches what is expected. Hashing is also a way to check passwords without having to store the password. When a user supplies a password the password can be turned into a hash and compared with the stored hash. If the two hashes match then the user has supplied the right password and this can be done without having to store the password. This improves security because if you don't store the password you can't leak the password.

Unfortunately however, as I explained, this is vulnerable to a type of attack called a "brute force" attack. If an attacker knows the hashing algorithm in use they can simply try every possible password until they find the one that matches the hash. One way to reduce the risk of this is to use a very slow hashing algorithm, so that trying every possible password becomes very difficult.

Alas, the bad folk are as intelligent as the good folk. Our saving grace is that being good requires less deception which in the long run makes it more effective, the problem then is trust and there are various ways to establish trust or to co-operate with people without having to trust. All topics for future ruminations.

Although slow hashing protects against brute force in theory, there's another class of attack it doesn't prevent and these are called "rainbow table" attacks. (Don't ask me why, but I bet google knows - probably because a rainbow has all the colours.) As well as computers getting vastly faster (I refuse to use the word exponentially because it actually has a meaning and this aint it) storage has become vastly cheaper too. There are only a finite number of common slow hashing algorithms and if you want to be secure you ought to be using a well understood one. Sadly that means an algorithm known to your attacker too. For those not in the know, which now doesn't include all UK schoolkids below a certain age, an algorithm is a series of steps to achieve a result. Like a cooking recipe. I love that children are now taught this.

An attacker who knows what hashing algorithm you're using can pre-compute all the hashes of every possible password. This is called a rainbow table. It takes a lot of time and a lot of storage space, but once it's done it's done and then your one way hash is broken! The point of a one way hash is that it's easy to turn a password into a hash but hard to turn a hash back into a password. If you've calculated all the possible hashes of all the possible passwords then it's easy to go from a hash back to a password - you just look it up in your rainbow table!

This incidentally is why password security nowadays is mostly dependent only on the length of the password you pick. Working out all the possible hashes for a five character password is mahoosively easier than every possible hash for a ten character password. The comic-and-generally-all-round-genius XKCD recommends that instead of picking a password you should use a pass-phrase, and maybe throw in a number and symbol to throw off dictionary attacks (passwords comprised of words in the dictionary are common, so attackers try these first). Added to this "my-horse-only-p33s-in-the-bedroom" is much easier to remember than "f&fadjsd!!00ffr". The pass-phrase is dramatically more secure, simply because it's longer and it would take a million more computers for a million more years to break it (uhmm, approximately). This is why websites that have a maximum length for your password are being stupid as well as lazy. They've made a security decision to make lives easier on their database rather than making a security decision for security.

The way round this is to salt your hashes. Instead of hashing just the password you pick a random salt (a word or string of characters) and hash the password plus the salt. You need to store the salt alongside the hash, and always use it when checking the password. Now a rainbow attack doesn't work because each password has a different salt, so they'd need a different rainbow table for each "password plus salt" combination. So even if your database of password hashes plus salts leaks the attacker still has to compute or already have a rainbow table for every salt. Effectively you just made every password a lot longer, and longer in a different way for each password, making the required rainbow table required to break it vastly (exponentially?) bigger. At some point, as computers continue to get faster and storage cheaper, this will not be enough, but at that point you can migrate your database to a different hashing algorithm and a longer salt. There are established techniques (annoying to do but well understood) for this migration process.

At this point it seems right to mention that it's not just salted hashes I'm a fan of, but the current fad of salted caramel is right up my alley (if you know what I mean) and Christmas is nearly upon us!

You may also be interested in the following programming related articles:

"It's not so much that I don't fit in a box, it's more that I really resent being pushed into a box that I'd probably fit into if I wanted."

Tuesday, 19 December 2017

Internet Security II: Slowing Things Down

"You will not be punished for your anger; you will be punished by your anger." -- Buddhist proverb

Here's an interesting geeky snippet you probably don't know. The substantial part of progress in computing technology over the last handful of decades has been about making computers, and computational processes, faster and more efficient. However, there is one very important area of computing technology where significant improvements have been made in deliberately making things slower and less efficient (and no it's not Windows startup time - that's just a coincidence). Making the process more "computationally expensive" as us geeks like to say, just so that you think we're clever and will hopefully pay us more money.
By now some of my geek friends will already know what I'm talking about, because this actually is a rarity. Normally when we make things slower it's by mistake, there really are very few things we *try* to make slower. What I'm talking about is a facet of computer security to do with the processing of passwords.
Basic web security says that you never (ever) store user passwords. If you store a user password, however carefully, there's a chance it can be found. If you don't store the password it can't. Standard practise, which reduces rather than eliminates risk, is instead to store a "one way hash" (actually a salted one way hash, maybe another day I'll explain salting). A hash of a password is effectively a very, very large number, and everything in computers is a number when it comes down to it, that represents the password. Given a password typed in by the user you can put it through the algorithm that turns it into a hash and compare it with the stored hash. If they match then the user has supplied the right password and if it doesn't they haven't, and yes this means there is an infinitesimally small chance that by coincidence someone could supply a wrong password that happens to hash the same way - this is a tiny but literally calculated risk. This way you can still check if the user has given you the right password without having to actually store their password. It's called a one way hash because you can go from a password to a hash easily but not easily back from a hash to a password. Genius, right?
Except modern computers are astonishingly fast, and what's more nowadays you can trivially easily (honestly) use cloud computing to perform similar calculations on hundreds of computers simultaneously. So even with hashing in place it's possible to just try every possible password until you eventually find the right one. This is called a "brute force" attack. (There are a whole class of computing problems where "brute force" is the only known way of finding the best solution, these are called "NP hard" problems and they include the knapsack problem and the travelling salesman problem, which are problems delivery drivers have to solve every working day. Delivery drivers solve these problems a similar way to how programmers solve NP hard problems that they can't actually use brute force on because it's too slow; take a best guess and get on with it.)
The solution to the problem of cracking passwords by force, or at least the best amelioration to date, is to use a hashing algorithm that is really expensive. i.e. to make the process of checking if a password is correct "computationally expensive", very slow and requiring a lot of memory. So a brute force attack, whilst still theoretically possible becomes effectively impossible in practise. There you go, slowing things down for the good of all humanity.

For the true geeks amongst you, up until recently the recommended slow hashing algorithm was one called "PBKDF2". The latest hotness, I believe, is called "Argon2". Slow hashing is a rapidly changing field.

The looming scary monster on the horizon is not the ordinary progress of computing technology we've seen so far, you'd still probably have to have a million computers churning away until the heat death of the universe to crack some of our codes. The scary thing is the maybe-real-maybe-not-who-knows quantum computing which is gradually emerging. This takes a completely different approach to solving this kind of problem, and if we ever get it right. Well, that's a whole different kettle of ball games. The bottom line is that no-one knows what scary terrors await us on the other side of the future, and the only sensible thing to do in the meantime is make sure you enjoy today and cuddle the people you love. A lot.

You may also be interested in the following programming related articles:

"There's an Islamic teaching that one of the prayers that is never refused or not granted is one for true guidance and truth. It is, after all, the only key to open the door. Just ask.

Friday, 15 December 2017

Twagging and the Garden Hip Hop

Non-magical thinking on magickal topics.
Twagging was the Northern English vernacular for cutting school back when I was a wee nipper. Something I never did, nor did I ever receive a detention. Signs of a seriously misspent youth of which I am appropriately ashamed.

A pasttime I did indulge in was garden hopping. This involved finding a row of suburban dwellings with adjacent gardens separated by fences, normally six foot high. Just high enough for a kid to shinny over. So long as the fences at the start of the row and the end of the row are bordered by roads or paths it's possible to scramble from start to finish with the only obstacle between being a series of fences in various states of disrepair and angry occupants similarly in varying states of disrepair. Even if the occupants were in the garden and could see you coming they were usually surprised enough that you could get across their garden and into the next before they'd even decided they ought to try and stop you. Looking back to see their faces was fun but ill-advised as once you start you better not stop until you get to the end.

I don't think we ever got caught, and we rarely demolished too many fences along the way, but we certainly had some near misses. Such a great form of exercise and a hearty adrenaline kick to boot.

Of course as a young adult at university we had moved beyond such childish pasttimes to much more sophisticated means of entertainment. Bridge hopping was one of my favourite. We'd hire a punt on the river Cam and load it up with beer and marijuana. Many of the bridges on the river cam are just low enough that standing at the front of punt it's possible to pull yourself up onto the bridge, dash to the other side and get back into the punt before it has moved out of range.

How hard this is depends on just how much of the beer and marijuana you've consumed, and just how much your friends want to see you dunked in the cam by getting the punt far enough out of reach before you can get back in.

Such fun.

"I know I am wrong in so many ways, but I'm willing to be right wherever it may take me and whatever it may cost me."

Wednesday, 29 November 2017

Hippies and Charismatics: From the Sixties to Here

Loving people is so much more fun than trying to convert them, I promise you.
The article linked below is a description of an aspect of the Charismatic Christian revival of the sixties and seventies that happened as part of a wider movement of longing for peace and a better world. And the article mentions my church.

That wider global movement had a resurgence in the nineties expressed in electronic dance music, seeking a genuine culture of love, with a parallel within the Charismatic movement called the Toronto blessing. For an interesting look at the youth culture around the nineties the film "Human Traffic" is very good.

Unfortunately Evangelicism, which started so genuinely in love and was more evident in the house church movement of the sixties not covered directly in this article, seems (as a movement) moribund in dogma, commercialism and being defined by what it is against. There are still beautiful, sincere people within the movement who are there because they found faith and life and family within the movement.

The ideology Evangelacism teaches however excludes so many and says such ugly, horrible things about people I love. So as painful as it is for those who found life and vision within evangelical Christianity, particularly in its early days, I still say that that I will stand up for those excluded by Evangelicism and stand against Evangelicism in this. This I am convinced is right, and the greater love. A wider understanding of love opens us up to how big love really is.

So much of what it teaches, and in particular the way it teaches and the way it claims authority in what it says, just seems fake and totally lacking in the extraordinary power it claims to have. Although there is extraordinary beauty in Christianity, the path to find it is not through the teachings of Evangelicism. The reason that people still find life in it is, is that whatever your ideology, worshipping love works. So many still find a genuine experience of God and life in an atmosphere of worship. But where's the substance of overflowing joy and unbounded love, the overthrowing of the past and full healing of deep wounds of the psyche? I believe it's possible, but I so rarely see it in the practise of Christianity. I see a genuine love, but not the love the doctrine promises. All is not alright here.

Christianity should not be a dogma, for all dogma is wrong. It is a way, the way of love and of laying aside self. The rest is all detail we have to work out.

Actually I do have a dogma. I'm an ordained Dudeist priest and we have but one teaching: abide. This I do hold to be ultimate truth. For after all, what else is there to do.

"For me the essence of progressive Christianity is that my duty and purpose is to love people. Not to convert people, that's the work of the spirit, but to love them. My dream is to live in a world where we all love each other, so that's what I teach and work for."

Friday, 24 November 2017

Internet Security I: Cryptography and the Darknet

Jung uses the term synchronicity as a synonym for magick.

A friend recently posted to Facebook a link to an article on the wall of lava lamps responsible for security for an estimated ten percent of the world's internet traffic.
The lava lamps provide entropy, a source of true randomness, vital to encryption at heart of internet security. The lava lamp story is a true story and only about as weird as we have come to expect from reality.

As a software engineer who has spent part of his career developing web applications I have to know the basics of internet security, and actually it is a wondrous thing.

The two most important things to know about internet security, as a software engineer, is first that it's important and second that you don't write your own security code. Or at least you don't write your own versions of the standard algorithms and you definitely don't create your own.

The next most basic thing every developer should know is that you never (ever) store user passwords. Instead you store a salted one-way hash. So every time you hear of a website breach revealing usernames and passwords it's very likely the company behind the website wasn't using even basic  security measures.

The standard security protocols and algorithms (the ciphers) are designed so that even knowing how a message was encrypted it shouldn't be possible (without thousands of years of computing power) to crack the cipher and decrypt the message. This means that the *best* code for providing encryption is open source code where anyone can look at it. You might think that this would make the code less secure as anyone can examine it to find vulnerabilities (ways to break the code), but the principle of "many eyes" means that thousands of people scouring the source code are much more likely to find the problems and fix them.

There is a whole industry of ethical "white hat" hackers, practising responsible disclosure, who try to find ways to break into systems and are determined to keep the internet safe. They stand in opposition to "black hat" hackers, many of whom are government agencies unfortunately as proven by the Snowden leaks, who also try and find security vulnerabilities and weaken us all by keeping them secret in order to use them.

Have you ever wondered about the basics of internet security? The internet is inherently insecure, any information sent across it can be "sniffed" anywhere along the way. If two computers wish to talk to each other securely then the messages between them must be encrypted. But if encryption and decryption requires a key, how can computers give each other keys across an insecure connection?

The answer is beautiful math. Assymetric key encryption allows one machine to give another machine a "public key" that can be used to encrypt messages. The only thing that can decode messages encrypted with that key is the corresponding "private key" which the computer keeps secret. So the public key can be sent "in the clear", and even knowing the encoded message, how it was encrypted and the public key used to encrypt it, it is *still* impossible to decrypt it without the private key.

The heart of cryptography is math. Math is purely abstract, it has no objective reality beyond human imagination and is a construct of our minds helpful in understanding reality. Yet whilst it doesn't really exist, at the same time it is constantly facilitating conversation and commerce all around you.

The Darknet

There's been an interesting shift in the darknet in the last few months or so. The darknet is a version of the internet operating over something called "Tor". Tor is a technology originally developed by the US navy for secure communication that allows internet sites to operate with their location and visitors untrackable by normal means.

The black market, for all manner of things, took to the darknet with gusto. Large markets for illegal products took to operating via the darkenet, using cryptocurrencies (digital currencies) like bitcoin for transactions. Bitcoin is not anonymous, it is highly trackable, but there are technological ways round this via coin tumbling. Tumbling effectively launders your bitcoin to make them untraceable. PGP (Pretty Good Privacy) encryption is used to protect messages from prying eyes.

In recent months the major markets have been taken down by law enforcement agencies, usually exploiting browser vulnerabilities and the idiocy of market operators to find them. First Silk Road was taken down, with AlphaBay and HansaMarket next including the feds running Hansa for a while to find the sellers. Particularly the sale of firearms, child pornography, identity theft and narcotics are traded on the darknet and of interest to those who have a reason to be interested in such things. Individual buyers of narcotics are of no interest, but finding the sellers and shutting down the markets are.

One of the last major marketplaces, Dream, seems to be down and untrusted by those who know. The alternative that has sprung up in place of the large markets seems to be individual vendors selling directly via their own sites or encrypted messaging systems. As perceived risk for sellers has gone up so have prices, although still well below street prices for those able to navigate the technological maze.

One of the major functions lost with the markets is escrow for buyers. Escrow is a system intended to permit buyers to purchase with safety against scams or intercepted deliveries but also how several market runners have attempted to exit their risky trade by absconding with all bitcoin held in escrow - the so called "exit scam". Along with escrow the reputation system (similar to ebAy) is also lost, leaving buyers with a much riskier path. For those who know where to look, and reddit isn't a bad place to start, reputation and vendor lists are still curated and available but this is an ever shifting landscape. One of the frontiers of the new wild west.

You may also be interested in the following programming related articles:

"One of the common objections to Christianity is that it would seem to permit the truly evil to repent. If the truly evil really could repent, and change, I don't think that would actually be a bad thing."

Religious Experience

There is something beautiful waiting to be expressed in technology.
Writing about why I believe in God, and why I think it's a rational belief, is difficult. So many of my friends seem determined to pour scorn on this idea and are determined to tear down any such explanation. What's more they can seem determined to misunderstand as they have a desperate need for it not to be rational in order not to have to think about it. Others would like to understand, but the idea of God is so far from their experience and view of the world that pouring scorn seems the right response to them and is an ingrained habit.

The heart of the belief in God that I was taught is that ultimately the universe is good and that we are loved, and this is called God. It provides a creation story, where we came from and a reason to exist, so it provides a whole mindset and a way to see the world. A faith in Christianity can provide a stable mindset, a stable psyche, and a way of seeing the world that mostly corresponds (with a bit of effort) to normal life experiences. Christianity explains why the world is scary and dark and offers a sense of identity with a tribe through shared beliefs.

More importantly it seems to work because the sense of being loved, both collectively and individually, can be tangible and true. Particularly in worship, the cornerstone of the Charismatic revival of the seventies that is still around today, an emotional connection with redeeming love feels real and can work emotional and psychological change within you. Any exploration of the human psyche, any attempt at understanding the depths of the human mind, must factor into account the fact that experiences of the transcendent and the beautiful are undoubtedly found within the practise of religion. Whatever else may be true, this much is true. There are some lovely examples in the books "Essentials of Mysticism" by Evelyn Underhill and "The Varieties of Religious Experience" by William James.

Besides my experiences in worship, which are very hard to describe but the most beautiful thing in my life, there are a couple of specific examples of being aware of the love of God from my childhood I probably can describe.

Also central, perhaps more so, to the Charismatic movement is the experience of "baptism in the spirit". This is similar to the experience of "rapture" described by Buddhists in meditation (emotional and psychological release experienced as ecstacy) and perhaps a lesser version of the release of the kundalini described by the Hindus. As the release of the kundalini is meant to be initiated in another person by the touch of a master (need a gender neutral term here) so the baptism of the holy spirit, an overwhelming experience of spiritual power and love manifesting differently in everyone, is meant to be possible to be conveyed by the laying on of hands. My personal pondering is what would happen if it was possible to trigger such a happening collectively amongst a group of people. The Christian term for a collective spiritual experience like this is "a visitation".

As a young man I was excessively religiously devout. On one occassion I read the entire bible, almost, from beginning to end. Amongst other things I discovered that most of the boring bits of Leviticus actually happen in Numbers, just as most of the sixties actually happened in the seventies. I got as far as Revalation, the last book, and part way into that it got too weird and I stopped. I've never been back and read the whole thing.

As an adolescent, quite some time ago now, I was attending a men's prayer breakfast (yes I know) put on by my church. I remember little about it, except at the end being prayed for by our pastor "Johnny". Johnny is a lovely man of integrity, husband of the truly beautiful Dodie Davies. He layed hands on me and prayed. At this stage I would note I had never taken any narcotics, my life was pretty much dedicated to religion, study, computers and being miserable.

After Johnny prayed the world started flickering like a dodgy fluorescent bulb and I was filled with the most amazing feeling of waves of life like electricity. I was stunned and it was all I could do to walk out with my father. The experience lasted several minutes and is probably still the most intense spiritual experience of my life, although not incapacitating as some have found.

I regularly prayed, usually at night, and not long after I was determined that this experience was not just something that someone else triggered in me and was something I could do myself. So I did it myself, and it happened again. No idea how, I've not been able to do it since.

The other tangible experiences of love that I recall particularly were during these lonely late night prayers. In devotion to God I would often feel a strong sensation of being loved. I used to call these "spiritual hugs" and they were of great solace in what was probably the bleakest time of my life.

None of this is proof of anything of course. Merely guiding lights.

"Sometimes, within the realm of ideas we can try to impose patterns onto things in order to be able to understand them in order to see them. The trouble is that then we only see dimly through our patterns. This is abstraction obscuring truth. Instead we should try and see the truth without having to understand it or requiring it to make sense. Then we will be able to see and we will start to understand for this is what it means to perceive. To understand through seeing."

Wednesday, 22 November 2017

The Copper of Darkest Ohio

The pure abstract maths emerges from reality through understanding.
Tonight I'm going shooting with my 70 year old ex-copper neighbour. He's a member of the Sywell rifle club, which confusingly enough shoots in Wellingborough in the winter. Mike has some interesting stories, twice he was first on scene for a murder. As a traffic cop he held several people as they died. He remembers telling one young man the truth, that he was going to die, and it seemed to bring him peace. What hard things to have seen.

My only interesting recent copper story is from my visit to The Mosaic Experiment this summer, in darkest Ohio. It was actually October, but when it wasn't raining it was glorious sun. Summer's last hurrah. We were deep in Amish country, un-made up roads and horse and buggies everywhere. The festival itself was in an old strip mine, fields of razor grass cut into the countryside and only used for extravagant parties and boy scout expeditions.

The friends I'd come to see were on the DWP, the Department of Work and Pensions that organised the whole affair. As I'd miscalculated and ended up with a day extra to kill after the event I hung around and helped with the tear down. After packing up one of the trailers we drove a few miles to a storage locker in a nearby town. To bring extra bodies for shifting the gear I followed the trailer in the silver Chevy Camero I'd accidentally rented. On the way back from unloading everything we stopped for gas and jerky and red bull. We must have been quite the sight, a minor horde of hippies descending upon the gas station from a trailer and sports car. After we left the gas station it seems a cop car was following us.

In following the trailer back I rolled through a stop sign and the first I was aware of the cop car was the flashing blue lights in the rear view mirror. I pulled over and sighed, not as heavily as the hippy next to me sighed. I wound down the car window and the copper approached me. The boys from the trailer, including the kilted hero of the DWP Neight Belarpin who was concerned about the welcome his country was giving to his guest. (And it was a kilt, he proved it to me by way of first greeting.) The copper leaned in and he looked scared. This was a routine traffic stop and he looked frightened. I had nothing to fear, more or less, and I know how to handle frightened people. You smile at them and remain really calm, showing them there is nothing to fear in you and you aren't afraid of them. I also have the great advantage, when dealing with Americans, that I can do a personable impression of a posh English accent. Americans love it. I look like a ruffian but I sound posh, which in a semi-formal situation throws most people off. A fact I'm happy to take advantage of at every opportunity, nobody thinks I'm posh at home. I showed the policeman the respect his position meant he was due and he grudgingly became polite and respectful too and visibly more relaxed. Despite taking twenty minutes to run my passport he didn't write me up for the traffic violation and we were on our way again.

What I didn't discover until we caught up with the boys was that when the copper made the approach to my window, just below my line of sight, he had his gun drawn. He was tooled up for a traffic violation! Something had him scared. My guess is that they really don't like hippies down in Amish country.

"If you aspire to anything, aspire to great love. Just because why not? If you thought you could wouldn't you want to?"

Monday, 20 November 2017

Positive Nihilism: A Fallback Philosophy

In my youth I was troubled by an unbearable desire. In the years since I have learned to bear it.
Assuming God, for merely a moment, and if we accept that God didn't create herself, then the question of who created God - of why anything exists at all - simply cannot be answered. Like a child any answer you might think of can simply be responded to with "but why?". In the end we have to admit we have no idea because there can't be an answer. Why anything exists at all must forever be a complete mystery. As far as I can tell even God can't know because there can't be an answer. It just is.

This reminds me of the lovely philosophy Positive Nihilism. It's not necessarily the philosophy I ascribe to, although I think it may be possible to prove that it's functionally equivalent to the philosophy I do ascribe to. Positive Nihilism does however make a good fallback philosophy, even if you question everything else this is still true. If there's no inherent meaning or purpose in life then the only possible meaning and purpose is the meaning and purpose we create. If the meaning we create is the only possible meaning then that is complete and real, it's as real as it's possible to find.
Positive Nihilism: The only meaning and purpose that can exist is the meaning and purpose we create amongst ourselves.
In discussing this with Delia she pointed to Benjamin and said this is her meaning. And indeed that is meaning and purpose that Delia created, meaning and purpose literally grew inside her.

Benjamin is a little havoc-monger. Honestly, the world doesn't know what's going to hit it with that one. And he loves to hug. Tell me there's not meaning and purpose right there.

Irina does not love to hug. Sometimes she'll let me hug her, mostly if I can arrange it subtly so she can pretend she hasn't noticed I'm hugging her. Carrying her to and from school is the best excuse I've found so far for a long cuddle. Irina can be quite intimidating. She's going to be loved from afar by a lot of people who don't dare talk to her...

The question of free will has similarities to the question of meaning in life. The fundamental nature of reality is chaos and uncertainty, with a few simple principles of natural law that permit existence to blossom (and no-one knows why). Because true randomness exists, and we have no conception of any mechanism of natural law that would permit the perception of free will that we have, it is functionally impossible to distinguish between randomness plus the mere operation of natural law and true free will. So if it's impossible to distinguish then "do we have free will?" becomes another question that actually has no possible answer. So not worrying about it seems to be the only reasonable course of action available to us. If free will is an illusion then the perception of free will is the only possible definition of choice we can have, and if it's as much as we can have then we already have it all.

Love love, hate hate and kill death. Be happy about happiness and sad about sadness, depressed about depression. Worry at worry and give fear something to be afraid of. Be angry at anger and horrified at horror. 
Experience the full range of human emotions yet remain unperturbed, at peace. Mind as a still lake, reflecting what it sees.

Wuthering Drunks

To all who I once loved, and who once loved me. I still love you. I mourn and I grieve for the ones I have lost.
I've had a funny relationship with alcohol, by which I mean I'm not convinced I like it very much. I've been drunk, good and roaring drunk, once in the last twenty or so years. It was great fun.

The trouble is that I don't like being a bit drunk, my head gets a bit slippy-slidy and my stomach complains. Unfortunately it's pretty difficult to get from sober to very drunk without going through the "a bit drunk" phase. I usually try and pace myself so I don't get too drunk and end up not-very-drunk-at-all. Which isn't so bad.

The time I managed to get roaring drunk was at a conference social gathering in Poland. I was with friends but I wasn't feeling very sociable. The conference organisers had laid on drinks, which mostly meant vodka. The Polish like vodka. They were serving it in shots with a dollop of raspberry coulis at the bottom, so after knocking back the shot the last taste on your tongue is a lovely raspberry taste. A high enough dose consumed quickly enough is in fact the way you go from sober to roaring drunk without going through the "a bit drunk" phase.

After that I roared around town with some friends and rolled into bed around four in the morning. The next day I was speaking at the conference in the morning. I remember trying to sleep at the back of the talk before mine. I also remember walking up to the front of the conference room desperately trying to get my laptop in some vague kind of order as I was about to start my talk. I have no recollection of how the talk went.

The very first time I got drunk was at the age of seventeen when I was in sixth form. I was on an English trip to Haworth, Bronte country in the Yorkshire moors. We were studying Wuthering Heights and the moors wuthered appropriately as we walked across them. On the first evening myself and about fifteen young women went and found a pub. As a general rule the further north you get the friendlier people get. Right up until Scotland as the Romans discovered, which is why we have Hadrian's wall. I was very surprised by how friendly the greeting was from the locals when we arrived at the pub, leaving me with such a good impression of the Yorkshire community. It was only many years later that it occurred to me that maybe the men in the pub were particularly friendly to us because about fifteen seventeen year old girls (and me) had just walked into the pub.

I drank what seemed like vast quantities of malibu and pineapple which the girls introduced me to, most being more proficient drinkers than I. It's a drink I'm fond of to this day. After getting pleasantly drunk together we walked back to the youth hostel arm in arm.

The second time I got drunk was the only time I've been blind drunk. Alas the many times I got drunk at college I could always remember in all too clear detail exactly what I'd done. Blackouts would have been a mercy. As well as downing a pint of wine, slower than my friend unfortunately, I also drank whisky and cider mixed together. It's about as pleasant as you might imagine and it was many years before I could bear cider again.

I've struggled to appreciate whisky for decades now. Scotch always tasted burny and medicinal, but many of my good friends whom I respect appreciate it so I kept trying. And failing. I finally found a way in via bourbon, which is like scotch except for the not tasting like poison part. And now my repertoire has extended a bit, I've found non-peaty scotch that I can bear and I'm fond of Irish whisky. So there you go. I can almost say I like whisky now.

Car conversation.
Me: looking at traffic and quoting Kurt Vonnegut, there's too many of us and we're too far apart. 
Delia: it's true, we're all so separated by our own stories. 
Me: the trick is to tell your story, then the stories mix.

Thursday, 16 November 2017

Short Meditations IV: Romance, Telepathy, Intuition and the Pain at the Centre of the Heart

Gravity waves exist. The thunderclap of creation that resonate across infinity.


I'm not a great believer in romance. Now hold on a minute before you decide "poor Delia", although for all I care you've already decided that anyway.

What I mean is this. I don't think romance exists as a separate or distinct aspect of life. I think romance is, at heart, the warm, affectionate, friendly and intimate display of love. The demonstration that you really know and care about another person.

To couple that with the expectation of sex, or even merely to place it in that context, and therefore to limit it only to relationships of that nature is a great and unnecessary limitation. Be warm and affectionate with everyone you care about, and care about as many people as you are able.

Of course, those you know the most deeply and those with whom you share the deepest intimacies, these you can share the most beautiful romance with.


Telepathy exists, but it's possibly not what you think.

Ever been with someone you know really well, and you go into a situation that is familiar to you. Maybe something you've discussed or that you're both involved with. And you look at them and you know exactly what they're thinking. And they look at you back, they know exactly what you're thinking too. You both smile.

There you go, telepathy. You both know each others' minds. (Non-verbal communication would be an equally fair, and probably more acceptable to most of my friends, description.)

Of course it can happen at a distance too, maybe over the internet (I bet I know what some of you are thinking when you read this!). And of course it is something you can be wrong about. No certainties.

And a further thought for the Star Trek fans, yes this means empathy is the root of telepathy.

We can understand each other, we can know one anothers' hearts and minds. We can even be unified without having to agree with each other about everything so long as we can accept the differences between ourselves. If we can get there we can act as one body with many members, all different.


Intuition is a subconscious response to stimuli (including thought processes) you're not consciously aware of. You become aware of the response without necessarily being consciously aware of where it comes from.

Just because something comes from intuition doesn't mean you're right.


I feel a bit like my life is The Butterfly Effect movie, but exactly the opposite way round. Which is why I like the movie I think.

Through my memories and who I am, it feels like I can feel pretty much the whole of the arc and sweep of my life going right back to when my memories first began when we moved into a new house in Macclesfield at the age of four. The stairs with no carpet on, the unfamiliar smell in the new bedroom that had Noah's Ark wallpaper and 1970's orange deep pile carpet. Maybe even extending a little prior to that as I have one island of vivid memories from just before I was two, when I went with my Dad on a plane to visit my grandparents in London.

But although I can feel my own personal history, and how it has shaped and weathered me, as I remember back my mind inevitably reaches for what seems like a finite (but large) particular set of memories. Those memories of specific times and places and incidents, both good and bad, are treasured possessions. They contain warmth and laughter and feelings and pain as well of course. It's where many of my best and dearest friends live.

Those memories contain wrapped up and in varying degrees of association my perception of what it was like to be me, how I thought and who I was and how that has become who I am. But beyond these specific clouds of memories it's all quite fuzzy and reaching out to remember new things, that feel forgotten, is hard although sometimes not impossible.

So my life is like the Butterfly Effect, but instead of jumping back into those pools of memories and changing things my life jumps and flows out of them. As I remember and understand who I am, as I make sense of my life, more of me is uncovered and alive. My past, past times and past people, is still who I am and there's still more to be found.

Judging and Discerning

There's a difference between judging and discerning. Judging is making assumptions without really looking, discerning is looking to see. To discern, to understand by perceiving. What a lovely word.

Judging people is making assumptions about who they are without really seeing who they are. Life is so much more fun when you don't, because you're almost always wrong (me too!) and actually seeing people is great because people are so lovely. There is not much better in life really.

It's really hard not to make assumptions. The trick, as with everything really, is to hold them lightly always being willing to be wrong. Actually look and see. But it goes a step beyond just seeing, it's what you assume about what you see too. If you see "problems" in people, and everyone has problems, what conclusions does it lead you to? The right answer should usually be "none, no conclusions", because people are extraordinarily complex and really understanding them is difficult. To really understand you need to give people space to unfold so you can see what lies beneath the surface.

You can only see deeply if you're able to let go of assumptions, and the further in you can see the more of them you can love and the more you can reflect people back to themselves. This gives people the opportunity to see themselves. Everyone wants to see themselves, we look for ourselves in other people. This is why judging people is so damaging, they look for themselves and we reflect back judgement "who you are is unacceptable". That doesn't help people change, it makes them worse. Instead tell people that who they are is good and you like them, that helps. We can be such faithless mirrors, unsure of ourselves and so unwilling to reflect back the beauty we think we may see. 

One thing to remember, as hard as it can be, is that people's behaviour always makes sense to them (or can be made sense of even if they don't understand their own behaviour), as in the behaviour comes from somewhere. From their particular experience and context and current capacity, who they are and what they do it can be understood. It is possible to understand the why, even if not the deeper reasons behind that. It's possible to see the pressures and pains that led someone into a situation, a way of being or a course of action. This is empathy, understanding without blaming. Even when people do objectively bad things, damaging to themselves and others. Being able to see things from someone else's point of view is a precious gift. Strive for it.

This is why I find the words of Jesus on the cross so hauntingly beautiful: "Father forgive them, for they don't know what they're doing". He didn't judge them.

But telling people they're wrong doesn't help. Pretty much everyone will respond with "no you're wrong". It's a basic psychological defence and the cause of tribalism.

Instead we can generate enough light that everyone can see the effects of their actions and attitudes, and then they have the genuine chance to change. 

The only way I know how to generate light is to be on fire. We need an enormous great fire. And then the darkness simply cannot stand. 

Which of your inherited prejudices are you not willing to drop in order to be able to love and accept people as they are? 

This is why most churches accepting gay marriage is inevitable. As the reality of married gay couples attending churches becomes more common Christians will be faced more directly with the stark reality of accepting people as they are or being unable to love them. And most people are genuine and will want to love people, so they will change. They will be afraid to change at first, but as more and more people are willing to speak out it will just become normal and eventually we won't be able to imagine thinking any different (how could we have been so cruel?).

At the moment many churches simply don't have out gay couples and people are free to hold onto old beliefs without being directly confronted with the harm it does. 

The tide of history has already turned. As a society we now know that same sex love is real love and is normal, both in nature and in humans. So the question for Christians today is simply this, which side of history do you want to be on, how do you want your legacy to be seen? Which is more important to you, the old way of seeing things or the reality of being able to love and accept people?

Understanding without Blaming

There is one situation in particular where applying understanding without blame, along with viewing behaviour through the lense of struggle for survival as base motivation, is useful. The Israeli - Palestine situation. Wherever you stand on this issue, and I have opinions, it is hard to deny that there is a lot of hatred in the world for Jews and Israel.

It isn't very hard to see why Israelis feel like they have reason to fear a people group who have sworn by word and deed to destroy them (and yes balance of power and proportionality are relevant but we're looking from a particular perspective). Do you acknowledge Israel's right to exist? If not why should they listen to you at all, and in fact why shouldn't they see you as an enemy? Maybe that doesn't worry you because you feel like the emnity is justified. That's a valid position to take if you feel that way of thinking works.

Looking at, God save us, the political reality of change it seems to me more likely that first acknowledging Israel's right to exist before telling them how wrong they're doing it is possibly a good start. Survival will not be a negotiable card for the Israelis, that will come before any other consideration. So if you try to withhold acknowledging their right to exist as a negotiation tactic (or create that perception from their perspective) you automatically create a deadlock. They will not move from that unless survival itself dictates it.

So you can possibly change things by war.

Political correctness will say that because this isn't the conclusion we want to reach (that we should understand Israel) it is morally wrong to pursue lines of thought that might lead us to that conclusion.

To put things another way, if you're able to make people feel secure in who they are and that you're not a threat to their existence then they are much more likely to see their own behaviour from your perspective. If you seem like an existential threat then any effort is justified in eliminating your perspective from their thinking.

The Pain at the Centre of the Heart

Over the weekend I recalled, for the first time in possibly decades, the poetical explorations of my teen years. Thankfully no evidence survives.The theme of those poems was inevitably "the pain at the centre of the heart", which tells you something of my teenage years whilst also being startlingly far from unique.

My thought at that time was that the path to ecstasy was only through the pain at the centre of the heart as despite the pain ecstasy can only possibly be found at the centre of the heart. It seemed to me then that pain at the centre of the heart was the essence of the human experience. Therefore I guarded my pain jealously, as a nursing mother, for it was precious to me.

And now? I'm not so sure. I certainly know a heck of a lot less than I did when I was a teenager...

As a codicil, I did actually find an alternative route to ecstatic experience. That didn't really end too well for me.

How much it hurts and how barely I can feel it. The pain at the centre of the heart.

And Then There are Legends

And then there are the legends of Cthulu. That the creators of our universe are an ancient, malevolent, race of vast and supernatural beings called the Old Ones that now sleep. There are magickal rites that can awaken the Old Ones, Cthulu amongst them. If wakened Cthulu (The Flying Spaghetti Monster) will devour the universe. 

So messing around with the occult, performing strange rites not understood, may wreak not only your own destruction but destroy the universe. Some men only want to watch the world burn. This is the magick of the death cults, not black magick but death magick.

So if we are to permit legends to have life, to breath life into myth within our very selves, then maybe we risk everything. Maybe we breath life into these legends too and we risk finding the Old Ones, or making them within ourselves. 

If we do, together, create our own reality and the collective life of our unconscious fearful dreaming can tap the subconscious power of the psyche both individually and collectively, then maybe we risk unleashing the forces capable of consuming us that are currently held in check by our rigid unbelief. 

Maybe merely having this thought is enough for it to begin to happen. Perhaps an ancient evil is already stirring from its slumber. 


Maybe we risk unleashing all hell. But being real for a minute, isn't that already the case? Isn't hell real and isn't it all around us, haven't we all seen it and feared it and haven't some of us been there.

Maybe locking these things out of our conscious minds, our internal reality, and shutting them away deep in our subconscious forces them to be manifest in our external reality. What you won't give conscious expression to will have unconscious expression. If we won't face the horror within ourselves then maybe life will present it to us anyway.

Maybe the worst evils can only have life in us to the extent that we are willing to give ourselves over to evil. The more aware of ourselves we are, in spirit and in truth, the more light we are willing to let in and the more of ourselves we are willing to face, then the more we are able to use our will and determine to be good and to cast evil from us. Maybe we're good and not evil and evil has no place amongst us. 
James 4:7 Resist the devil and he will flee from you.


On the "mindfulness of breathing" meditation, which I learned more than twenty years ago from Buddhists in the (as it was then called) Friends of the Western Buddhist Order community in Cambridge. I've meditated intermittently ever since, but for about the last seven years or so I've meditated for an hour almost every day. 

Mindfulness as taught by the Buddha is the deliberate practise of learning to still the mind. In trying to focus only on the breath, the ephemeral and fluid and impermanent but very real breath, you have to learn to let go of other distractions of body and mind and soul. It turns out that practising letting go of things is both very pleasant and very healthy. 

There comes a distinct point, which the Buddha called Jhana or Dhyana and which I've only reached a handful of times and not for a while now, where you've pushed all other distractions aside so far that they don't come back. All there is is the breath, flow state, time stops, you are completely relaxed but completely alert at the same time. Usually just realising it's happening is enough to snap you out of it, and then you realise you have absolutely no idea how long you were doing it for. 

Someone described it as "stepping back into the garden of your mind". Apt. And to continue the metaphor, tending the garden is exactly the same work as merely settling back to enjoy the garden.

Frosina Fecoriu

Delia's grandmother, Frosina, was an interesting woman. She was a subsistence farmer in Romania, living in a two room cottage with no running water. She had a well, but no toilet, into her nineties. She was 94 when she died in 2014, still drawing water by hand from her well.

She got up and went to bed with the sun, kept chickens and ducks on the farm, and pooped in a hole she dug in a field in a new place every few days. Delia developed an abiding hatred for duck from the tough and fatty duck meat that her grandmother would cook only once their laying lives were long past them. Much to my chagrin as duck is one of my favourite meats.

When we went to Romania after getting married Frosina presented us with a live chicken as a gift, which my father in law put in a plastic bag in the back of the car. When we got home we opened the boot and saw a shredded plastic bag and a very indignant chicken. My father in law took the chicken away discretely and we ate roast chicken for dinner.

Frosina was a hardy old soul though, tired of life and ready to go many years before she did. She brought Delia up every summer. Delia, a cousin and an auntie (all similar ages although Delia's auntie is slightly younger than her) would stay at the farm all summer and roam free in the countryside whilst her grandmother worked the land. They all slept in the same bed, so if one of them peed the bed at night which would sometimes happen, they got to argue over who it was.

Most families in the village had a cow and every day one family from the village would take the cows out to graze and bring them home again. Delia remembers helping her grandmother bring the cows in when it was their turn, each cow knew which house was home at as they led them through the village.


One of the reasons I like mild horror, like Stranger Things, is for the same reason I like halloween. It is a little bit spooky and a little bit scary, and yet whilst watching or participating we know it is entirely safe to be a little bit scared because we also know it is completely made up. Not real at all. We can enjoy the feeling of being a little bit scared, because we can just stop at any point, and in this way we teach ourselves not to be scared of these things and not to be afraid of being afraid. It's fun and interesting as well. You can weave some really interesting stories, strolling through some of the stranger possibilities of imagination, when you're not afraid to explore.

In my experience knowing how to not believe in scary things, like by switching off the TV, is a very useful psychological trick to have up your sleeve. Being able to switch off and shut things out like that, if not over used, is a useful coping technique for some of the scarier aspects of life that your imagination might present to you.

"Those who love, even though they are in pain. Those who forgive from the heart even though they hurt. This is the most exquisite of beauty, and yet it is all around us if you care to look."

Tuesday, 14 November 2017

Social Evolution and the Struggle for Survival

Socialism isn't something you believe in, it's something you do.
The lense of "struggle for survival as base imperative for behaviour and therefore character" provides an interesting perspective on the topic of social evolution. It particularly sheds light on what some call the patriarchy and I, perhaps controversially, think is a more general manifestation of authoritarianism perpetuated and participated in by both men and women (although benefiting men for reasons explored below) and which is at its root the rule of force.

Conforming to societal norms is a survival trait. When individual survival depends on the protection of the community, being perceived as a member of the community becomes a necessity. As a psychological trait, beliefs and attitudes that we require in order to survive we take on and identify with, they become our values and part of our character. Therefore we perpetuate those social norms in our attitudes and behaviour as it becomes part of our understanding of the world and how we, and other people, ought to behave. We all do what we have to in order to survive, and it does terrible things to some people and causes them to do terrible things. Who someone has become is often traceable, and understandable, through coping in the face of the struggle to survive.

For early humanity life was savage and brutal. In actual fact modern life is only a little less savage but we have a more sophisticated jungle and hide our savagery behind complex social structures so as not to have to look at it. Survival depending on hunting and survival skills, which in no small measure on brute strength. On average men are stronger than women. Especially a woman with a child would find it hard to survive without the protection of a man, particularly for protection from other men who were the product of brutal times. So the harsh and unpleasant reality for women was that the men were in charge because they were stronger and women needed their protection.

So as society grew, groups gathering together for mutual protection and a shared sense of identity, the men were in charge and the strongest man would have overall control.

As an aside on matriarchies, wikipedia has the following (unreferenced) to say "Most anthropologists hold that there are no known anthropological societies that are unambiguously matriarchal, but some authors believe exceptions may exist or may have".

When the shift from hunter gather to agragrian societies was made, marking the start of the bronze age, mere survival did not occupy the full capacity of a small community and there was time and space for social, intellectual and technological progress including the establishment of basic economic principles that enabled us to move beyond barter. The great advantage humanity has over other creatures, what makes us the apex predator, is our capacity to pass on knowledge from generation to generation and based on reason and understanding grow what is now a vast and unimaginably complex corpus of knowledge about the operation of the world and how to not just survive but thrive.

More complex societies, say ancient Greek or Roman civilizations, were still built on force and men still had an iron grip on authority through force but for a privileged few there was time to think about life and how society could best organize. There was some quality philosophising done in this time, off the back of a brutal system of slavery and misogyny, but progress and social evolution nonetheless and democracy was the outcome.

We moved from a system of rule of force to the rule of law. The full humanity and intellectual capacity of women, equal to or surpassing that of man, started to be recognised societally and the concept of rights came into being. The rule of law was still backed by force, but vested in a portion of society dedicated to peace keeping and preventing crime.

The rule of law enables a peaceful society and further technological progress provides more space for reason and understanding. And the rest as they say is history.

The patriarchy, the current cultural norm that places behavioural expectations on people based on perceived gender, arose as a natural consequence of social evolution from a starting base of savagery and the rule of force. But we're done with that, we've moved beyond the need for it and we know better. At least I hope we do.

"Under the precise circumstances of your genetic and cultural inheritance and the specifics of your current situation, your behaviour is completely normal. You're still able to be aware of behaviour patterns, good or bad, and able to choose to change them."

A Cheesy Article About My Cat Rosie and the Animal Nature

It seems to me that we're all about as well as can be expected given the circumstances.
Rosie has good taste. I share with her a passion for cheese. Amongst our favourite cheeses are Parmesan and Cambozola.

I've always loved dogs, we had a beautiful golden blonde slender golden retriever called Toffee when I was a child (a slightly tragic story that I may tell sometime) who loved me and whom I loved with all my heart. It was only when I was in my forties that I discovered I'm really a cat person. That shouldn't really have come as a surprise, did I ever mention that I'm a Leo born in the year of the Tiger, but it did.

If treated with love, dogs offer unconditional love and loyalty which is truly lovely. Historically cats were domesticated much more recently than dogs, so within the bounds of understanding that all generalizations are wrong (including that one) cats are much closer to their animal nature than dogs. In general cats value respect and your relationship with them is on their terms. Understanding this they can still love and be loved, knowing that we too are animals and love is as much a biological mechanism for us as it is for them. Winning the heart of a dog is easy and lovely, but winning the heart of a cat means something.

How Rosie came to be my cat is an interesting tale that I love to tell. Delia wanted us to get a kitten as she thought Irina would love having a pet. I didn't want a pet as having a pet immediately places a burden on activities like going away, but I relented. Rosie was the runt of the litter and was picked on by all her siblings and her mother, so she came to us as a little 'fraidy-cat afraid of sudden movements. So Rosie was terrified of Irina and wouldn't let her near her. Much to Irina's heartbreak. Then Delia, who was already disgusted with Rosie, fell pregnant with Benjamin and couldn't go near Rosie. To this poor creature, who I hadn't even wanted, I became her only friend in the world.

Bringing soul healing to a cat is hard, but not impossible. Their minds are simpler than humans, so easier to understand, but they're also very different to humans which makes them harder to understand. I see her character through the lense of her being a savage animal with the struggle to survive as a base imperative around which her personality has formed. She was traumatised at an early age by being exposed to raw savagery, of which she understandably became very afraid. As an animal her base nature is savagery, so she was afraid of herself, of her own nature and anything that might expose that nature. That makes everything harder. I understand what it is to be hurt and afraid of your own nature, and to build a personality (set of conditioned responses) around protecting my psyche from my own fear and pain.

My approach has been to be very calm with her and show genuine care. To allow her to approach, physically and emotionally, on her own terms. To find the place in her character where she is afraid, searching for it in her, and bringing calm to her. Alongside this I've searched out the place in her nature and being, where she is wild and savage. Where she is a killer. To understand the mind of a domestic cat is to understand the mind of a killer, a killer that tortures and partially eats her victims. I've shown her that I'm not afraid of her nature and that it's fine to be wild and to express wildness, that I like it and admire it but that it must be controlled and she cannot be cruel to my children (or to Sapphira). Rosie is now less of a 'fraidy-cat than she was and along the way she became my cat. Full-heartedly and beautifully my cat, and I'm her human.

Beyond the bounds of the house, my creature of the night is my eyes and ears. She hunts in the wild of this rural English village and she lives in a very different world to the one I inhabit. I try to see the world through her eyes and share with her how I see the world.

I also search out her intelligence and the limits of her intelligence. She still gets scared of her own reflection, thinking it is another cat. I doubt I will be able to demonstrate to her that it is just her reflection, that it is just her and have her understand that, but I don't think it can possibly do any harm to try. She is certainly intelligent, but it is cat intelligence not human intelligence. However, it still seems to me that the basic animal patterns of thinking I have discerned are still present within human intelligence, part of the animal nature of humans, but we have layered more sophisticated thinking around them and aren't normally aware of our own animal nature, thinking patterns and motivations. We like to think we're so very different from mere animals.

I learned to enjoy and express, under control, the raw savagery of my own nature through Krav Maga  and mindfulness meditation. I too am animal who must fight to survive.

My next challenge is to win the heart of a bearded dragon. I think I'm well on the way. I hope to inspire visions of fire breathing dragons with which Sapphira can keep Rosie at bay.  Rosie is an animal, she likes Sapphira but she will kill if she can. Just because she can. I show Sapphira the vulnerable aspects of Rosie's character so that Sapphira can stand her ground. We'll see how it works out.

"Ugliness cannot stand to see itself and would rather die. This is the lesson of Medusa. It's a shame they packaged the story in a feminine form, as the more normal feminine form is desire."

Monday, 13 November 2017


If you treat me honourably I will feel a duty and compulsion to honour you. If you don't, I won't.
Here's an interesting thought to entertain. It's about the purported return of the Christ and the ultimate fulfilment of the Kingdom of Heaven, a belief central to Christianity including Progressive Christianity. So if you aren't willing to entertain this idea I'm going to assume you'll stop reading here and not feel the need to point out in the comments that you live your life to a different set of assumptions and explain why and how you misunderstand what I'm saying. If you wish to read anyway, please read it in in the spirit of "if it were true, how might it be true?". That's how I treat it anyway.

The premise of Christianity is that the victory is already won, that death is defeated because perfection itself was slain, thus fulfilling the law that there is a price to pay for evil, but perfect love could not die and yet lives.

The incarnation of perfect love, the personhood of love, rules in the heavenly realms but the victory is already won and we are merely in the endgame. The playing out of that endgame will see that rule extended to the earthly realms, culminating in the physical return of the Christ and the renewal of this earth. The new heavens and new earth that John spoke of in Revelation.
Revelation 21:1-4
Then I saw “a new heaven and a new earth,” for the first heaven and the first earth had passed away, and there was no longer any sea. I saw the Holy City, the new Jerusalem, coming down out of heaven from God, prepared as a bride beautifully dressed for her husband. And I heard a loud voice from the throne saying, “Look! God’s dwelling place is now among the people, and he will dwell with them. They will be his people, and God himself will be with them and be their God. ‘He will wipe every tear from their eyes. There will be no more death’ or mourning or crying or pain, for the old order of things has passed away.”
So within Christianity the role of "the church" (those who love love and prize it above all things) is to manifest (make real) the rule of love. This engaging in "holy warfare", making love real, paves the way for the Parousia the "Second Coming".

Within worship we sense the presence of love amongst us, not merely within each individual but within the shared experience of love amongst us. We know the presence of the Christ in our midst.
Psalm 22:3 "You who are holy, enthroned in the praises of your people."
Sometimes rendered as "you inhabit the praises of your people". Right worship is the wild, abandoned adoration of love and it is the purest and strongest experience of love that I've ever found. The love of love itself.

So in worship we invoke the presence of love. In loving each other we have a shared experience of love, we can live in love. As we establish voluntary social structures where love is the rule, where love is the law, we make the rule of love real amongst us.

So in daily life we continue our worship. In as much as it is possible, and in as much as we are able, we invoke the presence of perfect love in all we do. A strong and tangible communal sense of the presence of God, of love amongst us and amidst us, is sometimes called "a visitation" in Christian terminology.

If our invocation of the Christ is strong enough, if the presence of the Christ is tangible amongst us both in life and worship, then we perform the invocation of the incarnation. The return of the Christ. We pave the way, we make straight the road. We live under and establish the rule of the Christ. This is the establishment of the New Age, the central theme of Christianity.

We join with all creation in longing for the fulfilment of our hope:
Romans 8:19 "For the creation waits in eager expectation for the children of God to be revealed."
"The most important thing study can teach is just how much effort and breadth of understanding is needed to really know anything of substance."

Friday, 10 November 2017

Software Engineering Abstractions: Design and Testing

Note: this is the third article in a series. The two previous are:  

Back to the topic of abstractions and software engineering and thinking about the design of software and engineering systems. 

The art and science of Software Engineering is the developing of good abstractions that map well to the problem domain. A good way to create these is to let the abstractions, their shape and form, emerge from gradually solving aspects of the problem you are working on. If instead you design abstractions first, typically in a design phase prior to implementation, then you impose those abstractions onto the way you solve the problem. The way you look at the problem is the way you implement your solution. So when you look at the system, when you look at the problem you see your abstractions. If you design your abstractions at a high level up front then you really need to get them right. You need to properly understand the problem, and the details and shape of implementing that, before you start doing it.

But in practise, in the way software is written, you're going to be doing it bit by bit anyway. 

This is what I learned from and loved about Test Driven Development. I worked at a fully agile shop for four years and we religiously applied TDD and we included as an agile practise regular assessments of our structure and abstractions, how we modelled the problem domain. We kept checking if our current structure and model still mapped well to the problem domain and new parts of the problem domain we were expanding into. We included the cost of refactoring within the cost of other work we did.

The Test Driven approach, especially the test first aspect of it, encourages this kind of thinking. This thing that I am building right now, the way I'm changing the code right now, how should it look and what would be the best design. You think about each piece of your code in this way and write tests for this behaviour before you write the code. For experimental stuff where you don't know how to solve the problem without writing some code you "spike", you build one to solve the problem and then you throw it away and build a properly designed one based on your new understanding. We did this religiously. I'm not trying to convert you, I'll try and draw a lesson about design from it.

Note that this process is very agile. Changing your design is built into the process, and happens all the time, so it's not something too onerous. We have a shared understanding of the code, with different specialities and roles within the development team. We have a shared understanding of the design and we evolve that together. (In full agile pair programming is a great tool for building and working on that shared understanding. We did that for four years together.)

Your test system then becomes a great benefit and a great cost in this work. Your good tests, that test behaviour rather than implementation, and especially your functional and integration tests (depending on how you define these terms) are able to tell you when a refactoring is done - because starting the refactor causes them to fail and when behaviour is restored they pass again. Your bad tests that are too tightly coupled to the implementation (plus tests for specific units that have behavioural changes as part of the refactor) will fail and be expensive to fix. 

For many developers I know who learned testing and learned design processes through a test first approach, they eventually found that full TDD is too expensive to be practical in many places. Throwing away a spike for example is expensive. However if you learned the lessons around design thinking from TDD and you're clever and expressive in the tests that you do write (more black box tests, fewer white box tests) you can still use the design techniques you learned. Doing TDD in a disciplined way for a good period of time is still a great way to learn those lessons and burn them in.

Thinking about design, the shape and structure  and components of software is still thinking with and working on abstractions. 

Much of life is actually about thinking in abstractions. In basic approach there can be a big difference between allowing your abstractions to be formed through understanding, and trying to have an abstract understanding of abstractions (theory) and applying that. (The reality being that we all do both most of the time in different proportions depending on how much we've had a chance to learn and from where.) Let me give a practical example. From the sports world we have a concept of "a team". We also all have an idea of what it means to be "a team" in this context. Our understanding of what it means to be a team is the bundle of understanding that we label "sports team". What they actually are is a bunch of individuals with particular skills, playing together for money, and whole bunch of associated activity around that. So the concept is a way of modelling human behaviour. Given our understanding of the best way that teams work we are able to assess if any player is a good member of the team and knowing all the players we can assess the qualities of the team. 

The concept of the team is a useful abstraction for modelling and understanding behaviour and being able to predict and understand aggregate behaviour of a group of individuals. The concept of the team is a higher level abstraction for reasoning about more detailed behaviour of a whole group of individuals. It's not in itself "real", it's an abstract understanding of behaviour. An abstraction for thinking.

If the manager is a good manager they will understand that the important qualities of a team come from a shared sense of purpose, caring about the purpose and caring about each other. Humans like to do these things and it brings out the best in them. So a good manager will try to create an environment where that becomes possible.

A bad manager (and I'm only considering the extremes, it's a spectrum that everyone is on somewhere) will have a conception of how a team ought to behave. If that conception doesn't really map very well to how humans are actually able to behave then they will see "bad team members" who aren't fulfilling their role. In fact, if people don't fulfil their role then it's possible that the team processes and procedures don't really permit people to work at their best. A big part of that is down to the team members too. That culture where people can thrive requires people to be willing to really work together, and that requires being known. People can only be known if they feel and know that who they are will be accepted. That's a cultural issue and it takes work.

So the lesson here is that abstractions (and processes and procedures are abstractions and descriptions of the operation of abstractions) must map well to the best possible understanding of the actual situation. It's rare to be able to do that in the  abstract without actually being in the middle of the situation, as it were. So gradually and progressively as our understanding grows, considering our abstractions and being willing and able to change them is a good approach.

The progressive approach also works well for API design and feature design. My guiding principle is that simple things should be simple and complex things should be possible. This makes for APIs and features that are easy to use, but using the basic features exposes you to the concepts and abstractions you need to understand in order to be able to achieve more complex stuff. Using the API and product in basic ways is your tutorial on how to use it.

The nice thing is that you can retrofit this approach, or expand on what you have of this approach already, into an existing complex product or framework. Develop higher level abstractions, easier ways in, that map well to your existing concepts and tools. Allow the user to gradually expand their use of the product and in the process learn more of the key concepts they need in order to use the more powerful features. Then it becomes a fun product to use, instead of being confusing because of all the power and complexity, the product gradually reveals power and complexity whilst providing ways to understand and manage the complexity.