Sunday, October 30, 2016

Making Meaning: Tubes

Our second book that we had to read for our class is a book called "Tubes" by Andrew Blum. Overall the book was not very engaging and it took me a lot of concentration to pick it up and read it. It just seemed dry to me or something, or maybe I just didn't like to read it because it was a textbook. Although it was interesting for someone to talk about what the internet is like outside of your home. Andrew asks the question:" When your internet cable leaves your living room, where does it go?" And Andrew goes around the world to find out this question. I found it very interesting that he went and saw some of the tech at Google. When I was little I always thought the internet was this magical thing that my dad brought into our home and it would always be there. Then I got older and learned what a router was, and I still just thought of it as a box with the internet just stored in it. I never really thought it had a location or storage like a computer does, and I'm not really sure why. When Andrew actually sees parts of the internet and just gazes upon blinking machinery, it's kind of like pulling the curtain to look at the wizard of oz. 
One part I did enjoy was on page 158 where he talks about how the routers he saw in Austin were like the building blocks of the internet. He did paint a good picture of that the hardware looked like.I think the fact that the book was so much like a novel made me not really treat it like a textbook.
One thing that I liked about Pattern on the Stone and not Tubes is that POTS felt more like a textbook for beginners in computers and less like a novel. It explained a lot of good concepts to know and had great examples to learn from. It had a good pace and did not leave a lot to question. Tubes felt a lot like a quest, and I'm not saying I don't enjoy a good quest, I am just not one to enjoy textbooks. I'm not saying the book is all bad though. The quest for the internet is very interesting, and again it seemed odd to me at first because of the strange idea that the internet had a location.
To see someone else's opinion on this book I looked to the internet for a review on Tubes and came upon Science Blogs and an article entitled "Tubes: A Journey to the Center of the Internet."
The author, Claire Evans, really enjoyed the book and Blum's quest to find out just exactly where the internet lives. She said in her article "Tubes might have well been called “Everything You’ve Always Wanted to Know About the Internet But Were Afraid to Ask.” " which I can agree with. Evans comments that this book should be required reading for anyone, just so we can have a basic understanding of the Internet and how it works. I may not say that it should be required reading but I could see a lot of people learning from this and being really interested in it. I would recommend this book to anyone who has time to just sit down and read about the internet.

Sunday, October 16, 2016

The Filter Bubble

According to Wikipedia, a filter bubble is an algorithm made by websites to predict what information you want to see based on the users past internet history, and as a result the user only gets certain kinds of information and ads. In previous blog posts I've talked about algorithms and how W. Daniel Hillis describes them in his book "Pattern on the Stone". If you haven't read my last algorithm posts, Hillis describes an algorithm as a "fail-safe procedure guaranteed to achieve a specific goal"(78). A short example would be on page(77-78) where Hillis describes his roommates algorithm for matching socks(lining them up in a row until a pair is found and continue until all socks are paired). So in the internet companies case they would use their algorithm to predict what you would want to buy by using their algorithm. Using myself as an example, I recently starting shopping on Amazon quite a lot and now a lot of my ads on Facebook and other social media sites are for Amazon products.

I did an experiment with a good friend of mine to briefly see if our internet history would be different if we searched the same things. We are not completely different but she is about two years younger than I and we differ on some world views, and also just personal views like TV shows and humor. I first googled some just basic words and phrases in google and then briefly browsed her Facebook and her Youtube. Then I googled the exact same things on my laptop.

Knowing that guns and gun rights are always in the news and social media I decided to just google the word "gun" because why not? On (name changed for privacy) "Kjirsten's" laptop I got pretty generic links for just the word "gun". It was the Wikipedia definition for the word gun and the closest gun shop in our city. Then lower just some generic websites selling guns.
I googled "gun" on my laptop and got the exact same results, same local gun shop and everything.

Getting a little more "adventurous", I googled "gun article" seeing if we'd get the same news stories about guns. This is where things started to differ. Kjirsten's first article was "stop gun violence" and then a couple pretty neutral sites. I asked her about it and she doesn't really have a view pro or against (although when pushed she said she was more against than pro). When I googled the same phrase I got a few sites that were against gun control (I am more pro gun).

I googled the word "gem" as well but didn't get any good results.

I then looked at her Facebook at it was mostly clothing ads or those companies who send you clothing and jewelry every month. Pretty typical of someone her age. My Facebook had a lot of makeup ads and an ad for fragrant beads that I just bought recently. It made sense because my friend does not like makeup while I do, so this ad placement makes a lot of sense based on our personalities and interests.

I looked then at the recommended videos on Youtube and most of Kjirsten's videos were humorous as she likes good clean humor on videos, so it makes sense for her. My Youtube was a lot of art videos, as well as humorous and a few video games. This is just a difference of personality.

The filter bubble in most of these circumstances are not all that bad, it is just recommending stuff that those companies think we would like. With the gun articles comes the problem, the filter bubble would only show stuff that we think of so we wouldn't get much different opinions to challenge our views. If we had an opinion for a reason that wasn't true, the filter bubble would just be cementing that false view.

I got my information on the filter bubble here: https://en.wikipedia.org/wiki/Filter_bubble

Saturday, October 1, 2016

The Pattern On The Stone

In my class we have just finished reading "The Pattern on the Stone" by W. Daniels Hillis and it was a pretty interesting read. I happen to be one of those people who dislike reading when it's for a class but this book was pretty thought provoking at some points. Hillis describes a lot of what he is talking about in an easy to read way for people who are just getting into computers, or don't know much about them at all. Such as in chapter 5 "Algorithms and Heuristics", he describes algorithms using socks. His roommate devised an algorithm for organizing his socks in a much faster way than he was doing it before. He would take two socks and if they didn't match he would throw them back; Instead now he found a sock and put it in a line. Once he found two matching socks in a line, he would take them out of the line and fold them.(78) I actually really enjoyed this chapter because it was fairly easy to read and it gave the examples in a way I could quickly understand.

 Being still somewhat new to computers and the terminology, the book in its entirety was much easier to read than some other course textbooks I've looked at. There was not much I didn't like about this book, again it was hard to pick up because it was required reading, but it was more enjoyable than other course books. A nice thing about this book is that whenever Hillis talked about a term or concept that was new, he very nicely explained it. I didn't have to look anything up on google to understand what he was saying. Honestly this book did help me understand computers a bit better, at least some terminology. Before reading this book I did not know much about algorithms, heuristics, or Turing Machines. I just had a small understanding of them. Such as a Turing Machine is described in his words as a "mathematician performing calculations on a scroll of paper" with an infinitely long scroll. The Turing Machine shows that although this mathematician can do all of these long problems with ease, a "stupid" but meticulous clerk could do all of the same mathematics by following a simple set of rules for reading and writing the problems on the scroll. The Turing Machine is that clerk.(63)

I do recommend this book to any new Computer Science or Computer Engineer students who need a simple way of explaining these concepts. With the real life metaphors that are easy to imagine, such as socks for algorithms or a mathematician, it is not a hard read. A lot of computer textbooks are very dry and are a pain to get through and read. This one is not written like a textbook but more of a guide to these ideas of computers. Hillis told the story of how he made a computer out of tinker toys with a few friends of his. The tinker toy computer worked like a switch and light computer but with string and sticks. The computer was "programmed" to play tic-tac-toe and it never lost.(17)
Stories like this make for a much more interesting read than being fed definitions and terms like a normal textbook.
I think this book was chosen as a textbook because of the simple and fun way programming and computers are described. I think even to someone interested in the subject but brand new to it would be able to understand the concepts. It is also pretty short and cheap unlike most college textbooks(with only 9 chapters in the whole book). For an intro class into computers this is a great book to read to get the basics.

Saturday, September 17, 2016

Algorithms: Usually Helpful Programs.

In my class recently we have been learning about algorithms and how they are used in computer programming.

Our textbook, "The Pattern on the Stone" by W. Daniel Hillis, describes algorithms as a "fail safe procedure, guaranteed to achieve a specific goal"(78). He described how his roommate devised an algorithm to sort his socks properly instead of just finding two socks and if they don't match he throws them back. In this new method he pulls them out one by one and puts them in a line, and if he finds two socks that are the same he takes them from the line and folds them together.

 I've recently been looking at algorithms, both good and bad, and found one that has really peaked my interest. It is called the Bogosort algorithm (shotgun sort, monkey sort and stupid sort are also names for this algorithm) and it is the most ridiculous algorithm I have ever seen. It is incredibly ineffective as a computer program or even in real life as it randomly sorts data until they are in the correct order. Say you have a deck of cards and you wish to sort them in order. Using bogosort, you'd basically throw them in the air and pick up the cards at random, then you'd check the new shuffled deck and if it was not in order you'd toss them again and again until they were perfectly sorted. If it were written as a computer program it would look somewhat like this:

while not inOrder(deck)
      shuffle(deck)

The algorithm itself has an average case of (n-1)n! (where n is the number of tries), so the number of attempts to sort it far out numbers the number of comparisons it makes. It only checks a couple of comparisons, no matter how large the list, before just shuffling the whole list again. However because this is an algorithm, there is a very small chance that this shuffling could sort these in the correct order, although that would take a horribly long time.

It is hilariously ridiculous, and honestly the worst algorithm I've ever seen.
Bogosort can be traced back to 1984 and is written in "The New Hacker's Dictionary" [7] as ".... It serves as a sort of canonical example of awfulness. Looking at a program and seeing a dumb algorithm, one might say 'Oh, I see, this program uses bogo-sort'". So even in the Hacker Dictionary it is known as one of the worst algorithm/programs out there.

A similar algorithm is the Bozo sort. It deals with a list of random numbers and if these numbers are not in order, the program will swap two of these numbers at random and then check again to see if its sorted and it continues on such as the Bogosort. With these kinds of programs the best you can hope for is that the lists are already sorted ahead of time or else this program could take forever to figure itself out.

I do not know if anyone has tried this method of sorting with a deck of cards, and  I imagine it would be incredibly time consuming and tedious. If just one card was out of place they would have to toss the whole deck again and pick it back up in a random order. I personally do not want to waste days of my life trying to sort anything by this algorithm.

I got most of my resources from this Wikipedia article https://en.wikipedia.org/wiki/Bogosort and http://www.hermann-gruber.com/pdf/fun07-final.pdf for some more information on Bogosort.

Sunday, September 4, 2016

A Little About Myself

My name is Anna and I am a Computer Science major at K-state university. My computer class has asked us to write a blog during the semester. This first post is just a little about myself and why I am at K-state University. 
I am originally from Prairie Village, Kansas and chose K-state because of their great engineering program and because I have family in the area around Manhattan. I originally took a few years at a local community college for credits and also to find what I really wanted to do with myself after college.
My interest in Computer Science came from my father who is a programmer. I've also really liked working with computers, even when I was little and just playing computer games. I did not know I wanted to go into this career until my first year of community college. When I was in high school I thought I could be an art major, but that wouldn't really get me anywhere.
Being a Computer Science major, my hobbies do include being on my laptop and my phone. I also have a few PC games on my laptop as well. I like other things besides computers. I love to draw and paint, which is why I contemplated being an art major for a bit. I also love planting and caring for succulent plants. With my father being allergic to all flowers and most plants, I found that I love succulents because they are all pretty in a different way and very easy to take care of.
Other then my father who is a programmer, my mother is a librarian and my brother volunteers at a rest home. We also have two dogs, one a Labrador Retriever and the other a mutt. 
My first real job was a local drug store near my house. It was family owned and I became very close with my coworkers. It was near a richer part of the neighborhood so sometimes the clientele could be pretty rude and demanding. It really was a great first job though. 
My plan after college is not all that glamorous, just get a job and a house after graduation. I would like to work in programming and maybe work my way up to management but it is up in the air right now. I do think I am going to stay in Kansas, or at least around the Kansas City area. I think there are a lot of good jobs around the area, even though I don't know specifically what I want to do.
Looking through the textbook, Patterns On The Stone, and the chapter titles, one that catches my eye is the title "Beyond Engineering". I like to think about how computer science impacts the rest of the world and not just the world of engineering. I would like to hear the authors thoughts on this topic. 
Another chapter is "Computers That Learn And Adapt", which just sounds interesting. I like the current technology that is coming out with robots that can adapt to their surroundings so I am wondering if the chapter is a little bit like that.
I am going to be honest, I don't look up a lot of news about the current technology. I usually get some news from Facebook or other sites that people find interesting. An example would be my father posted an article from http://www.iflscience.com about an amputee who got a robotic arm with a drone and its incredibly interesting. So in short I usually stumble upon articles about some of the latest tech, I usually don't go looking for it, which I should.