Friday, November 27, 2015

Technology Communities

I am thinking of computer science and related disciplines in terms of questions having to do with the sociology of knowledge. I do need to look into the work that has been done surrounding the communities which form around any given specialized knowledge, especially since specialties inevitably develop their own jargon that outsiders will fail to understand. The idea is that a natural communication boundary starts to form around those with insiders' understanding where outsiders will require some type of translator to gain access to the texts.
All technology specializations appear to be most distant to political corruption, but perhaps this is even more true for communications technologies. Of course communications was a side benefit for the initial users of computers. Computers were built to solve math problems and computer networks to share the resulting files. It was merely incidental that those original users embedded their own commentary in the midst of all of that. But now what is happening? The so-called social media is a major force for challenging the communications monopolies previously enjoyed by major publishers and media outlets. Why are they even calling this 'social media'? Because that name illuminates its contrast to Big Media.
If we turn our attention to Linux, those users heavily reference themselves as a community. Indeed one of the big draws to learning something about computer technology is the social component. We can learn about this interesting stuff that everyone uses but few understand while building relationships with some quality people. Such people don't tend to get too embroiled in useless debates. They do have a few political ideals, of course, that are basically intrinsic to the art form: freedom of speech, personal privacy, etc. But if you think about it, these ideals should be shared by everyone, even though they are sometimes overlooked for the sake of somebody's political agendas.

Friday, November 6, 2015

Refocusing my attentions

My interests in computer science have been neglected recently. I have found it difficult to compartmentalize all of my various interests. I am thinking that I need to narrow my focus in order to make more significant headway. I don't want to become one dimensional, but neither do I expect a scattershot approach will help much in developing desirable skill sets.
Some of my other interests include philosophy, religion, politics, cultural diversity, blah, blah, blah. There are many directions I can go within each of those fields, so what strategy will I employ to make my energies more effective? How can I develop some kind of general theme across all of the disciplines that spark my curiosity? Will I be able to find a common element that drives the lot of them? It's hard to say at this point.
In terms of my interest in computer science, I can start with the idea that History is always shaped by the dominant forms of technology of the day. 'Science' continues to evolve, of course, but the application of scientific knowledge is technology. And today's defining technology is computers. Calling it 'computer science' might be misleading, since I for one think of 'science' more as research, and I'm looking at computers more in terms of development, with building things with the knowledge acquired from science. The science itself is not nearly so interesting to me as what you can do with that knowledge.
Another thing I want to mention about what we're calling 'computer science' is that it is typically associated more with the software side than the hardware side. I'd like not to be so unbalanced as that. I recently bought a Raspberry Pi starter package from Make: magazine and a book introducing the Arduino. Neither of those systems seems to require extensive previous knowledge of STEM subjects, and the whole culture of the maker movement seems positively fun and creative.
I have in mind using meetup.com as a way to network with people who share such a common interest. I wouldn't mind using the site to start a book club for my other interests, as well, but that is beyond the scope of this blog. It would be great to get involved with local primary and secondary schools to do some kind of after school program that revolves around the concept of maker spaces. I'd think it would work to combine that kind of thing with an adult continuing education effort, too.
We'll have to see how all of this goes.

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.


Friday, December 12, 2014

Trying Koding

I've been looking around, mostly frustrated for not knowing which browser based IDE I should be using. I do believe cloud IDE's are the way of the future, but since I'm using mostly a Chromebook these days, I'm kind of forced into this option, especially since I don't really feel like modifying my OS to do a dual boot with Linux or something.
Many of the Cloud based IDE's seem either overly complicated or overly simplified. Some cost money, some don't have the language I want, there's always some little thing that keeps me from taking the plunge into signing up to try this or that solution. I just feel that there should be some kind of option for newbies that don't want to get so simple as to use the silly coding environments designed for kids. There should be an option for educated adults to begin their foray into the computing world.
I've finally decided just to go for it and sign up for a Koding account.
The first thing I notice, I can sign in with Github account, so fairly sure this means fully automated integration with a file sharing system. I really don't know how to use Github, either, so I'll have to be learning that as I go, too.
I'm going to be using Koding University (their name for documentation and guides, etc.), specifically the 'getting started with python' section. It's not like I have much experience with python, but you've got to start somewhere.
There's a glitch in the tutorial. It doesn't tell me where in the directory to save the 'hello.py' file. I'm just trying to do a 'hello world' app here, so it shouldn't be too hard to figure this out. The point of this exercise is not to learn how to program, we're just learning how to use the environment in which we will be working. It's the prerequisite to learning. If we can't get past this stage, there's nothing else we can do. So we push on.
I do like it that the execution is in a Linux terminal. I'm glad I have at least some familiarity with that. To note this should be important in the tutorial, though, the fact that we are using a Linux terminal.
Holy crap, it works! Okay. Good enough for now.

Tuesday, December 2, 2014

Human Machine Interface

Thinking about the success of windows software, and hardware becoming more wearable, the trend is pretty clear, we are integrating technology into our experience, even into our bodies. We'll be able to be anywhere in the world we need to be. Watching this Nova ScienceNow video helps to show augmented reality, telepresence, cybernetics is where we're going. It's not just science fiction. But what we believe to be possible is limited to what we believe human nature is and what we think the nature of reality is. What happens as we play around with this technology is we learn new things about ourselves and the world we inhabit. The end of the video is quite fascinating, as it is about using ourselves as the computer in a network. It's about seeing humans as information processors and putting them to more efficient use as part of a larger network.