On cultural appropriation

Over the last few months, I’ve come across this concept of “cultural appropriation” several times. I don’t claim to get it completely, but I think I understand it enough to comment about it.

Going by Wikipedia, cultural appropriation

is the adoption or use of the elements of one culture by members of another culture. Cultural appropriation, often framed as cultural misappropriation, is sometimes portrayed as harmful and is claimed to be a violation of the collective intellectual property rights of the originating culture

The list of celebrities who’ve been accused of cultural appropriation runs way too long to list here, but it’s basically a popular topic of outrage among the modern left, commonly described by their detractors as “social justice warriors” (SJW).

In any case, my attention to the topic was drawn by a recent essay on the topic by philosopher Kenan Malik. In “In defence of cultural appropriation“, first published in the New York Times, Malik writes:

But who does the policing? Every society has its gatekeepers, whose role is to protect certain institutions, maintain the privileges of particular groups and cordon off some beliefs from challenge. Such gatekeepers protect not the marginalized but the powerful. Racism itself is a form of gatekeeping, a means of denying racialized groups equal rights, access and opportunities.

In minority communities, the gatekeepers are usually self-appointed guardians whose power rests on their ability to define what is acceptable and what is beyond the bounds. They appropriate for themselves the authority to license certain forms of cultural engagement, and in doing so, entrench their power.

In fact, reading the rather long essay, it was hard for me to disagree with him. In fact, it started to make me wonder why cultural appropriation is a matter of debate at all – controversial enough that at least three editors who defended it have lost their jobs (per Malik). In fact, Malik himself was victim of significant online abuse and trolling following his article.

So thinking about this topic during a work break the other day, I found compelling evidence about why the concept is bullshit – basically, it’s one-sided.

The whole concept of “cultural appropriation” hinges on there being a “superior community” and a “marginalised community”, with members of the former not allowed to adopt practices of the latter. This is a one-way street – if you turn the argument around and say that a person from a traditionally “marginalised community” should not adopt cultural practices of a “superior community”, you’re essentially being racist or casteist or whatever.

Consider this, for example – “Dalits should not recite the Vedas because by doing so, they are appropriating the culture of caste Hindus“.  It is unlikely that any self-respecting SJW would condone this statement. But turn the communities around, and the outrage on cultural appropriation become legit!

This makes the entire concept problematic, since it rests on a prior of certain communities being “marginalised”. In other words, it rests on a prior of a partial ordering of “communities”, with some considered more advanced than the other. Take away any such ordering or hierarchy, and the concept of cultural appropriation falls flat.

To me, the outrage about cultural appropriation smacks of a sort of “white man’s burden” among SJWs in an attempt to seemingly protect seemingly marginalised communities. All this achieves, as Kenan Malik mentions in his essay, is to empower the self-appointed leaders of these marginalised communities.

Maths, machine learning, brute force and elegance

Back when I was at the International Maths Olympiad Training Camp in Mumbai in 1999, the biggest insult one could hurl at a peer was to describe the latter’s solution to a problem as being a “brute force solution”. Brute force solutions, which were often ungainly, laboured and unintuitive were supposed to be the last resort, to be used only if one were thoroughly unable to implement an “elegant solution” to the problem.

Mathematicians love and value elegance. While they might be comfortable with esoteric formulae and the Greek alphabet, they are always on the lookout for solutions that are, at least to the trained eye, intuitive to perceive and understand. Among other things, it is the belief that it is much easier to get an intuitive understanding for an elegant solution.

When all the parts of the solution seem to fit so well into each other, with no loose ends, it is far easier to accept the solution as being correct (even if you don’t understand it fully). Brute force solutions, on the other hand, inevitably leave loose ends and appreciating them can be a fairly massive task, even to trained mathematicians.

In the conventional view, though, non-mathematicians don’t have much fondness for elegance. A solution is a solution, and a problem solved is a problem solved.

With the coming of big data and increased computational power, however, the tables are getting turned. In this case, the more mathematical people, who are more likely to appreciate “machine learning” algorithms recommend “leaving it to the system” – to unleash the brute force of computational power at the problem so that the “best model” can be found, and later implemented.

And in this case, it is the “half-blood mathematicians” like me, who are aware of complex algorithms but are unsure of letting the system take over stuff end-to-end, who bat for elegance – to look at data, massage it, analyse it and then find that one simple method or transformation that can throw immense light on the problem, effectively solving it!

The world moves in strange ways.

Schoolkid fights, blockchain and smart contracts

So I’ve been trying to understand the whole blockchain thing better, since people nowadays seem to be wanting to use it for all kinds of contracts (even the investment bankers are taking interest, which suggests there’s some potential out there 😛 ).

One of the things I’ve been doing is to read this book (PDF) on Blockchain by Arvind Narayanan and co at Princeton. It’s an easy to read, yet comprehensive, take on bitcoin and cryptocurrency technologies, the maths behind it and so on.

And as I’ve been reading it, I’ve been developing my own oversimplified model of what blockchain and smart contracts are, and this is my take at explaining it.

Imagine that Alice and Bob are two schoolkids and they’ve entered into a contract which states that if Alice manages to climb a particular tree, Bob will give her a bar of chocolate. Alice duly climbs the tree and claims the chocolate, at which point Bob flatly denies that she climbed it and refuses to give her the chocolate. What is Alice to do?

In the conventional “contract world”, all that Alice can do is to take the contract that she and Bob had signed (assume they had formalised it) and take it to a court of law (a schoolteacher, perhaps, in this case), which will do its best possible in order to determine whether she actually climbed the tree, and then deliver the judgment.

As you may imagine, in the normal schoolkid world, going to a teacher for adjudicating on whether someone climbed a tree (most likely an “illegal” activity by school rules) is not the greatest way to resolve the fight. Instead, either Alice and Bob will try to resolve it by themselves, or call upon their classmates to do the same. This is where the blockchain comes in.

Simply put, in terms of the blockchain “register”, as long as more than half of Alice and Bob’s classmates agree that she climbed the tree, she is considered to have climbed the tree, and Bob will be liable to give her chocolate. In other words, the central “trusted third party” gets replaced by a decentralised crowd of third parties where the majority decision is taken to be the “truth”.

Smart contracts take this one step further. Bob will give the bar of chocolates to the collective trust of his classmates (the adjudicators). And if a majority of them agree that Alice did climb the tree, the chocolate will be automatically given to her. If not, it will come back to Bob. What blockchain technologies allow for is to write code in a clever manner so that this can get executed automatically.

This might be a gross oversimplification, but this is exactly how the blockchain works. Each transaction is considered “valid” and put into the blockchain if a majority of nodes agrees it’s valid. And in order to ensure that this voting doesn’t get rigged, the nodes (or judges) need to perform a difficult computational puzzle in order to be able to vote – this imposes an artificial cost of voting which makes sure that it’s not possible to rig the polls unless you can take over more than half the nodes – and in a global blockchain where you have a really large number of nodes, this is not feasible.

So when you see that someone is building a blockchain based solution for this or that, you might wonder whether it actually makes sense. All you need to do is to come back to this schoolkid problem – for the kind of dispute that is likely to arise from this problem, would the parties prefer to go to a mutually trusted third party, or leave it to the larger peer group to adjudicate? Using the blockchain is a solution if and only if the latter case is true.

Giving up your seat

So the wife has done a kind of sociological analysis of who offers seats to baby-carrying people on the London Metro. Based on the data points she’s collected over the last three months we’ve been in London, she concludes that people who are most willing to give up their seats are those who have been beneficiaries of similar actions in the past – basically a social capital kind of argument.

I don’t have such an overarching thesis on who gives up seats, but one major observation based on my collection of data points. Most of my train rides with Berry have been between Ealing Broadway, the station closest to where we live, and St. Paul’s in Central London, close to Berry’s nursery and Pinky’s office.

The Central Line, which I take for this journey, is typically crowded in both directions, since most of my trips are during peak office commute hours. However, my experience in terms of people offering me a seat (I’ve never asked for it) has been very different in terms of where I’ve boarded.

What I’ve found is that people have been far more willing to give up their seats when I’ve boarded at St. Paul’s (or anywhere else in the city), than at Ealing. In fact, in about 30-40 train rides originating in Ealing when I’ve been carrying Berry, I only recall one occasion when someone has offered me their seat. On the other hand, it’s rare for me to board at St Paul’s and NOT have someone offer me their seat.

I have one major hypothesis on why it happens – on what goes into getting a seat, and a sense of entitlement. Essentially, Ealing Broadway is a terminus for the tube, and thus an originating station for journeys into town. And I’ve seen people work hard in order to get a seat.

So you have people who leave multiple trains in order to find one where they can find a seat. They get to the station well in advance of a train leaving so that they can get a place to sit. And having invested so much effort in occupying the seat, they feel entitled to the seat, and don’t want to give it up so easily.

On the other hand, St. Paul’s is right in the middle of the Central Line, and people who have seats when the train arrives there are typically those who got them somewhere along the way. Now, while there exist strategies to figure out where a seat might fall empty, and grabbing it, finding a seat in a non-empty train after you’ve boarded is more a matter of luck.

So if you think you got your seat by sheer luck, you feel less entitled to it, and are more than happy to give it up for someone who might have need it more!

Feel free to draw your own analogies!

How children change your lives

Over the years I’ve developed this fairly elaborate process of eating curd rice. First I serve myself the rice, and then allow it to cool. Then I pour over curds, and then mix it with the rice. I then serve myself pickles, which should be served on TOP of the curd-rice mixture, and then mix it in. Then I serve myself a fried snack (such as spiced groundnuts or bhujia or a mixture) on the side, and vary the quantity of it I take with each spoon.

So I’m at home with Berry today and decided to have curd rice for lunch. I’d just served myself the rice and curd and mixed it when she decided to wake up from her late-morning nap. Realising she was hungry I decided to feed her first, and first fed her rice mixed with a dal I’d made for her. The normal course of action would have been to then feed her curd rice, and then get on with my meal.

But then I was hungry and feeding her curd rice before I ate it would have made me impatient. In any case, I figured that since we were both going to eat the same thing, I might as well feed her off my plate (I’m quite used to sharing utensils with her, though I haven’t been able to ask her what she thinks of it – she doesn’t speak yet). The only problem was that I could mix in the pickle, since that would have made the mixture too spicy for Berry.

So for the first time in I don’t know how long, I mixed my curd and rice and moved it to one side of the plate. At the other end (our rice plates are elliptical), I served myself a little pickle on one side and mixture on the other. As soon as I started eating, Berry made her way to my knees, and we started eating alternate spoons – I’d add pickle and mixture separately to each spoon of mine, and feed her the curd-rice mixture alone when it was her turn.

She ate well enough for me to get myself a second helping! The only downside of this process (feeding her off my plate) was that I couldn’t measure how much she ate, but I’m not too obsessed with that.

When they tell you that you never know the ways in which kids can change you, I’m not sure people were talking about the way they eat curd-rice!

8/13: Dabba

Back when I was single and looking, one of the criteria I had with respect to the potential partner was that she should be willing to indulge in what I would call as “arbit conversations”. Arbit conversations can be about any subject, and the only rule is that it need not make sense.

So you can reply to anything with anything. Digress like crazy. Crack stupid, and potentially offensive jokes. Talk nonsense. Complete nonsense all the time doesn’t add value, of course, but some amount of nonsense can make the parties laugh, and keep things happy.

My love for arbit conversations started with my favourite hobby from the time I started working. It initially began on Orkut where I’d occasionally leave nonsense scraps on friends’ walls, and they’d reply with more nonsense. Prior to that, of course there was the “.:Arbit:.” discussion group in IIMB, which was created with the explicit purpose of talking nonsense.

And then sometime in 2006-7, Google decided to add all Orkut friends to your GTalk list, and soon Orkut started getting spammed by “franship seekers”, and my favourite hobby became opening a number of conversation windows on GTalk and simply talk to people, irrespective of whether the conversations made sense.

When I told some friends that I was looking for someone “who can make arbit conversation”, I’d already started talking to Priyanka, and she was of course one of the people with whom I’d indulge in such conversations. So when I declared her as a “super common minimum program“, I already knew that she was capable of arbit conversations (in hindsight, I realise why she was a “super CMP”. I used to talk to her so much that I’d anchored my expectations of a potential wife based on what she was like. In that context, it’s obvious that she’d ace it).

What I didn’t know, and was delighted to find out later on that she can also be “Dabba”. Now, this doesn’t have a good synonym in English, so I continue to use the Kannada word. It’s hard to even describe what being Dabba entails, but both of us are Dabba and we love each other for it.

Being Dabba means you don’t take everything too seriously, and are willing to see the lighter side of things. Being Dabba means finding some random stuff funny, and laughing endlessly about it. Dabbaness can sometimes mean talking in a strange accent, or pronouncing words wrongly, on puropse.

Being Dabba also means that you are willing to tolerate some amount of shit, and not get disgusted by it (if we don’t train her properly, Berry might grow up being disgusted with our Dabbaness). Being Dabba also means occasionally acting far less polished than we’re capable of, just for a few laughts. And so forth – hope you’re getting the drift.

If you’re a Dabba person yourself, it’s hard to reconcile with someone who’s not as Dabba, since you might get disgusted and feel let down at times. In that sense, I feel incredibly lucky to be married to someone who I think is at least as Dabba as I am. There are random things that Pinky finds funny. We have many inside jokes, especially related to 1990s Kannada popular culture, that makes us burst out laughing at times. There are words we pronounce in a particular way, to the extent that we pronounce them that way even when we don’t intend to.

Both of us being Dabba allows Pinky and me to connect better to each other. There are so many subliminal things we “get” about each other that we wonder if we’ll be able to get along at all with someone else. And of course, another thing that we should keep in mind is that we’ve been training each other for the last 7-8 years, effectively merging our respective brands of Dabbaness!

That’s possibly a great way to describe a relationship – where you train each other on your respective Dabbaness, and over time become so similarly Dabba that you’d find it hard pressed to be Dabba-compatible with others!

1/13: Leaving home

2/13: Motherhood statements

3/13: Stockings

4/13: HM

5/13: Cookers

6/13: Fashion

7/13: Dashing

Programming back to the 1970s

I learnt to write computer code circa 1998, at a time when resources were plenty. I had a computer of my own – an assembled desktop with a 386 processor and RAM that was measured in MBs. It wasn’t particularly powerful, but it was more than adequate to handle the programs I was trying to write.

I wasn’t trying to process large amounts of data. Even when the algorithms were complex, they weren’t that complex. Most code ran in a matter of minutes, which meant that I didn’t need to bother about getting the code right the first time round – apart from for examination purposes. I could iterate and slowly get things right.

This was markedly different from how people programmed back in the 1970s, when computing resource was scarce and people had to mostly write code on paper. Time had to be booked at computer terminals, when the code would be copied onto the computers, and then run. The amount of time it took for the code to run meant that you had to get it right the first time round. Any mistake meant standing in line at the terminal again, and further time to run  the code.

The problem was particularly dire in the USSR, where the planned economy meant that the shortages of computer resources were shorter. This has been cited as a reason as to why Russian programmers who migrated to the US were prized – they had practice in writing code that worked for the first time.

Anyway, the point of this post is that coding became progressively easier through the second half of the 20th century, when Moore’s Law was in operation, and computers became faster, smaller and significantly more abundant.

This process continues – computers continue to become better and more abundant – smartphones are nothing but computers. On the other side, however, as storage has gotten cheap and data capture has gotten easier, data sources are significantly larger now than they were a decade or two back.

So if you are trying to write code that uses a large amount of data, it means that each run can take a significant amount of time. When the data size reaches big data proportions (when it all can’t be processed on a single computer), the problem is more complex.

And in that sense, every time you want to run a piece of code, however simple it is, execution takes a long time. This has made bugs much more expensive again – the amount of time programs take to run means that you lose a lot of time in debugging and rewriting your code.

It’s like being in the 1970s all over again!