Thursday, February 27, 2014

Arizona

The problem with the bill that Jan Brewer just vetoed wasn't its social significance or its impact on gay rights. It was the bill itself. It was a bad bill, and it would have been a bad law.

First and foremost, it was a law that asserted rights that already existed. We already have too many of those. We have the right to associate, or in this case not to associate with whomever we please. What the law gives, the law can take away. It was also a law that nominally intended, among other things, to protect a segment of citizens against litigation. That kind of law is like lipstick on a pig.

The Jim Crow laws codified racism. They required it. The Arizona law would codify discrimination against gay people. It doesn't matter that it didn't require it. Were gay folk going to insist on being served before the law? Some few would, but the vast majority would not. It is basic human nature to avoid places where we're not wanted. Were most of them going to insist after the law? Not really. Same reason. Would some people test the law? Of course, and not just truly gay people. The law would have accomplished nothing but to unnecessarily radicalize the whole issue.

The stated purpose of the bill was to protect a business owner's "sincerely held religious convictions." Really bad idea. It implies that one deeply held conviction needs more protection than another. It also implies that one person's interpretation of their religion has more merit than another's. There are plenty of Gay Christians. Engaging the law to interpret, and worse, to enforce religious convictions is dangerous. It leads to exactly the reason this country was founded, and it is an explicit violation of the first amendment.

Without questioning those interpretations or convictions, there is still the question of how the business owners are supposed to know that these people are gay. Would gay people be required to wear a sign or a special hat to alert the business owner that they are gay? That's the problem with vaguely worded bills like this one. My example is admittedly hyperbolic, but it isn't a stretch to imagine a business owner complaining that a gay man didn't identify himself so the business owner could legally discriminate against him. The law would be unenforceable, which, if for no other reason, makes it a bad law.

It's silly to assume that very many businesses would take advantage of the law. Gay folk tend to be more affluent consumers, and business owners know that. Alienating a productive demographic is a poor business decision. Also, it is an unarguable fact that anyone who starts randomly throwing patrons out because he thinks they're gay is not going to be in business long. Zealous crazies are a definite minority.

Which all leads us to the actual purpose and motivation for the bill. Political chest-thumping. A political fringe has a significant presence in the Arizona legislature. The fringe presence plays to a fringe constituency. The fringe grabbed national attention that they couldn't possibly hope to gain in other ways. This is evidenced by the fact that large numbers of businesses in Arizona, as well as mainstream politicians urged Governor Brewer to veto the bill. It would have furthered the establishment of Arizona as a state full of right-wing crazies that the immigration bill already started. It would have cost the state millions in business and revenue. It's not even a case of political expediency overwhelming principle. It would have caused real damage to real people. We already live in a country where the unintended consequences of political jostling cause more harm than is necessary.

It wasn't an issue of gay rights. It could very well have applied to people who color their hair purple. It was a huge step down the slippery slope of religion mixed with government, and it was just plain bad government.

Sunday, February 23, 2014

We're Not Born Racist.

When I was in the fifth grade, my best friend was Jeffrey Vaden. He lived in the next house over from our neighbor. His father was in the Air Force. We played together. We stayed overnight at each other's houses. We ate together. We hung out at school together as much as we could, since he was in a different class.

Our next door neighbor had moved out, and the house was vacant for several months. I was sitting out on the sidewalk doing whatever eleven-year-olds do on a Saturday. An older couple came out of the vacant house, and the man came down the sidewalk toward me and stopped. I will never forget this. He said, "Son, can you tell me if there are coloreds living in that house?" He waved in the general direction of Jeffrey's house. I had no idea what he was talking about. He seemed very grumpy. I told him I didn't know, meaning I didn't know what he was talking about. He walked off in a huff. I asked my mother about it later, and she explained. I remember feeling bad about it. The older couple didn't buy the house. I was glad. It was my first experience with racism.

During the Summer after sixth grade, Jeffrey's dad got new orders and they moved away. Like all kids, I felt bad about it, but there wasn't anything I could do about it.

When I was in the eighth grade, the politicians decided that we needed busing and integration. The junior high school I went to, Hill Junior High, was lilly white, mostly Jewish kids. Half of the kids who had gone there in the seventh grade went to a junior high school across town, and half of the kids from that school came to Hill. As you can imagine, parents and kids from neither school were very happy about it. Forced busing might just have been one of the dumbest sociology experiments ever.

I made friends with one of the kids from the other school. His name was also Jeffrey. We had several classes together, and we hung out at lunch time. Obviously, we didn't get to hang out after school. When I say that the other school was across town, I mean it was way across town. I started noticing that some of the other kids started giving him trouble. I didn't know what it was about. I could tell it bothered him a lot. Then, one day we were hanging around before class and he started walking toward a group of kids from his neighborhood. I followed, thinking we were just going to hang out with his friends. As we got closer, I could see his friends giving him the stink eye. Suddenly he turned and accused me of spitting on him and started punching me in the chest. I retreated. He resumed walking over to his friends. Several of them patted him on the back. He and I never spoke again. It was my second experience with racism.

We're not born hating other people because of their skin color. I don't think I even noticed Jeffrey's brown skin until the incident with the old man. We seem to thrive on coming up with dumb reasons to hate one another.

We need a parent to slap the shit out of us and tell us to knock it off.


Wednesday, February 12, 2014

Computational Mind, Conclusion.

Ten years after ENIAC, the discipline of artificial intelligence was born. At the time, computer scientists thought we could create a computational intelligence. Computers were doing things that no one had imagined before. John von Neumann (who I am convinced was an alien) had introduced the theory of self-sustaining automata a few years before. Alan Turing had developed the Turing Test for cognitive systems. Neural network theory had been around since 1943. Everything was in place.

So what happened?

A chasm opened up between understanding the brain and understanding the mind. The more the AI scientists discovered, the wider and deeper it got. We could do a lot of the brain's cognitive functions, but that's just mechanics. We couldn't create a computational mind. In parallel, neuroscience was discovering the same thing, that brain is different than mind. Marvin Minsky, the godfather of artificial intelligence expressed doubts about whether the human brain was able to comprehend itself.

Computation means applying a set of rules to a problem to solve it. In principle, discovering the rules that apply to the human mind is no more difficult to do without a computer than with one. The computer relieves the tedium of trial and error and speeds the process, but, because the computer's rule system is built by us, it will not reach a more surprising conclusion. There are two major issues that will have to be addressed: learning and emotion.

We learn every single instant of every single day. It was colder than we expected. That song sounds different in another room. The curry was spicier than we wanted it to be. It wasn't spicy enough. And, every little quanta of new information changes our cognition. That color, smell, and texture of curry will taste a certain way. Until it doesn't. We can simulate learning, but we can't create a machine that actually learns. Or, at least not in any meaningful way. One AI scientist put it that a machine intelligence needs to be able to learn from testimony. That is, it needs to be able to read a book and learn from it.

Emotion colors everything we experience and everything we do. We are not, nor will we ever be completely logical and rational beings. We're depressed, so the food doesn't taste as good, the colors aren't as vibrant, the smells are not as pungent. We're happy and everything is better. Emotion affects our learning as well. Our mood enhances or detracts from what we learn of our surroundings as well. If we are depressed or angry or any one of a litany of negative emotions, we are less likely to notice our environment, or we are more likely to focus on just one or two elements of it. An emotionless machine will never successfully interact with humans over the long term. It may far exceed our cognitive abilities, but it will never understand us or the world as we see it.

Furthermore, learning and emotions are not binary. This represents a serious problem for machines that are based on ones and zeroes, on or off, yes or no. There needs to be a third state. Yes, no, or maybe. Actually, there need to be a number of intermediate states between yes and no. Consider the well used paradoxical question, when did you stop beating your wife. There is no binary state. Any binary answer is wrong if you never beat your wife. You need the third state, I never beat my wife, or even a fourth state, why are you asking me that question. And, the latter illustrates a fundamental problem with a binary intelligence. Questioning the question. A machine that always wants to know why you asked the question would not be useful and would be very frustrating. A learning machine would need to know when to stop questioning the question.

It would be even more frustrating if the machine always gets stuck on a paradox. Ask me what would happen if I went back in time and killed my grandfather. The paradox is that I would have never existed to go back and kill him. We might ponder it for a minute or two and move on. The mind balks, so we just go around it. A rule-based, computational mind would get stuck if there was no escape mechanism. If we build the escape, then we risk the machine's ability to recognize the paradox in the first place. It would need to learn to recognize the paradox and go around it.

Most of you reading this have seen, or at least are aware of a movie called The Terminator. In it, a highly interconnected network called Skynet was built by the military. It used the idle time of thousands of computers to create a virtual CPU. It's an interesting idea, and not all that unlikely in principle. SETI (Search for Extraterestrial Intelligence) runs a program that allows Internet participants to donate their spare CPU time to a huge star mapping effort. There is also a similar protein folding effort hosted by Stanford University. When Skynet became self-aware, it evaluated humanity, declared us vermin, and went about the business of exterminating us. This is not unlikely either. It is a legitimate concern expressed by some of the artificial intelligence community. A computational mind could potentially be a superior being, and there is no guarantee that its intentions would be completely benevolent. There are ethical concerns as well. What are the ethical consequences of flipping the power switch on a machine intelligence? Mind and body are symbiotic. Killing a human being means killing its body as well as its mind. When the body is irreparably damaged, but the mind continues to function, we don't flip the switch. The ethical dilemma already exists. We certainly don't euthanize quadriplegics.

Fortunately for us, we don't have to face the nightmares of Skynet or the ethical dilemmas of flipping the switch on a living machine mind. Current AI science says that the best hope for a fully functional computational mind will be to simulate the full neuronal network of the brain. That is, neurons and synapses. That is an incredibly daunting task. Last year, the Japanese K computer was used to simulate a small neuronal network. It used over 82,000 high powered processors to simulate 1.73 billion nerve cells connected to 10.4 trillion synapses. That's about 1% of the average human brain. It took the computer 40 minutes to simulate 1 second of biological activity. The extrapolation of CPUs and time is not linear. To double the number of neurons and synapses, it would take much more than double the number of CPUs and time. Simulating one day of biological activity for 20% of a single human's brain capacity would consume all of the processing power on the planet for years.

The androids depicted in science fiction that look like regular humans are not likely any time soon. While the carriage of the robot could be largely humanoid, the brain housing would have to be the size of a small aircraft hangar. Our current day android would also need to haul a couple of tractor trailers around for the 10 megawatts of power it would consume (about 10,000 suburban homes) and the air conditioning to cool it. Moore's law says the number of transistors on an integrate circuit roughly doubles every two years. (It's not really a law, it's more of an observation.) It would take about a century to reduce the K to the size of a human skull and it would still only encompass 1% of a normal brain's topography.

But we can still dream, can't we? And don't dreams often precede facts in science?

Saturday, February 8, 2014

Computational Mind, Part 4

Note: This series of posts isn't meant to be a technical computers for dummies guide. Quite the opposite. The conclusion will be very non-technical. I just need to get a few details out of the way first.

From Merriam-Webster

cog·ni·tion

 noun \käg-ˈni-shən\
: conscious mental activities : the activities of thinking, understanding, learning, and remembering

From the MIT Cognitive Machines lab:

Cognitive Machines aims to: 

(1) Create autonomous systems including interactive physical robots and synthetic characters in virtual worlds that learn to communicate in human-like ways; 
(2) Understand how children learn to communicate through longitudinal in vivo observation and analysis; 
(3) Develop tools for visualizing, searching, and analyzing large corpora (e.g., video) using task-dependent semantic models.

The idea of thinking machines has been around for thousands of years. It can be argued that the invention of computers was driven, in large part, by the idea of thinking machines.



Almost as soon as we figured out the basics of making computational machines, we turned to the business of making cognitive machines. The science of cognitive machines is sometimes called artificial intelligence. The field of artificial intelligence was founded in 1956 by a group of cognitive scientists at Dartmouth University. They began with the newly developing field of computer science. Much of their early work was based on Alan Turing's theories of computation and the Turing machine.

As the mechanics of creating fast, powerful, inexpensive, and widely available computers progressed, discoveries in the fields of human cognition and neuroscience began to reveal a vast gap between the workings of a modern computer and those of the human brain. Turing's theory of computation says, among other things, that a binary system, ones and zeroes, can solve any conceivable mathematical operation. All computers are built around that theory. Computer memory of all types is built to store ones and zeroes. However, as neuroscience has discovered, human memory is not binary.

One huge difference between computers and brains is determinism, and here is where cognitive theory and computer science start to tread on ground held by philosophy. A computer is completely deterministic. That is, for the conditions of its operation, i.e. its program and its inputs, there is only one possible outcome. Normally functioning computers don't make mistakes. Ever. Normally functioning people who write computer programs make mistakes all the time. Human cognition is completely non-deterministic. When you and I look at a photograph, we can come to completely different, perfectly valid conclusions about it. When you and I are given a set of requirements, we can produce different, perfectly valid programs to fulfill them. There is a class of computer program that can generate other computer programs. Ten computers running the same program will always produce the same code. A computer program is basically a list of things for the computer's processor to do. At its very most basic, the computer program tells the ones when to be ones, and the zeroes when to be zeroes. It will always do that the same way, every time.

Understanding and learning are major facets of cognition. A computer's understanding of its environment is completely deterministic. For all of its inputs at a given time, there is only one possible outcome. However, a computer is capable of simulating a non-deterministic understanding. If the set of inputs is sufficiently large, a deterministic program can appear to come to a non-deterministic outcome. When a computer program is written in a modern, high level language, the programmer uses letters and numbers and symbols arranged in such a way that it is (relatively) easy for other programmers to understand. However, anything other than lists of ones and zeroes are not immediately understandable by the computer. The computer requires either an interpreter or a compiler to transform the human readable program into something it understands. Because the number of possibilities in the grammar of the language, the computer uses a deterministic program that appears to come to a non-deterministic conclusion.

Since the beginning, designers and builders have said (tongue firmly in cheek) that a computer learns. They say that it has to learn to run the program it was given. The trouble is, it has to learn the same program every time it runs it. In human behavior, that is colloquially known as being an idiot. While human learning is far from perfect, computer learning is nonexistent. However, computers can simulate learning. Here is a straightforward example. One of the scourges of the computing era is junk email, or spam. All email programs now have spam filters that throw the unwanted email into a junk folder. These spam filters are adaptive. That is, they "learn" what junk mail looks like so they can separate the wheat from the chaff. What actually happens is that they start with a basic set of rules, like looking for the word, Viagra in the subject line. Over time, they add to those rules as they experience the various forms of incoming spam, like spelling Viagra with a "1" instead of an "i". So, you might ask, what is the difference between that behavior and actual learning. There is more to learning than just acquiring new information. Learning allows us to combine information we already have in myriad different ways to create new information. Computer learning is a close approximation to human learning, but in the end, it is not the same because it is still deterministic.

In the 1940s a concept known as neural networks was developed. The neural network is an attempt to simulate the working of the nervous systems of animals, including humans. Neural networks leave the realm of binary computation behind. The network consists of a set of input nodes, or neurons, that are applied to a set of internal neurons that contain various heuristic (rule based) weighting algorithms to apply the result to a third set of neurons, the output. Over time, the weighting algorithm is modified based on not only the input, but the output. In its time, the neural network was the closest thing to actual machine learning.

Artificial intelligence began as a theoretical exercise, but like everything else in computing, commercial demands have brought it out of the lab. The fields of robotics and pattern recognition have advanced artificial intelligence farther in the last ten years than in the previous forty. If you use Facebook, you have experienced a form of artificial intelligence. When you upload a picture containing a group of people, Facebook will find their faces and highlight them, asking if you want to tag them. That is actually a pretty sophisticated piece of software. The speed of your computer makes it appear to happen almost instantly. The massive computing power available these days pushes computers to the point that they are almost as fast as the human brain.

That's right. Almost. The human brain is capable of processing millions of simultaneously incoming events nearly instantaneously. The human body is an immensely complex system. The simple act of seeing the baseball heading for you and bringing millions of muscle and connective tissue cells to bear to bring the glove up to catch it is something the most advanced robotic systems can attempt only under controlled conditions. There will come a day, though, that a computer can simulate human thought, simply because of sheer computing power, It will be ugly and unsophisticated, not even approaching the perfection of human thought, but it might be close enough.

Next up: The computational universe.

Computational Mind, Part 3

Note: This series of posts isn't meant to be a technical computers for dummies guide. Quite the opposite. The conclusion will be very non-technical. I just need to get a few details out of the way first.

This is a picture of The ENIAC.




ENIAC stands for Electronic Numerical Integrator and Computer. It was the first fully electronic computer. It was built in 1946 to calculate artillery firing tables for the Army. It had over 17,000 vacuum tubes and it weighed 27 tons. It took 36 vacuum tubes to represent one digit in a number. After the system had been optimized, vacuum tubes failed an average of once every two days and were generally replaced within 15 minutes. A lot of starting over went on. It was advertised that ENIAC could do in two hours what it took engineers two years to do with pencil and paper. I guess it depends on the problem, but that sounds a little far-fetched to me. In any case, a simple pocket calculator can do more work in a fraction of a second than ENIAC could do in a day.

This is a picture of an IBM System 360, circa 1965.


It was built with a combination of transistors and integrated circuits. It had 1/8000th as much memory as your 8GB iPhone. It could do about 35,000 mathematical operations in one second. Your laptop, assuming it was built in the last five years, can do several billion in a second. Recent high end processors can do several trillion. It cost over a million dollars to buy a System 360.

In the late 1960s, people began to talk about having computers in the home. At that point, it verged on science fiction. Obviously, it was beyond the reach of the common man to have something that cost over a million dollars and was the size of a Volkswagen beetle in his living room. The closest anyone could come was buying time from the owner of the computer. It was called time sharing, not to be confused with its despicable namesake. You had to use one of these to connect to it.


And one of these to talk to it.


Still not very practical for Joe Sixpack, and time on a computer was expensive. Home computers would have to stay in the realm of imagination for a while to come.

In 1971, a California semiconductor startup company called Intel introduced the first microprocessor. The processor, sometimes called the CPU, or Central Processing Unit, is the computer's "brain." It does all of the mathematical operations that make a computer compute. The ENIAC had one. The IBM System 360 had one. In the ENIAC, it took up most of a room. In the System 360, it was the size of a small refrigerator. Intel's first microprocessor was about the size of a quarter.


Granted, the use of a computer built with one or two of these was very limited, but in 1972, Intel introduced the 8008 microprocessor, which was a fully functional 8 bit processor. Add some memory and a way to get in and out of it, and you had a pretty decent little computer. It still wasn't as fast as a System 360, but it cost a minuscule fraction of its bigger cousin. It also consumed a minuscule fraction of the power. About the same amount of power as all of the light bulbs in your house combined.

Now, you could build a fully functional computer that took up about as much space as your microwave. The idea of having a computer in your house just left the realm of science fiction and entered the realm of "real soon now." Several other venerable electronics companies jumped in to the world of microprocessors with both feet.

Backing up a bit, there were desktop computers around before the advent of the microprocessor, but they were expensive and not very functional. The actual home computer had to wait for the microprocessor.

In 1977, Commodore began selling its PET personal computers, the first "home" computer.


Very shortly after that, a company that started in the basement of one of the partners' grandmother introduced the Apple II. Bringing up the rear, IBM introduced its PC, or personal computer. For a couple thousand dollars, you could have a fully functioning, reasonably powerful computer in your home. By the way, that's almost $8,000 in 2014 dollars.

Fast forward to today, and the landscape is very, very different. First, Intel owns all but a fraction of the commercial microprocessor market. Second, the company that created the system that made the IBM PCs go, Microsoft, owns the vast majority of the home computer software market. Intel makes this, the Xeon processor.


It's about half the size of a credit card. It has more processing power than a million ENIACS and several tens of thousands of IBM System 360s. Hundreds of these are combined into supercomputers that have processing power completely outside the realm of imagination of ENIAC's creators. Supercomputers that can solve complex problems in under a second that would have taken the IBM System 360 hours, days, or even weeks to solve. Processors like these solve engineering problems like flying to Mars in hours. Humanity can "think" faster than it has ever been able to.

Except that we can't, really.

Up next: Artificial intelligence.

Computational mind, Part 2

Note: This series of posts isn't meant to be a technical computers for dummies guide. Quite the opposite. The conclusion will be very non-technical. I just need to get a few details out of the way first.

The Internet has been around, in one flavor or another, for over 40 years. There are two groups of people with respect to that knowledge. The first group, recent immigrants to the net, aren't surprised at all, since they just assumed that it had been around forever. The second group, people who grew up with desktop and laptop computers is the 1990s and 2000s, are very surprised. They thought that the Internet had been raised with the home computer. In some ways it was, though it was born well before them.

The Internet's daddy was called ARPANet. ARPA stands for the Advanced Research Projects Administration. It later became DARPA, with the D standing for Defense. Yep, the Internet was invented by the government. The Department of Defense, no less. Al Gore made himself the butt of many jokes when he claimed to have invented the Internet. Ol' Al was still at Harvard when the Internet was invented. The NSA probably figures that since the Internet was invented by the government, they don't have to feel so bad about using it for their nefarious ends. I doubt they would feel bad about it in any case.

ARPANet woke up in 1969. It was the world's first packet switched network. Before that, everything was circuit switched. That distinction has survived all the way to your cell phone, by the way. Circuit switching is the way your land line telephone worked. You picked up the receiver and dialed some digits. The wire from your house went to a place that had a bunch of switches in it that connected your wire to the wire going in to the house belonging to the person you called. Effectively, there was one continuous piece of wire between you and whoever you called. Kind of like the old idea of two tin cans connected by a piece of string. Barring eavesdropping, it was just you and whoever you called on the line. In packet switching, a lot of houses could be connected together via something called a router. It was originally called an Interface Message Processor, or IMP, but we'll stick with router. The information you want to send is bundled up into little packets that have an address on them and the router sends them where they need to go. So you have a wire to the router, but only the router has a wire to everywhere else. Think of it as a network traffic cop. When ARPANet woke up, it had four routers. The Internet today as tens of millions of routers.

In networking there is a term, protocol, that is widely used for a number of purposes. Just like in diplomacy for humans, a network protocol lets computers agree on a way to talk to each other. There are hundreds of protocols in use today, but we're just interested in Internet Protocols, or IP. If you watch any cop shows lately, they talk about tracking bad guys down by using their IP address. It's a load of crap, for the most part, but it is based on the fact that every IP packet has an address on it so the routers know where to send it. Because the address follows a very specific Internet format, it is called an IP address. The first Internet protocol was called the Transfer Control Protocol, or TCP. To associate it specifically with the Internet, it is usually referred to as TCP/IP. TCP is used because most of the information you want to send won't fit in one packet. There can be a huge number of routers connected in different ways, so all of the broken up packets containing your information can get to you via different routes, and they may not arrive in order. TCP provides a way to number your packets so that the computer on the receiving end can put them back together in the right way, kind of like a jigsaw puzzle. TCP allowed for a large network of interconnected computers, in other words, the Internet.

There is a whole bunch of other technical stuff, like collision detection, token passing, OSI layers, and so on, but they aren't important for the point of these posts. Plus, this has gotten pretty deep already. You'll just have to trust me when I say all of this will be important later.

The actual Internet woke up in 1982. At first, it was just used to interconnect universities and government agencies. It was called NSFNet, after the National Science Foundation, which funded the interconnected locations. Shortly after that, commercial providers, called ISPs, started plugging into the network. In less than five years, the Internet was world wide. At first, the only way that information could be passed was via programs like Gopher, Archie, and Veronica. I told you computer geeks are weird. The biggest repository of information was something called Usenet (use net). It was essentially a big electronic bulletin board. People could leave messages on it for other people, and other people could respond with messages for other people, and so on. A conversation of sorts could be carried on. Facebook is a direct descendant of Usenet. Today, the Usenet group, alt.binaries contains the vast majority of the information on Usenet. All of its subgroups contain things like computer programs, music, and, of course, porn. Most of the major places that host Usenet still have everything that was posted there in the last ten years, at least. There is some information on Usenet that goes back to the beginning, 30 or more years ago.

In 1989, a guy named Tim Berners-Lee came up with the idea of creating a large, heavily interconnected network, a web, using something called hyperlinking. Think of a spider web. Hyperlinking is a way for various pieces of information to be linked to parts of other information. When you "click on a link," you are using hyperlinking. The link contains an address for another piece of information. Thus was born the World Wide Web. That's what the www in web page addresses means. The idea caught fire, and within a few years, it was everywhere. Since there were no limitations on what could be hyperlinked, the first few years of the web were a struggle. There was a lot of crap out there. And I do mean crap. Web pages were nothing like they are today. Anybody could build a web page, and unfortunately a lot of people did.

This is a diagram of Wikipedia's view of a small part of the web.


The World Wide Web very quickly became a monstrous maze of information. Very early on, directories were  built, but the web was growing too fast to keep up with it. The immediate product of this was to write programs that did exactly what a spider does on a web. They were called web crawlers. Because of the nature of hyperlinking, a web page was usually connected to another web page which was usually connected to yet another web page. The crawler simply follows the hyperlinks and makes a note of each page it encounters. The information is put into a huge database. Another program, called a search engine, uses the web crawler database to find things on the web. The very first large scale search engine was built by the Digital Equipment Corporation (DEC). It was called Altavista. The web page for it is still around, but it sends you to Yahoo. Yahoo was the first commercial search engine. Google is now the largest search engine. Here's the important fact to remember. Google's thousands of web crawlers, which run 24 hours a day, seven days a week, have only indexed part of the web, most estimates put it at 70%. With a little under 2 billion pages indexed, that means that over 300 million pages are off in dark, dusty corners of the Internet that no one knows about. 300 million.

Today, most people don't even use the term, World Wide Web. It's just the Internet. They aren't aware that all of the things that were on the Internet before the World Wide Web are still there. Most people don't even use a conventional email program like Thunderbird or (trying not to choke on this) Outlook. Most people these days use things like Yahoo, Hotmail, or Google Mail. They get there through pages on the World Wide Web. Very few of the users of the Internet conceive of its size and complexity. Those of us who were around in the beginning can't really conceive of it. We know it's huge, but the human brain balks at the actual size of it. And it's still growing. More and more smartphones and pads are connected every day. The use of home control systems is growing. We're starting to connect our cars. It was a long road from ARPANet to Internet, and it was covered in a very short time.

Now here is an important point to remember. When something is put on the internet, for the overwhelming majority of cases, it is there forever. Teenage girls learn this to their own chagrin. Those racy pictures you sent to your boyfriend will have a life of their own. Something you put on the Internet will end up on someone else's computer. It will be there until the owner deletes it or the computer dies without a backup. Even if it disappears from all of the publicly available places, it can find its way back onto the net from all of the computers that had it before it disappeared. Google keeps archive copies of web pages that don't have homes any more. There are millions of pages that have been gone for years that are still archived on Google. I had another blog here on blogspot before Google bought it. When that happened, a bunch of blogs were deleted, mine included. However, I would bet real money that some or all of it is still out there somewhere.

There is no feat of engineering in human history that has ever been close to the Internet in size and complexity. It is ubiquitous. It connects hundreds of millions of people. Over the next 5 or 10 years, that number will be in the billions. And, it all comes down to the fact that you can sit in your living room in Topeka, Kansas and say hello to someone in Beijing, China in less time than it took you to type the word.

Up next: The microprocessor revolution.

Computational Mind, Part 1

Note: This series of posts isn't meant to be a technical computers for dummies guide. Quite the opposite. The conclusion will be very non-technical. I just need to get a few details out of the way first.

One of the very first serious things I did with computers was to learn to build and fix them. Makes sense. It was 1974, and front line electronics were still a mish-mash of discrete and integrated technologies. In an effort to try not to geek out completely on this topic, and also to try not to sound condescending, I'll explain that. Discrete electronics consists of circuit boards full of little components, like resistors, capacitors, and transistors; that you can hold in your hand. Like this:




Integrated circuit technology consists of all of the pieces and parts you see above, miniaturized and bundled up into a single piece. Like this:
The computer you are reading this on is made up of dozens of chips like the one in the second picture, that contain millions of components like the ones in the first picture. The computer I first learned to build and repair was a couple dozen circuit boards like the first picture. No integrated circuits.

Most of you reading this have at least heard the terms, bits and bytes. A bit is something that can be expressed as a one or a zero. For the purposes of this discussion, a bit is a transistor. It's a switch. It's on or off, one or zero. Back in 1974, every computer had its own word size. A word was some number of bits strung together. Imagine an alphabet that only has two letters. Some used 11 bits, some used 28, and so on. When microprocessors showed up in the 70s, everyone standardized on 8 bits, which was called a byte. In a historical dead end, there were processors that dealt with 4 bits, which was called a nybble. Two nybbles to a byte. Get it? Computer geeks are weird. The computer I worked on used 6 bits. It was called a Bi-Tran 6. Every word in the Bi-Tran 6's vocabulary had six letters.

In order to use the bits, they need to be ordered in meaningful ways. You need a container for them, so each word was held in something called a register. Think of a cash register for bits. Each bit in its own pocket, held in the right order by the register drawer. That's not actually where the term comes from, but it makes for a good example. So, we have a string of bits making up a word that's held in a register. In comes the discrete circuit board. Each register in the Bi-Tran 6 was held on a circuit board that was a little bigger than a 3x5 card. Each circuit board had, among other things, 6 transistors. Switches. On or off. One or zero. Bits.

In order for the bits to have any long term meaning, they have to be somewhat permanent at some point. When you turn the power off to a register, the meaning of the bits and words disappears. Poof! If you weren't paying attention before you pulled the plug, it's gone forever. We need something that remembers the state of the bits after you turn off the power. Back in the 70s, we used little iron donuts called magnetic cores. The donuts were magnetized in one direction or the other, clockwise or counter clockwise to represent a one or a zero. The magnetic direction stayed with the donut after the power was turned off. It "remembers" the bits, leading to it and its brothers and sisters being called memory. We'll come back to that in subsequent posts. It's worth mentioning here that a board containing core memory that is about the size of a sheet of notebook paper will hold a few hundred words. The same size board containing solid state memory, what we use today, would hold a few trillion words. That will be important later, too.

Just having a bunch of ones and zeroes laying around doesn't do anyone any good. Stringing them together into words isn't much better. Saving the words together in a particular order represents information, but still isn't very useful. Every useful operation in a computer is mathematical. Each of the words represents a number. Mathematical operations on words result in other words. In the Bi-Tran 6, there was only one mathematical operation: addition. Two registers were filled with the bits from memory, added together and the result was put in another register, whose bits were stored in memory. The Bi-Tran 6 wasn't meant to be usefull for anything but training people to fix computers. Adding, subtracting, multiplying, and dividing words to create a new result is the useful work that a computer does. It processes the words to create information. The engine that does this is called a processor.

So, with all of that basis, I learned how to build and fix a computer. I found the bits - transistors - that weren't working and replaced them. I found the electronic path that didn't do the addition properly. I located the magnetic cores that weren't storing the bits right. I made it think again.

The processor that controls your microwave has more words and more capacity to operate on them than the Bi-Tran 6, and it is hundreds of times smaller. Computers the size of the Bi-Tran 6 using current technology are used to control factories, run banks, and fly spacecraft.

I tried to find a picture of the Bi-Tran 6, but there doesn't seem to be one floating around, much to my surprise. Think of a sewing machine case on steroids. If I find one later, I'll post it.

Next up, the Internet.

Thursday, February 6, 2014

Babble

I see a lot of bitching about English being the only language that should be spoken in public. Invariably it comes from right-wingers. I'm late to the party with this, so bear with me.

The most common complaint seems to be the "press one for English" scenario. I'm on the phone at least six or seven times a month with somebody's customer service. I have yet to hear an IVR say that to me. Most of the time there is a Spanish greeting that tells you to press five (for example) to continue in Spanish. The sound bite propaganda is compelling. Why should I have to make extra effort to use my native language in a country where English has been the native language since its birth? The trouble is, it's simply not true. The IVR that makes you put forth the extra effort is a myth.

More often lately, I'm hearing complaints about people using other languages than English when speaking on a cell phone or in private conversations in a public place. I would bet real money that these are the same people who complain about not being able to smoke in bars and restaurants. Is it that the person complaining is so nosy that a non-English conversation is frustrating? Even worse, is it the case that something about languages other than English causes this person emotional discomfort? Why are you involving yourself in this person's private communications? Mind you own business.

This kind of crap plays to the lowest common denominator of populism. It's not just the right, either. I saw some nonsense about the author of America The Beautiful being a lesbian who broke with the Republican party over xenophobia. Not quite, guys. Katherine Lee Bates was a self-described "free-spirited spinster." In 1913, lesbians weren't exactly flocking out of the closet, but it is stereotypical to label her a lesbian. The left hates stereotypes. You can just feel the irony. Also, she broke with the Republicans over their objections to the US joining the League of Nations. Their objections then are the same as their objections to the UN today: sovereignty. Nice try.

Of course, the propaganda sound bite above was in response to the negative reaction by many to America The Beautiful begin sung in seven different languages in a Coca-Cola Super Bowl ad. The people reacting negatively made idiots of themselves by arguing that the national anthem should only be sung in English. Oops. America The Beautiful is not the national anthem. I hope everyone reading this already knew that. Anyway, I think Ms. Bates would have been honored to have her poem translated into seven different languages.

Germany had a gastarbeiter, or "guest worker" program in the 1960s and 1970s. Foreigners could come to Germany to work, mostly menial labor. Part of the program included a requirement that they learn to speak hochdeustch, or high German within some period of time, three years I think, or they risked being deported. Some would point to that and say that we should have a similar requirement here. There's a problem with that. Forcing someone to learn a language doesn't mean that they will use it. The Chinese lady in line at WalMart will still speak Cantonese into her cell phone. IVRs will still allow for Spanish, even though the people using them can speak English.

The option to use another language in public doesn't force an English speaker to deal with that language. There is no "should" associated with Americans speaking English. My paternal ancestors came here from Alsace Lorraine speaking nothing but German. There is nothing to suggest that my great-great-grandfather ever spoke anything but German. Had he been ejected for his failure to speak English, I would not be here. Me, a middle class, white, English speaking American citizen, would probably never have been born.

America is not now, nor has it ever been a homogeneous culture speaking a single language. Deal with it.

Saturday, February 1, 2014

I Hate My Voice

I hate my voice. I really hate my voice. Most of the time, I don't even think about my voice. I know how it sounds in my head, and I know how it sounds to me when I speak. When I hear a recording of my voice, I hate it. I sound like someone else. I sound like a dullard. My speech is slower than I hear myself speak.

In my job, I am on a lot of conference calls. Lately, I feel like I'm whining a lot (oh look, I'm doing it now). I haven't heard my voice recorded lately, so I don't know whether I am or not. Since I've been aware of it, I've been making a conscious effort not to do it. Maybe I was, but maybe my voice actually sounded better. I've been told that I have a deep speaking voice. I don't hear it, but maybe I do

I don't like my written voice either. When I write these posts, I spend a lot of time going over them, changing this nuance here, that grammatical structure there. I try to be witty and wry. I try very hard to avoid being condescending. I fail miserably. When I go back and read my posts, I sound plodding and pedantic. I sound, well, condescending. The frustrating thing is that they sound fine while I'm writing them.

I've heard it said that some musicians never listen to their music after it has been produced, some actors never watch their movies, and some writers never read their books once they are in print. I think I know how they feel.