Saturday, November 30, 2013

Artificial Intelligence: The difference of seconds


Artificial intelligence, a solidified product in sci-fi; a growing fascination of reality, two points that need a bridge connecting them. At one end, it's like a complete man-made being capable of thought and learning -- growing. At the other end, we have things like chess solvers where even put on the most basic level beginners may have trouble beating the computer a.i. 
What is significant about someone who does not play chess getting beat by an a.i.? If we look more at how a.i.'s are built with a tree, then we can see how many possibilities the a.i. must consider even at the first level and how many a beginner will see, let alone consider. As the increase the difficulty of the computer a.i. it considers even more possibilities by going through more levels of the tree in the span of seconds, the difference between it being a beginner and masters. To simulate just how this would look on the chessboard itself, Thinking Machines 4 has a playable chess game while showing the a.i. considering its possibilities: here

We know that the a.i. for chess is not complete like that of checkers, so the extreme amount of possibilities shown in that simulation is not even finished shows just how powerful it is now and it's not even at the level writers have portrayed in the novels -- the bridge isn't complete yet.


Sunday, November 17, 2013

My CS History, Part 1: Creative Appeal

My first impression of Computer Science really had nothing to do with solving problems or what coding actually looks like. Really, it had nothing to do with logic, but the appeal of simply being capable of creation. I mean, other forms of art are capable of it too; however, something about computers was just more appealing or simply that everything that other forms of art can create can be translated into something digital. At the time I had thought it was a one way thing, but even when not so that fact makes the computer a sort of central hub. I suppose the seemingly endless possibilities it offered was most enticing.

But since I've been talking about art, the computer's biggest tool for that: Adobe Photoshop, right? And of course there are offshoots of it, but the point is that in one central place the computer can simulate the same effects as physically drawing or painting, etc. Also, even if it cannot do a certain thing that physically crafting can now, eventually it will. Whereas the reverse seems less likely, it is not particularly practical to find a way to recreate a custom effect on the computer in 'real' life.

Thursday, November 14, 2013

My CS History, Part 2: Reality Check

As I actually began to touch the surface of what Computer Science is having taken a few classes at San Jose State University, I realized that at the very least what they teach us in school is completely different how I imagined it to be. Programming wasn't the super mysterious and purely magical result giver, a lot of theory goes into it and design: data structures, hardware architectures, evolving coding languages. The languages I find to be most interesting as representations of how to essentially 'see' code in different ways. Since SJSU has a focus on Java, we 'see' pieces of code as interactions between objects or things. This, in some sense, affects data structures too. How code is represented and recognized often leads to how it can be organized. 
Essentially, school has filled in some of the mysteries of the 'black box' that computers were, along with it's 'black magic.' So while my history of Computer Science hasn't really been about Computer Science's history (like knowledge on what changed between generations of computer languages and why), this is a small snippet of what it has been for me. At the same time, I'd don't really mind; working with what is current and honing those skills mean more to me than potentially useful principles history may teach -- and I know myself well enough that studying history isn't an effective use of my own time as I don't approach it willingly.

Sunday, November 10, 2013

File Sharing: The Power Struggle.



File sharing, the simple act of downloading data (source). As a tool, simply revolutionary.


It gives people power and businesses are fighting to limit that power.
It makes sense too, in how our current society works; the economy and market puts value on products that people have put in work to create. I think the general idea of digital piracy would be taking the products that do require payment and distributing it freely for no payment. But, these products have fine prints as to what may be done with them and products are sometimes given away for free anyways -- what is the difference between that and piracy?

And why limit the ability to give?
The entertainment industry has been arguing that file sharing has put a huge wedge in their profits.
But, they wouldn't continue to huge these tools if they were not profiting from them. A study has shown that their profits remain healthy, which, really, should be expected (source) -- and people like their entertainment.
I think this goes beyond just money and legal rights. More of raw Power potential, and, yeah, sure money is power, but power is not just money. As we continue into this digital age, do we really expect people to use file sharing systems less? It'll be essential, a core to how society will run. Control over that is infinitely more powerful than have money.

Sunday, November 3, 2013

Data Structures: differentiation.



Data Structures are part of the core that we as computer scientists are to know.
But to what extent?
When dealing with simple logic and small problems any structure will essentially suffice, an array, arraylist, tree. So when we get to bigger and more complex problems, it's not so clear anymore; or rather realizing the better choices actually matters now. I wouldn't say for optimizing purpose exactly, in the sense that it's not about memorizing the costs of operations while it may be useful after overall functionality has been established, but that for organizational purposes it provides as a whole better efficiency. Optimizing is more like fixing up pieces of the code so that individual piece will run faster, but compared to the entire product it's negligible. Apparently, it by itself could mean the difference to setting yourself apart from others (source).

Hacking: Misconception

"1. To chop or cut something by hacking.
 2. Informal
           a. To write or refine computer programs skillfully 
           b. To use one's skll in computer programming to gain illegal or unauthorized access to
               a file or network."  (source)

From what we can see, hacking has some various meanings; however, through the years media has distorted it be used only as 2b. Its use as definition 1 is honestly improbable as there are numerous synonyms for it whereas there are none I can think of for 2, a or b. Originally used as 2a (source) by MIT and turned to 2b by what they call sloppy use of the word and journalistic inaccuracy. The word they were conveying was 'cracker.' 

Yet why should this even matter? So what; so long as the meaning is understood. But is it really? It's easy to chunk words like hack because it's repeatedly used to mean one thing. Let's take an example, on an episode of Impractical Jokers (sorry, I don't remember which one), they repeatedly used a makeup word to indicate a bound bookmark. The repeated usage got someone to start using the unofficial word to mean a bound bookmark. So this is an example of assumption of understanding leading to misunderstanding, granted that it is an intentional effect. So why it should matter is that people who are not crackers are lumped together with those who are due to a misunderstanding of the inaccurate use of the word 'hack'. 
And really from there it could influence how these people could be stereotyped or treated based on media coverage of crackers.