Now imagine what happens with climate change. If you add heat to a system, and there's ice around, it will melt the ice. But if there's no ice around, that same amount of heat will increase the temperature by 79.5°C (143°F).
Our 2010 decision to stop cooperating with Chinese government censorship on Search results was the first time a non-Chinese corporation stood up to the Chinese government. In doing so, Google put everything on the line — its future in the world’s fastest-growing internet market, billions of dollars in profit, even the safety of our Chinese employees. At one point, I began planning for a possible mass evacuation of all our Google employees based in China, as well as their families. Although difficult, I was intensely proud of the principled approach the company took in making this decision.
However, the decision infuriated not only the Chinese government, but also frustrated some Google product executives eyeing the huge market and its accompanying profits.
It was no different in the workplace culture. Senior colleagues bullied and screamed at young women, causing them to cry at their desks. At an all-hands meeting, my boss said, “Now you Asians come to the microphone too. I know you don’t like to ask questions.” At a different all-hands meeting, the entire policy team was separated into various rooms and told to participate in a “diversity exercise” that placed me in a group labeled “homos” while participants shouted out stereotypes such as “effeminate” and “promiscuous.” Colleagues of color were forced to join groups called “Asians” and “Brown people” in other rooms nearby.
In each of these cases, I brought these issues to HR and senior executives and was assured the problems would be handled. Yet in each case, there was no follow up to address the concerns — until the day I was accidentally copied on an email from a senior HR director. In the email, the HR director told a colleague that I seemed to raise concerns like these a lot, and instructed her to “do some digging” on me instead.
The application provides 160 services for residents of Saudi Arabia including making appointments, renewing passports, residents' cards, IDs, driver's licenses and others, and, controversially, enables Saudi men to track the whereabouts of women they control as part of the country's male guardianship system.
For many, it’s about economic interests, the old unspoken pact between the government and civilians that “I’ll make you rich if you accept my authority.”
…
“Yes,” Tang agreed. “What is democracy in the end? It’s the powerless and the dispossessed fantasizing power and money being shared with them. In a sense, it’s very much like Communism.”
“Indeed,” another person said. “Democratic or socialist, each system has its own way of fooling people, but we’re past the point of believing in any of them. Don’t just draw the bread on paper. Give us real bread.”
When I read this part of the discussion the following morning, I felt sick to my stomach. I understood that our WeChat conversations were casual and not to be taken too seriously, but I also saw the danger of such casual talk about another race — stereotypes sustained and cultural superiority reaffirmed. So I decided to speak out once again. I gave historic reasons for why we should be more sensitive toward Africans. Of all people, I said, we Chinese should be more sympathetic and empathetic to people in Africa, as we were both victims of colonialism. Empathy requires us to not see a country and its people through a lens of power, but to put ourselves in their shoes and to try and understand their struggles. Knowing my audience, I also added a buffer at the beginning of my response to save my classmate’s face. I applauded Tang for his kindness — “I fully believe that you’re not racist under any circumstances,” I said, “for I know personally that you’re a kind-hearted person.” I made my point general, not targeting anyone in the conversation.
After a few hours, Tang responded. “Whether this whole thing has to do with racism is beyond us,” he said. “Let’s not talk about this anymore.” Immediately, three other guys — also the opinion leaders of the group — gave him their thumbs up.
For the next few days, people kept chatting in the group about various topics. I chimed in once but was ignored. Amidst their conversations, the word empathy was used several times, always sarcastically, as if they were subtly mocking the person who brought it up first.
I observed their discussions from my phone, uncomfortable about joining in. I thought of the American scholar James Carey and his seminal theory on communication, which I had learned in grad school. Rather than viewing communication as a transmission of information, Carey proposed that it is a construction of a symbolic reality, a ritual through which shared beliefs are maintained, strengthened, and transformed.This projection of community ideals and their embodiment in material form — dance, plays, architecture, news stories, strings of speech — creates an artificial though nonetheless real symbolic order that operates to provide not information but confirmation, not to alter attitudes or change minds but to represent an underlying order of things, not to perform functions but to manifest an ongoing and fragile social process.
It’s a dialogue adventure. I made it for a friend who recently had a baby and won’t be able to make it to D&D for quite some time. The idea is to let him still affect the game in a lightweight but hopefully meaningful way.
The adventure consists of story beats. Each beat is consists of:
- Some text and/or pictures that explains a situation
- An opportunity for the player to to affect the situation, in the form of multiple choice or free text.
In a sense, it’s just a series of forms to fill out. But even ambitious games like King of Dragon Pass or the question rooms in Slay the Spire boil down to that.
The situations take place in the game world, and the player’s actions affect the next D&D session with the in-person players. For example, the players are currently in the Temple of Elemental Evil (minor spoilers at that link) in our D&D game. An Item Mart (TM) kiosk appeared on the ground floor of the temple the last time they played. The Item Mart corporate scouts placed and stocked the kiosk based on the player’s consulting advice from the dialogue adventure.
It’s a form of co-design with the player who can’t play. My hope is that these will also fun in and of itself, though we’re not quite there yet.
Some characters I have in mind for dialogue adventuring are:
- Jeumes, a Kuo-Toa (a kind of subterranean fish humanoid) who is not enthusiastic about the all-encompassing raiding culture of the Kuo-Toa. He was convinced to desert his post by the Worst Party (the player characters). He spent some time traveling the Worg Caverns with them, but Worst Party culture was alienating to him as well. He ghosted, then wandered off to the surface, getting entangled with other adventuring parties along the way.
- Ouistyn Cliaaagh, a dwarven cleric from a rival party of the PCs. He got sucked into hell during a climactic battle with a gigantic slime hive mind.
If I’m feeling ambitious, maybe I’ll make ones for:
- Smigal, a brigand leader who the PCs magically locked into a room to die
- A Time Squirrel, a member of a species of squirrel that can manipulate time
What happens when we auto-complete f(x)? First we need to know all possible f that are valid in this context. Since the programmer has just started typing in the expression, any function is valid, and that means there's a very long list to choose from. It takes many keystrokes to pick one. Second we need to know all possible x that are valid in this context. These are usually local names, so there aren't that many. Knowing the type of f narrows down the list but the list was already small, so there's not much to gain.And apparently, Amit started thinking about that as a result of running into Richard Garriot while shopping with his mom!
What happens when we auto-complete x.f()? First we need to know all possible x. The programmer has just started typing, so any local name is valid, but there aren't many. Typing just one character can narrow down the list to one or two elements. Second we need to know all possible f that are valid in this context. These are methods defined on the type of x, so there aren't that many compared to all possible functions. Knowing the type of x narrows down the list substantially, so there's a lot gained.