Collaboration
In his book, Sapiens: A Brief History of Humankind, Harari talks about how there's no such thing as "unnatural" — everything that exists is by definition natural because everything comes from nature. This idea was eye-opening to me at the time of reading it (circa 2011), because I was used to seeing the world as either natural or artificial (man-made). As if these are two completely separate things. Could the pixels on this screen be just as much a part of nature as the tree outside? Can the virtual cloud be just as much a part of nature as the one above our heads? I would like to argue that yes. Yes, because as Noah-Harari explains, there is no such thing as "unnatural". Everything that happens and everything that exists has happened and came to be naturally. There is no other way for things to be.
However, In the video Harari talks about how we essentially stopped natural selection from happening by developing "intelligent selection". But what if intelligent selection is part of natural selection? Why is it not? It sure is different, it changed the rules of the smaller game (in the way we basically have almost full control over our species, as well as over others), but it still complies by the rules of the larger (natural) game — survival of the fittest. So I guess I find this to be contradicting to the idea that nothing is unnatural.
I think the realization of what the human species is doing to the world as it has been until really not too long ago is nothing short of devastating. But it is not unnatural — it is just as much a part of nature as is anything else. While morality is arguably a made up idea, it has, to some extent, been observed in some animal species. Hence it is innate at least in part (and it makes sense too — moral laws ultimately are good for survival?). Other made-up ideas kind of get in the way of it for us humans though. As Harari said, "suffering is the best test of reality" — the problem is our ability to fully recognize it in others, and our ever growing threshold for accepting suffering (both our own but more so others').
Noah-Harari also talks a little bit about artificial life — about how we, humans, are becoming essentially "gods", by acquiring the ability to pretty much generate life.
Artificial life has been a field of study since the late 80's. Computer scientist Christopher Langton coined the term and wrote a paper about it by the same name. There are two main approaches to AL:
In both cases the focus is on trying to understand life by replicating its characteristics. In that sense, the various AI we have today is yet another form of this, except the difference is that it wasn't made to help us better understand ourselves (if it does so — it is merely a byproduct), but rather it was made to augment human abilities. But we are doing this by trying to mimic the way we think our own brains work. By doing that, we are being pretty "racist" in what we think life (and intelligence) is. Our perception of what constitutes life to begin with might be very narrow and restrictive. Other "types" of life could exist out there if only we'd accept them as such. An easy example is fish. Fish do not have the capacity for a conscious awareness of pain — does this mean they do not suffer when they're choking on air? Can we imagine a living being suffering without pain? And if we can't, does this mean it can't exist?
Not that anyone's saying fish aren't living beings, but to that point (something is alive even if it experiences life differently than us) I'd like to suggest that even things that are traditionally not being thought of as alive could be seen as such if only we'd accept that they just have a different experience of the world. What would change if we considered the earth a living thing? A mountain? A city? If we'd see suffering as something that is not contained in any one individual experiencing it, but rather capable of cascading up and down and spreading and manifesting differently in different species?
Just one final thought about collaboration: Noah-Harari mentioned how being able to collaborate in big numbers is what set humans, or homo-sapiens, apart from other species, and is what allowed us to become so powerful. I think it's more complex than pure number of participants in the collaborative network, in that I think there are several levels to this. Different animal species are collaborating by adhering to the same very basic rules of play (in terms of territory for example), but they have increasingly smaller inner circles that have increasingly more complex sets of rules for collaboration. Take the UN as a pretty high level with basic rules, then under it you have countries with more specific rules, and cities, and families. But humans tend to feel more engaged and part of a community when that community is smaller.
I guess what I'm trying to say is that I don't think this human-collaborative-effort can go on indefinitely. There is a finite, very real number, of how many people can effectively collaborate (on each level of collaboration) before it collapses on itself. To that extent, I'm not sure the concept of countries is helpful to anyone anymore. Perhaps smaller communities can fulfill more people's lives and offer greater diversity and sense of belonging for each individual. Perhaps it's more about keeping a balance where each layer of collaboration is sustainable — not trying to constantly grow, or gain more power over the other layers as well.
I'm writing this as I progress — please kindly take into consideration while reading :-)
I started by taking one of the examples from class, connecting it to my account and stripping it down to the basic functionality — the authentication in this case. I then tested to see that I have that part working, and for some reason the Google authentication wasn't working (I did add it and authorize it in Firebase)
I looked at the list of authorized domains and localhost
was on there so it didn't make sense. I tried other browsers, turning things off and on again but that didn't work either. What ended up working was adding 127.0.0.1
to the authorized domains (how is this different than localhost
?).
I've been thinking about trying to revisit an old idea I had but it becomes very complicated very fast and I get lost in it, so I thought I'd just try a super simplified mini version of it for this week, with the possibility of continuing it for my final maybe?
So simplified version — the idea is to have a grid of cells (let's say 10x10), where each cell can be either black or white. Each user can turn any cell "on" or "off", but every time the page refreshes (for now) each cell is going to be colored based on all previous states — if it was more black than white then it'll be black. There are some rules and options I'd add to that, but for now this is the plan. The outcome is supposedly an "agreed" drawing, even though probably no one drew that exact drawing, it came to be through peoples' choices.
So I set up another database for the grid's cells — counting how many times it was either black or white, and keeping track of the current color. I tried making it somewhat scalable so I can easily test and change the amount of cells. I think there's an issue sometimes where some cells only respond to the second click and not to the first, but it's been elusive and I wasn't able to pin point exactly when and why it happens...
In any case, once I got the basic functionality to work well with the realtime database I also added two sliders — one for a blur effect and one for scale. I feel like this can really change what we see in the grid too.
Currently, the cell's data is only updated on clicks. But I need to find a way to count all cells per session, so that if a user chooses not to change a cell's state it'll still count towards whatever color it is. This way it's more fair and allows users to sort of work towards something. Otherwise it's too chaotic. I'm not sure how to approach this — I can't just update the counts every now and then because it should only happen once per session — when that session ends. I could limit the session time but that feels like a lousy solution. Or I could somehow keep track of everything locally and make sure I don't update the same cell twice in a session? But the timing of this still remains problematic...
Edit: I managed to fix the double click bug! I tried to see what's going on by making the grid much smaller and looking at the database updates in real time — then I realized what was causing the issue: for cells that have equal amounts of white and black counts I just set their color randomly. But I forgot to update the currentColor variable in the database as well, which caused these conflicts sometimes. Silly...
Edit #2: a potential solution to the track-keeping problem — update all cells once the page loads, and just update each cell that changes when it does so. Only issue with this is what happens if the user changes the state twice in one session — I would need to include something like a "changed" property for each cell and update the counts accordingly. I only thought about it too late so didn't get to implement it but it should work?