Saturday, January 31, 2015

Basic Communication

If we want to deeply understand how humans communicate, it might help to think some about how computers interact. But there are many varieties even with that. It would seem to be something along the lines of input, process, output. Yet realistically, the processing takes place with both the input and the output. We have to make sense of whatever is coming in, and then determine how to best present something in the way of an output.
In addition to input versus output, there's also an essential distinction to be drawn between public and private. For example, we might want to gather huge amounts of data by scraping many websites, and then disseminate widely to many distribution platforms. On the other hand we might have a specific target in mind in terms of either who we are trying to understand or instruct.
Finally, I'd like to mention the difference between what we might call 'small talk', being something very casual and light, or it might be something more serious and of grave concern. The best conversations, in my opinion, stimulate the imagination, and the involved parties experience mutual gain.
In the history of philosophy, this process is called the dialectic, yet often enough conversations devolve into debates, where either one or the other side is supposed to win or lose. In this case, we are using conversation as some kind of political tactic to gain the upper hand. But the logic is built from an assumption about the excluded middle. We find ourselves presented with a dynamic where either one side or the other of a divide is thought to be true and the other false, or at least more true or false than the other side.
In some kind of ideal world, it might turn out that people would take a side as a purely academic exercise, to see how the strength of the arguments hold up under close examination. But in the real world, and more practically, people are not likely to try to defend a position that has no merit whatsoever, so it is likely that the two sides are each partially right, the importance being that some concerns must be met in both directions.
So, I would like to propose that debate is not generally very helpful as such. It would be much more productive to begin with the assumption that both sides of a debate are at least partially right and to try to understand what is the grain of truth each side is defending.
The first step to a productive conversation is a matter of semantics. We have to stipulate definitions for the major terms we will be employing in order to ensure we're actually referring to the same things and not just talking past each other due to a simple misunderstanding.
When it comes to applying all of this to computer science, we should probably try to build up a fancy thesaurus of sorts. Maybe there already are such tools. It would be cool if such a thing was available in the form of a plugin. I'll have to look into that somewhere down the line. But I would think it would have to already exist, being that human language translator applications already exist and are improving all of the time.
At least up until very recently, any information you find on the Internet was put there by humans, and humans are fallible, and sometimes intentionally deceptive. It almost goes without saying that some people are better than others in terms of delivering reliable information. But it doesn't necessarily apply across the board; people develop specialized expertise in some areas. So we need to find a way to give extra weight when a source is talking about what they know a lot about without giving them the same weight in areas that are beyond the scope of their expertise.
There's a lot to think about when considering the topic of communication between people. And maybe someday our computers will serve the purpose of being a perfect conversational partner.

Monday, January 19, 2015

Communications Technologies

Sadly, I haven't been doing any real programming yet with my little project here. I have been spending my time collecting resources to making my task easier and more directed. I have been reflecting on where computer science fits into a typical human experience, and how it belongs to a broader curriculum of a well-rounded education.
I had originally thought that the purpose of computers was primarily to do math problems, and that it was only incidental that people started using the connected computer networks to engage in conversation across stations. Looking at the history of computer science, it is indeed in the math departments where it first made headway. But the first computer that came into being was a result of the need to break codes in WW2. So, while it is true that computers have applications in almost every human endeavor, I have decided to treat the primary purpose of computer science being that of communications. And it actually is the primary use to which it is put outside of specialty applications.
So I will continue to look in that direction, embedding computer science in of the history of communications technologies from the advent of the spoken word, to writing, to type, to moveable type, including radio and ham operators, morse code, television, etc.

Monday, January 12, 2015

Understanding the Internet of Things

A short 2012 Ted talk that asks the question, "What's the difference between embedded machines and pervasive machines?" And more: If http is a protocol for people, what will we use for things? How do we get our mentality right to keep the data free so it can be scalable? It's going to be the application developers that make it all possible. It involves many layers of technology that have to be orchestrated efficiently.