Comedy
May 23, 2012
Today I want to talk about comedy, because it is an absolutely amazing subject. The fact that an entire dynastic profession exists to make groups of (hopefully drunken) strangers laugh on command just seems kind of unbelievable. Clearly there is something deep and transformative about laughter, but what does it really mean when a person is compelled to laugh at something? For any aspiring jokesters out there, how can a comedian create this situation and get paid?
Well, in scientific terms, laughter is probably caused by something that behaves like a central pattern generator in the nervous system. These neural structures generate rhythmic output patterns without relying on any external feedback, so it is a bit tricky to apply this concept to laughter (a person has to hear or see every joke, for example). However, the laughter usually happens only after the person gets the joke, at which point the “joke input” has ended in almost every case.
Therefore we should probably be conceptualizing laughter as an internal feedback loop that can be started by any “funny” input. The challenge then is to define a “funny” input. I’ll pause for a second here so you can try that…
But wait! Doesn’t the very incomprehensibility of that challenge suggest something profound about how we should understand humor? Everyone knows that jokes are hard to write because an original comedian has to be the first person to notice that a certain thing is funny. The whole art of comedy revolves around having some of that uncommon and funny knowledge, and choosing to reveal it in the most entertaining way possible. Knowing this, is it possible to imagine something that all funny things must have in common?
Well, sure. They’re all “correct” in some abstract sense. Comedy is the process of being so profoundly correct that other people are compelled to laugh as soon as they realize what is going on. Us college-educated folk can scoff at “low-brow” humor, but almost any example of “bad” comedy still does reveal more than a few simple truths to more than a few tragically underinformed people, and therefore it can still make a lot of money. The fact that a thing is not funny to every person does not mean that it is not “funny” in some platonic sense. Somewhat disappointingly, there is no such thing. That makes good comedy very hard work, but at least we won’t ever have to fear the funniest joke in the world.
(From this perspective, slapstick humor is a special case where the truth being revealed is basically how badly it must suck for the victim…)
Generally speaking, this is not a new idea at all. A government document says this:
The American comedian Will Rogers was asked how he conceived his jokes. He answered: “I don’t make jokes. I just watch the government and report the facts.” See what I mean? Sometimes the truth is funnier than “comedy.”
Several Woody Allen bits are included as example one-liners, like this one:
I can’t listen to that much Wagner. I start getting the urge to conquer Poland.
It’s funny because it reveals and combines several truths in a clever and efficient way:
- Wagner was a German imperialist.
- Music conveys emotion.
- Germany conquered Poland (and murdered millions of Jews) in World War II.
- Woody Allen is Jewish.
The joke actually depends on the audience already knowing all of these things, and the “trick” is that he alludes to each in such an efficient and thought-provoking way, in the space of two short sentences. When we realize, all at once, the absurdity contained in the idea of a modern American Jew savoring hypnotic war hymns that ushered in the Second Reich, the effect is very funny for a lot of people, even if they don’t want to think about it!
I’m particularly interested in this method of “humor analysis” because it seems to emerge so naturally from a feedback-dominated model of intelligence. Laughter happens when a person notices something that is interpreted as “true enough” to activate an unconscious neural feedback loop, forcing them to externalize their acknowledgement and understanding. That is the sole evolutionary function of laughter, a phenomenon which almost certainly had a pivotal role in the building of every human civilization.
This is not saying that Adam Sandler is the greatest American ever, or even that we should all start studying Internet memes for the sake of science. But it does mean that we should take a moment and bow our heads in respect to every person who has ever wanted to make another person laugh, and in recognition of the great things they have accomplished for the sake of humanity. Because when a country of people stop what they are doing and start laughing (against their will) at the same idea at the same time, you can probably trust it a bit more than usual.
How would I define a “funny” thing? Funny things make people laugh.
Here is someone else’s definition:
There is no simple answer to why something is funny… Something is funny because it captures a moment, it contains an element of simple truth, it is something that we have always known for eternity and yet are hearing it now out loud for the first time.
UsBook
May 19, 2012
I’ve been wanting to talk about the Facebook IPO for a while. If you believe me, I really wanted to predict that it would be that underwhelming, but was totally scared about being wrong like everyone.
Here’s what I think is happening: Investors these days have a more mature sense about the things that are actually valuable to an economy, and they are starting to worry about how much value Facebook will ever be able to derive from its community. With serious underemployment problems across much of the developed world, most of the activity on a place like Facebook consists of idle chatter or practical logistics, and the heaviest users tend to be the people with the most downtime. Many of these people will not be able to spend very much money on arbitrary advertised goods in this kind of economy, even if the ads are perfectly targeted. Investors know that.
The value of Facebook is determined by the value of the information that is shared on Facebook, just like the value of every web property is determined by its content. The content on Facebook is our lives. This IPO is such a grand referendum on America precisely because Facebook is the social tool that we tinker around with in our idle time, and so Facebook is only proportionally as valuable as us, in a certain sense.
What I’m saying is that if you want Facebook stock to take off, Mark Zuckerberg to get everything he ever wanted, and the economy to recover, there is only one thing you can really do:
Make a lot of money using Facebook.
Notes from Silicon Valley
May 10, 2012
I realized about three minutes ago that as fun as this blog might be for me to write, and as many random ideas might play out (and succeed!) here, I still haven’t talked very much or very directly about myself or what I think about my own situation, as it didn’t really occur to me that certain people might care about that too. Family and friends, feel free to consider this The Return On Your Investment, Part 1, or whatever:
- The simulacres phenomenon is very real indeed. Humans may have bootstrapped their own existence all along, but moving to a place like this really underlines how far we’ve come as a species. I’m still not completely able to relax and enjoy myself when the ambient temperature is more than three degrees from whatever would seem “ideal” at any moment, because I have never known survival that does not require a carefully-constructed box. My ancestors fled nameless European tyrants in a box, and each subsequent generation of Northeastern Americans go on reproducing their boxes like some quasi-species of box-creature, just so that come springtime the whole lot of us aren’t frozen up in a giant cube. The problem is, boxes cut both ways, and people get soft. Like me.
- Maybe you think, ah, it must be that famous “crunchy” perspective from the camping trip, but this is not true either. Many people here seem to know their environment better than they know themselves. Some would not even regard that kind of statement as an insult.*
- Ever talk to one of those people who are too clever for their own good? Where we should probably just stuff them in the nearest closet or mental institution for a few hundred years while everyone else grows up? You’ll run into a lot of those people here.
- On the other hand, we have a verifiable shortage of free lunches, as people keep asking me to replace theirs. Actually, I did get a free lunch last week, but of course there was a waiting list involved. And the best free food is still reserved for the best free programmers, somehow.
- If I am willing to deal in money, there are many lunches available for purchase, most of which are delicious.
- As delicious as the marine life might be, Italian Food in City X doesn’t hold a candle to the real thing. Which, of course, doesn’t hold a candle to the real thing.
- No matter what happens, the hipsters have no choice but to become old with me.
- In the end, nothing outlasts a weird uneasiness about this whole endeavor, a sense that the things I write and the things I know might be the only things standing between me, the street, and some totally crazy sign. And that the street itself is the only thing standing between humanity and all those impregnable woods. And that I might actually need to earn a master’s degree before these strangers start taking me seriously. I still don’t want to.
*If there are any specific people who believe I am picking on them, the answer is NO!!! Everything is caricature!!!
Programming: World Wide Ouija
May 5, 2012
In the spirit of free information, I have a new open-source software project to share today. It is an idea that has been bouncing around my head for a while: a working, real-time, multiplayer Ouija board game that runs in a web browser. I decided to go ahead and make it last week because there are some amazing new JavaScript tools maturing out of the NodeJS madness, and this kind of project has suddenly become much easier to complete than it would have been just a few years ago.
Specifically, I’m using MeteorJS, a brand-new full-stack NodeJS/MongoDB framework which abstracts away the intimidating problem of integrating a client program with its server resources. To oversimplify, a fast web app can’t wait for every bit of program logic to download from the server, and a centralized server can’t keep every bit of data organized without its own reference copies, so a lot of work gets duplicated. MeteorJS attempts to minimize this issue by setting up a framework where application data can be accessed from either the client or the server at the same logical address or “collection,” using the same JavaScript semantics on either end. When it is possible to synchronize each client’s copy of its application data with the server’s version, MeteorJS automatically passes updates to the server and fetches fresh data, algorithmically eliminating conflicts that the other clients might have introduced.
It’s all wonderfully intricate stuff, but the point is that somebody else is building it and we don’t have to. So let’s cut the techno-babble and make a multiplayer Ouija game! Start by installing MeteorJS. Then, to create a new project and populate it with basic HTML, CSS, and JS files, type this at a command line:
meteor create worldwideouija
To turn off “easy mode” and better control the data that gets shared, disable autopublish:
meteor remove autopublish
Our game needs to store three kinds of “things,” so we’ll start by initializing three collections. Open the “worldwideouija.js” file in the “worldwideouija” folder and add this at the top:
Rooms = new Meteor.Collection("rooms");
Forces = new Meteor.Collection("forces");
Messages = new Meteor.Collection("messages");
The Rooms collection will store metadata about each game room, the Forces collection will store temporary impulse values that push the Ouija marker around the board, and the Messages collection will store chat messages.
We can access these collections from either client or server, but the distinction is still important for the purposes of our application, as we need our Ouija server to manage the data for each room, and update each player’s client as necessary. MeteorJS allows us to conditionally execute JavaScript depending on whether the current environment is the client or the server, which allows all our application logic to be contained in one script. Let’s declare what the client should do now:
if (Meteor.is_client) {
Meteor.startup(function() {
Meteor.subscribe("allrooms");
Meteor.subscribe("allmessages");
//...
});
//...
}
Meteor.startup() takes a callback function that should contain all the code we want to run when the application is ready to start execution. This callback will contain our game loop.
Inside, the Meteor.subscribe() methods tell the client that it should ask the server for access to “allrooms” and “allmessages” that the server hopefully has available. While the Rooms variable always refers to the collection, this “allrooms” subscription tells the client which records to actually synchronize with the server. Because autopublish is disabled, we will also have to make these subscriptions available to the client. At the end of the file, add a block that tells the server to publish all Rooms to “allrooms” subscribers and all Messages to “allmessages” subscribers. Security is not a concern when consulting with spirits:
if (Meteor.is_server) {
Meteor.startup(function () {
Meteor.publish("allrooms", function() {
return Rooms.find();
});
Meteor.publish("allmessages", function() {
return Messages.find();
});
//...
});
}
I’ve neglected to publish the Forces collection, but this is on purpose. At first, I imagined that each client could just update the server’s marker position for the current room at any time and the server would sort everything out, but whenever the delay between page updates got worse, the movement became jerky and weird. The Forces collection is how I solved this. It acts as a buffer where each client can write control data. When the server is asked to update the marker position, it reads from this collection, updates the position according to all the available Forces, and then deletes them, before sending the new position back. This means that no client ever has to read directly from this collection. Each client can update its own Forces collection and send new records to the server without subscribing to any published objects. It’s probably better not to waste bandwidth synchronizing this data if the clients don’t need it.
So let’s write some code! Define a game loop that executes every 500 milliseconds by adding a Meteor.setInterval() method to the client block, inside the startup callback function:
if (Meteor.is_client) {
Meteor.startup(function() {
Meteor.subscribe("allrooms");
Meteor.subscribe("allmessages");
Meteor.setInterval(function() {
if (Session.get("room"))
{
if (isNaN(Session.get("dx"))) Session.set("dx", 0);
if (isNaN(Session.get("dy"))) Session.set("dy", 0);
Session.set("dx", Session.get("dx") * 0.9);
Session.set("dy", Session.get("dy") * 0.9);
Forces.insert({
room: Session.get("room"),
x: Session.get("dx"),
y: Session.get("dy")
});
Meteor.call("updateMarker", Session.get("room"), function(e,r) {
if (r.x && r.y)
{
Session.set("posX", r.x);
Session.set("posY", r.y);
}
});
}
}, 500);
});
//...
}
This loop uses Session.set() and Session.get() to manage temporary session variables, used to save the client’s current impulse value, along with the client’s copy of the marker position. Meteor.call() tells the server to execute its “updateMarker” method that we will have to define, and the callback updates the client’s position using whatever response data comes back.
The rest of the client application uses HTML templates integrated with JavaScript, like this function which returns the current Room ID:
Template.main.currentRoom = function() {
return Session.get("room") || false;
};
This return object can be accessed from the “main” template by including {{currentRoom}} anywhere in context. We won’t go into detail about the rest of the templates but they are all included with the source code and should make enough sense if you can follow this logic. Look in the .html file for all the template HTML.
Templates can also handle jQuery events, and we can use this functionality to read the mouse position and update the client’s impulse values:
Template.room.events = {
"mousemove .gameBoard": function(e) {
var theRoom = Rooms.findOne(Session.get("room"));
var trueX = e.pageX - parseInt($('.gameBoard').css('margin-left'));
Session.set("dx", (trueX - Session.get("posX"))/25);
Session.set("dy", ((e.pageY - 50) - Session.get("posY"))/25);
}
//...
};
This is the events object for the “room” template, with keys that are strings containing a jQuery event type and often a CSS selector that declares which DOM element(s) to bind. Inside, we use a little hackery to compute an impulse vector from the mouse and marker positions, and then we save the session variables that the game loop will read from.
Finally, we have to implement an “updateMarker” method on the server:
if (Meteor.is_server) {
Meteor.startup(function () {
Meteor.publish("rooms", function() {
return Rooms.find({});
});
Meteor.publish("messages", function() {
return Messages.find({});
});
Meteor.methods({
updateMarker: function(id) {
var theRoom = Rooms.findOne(id);
var position = {};
if (theRoom)
{
if (isNaN(theRoom.x)) theRoom.x = 480;
if (isNaN(theRoom.y)) theRoom.y = 320;
var dx = 0;
var dy = 0;
var numForces = 0;
var theForces = Forces.find({room: id});
theForces.forEach(function(force) {
dx += parseInt(force.x);
dy += parseInt(force.y);
numForces++;
});
Forces.remove({room: id});
Rooms.update(id, {$set: {players: numForces}});
if (numForces > 0)
{
var newX = theRoom.x + dx/numForces;
var newY = theRoom.y + dy/numForces;
if (newX < 100) newX = 100;
if (newX > 860) newX = 860;
if (newY < 100) newY = 100;
if (newY > 540) newY = 540;
Rooms.update(id, {$set: {x: newX}});
Rooms.update(id, {$set: {y: newY}});
position.x = newX;
position.y = newY;
}
}
return position;
}
});
});
}
And that’s (almost) all!
Visit http://github.com/guscost/worldwideouija for the complete source code, and try it out at worldwideouija.meteor.com or worldwideouija.com! I’m still tinkering around so uptime and code quality are not 100% guaranteed.
And before I forget again, many thanks to AVGP for the missing chatroom example, which helped a lot.
Trans-scarcity
April 16, 2012
If you’re into futurist philosophy or avant-garde politics, you might have heard of the concept of “post-scarcity.” Trivially, it is an imagined future techno-utopia where the cost of basic human survival becomes negligible, and the masses are thereby liberated to participate in meaningful activities, instead of necessary ones. It’s a charming idea, worked over in detail by futurist writers like Cory Doctorow, and considered seriously by thinkers of many stripes. Most people would probably want to live in a world where survival is not the constant struggle that it has always been.
That said, reality does not exactly endorse the most optimistic perspective. At the very least, farming is still a messy, laborious, and expensive craft, even as technology is being developed that can automate much of the work. While in the long term we might reasonably expect food prices to sink lower than they ever have, it could be many decades or even centuries before food prices are negligible to the majority of humans, if that ever happens at all. The same is true for many other kinds of physical goods, which are made scarce by the simple fact that a limited amount of effort has been expended creating them.
However, the same cannot be said of information. In the Internet age, the effort required to create a powerful idea vastly exceeds the effort required to reproduce it. In fact, ideas that are powerful enough require effort to suppress, as they behave like living, reproducing organisms themselves and are therefore described as “viral” by reporters. Most large media producers have not responded very creatively to this phenomenon, but there are notable exceptions, like Valve.
One implication for the entertainment industry is that as producers of information, we should no longer be stuck in the rut of thinking that restricting access to every marketed experience so that it becomes “scarce” is the best way to maximize revenue. That strategy obviously worked when it was a practical requirement of trade and material reality, but America is reaching a tipping point where we trade predominantly in ideas, and ideas follow different rules.
It is hard to understate the importance of that fact! Ideas aren’t limited in the same way that physical things are, and enforcing scarcity upon them enforces a limit on their impact, by virtue of basic logic. To break through that barrier, the only workable strategy requires us to avoid assuming that the best course of action for a given producer is to make a given idea scarce. In the case of blogs and news websites, many large players have already been forced to acknowledge this.
But I am not trying to imply that ideas can’t or shouldn’t ever be made scarce. Valve’s in-game items are only valuable because Valve has imposed a condition where either time or money must be expended to obtain them, and therefore a limited number of items “exist” in the virtual universe. Applied correctly, artificial scarcity can generate enormous value. However, it must be remembered that the other pillar of Valve’s strategy involves drawing as many participants as possible into their virtual universe, to sustain demand for the virtual items. This multifaceted approach is a good example to study, as it has conclusively demonstrated the existence of communities which can and do support radically different business models.
By understanding that valuable ideas do not all have to be hidden behind paywalls, new media projects can take advantage of an unprecedented business climate, and I suspect they can also maximize returns when the circumstances are right.
Review: Team Fortress 2
March 10, 2012
I’m writing about one of my all-time favorite games today, because last week I remembered that it recently switched over to a “free-to-play” model with a brand new market for in-game cosmetic and practical items. I downloaded it on yet another new computer because I supposed that there would be a veritable goldmine of free (inexperienced!) players to kill, a fresh selection of map updates, and brand-new play styles made possible by all the cool new weapons. Boy, was that supposition correct! I don’t remember the old game being this fun at all, and the old game was a whole lot of fun!
For those who don’t know what I’m talking about, Team Fortress 2 is a video game where one team tries to defend strategic points on a map, and the other team tries to infiltrate their defenses and capture whatever needs capturing. Players on either team get to choose from 9 different “classes” of militant, which have different strengths, use different weapons and require very different play styles to see any success. I’m told the Pyro is a girl under the gas mask, but otherwise all the soldiers are male, which angers some people. Anyway, the game is the most fully realized competitive multiplayer experience ever to grace the PC or Mac or console. The strategic possibilities are mind-blowing and hardly anybody gets left out, even people who normally suck at “shootey” games. I loved this game when it came out and I still have to keep myself away from it to this day, like cigarettes for normal people.
Most amazing is that, had the folks at Valve sat around and boozed away their profits from the Orange Box rather than going right back to work on the community, I would have never spent another dime to play the thing! As it stands, the $10 in my Steam wallet has been used up over the course of 3 days and I will have to refill it soon. There is less of a “walled garden” feeling with all the new free players, but Valve never forgot how to treat its loyal customers and as a result they’re simply printing money over there these days. Good for them.
I want to use part of this review to imagine what the wild success of this format means for the future of the entertainment industry. Valve has changed the world, by creating a virtual place that is completely free to access (barring hardware limitations), and selling virtual things that only work in that virtual place! Luddites will scoff and say that we’re all suckers for thinking that these ideas can really be valuable, but here’s a real hard serious question for them: does paying $2 at an arcade to pretend to race a motorcycle 3 times around a track give me more “fun” than owning a virtual rocket launcher would? I don’t think many people are prepared to argue that point.
Some gamers also complain that new weapons will introduce game balance issues, even though this does not make good logical sense. The market will demand any weapon that is found to be disproportionately effective, and Valve will be able to identify it and take any corrective action necessary. In addition, having hundreds of slightly different “enhancements” to choose from means not having enough time to study all their strengths and weaknesses.
What we should take away is that by sacrificing a dwindling source of revenue, Valve has turned intellectual property that might still be able to generate meager sales on a good day into a thriving economy that is driving their current profits. “Common sense” might say that giving away your product is a bad idea, but it doesn’t really have to be. This is hard evidence.
Science: Analog Intelligence
March 9, 2012
Last time, we imagined that a cognitive “confabulation” process (and therefore all intelligence) happens in the brain as an interference phenomenon, or a sort of nonlinear convolution, among complicated modes of oscillation on a neural network.
But this idea is immature and unfunded, and experiments are not prepared at the moment to rigorously test some kind of hard prediction.
So instead, let us wave our hands, consider the typical living person as an empirical phenomenon, and attempt to describe a basic theory of idea genesis by thinking about it/him/her. A spoken sentence is commonly defined in English class as a “complete thought,” and we hypothesize that this definition can be closely correlated with some specific thing that might be called an “understood idea” as it enters or exits a conscious person, given the following conditions:
1.) The person is arriving spontaneously at each output word, i.e. composing sentences as they are being spoken. This is different from a “memorized idea” which could instead be modeled as a sort of large word in a person’s vocabulary. It is also different from a “perceived idea” like this sentence that you are reading, because in this case a large percentage of the processing devoted to “finding” each word is cut out and replaced with less-intensive processing devoted to parsing each word and, in a typical case, “sounding it out” internally as your eye scans the page. Incidentally, that is why it takes much longer to write a book than it takes to read it.
2.) The person really understands each input word, a philosophical dead end which can only be assumed from a given reply.
So where do these understood ideas come from? We tend to agree what is a coherent sentence, and far spider mellow peninsula no binder what. But how do we arrive at the correct series of words for each idea? It is not really possible to identify the physical source of any particular word that I might say myself, because to do so would require me to say new and different words (at least internally), and so on. But it is still possible to theorize a mechanism by which this can happen in a general sense, that is consistent with the principles of analog confabulation.
A good place to start is with the acknowledgment that words are not guaranteed to mean exactly the same things to different people, and it is only by assuming a considerable amount of shared experience that we can rely on these labels to signify approximately what we intend to communicate. It would also be wise to acknowledge the fact that most things that can be understood by intelligent beings aren’t easily translated into words, as the arrival of creatures with “large” vocabularies was not very long ago, and therefore we have a rather naive understanding of what a “large” vocabulary actually is.
With that in mind, let’s get right to the core of the matter: what makes a certain word or pattern part of a person’s vocabulary? What is its function in relation to other words, and the people who use them? I consider it logical and correct to describe each word as a reminder of some shared experience. Why does the word “apple” mean what it does? Because it has been associated with the experience of an apple since before any one of us was alive. I know what the word means because I have experienced it so many times in the presence of apples. I can communicate this to other people, because when dealing with apples, I am strongly inclined to spontaneously arrive at that word, and externalize it.
The paradox, then, is this: if every word in a given vocabulary has to refer to some common feature of experience, how do people communicate new things? Well, there are several other factors to consider. First, it is possible to arrange familiar words in a way that reveals some previously unfamiliar aspect of the relationship between them. When these arrangements are particularly witty or profound, they are often called “jokes.”
Second, it is sometimes possible and even necessary to create new, completely unfamiliar words when they are required by a new idea. In these cases, if the new words are particularly appropriate or useful, they must refer to some common feature of experience that has not been named, and so they are assimilated into the shared vocabulary of those who understand the new idea. That is how language evolves.
Third, human communication has always been imprecise at best and useless at worst, so there is hardly any guarantee that listeners will ever understand anything I say in the same way that I do. This imprecision is usually ignored by humans, yet it causes the evolution of communicated ideas in unpredictable and not necessarily unhelpful directions. On the other hand, when we are inclined to read and write precise, executable computer code, it is often found that simply reading the code like one would read a book does not provide any useful insight. To rigorously understand a computer program or a mathematical proof, one must essentially construct a perfect imitation of some discrete state of mind achieved by its original creator, and it is not a coincidence that our relatively primitive machines can be readily configured to make use of these same ideas. We should also not be surprised that drilling children in the efficient execution of algorithms does little to produce creative adults.
Luckily, none of these factors lead to contradiction when imagining a neural network as an analog phenomenon, and in fact the reality seems much more consistent with this framework than with typical digital and discrete-time neural networks. The idea requires a rather uncompromising philosophy once it is extrapolated far enough, but that’s a common problem with any broad scientific theory. The most difficult point to accept will be that in this view, there is no further control system or homunculus that sits “behind” the interference phenomenon in any sense, as the phenomenon itself is the only control mechanism present. This challenging idea might lead some to conclude that insanity is only one unfortunate circumstance away, or even that free will itself does not exist. I would caution those who go that far to be aware of exactly what it is they are defining – if “free will” means the capacity for human beings to make decisions that contradict every rational force or expectation in the known universe, then explaining in scientific terms how this condition arises only serves to reinforce its reality.
It is trivial to cover edge cases (read: far from the cortex) with this model, because for example, medical science already knows that the force conveyed through a muscle is proportional to the frequency of the nerve pulses, not amperage or anything like that. Considering this, “reflex actions” and “muscle memories” can be explained as progressively longer signal paths that penetrate farther toward the cortex proper, but are quickly reflected back at the muscles that will perform the response. The difficulty comes with explaining more sophisticated animal behaviors, and finally with accounting for the nature of introspective consciousness. The signal paths for these actions are certainly orders of magnitude more complex than any of those which we can directly observe at present, but it is not impossible or even implausible that the underlying physical mechanism should essentially be the same.
The central hypothesis linking analog confabulation with intelligence suggests that in reality, conscious thought is only ever quantized or digitized in the sense that a given signal either “resonates with” or “does not resonate with” the rest of the brain. It would not be elementary to add or multiply these signals in a linear fashion, as the space of human ideas is not affine. Thus, a set of words grouped together in a specific order can encode much more information than the set of information gathered from each word when considered on its own. Furthermore, ideas beyond a certain elementary complexity level are never 100% guaranteed to persist. A common annoyance called a “brain fart” happens typically when one word or phrase from an idea that “should” be resonating with the others fails to enter the feedback condition, due to unexpected interference from any number of sources. This condition is not usually permanent, but people can and do permanently forget ideas that don’t resonate with anything for the rest of their lives.
Is it really possible to understand intelligence if this much ambiguity is required? Analog systems have characteristics that make them very useful for certain tasks related to intelligence, so it is in our best interest to try. After it has stabilized, a neural network arrives at a sort of “temporary solution” where the weightings of its connections are each optimally configured that no (or few) weightings change on the next recurrence of network activity. It would seem that an analog system could be stabilized in this manner to much more significant precision, and possibly in much less time, especially if any “aliasing” effect of the digitized neurons causes disruptive oscillatory behavior to persist longer than it would otherwise. The improvement over digital algorithms would likely be significant, as evidenced by the fact that bees can reliably discover the best routes to maximize food collection using very little available hardware. A digital simulation of physically precise or effectively “continuous” neural networks is possible and has been attempted, but the complexity and price of such a system is still prohibitive, to say the least. The alternatives would appear to be either an enormously complicated analog computer, or the convenient discovery of some mathematical trick that makes efficient modeling with Turing machines possible.
Therefore, at present this perspective on high-level behavior and intelligence might be developed further in a qualitative field like psychology. One intriguing theory of mind, originally published by Julian Jaynes in 1976, suggests that humans went through a phase of “bicameral” mentality in which one part of the brain that generated new ideas was perceived by the other part as a member of the external universe. Jaynes suggests that this “bicameralism” was similar in principle to what we call “schizophrenia” today, and can account for all sorts of historical oddities that we call religions, myths and legends. The theory is based on the core epiphany that logical and learned behaviors predate consciousness and indeed provide some of the necessary conditions for its existence. This is used to push the idea that the human “phenomenon” emerged from interactions between sophisticated, organized animals and the external environment after a special phase of “bicameral society” in which most humans were not even self-aware.
Jaynes’s historical analysis touches on many interesting ideas, and provides enough evidence to demand a serious consideration, but its most obvious shortcoming is the manner in which it skips from an initial, abstract consideration of the separation between behavior and consciousness, to a discussion of Gilgamesh and the Iliad. We pick up the story of mankind there, and nothing is said of the millions of years of evolution leading to that point. Any complete theory of intelligence has to account for canine and primate societies as well as early human ones, and Jaynes’s bold assertions leave the reader wondering if there are any self-aware apes leading their mindless troops through the jungle.
In the framework of analog confabulation, we can ignore some of these hairier philosophical challenges for the moment, as the bicameral mind simply bears striking similarities to one intuitive model of a general pre-conscious condition. When a stimulus enters the kitty cat, it responds immediately and predictably. This is the behavior of a system that is not considerably affected by feedback. It can be characterized as involving a sort of linear path from the senses into the cortex, with one or two “bounces” against the cortex and then back out through the muscles as a reaction. It’s really quick and works wonderfully for climbing and hunting, but it means that the cat will never sit down and invent a mousetrap.
Self-aware creatures, on the other hand, behave as if there is significant feedback, at least while introspecting, and their brains might be characterized as having a great number of “loops” in the neural pathways. It means that the resonances theorized by analog confabulation can be extremely sophisticated, but naturally sophisticated resonating structures would have to develop before any of that could happen. The critical threshold must obviously involve enough complexity to process a vocabulary of a certain size, but it could include communication of any kind, using any of the senses.
The question of when or whether bicameral human societies existed is unaffected by any of this, but at the same time that possibility cannot be ruled out. It might even be valid to say that, for example, dogs have “bicameral minds” like Jaynes claims ancient humans did, only that their vocabulary is limited and not fully understood by us. Much of it could be roughly translated into simple, impulsive ideas like “I’m hungry!” or “come play!” or “squirrel!” like the dogs in Up, but a dog could never say “I’m thinking so therefore I exist!” in the same manner. Most dogs have not discovered that their brains are the source of their own ideas, and even if they did they would not have any good word for “think.”
So what solid logic supports this theory in the end?
- Wernicke’s area and Broca’s area are two topologically complex parts of the brain that are active in understanding and forming words, respectively. A high-bandwidth neural loop connects them.
- A large body of circumstantial evidence, some of which will be included here:
- Uniquely “human” behaviors like laughter, dancing, singing, and aesthetic choices all can be said to have a certain “rhythmic” component that describes the behavior intuitively and at a low level. Each behavior would then involve periodic signals, by definition.
- More specifically, if laughter really does betray some “inner” resonance that happens involuntarily when a human encounters the right kind of new idea, that phenomenon suddenly makes a whole lot more sense in an evolutionary context.
- Meditation reveals how new ideas arrive as unexpected, sudden, and sharp feedback loops, which often take some time to deconstruct and translate into the appropriate words, but are nevertheless very difficult to erase or forget. That is of course, unless an idea arrives in the middle of the night, in which case the noise of REM sleep can overwrite anything that is not written down.
- The fact that words have to “happen” to a person several times before they are useful means that each has a periodicity, even if it is irregular. And some words like “day” and “night” occur with regular periodicity.
- Music has profound effects on the mind. Duh.
- Light also affects mood, and too much of the wrong spectrum can make you SAD.
I’ll try to keep this list updated as I remember more circumstantial evidence that should be written down in a notebook already, but it seems like there would be a lot. In any case, if you *ahem* have thoughts about this theory, please do share them. Nobody really knows the answer to any of these questions yet so all ideas are appreciated.
Random Lists 2-12
February 23, 2012
Currently working on more detailed science writing, so here are some random lists in the meantime.
Stations I Wish Were On Pandora:
- Ninja Tune Radio
- Dark Side of the Moon Radio
- Internet Classics Radio
Tips for Cheap and Professional Web Design
- Dark Colors for Buttons, White or Off-White Behind Blocks of Text
- Subtle Gradients! Don’t Try to Simulate Glass!
- Buy, or Find a Good Font
Sound Tools For Your Podcast or Video
- Compressor, for Old People With Bad Hearing
- Equalizer, to Boost Bass and Remove Mud and/or Hiss
- Reverb, If You Are Sitting At Your Desk
- A Decent Microphone
World War
January 24, 2012
What will the next big war be called? Everyone thinks “World War 3″ but then remembers that there are these other businesses like Iraq, Kosovo, Iraq, Iran, Vietnam, and so on, which were always correctly referred to as “wars” but never really celebrated like the “big ones” in the early part of the 20th century. Some people will say that these proxy fights were all part of a larger “cold” war (implying less murder?) then some confusing, ineffective wars on “drugs”, “terror”, “pollution“, and whatever other nebulous concepts our leaders have nominated for obliteration since the Soviets fell.
The thing is, while celebrities have been throwing those useless words at each other, World War 3 has now reached a healthy simmer, and a lot of ordinary people still don’t have a single clue. I think it is because they think of videogame or TV violence when they think of war (depending on age), and so they usually imagine war as a series of headshots. This is unfortunately a grievous tactical error.
War cannot be modeled as a statistical murder competition anymore. In an era where every battle is a global event, modern war is clearly and unambiguously a struggle of ideas. This is a trivial perspective on a religious war, but the tricky thing is that every modern war is a religious war! If your religion is to exploit and sell your ideas for maximum profit and power, you probably won’t agree with this philosophy, but then again you’re also probably an arrogant fool. A good soldier has to believe in what she is doing if there is to be any hope of rising to the ridiculous challenges that might occur.
At the same time, the “World War” label basically requires this fight to be a lot more significant than any ancient tribal land dispute could be, so the only place where it is really possible these days is the Internet. Look at this new e-activism stuff, and the hack attacks for political reasons, and everything that is really going on in China. Governments directly finance this! It’s called war! If you’re looking for a convenient anecdote, there was some Saudi hacker group that leaked a bunch of Israeli credit card details and personal info, because, you know, Israel!
Sooner or later people are going to have to wake up and realize that, yep, everyone is fighting each other using the Internet. Internet itself is the best weapon in “America”‘s arsenal, and if you don’t realize that by now you don’t really understand history or computer science. Now would be a good time to read up on both, but suffice it to say any faction that relies on coercion or censorship cannot possibly withstand the awesome fury of five billion educated humans.
I’d just like to formally propose that we stop ignoring the larger picture here. World War is not nearly as traumatic as it used to be, but unfortunately it still has all of the potential to become that bad, and worse. Here are a few phrases I would use to outline the general idea:
- Optionally violent (and I mean EVERY option).
- Minimally constrained by geography.
- Often manifests as a “trade” dispute or a “political” revolution.
- Reliant on creative new technologies (even before Internet).
- Exclusively religious.
Maybe all of this means that the war can be justified with less difficulty, but clearly the safest path is not to take the violent options unless they are absolutely necessary. Even so, it would be easy to put too much faith in that outdated tactic, especially in the long term. Humans can be notoriously difficult to kill.
The better strategy would be to put more resources into what used to be called “psychological operations” but what might be more appropriately titled “missionary work.” I’d really like to imagine that Internet is already motivating and enabling people to raise their own armies. We’re still several years from fully-capable crowd-sourced aerospace engineering, but hopefully that potential is recognized. And technically speaking, supersonic planes are useless against terrorist forums recruiting via satellite. That is, of course, unless you can physically find the moderators, a task that is getting harder as fast as governments try to stamp out whichever freedoms get abused in the process.
We can’t possibly win this war by rejecting the freedoms that we have earned, even if those freedoms are starting to scare us. I’ll tell you something, I’m pretty damn scared of how much freedom I have sometimes, but that’s all part of the package. It’s everyone’s responsibility to be aware, as a “patriot” or a “good person” or whatever.
Variables
January 18, 2012
What is the most important thing that a programmer should do? The textbook answer, “comment everything”, only ensures a minimum viable reusability, especially when nonsense appears like:
//UTF-8 Kludge
or
//DON'T REMOVE!!!
causing unsuspecting developers to detour for what could be hours (are office distractions NP-complete?) and jeopardizing the sanity of everyone involved. Don’t get me wrong, great comments are indispensable works of art, but to be able to write them, you must first write a great program.
Then what is a great program? It depends on who you ask. Rails users might argue that a great program says everything it needs to say exactly once in unreasonably concise Ruby, and includes modular unit tests for 100% of the code base. LISP enthusiasts might praise a program for its mind-boggling recursive structure, and its unreasonable efficiency. However, in both of these cases, and always for any novice programmer, the most important feature of a great program is its consistent and correct use of variables.
Put another way: a computer program’s codebase is unsustainable if its variable identifiers can’t be interpreted correctly by developers. This means that calling a variable “temp” or “theAccountNumber” is always a bad idea unless it is actually correct to think of that variable as “the temp variable”, or the only “account number” that that particular program (or section of the program) uses. We are at a point where nearly every bottleneck I encounter in everyday software development is between my mind and an unfamiliar block of code. If there is a chance of confusing anything else with whatever you’re naming, it’s the wrong name.
What is the right name? That’s another question with a multitude of answers. CamelCase with the basic, accurate name of a variable is a good place to start, meaning that if I were to create a variable to hold the text of some person’s additional info popup, it might be a good idea to start with one of the following:
InfoPopupText
PersonInfoPopupText
SarahInfoPopupText
depending on the context, i.e. what the program (or section) is supposed to do. Most developers I have met use the first letter of every variable to encode a bit of extra information, like if I decided to use lower case letters for an instance-level variable:
personInfoPopupText
or possibly prepend a special character for temporary variables:
_tempName
As with everything, the key is to use whatever makes the most sense to the people who need to work on it. If we are to sidetrack into a bit of philosophy, accurate naming is what makes all intelligent communication possible. The only thing that allows you to understand my word (“chicane”) is the fact that it has been used in public to refer to some persistent feature of the universe, and therefore anyone else can imagine what I imagine (or check Wikipedia) when I use it. This applies to all formal and mathematical language too: the only thing that is required to understand a given theorem is an accurate understanding of the words that it contains. Be careful, though: accurately understanding some of the words that mathematicians use is a lot harder than it sounds.
Are any non-programmers still paying attention? This part applies to you too. As the old 20th-century paradigm of “files, folders and windows” starts to look more and more passé, why not ditch that menacing behemoth that you call your “backup” and start organizing files by naming them correctly? (Spelling is important!) If you do that, just Gmail them all to yourself, and then they will be archived as reliably as Google is, forever. If you picked the right name for a file, you’ll know what to search for when you need it.